vue-devui 1.0.0-beta.220801 → 1.0.0-beta.220808
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.
- package/alert/index.umd.js +1 -1
- package/auto-complete/index.es.js +90 -81
- package/auto-complete/index.umd.js +24 -13
- package/auto-complete/style.css +1 -1
- package/avatar/index.umd.js +1 -1
- package/badge/index.umd.js +1 -1
- package/button/index.es.js +21 -42
- package/button/index.umd.js +9 -9
- package/button/style.css +1 -1
- package/card/index.umd.js +1 -1
- package/checkbox/index.es.js +94 -77
- package/checkbox/index.umd.js +26 -15
- package/collapse/index.es.js +3 -21
- package/collapse/index.umd.js +1 -1
- package/countdown/index.umd.js +1 -1
- package/date-picker-pro/index.es.js +131 -114
- package/date-picker-pro/index.umd.js +23 -12
- package/date-picker-pro/style.css +1 -1
- package/drawer/index.es.js +4 -17
- package/drawer/index.umd.js +1 -1
- package/dropdown/index.es.js +4 -22
- package/dropdown/index.umd.js +1 -1
- package/editable-select/index.es.js +15 -38
- package/editable-select/index.umd.js +1 -1
- package/editable-select/style.css +1 -1
- package/form/index.es.js +85 -71
- package/form/index.umd.js +22 -11
- package/fullscreen/index.umd.js +1 -1
- package/grid/index.es.js +7 -20
- package/grid/index.umd.js +1 -1
- package/icon/index.umd.js +1 -1
- package/image-preview/index.es.js +12 -23
- package/image-preview/index.umd.js +1 -1
- package/input/index.es.js +86 -72
- package/input/index.umd.js +24 -13
- package/input-number/index.es.js +1 -16
- package/input-number/index.umd.js +1 -1
- package/layout/index.umd.js +1 -1
- package/loading/index.es.js +15 -38
- package/loading/index.umd.js +1 -1
- package/loading/style.css +1 -1
- package/mention/index.es.js +82 -66
- package/mention/index.umd.js +25 -14
- package/menu/index.es.js +144 -123
- package/menu/index.umd.js +1 -1
- package/menu/style.css +1 -1
- package/message/index.es.js +29 -34
- package/message/index.umd.js +1 -1
- package/modal/index.es.js +12 -44
- package/modal/index.umd.js +1 -1
- package/notification/index.es.js +4 -21
- package/notification/index.umd.js +1 -1
- package/overlay/index.es.js +1 -1
- package/overlay/index.umd.js +1 -1
- package/package.json +1 -1
- package/pagination/index.umd.js +1 -1
- package/panel/index.umd.js +1 -1
- package/popover/index.es.js +1 -1
- package/popover/index.umd.js +4 -4
- package/progress/index.umd.js +3 -3
- package/radio/index.es.js +91 -75
- package/radio/index.umd.js +27 -16
- package/radio/style.css +1 -1
- package/rate/index.umd.js +1 -1
- package/result/index.umd.js +1 -1
- package/ripple/index.es.js +5 -18
- package/ripple/index.umd.js +1 -1
- package/search/index.es.js +86 -72
- package/search/index.umd.js +26 -15
- package/select/index.es.js +104 -83
- package/select/index.umd.js +26 -15
- package/select/style.css +1 -1
- package/skeleton/index.umd.js +1 -1
- package/slider/index.umd.js +1 -1
- package/splitter/index.es.js +22 -29
- package/splitter/index.umd.js +9 -9
- package/statistic/index.es.js +0 -21
- package/statistic/index.umd.js +1 -1
- package/status/index.umd.js +1 -1
- package/steps/index.umd.js +1 -1
- package/style.css +1 -1
- package/switch/index.es.js +85 -71
- package/switch/index.umd.js +25 -14
- package/switch/style.css +1 -1
- package/table/index.es.js +106 -91
- package/table/index.umd.js +21 -10
- package/table/style.css +1 -1
- package/tabs/index.umd.js +1 -1
- package/tag/index.umd.js +1 -1
- package/textarea/index.es.js +88 -72
- package/textarea/index.umd.js +26 -15
- package/time-picker/index.es.js +97 -88
- package/time-picker/index.umd.js +25 -14
- package/time-picker/style.css +1 -1
- package/time-select/index.es.js +104 -83
- package/time-select/index.umd.js +25 -14
- package/time-select/style.css +1 -1
- package/timeline/index.umd.js +1 -1
- package/tooltip/index.es.js +1 -1
- package/tooltip/index.umd.js +4 -4
- package/tree/index.es.js +132 -104
- package/tree/index.umd.js +26 -15
- package/tree/style.css +1 -1
- package/upload/index.es.js +5 -47
- package/upload/index.umd.js +1 -1
- package/vue-devui.es.js +413 -354
- package/vue-devui.umd.js +32 -21
package/menu/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref, defineComponent, getCurrentInstance, inject, toRefs, computed, createVNode, watch, onMounted, Transition, withDirectives, vShow, watchEffect, provide } from "vue";
|
|
1
|
+
import { ref, defineComponent, getCurrentInstance, inject, toRefs, computed, createVNode, watch, onMounted, Transition, withDirectives, vShow, watchEffect, provide, reactive } from "vue";
|
|
2
2
|
function createBem(namespace, element, modifier) {
|
|
3
3
|
let cls = namespace;
|
|
4
4
|
if (element) {
|
|
@@ -274,6 +274,7 @@ var MenuItem = defineComponent({
|
|
|
274
274
|
e.stopPropagation();
|
|
275
275
|
const ele = e.currentTarget;
|
|
276
276
|
let changeRouteResult = void 0;
|
|
277
|
+
props.disabled && e.preventDefault();
|
|
277
278
|
if (!props.disabled) {
|
|
278
279
|
if (!multiple) {
|
|
279
280
|
clearSelect(ele, e, mode.value === "horizontal");
|
|
@@ -328,7 +329,9 @@ var MenuItem = defineComponent({
|
|
|
328
329
|
}, [(_b = (_a = ctx.slots).icon) == null ? void 0 : _b.call(_a)]);
|
|
329
330
|
const menuItems = ref(null);
|
|
330
331
|
watch(disabled, () => {
|
|
331
|
-
|
|
332
|
+
if (!multiple) {
|
|
333
|
+
classObject.value[menuItemSelect] = false;
|
|
334
|
+
}
|
|
332
335
|
});
|
|
333
336
|
watch(() => defaultSelectKey, (n) => {
|
|
334
337
|
isSelect.value = initSelect(n, key, multiple, disabled);
|
|
@@ -414,61 +417,20 @@ var MenuItem = defineComponent({
|
|
|
414
417
|
};
|
|
415
418
|
}
|
|
416
419
|
});
|
|
417
|
-
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
const target = e.currentTarget;
|
|
423
|
-
const targetParent = target.parentElement;
|
|
424
|
-
const wrapperChildren = wrapper.children;
|
|
425
|
-
wrapper.style.padding = `0 20px !important`;
|
|
426
|
-
if (eventName === "mouseenter") {
|
|
427
|
-
if ((targetParent == null ? void 0 : targetParent.tagName) === "DIV") {
|
|
428
|
-
wrapper.classList.add(`${ns$1.b()}-item-horizontal-wrapper-level`);
|
|
429
|
-
const { width } = target.getClientRects()[0];
|
|
430
|
-
wrapper.style.top = `0px`;
|
|
431
|
-
wrapper.style.left = `${width}px`;
|
|
432
|
-
} else {
|
|
433
|
-
wrapper.style.top = `26px`;
|
|
434
|
-
wrapper.style.left = `0px`;
|
|
435
|
-
}
|
|
436
|
-
wrapper.classList.remove(menuItemHorizontalWrapperHidden);
|
|
437
|
-
wrapper.classList.add(menuItemHorizontalWrapperShow);
|
|
438
|
-
for (let i = 0; i < wrapperChildren.length; i++) {
|
|
439
|
-
const ul = wrapperChildren[i];
|
|
440
|
-
if (ul.tagName === "UL" && ul.classList.contains(subNs$1.b())) {
|
|
441
|
-
const levelUlWrapper = ul.getElementsByClassName(`${ns$1.b()}-item-horizontal-wrapper`)[0];
|
|
442
|
-
ul.addEventListener("mouseenter", (ev) => {
|
|
443
|
-
ev.stopPropagation();
|
|
444
|
-
useShowSubMenu("mouseenter", ev, levelUlWrapper);
|
|
445
|
-
levelUlWrapper.classList.remove(menuItemHorizontalWrapperHidden);
|
|
446
|
-
levelUlWrapper.classList.add(menuItemHorizontalWrapperShow);
|
|
447
|
-
});
|
|
448
|
-
ul.addEventListener("mouseleave", (ev) => {
|
|
449
|
-
ev.stopPropagation();
|
|
450
|
-
useShowSubMenu("mouseleave", ev, levelUlWrapper);
|
|
451
|
-
levelUlWrapper.classList.remove(menuItemHorizontalWrapperShow);
|
|
452
|
-
levelUlWrapper.classList.add(menuItemHorizontalWrapperHidden);
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
if (eventName === "mouseleave") {
|
|
458
|
-
wrapper.classList.remove(menuItemHorizontalWrapperShow);
|
|
459
|
-
wrapper.classList.add(menuItemHorizontalWrapperHidden);
|
|
420
|
+
function randomId(n = 8) {
|
|
421
|
+
const str = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
422
|
+
let result = "";
|
|
423
|
+
for (let i = 0; i < n; i++) {
|
|
424
|
+
result += str[parseInt((Math.random() * str.length).toString())];
|
|
460
425
|
}
|
|
426
|
+
return result;
|
|
461
427
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
default: ""
|
|
466
|
-
},
|
|
467
|
-
disabled: {
|
|
468
|
-
type: Boolean,
|
|
469
|
-
default: false
|
|
428
|
+
function useNearestMenuElement(ele) {
|
|
429
|
+
while (ele && ele.tagName !== "LI" && ele.tagName !== "UL") {
|
|
430
|
+
ele = ele.parentElement;
|
|
470
431
|
}
|
|
471
|
-
|
|
432
|
+
return ele;
|
|
433
|
+
}
|
|
472
434
|
const elTransition = "0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out";
|
|
473
435
|
const TransitionObj = {
|
|
474
436
|
"before-enter"(el) {
|
|
@@ -542,6 +504,61 @@ var MenuTransition = defineComponent({
|
|
|
542
504
|
};
|
|
543
505
|
}
|
|
544
506
|
});
|
|
507
|
+
const subMenuProps = {
|
|
508
|
+
title: {
|
|
509
|
+
type: String,
|
|
510
|
+
default: ""
|
|
511
|
+
},
|
|
512
|
+
disabled: {
|
|
513
|
+
type: Boolean,
|
|
514
|
+
default: false
|
|
515
|
+
}
|
|
516
|
+
};
|
|
517
|
+
const ns$1 = useNamespace("menu");
|
|
518
|
+
const subNs$1 = useNamespace("submenu");
|
|
519
|
+
const menuItemHorizontalWrapperHidden = `${ns$1.b()}-item-horizontal-wrapper-hidden`;
|
|
520
|
+
const menuItemHorizontalWrapperShow = `${ns$1.b()}-item-horizontal-wrapper-show`;
|
|
521
|
+
function useShowSubMenu(eventName, e, wrapper) {
|
|
522
|
+
const target = e.currentTarget;
|
|
523
|
+
const targetParent = target.parentElement;
|
|
524
|
+
const wrapperChildren = wrapper.children;
|
|
525
|
+
wrapper.style.padding = `0 20px !important`;
|
|
526
|
+
if (eventName === "mouseenter") {
|
|
527
|
+
if ((targetParent == null ? void 0 : targetParent.tagName) === "DIV") {
|
|
528
|
+
wrapper.classList.add(`${ns$1.b()}-item-horizontal-wrapper-level`);
|
|
529
|
+
const { width } = target.getClientRects()[0];
|
|
530
|
+
wrapper.style.top = `0px`;
|
|
531
|
+
wrapper.style.left = `${width}px`;
|
|
532
|
+
} else {
|
|
533
|
+
wrapper.style.top = `26px`;
|
|
534
|
+
wrapper.style.left = `0px`;
|
|
535
|
+
}
|
|
536
|
+
wrapper.classList.remove(menuItemHorizontalWrapperHidden);
|
|
537
|
+
wrapper.classList.add(menuItemHorizontalWrapperShow);
|
|
538
|
+
for (let i = 0; i < wrapperChildren.length; i++) {
|
|
539
|
+
const ul = wrapperChildren[i];
|
|
540
|
+
if (ul.tagName === "UL" && ul.classList.contains(subNs$1.b())) {
|
|
541
|
+
const levelUlWrapper = ul.getElementsByClassName(`${ns$1.b()}-item-horizontal-wrapper`)[0];
|
|
542
|
+
ul.addEventListener("mouseenter", (ev) => {
|
|
543
|
+
ev.stopPropagation();
|
|
544
|
+
useShowSubMenu("mouseenter", ev, levelUlWrapper);
|
|
545
|
+
levelUlWrapper.classList.remove(menuItemHorizontalWrapperHidden);
|
|
546
|
+
levelUlWrapper.classList.add(menuItemHorizontalWrapperShow);
|
|
547
|
+
});
|
|
548
|
+
ul.addEventListener("mouseleave", (ev) => {
|
|
549
|
+
ev.stopPropagation();
|
|
550
|
+
useShowSubMenu("mouseleave", ev, levelUlWrapper);
|
|
551
|
+
levelUlWrapper.classList.remove(menuItemHorizontalWrapperShow);
|
|
552
|
+
levelUlWrapper.classList.add(menuItemHorizontalWrapperHidden);
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
if (eventName === "mouseleave") {
|
|
558
|
+
wrapper.classList.remove(menuItemHorizontalWrapperShow);
|
|
559
|
+
wrapper.classList.add(menuItemHorizontalWrapperHidden);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
545
562
|
const ns = useNamespace("menu");
|
|
546
563
|
const subNs = useNamespace("submenu");
|
|
547
564
|
const subMenuClass = subNs.b();
|
|
@@ -555,9 +572,9 @@ var SubMenu = defineComponent({
|
|
|
555
572
|
key
|
|
556
573
|
}
|
|
557
574
|
} = getCurrentInstance();
|
|
558
|
-
|
|
559
|
-
const isOpen = ref(false);
|
|
575
|
+
let key_ = String(key);
|
|
560
576
|
const defaultOpenKeys = inject("openKeys");
|
|
577
|
+
const isOpen = ref(defaultOpenKeys.value.includes(key_));
|
|
561
578
|
const indent = inject("defaultIndent");
|
|
562
579
|
const isCollapsed = inject("isCollapsed");
|
|
563
580
|
const mode = inject("mode");
|
|
@@ -566,17 +583,11 @@ var SubMenu = defineComponent({
|
|
|
566
583
|
const isHorizontal = mode.value === "horizontal";
|
|
567
584
|
if (key_ === "null") {
|
|
568
585
|
console.warn(`[devui][menu]: Key can not be null`);
|
|
569
|
-
|
|
570
|
-
if (defaultOpenKeys.value.includes(key_)) {
|
|
571
|
-
isOpen.value = true;
|
|
572
|
-
} else {
|
|
573
|
-
isOpen.value = false;
|
|
574
|
-
}
|
|
586
|
+
key_ = `randomKey-${randomId(16)}`;
|
|
575
587
|
}
|
|
576
588
|
const clickHandle = (e) => {
|
|
577
|
-
e.preventDefault();
|
|
578
589
|
e.stopPropagation();
|
|
579
|
-
const ele = e.
|
|
590
|
+
const ele = useNearestMenuElement(e.target);
|
|
580
591
|
if (ele.classList.contains(subMenuClass) && isHorizontal) {
|
|
581
592
|
return;
|
|
582
593
|
}
|
|
@@ -585,30 +596,21 @@ var SubMenu = defineComponent({
|
|
|
585
596
|
useClick(e);
|
|
586
597
|
}
|
|
587
598
|
if (!props.disabled && mode.value !== "horizontal") {
|
|
588
|
-
const
|
|
589
|
-
|
|
590
|
-
if (
|
|
591
|
-
|
|
592
|
-
isOpen.value = !isOpen.value;
|
|
593
|
-
} else {
|
|
594
|
-
isOpen.value = isOpen.value;
|
|
595
|
-
}
|
|
599
|
+
const cur = useNearestMenuElement(e.target);
|
|
600
|
+
const idx = defaultOpenKeys.value.indexOf(key_);
|
|
601
|
+
if (idx >= 0 && cur.tagName === "UL") {
|
|
602
|
+
defaultOpenKeys.value.splice(idx, 1);
|
|
596
603
|
} else {
|
|
597
|
-
while (cur && cur.tagName !== "UL") {
|
|
598
|
-
if (cur.tagName === "LI") {
|
|
599
|
-
break;
|
|
600
|
-
}
|
|
601
|
-
cur = cur.parentElement;
|
|
602
|
-
}
|
|
603
604
|
if (cur.tagName === "UL") {
|
|
604
|
-
|
|
605
|
+
defaultOpenKeys.value.push(key_);
|
|
605
606
|
}
|
|
606
607
|
}
|
|
608
|
+
isOpen.value = defaultOpenKeys.value.indexOf(key_) >= 0;
|
|
607
609
|
parentEmit("submenu-change", {
|
|
608
610
|
type: "submenu-change",
|
|
609
611
|
state: isOpen.value,
|
|
610
612
|
key: key_,
|
|
611
|
-
el:
|
|
613
|
+
el: ele
|
|
612
614
|
});
|
|
613
615
|
}
|
|
614
616
|
};
|
|
@@ -637,11 +639,11 @@ var SubMenu = defineComponent({
|
|
|
637
639
|
});
|
|
638
640
|
onMounted(() => {
|
|
639
641
|
var _a;
|
|
640
|
-
const
|
|
641
|
-
const
|
|
642
|
+
const subMenuTitle = title.value;
|
|
643
|
+
const subMenuWrapper = subMenu.value;
|
|
642
644
|
addLayer();
|
|
643
|
-
class_layer.value = `layer_${(_a = Array.from(
|
|
644
|
-
if (isHorizontal) {
|
|
645
|
+
class_layer.value = `layer_${(_a = Array.from(subMenuWrapper.classList).at(-1)) == null ? void 0 : _a.replace("layer_", "")}`;
|
|
646
|
+
if (isHorizontal && !props.disabled) {
|
|
645
647
|
subMenu.value.addEventListener("mouseenter", (ev) => {
|
|
646
648
|
ev.stopPropagation();
|
|
647
649
|
useShowSubMenu("mouseenter", ev, wrapperDom);
|
|
@@ -652,22 +654,22 @@ var SubMenu = defineComponent({
|
|
|
652
654
|
});
|
|
653
655
|
}
|
|
654
656
|
watch(isCollapsed, (newValue) => {
|
|
655
|
-
const layer = Number(getLayer(
|
|
657
|
+
const layer = Number(getLayer(subMenuWrapper));
|
|
656
658
|
if (!Number.isNaN(layer)) {
|
|
657
659
|
layer > 2 && (isShow.value = !isCollapsed.value);
|
|
658
660
|
}
|
|
659
661
|
if (newValue) {
|
|
660
|
-
|
|
662
|
+
subMenuTitle.style.padding !== "0" && (oldPadding = subMenuTitle.style.padding);
|
|
661
663
|
setTimeout(() => {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
664
|
+
subMenuTitle.style.padding = "0";
|
|
665
|
+
subMenuTitle.style.width = "";
|
|
666
|
+
subMenuTitle.style.textAlign = `center`;
|
|
665
667
|
}, 300);
|
|
666
|
-
|
|
668
|
+
subMenuTitle.style.display = `block`;
|
|
667
669
|
} else {
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
670
|
+
subMenuTitle.style.padding = `${oldPadding}`;
|
|
671
|
+
subMenuTitle.style.textAlign = ``;
|
|
672
|
+
subMenuTitle.style.display = `flex`;
|
|
671
673
|
}
|
|
672
674
|
});
|
|
673
675
|
});
|
|
@@ -675,10 +677,10 @@ var SubMenu = defineComponent({
|
|
|
675
677
|
var _a, _b, _c, _d;
|
|
676
678
|
return withDirectives(createVNode("ul", {
|
|
677
679
|
"onClick": clickHandle,
|
|
678
|
-
"class": [subMenuClass, class_layer.value],
|
|
680
|
+
"class": [subMenuClass, class_layer.value, props["disabled"] && `${subMenuClass}-disabled`],
|
|
679
681
|
"ref": subMenu
|
|
680
682
|
}, [createVNode("div", {
|
|
681
|
-
"class": [`${subMenuClass}-title
|
|
683
|
+
"class": [`${subMenuClass}-title`],
|
|
682
684
|
"style": `padding: 0 ${indent}px`,
|
|
683
685
|
"ref": title
|
|
684
686
|
}, [createVNode("span", {
|
|
@@ -691,10 +693,10 @@ var SubMenu = defineComponent({
|
|
|
691
693
|
"icon icon-chevron-right": class_layer.value === `layer_${subMenuClass}`,
|
|
692
694
|
"is-opened": isOpen.value
|
|
693
695
|
}
|
|
694
|
-
}, null), [[vShow, !isCollapsed.value && key !== "overflowContainer"]])]), isHorizontal ? createVNode("div", {
|
|
696
|
+
}, null), [[vShow, !isCollapsed.value && key !== "overflowContainer"]])]), isHorizontal ? withDirectives(createVNode("div", {
|
|
695
697
|
"class": `${ns.b()}-item-horizontal-wrapper ${ns.b()}-item-horizontal-wrapper-hidden`,
|
|
696
698
|
"ref": wrapper
|
|
697
|
-
}, [(_d = (_c = ctx.slots).default) == null ? void 0 : _d.call(_c)]) : createVNode(MenuTransition, null, {
|
|
699
|
+
}, [(_d = (_c = ctx.slots).default) == null ? void 0 : _d.call(_c)]), [[vShow, !props.disabled]]) : createVNode(MenuTransition, null, {
|
|
698
700
|
default: () => {
|
|
699
701
|
var _a2, _b2;
|
|
700
702
|
return [withDirectives(createVNode("div", {
|
|
@@ -767,51 +769,67 @@ var Menu = defineComponent({
|
|
|
767
769
|
provide("useRouter", props.router);
|
|
768
770
|
setDefaultIndent(props["indentSize"]);
|
|
769
771
|
const menuRoot = ref(null);
|
|
770
|
-
const overflow_container = ref(null);
|
|
771
772
|
const overflowItemLength = ref(0);
|
|
773
|
+
const overflowContainer = ref(null);
|
|
774
|
+
const selectClassName = `${ns2.b()}-item-select`;
|
|
772
775
|
const rootClassName = computed(() => ({
|
|
773
776
|
[`${ns2.b()}`]: true,
|
|
774
777
|
[`${ns2.b()}-vertical`]: mode.value === "vertical",
|
|
775
778
|
[`${ns2.b()}-horizontal`]: mode.value === "horizontal",
|
|
776
779
|
[`${ns2.b()}-collapsed`]: collapsed.value
|
|
777
780
|
}));
|
|
781
|
+
const overflowContainerClassName = reactive({
|
|
782
|
+
[selectClassName]: false,
|
|
783
|
+
[`${ns2.b()}-overflow-container`]: true
|
|
784
|
+
});
|
|
785
|
+
const resetOverflowContainerSelectState = (e) => {
|
|
786
|
+
const children = Array.from(e.children);
|
|
787
|
+
for (const item of children) {
|
|
788
|
+
if (item.classList.contains(selectClassName)) {
|
|
789
|
+
overflowContainerClassName[selectClassName] = true;
|
|
790
|
+
break;
|
|
791
|
+
} else {
|
|
792
|
+
overflowContainerClassName[selectClassName] = false;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
};
|
|
778
796
|
onMounted(() => {
|
|
779
797
|
var _a;
|
|
780
798
|
if (props["mode"] === "horizontal") {
|
|
781
799
|
let flag = false;
|
|
782
|
-
const
|
|
800
|
+
const overflowContainerElement = (_a = overflowContainer.value) == null ? void 0 : _a.$el;
|
|
783
801
|
const root = menuRoot.value;
|
|
784
802
|
const children = root.children;
|
|
785
|
-
const container =
|
|
803
|
+
const container = overflowContainerElement.children[1];
|
|
786
804
|
const ob = new IntersectionObserver((entries) => {
|
|
787
|
-
entries.forEach((
|
|
788
|
-
if (!
|
|
789
|
-
const cloneNode =
|
|
790
|
-
if (
|
|
791
|
-
if (flag &&
|
|
792
|
-
root.appendChild(
|
|
805
|
+
entries.forEach((entry) => {
|
|
806
|
+
if (!entry.isIntersecting) {
|
|
807
|
+
const cloneNode = entry.target.cloneNode(true);
|
|
808
|
+
if (entry.target.classList.contains(`${ns2.b()}-overflow-container`)) {
|
|
809
|
+
if (flag && entry.target.previousElementSibling && container.children.length) {
|
|
810
|
+
root.appendChild(entry.target.previousElementSibling);
|
|
793
811
|
} else {
|
|
794
812
|
flag = true;
|
|
795
813
|
}
|
|
796
814
|
} else {
|
|
797
815
|
overflowItemLength.value += 1;
|
|
798
|
-
|
|
799
|
-
if (
|
|
800
|
-
root.insertBefore(
|
|
816
|
+
entry.target.style.visibility = "hidden";
|
|
817
|
+
if (overflowContainerElement.nextSibling) {
|
|
818
|
+
root.insertBefore(entry.target, overflowContainerElement.nextSibling);
|
|
801
819
|
} else {
|
|
802
|
-
root.appendChild(
|
|
820
|
+
root.appendChild(entry.target);
|
|
803
821
|
}
|
|
804
822
|
container.appendChild(cloneNode);
|
|
823
|
+
resetOverflowContainerSelectState(container);
|
|
805
824
|
}
|
|
806
825
|
} else {
|
|
807
|
-
if (!
|
|
808
|
-
ob.unobserve(
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
if (obItem) {
|
|
826
|
+
if (!entry.target.classList.contains(`${ns2.b()}-overflow-container`) && entry.target.style.visibility === "hidden") {
|
|
827
|
+
ob.unobserve(entry.target);
|
|
828
|
+
root.insertBefore(entry.target, overflowContainerElement);
|
|
829
|
+
entry.target.style.visibility = "";
|
|
830
|
+
const obItem = overflowContainerElement.previousElementSibling;
|
|
831
|
+
const canObAgin = obItem && entry.boundingClientRect.width % entry.target.getBoundingClientRect().width === 0;
|
|
832
|
+
if (canObAgin) {
|
|
815
833
|
ob.observe(obItem);
|
|
816
834
|
}
|
|
817
835
|
if (obItem == null ? void 0 : obItem.classList.contains("devui-submenu")) {
|
|
@@ -826,9 +844,12 @@ var Menu = defineComponent({
|
|
|
826
844
|
useShowSubMenu("mouseleave", ev, wrapper);
|
|
827
845
|
});
|
|
828
846
|
}
|
|
829
|
-
v.target.style.visibility = "";
|
|
830
|
-
v.target.remove();
|
|
831
847
|
overflowItemLength.value -= 1;
|
|
848
|
+
ob.observe(entry.target);
|
|
849
|
+
if (container.lastChild) {
|
|
850
|
+
container.removeChild(container.lastChild);
|
|
851
|
+
}
|
|
852
|
+
resetOverflowContainerSelectState(container);
|
|
832
853
|
}
|
|
833
854
|
}
|
|
834
855
|
});
|
|
@@ -847,12 +868,12 @@ var Menu = defineComponent({
|
|
|
847
868
|
return createVNode("ul", {
|
|
848
869
|
"ref": menuRoot,
|
|
849
870
|
"class": rootClassName.value,
|
|
850
|
-
"style": [props["collapsed"] ? `width:${props["collapsedIndent"] * 2}px` : `width: ${props["width"]}
|
|
871
|
+
"style": [props["collapsed"] ? `width:${props["collapsedIndent"] * 2}px` : `width: ${props["width"]}`]
|
|
851
872
|
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a), withDirectives(createVNode(SubMenu, {
|
|
852
|
-
"ref":
|
|
873
|
+
"ref": overflowContainer,
|
|
853
874
|
"key": "overflowContainer",
|
|
854
875
|
"title": "...",
|
|
855
|
-
"class":
|
|
876
|
+
"class": overflowContainerClassName
|
|
856
877
|
}, null), [[vShow, overflowItemLength.value > 0 && mode.value === "horizontal"]])]);
|
|
857
878
|
};
|
|
858
879
|
}
|
package/menu/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(L,n){typeof exports=="object"&&typeof module!="undefined"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(L=typeof globalThis!="undefined"?globalThis:L||self,n(L.index={},L.Vue))})(this,function(L,n){"use strict";function k(e,l,t){let a=e;return l&&(a+=`__${l}`),t&&(a+=`--${t}`),a}function E(e,l=!1){const t=l?`.devui-${e}`:`devui-${e}`;return{b:()=>k(t),e:f=>f?k(t,f):"",m:f=>f?k(t,"",f):"",em:(f,m)=>f&&m?k(t,f,m):""}}const F=[];let K=[];const O=n.ref(24),T=E("menu"),ne=E("submenu"),j=T.b(),G=`${T.b()}-item-horizontal-wrapper`,J=`${T.b()}-item-select`,Q=`${T.b()}-active-parent`;function se(e){O.value=e}function ae(e){F.push(e)}function le(){K=[],F.forEach(t=>{K.push(t.el.parentElement)});const e=[...K],l=t=>{var a;return(a=/layer_(\d*)/gim.exec(t))==null?void 0:a[1]};for(;e.length;){const t=e.shift();if(t==null?void 0:t.classList.contains(j)){const a=t.children;e.unshift(...Array.from(a));continue}else{if(t.tagName==="DIV")if(t.classList.contains(`${T.b()}-item-vertical-wrapper`)||t.classList.contains(`${ne.b()}-menu-item-vertical-wrapper`)){const a=t.parentElement;if(e.unshift(...Array.from(t.children)),a==null?void 0:a.classList.contains(j))t.classList.add("layer_1");else{let s=l((a==null?void 0:a.classList.value)||"");s=Number(s),t.classList.add(`layer_${s}`)}}else{const a=t.parentElement;let s=l((a==null?void 0:a.classList.value)||"");s=Number(s),t.classList.add(`layer_${s}`),t.style.paddingLeft=`${(s===2?1:s-1)*O.value}px`}if(t.tagName==="UL"){const a=t.parentElement,s=t.children;for(let f=0;f<s.length;f++)e.unshift(s[f]);const i=(a==null?void 0:a.classList.value)||"";let r=l(i);(a==null?void 0:a.classList.contains(j))?(r=1,t.classList.add(`layer_${2}`)):(t.classList.add(`layer_${Number(r)+1}`),r=Number(r)+1)}if(t.tagName==="LI"){const a=t.parentElement,s=(a==null?void 0:a.classList.value)||"";let i=l(s);l(s),i=Number(i),t.style.padding=`0 ${i*O.value}px`}}}}function oe(e){var a;const l=e;let t=null;for(let s=0;s<l.length;s++){const i=l[s];((a=i==null?void 0:i.classList)==null?void 0:a.contains(`${T.b()}-horizontal`))&&(t=i)}return t}function ie(e,l){let t=l.target,a=[];const{path:s}=l,i=oe(s);for(a=[...Array.from(i.children)],t.tagName==="SPAN"&&(t=t.parentElement);a.length;){const r=a.shift();if((r==null?void 0:r.tagName)==="UL"||(r==null?void 0:r.classList.contains(G))){const f=r==null?void 0:r.children;a.unshift(...Array.from(f))}r!==t&&(r==null||r.classList.remove(J),r==null||r.classList.remove(Q))}}function re(e,l){const t=[],a=l.path||l.composedPath&&l.composedPath();for(let s=0;s<a.length;s++){const i=a[s];if(!i.classList.contains(j))t.push(...Array.from(i.children));else{t.push(...Array.from(i.children));break}}for(;t.length;){const s=t.shift();((s==null?void 0:s.tagName)==="UL"||(s==null?void 0:s.classList.contains(G)))&&t.push(...Array.from(s==null?void 0:s.children)),s!==e&&((s==null?void 0:s.tagName)==="DIV"&&t.unshift(...Array.from(s==null?void 0:s.children)),s==null||s.classList.remove(J),s==null||s.classList.remove(Q))}}function X(e,l,t=!1){t?ie(e,l):re(e,l)}function ce(e){var a;const l=/layer_(\d{1,})/gim,t=e.className;return(a=l.exec(t))==null?void 0:a[1]}const de={disabled:{type:Boolean,default:!1},href:{type:String,default:""},route:{type:[String,Object]}},Y=E("menu");function Z(e,l,t,a){const s=n.ref(!1);return t?e.includes(l)?s.value=!0:s.value=!1:e[0]===l&&!a.value?s.value=!0:s.value=!1,s.value}function ue(e){var t,a;let l=e.parentElement;for(;!l.classList.contains(Y.b());)((t=l.firstElementChild)==null?void 0:t.tagName)==="DIV"&&((a=l==null?void 0:l.firstElementChild)==null||a.classList.add(`${Y.b()}-active-parent`)),l=l.parentElement;return l}function fe(e,l,t,a){if(t&&l){const s=e.route||a,i=l.push(s).then(r=>r);return{route:s,routerResult:i}}}const I=E("menu");function ee(e){const l=e.path;for(let t=0;t<l.length;t++){const a=l[t];if(a.classList.contains(`${I.b()}-horizontal`))break;if(a.classList.contains(`${I.b()}-item-horizontal-wrapper`))continue;a.tagName!=="SPAN"&&a.classList.add(`${I.b()}-item-select`)}}const V=E("menu"),A=`${V.b()}-item-select`,me=`${V.b()}-item-disabled`;var U=n.defineComponent({name:"DMenuItem",props:de,setup(e,l){var v,d;const t=n.getCurrentInstance(),a=String(t==null?void 0:t.vnode.key),s=n.inject("mode"),i=n.inject("multiple"),r=n.inject("defaultIndent"),f=n.inject("isCollapsed"),m=n.inject("defaultSelectKey"),{disabled:g}=n.toRefs(e),$=n.ref(Z(m,a,i,g)),w=n.ref(!0),h=n.inject("rootMenuEmit"),C=n.inject("useRouter"),P=t==null?void 0:t.appContext.config.globalProperties.$router,y=n.computed(()=>({[`${V.b()}-item`]:!0,[`${V.b()}-item-isCollapsed`]:f.value,[A]:$.value,[me]:g.value})),b=c=>{var S;c.stopPropagation();const o=c.currentTarget;let u;if(!e.disabled){if(!i)X(o,c,s.value==="horizontal"),s.value==="horizontal"?ee(c):o.classList.add(A),u=fe(e,P,C,a);else if(o.classList.contains(A)){o.classList.remove(A),h("deselect",{type:"deselect",key:a,el:o,e:c});return}else o.classList.add(A);u===void 0?h("select",{type:"select",key:a,el:o,e:c}):h("select",{type:"select",key:a,el:o,e:c,route:u})}if(s.value==="vertical"){const M=c.currentTarget;ue(M)}if(s.value==="horizontal"){const M=(S=o.parentElement)==null?void 0:S.parentElement;M==null||M.classList.add(`${V.b()}-active-parent`)}},N=n.createVNode("span",{class:`${V.b()}-icon`},[(d=(v=l.slots).icon)==null?void 0:d.call(v)]),p=n.ref(null);return n.watch(g,()=>{y.value[A]=!1}),n.watch(()=>m,c=>{$.value=Z(c,a,i,g),y.value[A]=$.value}),n.onMounted(()=>{var u,S;let c="";const o=p.value;s.value==="vertical"&&(((S=(u=o.parentElement)==null?void 0:u.parentElement)==null?void 0:S.classList.contains(V.b()))?(w.value=!0,w.value&&(o.style.paddingRight="",o.style.paddingLeft=`${r}px`),n.watch(f,M=>{M?(o.style.padding!=="0"&&(c=o.style.padding),setTimeout(()=>{o.style.padding="0",o.style.width="",o.style.textAlign="center"},300),o.style.display="block"):(o.style.padding=`${c}`,o.style.textAlign="",o.style.display="flex")})):w.value=!1)}),()=>s.value==="vertical"?n.createVNode("div",{class:`${V.b()}-item-vertical-wrapper`},[n.createVNode("li",{class:y.value,onClick:b,ref:p},[l.slots.icon!==void 0&&N,e.href===""?n.createVNode(n.Transition,{name:"fade"},{default:()=>{var c,o;return[n.withDirectives(n.createVNode("span",null,[(o=(c=l.slots).default)==null?void 0:o.call(c)]),[[n.vShow,!f.value]])]}}):n.createVNode("a",{href:e.href},[n.createVNode(n.Transition,{name:"fade"},{default:()=>{var c,o;return[(o=(c=l.slots).default)==null?void 0:o.call(c)]}})])])]):n.createVNode("li",{class:y.value,onClick:b,ref:p},[l.slots.icon!==void 0&&N,e.href===""?n.createVNode(n.Transition,{name:"fade"},{default:()=>{var c,o;return[n.withDirectives(n.createVNode("span",null,[(o=(c=l.slots).default)==null?void 0:o.call(c)]),[[n.vShow,!f.value]])]}}):n.createVNode("a",{href:e.href},[n.createVNode(n.Transition,{name:"fade"},{default:()=>{var c,o;return[(o=(c=l.slots).default)==null?void 0:o.call(c)]}})])])}});const B=E("menu"),pe=E("submenu"),x=`${B.b()}-item-horizontal-wrapper-hidden`,R=`${B.b()}-item-horizontal-wrapper-show`;function D(e,l,t){const a=l.currentTarget,s=a.parentElement,i=t.children;if(t.style.padding="0 20px !important",e==="mouseenter"){if((s==null?void 0:s.tagName)==="DIV"){t.classList.add(`${B.b()}-item-horizontal-wrapper-level`);const{width:r}=a.getClientRects()[0];t.style.top="0px",t.style.left=`${r}px`}else t.style.top="26px",t.style.left="0px";t.classList.remove(x),t.classList.add(R);for(let r=0;r<i.length;r++){const f=i[r];if(f.tagName==="UL"&&f.classList.contains(pe.b())){const m=f.getElementsByClassName(`${B.b()}-item-horizontal-wrapper`)[0];f.addEventListener("mouseenter",g=>{g.stopPropagation(),D("mouseenter",g,m),m.classList.remove(x),m.classList.add(R)}),f.addEventListener("mouseleave",g=>{g.stopPropagation(),D("mouseleave",g,m),m.classList.remove(R),m.classList.add(x)})}}}e==="mouseleave"&&(t.classList.remove(R),t.classList.add(x))}const ge={title:{type:String,default:""},disabled:{type:Boolean,default:!1}},te="0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out",_={"before-enter"(e){e.style.transition=te,e.setAttribute("data-oldPadding",e.style.padding),e.setAttribute("data-oldMargin",e.style.margin),e.style.height="0",e.style.padding="0",e.style.margin="0"},enter(e){e.dataset.oldOverflow=e.style.overflow,e.scrollHeight!==0?e.style.height=e.scrollHeight+"px":e.style.height="",e.style.padding=e.getAttribute("data-oldPadding"),e.style.margin=e.getAttribute("data-oldMargin"),e.style.overflow="hidden"},"after-enter"(e){e.style.transition="",e.style.transition="",e.style.height="",e.style.overflow=e.getAttribute("data-overflow")},"before-leave"(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},leave(e){e.scrollHeight!==0&&(e.style.transition=te,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},"after-leave"(e){e.style.transition="",e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}};var he=n.defineComponent({name:"DMenuTransition",setup(e,l){return()=>n.createVNode(n.Transition,{onBeforeEnter:t=>_["before-enter"](t),onBeforeLeave:t=>_["before-leave"](t),onEnter:t=>_.enter(t),onAfterEnter:t=>_["after-enter"](t),onLeave:t=>_.leave(t),onAfterLeave:t=>_["after-leave"](t)},{default:()=>{var t,a;return[(a=(t=l.slots).default)==null?void 0:a.call(t)]}})}});const W=E("menu"),z=E("submenu").b();var H=n.defineComponent({name:"DSubMenu",props:ge,setup(e,l){const t=n.ref(!0),{vnode:{key:a}}=n.getCurrentInstance(),s=String(a),i=n.ref(!1),r=n.inject("openKeys"),f=n.inject("defaultIndent"),m=n.inject("isCollapsed"),g=n.inject("mode"),$=n.ref(null),w=n.inject("rootMenuEmit"),h=g.value==="horizontal";s==="null"?console.warn("[devui][menu]: Key can not be null"):r.value.includes(s)?i.value=!0:i.value=!1;const C=d=>{d.preventDefault(),d.stopPropagation();const c=d.currentTarget;if(!(c.classList.contains(z)&&h)&&(h&&(X(c,d,!0),ee(d)),!e.disabled&&g.value!=="horizontal")){const o=d.target;let u=d.target;if(o.tagName==="UL")o.classList.contains(`${z}-open`)?i.value=!i.value:i.value=i.value;else{for(;u&&u.tagName!=="UL"&&u.tagName!=="LI";)u=u.parentElement;u.tagName==="UL"&&(i.value=!i.value)}w("submenu-change",{type:"submenu-change",state:i.value,key:s,el:u})}},P=n.ref(null);let y;const b=n.ref(null),N=n.ref(null);let p="";const v=n.ref("");return n.watchEffect(()=>{y=P.value,ae({el:b.value})},{flush:"post"}),n.watch(()=>r,d=>{d.value.includes(s)?i.value=!0:i.value=!1},{deep:!0}),n.onMounted(()=>{var o;const d=N.value,c=b.value;le(),v.value=`layer_${(o=Array.from(c.classList).at(-1))==null?void 0:o.replace("layer_","")}`,h&&(b.value.addEventListener("mouseenter",u=>{u.stopPropagation(),D("mouseenter",u,y)}),b.value.addEventListener("mouseleave",u=>{u.stopPropagation(),D("mouseleave",u,y)})),n.watch(m,u=>{const S=Number(ce(c));Number.isNaN(S)||S>2&&(t.value=!m.value),u?(d.style.padding!=="0"&&(p=d.style.padding),setTimeout(()=>{d.style.padding="0",d.style.width="",d.style.textAlign="center"},300),d.style.display="block"):(d.style.padding=`${p}`,d.style.textAlign="",d.style.display="flex")})}),()=>{var d,c,o,u;return n.withDirectives(n.createVNode("ul",{onClick:C,class:[z,v.value],ref:b},[n.createVNode("div",{class:[`${z}-title`,e.disabled&&`${z}-disabled`],style:`padding: 0 ${f}px`,ref:N},[n.createVNode("span",{class:`${W.b()}-icon`},[(c=(d=l.slots)==null?void 0:d.icon)==null?void 0:c.call(d)]),n.withDirectives(n.createVNode("span",{class:`${z}-title-content`},[e.title]),[[n.vShow,!m.value]]),n.withDirectives(n.createVNode("i",{class:{"icon icon-chevron-up":v.value!==`layer_${z}`,"icon icon-chevron-right":v.value===`layer_${z}`,"is-opened":i.value}},null),[[n.vShow,!m.value&&a!=="overflowContainer"]])]),h?n.createVNode("div",{class:`${W.b()}-item-horizontal-wrapper ${W.b()}-item-horizontal-wrapper-hidden`,ref:P},[(u=(o=l.slots).default)==null?void 0:u.call(o)]):n.createVNode(he,null,{default:()=>{var S,M;return[n.withDirectives(n.createVNode("div",{class:[`${z}-menu-item-vertical-wrapper`],ref:$},[(M=(S=l.slots).default)==null?void 0:M.call(S)]),[[n.vShow,i.value]])]}})]),[[n.vShow,t.value]])}}});const ye={width:{type:String,default:""},collapsed:{type:Boolean,default:!1},collapsedIndent:{type:Number,default:24},indentSize:{type:Number,default:24},multiple:{type:Boolean,default:!1},openKeys:{type:Array,default:[]},defaultSelectKeys:{type:Array,default:[]},mode:{type:String,default:"vertical"},router:{type:Boolean,default:!1}};var Le="",q=n.defineComponent({name:"DMenu",props:ye,emits:["select","deselect","submenu-change"],setup(e,l){const t=E("menu"),{openKeys:a,mode:s,collapsed:i}=n.toRefs(e);n.provide("isCollapsed",i),n.provide("defaultIndent",e.indentSize),n.provide("multiple",e.multiple),n.provide("openKeys",a),n.provide("defaultSelectKey",e.defaultSelectKeys),n.provide("mode",s),n.provide("collapsedIndent",e.collapsedIndent),n.provide("rootMenuEmit",l.emit),n.provide("useRouter",e.router),se(e.indentSize);const r=n.ref(null),f=n.ref(null),m=n.ref(0),g=n.computed(()=>({[`${t.b()}`]:!0,[`${t.b()}-vertical`]:s.value==="vertical",[`${t.b()}-horizontal`]:s.value==="horizontal",[`${t.b()}-collapsed`]:i.value}));return n.onMounted(()=>{var $;if(e.mode==="horizontal"){let w=!1;const h=($=f.value)==null?void 0:$.$el,C=r.value,P=C.children,y=h.children[1],b=new IntersectionObserver(N=>{N.forEach(p=>{if(p.isIntersecting){if(!p.target.classList.contains(`${t.b()}-overflow-container`)&&p.target.style.visibility==="hidden"){b.unobserve(p.target);const v=y.lastChild;v&&C.insertBefore(v,h);const d=h.previousElementSibling;if(d&&b.observe(d),d==null?void 0:d.classList.contains("devui-submenu")){const c=d,o=d.children[1];c.addEventListener("mouseenter",u=>{u.stopPropagation(),D("mouseenter",u,o)}),c.addEventListener("mouseleave",u=>{u.stopPropagation(),D("mouseleave",u,o)})}p.target.style.visibility="",p.target.remove(),m.value-=1}}else{const v=p.target.cloneNode(!0);p.target.classList.contains(`${t.b()}-overflow-container`)?w&&p.target.previousElementSibling&&y.children.length?C.appendChild(p.target.previousElementSibling):w=!0:(m.value+=1,p.target.style.visibility="hidden",h.nextSibling?C.insertBefore(p.target,h.nextSibling):C.appendChild(p.target),y.appendChild(v))}})},{root:C,threshold:1,rootMargin:"8px"});for(let N=0;N<P.length;N++)b.observe(P[N])}}),()=>{var $,w;return n.createVNode("ul",{ref:r,class:g.value,style:[e.collapsed?`width:${e.collapsedIndent*2}px`:`width: ${e.width}`,"white-space: nowrap"]},[(w=($=l.slots).default)==null?void 0:w.call($),n.withDirectives(n.createVNode(H,{ref:f,key:"overflowContainer",title:"...",class:`${t.b()}-overflow-container`},null),[[n.vShow,m.value>0&&s.value==="horizontal"]])])}}}),be={title:"Menu \u83DC\u5355",category:"\u5E03\u5C40",status:"100%",install(e){e.component(q.name,q),e.component(U.name,U),e.component(H.name,H)}};L.Menu=q,L.MenuItem=U,L.SubMenu=H,L.default=be,Object.defineProperty(L,"__esModule",{value:!0}),L[Symbol.toStringTag]="Module"});
|
|
1
|
+
(function(S,n){typeof exports=="object"&&typeof module!="undefined"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(S=typeof globalThis!="undefined"?globalThis:S||self,n(S.index={},S.Vue))})(this,function(S,n){"use strict";function _(e,l,t){let a=e;return l&&(a+=`__${l}`),t&&(a+=`--${t}`),a}function C(e,l=!1){const t=l?`.devui-${e}`:`devui-${e}`;return{b:()=>_(t),e:d=>d?_(t,d):"",m:d=>d?_(t,"",d):"",em:(d,m)=>d&&m?_(t,d,m):""}}const G=[];let K=[];const I=n.ref(24),T=C("menu"),ae=C("submenu"),j=T.b(),J=`${T.b()}-item-horizontal-wrapper`,Q=`${T.b()}-item-select`,X=`${T.b()}-active-parent`;function le(e){I.value=e}function oe(e){G.push(e)}function ie(){K=[],G.forEach(t=>{K.push(t.el.parentElement)});const e=[...K],l=t=>{var a;return(a=/layer_(\d*)/gim.exec(t))==null?void 0:a[1]};for(;e.length;){const t=e.shift();if(t!=null&&t.classList.contains(j)){const a=t.children;e.unshift(...Array.from(a));continue}else{if(t.tagName==="DIV")if(t.classList.contains(`${T.b()}-item-vertical-wrapper`)||t.classList.contains(`${ae.b()}-menu-item-vertical-wrapper`)){const a=t.parentElement;if(e.unshift(...Array.from(t.children)),a!=null&&a.classList.contains(j))t.classList.add("layer_1");else{let s=l((a==null?void 0:a.classList.value)||"");s=Number(s),t.classList.add(`layer_${s}`)}}else{const a=t.parentElement;let s=l((a==null?void 0:a.classList.value)||"");s=Number(s),t.classList.add(`layer_${s}`),t.style.paddingLeft=`${(s===2?1:s-1)*I.value}px`}if(t.tagName==="UL"){const a=t.parentElement,s=t.children;for(let d=0;d<s.length;d++)e.unshift(s[d]);const c=(a==null?void 0:a.classList.value)||"";let r=l(c);a!=null&&a.classList.contains(j)?(r=1,t.classList.add(`layer_${2}`)):(t.classList.add(`layer_${Number(r)+1}`),r=Number(r)+1)}if(t.tagName==="LI"){const a=t.parentElement,s=(a==null?void 0:a.classList.value)||"";let c=l(s);l(s),c=Number(c),t.style.padding=`0 ${c*I.value}px`}}}}function re(e){var a;const l=e;let t=null;for(let s=0;s<l.length;s++){const c=l[s];(a=c==null?void 0:c.classList)!=null&&a.contains(`${T.b()}-horizontal`)&&(t=c)}return t}function ce(e,l){let t=l.target,a=[];const{path:s}=l,c=re(s);for(a=[...Array.from(c.children)],t.tagName==="SPAN"&&(t=t.parentElement);a.length;){const r=a.shift();if((r==null?void 0:r.tagName)==="UL"||(r==null?void 0:r.classList.contains(J))){const d=r==null?void 0:r.children;a.unshift(...Array.from(d))}r!==t&&(r==null||r.classList.remove(Q),r==null||r.classList.remove(X))}}function de(e,l){const t=[],a=l.path||l.composedPath&&l.composedPath();for(let s=0;s<a.length;s++){const c=a[s];if(!c.classList.contains(j))t.push(...Array.from(c.children));else{t.push(...Array.from(c.children));break}}for(;t.length;){const s=t.shift();((s==null?void 0:s.tagName)==="UL"||(s==null?void 0:s.classList.contains(J)))&&t.push(...Array.from(s==null?void 0:s.children)),s!==e&&((s==null?void 0:s.tagName)==="DIV"&&t.unshift(...Array.from(s==null?void 0:s.children)),s==null||s.classList.remove(Q),s==null||s.classList.remove(X))}}function Y(e,l,t=!1){t?ce(e,l):de(e,l)}function ue(e){var a;const l=/layer_(\d{1,})/gim,t=e.className;return(a=l.exec(t))==null?void 0:a[1]}const fe={disabled:{type:Boolean,default:!1},href:{type:String,default:""},route:{type:[String,Object]}},Z=C("menu");function ee(e,l,t,a){const s=n.ref(!1);return t?e.includes(l)?s.value=!0:s.value=!1:e[0]===l&&!a.value?s.value=!0:s.value=!1,s.value}function me(e){var t,a;let l=e.parentElement;for(;!l.classList.contains(Z.b());)((t=l.firstElementChild)==null?void 0:t.tagName)==="DIV"&&((a=l==null?void 0:l.firstElementChild)==null||a.classList.add(`${Z.b()}-active-parent`)),l=l.parentElement;return l}function pe(e,l,t,a){if(t&&l){const s=e.route||a,c=l.push(s).then(r=>r);return{route:s,routerResult:c}}}const U=C("menu");function te(e){const l=e.path;for(let t=0;t<l.length;t++){const a=l[t];if(a.classList.contains(`${U.b()}-horizontal`))break;if(a.classList.contains(`${U.b()}-item-horizontal-wrapper`))continue;a.tagName!=="SPAN"&&a.classList.add(`${U.b()}-item-select`)}}const M=C("menu"),V=`${M.b()}-item-select`,ge=`${M.b()}-item-disabled`;var W=n.defineComponent({name:"DMenuItem",props:fe,setup(e,l){var w,u;const t=n.getCurrentInstance(),a=String(t==null?void 0:t.vnode.key),s=n.inject("mode"),c=n.inject("multiple"),r=n.inject("defaultIndent"),d=n.inject("isCollapsed"),m=n.inject("defaultSelectKey"),{disabled:p}=n.toRefs(e),P=n.ref(ee(m,a,c,p)),E=n.ref(!0),$=n.inject("rootMenuEmit"),N=n.inject("useRouter"),L=t==null?void 0:t.appContext.config.globalProperties.$router,g=n.computed(()=>({[`${M.b()}-item`]:!0,[`${M.b()}-item-isCollapsed`]:d.value,[V]:P.value,[ge]:p.value})),h=o=>{var b;o.stopPropagation();const i=o.currentTarget;let f;if(e.disabled&&o.preventDefault(),!e.disabled){if(!c)Y(i,o,s.value==="horizontal"),s.value==="horizontal"?te(o):i.classList.add(V),f=pe(e,L,N,a);else if(i.classList.contains(V)){i.classList.remove(V),$("deselect",{type:"deselect",key:a,el:i,e:o});return}else i.classList.add(V);f===void 0?$("select",{type:"select",key:a,el:i,e:o}):$("select",{type:"select",key:a,el:i,e:o,route:f})}if(s.value==="vertical"){const v=o.currentTarget;me(v)}if(s.value==="horizontal"){const v=(b=i.parentElement)==null?void 0:b.parentElement;v==null||v.classList.add(`${M.b()}-active-parent`)}},A=n.createVNode("span",{class:`${M.b()}-icon`},[(u=(w=l.slots).icon)==null?void 0:u.call(w)]),y=n.ref(null);return n.watch(p,()=>{c||(g.value[V]=!1)}),n.watch(()=>m,o=>{P.value=ee(o,a,c,p),g.value[V]=P.value}),n.onMounted(()=>{var f,b;let o="";const i=y.value;s.value==="vertical"&&((b=(f=i.parentElement)==null?void 0:f.parentElement)!=null&&b.classList.contains(M.b())?(E.value=!0,E.value&&(i.style.paddingRight="",i.style.paddingLeft=`${r}px`),n.watch(d,v=>{v?(i.style.padding!=="0"&&(o=i.style.padding),setTimeout(()=>{i.style.padding="0",i.style.width="",i.style.textAlign="center"},300),i.style.display="block"):(i.style.padding=`${o}`,i.style.textAlign="",i.style.display="flex")})):E.value=!1)}),()=>s.value==="vertical"?n.createVNode("div",{class:`${M.b()}-item-vertical-wrapper`},[n.createVNode("li",{class:g.value,onClick:h,ref:y},[l.slots.icon!==void 0&&A,e.href===""?n.createVNode(n.Transition,{name:"fade"},{default:()=>{var o,i;return[n.withDirectives(n.createVNode("span",null,[(i=(o=l.slots).default)==null?void 0:i.call(o)]),[[n.vShow,!d.value]])]}}):n.createVNode("a",{href:e.href},[n.createVNode(n.Transition,{name:"fade"},{default:()=>{var o,i;return[(i=(o=l.slots).default)==null?void 0:i.call(o)]}})])])]):n.createVNode("li",{class:g.value,onClick:h,ref:y},[l.slots.icon!==void 0&&A,e.href===""?n.createVNode(n.Transition,{name:"fade"},{default:()=>{var o,i;return[n.withDirectives(n.createVNode("span",null,[(i=(o=l.slots).default)==null?void 0:i.call(o)]),[[n.vShow,!d.value]])]}}):n.createVNode("a",{href:e.href},[n.createVNode(n.Transition,{name:"fade"},{default:()=>{var o,i;return[(i=(o=l.slots).default)==null?void 0:i.call(o)]}})])])}});function he(e=8){const l="abcdefghijklmnopqrstuvwxyz0123456789";let t="";for(let a=0;a<e;a++)t+=l[parseInt((Math.random()*l.length).toString())];return t}function ne(e){for(;e&&e.tagName!=="LI"&&e.tagName!=="UL";)e=e.parentElement;return e}const se="0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out",D={"before-enter"(e){e.style.transition=se,e.setAttribute("data-oldPadding",e.style.padding),e.setAttribute("data-oldMargin",e.style.margin),e.style.height="0",e.style.padding="0",e.style.margin="0"},enter(e){e.dataset.oldOverflow=e.style.overflow,e.scrollHeight!==0?e.style.height=e.scrollHeight+"px":e.style.height="",e.style.padding=e.getAttribute("data-oldPadding"),e.style.margin=e.getAttribute("data-oldMargin"),e.style.overflow="hidden"},"after-enter"(e){e.style.transition="",e.style.transition="",e.style.height="",e.style.overflow=e.getAttribute("data-overflow")},"before-leave"(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},leave(e){e.scrollHeight!==0&&(e.style.transition=se,e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0")},"after-leave"(e){e.style.transition="",e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}};var ye=n.defineComponent({name:"DMenuTransition",setup(e,l){return()=>n.createVNode(n.Transition,{onBeforeEnter:t=>D["before-enter"](t),onBeforeLeave:t=>D["before-leave"](t),onEnter:t=>D.enter(t),onAfterEnter:t=>D["after-enter"](t),onLeave:t=>D.leave(t),onAfterLeave:t=>D["after-leave"](t)},{default:()=>{var t,a;return[(a=(t=l.slots).default)==null?void 0:a.call(t)]}})}});const be={title:{type:String,default:""},disabled:{type:Boolean,default:!1}},B=C("menu"),ve=C("submenu"),R=`${B.b()}-item-horizontal-wrapper-hidden`,O=`${B.b()}-item-horizontal-wrapper-show`;function x(e,l,t){const a=l.currentTarget,s=a.parentElement,c=t.children;if(t.style.padding="0 20px !important",e==="mouseenter"){if((s==null?void 0:s.tagName)==="DIV"){t.classList.add(`${B.b()}-item-horizontal-wrapper-level`);const{width:r}=a.getClientRects()[0];t.style.top="0px",t.style.left=`${r}px`}else t.style.top="26px",t.style.left="0px";t.classList.remove(R),t.classList.add(O);for(let r=0;r<c.length;r++){const d=c[r];if(d.tagName==="UL"&&d.classList.contains(ve.b())){const m=d.getElementsByClassName(`${B.b()}-item-horizontal-wrapper`)[0];d.addEventListener("mouseenter",p=>{p.stopPropagation(),x("mouseenter",p,m),m.classList.remove(R),m.classList.add(O)}),d.addEventListener("mouseleave",p=>{p.stopPropagation(),x("mouseleave",p,m),m.classList.remove(O),m.classList.add(R)})}}}e==="mouseleave"&&(t.classList.remove(O),t.classList.add(R))}const q=C("menu"),z=C("submenu").b();var H=n.defineComponent({name:"DSubMenu",props:be,setup(e,l){const t=n.ref(!0),{vnode:{key:a}}=n.getCurrentInstance();let s=String(a);const c=n.inject("openKeys"),r=n.ref(c.value.includes(s)),d=n.inject("defaultIndent"),m=n.inject("isCollapsed"),p=n.inject("mode"),P=n.ref(null),E=n.inject("rootMenuEmit"),$=p.value==="horizontal";s==="null"&&(console.warn("[devui][menu]: Key can not be null"),s=`randomKey-${he(16)}`);const N=u=>{u.stopPropagation();const o=ne(u.target);if(!(o.classList.contains(z)&&$)&&($&&(Y(o,u,!0),te(u)),!e.disabled&&p.value!=="horizontal")){const i=ne(u.target),f=c.value.indexOf(s);f>=0&&i.tagName==="UL"?c.value.splice(f,1):i.tagName==="UL"&&c.value.push(s),r.value=c.value.indexOf(s)>=0,E("submenu-change",{type:"submenu-change",state:r.value,key:s,el:o})}},L=n.ref(null);let g;const h=n.ref(null),A=n.ref(null);let y="";const w=n.ref("");return n.watchEffect(()=>{g=L.value,oe({el:h.value})},{flush:"post"}),n.watch(()=>c,u=>{u.value.includes(s)?r.value=!0:r.value=!1},{deep:!0}),n.onMounted(()=>{var i;const u=A.value,o=h.value;ie(),w.value=`layer_${(i=Array.from(o.classList).at(-1))==null?void 0:i.replace("layer_","")}`,$&&!e.disabled&&(h.value.addEventListener("mouseenter",f=>{f.stopPropagation(),x("mouseenter",f,g)}),h.value.addEventListener("mouseleave",f=>{f.stopPropagation(),x("mouseleave",f,g)})),n.watch(m,f=>{const b=Number(ue(o));Number.isNaN(b)||b>2&&(t.value=!m.value),f?(u.style.padding!=="0"&&(y=u.style.padding),setTimeout(()=>{u.style.padding="0",u.style.width="",u.style.textAlign="center"},300),u.style.display="block"):(u.style.padding=`${y}`,u.style.textAlign="",u.style.display="flex")})}),()=>{var u,o,i,f;return n.withDirectives(n.createVNode("ul",{onClick:N,class:[z,w.value,e.disabled&&`${z}-disabled`],ref:h},[n.createVNode("div",{class:[`${z}-title`],style:`padding: 0 ${d}px`,ref:A},[n.createVNode("span",{class:`${q.b()}-icon`},[(o=(u=l.slots)==null?void 0:u.icon)==null?void 0:o.call(u)]),n.withDirectives(n.createVNode("span",{class:`${z}-title-content`},[e.title]),[[n.vShow,!m.value]]),n.withDirectives(n.createVNode("i",{class:{"icon icon-chevron-up":w.value!==`layer_${z}`,"icon icon-chevron-right":w.value===`layer_${z}`,"is-opened":r.value}},null),[[n.vShow,!m.value&&a!=="overflowContainer"]])]),$?n.withDirectives(n.createVNode("div",{class:`${q.b()}-item-horizontal-wrapper ${q.b()}-item-horizontal-wrapper-hidden`,ref:L},[(f=(i=l.slots).default)==null?void 0:f.call(i)]),[[n.vShow,!e.disabled]]):n.createVNode(ye,null,{default:()=>{var b,v;return[n.withDirectives(n.createVNode("div",{class:[`${z}-menu-item-vertical-wrapper`],ref:P},[(v=(b=l.slots).default)==null?void 0:v.call(b)]),[[n.vShow,r.value]])]}})]),[[n.vShow,t.value]])}}});const Le={width:{type:String,default:""},collapsed:{type:Boolean,default:!1},collapsedIndent:{type:Number,default:24},indentSize:{type:Number,default:24},multiple:{type:Boolean,default:!1},openKeys:{type:Array,default:[]},defaultSelectKeys:{type:Array,default:[]},mode:{type:String,default:"vertical"},router:{type:Boolean,default:!1}};var Ne="",F=n.defineComponent({name:"DMenu",props:Le,emits:["select","deselect","submenu-change"],setup(e,l){const t=C("menu"),{openKeys:a,mode:s,collapsed:c}=n.toRefs(e);n.provide("isCollapsed",c),n.provide("defaultIndent",e.indentSize),n.provide("multiple",e.multiple),n.provide("openKeys",a),n.provide("defaultSelectKey",e.defaultSelectKeys),n.provide("mode",s),n.provide("collapsedIndent",e.collapsedIndent),n.provide("rootMenuEmit",l.emit),n.provide("useRouter",e.router),le(e.indentSize);const r=n.ref(null),d=n.ref(0),m=n.ref(null),p=`${t.b()}-item-select`,P=n.computed(()=>({[`${t.b()}`]:!0,[`${t.b()}-vertical`]:s.value==="vertical",[`${t.b()}-horizontal`]:s.value==="horizontal",[`${t.b()}-collapsed`]:c.value})),E=n.reactive({[p]:!1,[`${t.b()}-overflow-container`]:!0}),$=N=>{const L=Array.from(N.children);for(const g of L)if(g.classList.contains(p)){E[p]=!0;break}else E[p]=!1};return n.onMounted(()=>{var N;if(e.mode==="horizontal"){let L=!1;const g=(N=m.value)==null?void 0:N.$el,h=r.value,A=h.children,y=g.children[1],w=new IntersectionObserver(u=>{u.forEach(o=>{if(o.isIntersecting){if(!o.target.classList.contains(`${t.b()}-overflow-container`)&&o.target.style.visibility==="hidden"){w.unobserve(o.target),h.insertBefore(o.target,g),o.target.style.visibility="";const i=g.previousElementSibling;if(i&&o.boundingClientRect.width%o.target.getBoundingClientRect().width===0&&w.observe(i),i!=null&&i.classList.contains("devui-submenu")){const b=i,v=i.children[1];b.addEventListener("mouseenter",k=>{k.stopPropagation(),x("mouseenter",k,v)}),b.addEventListener("mouseleave",k=>{k.stopPropagation(),x("mouseleave",k,v)})}d.value-=1,w.observe(o.target),y.lastChild&&y.removeChild(y.lastChild),$(y)}}else{const i=o.target.cloneNode(!0);o.target.classList.contains(`${t.b()}-overflow-container`)?L&&o.target.previousElementSibling&&y.children.length?h.appendChild(o.target.previousElementSibling):L=!0:(d.value+=1,o.target.style.visibility="hidden",g.nextSibling?h.insertBefore(o.target,g.nextSibling):h.appendChild(o.target),y.appendChild(i),$(y))}})},{root:h,threshold:1,rootMargin:"8px"});for(let u=0;u<A.length;u++)w.observe(A[u])}}),()=>{var N,L;return n.createVNode("ul",{ref:r,class:P.value,style:[e.collapsed?`width:${e.collapsedIndent*2}px`:`width: ${e.width}`]},[(L=(N=l.slots).default)==null?void 0:L.call(N),n.withDirectives(n.createVNode(H,{ref:m,key:"overflowContainer",title:"...",class:E},null),[[n.vShow,d.value>0&&s.value==="horizontal"]])])}}}),we={title:"Menu \u83DC\u5355",category:"\u5E03\u5C40",status:"100%",install(e){e.component(F.name,F),e.component(W.name,W),e.component(H.name,H)}};S.Menu=F,S.MenuItem=W,S.SubMenu=H,S.default=we,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/menu/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.devui-menu-vertical a,.devui-menu-horizontal a{text-decoration:none}.devui-menu-vertical ul,.devui-menu-vertical li,.devui-menu-horizontal ul,.devui-menu-horizontal li{list-style:none;white-space:nowrap}.devui-menu-horizontal{display:flex;box-sizing:border-box;line-height:var(--devui-line-height-base, 1.5);background:var(--devui-global-bg-normal);padding:14px 20px}.devui-menu-horizontal .devui-menu-item{display:flex;position:relative;box-sizing:content-box;padding:0 20px!important;line-height:24px;cursor:pointer}.devui-menu-horizontal .devui-menu-item:after{content:"";display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px}.devui-menu-horizontal :after{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));background:transparent}.devui-menu-horizontal .devui-menu-item-select .devui-submenu-title-content,.devui-menu-horizontal .devui-menu-active-parent .devui-submenu-title-content{color:var(--devui-menu-item-hover)}.devui-menu-horizontal .devui-menu-item-select:after,.devui-menu-horizontal .devui-menu-active-parent:after{display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px;content:"";opacity:1;background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-menu-item span,.devui-menu-horizontal .devui-menu-item a{color:var(--devui-text, #252b3a)}.devui-menu-horizontal .devui-menu-item:hover span,.devui-menu-horizontal .devui-menu-item:hover a{color:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-menu-item:hover:after{background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-submenu{margin:0;padding:0;position:relative}.devui-menu-horizontal .devui-submenu div.devui-submenu-title{padding:0 20px}.devui-menu-horizontal .devui-submenu div.devui-submenu-title span{margin:0}.devui-menu-horizontal .devui-submenu div.devui-submenu-title .icon-chevron-up,.devui-menu-horizontal .devui-submenu div.devui-submenu-title .icon-chevron-right{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-menu-horizontal .devui-submenu:after{content:"";display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px}.devui-menu-horizontal .devui-submenu:hover{cursor:pointer}.devui-menu-horizontal .devui-submenu:hover:after{background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-submenu:hover>div>i.icon-chevron-up{transform:rotate(180deg)}.devui-menu-horizontal .devui-submenu:hover>div>i.icon-chevron-right{transform:rotate(180deg)}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1)),left 0 linear;background:var(--devui-global-bg-normal);z-index:var(--devui-z-index-modal, 1050)}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));opacity:1;visibility:visible;max-height:100vh;padding:10px 0!important;border-radius:8px;position:absolute}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-menu-item{margin-top:5px}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-submenu{margin:5px 0;padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-submenu div.devui-submenu-title{padding:0!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-menu-item-horizontal-wrapper-level .devui-submenu{padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));visibility:hidden;position:absolute;padding:0!important;max-height:0;overflow:hidden;opacity:0}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-menu-item{margin-top:5px}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-submenu{margin:5px 0;padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-submenu div.devui-submenu-title{padding:0!important}.devui-submenu-menu-item-vertical-wrapper{overflow:hidden}.devui-menu-vertical{padding:0;transition:width var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1)),padding var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));border-right:var(--devui-line, #d7d8da) 1px solid;background:var(--devui-area, #f8f8f8)!important}.devui-menu-vertical :after{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));background:transparent}.devui-menu-vertical .layer_1{margin:0!important}.devui-menu-vertical .layer_2>div.devui-submenu-title{margin:0!important;background:var(--devui-block, #ffffff)}.devui-menu-vertical.devui-menu-collapsed .devui-menu-icon{margin:auto}.devui-menu-vertical.devui-menu-collapsed ul li{display:none!important}.devui-menu-vertical.devui-menu-collapsed .devui-submenu div.devui-submenu-title .devui-menu-icon{margin:auto}.devui-menu-vertical .devui-menu-item-vertical-wrapper{padding-left:0!important}.devui-menu-vertical .devui-menu-item{width:100%;height:40px;flex-grow:1;line-height:40px;cursor:pointer;color:var(--devui-menu-item);background:var(--devui-block, #ffffff);display:flex}.devui-menu-vertical .devui-menu-item span:nth-child(2){text-align:left}.devui-menu-vertical div:not(.devui-submenu-menu-item-vertical-wrapper){display:flex;flex:auto}.devui-menu-vertical .devui-menu-item:after{display:block;position:absolute;right:0;top:0;transform:scaleX(0);content:"";opacity:1;background:var(--devui-primary-hover, #5e7ce0)}.devui-menu-vertical .devui-menu-item-select{background:var(--devui-primary-bg, #f2f5fc)!important;position:relative}.devui-menu-vertical .devui-menu-item-select span,.devui-menu-vertical .devui-menu-item-select a{color:var(--devui-menu-item-hover)}.devui-menu-vertical .devui-menu-item-select:after{display:block;position:absolute;right:0;top:0;height:100%;width:4px;content:"";opacity:1;background:var(--devui-brand, #5e7ce0);transform:scaleX(1)}.devui-menu-vertical .devui-submenu>div:hover span.devui-submenu-title-content{color:var(--devui-menu-item-hover)}.devui-menu-vertical .devui-menu-item:hover{color:var(--devui-menu-item-hover)}.devui-menu-vertical li.devui-menu-item,.devui-menu-vertical div.devui-submenu-title{white-space:nowrap;overflow:hidden}.devui-menu-vertical li.devui-menu-item span:nth-child(2),.devui-menu-vertical div.devui-submenu-title span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.devui-menu-vertical li.devui-menu-item span:nth-child(2) span,.devui-menu-vertical div.devui-submenu-title span:nth-child(2) span{overflow:hidden;text-overflow:ellipsis}.devui-menu-vertical .devui-menu-item-isCollapsed{width:fit-content}.devui-menu-vertical .devui-menu-item-isCollapsed .devui-menu-icon{margin:auto}.devui-menu-vertical ul.devui-submenu{margin:0;padding:0}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title{display:flex;cursor:pointer;width:100%;height:40px;margin:4px 0;line-height:40px;padding-left:18px;align-items:center;color:var(--devui-menu-item)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title:nth-child(1){font-size:var(--devui-font-size-lg, 14px)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title span.devui-submenu-title-content{font-size:var(--devui-font-size-lg, 14px);flex:auto}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title span.devui-menu-icon{text-align:center}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title .icon-chevron-up{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title i.icon-chevron-up.is-opened{transform:rotate(180deg)}.devui-menu-vertical ul.devui-submenu .devui-menu-item{display:flex}.devui-menu-vertical ul.devui-submenu .devui-menu-item>span{flex:auto;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));color:var(--devui-menu-item-sub)}.devui-menu-vertical ul.devui-submenu .devui-menu-item:hover>span{color:var(--devui-menu-item-hover)}.devui-menu-vertical ul.devui-submenu .devui-menu-item-select *{color:var(--devui-menu-item-hover)!important}.devui-menu-vertical ul li~ul>div{margin-top:0!important}.devui-menu-vertical ul li{background:var(--devui-area, #f8f8f8)!important}.devui-menu-icon+span{margin-left:10px}.devui-menu-item-disabled,.devui-submenu-disabled,.devui-menu-item-disabled:hover,.devui-submenu-disabled:hover{color:var(--devui-menu-disabled)!important;cursor:not-allowed!important}.devui-submenu-disabled:hover span{color:var(--devui-menu-disabled)!important}.fade-enter-active,.fade-leave-active{transition:opacity var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}.fade-leave-to{display:none}.fade-enter-from,.fade-leave-to{opacity:0}
|
|
1
|
+
.devui-menu-vertical a,.devui-menu-vertical a:hover,.devui-menu-vertical a:active,.devui-menu-vertical a:visited,.devui-menu-horizontal a,.devui-menu-horizontal a:hover,.devui-menu-horizontal a:active,.devui-menu-horizontal a:visited{text-decoration:none}.devui-menu-vertical ul,.devui-menu-vertical li,.devui-menu-horizontal ul,.devui-menu-horizontal li{list-style:none;white-space:nowrap}.devui-menu-horizontal{display:flex;box-sizing:border-box;line-height:var(--devui-line-height-base, 1.5);background:var(--devui-global-bg-normal);padding:14px 20px}.devui-menu-horizontal .devui-menu-item{display:flex;position:relative;box-sizing:content-box;padding:0 20px!important;line-height:24px;cursor:pointer}.devui-menu-horizontal .devui-menu-item:after{content:"";display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px}.devui-menu-horizontal :after{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));background:transparent}.devui-menu-horizontal .devui-menu-item-select .devui-submenu-title-content,.devui-menu-horizontal .devui-menu-active-parent .devui-submenu-title-content{color:var(--devui-menu-item-hover)}.devui-menu-horizontal .devui-menu-item-select:after,.devui-menu-horizontal .devui-menu-active-parent:after{display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px;content:"";opacity:1;background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-menu-item span,.devui-menu-horizontal .devui-menu-item a{color:var(--devui-text, #252b3a)}.devui-menu-horizontal .devui-menu-item:hover span,.devui-menu-horizontal .devui-menu-item:hover a{color:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-menu-item:hover:after{background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-submenu{margin:0;padding:0;position:relative}.devui-menu-horizontal .devui-submenu div.devui-submenu-title{padding:0 20px}.devui-menu-horizontal .devui-submenu div.devui-submenu-title span{margin:0}.devui-menu-horizontal .devui-submenu div.devui-submenu-title .icon-chevron-up,.devui-menu-horizontal .devui-submenu div.devui-submenu-title .icon-chevron-right{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-menu-horizontal .devui-submenu:after{content:"";display:block;position:absolute;left:20px;right:20px;bottom:0;width:auto;height:2px}.devui-menu-horizontal .devui-submenu:hover{cursor:pointer}.devui-menu-horizontal .devui-submenu:hover:after{background:var(--devui-brand, #5e7ce0)}.devui-menu-horizontal .devui-submenu:hover>div>i.icon-chevron-up{transform:rotate(180deg)}.devui-menu-horizontal .devui-submenu:hover>div>i.icon-chevron-right{transform:rotate(180deg)}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1)),left 0 linear;background:var(--devui-global-bg-normal);z-index:var(--devui-z-index-modal, 1050)}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));opacity:1;visibility:visible;max-height:100vh;padding:10px 0!important;border-radius:8px;position:absolute}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-menu-item{margin-top:5px}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-submenu{margin:5px 0;padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-submenu div.devui-submenu-title{padding:0!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-show .devui-menu-item-horizontal-wrapper-level .devui-submenu{padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));visibility:hidden;position:absolute;padding:0!important;max-height:0;overflow:hidden;opacity:0}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-menu-item{margin-top:5px}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-submenu{margin:5px 0;padding:0 20px!important}.devui-menu-horizontal .devui-submenu div.devui-menu-item-horizontal-wrapper-hidden .devui-submenu div.devui-submenu-title{padding:0!important}.devui-menu-horizontal .devui-menu-item-disabled span,.devui-menu-horizontal .devui-menu-item-disabled a,.devui-menu-horizontal .devui-submenu-disabled span,.devui-menu-horizontal .devui-submenu-disabled a{color:var(--devui-menu-disabled)!important;cursor:not-allowed}.devui-menu-horizontal .devui-menu-item-disabled:after,.devui-menu-horizontal .devui-submenu-disabled:after{content:unset!important}.devui-menu-horizontal .devui-menu-item-disabled+.devui-menu-item-horizontal-wrapper,.devui-menu-horizontal .devui-submenu-disabled+.devui-menu-item-horizontal-wrapper{display:none}.devui-submenu-menu-item-vertical-wrapper{overflow:hidden}.devui-submenu-menu-item{color:var(--devui-menu-item)}.devui-menu-vertical{padding:0;transition:width var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1)),padding var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));border-right:var(--devui-line, #d7d8da) 1px solid;background:var(--devui-area, #f8f8f8)!important}.devui-menu-vertical :after{transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));background:transparent}.devui-menu-vertical .layer_1{margin:0!important}.devui-menu-vertical .layer_2>div.devui-submenu-title{margin:0!important;background:var(--devui-block, #ffffff)}.devui-menu-vertical.devui-menu-collapsed .devui-menu-icon{margin:auto}.devui-menu-vertical.devui-menu-collapsed ul li{display:none!important}.devui-menu-vertical.devui-menu-collapsed .devui-submenu div.devui-submenu-title .devui-menu-icon{margin:auto}.devui-menu-vertical .devui-menu-item-vertical-wrapper{padding-left:0!important}.devui-menu-vertical .devui-menu-item{width:100%;height:40px;flex-grow:1;line-height:40px;cursor:pointer;color:var(--devui-menu-item);background:var(--devui-block, #ffffff);display:flex}.devui-menu-vertical .devui-menu-item span:nth-child(2){text-align:left}.devui-menu-vertical div:not(.devui-submenu-menu-item-vertical-wrapper){display:flex;flex:auto}.devui-menu-vertical .devui-menu-item:after{display:block;position:absolute;right:0;top:0;transform:scaleX(0);content:"";opacity:1;background:var(--devui-primary-hover, #5e7ce0)}.devui-menu-vertical ul.devui-submenu{margin:0;padding:0}.devui-menu-vertical ul.devui-submenu .devui-menu-item{display:flex;background:var(--devui-area, #f8f8f8)}.devui-menu-vertical ul.devui-submenu .devui-menu-item>span{flex:auto;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transition:all var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1));color:var(--devui-menu-item)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title{display:flex;cursor:pointer;width:100%;height:40px;margin:4px 0;line-height:40px;padding-left:18px;align-items:center;color:var(--devui-menu-item)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title:nth-child(1){font-size:var(--devui-font-size-lg, 14px)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title span.devui-submenu-title-content{font-size:var(--devui-font-size-lg, 14px);flex:auto;color:var(--devui-menu-item)}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title span.devui-menu-icon{text-align:center}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title .icon-chevron-up{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-menu-vertical ul.devui-submenu div.devui-submenu-title i.icon-chevron-up.is-opened{transform:rotate(180deg)}.devui-menu-vertical ul.devui-submenu .devui-submenu-title:hover span{color:var(--devui-menu-item-hover)!important}.devui-menu-vertical ul.devui-submenu .devui-menu-item:hover span{color:var(--devui-menu-item-hover)}.devui-menu-vertical ul.devui-submenu .devui-menu-item-select *{color:var(--devui-menu-item-hover)!important}.devui-menu-vertical .devui-menu-item-select{background:var(--devui-primary-bg, #f2f5fc)!important;position:relative}.devui-menu-vertical .devui-menu-item-select span,.devui-menu-vertical .devui-menu-item-select a{color:var(--devui-menu-item-hover)}.devui-menu-vertical .devui-menu-item-select:after{display:block;position:absolute;right:0;top:0;height:100%;width:4px;content:"";opacity:1;background:var(--devui-brand, #5e7ce0);transform:scaleX(1)}.devui-menu-vertical .devui-menu-item:hover{color:var(--devui-menu-item-hover)}.devui-menu-vertical li.devui-menu-item,.devui-menu-vertical div.devui-submenu-title{white-space:nowrap;overflow:hidden}.devui-menu-vertical li.devui-menu-item span:nth-child(2),.devui-menu-vertical div.devui-submenu-title span:nth-child(2){overflow:hidden;text-overflow:ellipsis}.devui-menu-vertical li.devui-menu-item span:nth-child(2) span,.devui-menu-vertical div.devui-submenu-title span:nth-child(2) span{overflow:hidden;text-overflow:ellipsis}.devui-menu-vertical .devui-menu-item-isCollapsed{width:fit-content}.devui-menu-vertical .devui-menu-item-isCollapsed .devui-menu-icon{margin:auto}.devui-menu-vertical ul li~ul>div{margin-top:0!important}.devui-menu-vertical .devui-menu-item-disabled *,.devui-menu-vertical .devui-submenu-disabled *{color:var(--devui-menu-disabled)!important;cursor:not-allowed!important;background:var(--devui-block, #ffffff)!important}.devui-menu-vertical .devui-menu-item-disabled:after,.devui-menu-vertical .devui-submenu-disabled:after{content:unset}.devui-menu-icon+span{margin-left:10px}.devui-menu-item-disabled:hover,.devui-submenu-disabled:hover{color:var(--devui-menu-disabled)!important;cursor:not-allowed!important}.devui-submenu-disabled:hover span{color:var(--devui-menu-disabled)!important}.fade-enter-active,.fade-leave-active{transition:opacity var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-smooth, cubic-bezier(.645, .045, .355, 1))}.fade-leave-to{display:none}.fade-enter-from,.fade-leave-to{opacity:0}.devui-menu-item-disabled,.devui-menu-item-disabled.devui-menu-vertical .devui-menu-item-disabled.devui-menu-item-select .devui-submenu-disabled,.devui-submenu-disabled.devui-menu-vertical,.devui-submenu-disabled.devui-menu-item-select{color:var(--devui-menu-disabled)!important;cursor:not-allowed!important}
|