vue-devui 1.0.0-rc.4 → 1.0.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -7
- package/auto-complete/index.es.js +26 -4
- package/auto-complete/index.umd.js +3 -3
- package/auto-complete/style.css +1 -1
- package/badge/index.es.js +2 -1
- package/badge/index.umd.js +1 -1
- package/button/index.es.js +4 -3
- package/button/index.umd.js +1 -1
- package/button/style.css +1 -1
- package/card/index.es.js +35 -29
- package/card/index.umd.js +1 -1
- package/card/style.css +1 -1
- package/checkbox/index.es.js +1 -1
- package/checkbox/index.umd.js +1 -1
- package/{comment → date-picker}/index.d.ts +0 -0
- package/date-picker/index.es.js +1145 -0
- package/date-picker/index.umd.js +1 -0
- package/date-picker/package.json +7 -0
- package/date-picker/style.css +1 -0
- package/{read-tip → drawer}/index.d.ts +0 -0
- package/drawer/index.es.js +236 -0
- package/drawer/index.umd.js +1 -0
- package/{comment → drawer}/package.json +1 -1
- package/drawer/style.css +1 -0
- package/{tag-input → dropdown}/index.d.ts +0 -0
- package/dropdown/index.es.js +718 -0
- package/dropdown/index.umd.js +1 -0
- package/{read-tip → dropdown}/package.json +1 -1
- package/dropdown/style.css +1 -0
- package/editable-select/index.es.js +14 -14
- package/editable-select/index.umd.js +1 -1
- package/editable-select/style.css +1 -1
- package/form/index.d.ts +7 -0
- package/form/index.es.js +7511 -0
- package/form/index.umd.js +27 -0
- package/{tag-input → form}/package.json +1 -1
- package/form/style.css +1 -0
- package/fullscreen/index.es.js +1 -1
- package/fullscreen/index.umd.js +1 -1
- package/image-preview/style.css +1 -1
- package/input/index.es.js +13 -19
- package/input/index.umd.js +1 -1
- package/input/style.css +1 -1
- package/input-number/index.d.ts +7 -0
- package/input-number/index.es.js +251 -0
- package/input-number/index.umd.js +1 -0
- package/input-number/package.json +7 -0
- package/input-number/style.css +1 -0
- package/loading/style.css +1 -1
- package/modal/index.es.js +15 -3
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/notification/style.css +1 -1
- package/nuxt/components/CheckboxGroup.js +3 -0
- package/nuxt/components/Column.js +3 -0
- package/nuxt/components/DatePicker.js +3 -0
- package/nuxt/components/Drawer.js +3 -0
- package/nuxt/components/DrawerService.js +3 -0
- package/nuxt/components/Dropdown.js +3 -0
- package/nuxt/components/DropdownMenu.js +3 -0
- package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
- package/nuxt/components/FORM_TOKEN.js +3 -0
- package/nuxt/components/Form.js +3 -0
- package/nuxt/components/FormControl.js +3 -0
- package/nuxt/components/FormItem.js +3 -0
- package/nuxt/components/FormLabel.js +3 -0
- package/nuxt/components/FormOperation.js +3 -0
- package/nuxt/components/InputNumber.js +3 -0
- package/nuxt/components/Select.js +3 -0
- package/nuxt/components/StickSlider.js +3 -0
- package/nuxt/components/Tab.js +3 -0
- package/nuxt/components/Table.js +3 -0
- package/nuxt/components/Tabs.js +3 -0
- package/nuxt/components/Tooltip.js +3 -0
- package/nuxt/components/Tree.js +3 -0
- package/nuxt/components/dropdownMenuProps.js +3 -0
- package/nuxt/components/formControlProps.js +3 -0
- package/nuxt/components/formItemProps.js +3 -0
- package/nuxt/components/formProps.js +3 -0
- package/nuxt/components/tabsProps.js +3 -0
- package/nuxt/components/tooltipProps.js +3 -0
- package/nuxt/components/treeProps.js +3 -0
- package/overlay/index.es.js +15 -3
- package/overlay/index.umd.js +1 -1
- package/overlay/style.css +1 -1
- package/package.json +2 -2
- package/pagination/index.es.js +80 -96
- package/pagination/index.umd.js +1 -1
- package/pagination/style.css +1 -1
- package/popover/index.es.js +15 -3
- package/popover/index.umd.js +9 -9
- package/popover/style.css +1 -1
- package/progress/index.es.js +48 -14
- package/progress/index.umd.js +3 -3
- package/progress/style.css +1 -1
- package/rate/index.es.js +29 -36
- package/rate/index.umd.js +1 -1
- package/rate/style.css +1 -1
- package/search/index.es.js +15 -19
- package/search/index.umd.js +12 -12
- package/search/style.css +1 -1
- package/select/index.d.ts +7 -0
- package/select/index.es.js +696 -0
- package/select/index.umd.js +1 -0
- package/select/package.json +7 -0
- package/select/style.css +1 -0
- package/slider/index.es.js +18 -6
- package/slider/index.umd.js +1 -1
- package/splitter/index.es.js +15 -3
- package/splitter/index.umd.js +11 -11
- package/splitter/style.css +1 -1
- package/style.css +1 -1
- package/table/index.d.ts +7 -0
- package/table/index.es.js +2662 -0
- package/table/index.umd.js +1 -0
- package/table/package.json +7 -0
- package/table/style.css +1 -0
- package/tabs/index.d.ts +7 -0
- package/tabs/index.es.js +194 -0
- package/tabs/index.umd.js +1 -0
- package/tabs/package.json +7 -0
- package/tabs/style.css +1 -0
- package/textarea/style.css +1 -1
- package/tooltip/index.d.ts +7 -0
- package/tooltip/index.es.js +5847 -0
- package/tooltip/index.umd.js +27 -0
- package/tooltip/package.json +7 -0
- package/tooltip/style.css +1 -0
- package/tree/index.d.ts +7 -0
- package/tree/index.es.js +1021 -0
- package/tree/index.umd.js +1 -0
- package/tree/package.json +7 -0
- package/tree/style.css +1 -0
- package/upload/style.css +1 -1
- package/vue-devui.es.js +11482 -6434
- package/vue-devui.umd.js +24 -24
- package/comment/index.es.js +0 -84
- package/comment/index.umd.js +0 -1
- package/comment/style.css +0 -1
- package/nuxt/components/Comment.js +0 -3
- package/nuxt/components/ReadTip.js +0 -3
- package/nuxt/components/TagInput.js +0 -3
- package/nuxt/components/commentProps.js +0 -3
- package/nuxt/components/readTipProps.js +0 -3
- package/nuxt/components/tagInputProps.js +0 -3
- package/read-tip/index.es.js +0 -261
- package/read-tip/index.umd.js +0 -1
- package/read-tip/style.css +0 -1
- package/tag-input/index.es.js +0 -328
- package/tag-input/index.umd.js +0 -1
- package/tag-input/style.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var te=Object.defineProperty,oe=Object.defineProperties;var ne=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,ae=Object.prototype.propertyIsEnumerable;var R=(f,e,m)=>e in f?te(f,e,{enumerable:!0,configurable:!0,writable:!0,value:m}):f[e]=m,D=(f,e)=>{for(var m in e||(e={}))le.call(e,m)&&R(f,m,e[m]);if(L)for(var m of L(e))ae.call(e,m)&&R(f,m,e[m]);return f},M=(f,e)=>oe(f,ne(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,m,$){"use strict";const _={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 F(t){return t instanceof Element?t:t&&typeof t=="object"&&t.$el instanceof Element?t.$el:null}const O=new Map;function E(t,n,l){return t==null||t.addEventListener(n,l),()=>{t==null||t.removeEventListener(n,l)}}const H=({id:t,isOpen:n,origin:l,dropdownRef:i,props:a,emit:r})=>{let o=!1,u=!1;const{trigger:d,closeScope:s,closeOnMouseLeaveMenu:y}=e.toRefs(a),c=g=>{n.value=g,r("toggle",n.value)},w=async(g,k)=>{await new Promise(v=>setTimeout(v,50)),!(g==="origin"&&o||g==="dropdown"&&u)&&(k&&[...O.values()].reverse().forEach(v=>{setTimeout(()=>{var p;(p=v.toggle)==null||p.call(v)},0)}),c(!1))};e.watch([d,l,i],([g,k,v],p,V)=>{const h=F(k),P=[];setTimeout(()=>{P.push(E(document,"click",b=>{const B=[...O.values()];!n.value||s.value==="none"||(v==null?void 0:v.contains(b.target))&&s.value==="blank"||B.some(S=>{var C;return(C=S.toggleEl)==null?void 0:C.contains(b.target)})&&B.some(S=>{var C;return(C=S.menuEl)==null?void 0:C.contains(b.target)})||([...O.values()].reverse().forEach(S=>{setTimeout(()=>{var C,x;((C=S.toggleEl)==null?void 0:C.contains(b.target))||(x=S.toggle)==null||x.call(S)},0)}),o=!1)}))},0),g==="click"?P.push(E(h,"click",()=>c(!n.value)),E(v,"mouseleave",b=>{var B;y.value&&!((B=O.get(t).child)==null?void 0:B.contains(b.relatedTarget))&&w("dropdown",!0)})):g==="hover"&&P.push(E(h,"mouseenter",()=>{u=!0,c(!0)}),E(h,"mouseleave",()=>{u=!1,w("origin")}),E(v,"mouseenter",()=>{o=!0,n.value=!0}),E(v,"mouseleave",b=>{var B;o=!1,!(b.relatedTarget&&((h==null?void 0:h.contains(b.relatedTarget))||((B=O.get(t).child)==null?void 0:B.contains(b.relatedTarget))))&&w("dropdown",!0)})),V(()=>P.forEach(b=>b()))})};function q(t,n,l,i,a,r,o){const u=d=>{const s=d.offsetHeight;window.innerHeight-i.value.getBoundingClientRect().bottom>=s?r.value="bottom":r.value="top"};e.watch(n,(d,s)=>{s!==void 0&&(l.value=d,o("toggle",l.value))},{immediate:!0}),e.watch([l,a],([d,s])=>{var y;if(d){O.set(t,M(D({},O.get(t)),{menuEl:s,toggle:()=>{l.value=!1,o("toggle",l.value)}}));for(const c of O.values())((y=c.menuEl)==null?void 0:y.contains(i.value))&&(c.child=s)}s&&u(s)}),e.onMounted(()=>{O.set(t,{toggleEl:i.value})}),e.onUnmounted(()=>{O.delete(t)})}function U(t,n,l){const{showAnimation:i,overlayClass:a,destroyOnHide:r}=e.toRefs(t),o=e.ref(!1),u=e.ref(!1),d=e.computed(()=>({transformOrigin:n.value==="top"?"0% 100%":"0% 0%"})),s=e.computed(()=>({"fade-in-bottom":i.value&&l.value&&n.value==="bottom","fade-in-top":i.value&&l.value&&n.value==="top",[`${a.value}`]:!0})),y=c=>{n.value=c.includes("top")||c.includes("end")?"top":"bottom"};return e.watch(l,c=>{o.value=r.value?c:!0,u.value=c}),{overlayModelValue:o,overlayShowValue:u,styles:d,classes:s,handlePositionChange:y}}var re="";function Y(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const z=e.defineComponent({setup(t,n){return()=>{let l;return e.createVNode(e.Teleport,{to:"#d-overlay-anchor"},{default:()=>[e.createVNode(e.Transition,{name:"devui-overlay-fade"},Y(l=e.renderSlot(n.slots,"default"))?l:{default:()=>[l]})]})}}}),X=M(D({},{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}}),I=["update:visible","backdropClick"];function G(t,n){const l=e.computed(()=>["devui-overlay-background",t.backgroundClass,t.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),i=e.computed(()=>"devui-overlay"),a=o=>{var u;o.preventDefault(),(u=t.onBackdropClick)==null||u.call(t),t.backdropClose&&n.emit("update:visible",!1)},r=o=>o.cancelBubble=!0;return e.onMounted(()=>{const o=document.body,u=o.style.overflow,d=o.style.position;e.watch([()=>t.visible,()=>t.backgroundBlock],([s,y])=>{if(y){const c=o.getBoundingClientRect().y;s?(o.style.overflowY="scroll",o.style.position=s?"fixed":"",o.style.top=`${c}px`):(o.style.overflowY=u,o.style.position=d,o.style.top="",window.scrollTo(0,-c))}}),e.onUnmounted(()=>{document.body.style.overflow=u})}),{backgroundClass:l,overlayClass:i,handleBackdropClick:a,handleOverlayBubbleCancel:r}}var se="";e.defineComponent({name:"DFixedOverlay",props:X,emits:I,setup(t,n){const{backgroundClass:l,overlayClass:i,handleBackdropClick:a,handleOverlayBubbleCancel:r}=G(t,n);return()=>e.createVNode(z,null,{default:()=>[t.visible&&e.createVNode("div",{class:l.value,style:t.backgroundStyle,onClick:a},[e.createVNode("div",{class:i.value,style:t.overlayStyle,onClick:r},[e.renderSlot(n.slots,"default")])])]})}});const J={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 K(t){const n=/(auto|scroll|hidden)/;for(let l=t;l=l.parentElement;l.parentElement!==document.body){const i=window.getComputedStyle(l);if(n.test(i.overflow+i.overflowX+i.overflowY))return l}return window}function Q(t,n,l,i){let{x:a,y:r}=n;if(!t){const{width:o,height:u}=i;a&&l.includes("start")&&(a=12),a&&l.includes("end")&&(a=Math.round(o-24)),r&&l.includes("start")&&(r=10),r&&l.includes("end")&&(r=u-14)}return{x:a,y:r}}function W(t,n){const l=e.ref(),i=e.ref();let a=null;const r=(u,d,s,y)=>{const{x:c,y:w}=Q(t.isArrowCenter,s,d,y.getBoundingClientRect()),g={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]];Object.assign(u.style,{left:c?`${c}px`:"",top:w?`${w}px`:"",right:"",bottom:"",[g]:"-4px"})},o=async()=>{const u=t.origin,d=e.unref(l.value),s=e.unref(i.value),y=[m.offset(t.offset),m.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&y.push(m.arrow({element:s})),t.shiftOffset!==void 0&&y.push(m.shift());const{x:c,y:w,placement:g,middlewareData:k}=await m.computePosition(u,d,{strategy:"fixed",middleware:y});let v=c,p=w;if(t.shiftOffset!==void 0){const{x:V,y:h}=k.shift;V<0&&(v-=t.shiftOffset),V>0&&(v+=t.shiftOffset),h<0&&(p-=t.shiftOffset),h>0&&(p+=t.shiftOffset)}n("positionChange",g),Object.assign(d.style,{top:`${p}px`,left:`${v}px`}),t.showArrow&&r(s,g,k.arrow,d)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(a=K(t.origin),e.nextTick(o),a==null||a.addEventListener("scroll",o),a!==window&&window.addEventListener("scroll",o),window.addEventListener("resize",o)):(a==null||a.removeEventListener("scroll",o),a!==window&&window.removeEventListener("scroll",o),window.removeEventListener("resize",o))}),e.onUnmounted(()=>{a==null||a.removeEventListener("scroll",o),a!==window&&window.removeEventListener("scroll",o),window.removeEventListener("resize",o)}),{arrowRef:i,overlayRef:l,updatePosition:o}}var ue="";const T=e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:J,emits:["update:modelValue","positionChange"],setup(t,{slots:n,attrs:l,emit:i,expose:a}){const{arrowRef:r,overlayRef:o,updatePosition:u}=W(t,i);return a({updatePosition:u}),()=>{var d;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:o,class:"devui-flexible-overlay"},l),[(d=n.default)==null?void 0:d.call(n),t.showArrow&&e.createVNode("div",{ref:r,class:"devui-flexible-overlay-arrow"},null)])}}});var de="";let Z=1;var N=e.defineComponent({name:"DDropdown",inheritAttrs:!1,props:_,emits:["toggle"],setup(t,{slots:n,attrs:l,emit:i,expose:a}){const{visible:r,position:o,align:u,offset:d,destroyOnHide:s,shiftOffset:y,showAnimation:c}=e.toRefs(t),w=e.ref(),g=e.ref(),k=e.ref(),v=`dropdown_${Z++}`,p=e.ref(!1),V=e.ref("bottom");H({id:v,isOpen:p,origin:w,dropdownRef:g,props:t,emit:i}),q(v,r,p,w,g,V,i);const{overlayModelValue:h,overlayShowValue:P,styles:b,classes:B,handlePositionChange:S}=U(t,V,p);return e.watch(P,C=>{e.nextTick(()=>{!s.value&&C&&k.value.updatePosition()})}),a({updatePosition:()=>k.value.updatePosition()}),()=>{var C;return e.createVNode(e.Fragment,null,[e.createVNode("div",{ref:w,class:"devui-dropdown-toggle"},[(C=n.default)==null?void 0:C.call(n)]),e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:c.value?`devui-dropdown-fade-${V.value}`:""},{default:()=>[e.withDirectives(e.createVNode(T,{modelValue:h.value,"onUpdate:modelValue":x=>h.value=x,ref:k,origin:w.value,position:o.value,align:u.value,offset:d.value,shiftOffset:y==null?void 0:y.value,onPositionChange:S,class:B.value,style:b.value},{default:()=>{var x;return[e.createVNode("div",e.mergeProps({ref:g,class:"devui-dropdown-menu-wrap"},l),[(x=n.menu)==null?void 0:x.call(n)])]}}),[[e.vShow,P.value]])]})]})])}}});const j={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:j,emits:["update:modelValue"],setup(t,{slots:n,attrs:l,emit:i}){const{modelValue:a,origin:r,position:o,align:u,offset:d,clickOutside:s,showAnimation:y,overlayClass:c}=e.toRefs(t),w=e.ref(null);$.onClickOutside(w,p=>{var V,h;((V=s.value)==null?void 0:V.call(s))&&!((h=r==null?void 0:r.value)==null?void 0:h.contains(p.target))&&i("update:modelValue",!1)});const g=e.ref("bottom"),k=p=>{g.value=p.split("-")[0]==="top"?"top":"bottom"},v=e.computed(()=>({transformOrigin:g.value==="top"?"0% 100%":"0% 0%"}));return()=>e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(e.Transition,{name:y.value?`devui-dropdown-fade-${g.value}`:""},{default:()=>[e.createVNode(T,{modelValue:a.value,"onUpdate:modelValue":p=>a.value=p,origin:r==null?void 0:r.value,position:o.value,align:u.value,offset:d.value,onPositionChange:k,class:c.value,style:v.value},{default:()=>{var p;return[e.createVNode("div",e.mergeProps({ref:w,class:"devui-dropdown-menu-wrap"},l),[(p=n.default)==null?void 0:p.call(n)])]}})]})]})}}),ee={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"10%",install(t){t.component(N.name,N),t.component(A.name,A)}};f.Dropdown=N,f.DropdownMenu=A,f.default=ee,f.dropdownMenuProps=j,Object.defineProperty(f,"__esModule",{value:!0}),f[Symbol.toStringTag]="Module"});
|
|
@@ -0,0 +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)}
|
|
@@ -19,7 +19,8 @@ const editableSelectProps = {
|
|
|
19
19
|
default: "Search"
|
|
20
20
|
},
|
|
21
21
|
modelValue: {
|
|
22
|
-
type: String
|
|
22
|
+
type: String,
|
|
23
|
+
default: ""
|
|
23
24
|
},
|
|
24
25
|
width: {
|
|
25
26
|
type: Number
|
|
@@ -117,6 +118,7 @@ const useInput = (inputValue, ctx2) => {
|
|
|
117
118
|
const handleInput = (event) => {
|
|
118
119
|
const value = event.target.value;
|
|
119
120
|
inputValue.value = value;
|
|
121
|
+
ctx2.emit("update:modelValue", value);
|
|
120
122
|
onInputChange(value);
|
|
121
123
|
};
|
|
122
124
|
return {
|
|
@@ -165,14 +167,11 @@ const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, op
|
|
|
165
167
|
};
|
|
166
168
|
const handleEnter = () => {
|
|
167
169
|
const len = filteredOptions.value.length;
|
|
168
|
-
if (!visible.value) {
|
|
169
|
-
toggleMenu();
|
|
170
|
-
} else if (!len || len === 1) {
|
|
171
|
-
closeMenu();
|
|
172
|
-
} else if (len && len !== 1) {
|
|
173
|
-
handleClick(filteredOptions.value[hoverIndex.value]);
|
|
174
|
-
closeMenu();
|
|
170
|
+
if (!visible.value || !len) {
|
|
171
|
+
return toggleMenu();
|
|
175
172
|
}
|
|
173
|
+
len && len === 1 ? handleClick(filteredOptions.value[0]) : handleClick(filteredOptions.value[hoverIndex.value]);
|
|
174
|
+
return closeMenu();
|
|
176
175
|
};
|
|
177
176
|
const handleKeyboardNavigation = (direction) => {
|
|
178
177
|
const len = filteredOptions.value.length;
|
|
@@ -210,7 +209,6 @@ const useKeyboardSelect = (dropdownRef, visible, inputValue, filteredOptions, op
|
|
|
210
209
|
const keyCode = event.key || event.code;
|
|
211
210
|
switch (keyCode) {
|
|
212
211
|
case "Escape":
|
|
213
|
-
event.preventDefault();
|
|
214
212
|
handleEscape();
|
|
215
213
|
break;
|
|
216
214
|
case "Enter":
|
|
@@ -232,9 +230,9 @@ var EditableSelect = defineComponent({
|
|
|
232
230
|
setup(props, ctx2) {
|
|
233
231
|
const dropdownRef = ref();
|
|
234
232
|
const origin = ref();
|
|
235
|
-
const position = ref(["bottom"
|
|
233
|
+
const position = ref(["bottom"]);
|
|
236
234
|
const visible = ref(false);
|
|
237
|
-
const inputValue = ref(props.modelValue
|
|
235
|
+
const inputValue = ref(props.modelValue);
|
|
238
236
|
const loading = ref(props.loading);
|
|
239
237
|
const normalizeOptions = computed(() => {
|
|
240
238
|
return props.options.map((option) => {
|
|
@@ -309,6 +307,9 @@ var EditableSelect = defineComponent({
|
|
|
309
307
|
const selectCls = className("devui-editable-select devui-form-group devui-has-feedback", {
|
|
310
308
|
"devui-select-open": visible.value === true
|
|
311
309
|
});
|
|
310
|
+
const inputCls = className("devui-form-control devui-dropdown-origin", {
|
|
311
|
+
"devui-dropdown-origin-open": visible.value === true
|
|
312
|
+
});
|
|
312
313
|
return withDirectives(createVNode("div", {
|
|
313
314
|
"class": selectCls,
|
|
314
315
|
"ref": origin,
|
|
@@ -316,7 +317,7 @@ var EditableSelect = defineComponent({
|
|
|
316
317
|
width: props.width + "px"
|
|
317
318
|
}
|
|
318
319
|
}, [createVNode("input", {
|
|
319
|
-
"class":
|
|
320
|
+
"class": inputCls,
|
|
320
321
|
"onClick": withModifiers(toggleMenu, ["self"]),
|
|
321
322
|
"onInput": handleInput,
|
|
322
323
|
"onKeydown": handleKeydown,
|
|
@@ -338,12 +339,11 @@ var EditableSelect = defineComponent({
|
|
|
338
339
|
"hasBackdrop": false
|
|
339
340
|
}, {
|
|
340
341
|
default: () => [createVNode("div", {
|
|
341
|
-
"class": "devui-editable-select-dropdown",
|
|
342
342
|
"style": {
|
|
343
343
|
width: props.width + "px"
|
|
344
344
|
}
|
|
345
345
|
}, [withDirectives(createVNode("div", {
|
|
346
|
-
"class": "devui-dropdown-menu"
|
|
346
|
+
"class": "devui-dropdown-menu "
|
|
347
347
|
}, [createVNode("ul", {
|
|
348
348
|
"ref": dropdownRef,
|
|
349
349
|
"class": "devui-list-unstyled scroll-height",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
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 +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{
|
|
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}
|