vue-devui 1.6.13 → 1.6.15

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 (66) hide show
  1. package/auto-complete/index.es.js +20 -39
  2. package/auto-complete/index.umd.js +10 -10
  3. package/breadcrumb/index.es.js +25 -39
  4. package/breadcrumb/index.umd.js +1 -1
  5. package/category-search/index.es.js +27 -41
  6. package/category-search/index.umd.js +13 -13
  7. package/category-search/style.css +1 -1
  8. package/checkbox/index.es.js +20 -39
  9. package/checkbox/index.umd.js +11 -11
  10. package/code-review/index.es.js +20 -39
  11. package/code-review/index.umd.js +17 -17
  12. package/data-grid/index.es.js +27 -41
  13. package/data-grid/index.umd.js +12 -12
  14. package/date-picker-pro/index.es.js +20 -39
  15. package/date-picker-pro/index.umd.js +13 -13
  16. package/dropdown/index.es.js +25 -39
  17. package/dropdown/index.umd.js +1 -1
  18. package/editable-select/index.es.js +20 -39
  19. package/editable-select/index.umd.js +14 -14
  20. package/editor-md/index.es.js +27 -41
  21. package/editor-md/index.umd.js +23 -23
  22. package/form/index.es.js +20 -39
  23. package/form/index.umd.js +12 -12
  24. package/input/index.es.js +20 -39
  25. package/input/index.umd.js +10 -10
  26. package/input-number/index.es.js +20 -39
  27. package/input-number/index.umd.js +18 -18
  28. package/mention/index.es.js +20 -39
  29. package/mention/index.umd.js +18 -18
  30. package/modal/index.es.js +18 -37
  31. package/modal/index.umd.js +2 -2
  32. package/overlay/index.es.js +18 -37
  33. package/overlay/index.umd.js +1 -1
  34. package/package.json +2 -2
  35. package/pagination/index.es.js +27 -41
  36. package/pagination/index.umd.js +13 -13
  37. package/popover/index.es.js +20 -39
  38. package/popover/index.umd.js +14 -14
  39. package/radio/index.es.js +20 -39
  40. package/radio/index.umd.js +17 -17
  41. package/search/index.es.js +20 -39
  42. package/search/index.umd.js +12 -12
  43. package/select/index.es.js +20 -39
  44. package/select/index.umd.js +16 -16
  45. package/splitter/index.es.js +20 -39
  46. package/splitter/index.umd.js +16 -16
  47. package/style.css +1 -1
  48. package/switch/index.es.js +20 -39
  49. package/switch/index.umd.js +12 -12
  50. package/table/index.es.js +27 -41
  51. package/table/index.umd.js +14 -14
  52. package/textarea/index.es.js +20 -39
  53. package/textarea/index.umd.js +15 -15
  54. package/time-picker/index.es.js +20 -39
  55. package/time-picker/index.umd.js +16 -16
  56. package/time-select/index.es.js +20 -39
  57. package/time-select/index.umd.js +10 -10
  58. package/tooltip/index.es.js +20 -39
  59. package/tooltip/index.umd.js +17 -17
  60. package/tree/index.es.js +20 -39
  61. package/tree/index.umd.js +12 -12
  62. package/types/dropdown/src/dropdown-types.d.ts +4 -0
  63. package/types/dropdown/src/dropdown.d.ts +9 -0
  64. package/types/tooltip/src/tooltip.d.ts +1 -1
  65. package/vue-devui.es.js +26 -40
  66. package/vue-devui.umd.js +63 -63
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import { toRefs, watch, onMounted, onUnmounted, ref, computed, defineComponent, createVNode, Transition, mergeProps, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, provide, Teleport, vShow, getCurrentInstance, onBeforeUnmount, resolveComponent } from "vue";
21
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
21
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
22
22
  const breadcrumbProps = {
23
23
  source: {
24
24
  type: Array,
@@ -116,6 +116,10 @@ const dropdownProps = {
116
116
  destroyOnHide: {
117
117
  type: Boolean,
118
118
  default: true
119
+ },
120
+ teleport: {
121
+ type: [String, Object],
122
+ default: "body"
119
123
  }
120
124
  };
121
125
  const POPPER_TRIGGER_TOKEN = Symbol("popper-trigger");
@@ -388,16 +392,6 @@ const flexibleOverlayProps = {
388
392
  default: false
389
393
  }
390
394
  };
391
- function getScrollParent(element) {
392
- const overflowRegex = /(auto|scroll|hidden)/;
393
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
394
- const style = window.getComputedStyle(parent);
395
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
396
- return parent;
397
- }
398
- }
399
- return window;
400
- }
401
395
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
402
396
  let { x, y } = point;
403
397
  if (!isArrowCenter) {
@@ -418,9 +412,9 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
418
412
  return { x, y };
419
413
  }
