vue-devui 1.0.0-rc.8 → 1.0.0-rc.9

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 (123) hide show
  1. package/alert/index.es.js +2 -2
  2. package/alert/index.umd.js +1 -1
  3. package/auto-complete/index.es.js +282 -84
  4. package/auto-complete/index.umd.js +3 -5
  5. package/auto-complete/style.css +1 -1
  6. package/avatar/index.es.js +59 -74
  7. package/avatar/index.umd.js +1 -1
  8. package/badge/index.es.js +2 -2
  9. package/badge/index.umd.js +1 -1
  10. package/button/index.es.js +111 -38
  11. package/button/index.umd.js +15 -15
  12. package/button/style.css +1 -1
  13. package/card/index.es.js +2 -2
  14. package/card/index.umd.js +1 -1
  15. package/checkbox/index.es.js +340 -228
  16. package/checkbox/index.umd.js +1 -1
  17. package/checkbox/style.css +1 -1
  18. package/date-picker/index.es.js +264 -63
  19. package/date-picker/index.umd.js +1 -1
  20. package/date-picker/style.css +1 -1
  21. package/drawer/index.es.js +2 -2
  22. package/drawer/index.umd.js +1 -1
  23. package/dropdown/index.es.js +104 -48
  24. package/dropdown/index.umd.js +1 -1
  25. package/dropdown/style.css +1 -1
  26. package/editable-select/index.es.js +423 -8
  27. package/editable-select/index.umd.js +1 -1
  28. package/editable-select/style.css +1 -1
  29. package/form/index.es.js +304 -184
  30. package/form/index.umd.js +15 -15
  31. package/form/style.css +1 -1
  32. package/fullscreen/index.es.js +2 -2
  33. package/fullscreen/index.umd.js +1 -1
  34. package/grid/index.es.js +8 -6
  35. package/grid/index.umd.js +1 -1
  36. package/icon/index.es.js +109 -13
  37. package/icon/index.umd.js +1 -1
  38. package/icon/style.css +1 -0
  39. package/image-preview/index.es.js +2 -2
  40. package/image-preview/index.umd.js +1 -1
  41. package/input/index.es.js +278 -30
  42. package/input/index.umd.js +1 -1
  43. package/input/style.css +1 -1
  44. package/input-number/index.es.js +272 -199
  45. package/input-number/index.umd.js +1 -1
  46. package/input-number/style.css +1 -1
  47. package/layout/index.es.js +2 -2
  48. package/layout/index.umd.js +1 -1
  49. package/loading/index.es.js +2 -2
  50. package/loading/index.umd.js +1 -1
  51. package/modal/index.es.js +105 -32
  52. package/modal/index.umd.js +1 -1
  53. package/modal/style.css +1 -1
  54. package/notification/index.es.js +105 -32
  55. package/notification/index.umd.js +1 -1
  56. package/notification/style.css +1 -1
  57. package/nuxt/components/CheckboxButton.js +3 -0
  58. package/nuxt/components/Icon.js +1 -0
  59. package/nuxt/components/LABEL_DATA.js +3 -0
  60. package/nuxt/components/Option.js +3 -0
  61. package/nuxt/components/iconProps.js +1 -0
  62. package/nuxt/components/svgIconProps.js +3 -0
  63. package/overlay/index.es.js +2 -2
  64. package/overlay/index.umd.js +1 -1
  65. package/package.json +2 -1
  66. package/pagination/index.es.js +2 -2
  67. package/pagination/index.umd.js +1 -1
  68. package/popover/index.es.js +153 -67
  69. package/popover/index.umd.js +15 -15
  70. package/popover/style.css +1 -1
  71. package/progress/index.es.js +2 -2
  72. package/progress/index.umd.js +2 -2
  73. package/radio/index.es.js +139 -143
  74. package/radio/index.umd.js +1 -1
  75. package/rate/index.es.js +16 -8
  76. package/rate/index.umd.js +1 -1
  77. package/result/index.es.js +108 -12
  78. package/result/index.umd.js +1 -1
  79. package/result/style.css +1 -1
  80. package/search/index.es.js +316 -60
  81. package/search/index.umd.js +16 -16
  82. package/search/style.css +1 -1
  83. package/select/index.es.js +7334 -574
  84. package/select/index.umd.js +27 -1
  85. package/select/style.css +1 -1
  86. package/skeleton/index.es.js +2 -2
  87. package/skeleton/index.umd.js +1 -1
  88. package/slider/index.es.js +2 -2
  89. package/slider/index.umd.js +1 -1
  90. package/splitter/index.es.js +178 -89
  91. package/splitter/index.umd.js +17 -17
  92. package/splitter/style.css +1 -1
  93. package/status/index.es.js +2 -2
  94. package/status/index.umd.js +1 -1
  95. package/style.css +1 -1
  96. package/switch/index.es.js +2 -2
  97. package/switch/index.umd.js +1 -1
  98. package/table/index.es.js +1301 -524
  99. package/table/index.umd.js +18 -18
  100. package/table/style.css +1 -1
  101. package/tabs/index.es.js +114 -72
  102. package/tabs/index.umd.js +1 -1
  103. package/tabs/style.css +1 -1
  104. package/tag/index.es.js +6 -7
  105. package/tag/index.umd.js +1 -1
  106. package/textarea/index.es.js +5545 -11
  107. package/textarea/index.umd.js +35 -1
  108. package/timeline/index.es.js +108 -12
  109. package/timeline/index.umd.js +1 -1
  110. package/timeline/style.css +1 -1
  111. package/tooltip/index.es.js +168 -79
  112. package/tooltip/index.umd.js +15 -15
  113. package/tooltip/style.css +1 -1
  114. package/tree/index.es.js +338 -227
  115. package/tree/index.umd.js +1 -1
  116. package/tree/style.css +1 -1
  117. package/upload/index.es.js +105 -32
  118. package/upload/index.umd.js +1 -1
  119. package/upload/style.css +1 -1
  120. package/vue-devui.es.js +3269 -1742
  121. package/vue-devui.umd.js +29 -23
  122. package/nuxt/components/FormControl.js +0 -3
  123. package/nuxt/components/FormLabel.js +0 -3
