vue-devui 1.6.15 → 1.6.17

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 (75) hide show
  1. package/auto-complete/index.es.js +41 -4
  2. package/auto-complete/index.umd.js +12 -12
  3. package/breadcrumb/index.es.js +40 -3
  4. package/breadcrumb/index.umd.js +1 -1
  5. package/category-search/index.es.js +74 -6
  6. package/category-search/index.umd.js +21 -21
  7. package/checkbox/index.es.js +41 -4
  8. package/checkbox/index.umd.js +16 -16
  9. package/code-review/index.es.js +41 -4
  10. package/code-review/index.umd.js +17 -17
  11. package/data-grid/index.es.js +41 -4
  12. package/data-grid/index.umd.js +14 -14
  13. package/date-picker-pro/index.es.js +41 -4
  14. package/date-picker-pro/index.umd.js +8 -8
  15. package/dropdown/index.es.js +40 -3
  16. package/dropdown/index.umd.js +1 -1
  17. package/editable-select/index.es.js +48 -8
  18. package/editable-select/index.umd.js +15 -15
  19. package/editor-md/index.es.js +50 -6
  20. package/editor-md/index.umd.js +26 -26
  21. package/form/index.es.js +41 -4
  22. package/form/index.umd.js +14 -14
  23. package/input/index.es.js +40 -3
  24. package/input/index.umd.js +19 -19
  25. package/input-number/index.es.js +41 -4
  26. package/input-number/index.umd.js +18 -18
  27. package/mention/index.es.js +41 -4
  28. package/mention/index.umd.js +19 -19
  29. package/message/index.es.js +13 -13
  30. package/message/index.umd.js +1 -1
  31. package/modal/index.es.js +40 -3
  32. package/modal/index.umd.js +2 -2
  33. package/overlay/index.es.js +41 -4
  34. package/overlay/index.umd.js +1 -1
  35. package/package.json +2 -1
  36. package/pagination/index.es.js +58 -21
  37. package/pagination/index.umd.js +17 -17
  38. package/pagination/style.css +1 -1
  39. package/popover/index.es.js +41 -4
  40. package/popover/index.umd.js +9 -9
  41. package/radio/index.es.js +41 -4
  42. package/radio/index.umd.js +17 -17
  43. package/search/index.es.js +41 -4
  44. package/search/index.umd.js +17 -17
  45. package/select/index.es.js +58 -21
  46. package/select/index.umd.js +19 -19
  47. package/select/style.css +1 -1
  48. package/splitter/index.es.js +41 -4
  49. package/splitter/index.umd.js +15 -15
  50. package/style.css +1 -1
  51. package/switch/index.es.js +41 -4
  52. package/switch/index.umd.js +14 -14
  53. package/table/index.es.js +40 -3
  54. package/table/index.umd.js +15 -15
  55. package/textarea/index.es.js +41 -4
  56. package/textarea/index.umd.js +16 -16
  57. package/time-picker/index.es.js +40 -3
  58. package/time-picker/index.umd.js +15 -15
  59. package/time-select/index.es.js +58 -21
  60. package/time-select/index.umd.js +17 -17
  61. package/time-select/style.css +1 -1
  62. package/tooltip/index.es.js +41 -4
  63. package/tooltip/index.umd.js +12 -12
  64. package/tree/index.es.js +40 -3
  65. package/tree/index.umd.js +10 -10
  66. package/types/category-search/src/category-search-types.d.ts +5 -0
  67. package/types/editable-select/src/editable-select-types.d.ts +3 -0
  68. package/types/overlay/src/flexible-overlay/flexible-overlay-types.d.ts +5 -6
  69. package/types/overlay/src/flexible-overlay/index.d.ts +9 -0
  70. package/types/overlay/src/flexible-overlay/use-flexible-overlay.d.ts +11 -2
  71. package/types/select/src/composables/use-select-content.d.ts +21 -2
  72. package/types/select/src/select-types.d.ts +7 -44
  73. package/types/select/src/use-select.d.ts +26 -2
  74. package/vue-devui.es.js +122 -44
  75. package/vue-devui.umd.js +74 -74
@@ -360,6 +360,10 @@ const flexibleOverlayProps = {
360
360
  clickEventBubble: {
361
361
  type: Boolean,
362
362
  default: false
363
+ },
364
+ fitOriginWidth: {
365
+ type: Boolean,
366
+ default: false
363
367
  }
364
368
  };
365
369
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
@@ -382,9 +386,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
382
386
  return { x, y };
383
387
  }