420
414
  function useOverlay(props, emit) {
415
+ const { position, showArrow } = toRefs(props);
421
416
  const overlayRef = ref();
422
417
  const arrowRef = ref();
423
- let originParent = null;
424
418
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
425
419
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
426
420
  const staticSide = {
@@ -441,51 +435,42 @@ function useOverlay(props, emit) {
441
435
  const hostEl = props.origin;
442
436
  const overlayEl = unref(overlayRef.value);
443
437
  const arrowEl = unref(arrowRef.value);
444
- const middleware = [
445
- offset(props.offset),
446
- autoPlacement({
447
- alignment: props.align,
448
- allowedPlacements: props.position
449
- })
450
- ];
451
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
452
- props.shiftOffset !== void 0 && middleware.push(shift());
453
- if (!overlayEl) {
454
- return;
438
+ const [mainPosition, ...fallbackPosition] = position.value;
439
+ const middleware = [offset(props.offset)];
440
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
441
+ if (showArrow.value) {
442
+ middleware.push(arrow({ element: arrowRef.value }));
455
443
  }
456
444
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
457
445
  strategy: "fixed",
446
+ placement: mainPosition,
458
447
  middleware
459
448
  });
460
449
  let applyX = x;
461
450
  let applyY = y;
462
- if (props.shiftOffset !== void 0) {
463
- const { x: shiftX, y: shiftY } = middlewareData.shift;
464
- shiftX < 0 && (applyX -= props.shiftOffset);
465
- shiftX > 0 && (applyX += props.shiftOffset);
466
- shiftY < 0 && (applyY -= props.shiftOffset);
467
- shiftY > 0 && (applyY += props.shiftOffset);
468
- }
469
451
  emit("positionChange", placement);
470
452
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
471
453
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
472
454
  };
455
+ const scrollCallback = (e) => {
456
+ var _a, _b;
457
+ const scrollElement = e.target;
458
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
459
+ updatePosition();
460
+ }
461
+ };
473
462
  watch(() => props.modelValue, () => {
474
463
  if (props.modelValue && props.origin) {
475
- originParent = getScrollParent(props.origin);
476
464
  nextTick(updatePosition);
477
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
478
- originParent !== window && window.addEventListener("scroll", updatePosition);
465
+ window.addEventListener("scroll", scrollCallback, true);
479
466
  window.addEventListener("resize", updatePosition);
480
467
  } else {
481
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
482
- originParent !== window && window.removeEventListener("scroll", updatePosition);
468
+ window.removeEventListener("scroll", scrollCallback, true);
483
469
  window.removeEventListener("resize", updatePosition);
484
470
  }
485
471
  });
486
472
  onUnmounted(() => {
487
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
488
- originParent !== window && window.removeEventListener("scroll", updatePosition);
473
+ window.removeEventListener("scroll", scrollCallback, true);
489
474
  window.removeEventListener("resize", updatePosition);
490
475
  });
491
476
  return { arrowRef, overlayRef, updatePosition };
