vue-devui 1.0.2 → 1.2.0

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 (102) hide show
  1. package/README.md +229 -189
  2. package/auto-complete/style.css +1 -1
  3. package/button/style.css +1 -1
  4. package/checkbox/index.es.js +8 -7
  5. package/checkbox/index.umd.js +1 -1
  6. package/checkbox/style.css +1 -1
  7. package/date-picker-pro/index.es.js +5 -2
  8. package/date-picker-pro/index.umd.js +1 -1
  9. package/date-picker-pro/style.css +1 -1
  10. package/input/index.es.js +5 -2
  11. package/input/index.umd.js +4 -4
  12. package/input/style.css +1 -1
  13. package/menu/index.es.js +144 -131
  14. package/menu/index.umd.js +1 -1
  15. package/menu/style.css +1 -1
  16. package/modal/index.es.js +43 -10
  17. package/modal/index.umd.js +1 -1
  18. package/package.json +1 -1
  19. package/pagination/index.es.js +9 -8
  20. package/pagination/index.umd.js +1 -1
  21. package/pagination/style.css +1 -1
  22. package/radio/style.css +1 -1
  23. package/search/index.es.js +5 -2
  24. package/search/index.umd.js +4 -4
  25. package/search/style.css +1 -1
  26. package/select/index.es.js +9 -8
  27. package/select/index.umd.js +1 -1
  28. package/select/style.css +1 -1
  29. package/style.css +1 -1
  30. package/table/index.es.js +8 -7
  31. package/table/index.umd.js +1 -1
  32. package/table/style.css +1 -1
  33. package/tag/index.es.js +1 -1
  34. package/tag/index.umd.js +1 -1
  35. package/tag/style.css +1 -1
  36. package/time-picker/index.es.js +5 -2
  37. package/time-picker/index.umd.js +4 -4
  38. package/time-picker/style.css +1 -1
  39. package/time-select/index.es.js +9 -8
  40. package/time-select/index.umd.js +1 -1
  41. package/time-select/style.css +1 -1
  42. package/tree/index.es.js +8 -7
  43. package/tree/index.umd.js +1 -1
  44. package/tree/style.css +1 -1
  45. package/vue-devui.es.js +194 -144
  46. package/vue-devui.umd.js +11 -11
  47. package/alert/index.d.ts +0 -7
  48. package/auto-complete/index.d.ts +0 -7
  49. package/avatar/index.d.ts +0 -7
  50. package/badge/index.d.ts +0 -7
  51. package/button/index.d.ts +0 -7
  52. package/card/index.d.ts +0 -7
  53. package/checkbox/index.d.ts +0 -7
  54. package/collapse/index.d.ts +0 -7
  55. package/countdown/index.d.ts +0 -7
  56. package/date-picker-pro/index.d.ts +0 -7
  57. package/drawer/index.d.ts +0 -7
  58. package/dropdown/index.d.ts +0 -7
  59. package/editable-select/index.d.ts +0 -7
  60. package/form/index.d.ts +0 -7
  61. package/fullscreen/index.d.ts +0 -7
  62. package/grid/index.d.ts +0 -7
  63. package/icon/index.d.ts +0 -7
  64. package/image-preview/index.d.ts +0 -7
  65. package/index.d.ts +0 -7
  66. package/input/index.d.ts +0 -7
  67. package/input-number/index.d.ts +0 -7
  68. package/layout/index.d.ts +0 -7
  69. package/loading/index.d.ts +0 -7
  70. package/mention/index.d.ts +0 -7
  71. package/menu/index.d.ts +0 -7
  72. package/message/index.d.ts +0 -7
  73. package/modal/index.d.ts +0 -7
  74. package/notification/index.d.ts +0 -7
  75. package/overlay/index.d.ts +0 -7
  76. package/pagination/index.d.ts +0 -7
  77. package/panel/index.d.ts +0 -7
  78. package/popover/index.d.ts +0 -7
  79. package/progress/index.d.ts +0 -7
  80. package/radio/index.d.ts +0 -7
  81. package/rate/index.d.ts +0 -7
  82. package/result/index.d.ts +0 -7
  83. package/ripple/index.d.ts +0 -7
  84. package/search/index.d.ts +0 -7
  85. package/select/index.d.ts +0 -7
  86. package/skeleton/index.d.ts +0 -7
  87. package/slider/index.d.ts +0 -7
  88. package/splitter/index.d.ts +0 -7
  89. package/statistic/index.d.ts +0 -7
  90. package/status/index.d.ts +0 -7
  91. package/steps/index.d.ts +0 -7
  92. package/switch/index.d.ts +0 -7
  93. package/table/index.d.ts +0 -7
  94. package/tabs/index.d.ts +0 -7
  95. package/tag/index.d.ts +0 -7
  96. package/textarea/index.d.ts +0 -7
  97. package/time-picker/index.d.ts +0 -7
  98. package/time-select/index.d.ts +0 -7
  99. package/timeline/index.d.ts +0 -7
  100. package/tooltip/index.d.ts +0 -7
  101. package/tree/index.d.ts +0 -7
  102. package/upload/index.d.ts +0 -7
package/modal/index.es.js CHANGED
@@ -82,6 +82,10 @@ const modalProps = {
82
82
  type: {
83
83
  type: String,
84
84
  default: ""
85
+ },
86
+ keepLast: {
87
+ type: Boolean,
88
+ default: false
85
89
  }
86
90
  };