384
388
  function useOverlay(props, emit) {
385
- const { position, showArrow } = toRefs(props);
389
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
386
390
  const overlayRef = ref();
387
391
  const arrowRef = ref();
392
+ const overlayWidth = ref(0);
393
+ let originObserver;
394
+ const styles = computed(() => {
395
+ if (fitOriginWidth.value) {
396
+ return { width: overlayWidth.value + "px" };
397
+ } else {
398
+ return {};
399
+ }
400
+ });
388
401
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
389
402
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
390
403
  const staticSide = {
@@ -429,21 +442,43 @@ function useOverlay(props, emit) {
429
442
  updatePosition();
430
443
  }
431
444
  };
445
+ const updateWidth = (originEl) => {
446
+ overlayWidth.value = originEl.getBoundingClientRect().width;
447
+ updatePosition();
448
+ };
449
+ const observeOrigin = () => {
450
+ var _a, _b;
451
+ if (fitOriginWidth.value && typeof window !== "undefined") {
452
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
453
+ if (originEl) {
454
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
455
+ originObserver.observe(originEl);
456
+ }
457
+ }
458
+ };
459
+ const unobserveOrigin = () => {
460
+ var _a, _b;
461
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
462
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
463
+ };
432
464
  watch(() => props.modelValue, () => {
433
465
  if (props.modelValue && props.origin) {
434
466
  nextTick(updatePosition);
435
467
  window.addEventListener("scroll", scrollCallback, true);
436
468
  window.addEventListener("resize", updatePosition);
469
+ observeOrigin();
437
470
  } else {
438
471
  window.removeEventListener("scroll", scrollCallback, true);
439
472
  window.removeEventListener("resize", updatePosition);
473
+ unobserveOrigin();
440
474
  }
441
475
  });
442
476
  onUnmounted(() => {
443
477
  window.removeEventListener("scroll", scrollCallback, true);
444
478
  window.removeEventListener("resize", updatePosition);
479
+ unobserveOrigin();
445
480
  });
446
- return { arrowRef, overlayRef, updatePosition };
481
+ return { arrowRef, overlayRef, styles, updatePosition };
447
482
  }
448
483
  var flexibleOverlay = "";