@@ -604,7 +589,8 @@ var DDropdown = defineComponent({
604
589
  offset: offset2,
605
590
  destroyOnHide,
606
591
  shiftOffset,
607
- showAnimation
592
+ showAnimation,
593
+ teleport
608
594
  } = toRefs(props);
609
595
  const origin = ref();
610
596
  const dropdownRef = ref();
@@ -646,7 +632,7 @@ var DDropdown = defineComponent({
646
632
  return [(_a = slots.default) == null ? void 0 : _a.call(slots)];
647
633
  }
648
634
  }), createVNode(Teleport, {
649
- "to": "body"
635
+ "to": teleport.value
650
636
  }, {
651
637
  default: () => [createVNode(Transition, {
652
638
  "name": showAnimation.value ? ns2.m(`fade-${currentPosition.value}`) : ""
@@ -1 +1 @@
1
- var se=Object.defineProperty,de=Object.defineProperties;var ue=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var _=(f,e,h)=>e in f?se(f,e,{enumerable:!0,configurable:!0,writable:!0,value:h}):f[e]=h,F=(f,e)=>{for(var h in e||(e={}))fe.call(e,h)&&_(f,h,e[h]);if(j)for(var h of j(e))me.call(e,h)&&_(f,h,e[h]);return f},z=(f,e)=>de(f,ue(e));(function(f,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],e):(f=typeof globalThis!="undefined"?globalThis:f||self,e(f.index={},f.Vue,f.dom))})(this,function(f,e,h){"use strict";const M={source:{type:Array,default:[]},separatorIcon:{type:String}},I={showMenu:{type:Boolean,default:!1},menuList:{type:Array},isSearch:{type:Boolean,dafault:!1},to:{type:[String,Object],default:""},replace:{type:Boolean,default:!1}};function x(t,n,o){let a=t;return n&&(a+=`__${n}`),o&&(a+=`--${o}`),a}function L(t,n=!1){const o=n?`.devui-${t}`:`devui-${t}`;return{b:()=>x(o),e:c=>c?x(o,c):"",m:c=>c?x(o,"",c):"",em:(c,r)=>c&&r?x(o,c,r):""}}var pe="";const H={visible:{type:Boolean,default:!1},trigger:{type:String,default:"click"},closeScope:{type:String,default:"all"},position:{type:Array,default:["bottom"]},align:{type:String,default:null},offset:{type:[Number,Object],default:4},shiftOffset:{type:Number},closeOnMouseLeaveMenu:{type:Boolean,default:!1},showAnimation:{type:Boolean,default:!0},overlayClass:{type:String,default:""},destroyOnHide:{type:Boolean,default:!0}},R=Symbol("popper-trigger");function U(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const E=new Map;function P(t,n,o){return t==null||t.addEventListener(n,o),()=>{t==null||t.removeEventListener(n,o)}}const Y=({id:t,isOpen:n,origin:o,dropdownRef:a,props:l,emit:s})=>{let i=!1,c=!1;const{trigger:r,closeScope:d,closeOnMouseLeaveMenu:g}=e.toRefs(l),p=y=>{n.value=y,s("toggle",n.value)},b=async(y,v)=>{await new Promise(u=>setTimeout(u,50)),!(y==="origin"&&i||y==="dropdown"&&c)&&(v&&[...E.values()].reverse().forEach(u=>{setTimeout(()=>{var m;(m=u.toggle)==null||m.call(u)},0)}),p(!1))};e.watch([r,o,a],([y,v,u],m,T)=>{const V=U(v),O=[];setTimeout(()=>{O.push(P(document,"click",w=>{w.stopPropagation();const k=[...E.values()];!n.value||d.value==="none"||(u==null?void 0:u.contains(w.target))&&d.value==="blank"||k.some(C=>{var B;return(B=C.toggleEl)==null?void 0:B.contains(w.target)})&&k.some(C=>{var B;return(B=C.menuEl)==null?void 0:B.contains(w.target)})||([...E.values()].reverse().forEach(C=>{setTimeout(()=>{var B,N;((B=C.toggleEl)==null?void 0:B.contains(w.target))||(N=C.toggle)==null||N.call(C)},0)}),i=!1)}))},0),y==="click"?O.push(P(V,"click",()=>p(!n.value)),P(u,"mouseleave",w=>{var k;g.value&&!((k=E.get(t).child)==null?void 0:k.contains(w.relatedTarget))&&b("dropdown",!0)})):y==="hover"&&O.push(P(V,"mouseenter",()=>{c=!0,p(!0)}),P(V,"mouseleave",()=>{c=!1,b("origin")}),P(u,"mouseenter",()=>{i=!0,n.value=!0}),P(u,"mouseleave",w=>{var k;i=!1,!(w.relatedTarget&&((V==null?void 0:V.contains(w.relatedTarget))||((k=E.get(t).child)==null?void 0:k.contains(w.relatedTarget))))&&b("dropdown",!0)})),T(()=>O.forEach(w=>w()))})};function q(t,n,o,a,l,s){e.watch(n,(i,c)=>{c!==void 0&&(o.value=i,s("toggle",o.value))},{immediate:!0}),e.watch([o,l],([i,c])=>{var r;if(i){E.set(t,z(F({},E.get(t)),{menuEl:c,toggle:()=>{o.value=!1,s("toggle",o.value)}}));for(const d of E.values())((r=d.menuEl)==null?void 0:r.contains(a.value))&&(d.child=c)}}),e.onMounted(()=>{E.set(t,{toggleEl:a.value})}),e.onUnmounted(()=>{E.delete(t)})}function X(t,n,o){const{showAnimation:a,overlayClass:l,destroyOnHide:s}=e.toRefs(t),i=e.ref(!1),c=e.ref(!1),r=e.computed(()=>({transformOrigin:n.value==="top"?"0% 100%":"0% 0%",zIndex:"var(--devui-z-index-dropdown, 1052)"})),d=e.computed(()=>({"fade-in-bottom":a.value&&o.value&&n.value==="bottom","fade-in-top":a.value&&o.value&&n.value==="top",[`${l.value}`]:!0})),g=p=>{n.value=p.includes("top")||p.includes("right-end")||p.includes("left-end")?"top":"bottom"};return e.watch(o,p=>{i.value=s.value?p:!0,c.value=p}),{overlayModelValue:i,overlayShowValue:c,styles:r,classes:d,handlePositionChange:g}}const G={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function K(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const t=document.documentElement.scrollTop,n=document.documentElement.getAttribute("style");return document.documentElement.style.position="fixed",document.documentElement.style.top=`-${t}px`,document.documentElement.style.width=document.documentElement.style.width||"100%",document.documentElement.style.overflowY="scroll",()=>{n?document.documentElement.setAttribute("style",n):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function J(t,n){let o;const a=s=>{s.preventDefault(),n.emit("click",s),t.closeOnClickOverlay&&n.emit("update:modelValue",!1)},l=()=>{o==null||o()};return e.watch(()=>t.modelValue,s=>{s?t.lockScroll&&(o=K()):l()}),e.onUnmounted(l),{onClick:a}}var ge="";e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:G,emits:["update:modelValue","click"],setup(t,n){const{modelValue:o}=e.toRefs(t),a=L("fixed-overlay"),{onClick:l}=J(t,n);return()=>e.createVNode(e.Transition,{name:a.m("fade")},{default:()=>{var s,i;return[o.value&&e.createVNode("div",e.mergeProps({class:a.b()},n.attrs,{onClick:l}),[(i=(s=n.slots).default)==null?void 0:i.call(s)])]}})}});const Q={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0},clickEventBubble:{type:Boolean,default:!1}};function W(t){const n=/(auto|scroll|hidden)/;for(let o=t;o=o.parentElement;o.parentElement!==document.body){const a=window.getComputedStyle(o);if(n.test(a.overflow+a.overflowX+a.overflowY))return o}return window}function Z(t,n,o,a){let{x:l,y:s}=n;if(!t){const{width:i,height:c}=a;l&&o.includes("start")&&(l=12),l&&o.includes("end")&&(l=Math.round(i-24)),s&&o.includes("start")&&(s=10),s&&o.includes("end")&&(s=c-14)}return{x:l,y:s}}function ee(t,n){const o=e.ref(),a=e.ref();let l=null;const s=(c,r,d,g)=>{const{x:p,y:b}=Z(t.isArrowCenter,d,r,g.getBoundingClientRect()),y={top:"bottom",right:"left",bottom:"top",left:"right"}[r.split("-")[0]];Object.assign(c.style,{left:p?`${p}px`:"",top:b?`${b}px`:"",right:"",bottom:"",[y]:"-4px"})},i=async()=>{const c=t.origin,r=e.unref(o.value),d=e.unref(a.value),g=[h.offset(t.offset),h.autoPlacement({alignment:t.align,allowedPlacements:t.position})];if(t.showArrow&&g.push(h.arrow({element:d})),t.shiftOffset!==void 0&&g.push(h.shift()),!r)return;const{x:p,y:b,placement:y,middlewareData:v}=await h.computePosition(c,r,{strategy:"fixed",middleware:g});let u=p,m=b;if(t.shiftOffset!==void 0){const{x:T,y:V}=v.shift;T<0&&(u-=t.shiftOffset),T>0&&(u+=t.shiftOffset),V<0&&(m-=t.shiftOffset),V>0&&(m+=t.shiftOffset)}n("positionChange",y),Object.assign(r.style,{top:`${m}px`,left:`${u}px`}),t.showArrow&&s(d,y,v.arrow,r)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(l=W(t.origin),e.nextTick(i),l==null||l.addEventListener("scroll",i),l!==window&&window.addEventListener("scroll",i),window.addEventListener("resize",i)):(l==null||l.removeEventListener("scroll",i),l!==window&&window.removeEventListener("scroll",i),window.removeEventListener("resize",i))}),e.onUnmounted(()=>{l==null||l.removeEventListener("scroll",i),l!==window&&window.removeEventListener("scroll",i),window.removeEventListener("resize",i)}),{arrowRef:a,overlayRef:o,updatePosition:i}}var ye="";const te=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:Q,emits:["update:modelValue","positionChange"],setup(t,{slots:n,attrs:o,emit:a,expose:l}){const s=L("flexible-overlay"),{clickEventBubble:i}=e.toRefs(t),{arrowRef:c,overlayRef:r,updatePosition:d}=ee(t,a);return l({updatePosition:d}),()=>{var g;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:r,class:s.b()},o,{onClick:e.withModifiers(()=>({}),[i.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(g=n.default)==null?void 0:g.call(n),t.showArrow&&e.createVNode("div",{ref:c,class:s.e("arrow")},null)])}}}),ne=t=>t!==null&&typeof t=="object",oe=L("popper-trigger");function D(t){return e.h("span",{class:oe.b()},t)}function $(t){for(const n of t){if(ne(n)){if(n.type===e.Comment)continue;return n.type==="svg"||n.type===e.Text?D(n):n.type===e.Fragment?$(n.children):n}return D(n)}return null}var re=e.defineComponent({name:"DPopperTrigger",setup(t,n){const{slots:o,attrs:a}=n;return()=>{var c;const l=(c=o.default)==null?void 0:c.call(o,a),s=e.inject(R);if(!l)return null;const i=$(l);return i?e.withDirectives(e.cloneVNode(i,a),[[{mounted(r){s.value=r},updated(r){s.value=r},unmounted(){s.value=null}}]]):null}}}),he="";let ae=1;var le=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:H,emits:["toggle"],setup(t,{slots:n,attrs:o,emit:a,expose:l}){const{visible:s,position:i,align:c,offset:r,destroyOnHide:d,shiftOffset:g,showAnimation:p}=e.toRefs(t),b=e.ref(),y=e.ref(),v=e.ref(),u=`dropdown_${ae++}`,m=e.ref(!1),T=e.ref("bottom"),V=L("dropdown");e.provide(R,b),Y({id:u,isOpen:m,origin:b,dropdownRef:y,props:t,emit:a}),q(u,s,m,b,y,a);const{overlayModelValue:O,overlayShowValue:w,styles:k,classes:C,handlePositionChange:B}=X(t,T,m);return e.watch(w,N=>{e.nextTick(()=>{!d.value&&N&&v.value.updatePosition()})}),l({updatePosition:()=>v.value.updatePosition()}),()=>e.createVNode(e.Fragment,null,[e.createVNode(re,null,{default:()=>{var N;return[(N=n.default)==null?void 0:N.call(n)]}}),e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:p.value?V.m(`fade-${T.value}`):""},{default:()=>[e.withDirectives(e.createVNode(te,{modelValue:O.value,"onUpdate:modelValue":N=>O.value=N,ref:v,origin:b.value,position:i.value,align:c.value,offset:r.value,shiftOffset:g==null?void 0:g.value,onPositionChange:B,"click-event-bubble":!0,class:C.value,style:k.value},{default:()=>{var N;return[e.createVNode("div",e.mergeProps({ref:y,class:V.e("menu-wrap")},o),[(N=n.menu)==null?void 0:N.call(n)])]}}),[[e.vShow,w.value]])]})]})])}}),S=e.defineComponent({name:"DBreadcrumbItem",components:{DDropdown:le},props:I,setup(t,{slots:n}){var v;const o=e.inject("separatorIcon"),a=L("breadcrumb"),l=t.to?"is-link":"",s=t.showMenu&&((v=t.menuList)==null?void 0:v.length)?a.e("dropdown-title"):"",i=e.ref(null),c=e.getCurrentInstance(),r=c==null?void 0:c.appContext.config.globalProperties.$router,d=e.ref(t.showMenu),g=e.ref(t.menuList||[]),p=()=>{!t.to||!r||(t.replace?r.replace(t.to):r.push(t.to))};e.onMounted(()=>{var u;(u=i.value)==null||u.addEventListener("click",p)}),e.onBeforeUnmount(()=>{var u;(u=i.value)==null||u.removeEventListener("click",p)});const b=()=>e.createVNode("span",{class:a.e("separator")},[o]),y=()=>{var u;return d.value?e.createVNode("div",{class:a.e("item")},[e.createVNode(e.resolveComponent("d-dropdown"),{trigger:"hover","close-scope":"blank"},{default:()=>{var m;return[e.createVNode("span",{class:[l,s]},[(m=n==null?void 0:n.default)==null?void 0:m.call(n),e.createVNode("span",{class:"icon icon-chevron-down"},null)])]},menu:()=>e.createVNode("ul",{class:a.e("item-dropdown")},[g.value.map(m=>m.link?e.createVNode("a",{href:m.link,target:m.target?m.target:"_self"},[e.createVNode("li",{class:a.e("item-dropdown-item")},[m.title])]):e.createVNode("li",{class:a.e("item-dropdown-item")},[e.createVNode("span",{class:l},[m.title])]))])})]):e.createVNode("div",{class:a.e("item")},[e.createVNode("span",{ref:i,class:l},[(u=n==null?void 0:n.default)==null?void 0:u.call(n)]),b()])};return()=>y()}});function ie(t,n,o="default"){var a,l;return(l=n[o])!=null?l:(a=t[o])==null?void 0:a.call(t)}var we="",A=e.defineComponent({name:"DBreadcrumb",components:{DBreadcrumbItem:S},props:M,setup(t,{slots:n}){var c;const o=(c=ie(n,t,"separatorIcon"))!=null?c:"/";e.provide("separatorIcon",o);const a=L("breadcrumb"),l=r=>e.createVNode(e.resolveComponent("d-breadcrumb-item"),{to:`path: ${r.link}`,replace:r.replace},{default:()=>[r.title]}),s=r=>e.createVNode(e.resolveComponent("d-breadcrumb-item"),{menuList:r.children,showMenu:r.showMenu,to:`path: ${r.link}`,replace:r.replace},{default:()=>[!r.noNavigation&&(!r.linkType||r.linkType==="hrefLink")?e.createVNode("a",{href:r.link,target:r.target?r.target:"_self"},[r.title]):null,r.noNavigation?e.createVNode("span",null,[r.title]):null]}),i=r=>r.map(d=>!d.noNavigation&&d.linkType==="routerLink"?l(d):d.children&&d.children.length>0?s(d):e.createVNode(e.resolveComponent("d-breadcrumb-item"),null,{default:()=>[!d.noNavigation&&(!d.linkType||d.linkType==="hrefLink")?e.createVNode("a",{href:d.link,target:d.target?d.target:"_self"},[d.title]):null,d.noNavigation?e.createVNode("span",null,[d.title]):null]}));return()=>{var r;return e.createVNode("div",{class:a.b()},[t.source&&t.source.length?i(t.source):(r=n==null?void 0:n.default)==null?void 0:r.call(n)])}}}),ce={title:"Breadcrumb \u9762\u5305\u5C51",category:"\u5BFC\u822A",status:"100%",install(t){t.component(A.name,A),t.component(S.name,S)}};f.Breadcrumb=A,f.BreadcrumbItem=S,f.breadcrumbItemProps=I,f.breadcrumbProps=M,f.default=ce,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
1
+ var se=Object.defineProperty,ue=Object.defineProperties;var de=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var F=(f,e,w)=>e in f?se(f,e,{enumerable:!0,configurable:!0,writable:!0,value:w}):f[e]=w,z=(f,e)=>{for(var w in e||(e={}))fe.call(e,w)&&F(f,w,e[w]);if(_)for(var w of _(e))me.call(e,w)&&F(f,w,e[w]);return f},H=(f,e)=>ue(f,de(e));(function(f,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],e):(f=typeof globalThis!="undefined"?globalThis:f||self,e(f.index={},f.Vue,f.dom))})(this,function(f,e,w){"use strict";const I={source:{type:Array,default:[]},separatorIcon:{type:String}},R={showMenu:{type:Boolean,default:!1},menuList:{type:Array},isSearch:{type:Boolean,dafault:!1},to:{type:[String,Object],default:""},replace:{type:Boolean,default:!1}};function L(t,n,o){let l=t;return n&&(l+=`__${n}`),o&&(l+=`--${o}`),l}function A(t,n=!1){const o=n?`.devui-${t}`:`devui-${t}`;return{b:()=>L(o),e:a=>a?L(o,a):"",m:a=>a?L(o,"",a):"",em:(a,r)=>a&&r?L(o,a,r):""}}var pe="";const U={visible:{type:Boolean,default:!1},trigger:{type:String,default:"click"},closeScope:{type:String,default:"all"},position:{type:Array,default:["bottom"]},align:{type:String,default:null},offset:{type:[Number,Object],default:4},shiftOffset:{type:Number},closeOnMouseLeaveMenu:{type:Boolean,default:!1},showAnimation:{type:Boolean,default:!0},overlayClass:{type:String,default:""},destroyOnHide:{type:Boolean,default:!0},teleport:{type:[String,Object],default:"body"}},$=Symbol("popper-trigger");function q(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const N=new Map;function x(t,n,o){return t==null||t.addEventListener(n,o),()=>{t==null||t.removeEventListener(n,o)}}const G=({id:t,isOpen:n,origin:o,dropdownRef:l,props:c,emit:i})=>{let u=!1,a=!1;const{trigger:r,closeScope:s,closeOnMouseLeaveMenu:m}=e.toRefs(c),p=g=>{n.value=g,i("toggle",n.value)},v=async(g,b)=>{await new Promise(d=>setTimeout(d,50)),!(g==="origin"&&u||g==="dropdown"&&a)&&(b&&[...N.values()].reverse().forEach(d=>{setTimeout(()=>{var y;(y=d.toggle)==null||y.call(d)},0)}),p(!1))};e.watch([r,o,l],([g,b,d],y,T)=>{const V=q(b),B=[];setTimeout(()=>{B.push(x(document,"click",h=>{h.stopPropagation();const k=[...N.values()];!n.value||s.value==="none"||(d==null?void 0:d.contains(h.target))&&s.value==="blank"||k.some(C=>{var E;return(E=C.toggleEl)==null?void 0:E.contains(h.target)})&&k.some(C=>{var E;return(E=C.menuEl)==null?void 0:E.contains(h.target)})||([...N.values()].reverse().forEach(C=>{setTimeout(()=>{var E,S;((E=C.toggleEl)==null?void 0:E.contains(h.target))||(S=C.toggle)==null||S.call(C)},0)}),u=!1)}))},0),g==="click"?B.push(x(V,"click",()=>p(!n.value)),x(d,"mouseleave",h=>{var k;m.value&&!((k=N.get(t).child)==null?void 0:k.contains(h.relatedTarget))&&v("dropdown",!0)})):g==="hover"&&B.push(x(V,"mouseenter",()=>{a=!0,p(!0)}),x(V,"mouseleave",()=>{a=!1,v("origin")}),x(d,"mouseenter",()=>{u=!0,n.value=!0}),x(d,"mouseleave",h=>{var k;u=!1,!(h.relatedTarget&&((V==null?void 0:V.contains(h.relatedTarget))||((k=N.get(t).child)==null?void 0:k.contains(h.relatedTarget))))&&v("dropdown",!0)})),T(()=>B.forEach(h=>h()))})};function Y(t,n,o,l,c,i){e.watch(n,(u,a)=>{a!==void 0&&(o.value=u,i("toggle",o.value))},{immediate:!0}),e.watch([o,c],([u,a])=>{var r;if(u){N.set(t,H(z({},N.get(t)),{menuEl:a,toggle:()=>{o.value=!1,i("toggle",o.value)}}));for(const s of N.values())((r=s.menuEl)==null?void 0:r.contains(l.value))&&(s.child=a)}}),e.onMounted(()=>{N.set(t,{toggleEl:l.value})}),e.onUnmounted(()=>{N.delete(t)})}function K(t,n,o){const{showAnimation:l,overlayClass:c,destroyOnHide:i}=e.toRefs(t),u=e.ref(!1),a=e.ref(!1),r=e.computed(()=>({transformOrigin:n.value==="top"?"0% 100%":"0% 0%",zIndex:"var(--devui-z-index-dropdown, 1052)"})),s=e.computed(()=>({"fade-in-bottom":l.value&&o.value&&n.value==="bottom","fade-in-top":l.value&&o.value&&n.value==="top",[`${c.value}`]:!0})),m=p=>{n.value=p.includes("top")||p.includes("right-end")||p.includes("left-end")?"top":"bottom"};return e.watch(o,p=>{u.value=i.value?p:!0,a.value=p}),{overlayModelValue:u,overlayShowValue:a,styles:r,classes:s,handlePositionChange:m}}const X={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function J(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const t=document.documentElement.scrollTop,n=document.documentElement.getAttribute("style");return document.documentElement.style.position="fixed",document.documentElement.style.top=`-${t}px`,document.documentElement.style.width=document.documentElement.style.width||"100%",document.documentElement.style.overflowY="scroll",()=>{n?document.documentElement.setAttribute("style",n):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function Q(t,n){let o;const l=i=>{i.preventDefault(),n.emit("click",i),t.closeOnClickOverlay&&n.emit("update:modelValue",!1)},c=()=>{o==null||o()};return e.watch(()=>t.modelValue,i=>{i?t.lockScroll&&(o=J()):c()}),e.onUnmounted(c),{onClick:l}}var ge="";e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:X,emits:["update:modelValue","click"],setup(t,n){const{modelValue:o}=e.toRefs(t),l=A("fixed-overlay"),{onClick:c}=Q(t,n);return()=>e.createVNode(e.Transition,{name:l.m("fade")},{default:()=>{var i,u;return[o.value&&e.createVNode("div",e.mergeProps({class:l.b()},n.attrs,{onClick:c}),[(u=(i=n.slots).default)==null?void 0:u.call(i)])]}})}});const W={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0},clickEventBubble:{type:Boolean,default:!1}};function Z(t,n,o,l){let{x:c,y:i}=n;if(!t){const{width:u,height:a}=l;c&&o.includes("start")&&(c=12),c&&o.includes("end")&&(c=Math.round(u-24)),i&&o.includes("start")&&(i=10),i&&o.includes("end")&&(i=a-14)}return{x:c,y:i}}function ee(t,n){const{position:o,showArrow:l}=e.toRefs(t),c=e.ref(),i=e.ref(),u=(s,m,p,v)=>{const{x:g,y:b}=Z(t.isArrowCenter,p,m,v.getBoundingClientRect()),d={top:"bottom",right:"left",bottom:"top",left:"right"}[m.split("-")[0]];Object.assign(s.style,{left:g?`${g}px`:"",top:b?`${b}px`:"",right:"",bottom:"",[d]:"-4px"})},a=async()=>{const s=t.origin,m=e.unref(c.value),p=e.unref(i.value),[v,...g]=o.value,b=[w.offset(t.offset)];b.push(g.length?w.flip({fallbackPlacements:g}):w.flip()),l.value&&b.push(w.arrow({element:i.value}));const{x:d,y,placement:T,middlewareData:V}=await w.computePosition(s,m,{strategy:"fixed",placement:v,middleware:b});let B=d,h=y;n("positionChange",T),Object.assign(m.style,{top:`${h}px`,left:`${B}px`}),t.showArrow&&u(p,T,V.arrow,m)},r=s=>{var p,v;const m=s.target;(m==null?void 0:m.contains((v=(p=t.origin)==null?void 0:p.$el)!=null?v:t.origin))&&a()};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(e.nextTick(a),window.addEventListener("scroll",r,!0),window.addEventListener("resize",a)):(window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",a))}),e.onUnmounted(()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",a)}),{arrowRef:i,overlayRef:c,updatePosition:a}}var ye="";const te=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:W,emits:["update:modelValue","positionChange"],setup(t,{slots:n,attrs:o,emit:l,expose:c}){const i=A("flexible-overlay"),{clickEventBubble:u}=e.toRefs(t),{arrowRef:a,overlayRef:r,updatePosition:s}=ee(t,l);return c({updatePosition:s}),()=>{var m;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:r,class:i.b()},o,{onClick:e.withModifiers(()=>({}),[u.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(m=n.default)==null?void 0:m.call(n),t.showArrow&&e.createVNode("div",{ref:a,class:i.e("arrow")},null)])}}}),ne=t=>t!==null&&typeof t=="object",oe=A("popper-trigger");function D(t){return e.h("span",{class:oe.b()},t)}function j(t){for(const n of t){if(ne(n)){if(n.type===e.Comment)continue;return n.type==="svg"||n.type===e.Text?D(n):n.type===e.Fragment?j(n.children):n}return D(n)}return null}var re=e.defineComponent({name:"DPopperTrigger",setup(t,n){const{slots:o,attrs:l}=n;return()=>{var a;const c=(a=o.default)==null?void 0:a.call(o,l),i=e.inject($);if(!c)return null;const u=j(c);return u?e.withDirectives(e.cloneVNode(u,l),[[{mounted(r){i.value=r},updated(r){i.value=r},unmounted(){i.value=null}}]]):null}}}),he="";let ae=1;var le=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:U,emits:["toggle"],setup(t,{slots:n,attrs:o,emit:l,expose:c}){const{visible:i,position:u,align:a,offset:r,destroyOnHide:s,shiftOffset:m,showAnimation:p,teleport:v}=e.toRefs(t),g=e.ref(),b=e.ref(),d=e.ref(),y=`dropdown_${ae++}`,T=e.ref(!1),V=e.ref("bottom"),B=A("dropdown");e.provide($,g),G({id:y,isOpen:T,origin:g,dropdownRef:b,props:t,emit:l}),Y(y,i,T,g,b,l);const{overlayModelValue:h,overlayShowValue:k,styles:C,classes:E,handlePositionChange:S}=K(t,V,T);return e.watch(k,P=>{e.nextTick(()=>{!s.value&&P&&d.value.updatePosition()})}),c({updatePosition:()=>d.value.updatePosition()}),()=>e.createVNode(e.Fragment,null,[e.createVNode(re,null,{default:()=>{var P;return[(P=n.default)==null?void 0:P.call(n)]}}),e.createVNode(e.Teleport,{to:v.value},{default:()=>[e.createVNode(e.Transition,{name:p.value?B.m(`fade-${V.value}`):""},{default:()=>[e.withDirectives(e.createVNode(te,{modelValue:h.value,"onUpdate:modelValue":P=>h.value=P,ref:d,origin:g.value,position:u.value,align:a.value,offset:r.value,shiftOffset:m==null?void 0:m.value,onPositionChange:S,"click-event-bubble":!0,class:E.value,style:C.value},{default:()=>{var P;return[e.createVNode("div",e.mergeProps({ref:b,class:B.e("menu-wrap")},o),[(P=n.menu)==null?void 0:P.call(n)])]}}),[[e.vShow,k.value]])]})]})])}}),O=e.defineComponent({name:"DBreadcrumbItem",components:{DDropdown:le},props:R,setup(t,{slots:n}){var b;const o=e.inject("separatorIcon"),l=A("breadcrumb"),c=t.to?"is-link":"",i=t.showMenu&&((b=t.menuList)==null?void 0:b.length)?l.e("dropdown-title"):"",u=e.ref(null),a=e.getCurrentInstance(),r=a==null?void 0:a.appContext.config.globalProperties.$router,s=e.ref(t.showMenu),m=e.ref(t.menuList||[]),p=()=>{!t.to||!r||(t.replace?r.replace(t.to):r.push(t.to))};e.onMounted(()=>{var d;(d=u.value)==null||d.addEventListener("click",p)}),e.onBeforeUnmount(()=>{var d;(d=u.value)==null||d.removeEventListener("click",p)});const v=()=>e.createVNode("span",{class:l.e("separator")},[o]),g=()=>{var d;return s.value?e.createVNode("div",{class:l.e("item")},[e.createVNode(e.resolveComponent("d-dropdown"),{trigger:"hover","close-scope":"blank"},{default:()=>{var y;return[e.createVNode("span",{class:[c,i]},[(y=n==null?void 0:n.default)==null?void 0:y.call(n),e.createVNode("span",{class:"icon icon-chevron-down"},null)])]},menu:()=>e.createVNode("ul",{class:l.e("item-dropdown")},[m.value.map(y=>y.link?e.createVNode("a",{href:y.link,target:y.target?y.target:"_self"},[e.createVNode("li",{class:l.e("item-dropdown-item")},[y.title])]):e.createVNode("li",{class:l.e("item-dropdown-item")},[e.createVNode("span",{class:c},[y.title])]))])})]):e.createVNode("div",{class:l.e("item")},[e.createVNode("span",{ref:u,class:c},[(d=n==null?void 0:n.default)==null?void 0:d.call(n)]),v()])};return()=>g()}});function ie(t,n,o="default"){var l,c;return(c=n[o])!=null?c:(l=t[o])==null?void 0:l.call(t)}var be="",M=e.defineComponent({name:"DBreadcrumb",components:{DBreadcrumbItem:O},props:I,setup(t,{slots:n}){var a;const o=(a=ie(n,t,"separatorIcon"))!=null?a:"/";e.provide("separatorIcon",o);const l=A("breadcrumb"),c=r=>e.createVNode(e.resolveComponent("d-breadcrumb-item"),{to:`path: ${r.link}`,replace:r.replace},{default:()=>[r.title]}),i=r=>e.createVNode(e.resolveComponent("d-breadcrumb-item"),{menuList:r.children,showMenu:r.showMenu,to:`path: ${r.link}`,replace:r.replace},{default:()=>[!r.noNavigation&&(!r.linkType||r.linkType==="hrefLink")?e.createVNode("a",{href:r.link,target:r.target?r.target:"_self"},[r.title]):null,r.noNavigation?e.createVNode("span",null,[r.title]):null]}),u=r=>r.map(s=>!s.noNavigation&&s.linkType==="routerLink"?c(s):s.children&&s.children.length>0?i(s):e.createVNode(e.resolveComponent("d-breadcrumb-item"),null,{default:()=>[!s.noNavigation&&(!s.linkType||s.linkType==="hrefLink")?e.createVNode("a",{href:s.link,target:s.target?s.target:"_self"},[s.title]):null,s.noNavigation?e.createVNode("span",null,[s.title]):null]}));return()=>{var r;return e.createVNode("div",{class:l.b()},[t.source&&t.source.length?u(t.source):(r=n==null?void 0:n.default)==null?void 0:r.call(n)])}}}),ce={title:"Breadcrumb \u9762\u5305\u5C51",category:"\u5BFC\u822A",status:"100%",install(t){t.component(M.name,M),t.component(O.name,O)}};f.Breadcrumb=M,f.BreadcrumbItem=O,f.breadcrumbItemProps=R,f.breadcrumbProps=I,f.default=ce,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
@@ -34,7 +34,7 @@ var __publicField = (obj, key, value) => {
34
34
  return value;
35
35
  };