87
91
  const DEFAULT_PREFIX = "icon";
@@ -603,6 +607,7 @@ function addUnit(value, defaultUnit = "px") {
603
607
  return "";
604
608
  }
605
609
  }
610
+ const modalPosition = ref("translate(-50%, -50%)");
606
611
  const useDraggable = (targetRef, dragRef, draggable) => {
607
612
  let transform = {
608
613
  offsetX: 0,
@@ -630,7 +635,7 @@ const useDraggable = (targetRef, dragRef, draggable) => {
630
635
  offsetX: moveX,
631
636
  offsetY: moveY
632
637
  };
633
- targetRef.value.style.transform = `translate(${addUnit(moveX)}, ${addUnit(moveY)})`;
638
+ modalPosition.value = `translate(calc(-50% + ${addUnit(moveX)}), calc(-50% + ${addUnit(moveY)}))`;
634
639
  };
635
640
  const onMouseup = () => {
636
641
  document.removeEventListener("mousemove", onMousemove);
@@ -661,6 +666,16 @@ const useDraggable = (targetRef, dragRef, draggable) => {
661
666
  onBeforeUnmount(() => {
662
667
  offDraggable();
663
668
  });
669
+ const clearPosition = () => {
670
+ transform = {
671
+ offsetX: 0,
672
+ offsetY: 0
673
+ };
674
+ modalPosition.value = "translate(-50%, -50%)";
675
+ };
676
+ return {
677
+ clearPosition
678
+ };
664
679
  };
665
680
  var Header = defineComponent({
666
681
  name: "DModalHeader",
@@ -708,7 +723,8 @@ var Modal = defineComponent({
708
723
  showClose,
709
724
  showOverlay,
710
725
  appendToBody,
711
- closeOnClickOverlay
726
+ closeOnClickOverlay,
727
+ keepLast
712
728
  } = toRefs(props);
713
729
  const {
714
730
  execClose
@@ -717,7 +733,14 @@ var Modal = defineComponent({
717
733
  const dialogRef = ref();
718
734
  const headerRef = ref();
719
735
  const draggable = computed(() => props.draggable);
720
- useDraggable(dialogRef, headerRef, draggable);
736
+ const {
737
+ clearPosition
738
+ } = useDraggable(dialogRef, headerRef, draggable);
739
+ watch(modelValue, (val) => {
740
+ if (val && !keepLast.value) {
741
+ clearPosition();
742
+ }
743
+ });
721
744
  const renderType = () => {
722
745
  const typeList = [{
723
746
  type: "success",
@@ -737,7 +760,12 @@ var Modal = defineComponent({
737
760
  icon: "info-o"
738
761
  }];
739
762
  const item = typeList.find((i) => i.type === props.type);
740
- return createVNode(Header, null, {
763
+ return createVNode("div", {
764
+ "style": {
765
+ cursor: props.draggable ? "move" : "default"
766
+ },
767
+ "ref": headerRef
768
+ }, [createVNode(Header, null, {
741
769
  default: () => [createVNode("div", {
742
770
  "class": "type-content"
743
771
  }, [createVNode("div", {
@@ -747,22 +775,24 @@ var Modal = defineComponent({
747
775
  }, null)]), createVNode("div", {
748
776
  "class": "type-content-text"
749
777
  }, [item == null ? void 0 : item.text])])]
750
- });
778
+ })]);
751
779
  };
752
780
  return () => createVNode(Teleport, {
753
781
  "to": "body",
754
782
  "disabled": !appendToBody.value
755
783
  }, {
756
- default: () => [showOverlay.value && createVNode(FixedOverlay, {
757
- "modelValue": modelValue.value,
758
- "onUpdate:modelValue": execClose,
784
+ default: () => [showOverlay.value && createVNode(FixedOverlay, mergeProps({
785
+ "modelValue": modelValue.value
786
+ }, {
787
+ "onUpdate:modelValue": execClose
788
+ }, {
759
789
  "class": ns.e("overlay"),
760
790
  "lock-scroll": false,
761
791
  "close-on-click-overlay": closeOnClickOverlay.value,
762
792
  "style": {
763
793
  zIndex: "calc(var(--devui-z-index-modal, 1050) - 1)"
764
794
  }
765
- }, null), createVNode(Transition, {
795
+ }), null), createVNode(Transition, {
766
796
  "name": props.showAnimation ? ns.m("wipe") : ""
767
797
  }, {
768
798
  default: () => {
@@ -771,7 +801,10 @@ var Modal = defineComponent({
771
801
  "ref": dialogRef,
772
802
  "class": ns.b()
773
803
  }, attrs, {
774
- "onClick": (e) => e.stopPropagation()
804
+ "onClick": (e) => e.stopPropagation(),
805
+ "style": {
806
+ transform: modalPosition.value
807
+ }
775
808
  }), [showClose.value && createVNode("div", {
776
809
  "onClick": execClose,
777
810
  "class": "btn-close"
@@ -1 +1 @@
1
- var ye=Object.defineProperty,he=Object.defineProperties;var we=Object.getOwnPropertyDescriptors;var k=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var A=(c,e,u)=>e in c?ye(c,e,{enumerable:!0,configurable:!0,writable:!0,value:u}):c[e]=u,L=(c,e)=>{for(var u in e||(e={}))Y.call(e,u)&&A(c,u,e[u]);if(k)for(var u of k(e))j.call(e,u)&&A(c,u,e[u]);return c},S=(c,e)=>he(c,we(e));var H=(c,e)=>{var u={};for(var g in c)Y.call(c,g)&&e.indexOf(g)<0&&(u[g]=c[g]);if(c!=null&&k)for(var g of k(c))e.indexOf(g)<0&&j.call(c,g)&&(u[g]=c[g]);return u};var _=(c,e,u)=>(A(c,typeof e!="symbol"?e+"":e,u),u);(function(c,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],e):(c=typeof globalThis!="undefined"?globalThis:c||self,e(c.index={},c.Vue,c.dom))})(this,function(c,e,u){"use strict";const g={modelValue:{type:Boolean,default:!1},title:{type:String,default:""},lockScroll:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},beforeClose:{type:Function},escapable:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},showAnimation:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},type:{type:String,default:""}},q={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},W={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function x(t,n,o){let l=t;return n&&(l+=`__${n}`),o&&(l+=`--${o}`),l}function V(t,n=!1){const o=n?`.devui-${t}`:`devui-${t}`;return{b:()=>x(o),e:r=>r?x(o,r):"",m:r=>r?x(o,"",r):"",em:(r,d)=>r&&d?x(o,r,d):""}}var ge="",G=e.defineComponent({name:"DSvgIcon",props:W,setup(t){const{name:n,color:o,size:l}=e.toRefs(t),a=V("svg-icon"),i=e.computed(()=>`#icon-${n.value}`),s=e.computed(()=>typeof l.value=="number"?`${l.value}px`:l.value),r={width:s.value,height:s.value};return()=>e.createVNode("svg",{class:a.b(),style:r},[e.createVNode("use",{"xlink:href":i.value,fill:o.value},null)])}});function K(t){return/^((http|https):)?\/\//.test(t)}function J(t,n){const{component:o,name:l,size:a,color:i,classPrefix:s,rotate:r}=e.toRefs(t),d=V("icon"),p=e.computed(()=>typeof a.value=="number"?`${a.value}px`:a.value),f=o.value?e.resolveDynamicComponent(o.value):e.resolveDynamicComponent(G),m=()=>e.createVNode("img",e.mergeProps({src:l.value,alt:l.value.split("/")[l.value.split("/").length-1],class:[(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{width:p.value||"",transform:`rotate(${r==null?void 0:r.value}deg)`,verticalAlign:"middle"}},n.attrs),null),y=()=>e.createVNode(f,e.mergeProps({name:l.value,color:i.value,size:p.value,class:[(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{transform:`rotate(${r==null?void 0:r.value}deg)`}},n.attrs),null),h=()=>{const v=/^icon-/.test(l.value)?l.value:`${s.value}-${l.value}`;return e.createVNode("i",e.mergeProps({class:[s.value,v,(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{fontSize:p.value,color:i.value,transform:`rotate(${r==null?void 0:r.value}deg)`}},n.attrs),null)};return{iconDom:()=>o.value?y():K(l.value)?m():h()}}var P=e.defineComponent({name:"DIcon",props:q,emits:["click"],setup(t,n){const{disabled:o,operable:l}=e.toRefs(t),{iconDom:a}=J(t,n),i=V("icon"),s=e.computed(()=>({[i.e("container")]:!0,[i.m("disabled")]:o.value,[i.m("operable")]:l.value,[i.m("no-slots")]:!Object.keys(n.slots).length})),r=d=>{o.value||n.emit("click",d)};return()=>{var d,p,f,m;return e.createVNode("div",{class:s.value,onClick:r},[(p=(d=n.slots).prefix)==null?void 0:p.call(d),a(),(m=(f=n.slots).suffix)==null?void 0:m.call(f)])}}}),be="";e.defineComponent({name:"DIconGroup",setup(t,n){const o=V("icon-group");return()=>{var l,a;return e.createVNode("div",{class:o.b()},[(a=(l=n.slots).default)==null?void 0:a.call(l)])}}});const Q={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function $(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const t=document.documentElement.scrollTop,n=document.documentElement.getAttribute("style");return document.documentElement.style.position="fixed",document.documentElement.style.top=`-${t}px`,document.documentElement.style.width=document.documentElement.style.width||"100%",document.documentElement.style.overflowY="scroll",()=>{n?document.documentElement.setAttribute("style",n):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function Z(t,n){let o;const l=i=>{i.preventDefault(),n.emit("click",i),t.closeOnClickOverlay&&n.emit("update:modelValue",!1)},a=()=>{o==null||o()};return e.watch(()=>t.modelValue,i=>{i?t.lockScroll&&(o=$()):a()}),e.onUnmounted(a),{onClick:l}}var Ve="";const ee=e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:Q,emits:["update:modelValue","click"],setup(t,n){const{modelValue:o}=e.toRefs(t),l=V("fixed-overlay"),{onClick:a}=Z(t,n);return()=>e.createVNode(e.Transition,{name:l.m("fade")},{default:()=>{var i,s;return[o.value&&e.createVNode("div",e.mergeProps({class:l.b()},n.attrs,{onClick:a}),[(s=(i=n.slots).default)==null?void 0:s.call(i)])]}})}}),te={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0},clickEventBubble:{type:Boolean,default:!1}};function ne(t){const n=/(auto|scroll|hidden)/;for(let o=t;o=o.parentElement;o.parentElement!==document.body){const l=window.getComputedStyle(o);if(n.test(l.overflow+l.overflowX+l.overflowY))return o}return window}function oe(t,n,o,l){let{x:a,y:i}=n;if(!t){const{width:s,height:r}=l;a&&o.includes("start")&&(a=12),a&&o.includes("end")&&(a=Math.round(s-24)),i&&o.includes("start")&&(i=10),i&&o.includes("end")&&(i=r-14)}return{x:a,y:i}}function le(t,n){const o=e.ref(),l=e.ref();let a=null;const i=(r,d,p,f)=>{const{x:m,y}=oe(t.isArrowCenter,p,d,f.getBoundingClientRect()),h={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]];Object.assign(r.style,{left:m?`${m}px`:"",top:y?`${y}px`:"",right:"",bottom:"",[h]:"-4px"})},s=async()=>{const r=t.origin,d=e.unref(o.value),p=e.unref(l.value),f=[u.offset(t.offset),u.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&f.push(u.arrow({element:p})),t.shiftOffset!==void 0&&f.push(u.shift());const{x:m,y,placement:h,middlewareData:b}=await u.computePosition(r,d,{strategy:"fixed",middleware:f});let v=m,E=y;if(t.shiftOffset!==void 0){const{x:w,y:C}=b.shift;w<0&&(v-=t.shiftOffset),w>0&&(v+=t.shiftOffset),C<0&&(E-=t.shiftOffset),C>0&&(E+=t.shiftOffset)}n("positionChange",h),Object.assign(d.style,{top:`${E}px`,left:`${v}px`}),t.showArrow&&i(p,h,b.arrow,d)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(a=ne(t.origin),e.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))}),e.onUnmounted(()=>{a==null||a.removeEventListener("scroll",s),a!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}),{arrowRef:l,overlayRef:o,updatePosition:s}}var Ee="";e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:te,emits:["update:modelValue","positionChange"],setup(t,{slots:n,attrs:o,emit:l,expose:a}){const i=V("flexible-overlay"),{clickEventBubble:s}=e.toRefs(t),{arrowRef:r,overlayRef:d,updatePosition:p}=le(t,l);return a({updatePosition:p}),()=>{var f;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:d,class:i.b()},o,{onClick:e.withModifiers(()=>({}),[s.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(f=n.default)==null?void 0:f.call(n),t.showArrow&&e.createVNode("div",{ref:r,class:i.e("arrow")},null)])}}});const ae=typeof window!="undefined";function re(t,n){function o(){n("update:modelValue",!1)}function l(){t.beforeClose?t.beforeClose(o):o()}function a(i){i.code==="Escape"&&l()}return e.onMounted(()=>{t.escapable&&window.addEventListener("keydown",a)}),e.onUnmounted(()=>{t.escapable&&window.addEventListener("keydown",a)}),{execClose:l}}function ie(t){let n;const o=()=>{n==null||n()};e.watch(()=>t.modelValue,l=>{l?t.lockScroll&&(n=$()):o()},{immediate:!0}),e.onUnmounted(o)}function T(t,n="px"){return t?typeof t=="string"?t:typeof t=="number"?`${t}${n}`:"":""}const se=(t,n,o)=>{let l={offsetX:0,offsetY:0};const a=r=>{const d=r.clientX,p=r.clientY,{offsetX:f,offsetY:m}=l,y=t.value.getBoundingClientRect(),h=y.left,b=y.top,v=y.width,E=y.height,w=document.documentElement.clientWidth,C=document.documentElement.clientHeight,ue=-h+f,fe=-b+m,me=w-h-v+f,pe=C-b-E+m,z=F=>{const X=Math.min(Math.max(f+F.clientX-d,ue),me),U=Math.min(Math.max(m+F.clientY-p,fe),pe);l={offsetX:X,offsetY:U},t.value.style.transform=`translate(${T(X)}, ${T(U)})`},R=()=>{document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",R)};document.addEventListener("mousemove",z),document.addEventListener("mouseup",R)},i=()=>{n.value&&t.value&&n.value.addEventListener("mousedown",a)},s=()=>{n.value&&t.value&&n.value.removeEventListener("mousedown",a)};e.onMounted(()=>{e.watchEffect(()=>{o.value?i():s()})}),e.onBeforeUnmount(()=>{s()})};var N=e.defineComponent({name:"DModalHeader",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("header")},[(l=n.default)==null?void 0:l.call(n)])}}}),M=e.defineComponent({name:"DModalBody",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("body")},[(l=n.default)==null?void 0:l.call(n)])}}}),Ce="",O=e.defineComponent({name:"DModal",inheritAttrs:!1,props:g,emits:["update:modelValue"],setup(t,{slots:n,attrs:o,emit:l}){const a=V("modal"),{modelValue:i,title:s,showClose:r,showOverlay:d,appendToBody:p,closeOnClickOverlay:f}=e.toRefs(t),{execClose:m}=re(t,l);ie(t);const y=e.ref(),h=e.ref(),b=e.computed(()=>t.draggable);se(y,h,b);const v=()=>{const w=[{type:"success",text:"\u6210\u529F",icon:"right-o"},{type:"failed",text:"\u9519\u8BEF",icon:"error-o"},{type:"warning",text:"\u8B66\u544A",icon:"warning-o"},{type:"info",text:"\u4FE1\u606F",icon:"info-o"}].find(C=>C.type===t.type);return e.createVNode(N,null,{default:()=>[e.createVNode("div",{class:"type-content"},[e.createVNode("div",{class:"type-content-icon"},[e.createVNode(P,{name:w==null?void 0:w.icon},null)]),e.createVNode("div",{class:"type-content-text"},[w==null?void 0:w.text])])]})};return()=>e.createVNode(e.Teleport,{to:"body",disabled:!p.value},{default:()=>[d.value&&e.createVNode(ee,{modelValue:i.value,"onUpdate:modelValue":m,class:a.e("overlay"),"lock-scroll":!1,"close-on-click-overlay":f.value,style:{zIndex:"calc(var(--devui-z-index-modal, 1050) - 1)"}},null),e.createVNode(e.Transition,{name:t.showAnimation?a.m("wipe"):""},{default:()=>{var E;return[i.value&&e.createVNode("div",e.mergeProps({ref:y,class:a.b()},o,{onClick:w=>w.stopPropagation()}),[r.value&&e.createVNode("div",{onClick:m,class:"btn-close"},[e.createVNode(P,{name:"close",size:"20px"},null)]),t.type?v():e.createVNode("div",{style:{cursor:t.draggable?"move":"default"},ref:h},[n.header?n.header():s.value&&e.createVNode(N,null,{default:()=>[s.value]})]),e.createVNode(M,null,{default:()=>{var w;return[(w=n.default)==null?void 0:w.call(n)]}}),(E=n.footer)==null?void 0:E.call(n)])]}})]})}}),I=e.defineComponent({name:"DModalFooter",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("footer")},[(l=n.default)==null?void 0:l.call(n)])}}});class ce{constructor(n){this.anchorContainer=n}renderModal(n,o,l){const a=e.h(this.component(),o,l);return e.render(a,n),a}renderNull(n){setTimeout(()=>{e.render(null,n)},500)}}let B;class D extends ce{component(){return O}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const f=n,{header:l,content:a,footer:i}=f,s=H(f,["header","content","footer"]),r=(m,y)=>this.renderModal(o,S(L({},m),{modelValue:!0,"onUpdate:modelValue":y}),{header:l,default:a,footer:i}),d=()=>{var y,h,b;const m=v=>{v||d()};r(s,v=>{v?r(s,m):(this.renderModal(o,S(L({},s),{modelValue:!1})),this.renderNull(o))}),(b=(h=(y=B==null?void 0:B.component)==null?void 0:y.exposed)==null?void 0:h.handleVisibleChange)==null||b.call(h,!1)},p=m=>{m||d()};return this.renderModal(o,{modelValue:!1}),B=r(s,p),{hide:d}}}_(D,"token","MODAL_SERVICE_TOKEN");var de={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(t){if(t.component(O.name,O),t.component(N.name,N),t.component(M.name,M),t.component(I.name,I),!ae)return;let n=document.getElementById("d-modal-anchors-container");n||(n=document.createElement("div"),n.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(n)),t.provide(D.token,new D(n))}};c.Modal=O,c.default=de,c.modalProps=g,Object.defineProperty(c,"__esModule",{value:!0}),c[Symbol.toStringTag]="Module"});
1
+ var we=Object.defineProperty,ge=Object.defineProperties;var ve=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var S=(c,e,u)=>e in c?we(c,e,{enumerable:!0,configurable:!0,writable:!0,value:u}):c[e]=u,$=(c,e)=>{for(var u in e||(e={}))_.call(e,u)&&S(c,u,e[u]);if(M)for(var u of M(e))q.call(e,u)&&S(c,u,e[u]);return c},T=(c,e)=>ge(c,ve(e));var W=(c,e)=>{var u={};for(var b in c)_.call(c,b)&&e.indexOf(b)<0&&(u[b]=c[b]);if(c!=null&&M)for(var b of M(c))e.indexOf(b)<0&&q.call(c,b)&&(u[b]=c[b]);return u};var G=(c,e,u)=>(S(c,typeof e!="symbol"?e+"":e,u),u);(function(c,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue"),require("@floating-ui/dom")):typeof define=="function"&&define.amd?define(["exports","vue","@floating-ui/dom"],e):(c=typeof globalThis!="undefined"?globalThis:c||self,e(c.index={},c.Vue,c.dom))})(this,function(c,e,u){"use strict";const b={modelValue:{type:Boolean,default:!1},title:{type:String,default:""},lockScroll:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},beforeClose:{type:Function},escapable:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},showAnimation:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},type:{type:String,default:""},keepLast:{type:Boolean,default:!1}},K={name:{type:String,default:"",required:!0},size:{type:[Number,String],default:"inherit"},color:{type:String,default:"inherit"},component:{type:Object,default:null},classPrefix:{type:String,default:"icon"},operable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},rotate:{type:[Number,String]}},J={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function x(t,n,o){let l=t;return n&&(l+=`__${n}`),o&&(l+=`--${o}`),l}function V(t,n=!1){const o=n?`.devui-${t}`:`devui-${t}`;return{b:()=>x(o),e:r=>r?x(o,r):"",m:r=>r?x(o,"",r):"",em:(r,d)=>r&&d?x(o,r,d):""}}var Ve="",Q=e.defineComponent({name:"DSvgIcon",props:J,setup(t){const{name:n,color:o,size:l}=e.toRefs(t),a=V("svg-icon"),i=e.computed(()=>`#icon-${n.value}`),s=e.computed(()=>typeof l.value=="number"?`${l.value}px`:l.value),r={width:s.value,height:s.value};return()=>e.createVNode("svg",{class:a.b(),style:r},[e.createVNode("use",{"xlink:href":i.value,fill:o.value},null)])}});function Z(t){return/^((http|https):)?\/\//.test(t)}function ee(t,n){const{component:o,name:l,size:a,color:i,classPrefix:s,rotate:r}=e.toRefs(t),d=V("icon"),p=e.computed(()=>typeof a.value=="number"?`${a.value}px`:a.value),m=o.value?e.resolveDynamicComponent(o.value):e.resolveDynamicComponent(Q),f=()=>e.createVNode("img",e.mergeProps({src:l.value,alt:l.value.split("/")[l.value.split("/").length-1],class:[(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{width:p.value||"",transform:`rotate(${r==null?void 0:r.value}deg)`,verticalAlign:"middle"}},n.attrs),null),h=()=>e.createVNode(m,e.mergeProps({name:l.value,color:i.value,size:p.value,class:[(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{transform:`rotate(${r==null?void 0:r.value}deg)`}},n.attrs),null),y=()=>{const w=/^icon-/.test(l.value)?l.value:`${s.value}-${l.value}`;return e.createVNode("i",e.mergeProps({class:[s.value,w,(r==null?void 0:r.value)==="infinite"&&d.m("spin")],style:{fontSize:p.value,color:i.value,transform:`rotate(${r==null?void 0:r.value}deg)`}},n.attrs),null)};return{iconDom:()=>o.value?h():Z(l.value)?f():y()}}var I=e.defineComponent({name:"DIcon",props:K,emits:["click"],setup(t,n){const{disabled:o,operable:l}=e.toRefs(t),{iconDom:a}=ee(t,n),i=V("icon"),s=e.computed(()=>({[i.e("container")]:!0,[i.m("disabled")]:o.value,[i.m("operable")]:l.value,[i.m("no-slots")]:!Object.keys(n.slots).length})),r=d=>{o.value||n.emit("click",d)};return()=>{var d,p,m,f;return e.createVNode("div",{class:s.value,onClick:r},[(p=(d=n.slots).prefix)==null?void 0:p.call(d),a(),(f=(m=n.slots).suffix)==null?void 0:f.call(m)])}}}),Ee="";e.defineComponent({name:"DIconGroup",setup(t,n){const o=V("icon-group");return()=>{var l,a;return e.createVNode("div",{class:o.b()},[(a=(l=n.slots).default)==null?void 0:a.call(l)])}}});const te={modelValue:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0}};function R(){if(document.documentElement.scrollHeight>document.documentElement.clientHeight){const t=document.documentElement.scrollTop,n=document.documentElement.getAttribute("style");return document.documentElement.style.position="fixed",document.documentElement.style.top=`-${t}px`,document.documentElement.style.width=document.documentElement.style.width||"100%",document.documentElement.style.overflowY="scroll",()=>{n?document.documentElement.setAttribute("style",n):document.documentElement.removeAttribute("style"),document.documentElement.scrollTop=t}}}function ne(t,n){let o;const l=i=>{i.preventDefault(),n.emit("click",i),t.closeOnClickOverlay&&n.emit("update:modelValue",!1)},a=()=>{o==null||o()};return e.watch(()=>t.modelValue,i=>{i?t.lockScroll&&(o=R()):a()}),e.onUnmounted(a),{onClick:l}}var Ce="";const oe=e.defineComponent({name:"DFixedOverlay",inheritAttrs:!1,props:te,emits:["update:modelValue","click"],setup(t,n){const{modelValue:o}=e.toRefs(t),l=V("fixed-overlay"),{onClick:a}=ne(t,n);return()=>e.createVNode(e.Transition,{name:l.m("fade")},{default:()=>{var i,s;return[o.value&&e.createVNode("div",e.mergeProps({class:l.b()},n.attrs,{onClick:a}),[(s=(i=n.slots).default)==null?void 0:s.call(i)])]}})}}),le={modelValue:{type:Boolean,default:!1},origin:{type:Object,require:!0},position:{type:Array,default:["bottom"]},offset:{type:[Number,Object],default:8},shiftOffset:{type:Number},align:{type:String,default:null},showArrow:{type:Boolean,default:!1},isArrowCenter:{type:Boolean,default:!0},clickEventBubble:{type:Boolean,default:!1}};function ae(t){const n=/(auto|scroll|hidden)/;for(let o=t;o=o.parentElement;o.parentElement!==document.body){const l=window.getComputedStyle(o);if(n.test(l.overflow+l.overflowX+l.overflowY))return o}return window}function re(t,n,o,l){let{x:a,y:i}=n;if(!t){const{width:s,height:r}=l;a&&o.includes("start")&&(a=12),a&&o.includes("end")&&(a=Math.round(s-24)),i&&o.includes("start")&&(i=10),i&&o.includes("end")&&(i=r-14)}return{x:a,y:i}}function ie(t,n){const o=e.ref(),l=e.ref();let a=null;const i=(r,d,p,m)=>{const{x:f,y:h}=re(t.isArrowCenter,p,d,m.getBoundingClientRect()),y={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]];Object.assign(r.style,{left:f?`${f}px`:"",top:h?`${h}px`:"",right:"",bottom:"",[y]:"-4px"})},s=async()=>{const r=t.origin,d=e.unref(o.value),p=e.unref(l.value),m=[u.offset(t.offset),u.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&m.push(u.arrow({element:p})),t.shiftOffset!==void 0&&m.push(u.shift());const{x:f,y:h,placement:y,middlewareData:g}=await u.computePosition(r,d,{strategy:"fixed",middleware:m});let w=f,C=h;if(t.shiftOffset!==void 0){const{x:N,y:E}=g.shift;N<0&&(w-=t.shiftOffset),N>0&&(w+=t.shiftOffset),E<0&&(C-=t.shiftOffset),E>0&&(C+=t.shiftOffset)}n("positionChange",y),Object.assign(d.style,{top:`${C}px`,left:`${w}px`}),t.showArrow&&i(p,y,g.arrow,d)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(a=ae(t.origin),e.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))}),e.onUnmounted(()=>{a==null||a.removeEventListener("scroll",s),a!==window&&window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}),{arrowRef:l,overlayRef:o,updatePosition:s}}var Ne="";e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:le,emits:["update:modelValue","positionChange"],setup(t,{slots:n,attrs:o,emit:l,expose:a}){const i=V("flexible-overlay"),{clickEventBubble:s}=e.toRefs(t),{arrowRef:r,overlayRef:d,updatePosition:p}=ie(t,l);return a({updatePosition:p}),()=>{var m;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:d,class:i.b()},o,{onClick:e.withModifiers(()=>({}),[s.value?"":"stop"]),onPointerup:e.withModifiers(()=>({}),["stop"])}),[(m=n.default)==null?void 0:m.call(n),t.showArrow&&e.createVNode("div",{ref:r,class:i.e("arrow")},null)])}}});const se=typeof window!="undefined";function ce(t,n){function o(){n("update:modelValue",!1)}function l(){t.beforeClose?t.beforeClose(o):o()}function a(i){i.code==="Escape"&&l()}return e.onMounted(()=>{t.escapable&&window.addEventListener("keydown",a)}),e.onUnmounted(()=>{t.escapable&&window.addEventListener("keydown",a)}),{execClose:l}}function de(t){let n;const o=()=>{n==null||n()};e.watch(()=>t.modelValue,l=>{l?t.lockScroll&&(n=R()):o()},{immediate:!0}),e.onUnmounted(o)}function z(t,n="px"){return t?typeof t=="string"?t:typeof t=="number"?`${t}${n}`:"":""}const P=e.ref("translate(-50%, -50%)"),ue=(t,n,o)=>{let l={offsetX:0,offsetY:0};const a=d=>{const p=d.clientX,m=d.clientY,{offsetX:f,offsetY:h}=l,y=t.value.getBoundingClientRect(),g=y.left,w=y.top,C=y.width,N=y.height,E=document.documentElement.clientWidth,v=document.documentElement.clientHeight,A=-g+f,pe=-w+h,ye=E-g-C+f,he=v-w-N+h,F=U=>{const j=Math.min(Math.max(f+U.clientX-p,A),ye),H=Math.min(Math.max(h+U.clientY-m,pe),he);l={offsetX:j,offsetY:H},P.value=`translate(calc(-50% + ${z(j)}), calc(-50% + ${z(H)}))`},Y=()=>{document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",Y)};document.addEventListener("mousemove",F),document.addEventListener("mouseup",Y)},i=()=>{n.value&&t.value&&n.value.addEventListener("mousedown",a)},s=()=>{n.value&&t.value&&n.value.removeEventListener("mousedown",a)};return e.onMounted(()=>{e.watchEffect(()=>{o.value?i():s()})}),e.onBeforeUnmount(()=>{s()}),{clearPosition:()=>{l={offsetX:0,offsetY:0},P.value="translate(-50%, -50%)"}}};var O=e.defineComponent({name:"DModalHeader",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("header")},[(l=n.default)==null?void 0:l.call(n)])}}}),D=e.defineComponent({name:"DModalBody",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("body")},[(l=n.default)==null?void 0:l.call(n)])}}}),xe="",B=e.defineComponent({name:"DModal",inheritAttrs:!1,props:b,emits:["update:modelValue"],setup(t,{slots:n,attrs:o,emit:l}){const a=V("modal"),{modelValue:i,title:s,showClose:r,showOverlay:d,appendToBody:p,closeOnClickOverlay:m,keepLast:f}=e.toRefs(t),{execClose:h}=ce(t,l);de(t);const y=e.ref(),g=e.ref(),w=e.computed(()=>t.draggable),{clearPosition:C}=ue(y,g,w);e.watch(i,E=>{E&&!f.value&&C()});const N=()=>{const v=[{type:"success",text:"\u6210\u529F",icon:"right-o"},{type:"failed",text:"\u9519\u8BEF",icon:"error-o"},{type:"warning",text:"\u8B66\u544A",icon:"warning-o"},{type:"info",text:"\u4FE1\u606F",icon:"info-o"}].find(A=>A.type===t.type);return e.createVNode("div",{style:{cursor:t.draggable?"move":"default"},ref:g},[e.createVNode(O,null,{default:()=>[e.createVNode("div",{class:"type-content"},[e.createVNode("div",{class:"type-content-icon"},[e.createVNode(I,{name:v==null?void 0:v.icon},null)]),e.createVNode("div",{class:"type-content-text"},[v==null?void 0:v.text])])]})])};return()=>e.createVNode(e.Teleport,{to:"body",disabled:!p.value},{default:()=>[d.value&&e.createVNode(oe,e.mergeProps({modelValue:i.value},{"onUpdate:modelValue":h},{class:a.e("overlay"),"lock-scroll":!1,"close-on-click-overlay":m.value,style:{zIndex:"calc(var(--devui-z-index-modal, 1050) - 1)"}}),null),e.createVNode(e.Transition,{name:t.showAnimation?a.m("wipe"):""},{default:()=>{var E;return[i.value&&e.createVNode("div",e.mergeProps({ref:y,class:a.b()},o,{onClick:v=>v.stopPropagation(),style:{transform:P.value}}),[r.value&&e.createVNode("div",{onClick:h,class:"btn-close"},[e.createVNode(I,{name:"close",size:"20px"},null)]),t.type?N():e.createVNode("div",{style:{cursor:t.draggable?"move":"default"},ref:g},[n.header?n.header():s.value&&e.createVNode(O,null,{default:()=>[s.value]})]),e.createVNode(D,null,{default:()=>{var v;return[(v=n.default)==null?void 0:v.call(n)]}}),(E=n.footer)==null?void 0:E.call(n)])]}})]})}}),X=e.defineComponent({name:"DModalFooter",setup(t,{slots:n}){const o=V("modal");return()=>{var l;return e.createVNode("div",{class:o.e("footer")},[(l=n.default)==null?void 0:l.call(n)])}}});class fe{constructor(n){this.anchorContainer=n}renderModal(n,o,l){const a=e.h(this.component(),o,l);return e.render(a,n),a}renderNull(n){setTimeout(()=>{e.render(null,n)},500)}}let k;class L extends fe{component(){return B}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const m=n,{header:l,content:a,footer:i}=m,s=W(m,["header","content","footer"]),r=(f,h)=>this.renderModal(o,T($({},f),{modelValue:!0,"onUpdate:modelValue":h}),{header:l,default:a,footer:i}),d=()=>{var h,y,g;const f=w=>{w||d()};r(s,w=>{w?r(s,f):(this.renderModal(o,T($({},s),{modelValue:!1})),this.renderNull(o))}),(g=(y=(h=k==null?void 0:k.component)==null?void 0:h.exposed)==null?void 0:y.handleVisibleChange)==null||g.call(y,!1)},p=f=>{f||d()};return this.renderModal(o,{modelValue:!1}),k=r(s,p),{hide:d}}}G(L,"token","MODAL_SERVICE_TOKEN");var me={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(t){if(t.component(B.name,B),t.component(O.name,O),t.component(D.name,D),t.component(X.name,X),!se)return;let n=document.getElementById("d-modal-anchors-container");n||(n=document.createElement("div"),n.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(n)),t.provide(L.token,new L(n))}};c.Modal=B,c.default=me,c.modalProps=b,Object.defineProperty(c,"__esModule",{value:!0}),c[Symbol.toStringTag]="Module"});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-devui",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "license": "MIT",
5
5
  "description": "DevUI components based on Vite and Vue3",
6
6
  "keywords": [
@@ -8519,7 +8519,9 @@ var Checkbox = defineComponent({
8519
8519
  "fill-rule": "nonzero",
8520
8520
  "points": "5.17391304 6.56521739 7.7173913 9.10869565 11.826087 5 13 6.17391304 7.7173913 11.4565217 4 7.73913043",
8521
8521
  "class": polygonCls
8522
- }, null)])])]), props.label || ((_b = (_a = ctx2.slots).default) == null ? void 0 : _b.call(_a))])])]);
8522
+ }, null)])])]), createVNode("span", {
8523
+ "class": ns2.e("label-text")
8524
+ }, [props.label || ((_b = (_a = ctx2.slots).default) == null ? void 0 : _b.call(_a))])])])]);
8523
8525
  };
8524
8526
  }
8525
8527
  });
@@ -8561,12 +8563,11 @@ defineComponent({
8561
8563
  }
8562
8564
  };
8563
8565
  return createVNode("div", {
8564
- "class": ns2.e("group")
8565
- }, [createVNode("div", {
8566
- "class": {
8567
- [ns2.m("list-inline")]: props.direction === "row"
8568
- }
8569
- }, [getContent()])]);
8566
+ "class": [ns2.e("group"), {
8567
+ "is-row": props.direction === "row",
8568
+ "is-column": props.direction === "column"
8569
+ }]
8570
+ }, [getContent()]);
8570
8571
  };
8571
8572
  }
8572
8573
  });
@@ -8755,7 +8756,7 @@ const tagProps = {
8755
8756
  },
8756
8757
  size: {
8757
8758
  type: String,
8758
- default: "xs"
8759
+ default: "md"
8759
8760
  }
8760
8761
  };
8761
8762
  function useClass(props) {