@@ -1 +1 @@
1
- var ae=Object.defineProperty,le=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var F=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var _=(f,e,w)=>e in f?ae(f,e,{enumerable:!0,configurable:!0,writable:!0,value:w}):f[e]=w,j=(f,e)=>{for(var w in e||(e={}))se.call(e,w)&&_(f,w,e[w]);if(F)for(var w of F(e))ie.call(e,w)&&_(f,w,e[w]);return f},L=(f,e)=>le(f,re(e));(function(f,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):(f=typeof globalThis!="undefined"?globalThis:f||self,e(f.index={},f.Vue,f.dom,f.core))})(this,function(f,e,w,H){"use strict";const q={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}};function U(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const V=new Map;function P(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:l,props:r,emit:i})=>{let a=!1,s=!1;const{trigger:c,closeScope:u,closeOnMouseLeaveMenu:y}=e.toRefs(r),d=m=>{o.value=m,i("toggle",o.value)},v=async(m,C)=>{await new Promise(g=>setTimeout(g,50)),!(m==="origin"&&a||m==="dropdown"&&s)&&(C&&[...V.values()].reverse().forEach(g=>{setTimeout(()=>{var k;(k=g.toggle)==null||k.call(g)},0)}),d(!1))};e.watch([c,n,l],([m,C,g],k,p)=>{const h=U(C),O=[];setTimeout(()=>{O.push(P(document,"click",b=>{const B=[...V.values()];!o.value||u.value==="none"||(g==null?void 0:g.contains(b.target))&&u.value==="blank"||B.some(S=>{var E;return(E=S.toggleEl)==null?void 0:E.contains(b.target)})&&B.some(S=>{var E;return(E=S.menuEl)==null?void 0:E.contains(b.target)})||([...V.values()].reverse().forEach(S=>{setTimeout(()=>{var E,N;((E=S.toggleEl)==null?void 0:E.contains(b.target))||(N=S.toggle)==null||N.call(S)},0)}),a=!1)}))},0),m==="click"?O.push(P(h,"click",()=>d(!o.value)),P(g,"mouseleave",b=>{var B;y.value&&!((B=V.get(t).child)==null?void 0:B.contains(b.relatedTarget))&&v("dropdown",!0)})):m==="hover"&&O.push(P(h,"mouseenter",()=>{s=!0,d(!0)}),P(h,"mouseleave",()=>{s=!1,v("origin")}),P(g,"mouseenter",()=>{a=!0,o.value=!0}),P(g,"mouseleave",b=>{var B;a=!1,!(b.relatedTarget&&((h==null?void 0:h.contains(b.relatedTarget))||((B=V.get(t).child)==null?void 0:B.contains(b.relatedTarget))))&&v("dropdown",!0)})),p(()=>O.forEach(b=>b()))})};function z(t,o,n,l,r,i,a){const s=c=>{const u=c.offsetHeight;window.innerHeight-l.value.getBoundingClientRect().bottom>=u?i.value="bottom":i.value="top"};e.watch(o,(c,u)=>{u!==void 0&&(n.value=c,a("toggle",n.value))},{immediate:!0}),e.watch([n,r],([c,u])=>{var y;if(c){V.set(t,L(j({},V.get(t)),{menuEl:u,toggle:()=>{n.value=!1,a("toggle",n.value)}}));for(const d of V.values())((y=d.menuEl)==null?void 0:y.contains(l.value))&&(d.child=u)}u&&s(u)}),e.onMounted(()=>{V.set(t,{toggleEl:l.value})}),e.onUnmounted(()=>{V.delete(t)})}function X(t,o,n){const{showAnimation:l,overlayClass:r,destroyOnHide:i}=e.toRefs(t),a=e.ref(!1),s=e.ref(!1),c=e.computed(()=>({transformOrigin:o.value==="top"?"0% 100%":"0% 0%"})),u=e.computed(()=>({"fade-in-bottom":l.value&&n.value&&o.value==="bottom","fade-in-top":l.value&&n.value&&o.value==="top",[`${r.value}`]:!0})),y=d=>{o.value=d.includes("top")||d.includes("end")?"top":"bottom"};return e.watch(n,d=>{a.value=i.value?d:!0,s.value=d}),{overlayModelValue:a,overlayShowValue:s,styles:c,classes:u,handlePositionChange:y}}function A(t,o,n){let l=t;return o&&(l+=`__${o}`),n&&(l+=`--${n}`),l}function x(t){const o=`devui-${t}`;return{b:()=>A(o),e:a=>a?A(o,a):"",m:a=>a?A(o,"",a):"",em:(a,s)=>a&&s?A(o,a,s):""}}var ue="";function I(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const G=e.defineComponent({setup(t,o){const n=x("overlay");return()=>{let l;return e.createVNode(e.Teleport,{to:"#d-overlay-anchor"},{default:()=>[e.createVNode(e.Transition,{name:n.e("fade")},I(l=e.renderSlot(o.slots,"default"))?l:{default:()=>[l]})]})}}}),J=L(j({},{visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}}),{overlayStyle:{type:[String,Object],default:void 0}}),K=["update:visible","backdropClick"];function Q(t,o){const n=x("overlay"),l=e.computed(()=>[n.e("background"),t.backgroundClass,t.hasBackdrop?n.em("background","color"):n.em("background","disabled")]),r=e.computed(()=>n.b()),i=s=>{var c;s.preventDefault(),(c=t.onBackdropClick)==null||c.call(t),t.backdropClose&&o.emit("update:visible",!1)},a=s=>s.cancelBubble=!0;return e.onMounted(()=>{const s=document.body,c=s.style.overflow,u=s.style.position;e.watch([()=>t.visible,()=>t.backgroundBlock],([y,d])=>{if(d){const v=s.getBoundingClientRect().y;y?(s.style.overflowY="scroll",s.style.position=y?"fixed":"",s.style.top=`${v}px`):(s.style.overflowY=c,s.style.position=u,s.style.top="",window.scrollTo(0,-v))}}),e.onUnmounted(()=>{document.body.style.overflow=c})}),{backgroundClass:l,overlayClass:r,handleBackdropClick:i,handleOverlayBubbleCancel:a}}var de="";e.defineComponent({name:"DFixedOverlay",props:J,emits:K,setup(t,o){const{backgroundClass:n,overlayClass:l,handleBackdropClick:r,handleOverlayBubbleCancel:i}=Q(t,o);return()=>e.createVNode(G,null,{default:()=>[t.visible&&e.createVNode("div",{class:n.value,style:t.backgroundStyle,onClick:r},[e.createVNode("div",{class:l.value,style:t.overlayStyle,onClick:i},[e.renderSlot(o.slots,"default")])])]})}});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}};function Z(t){const o=/(auto|scroll|hidden)/;for(let n=t;n=n.parentElement;n.parentElement!==document.body){const l=window.getComputedStyle(n);if(o.test(l.overflow+l.overflowX+l.overflowY))return n}return window}function ee(t,o,n,l){let{x:r,y:i}=o;if(!t){const{width:a,height:s}=l;r&&n.includes("start")&&(r=12),r&&n.includes("end")&&(r=Math.round(a-24)),i&&n.includes("start")&&(i=10),i&&n.includes("end")&&(i=s-14)}return{x:r,y:i}}function te(t,o){const n=e.ref(),l=e.ref();let r=null;const i=(s,c,u,y)=>{const{x:d,y:v}=ee(t.isArrowCenter,u,c,y.getBoundingClientRect()),m={top:"bottom",right:"left",bottom:"top",left:"right"}[c.split("-")[0]];Object.assign(s.style,{left:d?`${d}px`:"",top:v?`${v}px`:"",right:"",bottom:"",[m]:"-4px"})},a=async()=>{const s=t.origin,c=e.unref(n.value),u=e.unref(l.value),y=[w.offset(t.offset),w.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&y.push(w.arrow({element:u})),t.shiftOffset!==void 0&&y.push(w.shift());const{x:d,y:v,placement:m,middlewareData:C}=await w.computePosition(s,c,{strategy:"fixed",middleware:y});let g=d,k=v;if(t.shiftOffset!==void 0){const{x:p,y:h}=C.shift;p<0&&(g-=t.shiftOffset),p>0&&(g+=t.shiftOffset),h<0&&(k-=t.shiftOffset),h>0&&(k+=t.shiftOffset)}o("positionChange",m),Object.assign(c.style,{top:`${k}px`,left:`${g}px`}),t.showArrow&&i(u,m,C.arrow,c)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(r=Z(t.origin),e.nextTick(a),r==null||r.addEventListener("scroll",a),r!==window&&window.addEventListener("scroll",a),window.addEventListener("resize",a)):(r==null||r.removeEventListener("scroll",a),r!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a))}),e.onUnmounted(()=>{r==null||r.removeEventListener("scroll",a),r!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a)}),{arrowRef:l,overlayRef:n,updatePosition:a}}var fe="";const R=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:W,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:l,expose:r}){const i=x("flexible-overlay"),{arrowRef:a,overlayRef:s,updatePosition:c}=te(t,l);return r({updatePosition:c}),()=>{var u;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:s,class:i.b()},n),[(u=o.default)==null?void 0:u.call(o),t.showArrow&&e.createVNode("div",{ref:a,class:i.e("arrow")},null)])}}});var ye="";let oe=1;var M=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:q,emits:["toggle"],setup(t,{slots:o,attrs:n,emit:l,expose:r}){const{visible:i,position:a,align:s,offset:c,destroyOnHide:u,shiftOffset:y,showAnimation:d}=e.toRefs(t),v=e.ref(),m=e.ref(),C=e.ref(),g=`dropdown_${oe++}`,k=e.ref(!1),p=e.ref("bottom"),h=x("dropdown");Y({id:g,isOpen:k,origin:v,dropdownRef:m,props:t,emit:l}),z(g,i,k,v,m,p,l);const{overlayModelValue:O,overlayShowValue:b,styles:B,classes:S,handlePositionChange:E}=X(t,p,k);return e.watch(b,N=>{e.nextTick(()=>{!u.value&&N&&C.value.updatePosition()})}),r({updatePosition:()=>C.value.updatePosition()}),()=>{var N;return e.createVNode(e.Fragment,null,[e.createVNode("div",{ref:v,class:h.e("toggle")},[(N=o.default)==null?void 0:N.call(o)]),e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:d.value?`devui-dropdown-fade-${p.value}`:""},{default:()=>[e.withDirectives(e.createVNode(R,{modelValue:O.value,"onUpdate:modelValue":D=>O.value=D,ref:C,origin:v.value,position:a.value,align:s.value,offset:c.value,shiftOffset:y==null?void 0:y.value,onPositionChange:E,class:S.value,style:B.value},{default:()=>{var D;return[e.createVNode("div",e.mergeProps({ref:m,class:h.e("menu-wrap")},n),[(D=o.menu)==null?void 0:D.call(o)])]}}),[[e.vShow,b.value]])]})]})])}}});const $={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 T=e.defineComponent({name:"DDropdownMenu",inheritAttrs:!1,props:$,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:l}){const{modelValue:r,origin:i,position:a,align:s,offset:c,clickOutside:u,showAnimation:y,overlayClass:d}=e.toRefs(t),v=e.ref(null),m=x("dropdown");H.onClickOutside(v,p=>{var h,O;((h=u.value)==null?void 0:h.call(u))&&!((O=i==null?void 0:i.value)==null?void 0:O.contains(p.target))&&l("update:modelValue",!1)});const C=e.ref("bottom"),g=p=>{C.value=p.split("-")[0]==="top"?"top":"bottom"},k=e.computed(()=>({transformOrigin:C.value==="top"?"0% 100%":"0% 0%"}));return()=>e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:y.value?`devui-dropdown-fade-${C.value}`:""},{default:()=>[e.createVNode(R,{modelValue:r.value,"onUpdate:modelValue":p=>r.value=p,origin:i==null?void 0:i.value,position:a.value,align:s.value,offset:c.value,onPositionChange:g,class:d.value,style:k.value},{default:()=>{var p;return[e.createVNode("div",e.mergeProps({ref:v,class:m.e("menu-wrap")},n),[(p=o.default)==null?void 0:p.call(o)])]}})]})]})}}),ne={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"10%",install(t){t.component(M.name,M),t.component(T.name,T)}};f.Dropdown=M,f.DropdownMenu=T,f.default=ne,f.dropdownMenuProps=$,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
1
+ var ue=Object.defineProperty,ce=Object.defineProperties;var de=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable;var q=(f,e,w)=>e in f?ue(f,e,{enumerable:!0,configurable:!0,writable:!0,value:w}):f[e]=w,j=(f,e)=>{for(var w in e||(e={}))fe.call(e,w)&&q(f,w,e[w]);if(H)for(var w of H(e))ye.call(e,w)&&q(f,w,e[w]);return f},M=(f,e)=>ce(f,de(e));(function(f,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):(f=typeof globalThis!="undefined"?globalThis:f||self,e(f.index={},f.Vue,f.dom,f.core))})(this,function(f,e,w,U){"use strict";const Y={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 z(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const k=new Map;function N(t,o,n){return t==null||t.addEventListener(o,n),()=>{t==null||t.removeEventListener(o,n)}}const X=({id:t,isOpen:o,origin:n,dropdownRef:a,props:r,emit:i})=>{let s=!1,l=!1;const{trigger:u,closeScope:c,closeOnMouseLeaveMenu:y}=e.toRefs(r),d=m=>{o.value=m,i("toggle",o.value)},p=async(m,C)=>{await new Promise(g=>setTimeout(g,50)),!(m==="origin"&&s||m==="dropdown"&&l)&&(C&&[...k.values()].reverse().forEach(g=>{setTimeout(()=>{var V;(V=g.toggle)==null||V.call(g)},0)}),d(!1))};e.watch([u,n,a],([m,C,g],V,v)=>{const h=z(C),B=[];setTimeout(()=>{B.push(N(document,"click",b=>{const P=[...k.values()];!o.value||c.value==="none"||(g==null?void 0:g.contains(b.target))&&c.value==="blank"||P.some(S=>{var E;return(E=S.toggleEl)==null?void 0:E.contains(b.target)})&&P.some(S=>{var E;return(E=S.menuEl)==null?void 0:E.contains(b.target)})||([...k.values()].reverse().forEach(S=>{setTimeout(()=>{var E,O;((E=S.toggleEl)==null?void 0:E.contains(b.target))||(O=S.toggle)==null||O.call(S)},0)}),s=!1)}))},0),m==="click"?B.push(N(h,"click",()=>d(!o.value)),N(g,"mouseleave",b=>{var P;y.value&&!((P=k.get(t).child)==null?void 0:P.contains(b.relatedTarget))&&p("dropdown",!0)})):m==="hover"&&B.push(N(h,"mouseenter",()=>{l=!0,d(!0)}),N(h,"mouseleave",()=>{l=!1,p("origin")}),N(g,"mouseenter",()=>{s=!0,o.value=!0}),N(g,"mouseleave",b=>{var P;s=!1,!(b.relatedTarget&&((h==null?void 0:h.contains(b.relatedTarget))||((P=k.get(t).child)==null?void 0:P.contains(b.relatedTarget))))&&p("dropdown",!0)})),v(()=>B.forEach(b=>b()))})};function G(t,o,n,a,r,i,s){const l=u=>{const c=u.offsetHeight;window.innerHeight-a.value.getBoundingClientRect().bottom>=c?i.value="bottom":i.value="top"};e.watch(o,(u,c)=>{c!==void 0&&(n.value=u,s("toggle",n.value))},{immediate:!0}),e.watch([n,r],([u,c])=>{var y;if(u){k.set(t,M(j({},k.get(t)),{menuEl:c,toggle:()=>{n.value=!1,s("toggle",n.value)}}));for(const d of k.values())((y=d.menuEl)==null?void 0:y.contains(a.value))&&(d.child=c)}c&&l(c)}),e.onMounted(()=>{k.set(t,{toggleEl:a.value})}),e.onUnmounted(()=>{k.delete(t)})}function I(t,o,n){const{showAnimation:a,overlayClass:r,destroyOnHide:i}=e.toRefs(t),s=e.ref(!1),l=e.ref(!1),u=e.computed(()=>({transformOrigin:o.value==="top"?"0% 100%":"0% 0%"})),c=e.computed(()=>({"fade-in-bottom":a.value&&n.value&&o.value==="bottom","fade-in-top":a.value&&n.value&&o.value==="top",[`${r.value}`]:!0})),y=d=>{o.value=d.includes("top")||d.includes("end")?"top":"bottom"};return e.watch(n,d=>{s.value=i.value?d:!0,l.value=d}),{overlayModelValue:s,overlayShowValue:l,styles:u,classes:c,handlePositionChange:y}}function x(t,o,n){let a=t;return o&&(a+=`__${o}`),n&&(a+=`--${n}`),a}function T(t,o=!1){const n=o?`.devui-${t}`:`devui-${t}`;return{b:()=>x(n),e:l=>l?x(n,l):"",m:l=>l?x(n,"",l):"",em:(l,u)=>l&&u?x(n,l,u):""}}var ge="";function K(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const J=e.defineComponent({setup(t,o){const n=T("overlay");return()=>{let a;return e.createVNode(e.Teleport,{to:"#d-overlay-anchor"},{default:()=>[e.createVNode(e.Transition,{name:n.e("fade")},K(a=e.renderSlot(o.slots,"default"))?a:{default:()=>[a]})]})}}}),Q=M(j({},{visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}}),{overlayStyle:{type:[String,Object],default:void 0}}),W=["update:visible","backdropClick"];function Z(t,o){const n=T("overlay"),a=e.computed(()=>[n.e("background"),t.backgroundClass,t.hasBackdrop?n.em("background","color"):n.em("background","disabled")]),r=e.computed(()=>n.b()),i=l=>{var u;l.preventDefault(),(u=t.onBackdropClick)==null||u.call(t),t.backdropClose&&o.emit("update:visible",!1)},s=l=>l.cancelBubble=!0;return e.onMounted(()=>{const l=document.body,u=l.style.overflow,c=l.style.position;e.watch([()=>t.visible,()=>t.backgroundBlock],([y,d])=>{if(d){const p=l.getBoundingClientRect().y;y?(l.style.overflowY="scroll",l.style.position=y?"fixed":"",l.style.top=`${p}px`):(l.style.overflowY=u,l.style.position=c,l.style.top="",window.scrollTo(0,-p))}}),e.onUnmounted(()=>{document.body.style.overflow=u})}),{backgroundClass:a,overlayClass:r,handleBackdropClick:i,handleOverlayBubbleCancel:s}}var me="";e.defineComponent({name:"DFixedOverlay",props:Q,emits:W,setup(t,o){const{backgroundClass:n,overlayClass:a,handleBackdropClick:r,handleOverlayBubbleCancel:i}=Z(t,o);return()=>e.createVNode(J,null,{default:()=>[t.visible&&e.createVNode("div",{class:n.value,style:t.backgroundStyle,onClick:r},[e.createVNode("div",{class:a.value,style:t.overlayStyle,onClick:i},[e.renderSlot(o.slots,"default")])])]})}});const ee={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}};function te(t){const o=/(auto|scroll|hidden)/;for(let n=t;n=n.parentElement;n.parentElement!==document.body){const a=window.getComputedStyle(n);if(o.test(a.overflow+a.overflowX+a.overflowY))return n}return window}function oe(t,o,n,a){let{x:r,y:i}=o;if(!t){const{width:s,height:l}=a;r&&n.includes("start")&&(r=12),r&&n.includes("end")&&(r=Math.round(s-24)),i&&n.includes("start")&&(i=10),i&&n.includes("end")&&(i=l-14)}return{x:r,y:i}}function ne(t,o){const n=e.ref(),a=e.ref();let r=null;const i=(l,u,c,y)=>{const{x:d,y:p}=oe(t.isArrowCenter,c,u,y.getBoundingClientRect()),m={top:"bottom",right:"left",bottom:"top",left:"right"}[u.split("-")[0]];Object.assign(l.style,{left:d?`${d}px`:"",top:p?`${p}px`:"",right:"",bottom:"",[m]:"-4px"})},s=async()=>{const l=t.origin,u=e.unref(n.value),c=e.unref(a.value),y=[w.offset(t.offset),w.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&y.push(w.arrow({element:c})),t.shiftOffset!==void 0&&y.push(w.shift());const{x:d,y:p,placement:m,middlewareData:C}=await w.computePosition(l,u,{strategy:"fixed",middleware:y});let g=d,V=p;if(t.shiftOffset!==void 0){const{x:v,y:h}=C.shift;v<0&&(g-=t.shiftOffset),v>0&&(g+=t.shiftOffset),h<0&&(V-=t.shiftOffset),h>0&&(V+=t.shiftOffset)}o("positionChange",m),Object.assign(u.style,{top:`${V}px`,left:`${g}px`}),t.showArrow&&i(c,m,C.arrow,u)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(r=te(t.origin),e.nextTick(s),r==null||r.addEventListener("scroll",s),r!==window&&window.addEventListener("scroll",s),window.addEventListener("resize",s)):(r==null||r.removeEventListener("scroll",s),r!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s))}),e.onUnmounted(()=>{r==null||r.removeEventListener("scroll",s),r!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}),{arrowRef:a,overlayRef:n,updatePosition:s}}var ve="";const L=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:ee,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:a,expose:r}){const i=T("flexible-overlay"),{arrowRef:s,overlayRef:l,updatePosition:u}=ne(t,a);return r({updatePosition:u}),()=>{var c;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:l,class:i.b()},n),[(c=o.default)==null?void 0:c.call(o),t.showArrow&&e.createVNode("div",{ref:s,class:i.e("arrow")},null)])}}}),le=t=>t!==null&&typeof t=="object",ae=T("popper-trigger");function $(t){return e.h("span",{class:ae.b()},t)}function _(t){for(const o of t){if(le(o)){if(o.type===e.Comment)continue;return o.type==="svg"||o.type===e.Text?$(o):o.type===e.Fragment?_(o.children):o}return $(o)}return null}var re=e.defineComponent({name:"DPopperTrigger",setup(t,o){const{slots:n,attrs:a}=o;return()=>{var l;const r=(l=n.default)==null?void 0:l.call(n,a),i=e.inject(R);if(!r)return null;const s=_(r);return s?e.withDirectives(e.cloneVNode(s,a),[[{mounted(u){i.value=u},updated(u){i.value=u},unmounted(){i.value=null}}]]):null}}}),we="";let se=1;var D=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:Y,emits:["toggle"],setup(t,{slots:o,attrs:n,emit:a,expose:r}){const{visible:i,position:s,align:l,offset:u,destroyOnHide:c,shiftOffset:y,showAnimation:d}=e.toRefs(t),p=e.ref(),m=e.ref(),C=e.ref(),g=`dropdown_${se++}`,V=e.ref(!1),v=e.ref("bottom"),h=T("dropdown");e.provide(R,p),X({id:g,isOpen:V,origin:p,dropdownRef:m,props:t,emit:a}),G(g,i,V,p,m,v,a);const{overlayModelValue:B,overlayShowValue:b,styles:P,classes:S,handlePositionChange:E}=I(t,v,V);return e.watch(b,O=>{e.nextTick(()=>{!c.value&&O&&C.value.updatePosition()})}),r({updatePosition:()=>C.value.updatePosition()}),()=>e.createVNode(e.Fragment,null,[e.createVNode(re,null,{default:()=>{var O;return[(O=o.default)==null?void 0:O.call(o)]}}),e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:d.value?h.m(`fade-${v.value}`):""},{default:()=>[e.withDirectives(e.createVNode(L,{modelValue:B.value,"onUpdate:modelValue":O=>B.value=O,ref:C,origin:p.value,position:s.value,align:l.value,offset:u.value,shiftOffset:y==null?void 0:y.value,onPositionChange:E,class:S.value,style:P.value},{default:()=>{var O;return[e.createVNode("div",e.mergeProps({ref:m,class:h.e("menu-wrap")},n),[(O=o.menu)==null?void 0:O.call(o)])]}}),[[e.vShow,b.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 A=e.defineComponent({name:"DDropdownMenu",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:a}){const{modelValue:r,origin:i,position:s,align:l,offset:u,clickOutside:c,showAnimation:y,overlayClass:d}=e.toRefs(t),p=e.ref(null),m=T("dropdown");U.onClickOutside(p,v=>{var h,B;((h=c.value)==null?void 0:h.call(c))&&!((B=i==null?void 0:i.value)==null?void 0:B.contains(v.target))&&a("update:modelValue",!1)});const C=e.ref("bottom"),g=v=>{C.value=v.split("-")[0]==="top"?"top":"bottom"},V=e.computed(()=>({transformOrigin:C.value==="top"?"0% 100%":"0% 0%"}));return()=>e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:y.value?m.m(`fade-${C.value}`):""},{default:()=>[e.createVNode(L,{modelValue:r.value,"onUpdate:modelValue":v=>r.value=v,origin:i==null?void 0:i.value,position:s.value,align:l.value,offset:u.value,onPositionChange:g,class:d.value,style:V.value},{default:()=>{var v;return[e.createVNode("div",e.mergeProps({ref:p,class:m.e("menu-wrap")},n),[(v=o.default)==null?void 0:v.call(o)])]}})]})]})}}),ie={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"10%",install(t){t.component(D.name,D),t.component(A.name,A)}};f.Dropdown=D,f.DropdownMenu=A,f.default=ie,f.dropdownMenuProps=F,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
@@ -1 +1 @@
1
- @keyframes d-overlay-fade{0%{opacity:0}to{opacity:1}}.devui-overlay__fade-enter{opacity:0}.devui-overlay__fade-enter-active{animation-name:d-overlay-fade;animation-duration:.3s}.devui-overlay__fade-leave{opacity:1}.devui-overlay__fade-leave-active{animation-name:d-overlay-fade;animation-duration:.3s;animation-direction:reverse}.devui-overlay__background{position:fixed;top:0;left:0;height:100vh;width:100vw;display:flex}.devui-overlay__background--color{background:rgba(0,0,0,.4)}.devui-overlay__background .devui-overlay{position:relative;z-index:1000;pointer-events:auto}.devui-overlay__background--disabled{pointer-events:none}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1000}.devui-flexible-overlay__arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}.devui-dropdown__toggle{display:inline-block}.devui-dropdown span.icon-chevron-down,.devui-dropdown span.icon-select-arrow{display:inline-block;vertical-align:text-top}.devui-dropdown__menu-wrap .devui-dropdown-menu{width:100%}.devui-dropdown-animation span.icon-chevron-down,.devui-dropdown-animation span.icon-select-arrow{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-dropdown.open span.icon-chevron-down,.devui-dropdown.open span.icon-select-arrow{transform:rotate(180deg)}.fade-in-top{animation:fadeInTop .2s cubic-bezier(.16,.75,.5,1)}.fade-in-bottom{animation:fadeInBottom .2s cubic-bezier(.16,.75,.5,1)}@keyframes fadeInTop{0%{opacity:.8;transform:scaleY(.8) translateY(4px)}to{opacity:1;transform:scaleY(.9999) translateY(0)}}@keyframes fadeInBottom{0%{opacity:.8;transform:scaleY(.8) translateY(-4px)}to{opacity:1;transform:scaleY(.9999) translateY(0)}}.devui-dropdown-fade-bottom-enter-from,.devui-dropdown-fade-bottom-leave-to{opacity:.8;transform:scaleY(.8) translateY(-4px)}.devui-dropdown-fade-bottom-enter-to,.devui-dropdown-fade-bottom-leave-from{opacity:1;transform:scaleY(.9999) translateY(0)}.devui-dropdown-fade-bottom-enter-active{transition:transform .2s cubic-bezier(.16,.75,.5,1),opacity .2s cubic-bezier(.16,.75,.5,1)}.devui-dropdown-fade-bottom-leave-active{transition:transform .2s cubic-bezier(.5,0,.84,.25),opacity .2s cubic-bezier(.5,0,.84,.25)}.devui-dropdown-fade-top-enter-from,.devui-dropdown-fade-top-leave-to{opacity:.8;transform:scaleY(.8) translateY(4px)}.devui-dropdown-fade-top-enter-to,.devui-dropdown-fade-top-leave-from{opacity:1;transform:scaleY(.9999) translateY(0)}.devui-dropdown-fade-top-enter-active{transition:transform .2s cubic-bezier(.16,.75,.5,1),opacity .2s cubic-bezier(.16,.75,.5,1)}.devui-dropdown-fade-top-leave-active{transition:transform .2s cubic-bezier(.5,0,.84,.25),opacity .2s cubic-bezier(.5,0,.84,.25)}
1
+ @keyframes d-overlay-fade{0%{opacity:0}to{opacity:1}}.devui-overlay__fade-enter{opacity:0}.devui-overlay__fade-enter-active{animation-name:d-overlay-fade;animation-duration:.3s}.devui-overlay__fade-leave{opacity:1}.devui-overlay__fade-leave-active{animation-name:d-overlay-fade;animation-duration:.3s;animation-direction:reverse}.devui-overlay__background{position:fixed;top:0;left:0;height:100vh;width:100vw;display:flex}.devui-overlay__background--color{background:rgba(0,0,0,.4)}.devui-overlay__background .devui-overlay{position:relative;z-index:1000;pointer-events:auto}.devui-overlay__background--disabled{pointer-events:none}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1000}.devui-flexible-overlay__arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}.devui-dropdown span.icon-chevron-down,.devui-dropdown span.icon-select-arrow{display:inline-block;vertical-align:text-top}.devui-dropdown__menu-wrap .devui-dropdown-menu{width:100%}.devui-dropdown-animation span.icon-chevron-down,.devui-dropdown-animation span.icon-select-arrow{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-dropdown.open span.icon-chevron-down,.devui-dropdown.open span.icon-select-arrow{transform:rotate(180deg)}.fade-in-top{animation:fadeInTop .2s cubic-bezier(.16,.75,.5,1)}.fade-in-bottom{animation:fadeInBottom .2s cubic-bezier(.16,.75,.5,1)}@keyframes fadeInTop{0%{opacity:.8;transform:scaleY(.8) translateY(4px)}to{opacity:1;transform:scaleY(.9999) translateY(0)}}@keyframes fadeInBottom{0%{opacity:.8;transform:scaleY(.8) translateY(-4px)}to{opacity:1;transform:scaleY(.9999) translateY(0)}}.devui-dropdown--fade-bottom-enter-from,.devui-dropdown--fade-bottom-leave-to{opacity:.8;transform:scaleY(.8) translateY(-4px)}.devui-dropdown--fade-bottom-enter-to,.devui-dropdown--fade-bottom-leave-from{opacity:1;transform:scaleY(.9999) translateY(0)}.devui-dropdown--fade-bottom-enter-active{transition:transform .2s cubic-bezier(.16,.75,.5,1),opacity .2s cubic-bezier(.16,.75,.5,1)}.devui-dropdown--fade-bottom-leave-active{transition:transform .2s cubic-bezier(.5,0,.84,.25),opacity .2s cubic-bezier(.5,0,.84,.25)}.devui-dropdown--fade-top-enter-from,.devui-dropdown--fade-top-leave-to{opacity:.8;transform:scaleY(.8) translateY(4px)}.devui-dropdown--fade-top-enter-to,.devui-dropdown--fade-top-leave-from{opacity:1;transform:scaleY(.9999) translateY(0)}.devui-dropdown--fade-top-enter-active{transition:transform .2s cubic-bezier(.16,.75,.5,1),opacity .2s cubic-bezier(.16,.75,.5,1)}.devui-dropdown--fade-top-leave-active{transition:transform .2s cubic-bezier(.5,0,.84,.25),opacity .2s cubic-bezier(.5,0,.84,.25)}
@@ -1,4 +1,25 @@
1
- import { computed, ref, nextTick, defineComponent, watch, withDirectives, createVNode, withModifiers, resolveComponent, vShow, resolveDirective } from "vue";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __publicField = (obj, key, value) => {
18
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
19
+ return value;
20
+ };
21
+ import { defineComponent, ref, createVNode, h, render, computed, nextTick, unref, watch, onUnmounted, mergeProps, withDirectives, withModifiers, resolveComponent, vShow, resolveDirective } from "vue";
22
+ import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
2
23
  const editableSelectProps = {
3
24
  options: {
4
25
  type: Array,
@@ -87,6 +108,234 @@ const clickoutsideDirective = {
87
108
  delete el[ctx];
88
109
  }
89
110
  };
111
+ class View {
112
+ constructor() {
113
+ __publicField(this, "top", "50%");
114
+ __publicField(this, "left", "50%");
115
+ }
116
+ }
117
+ const loadingProps = {
118
+ message: String,
119
+ backdrop: Boolean,
120
+ view: {
121
+ type: Object,
122
+ default: () => new View()
123
+ },
124
+ zIndex: Number,
125
+ isFull: {
126
+ type: Boolean,
127
+ default: false
128
+ }
129
+ };
130
+ class LoadingOptions {
131
+ constructor() {
132
+ __publicField(this, "target");
133
+ __publicField(this, "message");
134
+ __publicField(this, "loadingTemplateRef");
135
+ __publicField(this, "backdrop", true);
136
+ __publicField(this, "positionType", "relative");
137
+ __publicField(this, "view", new View());
138
+ __publicField(this, "zIndex");
139
+ }
140
+ }
141
+ function createBem(namespace, element, modifier) {
142
+ let cls = namespace;
143
+ if (element) {
144
+ cls += `__${element}`;
145
+ }
146
+ if (modifier) {
147
+ cls += `--${modifier}`;
148
+ }
149
+ return cls;
150
+ }
151
+ function useNamespace(block, needDot = false) {
152
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
153
+ const b = () => createBem(namespace);
154
+ const e = (element) => element ? createBem(namespace, element) : "";
155
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
156
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
157
+ return {
158
+ b,
159
+ e,
160
+ m,
161
+ em
162
+ };
163
+ }
164
+ var loading = "";
165
+ var Loading = defineComponent({
166
+ name: "DLoading",
167
+ inheritAttrs: false,
168
+ props: loadingProps,
169
+ setup(props) {
170
+ const style = {
171
+ top: props.view.top,
172
+ left: props.view.left,
173
+ zIndex: props.zIndex
174
+ };
175
+ if (!props.message) {
176
+ style.background = "none";
177
+ }
178
+ const isShow = ref(false);
179
+ const open = () => {
180
+ isShow.value = true;
181
+ };
182
+ const close = () => {
183
+ isShow.value = false;
184
+ };
185
+ return {
186
+ style,
187
+ isShow,
188
+ open,
189
+ close
190
+ };
191
+ },
192
+ render() {
193
+ var _a;
194
+ const {
195
+ isShow,
196
+ isFull,
197
+ backdrop,
198
+ style,
199
+ message,
200
+ $slots
201
+ } = this;
202
+ const ns = useNamespace("loading");
203
+ return isShow && createVNode("div", {
204
+ "class": [ns.b(), isFull ? ns.m("full") : ""]
205
+ }, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
206
+ "class": ns.e("wrapper")
207
+ }, [backdrop ? createVNode("div", {
208
+ "class": ns.e("mask")
209
+ }, null) : null, createVNode("div", {
210
+ "style": style,
211
+ "class": ns.e("area")
212
+ }, [createVNode("div", {
213
+ "class": ns.e("busy-default-spinner")
214
+ }, [createVNode("div", {
215
+ "class": ns.e("bar1")
216
+ }, null), createVNode("div", {
217
+ "class": ns.e("bar2")
218
+ }, null), createVNode("div", {
219
+ "class": ns.e("bar3")
220
+ }, null), createVNode("div", {
221
+ "class": ns.e("bar4")
222
+ }, null)]), message ? createVNode("span", {
223
+ "class": ns.e("text")
224
+ }, [message]) : null])])]);
225
+ }
226
+ });
227
+ const COMPONENT_CONTAINER_SYMBOL = Symbol("dev_component_container");
228
+ function createComponent(component, props, children = null) {
229
+ const vnode = h(component, __spreadValues({}, props), children);
230
+ const container = document.createElement("div");
231
+ vnode[COMPONENT_CONTAINER_SYMBOL] = container;
232
+ render(vnode, container);
233
+ return vnode.component;
234
+ }
235
+ function unmountComponent(ComponnetInstance) {
236
+ render(null, ComponnetInstance == null ? void 0 : ComponnetInstance.vnode[COMPONENT_CONTAINER_SYMBOL]);
237
+ }
238
+ const loadingConstructor = defineComponent(Loading);
239
+ const cacheInstance = /* @__PURE__ */ new WeakSet();
240
+ const isEmpty = (val) => {
241
+ if (!val) {
242
+ return true;
243
+ }
244
+ if (Array.isArray(val)) {
245
+ return val.length === 0;
246
+ }
247
+ if (val instanceof Set || val instanceof Map) {
248
+ return val.size === 0;
249
+ }
250
+ if (val instanceof Promise) {
251
+ return false;
252
+ }
253
+ if (typeof val === "object") {
254
+ try {
255
+ return Object.keys(val).length === 0;
256
+ } catch (e) {
257
+ return false;
258
+ }
259
+ }
260
+ return false;
261
+ };
262
+ const getType = (vari) => {
263
+ return Object.prototype.toString.call(vari).slice(8, -1).toLowerCase();
264
+ };
265
+ const isPromise = (value) => {
266
+ const type = getType(value);
267
+ switch (type) {
268
+ case "promise":
269
+ return [value];
270
+ case "array":
271
+ if (value.some((val) => getType(val) !== "promise")) {
272
+ console.error(new TypeError("Binding values should all be of type Promise"));
273
+ return "error";
274
+ }
275
+ return value;
276
+ default:
277
+ return false;
278
+ }
279
+ };
280
+ const unmount = (el) => {
281
+ cacheInstance.delete(el);
282
+ el.instance.proxy.close();
283
+ unmountComponent(el.instance);
284
+ };
285
+ const toggleLoading = (el, binding) => {
286
+ var _a, _b, _c;
287
+ if (binding.value) {
288
+ const vals = isPromise(binding.value);
289
+ if (vals === "error") {
290
+ return;
291
+ }
292
+ (_c = (_b = (_a = el == null ? void 0 : el.instance) == null ? void 0 : _a.proxy) == null ? void 0 : _b.open) == null ? void 0 : _c.call(_b);
293
+ el.appendChild(el.mask);
294
+ cacheInstance.add(el);
295
+ if (vals) {
296
+ Promise.all(vals).catch((err) => {
297
+ console.error(new Error("Promise handling errors"), err);
298
+ }).finally(() => {
299
+ unmount(el);
300
+ });
301
+ }
302
+ } else {
303
+ unmount(el);
304
+ }
305
+ };
306
+ const removeAttribute = (el) => {
307
+ el.removeAttribute("zindex");
308
+ el.removeAttribute("positiontype");
309
+ el.removeAttribute("backdrop");
310
+ el.removeAttribute("message");
311
+ el.removeAttribute("view");
312
+ el.removeAttribute("loadingtemplateref");
313
+ };
314
+ const handleProps = (el, vprops) => {
315
+ var _a;
316
+ const props = __spreadValues(__spreadValues({}, new LoadingOptions()), vprops);
317
+ const loadingTemplateRef = props.loadingTemplateRef;
318
+ const loadingInstance = createComponent(loadingConstructor, __spreadValues({}, props), loadingTemplateRef ? () => loadingTemplateRef : null);
319
+ el.style.position = props.positionType;
320
+ el.options = props;
321
+ el.instance = loadingInstance;
322
+ el.mask = (_a = loadingInstance == null ? void 0 : loadingInstance.proxy) == null ? void 0 : _a.$el;
323
+ };
324
+ const loadingDirective = {
325
+ mounted: function(el, binding, vnode) {
326
+ handleProps(el, vnode.props);
327
+ removeAttribute(el);
328
+ !isEmpty(binding.value) && toggleLoading(el, binding);
329
+ },
330
+ updated: function(el, binding, vnode) {
331
+ if (!isEmpty(binding.value) && cacheInstance.has(el) || isEmpty(binding.value) && !cacheInstance.has(el)) {
332
+ return;
333
+ }
334
+ !cacheInstance.has(el) && handleProps(el, vnode.props);
335
+ removeAttribute(el);
336
+ toggleLoading(el, binding);
337
+ }
338
+ };
90
339
  function className(classStr, classOpt) {
91
340
  let classname = classStr;
92
341
  if (typeof classOpt === "object") {
@@ -137,7 +386,7 @@ const useLazyLoad = (dropdownRef, inputValue, filterOtion, ctx2) => {
137
386
  };
138
387
  return { loadMore };
139
388
  };
140
- const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, optionDisabledKey, filterOption, loading, handleClick, closeMenu, toggleMenu) => {
389
+ const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, optionDisabledKey, filterOption, loading2, handleClick, closeMenu, toggleMenu) => {
141
390
  const hoverIndex = ref(0);
142
391
  const selectedIndex = ref(0);
143
392
  const updateHoveringIndex = (index2) => {
@@ -181,7 +430,7 @@ const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, op
181
430
  if (!["ArrowDown", "ArrowUp"].includes(direction)) {
182
431
  return;
183
432
  }
184
- if (filterOption === false && loading.value) {
433
+ if (filterOption === false && loading2.value) {
185
434
  return;
186
435
  }
187
436
  let newIndex = 0;
@@ -220,10 +469,176 @@ const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, op
220
469
  };
221
470
  return { handleKeydown, hoverIndex, selectedIndex };
222
471
  };
472
+ const flexibleOverlayProps = {
473
+ modelValue: {
474
+ type: Boolean,
475
+ default: false
476
+ },
477
+ origin: {
478
+ type: Object,
479
+ require: true
480
+ },
481
+ position: {
482
+ type: Array,
483
+ default: ["bottom"]
484
+ },
485
+ offset: {
486
+ type: [Number, Object],
487
+ default: 8
488
+ },
489
+ shiftOffset: {
490
+ type: Number
491
+ },
492
+ align: {
493
+ type: String,
494
+ default: null
495
+ },
496
+ showArrow: {
497
+ type: Boolean,
498
+ default: false
499
+ },
500
+ isArrowCenter: {
501
+ type: Boolean,
502
+ default: true
503
+ }
504
+ };
505
+ function getScrollParent(element) {
506
+ const overflowRegex = /(auto|scroll|hidden)/;
507
+ for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
508
+ const style = window.getComputedStyle(parent);
509
+ if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
510
+ return parent;
511
+ }
512
+ }
513
+ return window;
514
+ }
515
+ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
516
+ let { x, y } = point;
517
+ if (!isArrowCenter) {
518
+ const { width, height } = originRect;
519
+ if (x && placement.includes("start")) {
520
+ x = 12;
521
+ }
522
+ if (x && placement.includes("end")) {
523
+ x = Math.round(width - 24);
524
+ }
525
+ if (y && placement.includes("start")) {
526
+ y = 10;
527
+ }
528
+ if (y && placement.includes("end")) {
529
+ y = height - 14;
530
+ }
531
+ }
532
+ return { x, y };
533
+ }
534
+ function useOverlay(props, emit) {
535
+ const overlayRef = ref();
536
+ const arrowRef = ref();
537
+ let originParent = null;
538
+ const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
539
+ const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
540
+ const staticSide = {
541
+ top: "bottom",
542
+ right: "left",
543
+ bottom: "top",
544
+ left: "right"
545
+ }[placement.split("-")[0]];
546
+ Object.assign(arrowEl.style, {
547
+ left: x ? `${x}px` : "",
548
+ top: y ? `${y}px` : "",
549
+ right: "",
550
+ bottom: "",
551
+ [staticSide]: "-4px"
552
+ });
553
+ };
554
+ const updatePosition = async () => {
555
+ const hostEl = props.origin;
556
+ const overlayEl = unref(overlayRef.value);
557
+ const arrowEl = unref(arrowRef.value);
558
+ const middleware = [
559
+ offset(props.offset),
560
+ autoPlacement({
561
+ alignment: props.align,
562
+ allowedPlacements: props.position
563
+ })
564
+ ];
565
+ props.showArrow && middleware.push(arrow({ element: arrowEl }));
566
+ props.shiftOffset !== void 0 && middleware.push(shift());
567
+ const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
568
+ strategy: "fixed",
569
+ middleware
570
+ });
571
+ let applyX = x;
572
+ let applyY = y;
573
+ if (props.shiftOffset !== void 0) {
574
+ const { x: shiftX, y: shiftY } = middlewareData.shift;
575
+ shiftX < 0 && (applyX -= props.shiftOffset);
576
+ shiftX > 0 && (applyX += props.shiftOffset);
577
+ shiftY < 0 && (applyY -= props.shiftOffset);
578
+ shiftY > 0 && (applyY += props.shiftOffset);
579
+ }
580
+ emit("positionChange", placement);
581
+ Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
582
+ props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
583
+ };
584
+ watch(() => props.modelValue, () => {
585
+ if (props.modelValue && props.origin) {
586
+ originParent = getScrollParent(props.origin);
587
+ nextTick(updatePosition);
588
+ originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
589
+ originParent !== window && window.addEventListener("scroll", updatePosition);
590
+ window.addEventListener("resize", updatePosition);
591
+ } else {
592
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
593
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
594
+ window.removeEventListener("resize", updatePosition);
595
+ }
596
+ });
597
+ onUnmounted(() => {
598
+ originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
599
+ originParent !== window && window.removeEventListener("scroll", updatePosition);
600
+ window.removeEventListener("resize", updatePosition);
601
+ });
602
+ return { arrowRef, overlayRef, updatePosition };
603
+ }
604
+ var flexibleOverlay = "";
605
+ const FlexibleOverlay = defineComponent({
606
+ name: "DFlexibleOverlay",
607
+ inheritAttrs: false,
608
+ props: flexibleOverlayProps,
609
+ emits: ["update:modelValue", "positionChange"],
610
+ setup(props, {
611
+ slots,
612
+ attrs,
613
+ emit,
614
+ expose
615
+ }) {
616
+ const ns = useNamespace("flexible-overlay");
617
+ const {
618
+ arrowRef,
619
+ overlayRef,
620
+ updatePosition
621
+ } = useOverlay(props, emit);
622
+ expose({
623
+ updatePosition
624
+ });
625
+ return () => {
626
+ var _a;
627
+ return props.modelValue && createVNode("div", mergeProps({
628
+ "ref": overlayRef,
629
+ "class": ns.b()
630
+ }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
631
+ "ref": arrowRef,
632
+ "class": ns.e("arrow")
633
+ }, null)]);
634
+ };
635
+ }
636
+ });
223
637
  var EditableSelect = defineComponent({
224
638
  name: "DEditableSelect",
225
639
  directives: {
226
- clickOutside: clickoutsideDirective
640
+ clickOutside: clickoutsideDirective,
641
+ dLoading: loadingDirective
227
642
  },
228
643
  props: editableSelectProps,
229
644
  emits: ["update:modelValue", "search", "loadMore"],
@@ -233,7 +648,7 @@ var EditableSelect = defineComponent({
233
648
  const position = ref(["bottom"]);
234
649
  const visible = ref(false);
235
650
  const inputValue = ref(props.modelValue);
236
- const loading = ref(props.loading);
651
+ const loading2 = ref(props.loading);
237
652
  const normalizeOptions = computed(() => {
238
653
  return props.options.map((option) => {
239
654
  if (typeof option === "object") {
@@ -259,7 +674,7 @@ var EditableSelect = defineComponent({
259
674
  return text;
260
675
  });
261
676
  watch(() => props.loading, (newVal) => {
262
- loading.value = newVal;
677
+ loading2.value = newVal;
263
678
  });
264
679
  const toggleMenu = () => {
265
680
  visible.value = !visible.value;
@@ -287,7 +702,7 @@ var EditableSelect = defineComponent({
287
702
  handleKeydown,
288
703
  hoverIndex,
289
704
  selectedIndex
290
- } = useKeyboardSelect(dropdownRef, visible, inputValue, filteredOptions, props.optionDisabledKey, props.filterOption, loading, handleClick, closeMenu, toggleMenu);
705
+ } = useKeyboardSelect(dropdownRef, visible, inputValue, filteredOptions, props.optionDisabledKey, props.filterOption, loading2, handleClick, closeMenu, toggleMenu);
291
706
  watch(() => props.modelValue, (newVal) => {
292
707
  if (newVal) {
293
708
  inputValue.value = newVal;
@@ -331,7 +746,7 @@ var EditableSelect = defineComponent({
331
746
  "class": "devui-select-chevron-icon"
332
747
  }, [createVNode(resolveComponent("d-icon"), {
333
748
  "name": "select-arrow"
334
- }, null)])]), createVNode(resolveComponent("d-flexible-overlay"), {
749
+ }, null)])]), createVNode(FlexibleOverlay, {
335
750
  "origin": origin.value,
336
751
  "modelValue": visible.value,
337
752
  "onUpdate:modelValue": ($event) => visible.value = $event,
@@ -1 +1 @@
1
- (function(f,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(f=typeof globalThis!="undefined"?globalThis:f||self,t(f.index={},f.Vue))})(this,function(f,t){"use strict";const F={options:{type:Array,default:()=>[]},disabled:{type:Boolean},loading:{type:Boolean},optionDisabledKey:{type:String,default:""},placeholder:{type:String,default:"Search"},modelValue:{type:String,default:""},width:{type:Number},maxHeight:{type:Number},filterOption:{type:[Function,Boolean]}},B=typeof window!="undefined";function x(e,l,o){document.addEventListener?e&&l&&o&&e.addEventListener(l,o,!1):e&&l&&o&&e.attachEvent("on"+l,o)}const v=Symbol("@@clickoutside"),S=new Map;let K,E=0,M=!0;function H(e,l,o){return B&&M&&(M=!1,x(document,"mousedown",a=>{K=a}),x(document,"mouseup",a=>{for(const[s,i]of S)i[v].documentHandler(a,K)})),function(a,s){!o||!l.instance||!a.target||!s.target||e.contains(a.target)||e.contains(s.target)||e===a.target||e[v].bindingFn&&e[v].bindingFn()}}const T={beforeMount:function(e,l,o){E++,S.set(E,e),e[v]={nid:E,documentHandler:H(e,l,o),bindingFn:l.value}},updated:function(e,l,o){e[v].documentHandler=H(e,l,o),e[v].bindingFn=l.value},unmounted:function(e){S.delete(e[v].nid),delete e[v]}};function C(e,l){let o=e;return typeof l=="object"&&Object.keys(l).forEach(a=>{l[a]&&(o+=` ${a}`)}),o}var z="";const j=()=>(e,l)=>l.label.toLocaleLowerCase().indexOf(e.toLocaleLowerCase())>-1,O=(e,l,o)=>t.computed(()=>{const a=[];if(!l.value||o===!1)return e.value;const s=typeof o=="function"?o:j();return e.value.forEach(i=>{s(l.value,i)&&a.push(i)}),a}),A=(e,l)=>{const o=s=>{l.emit("search",s)};return{handleInput:s=>{const i=s.target.value;e.value=i,l.emit("update:modelValue",i),o(i)}}},R=(e,l,o,a)=>({loadMore:()=>{const i=e.value;o===!1&&i.clientHeight+i.scrollTop>=i.scrollHeight&&a.emit("loadMore",l.value)}}),P=(e,l,o,a,s,i,m,g,w,h)=>{const b=t.ref(0),p=t.ref(0),y=d=>{b.value=d},N=d=>{const c=e.value,n=c.children[d];t.nextTick(()=>{if(n.scrollIntoViewIfNeeded)n.scrollIntoViewIfNeeded(!1);else{const u=c.getBoundingClientRect(),r=n.getBoundingClientRect();(r.bottom>u.bottom||r.top<u.top)&&n.scrollIntoView(!1)}})},D=()=>{o.value?o.value="":w()},I=()=>{const d=a.value.length;return!l.value||!d?h():(g(d&&d===1?a.value[0]:a.value[b.value]),w())},V=d=>{const c=a.value.length;if(!c||c===1||!["ArrowDown","ArrowUp"].includes(d)||i===!1&&m.value)return;let n=0;if(n=b.value,d==="ArrowUp"?(n-=1,n===-1&&(n=c-1)):d==="ArrowDown"&&(n+=1,n===c&&(n=0)),b.value=n,a.value[n][s])return V(d);y(n),N(n)};return{handleKeydown:d=>{const c=d.key||d.code;switch(c){case"Escape":D();break;case"Enter":I();break;default:V(c)}},hoverIndex:b,selectedIndex:p}};var k=t.defineComponent({name:"DEditableSelect",directives:{clickOutside:T},props:F,emits:["update:modelValue","search","loadMore"],setup(e,l){const o=t.ref(),a=t.ref(),s=t.ref(["bottom"]),i=t.ref(!1),m=t.ref(e.modelValue),g=t.ref(e.loading),w=t.computed(()=>e.options.map(n=>typeof n=="object"?Object.assign({},n,{label:n.label?n.label:n.value,value:n.value}):{label:n+"",value:n})),h=O(w,m,e.filterOption),b=t.computed(()=>{let n="";return e.filterOption!==!1&&!h.value.length?n="\u627E\u4E0D\u5230\u76F8\u5173\u8BB0\u5F55":e.filterOption===!1&&!h.value.length&&(n="\u6CA1\u6709\u6570\u636E"),n});t.watch(()=>e.loading,n=>{g.value=n});const p=()=>{i.value=!i.value},y=()=>{i.value=!1},{loadMore:N}=R(o,m,e.filterOption,l),{handleInput:D}=A(m,l),I=n=>{const{optionDisabledKey:u}=e;u&&!!n[u]||(l.emit("update:modelValue",n.label),y())},{handleKeydown:V,hoverIndex:L,selectedIndex:d}=P(o,i,m,h,e.optionDisabledKey,e.filterOption,g,I,y,p);t.watch(()=>e.modelValue,n=>{n&&(m.value=n)});const c=(n,u)=>{const{optionDisabledKey:r}=e;return C("devui-dropdown-item",{disabled:r?!!n[r]:!1,selected:u===d.value,"devui-dropdown-bg":u===L.value})};return()=>{const n=C("devui-editable-select devui-form-group devui-has-feedback",{"devui-select-open":i.value===!0}),u=C("devui-form-control devui-dropdown-origin",{"devui-dropdown-origin-open":i.value===!0});return t.withDirectives(t.createVNode("div",{class:n,ref:a,style:{width:e.width+"px"}},[t.createVNode("input",{class:u,onClick:t.withModifiers(p,["self"]),onInput:D,onKeydown:V,value:m.value,disabled:e.disabled,placeholder:e.placeholder,type:"text"},null),t.createVNode("span",{class:"devui-form-control-feedback"},[t.createVNode("span",{class:"devui-select-chevron-icon"},[t.createVNode(t.resolveComponent("d-icon"),{name:"select-arrow"},null)])]),t.createVNode(t.resolveComponent("d-flexible-overlay"),{origin:a.value,modelValue:i.value,"onUpdate:modelValue":r=>i.value=r,position:s.value,hasBackdrop:!1},{default:()=>[t.createVNode("div",{style:{width:e.width+"px"}},[t.withDirectives(t.createVNode("div",{class:"devui-dropdown-menu "},[t.createVNode("ul",{ref:o,class:"devui-list-unstyled scroll-height",style:{maxHeight:e.maxHeight+"px"},onScroll:N},[h.value.map((r,_)=>t.createVNode("li",{class:c(r,_),onClick:q=>{q.stopPropagation(),I(r)}},[l.slots.item?l.slots.item(r):r.label])),t.withDirectives(t.createVNode("li",{class:"devui-no-result-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[l.slots.noResultItem?l.slots.noResultItem():b.value])]),[[t.vShow,!h.value.length]])])]),[[t.resolveDirective("dLoading"),e.loading],[t.vShow,i.value]])])]})]),[[t.resolveDirective("click-outside"),y]])}}}),U={title:"EditableSelect \u53EF\u8F93\u5165\u4E0B\u62C9\u9009\u62E9\u6846",category:"\u6570\u636E\u5F55\u5165",status:"100%",install(e){e.component(k.name,k)}};f.EditableSelect=k,f.default=U,f.editableSelectProps=F,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
1
+ var be=Object.defineProperty;var G=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var T=(d,t,f)=>t in d?be(d,t,{enumerable:!0,configurable:!0,writable:!0,value:f}):d[t]=f,L=(d,t)=>{for(var f in t||(t={}))Ve.call(t,f)&&T(d,f,t[f]);if(G)for(var f of G(t))xe.call(t,f)&&T(d,f,t[f]);return d};var b=(d,t,f)=>(T(d,typeof t!="symbol"?t+"":t,f),f);(function(d,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],t):(d=typeof globalThis!="undefined"?globalThis:d||self,t(d.index={},d.Vue,d.dom))})(this,function(d,t,f){"use strict";const j={options:{type:Array,default:()=>[]},disabled:{type:Boolean},loading:{type:Boolean},optionDisabledKey:{type:String,default:""},placeholder:{type:String,default:"Search"},modelValue:{type:String,default:""},width:{type:Number},maxHeight:{type:Number},filterOption:{type:[Function,Boolean]}},J=typeof window!="undefined";function M(e,o,n){document.addEventListener?e&&o&&n&&e.addEventListener(o,n,!1):e&&o&&n&&e.attachEvent("on"+o,n)}const x=Symbol("@@clickoutside"),I=new Map;let R,D=0,K=!0;function z(e,o,n){return J&&K&&(K=!1,M(document,"mousedown",l=>{R=l}),M(document,"mouseup",l=>{for(const[a,i]of I)i[x].documentHandler(l,R)})),function(l,a){!n||!o.instance||!l.target||!a.target||e.contains(l.target)||e.contains(a.target)||e===l.target||e[x].bindingFn&&e[x].bindingFn()}}const Q={beforeMount:function(e,o,n){D++,I.set(D,e),e[x]={nid:D,documentHandler:z(e,o,n),bindingFn:o.value}},updated:function(e,o,n){e[x].documentHandler=z(e,o,n),e[x].bindingFn=o.value},unmounted:function(e){I.delete(e[x].nid),delete e[x]}};class H{constructor(){b(this,"top","50%");b(this,"left","50%")}}const Z={message:String,backdrop:Boolean,view:{type:Object,default:()=>new H},zIndex:Number,isFull:{type:Boolean,default:!1}};class ee{constructor(){b(this,"target");b(this,"message");b(this,"loadingTemplateRef");b(this,"backdrop",!0);b(this,"positionType","relative");b(this,"view",new H);b(this,"zIndex")}}function k(e,o,n){let l=e;return o&&(l+=`__${o}`),n&&(l+=`--${n}`),l}function $(e,o=!1){const n=o?`.devui-${e}`:`devui-${e}`;return{b:()=>k(n),e:c=>c?k(n,c):"",m:c=>c?k(n,"",c):"",em:(c,m)=>c&&m?k(n,c,m):""}}var Ee="",te=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:Z,setup(e){const o={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(o.background="none");const n=t.ref(!1);return{style:o,isShow:n,open:()=>{n.value=!0},close:()=>{n.value=!1}}},render(){var c;const{isShow:e,isFull:o,backdrop:n,style:l,message:a,$slots:i}=this,s=$("loading");return e&&t.createVNode("div",{class:[s.b(),o?s.m("full"):""]},[((c=i.default)==null?void 0:c.call(i))||t.createVNode("div",{class:s.e("wrapper")},[n?t.createVNode("div",{class:s.e("mask")},null):null,t.createVNode("div",{style:l,class:s.e("area")},[t.createVNode("div",{class:s.e("busy-default-spinner")},[t.createVNode("div",{class:s.e("bar1")},null),t.createVNode("div",{class:s.e("bar2")},null),t.createVNode("div",{class:s.e("bar3")},null),t.createVNode("div",{class:s.e("bar4")},null)]),a?t.createVNode("span",{class:s.e("text")},[a]):null])])])}});const _=Symbol("dev_component_container");function ne(e,o,n=null){const l=t.h(e,L({},o),n),a=document.createElement("div");return l[_]=a,t.render(l,a),l.component}function oe(e){t.render(null,e==null?void 0:e.vnode[_])}const le=t.defineComponent(te),C=new WeakSet,B=e=>{if(!e)return!0;if(Array.isArray(e))return e.length===0;if(e instanceof Set||e instanceof Map)return e.size===0;if(e instanceof Promise)return!1;if(typeof e=="object")try{return Object.keys(e).length===0}catch{return!1}return!1},U=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),ae=e=>{switch(U(e)){case"promise":return[e];case"array":return e.some(n=>U(n)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},Y=e=>{C.delete(e),e.instance.proxy.close(),oe(e.instance)},q=(e,o)=>{var n,l,a;if(o.value){const i=ae(o.value);if(i==="error")return;(a=(l=(n=e==null?void 0:e.instance)==null?void 0:n.proxy)==null?void 0:l.open)==null||a.call(l),e.appendChild(e.mask),C.add(e),i&&Promise.all(i).catch(s=>{console.error(new Error("Promise handling errors"),s)}).finally(()=>{Y(e)})}else Y(e)},X=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},W=(e,o)=>{var i;const n=L(L({},new ee),o),l=n.loadingTemplateRef,a=ne(le,L({},n),l?()=>l:null);e.style.position=n.positionType,e.options=n,e.instance=a,e.mask=(i=a==null?void 0:a.proxy)==null?void 0:i.$el},ie={mounted:function(e,o,n){W(e,n.props),X(e),!B(o.value)&&q(e,o)},updated:function(e,o,n){!B(o.value)&&C.has(e)||B(o.value)&&!C.has(e)||(!C.has(e)&&W(e,n.props),X(e),q(e,o))}};function F(e,o){let n=e;return typeof o=="object"&&Object.keys(o).forEach(l=>{o[l]&&(n+=` ${l}`)}),n}var Ne="";const re=()=>(e,o)=>o.label.toLocaleLowerCase().indexOf(e.toLocaleLowerCase())>-1,se=(e,o,n)=>t.computed(()=>{const l=[];if(!o.value||n===!1)return e.value;const a=typeof n=="function"?n:re();return e.value.forEach(i=>{a(o.value,i)&&l.push(i)}),l}),ce=(e,o)=>{const n=a=>{o.emit("search",a)};return{handleInput:a=>{const i=a.target.value;e.value=i,o.emit("update:modelValue",i),n(i)}}},de=(e,o,n,l)=>({loadMore:()=>{const i=e.value;n===!1&&i.clientHeight+i.scrollTop>=i.scrollHeight&&l.emit("loadMore",o.value)}}),ue=(e,o,n,l,a,i,s,c,m,w)=>{const h=t.ref(0),V=t.ref(0),g=u=>{h.value=u},E=u=>{const y=e.value,r=y.children[u];t.nextTick(()=>{if(r.scrollIntoViewIfNeeded)r.scrollIntoViewIfNeeded(!1);else{const v=y.getBoundingClientRect(),p=r.getBoundingClientRect();(p.bottom>v.bottom||p.top<v.top)&&r.scrollIntoView(!1)}})},S=()=>{n.value?n.value="":m()},N=()=>{const u=l.value.length;return!o.value||!u?w():(c(u&&u===1?l.value[0]:l.value[h.value]),m())},O=u=>{const y=l.value.length;if(!y||y===1||!["ArrowDown","ArrowUp"].includes(u)||i===!1&&s.value)return;let r=0;if(r=h.value,u==="ArrowUp"?(r-=1,r===-1&&(r=y-1)):u==="ArrowDown"&&(r+=1,r===y&&(r=0)),h.value=r,l.value[r][a])return O(u);g(r),E(r)};return{handleKeydown:u=>{const y=u.key||u.code;switch(y){case"Escape":S();break;case"Enter":N();break;default:O(y)}},hoverIndex:h,selectedIndex:V}},fe={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}};function me(e){const o=/(auto|scroll|hidden)/;for(let n=e;n=n.parentElement;n.parentElement!==document.body){const l=window.getComputedStyle(n);if(o.test(l.overflow+l.overflowX+l.overflowY))return n}return window}function we(e,o,n,l){let{x:a,y:i}=o;if(!e){const{width:s,height:c}=l;a&&n.includes("start")&&(a=12),a&&n.includes("end")&&(a=Math.round(s-24)),i&&n.includes("start")&&(i=10),i&&n.includes("end")&&(i=c-14)}return{x:a,y:i}}function he(e,o){const n=t.ref(),l=t.ref();let a=null;const i=(c,m,w,h)=>{const{x:V,y:g}=we(e.isArrowCenter,w,m,h.getBoundingClientRect()),E={top:"bottom",right:"left",bottom:"top",left:"right"}[m.split("-")[0]];Object.assign(c.style,{left:V?`${V}px`:"",top:g?`${g}px`:"",right:"",bottom:"",[E]:"-4px"})},s=async()=>{const c=e.origin,m=t.unref(n.value),w=t.unref(l.value),h=[f.offset(e.offset),f.autoPlacement({alignment:e.align,allowedPlacements:e.position})];e.showArrow&&h.push(f.arrow({element:w})),e.shiftOffset!==void 0&&h.push(f.shift());const{x:V,y:g,placement:E,middlewareData:S}=await f.computePosition(c,m,{strategy:"fixed",middleware:h});let N=V,O=g;if(e.shiftOffset!==void 0){const{x:A,y:u}=S.shift;A<0&&(N-=e.shiftOffset),A>0&&(N+=e.shiftOffset),u<0&&(O-=e.shiftOffset),u>0&&(O+=e.shiftOffset)}o("positionChange",E),Object.assign(m.style,{top:`${O}px`,left:`${N}px`}),e.showArrow&&i(w,E,S.arrow,m)};return t.watch(()=>e.modelValue,()=>{e.modelValue&&e.origin?(a=me(e.origin),t.nextTick(s),a==null||a.addEventListener("scroll",s),a!==window&&window.addEventListener("scroll",s),window.addEventListener("resize",s)):(a==null||a.removeEventListener("scroll",s),a!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s))}),t.onUnmounted(()=>{a==null||a.removeEventListener("scroll",s),a!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}),{arrowRef:l,overlayRef:n,updatePosition:s}}var Oe="";const ye=t.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:fe,emits:["update:modelValue","positionChange"],setup(e,{slots:o,attrs:n,emit:l,expose:a}){const i=$("flexible-overlay"),{arrowRef:s,overlayRef:c,updatePosition:m}=he(e,l);return a({updatePosition:m}),()=>{var w;return e.modelValue&&t.createVNode("div",t.mergeProps({ref:c,class:i.b()},n),[(w=o.default)==null?void 0:w.call(o),e.showArrow&&t.createVNode("div",{ref:s,class:i.e("arrow")},null)])}}});var P=t.defineComponent({name:"DEditableSelect",directives:{clickOutside:Q,dLoading:ie},props:j,emits:["update:modelValue","search","loadMore"],setup(e,o){const n=t.ref(),l=t.ref(),a=t.ref(["bottom"]),i=t.ref(!1),s=t.ref(e.modelValue),c=t.ref(e.loading),m=t.computed(()=>e.options.map(r=>typeof r=="object"?Object.assign({},r,{label:r.label?r.label:r.value,value:r.value}):{label:r+"",value:r})),w=se(m,s,e.filterOption),h=t.computed(()=>{let r="";return e.filterOption!==!1&&!w.value.length?r="\u627E\u4E0D\u5230\u76F8\u5173\u8BB0\u5F55":e.filterOption===!1&&!w.value.length&&(r="\u6CA1\u6709\u6570\u636E"),r});t.watch(()=>e.loading,r=>{c.value=r});const V=()=>{i.value=!i.value},g=()=>{i.value=!1},{loadMore:E}=de(n,s,e.filterOption,o),{handleInput:S}=ce(s,o),N=r=>{const{optionDisabledKey:v}=e;v&&!!r[v]||(o.emit("update:modelValue",r.label),g())},{handleKeydown:O,hoverIndex:A,selectedIndex:u}=ue(n,i,s,w,e.optionDisabledKey,e.filterOption,c,N,g,V);t.watch(()=>e.modelValue,r=>{r&&(s.value=r)});const y=(r,v)=>{const{optionDisabledKey:p}=e;return F("devui-dropdown-item",{disabled:p?!!r[p]:!1,selected:v===u.value,"devui-dropdown-bg":v===A.value})};return()=>{const r=F("devui-editable-select devui-form-group devui-has-feedback",{"devui-select-open":i.value===!0}),v=F("devui-form-control devui-dropdown-origin",{"devui-dropdown-origin-open":i.value===!0});return t.withDirectives(t.createVNode("div",{class:r,ref:l,style:{width:e.width+"px"}},[t.createVNode("input",{class:v,onClick:t.withModifiers(V,["self"]),onInput:S,onKeydown:O,value:s.value,disabled:e.disabled,placeholder:e.placeholder,type:"text"},null),t.createVNode("span",{class:"devui-form-control-feedback"},[t.createVNode("span",{class:"devui-select-chevron-icon"},[t.createVNode(t.resolveComponent("d-icon"),{name:"select-arrow"},null)])]),t.createVNode(ye,{origin:l.value,modelValue:i.value,"onUpdate:modelValue":p=>i.value=p,position:a.value,hasBackdrop:!1},{default:()=>[t.createVNode("div",{style:{width:e.width+"px"}},[t.withDirectives(t.createVNode("div",{class:"devui-dropdown-menu "},[t.createVNode("ul",{ref:n,class:"devui-list-unstyled scroll-height",style:{maxHeight:e.maxHeight+"px"},onScroll:E},[w.value.map((p,ve)=>t.createVNode("li",{class:y(p,ve),onClick:ge=>{ge.stopPropagation(),N(p)}},[o.slots.item?o.slots.item(p):p.label])),t.withDirectives(t.createVNode("li",{class:"devui-no-result-template"},[t.createVNode("div",{class:"devui-no-data-tip"},[o.slots.noResultItem?o.slots.noResultItem():h.value])]),[[t.vShow,!w.value.length]])])]),[[t.resolveDirective("dLoading"),e.loading],[t.vShow,i.value]])])]})]),[[t.resolveDirective("click-outside"),g]])}}}),pe={title:"EditableSelect \u53EF\u8F93\u5165\u4E0B\u62C9\u9009\u62E9\u6846",category:"\u6570\u636E\u5F55\u5165",status:"100%",install(e){e.component(P.name,P)}};d.EditableSelect=P,d.default=pe,d.editableSelectProps=j,Object.defineProperty(d,"__esModule",{value:!0}),d[Symbol.toStringTag]="Module"});
@@ -1 +1 @@
1
- @charset "UTF-8";.devui-editable-select .devui-select-chevron-icon{display:inline-flex;vertical-align:middle;transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-editable-select input::-ms-clear{display:none}.devui-editable-select .devui-no-data-tip{user-select:none;cursor:not-allowed}.devui-editable-select .devui-form-control{padding-right:24px}.devui-editable-select .devui-dropdown-menu{width:100%;margin:0;display:block;top:auto!important;left:auto!important}.devui-editable-select .devui-dropdown-menu-cdk{position:static}.devui-editable-select .devui-dropdown-item{cursor:pointer;display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:14px}.devui-editable-select .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected{color:var(--devui-list-item-active-text, #ffffff);background-color:var(--devui-list-item-active-bg, #5e7ce0)}.devui-editable-select .devui-no-result-template,.devui-editable-select .devui-is-searching-template{display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:not-allowed;background-color:var(--devui-disabled-bg, #f5f5f6);color:var(--devui-disabled-text, #adb0b8);line-height:14px}.devui-editable-select .devui-no-result-template:hover,.devui-editable-select .devui-no-result-template:active,.devui-editable-select .devui-no-result-template:hover:active,.devui-editable-select .devui-is-searching-template:hover,.devui-editable-select .devui-is-searching-template:active,.devui-editable-select .devui-is-searching-template:hover:active{background-color:var(--devui-unavailable, #f5f5f6)}.devui-editable-select .devui-dropdown-item.disabled,.devui-editable-select .devui-dropdown-item.disabled:hover{cursor:not-allowed;color:var(--devui-disabled-text, #adb0b8)}.devui-editable-select ul.devui-list-unstyled{margin:0;overflow-y:auto;padding:0}.devui-editable-select .devui-dropdown-bg{background:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-editable-select .devui-popup-tips{color:var(--devui-text-weak, #575d6c);padding:4px 12px}.devui-editable-select.devui-select-open .devui-select-chevron-icon{transform:rotate(180deg)}.devui-editable-select.devui-select-open .devui-select-chevron-icon svg path{fill:var(--devui-text-weak, #575d6c)}.devui-editable-select.devui-form-group.devui-has-feedback>.devui-form-control-feedback{line-height:26px}
1
+ @keyframes devui-busy-spinner-anim{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.5)}to{transform:rotate(360deg) scale(1)}}.devui-loading__mask{position:absolute;left:0;right:0;bottom:0;top:0;background-color:var(--devui-line, #adb0b8);opacity:.3}.devui-loading__wrapper{text-align:center}.devui-loading--full{position:fixed;left:0;right:0;bottom:0;top:0;z-index:9999}.devui-loading--hidden{overflow:hidden}.devui-loading__text{margin-left:10px}.devui-loading__area{position:absolute;transform:translate(-50%,-50%);padding:12px 14px;background:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px)}.devui-loading__busy-default-spinner{position:relative;display:inline-block;width:15px;height:15px;animation:devui-busy-spinner-anim 1s linear infinite}.devui-loading__busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:6px;height:6px;border-radius:50%}.devui-loading__busy-default-spinner .devui-loading__bar1{top:0;left:0;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-loading__busy-default-spinner .devui-loading__bar2{top:0;left:9px;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-loading__busy-default-spinner .devui-loading__bar3{top:9px;left:0;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-loading__busy-default-spinner .devui-loading__bar4{top:9px;left:9px;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}@charset "UTF-8";.devui-editable-select .devui-select-chevron-icon{display:inline-flex;vertical-align:middle;transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-editable-select input::-ms-clear{display:none}.devui-editable-select .devui-no-data-tip{user-select:none;cursor:not-allowed}.devui-editable-select .devui-form-control{padding-right:24px}.devui-editable-select .devui-dropdown-menu{width:100%;margin:0;display:block;top:auto!important;left:auto!important}.devui-editable-select .devui-dropdown-menu-cdk{position:static}.devui-editable-select .devui-dropdown-item{cursor:pointer;display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:14px}.devui-editable-select .devui-dropdown-menu .devui-dropdown-item:not(.disabled).selected{color:var(--devui-list-item-active-text, #ffffff);background-color:var(--devui-list-item-active-bg, #5e7ce0)}.devui-editable-select .devui-no-result-template,.devui-editable-select .devui-is-searching-template{display:block;width:100%;padding:8px 12px;clear:both;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:not-allowed;background-color:var(--devui-disabled-bg, #f5f5f6);color:var(--devui-disabled-text, #adb0b8);line-height:14px}.devui-editable-select .devui-no-result-template:hover,.devui-editable-select .devui-no-result-template:active,.devui-editable-select .devui-no-result-template:hover:active,.devui-editable-select .devui-is-searching-template:hover,.devui-editable-select .devui-is-searching-template:active,.devui-editable-select .devui-is-searching-template:hover:active{background-color:var(--devui-unavailable, #f5f5f6)}.devui-editable-select .devui-dropdown-item.disabled,.devui-editable-select .devui-dropdown-item.disabled:hover{cursor:not-allowed;color:var(--devui-disabled-text, #adb0b8)}.devui-editable-select ul.devui-list-unstyled{margin:0;overflow-y:auto;padding:0}.devui-editable-select .devui-dropdown-bg{background:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-editable-select .devui-popup-tips{color:var(--devui-text-weak, #575d6c);padding:4px 12px}.devui-editable-select.devui-select-open .devui-select-chevron-icon{transform:rotate(180deg)}.devui-editable-select.devui-select-open .devui-select-chevron-icon svg path{fill:var(--devui-text-weak, #575d6c)}.devui-editable-select.devui-form-group.devui-has-feedback>.devui-form-control-feedback{line-height:26px}.devui-flexible-overlay{position:fixed;border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-connected-overlay-bg, #ffffff);box-shadow:var(--devui-shadow-connected-overlay, 0 2px 8px 0) var(--devui-shadow, rgba(37, 43, 58, .2));z-index:1000}.devui-flexible-overlay__arrow{position:absolute;width:8px;height:8px;transform:rotate(45deg);background-color:inherit}