36
36
  import { createVNode, createTextVNode, toRefs, watch, onMounted, onUnmounted, ref, computed, defineComponent, Transition, mergeProps, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, provide, Teleport, vShow, resolveComponent, reactive, onBeforeUnmount, toRef, resolveDynamicComponent, render, isVNode } from "vue";
37
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
37
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
38
38
  import { onClickOutside } from "@vueuse/core";
39
39
  import "clipboard";
40
40
  function SearchIcon() {
@@ -157,6 +157,10 @@ const dropdownProps = {
157
157
  destroyOnHide: {
158
158
  type: Boolean,
159
159
  default: true
160
+ },
161
+ teleport: {
162
+ type: [String, Object],
163
+ default: "body"
160
164
  }
161
165
  };
162
166
  const POPPER_TRIGGER_TOKEN = Symbol("popper-trigger");
@@ -452,16 +456,6 @@ const flexibleOverlayProps = {
452
456
  default: false
453
457
  }
454
458
  };
455
- function getScrollParent(element) {
456
- const overflowRegex = /(auto|scroll|hidden)/;
457
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
458
- const style = window.getComputedStyle(parent);
459
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
460
- return parent;
461
- }
462
- }
463
- return window;
464
- }
465
459
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
466
460
  let { x, y } = point;