449
484
  const FlexibleOverlay = defineComponent({
@@ -464,6 +499,7 @@ const FlexibleOverlay = defineComponent({
464
499
  const {
465
500
  arrowRef,
466
501
  overlayRef,
502
+ styles,
467
503
  updatePosition
468
504
  } = useOverlay(props, emit);
469
505
  expose({
@@ -473,7 +509,8 @@ const FlexibleOverlay = defineComponent({
473
509
  var _a;
474
510
  return props.modelValue && createVNode("div", mergeProps({
475
511
  "ref": overlayRef,
476
- "class": ns2.b()
512
+ "class": ns2.b(),
513
+ "style": styles.value
477
514
  }, attrs, {
478
515
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
479
516
  "onPointerup": withModifiers(() => ({}), ["stop"])
@@ -1 +1 @@
1
- var ie=Object.defineProperty,se=Object.defineProperties;var ue=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var ce=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var q=(u,e,h)=>e in u?ie(u,e,{enumerable:!0,configurable:!0,writable:!0,value:h}):u[e]=h,z=(u,e)=>{for(var h in e||(e={}))ce.call(e,h)&&q(u,h,e[h]);if(_)for(var h of _(e))de.call(e,h)&&q(u,h,e[h]);return u},H=(u,e)=>se(u,ue(e));(function(u,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom","@vueuse/core"],e):(u=typeof globalThis!="undefined"?globalThis:u||self,e(u.index={},u.Vue,u.dom,u.core))})(this,function(u,e,h,U){"use strict";const I={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"}},R=Symbol("popper-trigger");function G(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const C=new Map;function k(t,o,n){return t==null||t.addEventListener(o,n),()=>{t==null||t.removeEventListener(o,n)}}const Y=({id:t,isOpen:o,origin:n,dropdownRef:r,props:i,emit:l})=>{let s=!1,a=!1;const{trigger:c,closeScope:m,closeOnMouseLeaveMenu:d}=e.toRefs(i),p=g=>{o.value=g,l("toggle",o.value)},b=async(g,y)=>{await new Promise(f=>setTimeout(f,50)),!(g==="origin"&&s||g==="dropdown"&&a)&&(y&&[...C.values()].reverse().forEach(f=>{setTimeout(()=>{var O;(O=f.toggle)==null||O.call(f)},0)}),p(!1))};e.watch([c,n,r],([g,y,f],O,w)=>{const V=G(y),E=[];setTimeout(()=>{E.push(k(document,"click",v=>{v.stopPropagation();const P=[...C.values()];!o.value||m.value==="none"||(f==null?void 0:f.contains(v.target))&&m.value==="blank"||P.some(A=>{var T;return(T=A.toggleEl)==null?void 0:T.contains(v.target)})&&P.some(A=>{var T;return(T=A.menuEl)==null?void 0:T.contains(v.target)})||([...C.values()].reverse().forEach(A=>{setTimeout(()=>{var T,M;((T=A.toggleEl)==null?void 0:T.contains(v.target))||(M=A.toggle)==null||M.call(A)},0)}),s=!1)}))},0),g==="click"?E.push(k(V,"click",()=>p(!o.value)),k(f,"mouseleave",v=>{var P;d.value&&!((P=C.get(t).child)==null?void 0:P.contains(v.relatedTarget))&&b("dropdown",!0)})):g==="hover"&&E.push(k(V,"mouseenter",()=>{a=!0,p(!0)}),k(V,"mouseleave",()=>{a=!1,b("origin")}),k(f,"mouseenter",()=>{s=!0,o.value=!0}),k(f,"mouseleave",v=>{var P;s=!1,!(v.relatedTarget&&((V==null?void 0:V.contains(v.relatedTarget))||((P=C.get(t).child)==null?void 0:P.contains(v.relatedTarget))))&&b("dropdown",!0)})),w(()=>E.forEach(v=>v()))})};function K(t,o,n,r,i,l){e.watch(o,(s,a)=>{a!==void 0&&(n.value=s,l("toggle",n.value))},{immediate:!0}),e.watch([n,i],([s,a])=>{var c;if(s){C.set(t,H(z({},C.get(t)),{menuEl:a,toggle:()=>{n.value=!1,l("toggle",n.value)}}));for(const m of C.values())((c=m.menuEl)==null?void 0:c.contains(r.value))&&(m.child=a)}}),e.onMounted(()=>{C.set(t,{toggleEl:r.value})}),e.onUnmounted(()=>{C.delete(t)})}function X(t,o,n){const{showAnimation:r,overlayClass:i,destroyOnHide:l}=e.toRefs(t),s=e.ref(!1),a=e.ref(!1),c=e.computed(()=>({transformOrigin:o.value==="top"?"0% 100%":"0% 0%",zIndex:"var(--devui-z-index-dropdown, 1052)"})),m=e.computed(()=>({"fade-in-bottom":r.value&&n.value&&o.value==="bottom","fade-in-top":r.value&&n.value&&o.value==="top",[`${i.value}`]:!0})),d=p=>{o.value=p.includes("top")||p.includes("right-end")||p.includes("left-end")?"top":"bottom"};return e.watch(n,p=>{s.value=l.value?p:!0,a.value=p}),{overlayModelValue:s,overlayShowValue:a,styles:c,classes:m,handlePositionChange:d}}const J={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function Q(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const t=document.documentElement.scrollTop,o=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",()=>{o?document.documentElement.setAttribute("style",o):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function W(t,o){let n;const r=l=>{l.preventDefault(),o.emit("click",l),t.closeOnClickOverlay&&o.emit("update:modelValue",!1)},i=()=>{n==null||n()};return e.watch(()=>t.modelValue,l=>{l?t.lockScroll&&(n=Q()):i()}),e.onUnmounted(i),{onClick:r}}function B(t,o,n){let r=t;return o&&(r+=`__${o}`),n&&(r+=`--${n}`),r}function N(t,o=!1){const n=o?`.devui-${t}`:`devui-${t}`;return{b:()=>B(n),e:a=>a?B(n,a):"",m:a=>a?B(n,"",a):"",em:(a,c)=>a&&c?B(n,a,c):""}}var fe="";e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:J,emits:["update:modelValue","click"],setup(t,o){const{modelValue:n}=e.toRefs(t),r=N("fixed-overlay"),{onClick:i}=W(t,o);return()=>e.createVNode(e.Transition,{name:r.m("fade")},{default:()=>{var l,s;return[n.value&&e.createVNode("div",e.mergeProps({class:r.b()},o.attrs,{onClick:i}),[(s=(l=o.slots).default)==null?void 0:s.call(l)])]}})}});const Z={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 ee(t,o,n,r){let{x:i,y:l}=o;if(!t){const{width:s,height:a}=r;i&&n.includes("start")&&(i=12),i&&n.includes("end")&&(i=Math.round(s-24)),l&&n.includes("start")&&(l=10),l&&n.includes("end")&&(l=a-14)}return{x:i,y:l}}function te(t,o){const{position:n,showArrow:r}=e.toRefs(t),i=e.ref(),l=e.ref(),s=(m,d,p,b)=>{const{x:g,y}=ee(t.isArrowCenter,p,d,b.getBoundingClientRect()),f={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]];Object.assign(m.style,{left:g?`${g}px`:"",top:y?`${y}px`:"",right:"",bottom:"",[f]:"-4px"})},a=async()=>{const m=t.origin,d=e.unref(i.value),p=e.unref(l.value),[b,...g]=n.value,y=[h.offset(t.offset)];y.push(g.length?h.flip({fallbackPlacements:g}):h.flip()),r.value&&y.push(h.arrow({element:l.value}));const{x:f,y:O,placement:w,middlewareData:V}=await h.computePosition(m,d,{strategy:"fixed",placement:b,middleware:y});let E=f,v=O;o("positionChange",w),Object.assign(d.style,{top:`${v}px`,left:`${E}px`}),t.showArrow&&s(p,w,V.arrow,d)},c=m=>{var p,b;const d=m.target;(d==null?void 0:d.contains((b=(p=t.origin)==null?void 0:p.$el)!=null?b:t.origin))&&a()};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(e.nextTick(a),window.addEventListener("scroll",c,!0),window.addEventListener("resize",a)):(window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",a))}),e.onUnmounted(()=>{window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",a)}),{arrowRef:l,overlayRef:i,updatePosition:a}}var me="";const $=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:Z,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:r,expose:i}){const l=N("flexible-overlay"),{clickEventBubble:s}=e.toRefs(t),{arrowRef:a,overlayRef:c,updatePosition:m}=te(t,r);return i({updatePosition:m}),()=>{var d;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:c,class:l.b()},n,{onClick:e.withModifiers(()=>({}),[s.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(d=o.default)==null?void 0:d.call(o),t.showArrow&&e.createVNode("div",{ref:a,class:l.e("arrow")},null)])}}}),oe=t=>t!==null&&typeof t=="object",ne=N("popper-trigger");function j(t){return e.h("span",{class:ne.b()},t)}function L(t){for(const o of t){if(oe(o)){if(o.type===e.Comment)continue;return o.type==="svg"||o.type===e.Text?j(o):o.type===e.Fragment?L(o.children):o}return j(o)}return null}var le=e.defineComponent({name:"DPopperTrigger",setup(t,o){const{slots:n,attrs:r}=o;return()=>{var a;const i=(a=n.default)==null?void 0:a.call(n,r),l=e.inject(R);if(!i)return null;const s=L(i);return s?e.withDirectives(e.cloneVNode(s,r),[[{mounted(c){l.value=c},updated(c){l.value=c},unmounted(){l.value=null}}]]):null}}}),pe="";let ae=1;var S=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:I,emits:["toggle"],setup(t,{slots:o,attrs:n,emit:r,expose:i}){const{visible:l,position:s,align:a,offset:c,destroyOnHide:m,shiftOffset:d,showAnimation:p,teleport:b}=e.toRefs(t),g=e.ref(),y=e.ref(),f=e.ref(),O=`dropdown_${ae++}`,w=e.ref(!1),V=e.ref("bottom"),E=N("dropdown");e.provide(R,g),Y({id:O,isOpen:w,origin:g,dropdownRef:y,props:t,emit:r}),K(O,l,w,g,y,r);const{overlayModelValue:v,overlayShowValue:P,styles:A,classes:T,handlePositionChange:M}=X(t,V,w);return e.watch(P,x=>{e.nextTick(()=>{!m.value&&x&&f.value.updatePosition()})}),i({updatePosition:()=>f.value.updatePosition()}),()=>e.createVNode(e.Fragment,null,[e.createVNode(le,null,{default:()=>{var x;return[(x=o.default)==null?void 0:x.call(o)]}}),e.createVNode(e.Teleport,{to:b.value},{default:()=>[e.createVNode(e.Transition,{name:p.value?E.m(`fade-${V.value}`):""},{default:()=>[e.withDirectives(e.createVNode($,{modelValue:v.value,"onUpdate:modelValue":x=>v.value=x,ref:f,origin:g.value,position:s.value,align:a.value,offset:c.value,shiftOffset:d==null?void 0:d.value,onPositionChange:M,"click-event-bubble":!0,class:T.value,style:A.value},{default:()=>{var x;return[e.createVNode("div",e.mergeProps({ref:y,class:E.e("menu-wrap")},n),[(x=o.menu)==null?void 0:x.call(o)])]}}),[[e.vShow,P.value]])]})]})])}});const F={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},align:{type:String,default:null},offset:{type:[Number,Object],default:4},clickOutside:{type:Function,default:()=>!0},showAnimation:{type:Boolean,default:!0},overlayClass:{type:String,default:""}};var D=e.defineComponent({name:"DDropdownMenu",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:r}){const{modelValue:i,origin:l,position:s,align:a,offset:c,clickOutside:m,showAnimation:d,overlayClass:p}=e.toRefs(t),b=e.ref(null),g=N("dropdown");U.onClickOutside(b,w=>{var V,E;((V=m.value)==null?void 0:V.call(m))&&!((E=l==null?void 0:l.value)==null?void 0:E.contains(w.target))&&r("update:modelValue",!1)});const y=e.ref("bottom"),f=w=>{y.value=w.split("-")[0]==="top"?"top":"bottom"},O=e.computed(()=>({transformOrigin:y.value==="top"?"0% 100%":"0% 0%"}));return()=>e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:d.value?g.m(`fade-${y.value}`):""},{default:()=>[e.createVNode($,{modelValue:i.value,"onUpdate:modelValue":w=>i.value=w,origin:l==null?void 0:l.value,position:s.value,align:a.value,offset:c.value,onPositionChange:f,class:p.value,style:O.value},{default:()=>{var w;return[e.createVNode("div",e.mergeProps({ref:b,class:g.e("menu-wrap")},n),[(w=o.default)==null?void 0:w.call(o)])]}})]})]})}}),re={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"50%",install(t){t.component(S.name,S),t.component(D.name,D)}};u.Dropdown=S,u.DropdownMenu=D,u.default=re,u.dropdownMenuProps=F,Object.defineProperty(u,"__esModule",{value:!0}),u[Symbol.toStringTag]="Module"});
1
+ var ue=Object.defineProperty,ce=Object.defineProperties;var de=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var z=(m,e,V)=>e in m?ue(m,e,{enumerable:!0,configurable:!0,writable:!0,value:V}):m[e]=V,q=(m,e)=>{for(var V in e||(e={}))fe.call(e,V)&&z(m,V,e[V]);if(_)for(var V of _(e))me.call(e,V)&&z(m,V,e[V]);return m},H=(m,e)=>ce(m,de(e));(function(m,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom","@vueuse/core"],e):(m=typeof globalThis!="undefined"?globalThis:m||self,e(m.index={},m.Vue,m.dom,m.core))})(this,function(m,e,V,U){"use strict";const W={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"}},D=Symbol("popper-trigger");function I(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const x=new Map;function k(t,o,n){return t==null||t.addEventListener(o,n),()=>{t==null||t.removeEventListener(o,n)}}const G=({id:t,isOpen:o,origin:n,dropdownRef:r,props:u,emit:l})=>{let s=!1,a=!1;const{trigger:d,closeScope:w,closeOnMouseLeaveMenu:C}=e.toRefs(u),f=h=>{o.value=h,l("toggle",o.value)},O=async(h,P)=>{await new Promise(y=>setTimeout(y,50)),!(h==="origin"&&s||h==="dropdown"&&a)&&(P&&[...x.values()].reverse().forEach(y=>{setTimeout(()=>{var p;(p=y.toggle)==null||p.call(y)},0)}),f(!1))};e.watch([d,n,r],([h,P,y],p,i)=>{const c=I(P),b=[];setTimeout(()=>{b.push(k(document,"click",g=>{g.stopPropagation();const v=[...x.values()];!o.value||w.value==="none"||(y==null?void 0:y.contains(g.target))&&w.value==="blank"||v.some(E=>{var A;return(A=E.toggleEl)==null?void 0:A.contains(g.target)})&&v.some(E=>{var A;return(A=E.menuEl)==null?void 0:A.contains(g.target)})||([...x.values()].reverse().forEach(E=>{setTimeout(()=>{var A,B;((A=E.toggleEl)==null?void 0:A.contains(g.target))||(B=E.toggle)==null||B.call(E)},0)}),s=!1)}))},0),h==="click"?b.push(k(c,"click",()=>f(!o.value)),k(y,"mouseleave",g=>{var v;C.value&&!((v=x.get(t).child)==null?void 0:v.contains(g.relatedTarget))&&O("dropdown",!0)})):h==="hover"&&b.push(k(c,"mouseenter",()=>{a=!0,f(!0)}),k(c,"mouseleave",()=>{a=!1,O("origin")}),k(y,"mouseenter",()=>{s=!0,o.value=!0}),k(y,"mouseleave",g=>{var v;s=!1,!(g.relatedTarget&&((c==null?void 0:c.contains(g.relatedTarget))||((v=x.get(t).child)==null?void 0:v.contains(g.relatedTarget))))&&O("dropdown",!0)})),i(()=>b.forEach(g=>g()))})};function Y(t,o,n,r,u,l){e.watch(o,(s,a)=>{a!==void 0&&(n.value=s,l("toggle",n.value))},{immediate:!0}),e.watch([n,u],([s,a])=>{var d;if(s){x.set(t,H(q({},x.get(t)),{menuEl:a,toggle:()=>{n.value=!1,l("toggle",n.value)}}));for(const w of x.values())((d=w.menuEl)==null?void 0:d.contains(r.value))&&(w.child=a)}}),e.onMounted(()=>{x.set(t,{toggleEl:r.value})}),e.onUnmounted(()=>{x.delete(t)})}function K(t,o,n){const{showAnimation:r,overlayClass:u,destroyOnHide:l}=e.toRefs(t),s=e.ref(!1),a=e.ref(!1),d=e.computed(()=>({transformOrigin:o.value==="top"?"0% 100%":"0% 0%",zIndex:"var(--devui-z-index-dropdown, 1052)"})),w=e.computed(()=>({"fade-in-bottom":r.value&&n.value&&o.value==="bottom","fade-in-top":r.value&&n.value&&o.value==="top",[`${u.value}`]:!0})),C=f=>{o.value=f.includes("top")||f.includes("right-end")||f.includes("left-end")?"top":"bottom"};return e.watch(n,f=>{s.value=l.value?f:!0,a.value=f}),{overlayModelValue:s,overlayShowValue:a,styles:d,classes:w,handlePositionChange:C}}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,o=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",()=>{o?document.documentElement.setAttribute("style",o):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function Q(t,o){let n;const r=l=>{l.preventDefault(),o.emit("click",l),t.closeOnClickOverlay&&o.emit("update:modelValue",!1)},u=()=>{n==null||n()};return e.watch(()=>t.modelValue,l=>{l?t.lockScroll&&(n=J()):u()}),e.onUnmounted(u),{onClick:r}}function R(t,o,n){let r=t;return o&&(r+=`__${o}`),n&&(r+=`--${n}`),r}function N(t,o=!1){const n=o?`.devui-${t}`:`devui-${t}`;return{b:()=>R(n),e:a=>a?R(n,a):"",m:a=>a?R(n,"",a):"",em:(a,d)=>a&&d?R(n,a,d):""}}var pe="";e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:X,emits:["update:modelValue","click"],setup(t,o){const{modelValue:n}=e.toRefs(t),r=N("fixed-overlay"),{onClick:u}=Q(t,o);return()=>e.createVNode(e.Transition,{name:r.m("fade")},{default:()=>{var l,s;return[n.value&&e.createVNode("div",e.mergeProps({class:r.b()},o.attrs,{onClick:u}),[(s=(l=o.slots).default)==null?void 0:s.call(l)])]}})}});const Z={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},fitOriginWidth:{type:Boolean,default:!1}};function ee(t,o,n,r){let{x:u,y:l}=o;if(!t){const{width:s,height:a}=r;u&&n.includes("start")&&(u=12),u&&n.includes("end")&&(u=Math.round(s-24)),l&&n.includes("start")&&(l=10),l&&n.includes("end")&&(l=a-14)}return{x:u,y:l}}function te(t,o){const{fitOriginWidth:n,position:r,showArrow:u}=e.toRefs(t),l=e.ref(),s=e.ref(),a=e.ref(0);let d;const w=e.computed(()=>n.value?{width:a.value+"px"}:{}),C=(p,i,c,b)=>{const{x:g,y:v}=ee(t.isArrowCenter,c,i,b.getBoundingClientRect()),E={top:"bottom",right:"left",bottom:"top",left:"right"}[i.split("-")[0]];Object.assign(p.style,{left:g?`${g}px`:"",top:v?`${v}px`:"",right:"",bottom:"",[E]:"-4px"})},f=async()=>{const p=t.origin,i=e.unref(l.value),c=e.unref(s.value),[b,...g]=r.value,v=[V.offset(t.offset)];v.push(g.length?V.flip({fallbackPlacements:g}):V.flip()),u.value&&v.push(V.arrow({element:s.value}));const{x:E,y:A,placement:B,middlewareData:T}=await V.computePosition(p,i,{strategy:"fixed",placement:b,middleware:v});let ie=E,se=A;o("positionChange",B),Object.assign(i.style,{top:`${se}px`,left:`${ie}px`}),t.showArrow&&C(c,B,T.arrow,i)},O=p=>{var c,b;const i=p.target;(i==null?void 0:i.contains((b=(c=t.origin)==null?void 0:c.$el)!=null?b:t.origin))&&f()},h=p=>{a.value=p.getBoundingClientRect().width,f()},P=()=>{var p,i;if(n.value&&typeof window!="undefined"){const c=(i=(p=t.origin)==null?void 0:p.$el)!=null?i:t.origin;c&&(d=new window.ResizeObserver(()=>h(c)),d.observe(c))}},y=()=>{var i,c;const p=(c=(i=t.origin)==null?void 0:i.$el)!=null?c:t.origin;p&&(d==null||d.unobserve(p))};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(e.nextTick(f),window.addEventListener("scroll",O,!0),window.addEventListener("resize",f),P()):(window.removeEventListener("scroll",O,!0),window.removeEventListener("resize",f),y())}),e.onUnmounted(()=>{window.removeEventListener("scroll",O,!0),window.removeEventListener("resize",f),y()}),{arrowRef:s,overlayRef:l,styles:w,updatePosition:f}}var ge="";const $=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:Z,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:r,expose:u}){const l=N("flexible-overlay"),{clickEventBubble:s}=e.toRefs(t),{arrowRef:a,overlayRef:d,styles:w,updatePosition:C}=te(t,r);return u({updatePosition:C}),()=>{var f;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:d,class:l.b(),style:w.value},n,{onClick:e.withModifiers(()=>({}),[s.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(f=o.default)==null?void 0:f.call(o),t.showArrow&&e.createVNode("div",{ref:a,class:l.e("arrow")},null)])}}}),oe=t=>t!==null&&typeof t=="object",ne=N("popper-trigger");function j(t){return e.h("span",{class:ne.b()},t)}function L(t){for(const o of t){if(oe(o)){if(o.type===e.Comment)continue;return o.type==="svg"||o.type===e.Text?j(o):o.type===e.Fragment?L(o.children):o}return j(o)}return null}var le=e.defineComponent({name:"DPopperTrigger",setup(t,o){const{slots:n,attrs:r}=o;return()=>{var a;const u=(a=n.default)==null?void 0:a.call(n,r),l=e.inject(D);if(!u)return null;const s=L(u);return s?e.withDirectives(e.cloneVNode(s,r),[[{mounted(d){l.value=d},updated(d){l.value=d},unmounted(){l.value=null}}]]):null}}}),ye="";let ae=1;var M=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:W,emits:["toggle"],setup(t,{slots:o,attrs:n,emit:r,expose:u}){const{visible:l,position:s,align:a,offset:d,destroyOnHide:w,shiftOffset:C,showAnimation:f,teleport:O}=e.toRefs(t),h=e.ref(),P=e.ref(),y=e.ref(),p=`dropdown_${ae++}`,i=e.ref(!1),c=e.ref("bottom"),b=N("dropdown");e.provide(D,h),G({id:p,isOpen:i,origin:h,dropdownRef:P,props:t,emit:r}),Y(p,l,i,h,P,r);const{overlayModelValue:g,overlayShowValue:v,styles:E,classes:A,handlePositionChange:B}=K(t,c,i);return e.watch(v,T=>{e.nextTick(()=>{!w.value&&T&&y.value.updatePosition()})}),u({updatePosition:()=>y.value.updatePosition()}),()=>e.createVNode(e.Fragment,null,[e.createVNode(le,null,{default:()=>{var T;return[(T=o.default)==null?void 0:T.call(o)]}}),e.createVNode(e.Teleport,{to:O.value},{default:()=>[e.createVNode(e.Transition,{name:f.value?b.m(`fade-${c.value}`):""},{default:()=>[e.withDirectives(e.createVNode($,{modelValue:g.value,"onUpdate:modelValue":T=>g.value=T,ref:y,origin:h.value,position:s.value,align:a.value,offset:d.value,shiftOffset:C==null?void 0:C.value,onPositionChange:B,"click-event-bubble":!0,class:A.value,style:E.value},{default:()=>{var T;return[e.createVNode("div",e.mergeProps({ref:P,class:b.e("menu-wrap")},n),[(T=o.menu)==null?void 0:T.call(o)])]}}),[[e.vShow,v.value]])]})]})])}});const F={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},align:{type:String,default:null},offset:{type:[Number,Object],default:4},clickOutside:{type:Function,default:()=>!0},showAnimation:{type:Boolean,default:!0},overlayClass:{type:String,default:""}};var S=e.defineComponent({name:"DDropdownMenu",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:r}){const{modelValue:u,origin:l,position:s,align:a,offset:d,clickOutside:w,showAnimation:C,overlayClass:f}=e.toRefs(t),O=e.ref(null),h=N("dropdown");U.onClickOutside(O,i=>{var c,b;((c=w.value)==null?void 0:c.call(w))&&!((b=l==null?void 0:l.value)==null?void 0:b.contains(i.target))&&r("update:modelValue",!1)});const P=e.ref("bottom"),y=i=>{P.value=i.split("-")[0]==="top"?"top":"bottom"},p=e.computed(()=>({transformOrigin:P.value==="top"?"0% 100%":"0% 0%"}));return()=>e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:C.value?h.m(`fade-${P.value}`):""},{default:()=>[e.createVNode($,{modelValue:u.value,"onUpdate:modelValue":i=>u.value=i,origin:l==null?void 0:l.value,position:s.value,align:a.value,offset:d.value,onPositionChange:y,class:f.value,style:p.value},{default:()=>{var i;return[e.createVNode("div",e.mergeProps({ref:O,class:h.e("menu-wrap")},n),[(i=o.default)==null?void 0:i.call(o)])]}})]})]})}}),re={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"50%",install(t){t.component(M.name,M),t.component(S.name,S)}};m.Dropdown=M,m.DropdownMenu=S,m.default=re,m.dropdownMenuProps=F,Object.defineProperty(m,"__esModule",{value:!0}),m[Symbol.toStringTag]="Module"});
@@ -18,7 +18,7 @@ var __publicField = (obj, key, value) => {
18
18
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
19
19
  return value;
20
20
  };
21
- import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, unref, nextTick, withModifiers, inject, computed, h, render, withDirectives, resolveDirective, renderSlot, useSlots, reactive, getCurrentInstance, onMounted, provide, toRef, vShow, Teleport, isVNode } from "vue";
21
+ import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, computed, unref, nextTick, withModifiers, inject, h, render, withDirectives, resolveDirective, renderSlot, useSlots, reactive, getCurrentInstance, onMounted, provide, toRef, vShow, Teleport, isVNode } from "vue";
22
22
  import { onClickOutside } from "@vueuse/core";
23
23
  import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
24
24
  const editableSelectProps = {
@@ -83,6 +83,9 @@ const editableSelectProps = {
83
83
  showGlowStyle: {
84
84
  type: Boolean,
85
85
  default: true
86
+ },
87
+ maxLength: {
88
+ type: Number
86
89
  }
87
90
  };
88
91
  const SELECT_KEY = Symbol("EditableSelect");
@@ -227,6 +230,10 @@ const flexibleOverlayProps = {
227
230
  clickEventBubble: {
228
231
  type: Boolean,
229
232
  default: false
233
+ },
234
+ fitOriginWidth: {
235
+ type: Boolean,
236
+ default: false
230
237
  }
231
238
  };
232
239
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
@@ -249,9 +256,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
249
256
  return { x, y };
250
257
  }
251
258
  function useOverlay(props, emit) {
252
- const { position, showArrow } = toRefs(props);
259
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
253
260
  const overlayRef = ref();
254
261
  const arrowRef = ref();
262
+ const overlayWidth = ref(0);
263
+ let originObserver;
264
+ const styles = computed(() => {
265
+ if (fitOriginWidth.value) {
266
+ return { width: overlayWidth.value + "px" };
267
+ } else {
268
+ return {};
269
+ }
270
+ });
255
271
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
256
272
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
257
273
  const staticSide = {
@@ -296,21 +312,43 @@ function useOverlay(props, emit) {
296
312
  updatePosition();
297
313
  }
298
314
  };
315
+ const updateWidth = (originEl) => {
316
+ overlayWidth.value = originEl.getBoundingClientRect().width;
317
+ updatePosition();
318
+ };
319
+ const observeOrigin = () => {
320
+ var _a, _b;
321
+ if (fitOriginWidth.value && typeof window !== "undefined") {
322
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
323
+ if (originEl) {
324
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
325
+ originObserver.observe(originEl);
326
+ }
327
+ }
328
+ };
329
+ const unobserveOrigin = () => {
330
+ var _a, _b;
331
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
332
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
333
+ };
299
334
  watch(() => props.modelValue, () => {
300
335
  if (props.modelValue && props.origin) {
301
336
  nextTick(updatePosition);
302
337
  window.addEventListener("scroll", scrollCallback, true);
303
338
  window.addEventListener("resize", updatePosition);
339
+ observeOrigin();
304
340
  } else {
305
341
  window.removeEventListener("scroll", scrollCallback, true);
306
342
  window.removeEventListener("resize", updatePosition);
343
+ unobserveOrigin();
307
344
  }
308
345
  });
309
346
  onUnmounted(() => {
310
347
  window.removeEventListener("scroll", scrollCallback, true);
311
348
  window.removeEventListener("resize", updatePosition);
349
+ unobserveOrigin();
312
350
  });
313
- return { arrowRef, overlayRef, updatePosition };
351
+ return { arrowRef, overlayRef, styles, updatePosition };
314
352
  }
315
353
  var flexibleOverlay = "";
316
354
  const FlexibleOverlay = defineComponent({
@@ -331,6 +369,7 @@ const FlexibleOverlay = defineComponent({
331
369
  const {
332
370
  arrowRef,
333
371
  overlayRef,
372
+ styles,
334
373
  updatePosition
335
374
  } = useOverlay(props, emit);
336
375
  expose({
@@ -340,7 +379,8 @@ const FlexibleOverlay = defineComponent({
340
379
  var _a;
341
380
  return props.modelValue && createVNode("div", mergeProps({
342
381
  "ref": overlayRef,
343
- "class": ns.b()
382
+ "class": ns.b(),
383
+ "style": styles.value
344
384
  }, attrs, {
345
385
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
346
386
  "onPointerup": withModifiers(() => ({}), ["stop"])
@@ -6419,9 +6459,7 @@ function useSelect(dropdownRef, props, states, setSoftFocus, ctx) {
6419
6459
  setSelected();
6420
6460
  });
6421
6461
  watch(() => props.options, (newOptions) => {
6422
- if (newOptions.length !== 0) {
6423
- cachedOptions.value = newOptions;
6424
- }
6462
+ cachedOptions.value = newOptions;
6425
6463
  });
6426
6464
  onMounted(() => {
6427
6465
  setSelected();
@@ -6654,7 +6692,8 @@ var EditableSelect = defineComponent({
6654
6692
  disabled,
6655
6693
  modelValue,
6656
6694
  position,
6657
- placeholder
6695
+ placeholder,
6696
+ maxLength
6658
6697
  } = toRefs(props);
6659
6698
  const align = computed(() => position.value.some((item) => item.includes("start") || item.includes("end")) ? "start" : null);
6660
6699
  const {
@@ -6767,6 +6806,7 @@ var EditableSelect = defineComponent({
6767
6806
  "disabled": disabled.value,
6768
6807
  "placeholder": placeholder.value,
6769
6808
  "value": states.inputValue,
6809
+ "maxlength": maxLength == null ? void 0 : maxLength.value,
6770
6810
  "type": "text",
6771
6811
  "onInput": onInput,
6772
6812
  "onFocus": handleFocus,