467
461
  if (!isArrowCenter) {
@@ -482,9 +476,9 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
482
476
  return { x, y };
483
477
  }
484
478
  function useOverlay(props, emit) {
479
+ const { position, showArrow } = toRefs(props);
485
480
  const overlayRef = ref();
486
481
  const arrowRef = ref();
487
- let originParent = null;
488
482
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
489
483
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
490
484
  const staticSide = {
@@ -505,51 +499,42 @@ function useOverlay(props, emit) {
505
499
  const hostEl = props.origin;
506
500
  const overlayEl = unref(overlayRef.value);
507
501
  const arrowEl = unref(arrowRef.value);
508
- const middleware = [
509
- offset(props.offset),
510
- autoPlacement({
511
- alignment: props.align,
512
- allowedPlacements: props.position
513
- })
514
- ];
515
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
516
- props.shiftOffset !== void 0 && middleware.push(shift());
517
- if (!overlayEl) {
518
- return;
502
+ const [mainPosition, ...fallbackPosition] = position.value;
503
+ const middleware = [offset(props.offset)];
504
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
505
+ if (showArrow.value) {
506
+ middleware.push(arrow({ element: arrowRef.value }));
519
507
  }
520
508
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
521
509
  strategy: "fixed",
510
+ placement: mainPosition,
522
511
  middleware
523
512
  });
524
513
  let applyX = x;
525
514
  let applyY = y;
526
- if (props.shiftOffset !== void 0) {
527
- const { x: shiftX, y: shiftY } = middlewareData.shift;
528
- shiftX < 0 && (applyX -= props.shiftOffset);
529
- shiftX > 0 && (applyX += props.shiftOffset);
530
- shiftY < 0 && (applyY -= props.shiftOffset);
531
- shiftY > 0 && (applyY += props.shiftOffset);
532
- }
533
515
  emit("positionChange", placement);
534
516
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
535
517
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
536
518
  };
519
+ const scrollCallback = (e) => {
520
+ var _a, _b;
521
+ const scrollElement = e.target;
522
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
523
+ updatePosition();
524
+ }
525
+ };
537
526
  watch(() => props.modelValue, () => {
538
527
  if (props.modelValue && props.origin) {
539
- originParent = getScrollParent(props.origin);
540
528
  nextTick(updatePosition);
541
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
542
- originParent !== window && window.addEventListener("scroll", updatePosition);
529
+ window.addEventListener("scroll", scrollCallback, true);
543
530
  window.addEventListener("resize", updatePosition);
544
531
  } else {
545
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
546
- originParent !== window && window.removeEventListener("scroll", updatePosition);
532
+ window.removeEventListener("scroll", scrollCallback, true);
547
533
  window.removeEventListener("resize", updatePosition);
548
534
  }
549
535
  });
550
536
  onUnmounted(() => {
551
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
552
- originParent !== window && window.removeEventListener("scroll", updatePosition);
537
+ window.removeEventListener("scroll", scrollCallback, true);
553
538
  window.removeEventListener("resize", updatePosition);
554
539
  });
555
540
  return { arrowRef, overlayRef, updatePosition };
@@ -668,7 +653,8 @@ var Dropdown = defineComponent({
668
653
  offset: offset2,
669
654
  destroyOnHide,
670
655
  shiftOffset,
671
- showAnimation
656
+ showAnimation,
657
+ teleport
672
658
  } = toRefs(props);
673
659
  const origin = ref();
674
660
  const dropdownRef = ref();
@@ -710,7 +696,7 @@ var Dropdown = defineComponent({
710
696
  return [(_a = slots.default) == null ? void 0 : _a.call(slots)];
711
697
  }
712
698
  }), createVNode(Teleport, {
713
- "to": "body"
699
+ "to": teleport.value
714
700
  }, {
715
701
  default: () => [createVNode(Transition, {
716
702
  "name": showAnimation.value ? ns2.m(`fade-${currentPosition.value}`) : ""
@@ -6733,7 +6719,7 @@ var lodash = { exports: {} };
6733
6719
  var delay = baseRest2(function(func, wait, args) {
6734
6720
  return baseDelay(func, toNumber(wait) || 0, args);
6735
6721
  });
6736
- function flip(func) {
6722
+ function flip2(func) {
6737
6723
  return createWrap(func, WRAP_FLIP_FLAG);
6738
6724
  }
6739
6725
  function memoize(func, resolver) {
@@ -7857,7 +7843,7 @@ var lodash = { exports: {} };
7857
7843
  lodash2.flatten = flatten;
7858
7844
  lodash2.flattenDeep = flattenDeep;
7859
7845
  lodash2.flattenDepth = flattenDepth;
7860
- lodash2.flip = flip;
7846
+ lodash2.flip = flip2;
7861
7847
  lodash2.flow = flow;
7862
7848
  lodash2.flowRight = flowRight;
7863
7849
  lodash2.fromPairs = fromPairs;