vue-devui 1.0.0-rc.6 → 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.
- package/README.md +5 -0
- package/alert/index.es.js +37 -11
- package/alert/index.umd.js +1 -1
- package/alert/style.css +1 -1
- package/auto-complete/index.es.js +311 -77
- package/auto-complete/index.umd.js +3 -5
- package/auto-complete/style.css +1 -1
- package/avatar/index.es.js +81 -70
- package/avatar/index.umd.js +1 -1
- package/avatar/style.css +1 -1
- package/badge/index.es.js +29 -4
- package/badge/index.umd.js +1 -1
- package/badge/style.css +1 -1
- package/button/index.es.js +5632 -87
- package/button/index.umd.js +27 -1
- package/button/style.css +1 -1
- package/card/index.es.js +56 -29
- package/card/index.umd.js +1 -1
- package/card/style.css +1 -1
- package/checkbox/index.es.js +364 -234
- package/checkbox/index.umd.js +1 -1
- package/checkbox/style.css +1 -1
- package/date-picker/index.es.js +310 -157
- package/date-picker/index.umd.js +1 -1
- package/date-picker/style.css +1 -1
- package/drawer/index.es.js +28 -3
- package/drawer/index.umd.js +1 -1
- package/drawer/style.css +1 -1
- package/dropdown/index.es.js +125 -45
- package/dropdown/index.umd.js +1 -1
- package/dropdown/style.css +1 -1
- package/editable-select/index.es.js +437 -22
- package/editable-select/index.umd.js +1 -1
- package/editable-select/style.css +1 -1
- package/form/index.es.js +490 -605
- package/form/index.umd.js +15 -15
- package/form/style.css +1 -1
- package/fullscreen/index.es.js +29 -5
- package/fullscreen/index.umd.js +1 -1
- package/fullscreen/style.css +1 -1
- package/grid/index.es.js +71 -50
- package/grid/index.umd.js +1 -1
- package/grid/style.css +1 -1
- package/icon/index.es.js +109 -13
- package/icon/index.umd.js +1 -1
- package/icon/style.css +1 -0
- package/image-preview/index.es.js +34 -11
- package/image-preview/index.umd.js +1 -1
- package/image-preview/style.css +1 -1
- package/input/index.es.js +330 -130
- package/input/index.umd.js +1 -1
- package/input/style.css +1 -1
- package/input-number/index.es.js +272 -199
- package/input-number/index.umd.js +1 -1
- package/input-number/style.css +1 -1
- package/layout/index.es.js +34 -6
- package/layout/index.umd.js +1 -1
- package/layout/style.css +1 -1
- package/loading/index.es.js +34 -10
- package/loading/index.umd.js +1 -1
- package/loading/style.css +1 -1
- package/modal/index.es.js +126 -27
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/notification/index.es.js +125 -25
- package/notification/index.umd.js +1 -1
- package/notification/style.css +1 -1
- package/nuxt/components/ButtonGroup.js +3 -0
- package/nuxt/components/CheckboxButton.js +3 -0
- package/nuxt/components/CheckboxGroup.js +3 -0
- package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
- package/nuxt/components/FORM_TOKEN.js +3 -0
- package/nuxt/components/Icon.js +1 -0
- package/nuxt/components/LABEL_DATA.js +3 -0
- package/nuxt/components/Option.js +3 -0
- package/nuxt/components/buttonGroupInjectionKey.js +3 -0
- package/nuxt/components/buttonGroupProps.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/iconProps.js +1 -0
- package/nuxt/components/svgIconProps.js +3 -0
- package/overlay/index.es.js +31 -9
- package/overlay/index.umd.js +1 -1
- package/overlay/style.css +1 -1
- package/package.json +2 -1
- package/pagination/index.es.js +135 -124
- package/pagination/index.umd.js +1 -1
- package/pagination/style.css +1 -1
- package/popover/index.es.js +198 -83
- package/popover/index.umd.js +16 -16
- package/popover/style.css +1 -1
- package/progress/index.es.js +76 -20
- package/progress/index.umd.js +3 -3
- package/progress/style.css +1 -1
- package/radio/index.es.js +161 -140
- package/radio/index.umd.js +1 -1
- package/radio/style.css +1 -1
- package/rate/index.es.js +48 -16
- package/rate/index.umd.js +1 -1
- package/rate/style.css +1 -1
- package/result/index.es.js +108 -12
- package/result/index.umd.js +1 -1
- package/result/style.css +1 -1
- package/search/index.es.js +379 -167
- package/search/index.umd.js +17 -17
- package/search/style.css +1 -1
- package/select/index.es.js +7339 -556
- package/select/index.umd.js +27 -1
- package/select/style.css +1 -1
- package/skeleton/index.es.js +37 -12
- package/skeleton/index.umd.js +1 -1
- package/skeleton/style.css +1 -1
- package/slider/index.es.js +34 -10
- package/slider/index.umd.js +1 -1
- package/slider/style.css +1 -1
- package/splitter/index.es.js +201 -84
- package/splitter/index.umd.js +14 -14
- package/splitter/style.css +1 -1
- package/status/index.es.js +26 -2
- package/status/index.umd.js +1 -1
- package/status/style.css +1 -1
- package/style.css +1 -1
- package/switch/index.es.js +30 -6
- package/switch/index.umd.js +1 -1
- package/switch/style.css +1 -1
- package/table/index.es.js +6808 -585
- package/table/index.umd.js +27 -1
- package/table/style.css +1 -1
- package/tabs/index.es.js +136 -70
- package/tabs/index.umd.js +1 -1
- package/tabs/style.css +1 -1
- package/tag/index.es.js +31 -7
- package/tag/index.umd.js +1 -1
- package/tag/style.css +1 -1
- package/textarea/index.es.js +5631 -80
- package/textarea/index.umd.js +35 -1
- package/textarea/style.css +1 -1
- package/timeline/index.es.js +108 -12
- package/timeline/index.umd.js +1 -1
- package/timeline/style.css +1 -1
- package/tooltip/index.es.js +190 -74
- package/tooltip/index.umd.js +17 -17
- package/tooltip/style.css +1 -1
- package/tree/index.es.js +376 -256
- package/tree/index.umd.js +1 -1
- package/tree/style.css +1 -1
- package/upload/index.es.js +138 -34
- package/upload/index.umd.js +1 -1
- package/upload/style.css +1 -1
- package/vue-devui.es.js +6770 -5769
- package/vue-devui.umd.js +27 -21
- package/comment/index.d.ts +0 -7
- package/comment/index.es.js +0 -84
- package/comment/index.umd.js +0 -1
- package/comment/package.json +0 -7
- package/comment/style.css +0 -1
- package/nuxt/components/Comment.js +0 -3
- package/nuxt/components/FormControl.js +0 -3
- package/nuxt/components/FormLabel.js +0 -3
- package/nuxt/components/ReadTip.js +0 -3
- package/nuxt/components/commentProps.js +0 -3
- package/nuxt/components/readTipProps.js +0 -3
- package/read-tip/index.d.ts +0 -7
- package/read-tip/index.es.js +0 -261
- package/read-tip/index.umd.js +0 -1
- package/read-tip/package.json +0 -7
- package/read-tip/style.css +0 -1
package/layout/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(d,
|
|
1
|
+
(function(d,o){typeof exports=="object"&&typeof module!="undefined"?o(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],o):(d=typeof globalThis!="undefined"?globalThis:d||self,o(d.index={},d.Vue))})(this,function(d,o){"use strict";function c(a,e,t){let n=a;return e&&(n+=`__${e}`),t&&(n+=`--${t}`),n}function u(a,e=!1){const t=e?`.devui-${a}`:`devui-${a}`;return{b:()=>c(t),e:r=>r?c(t,r):"",m:r=>r?c(t,"",r):"",em:(r,C)=>r&&C?c(t,r,C):""}}var l="",i=o.defineComponent({name:"DLayout",emits:[],setup(a,{slots:e}){const t=u("layout");return()=>{var y;const n=(y=e.default)==null?void 0:y.call(e),v=`${n.some(r=>r.type.name==="DAside")?t.e("aside"):""} ${t.b()}`;return o.createVNode("div",{class:v},[n])}}}),A="",f=o.defineComponent({name:"DContent",setup(a,{slots:e}){const t=u("layout");return()=>{var n;return o.createVNode("div",{class:t.e("content")},[(n=e.default)==null?void 0:n.call(e)])}}}),V="",m=o.defineComponent({name:"DHeader",setup(a,{slots:e}){const t=u("layout");return()=>{var n;return o.createVNode("div",{class:t.e("header")},[(n=e.default)==null?void 0:n.call(e)])}}}),$="",s=o.defineComponent({name:"DFooter",setup(a,{slots:e}){const t=u("layout");return()=>{var n;return o.createVNode("div",{class:t.e("footer")},[(n=e.default)==null?void 0:n.call(e)])}}}),p=o.defineComponent({name:"DAside",setup(a,{slots:e}){const t=u("layout");return()=>{var n;return o.createVNode("div",{class:t.e("aside")},[(n=e.default)==null?void 0:n.call(e)])}}}),D={title:"Layout \u5E03\u5C40",category:"\u5E03\u5C40",status:"100%",install(a){a.component(i.name,i),a.component(f.name,f),a.component(m.name,m),a.component(s.name,s),a.component(p.name,p)}};d.Aside=p,d.Content=f,d.Footer=s,d.Header=m,d.Layout=i,d.default=D,Object.defineProperty(d,"__esModule",{value:!0}),d[Symbol.toStringTag]="Module"});
|
package/layout/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.devui-layout{display:flex;flex-direction:column;flex:auto}.devui-
|
|
1
|
+
.devui-layout{display:flex;flex-direction:column;flex:auto}.devui-layout__aside{flex-direction:row}.devui-layout__content{flex:auto;min-height:0}.devui-layout__header{min-height:40px;flex:auto}.devui-layout__footer{text-align:center;line-height:1.5}
|
package/loading/index.es.js
CHANGED
|
@@ -52,6 +52,29 @@ class LoadingOptions {
|
|
|
52
52
|
__publicField(this, "zIndex");
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
function createBem(namespace, element, modifier) {
|
|
56
|
+
let cls = namespace;
|
|
57
|
+
if (element) {
|
|
58
|
+
cls += `__${element}`;
|
|
59
|
+
}
|
|
60
|
+
if (modifier) {
|
|
61
|
+
cls += `--${modifier}`;
|
|
62
|
+
}
|
|
63
|
+
return cls;
|
|
64
|
+
}
|
|
65
|
+
function useNamespace(block, needDot = false) {
|
|
66
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
67
|
+
const b = () => createBem(namespace);
|
|
68
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
69
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
70
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
71
|
+
return {
|
|
72
|
+
b,
|
|
73
|
+
e,
|
|
74
|
+
m,
|
|
75
|
+
em
|
|
76
|
+
};
|
|
77
|
+
}
|
|
55
78
|
var loading$1 = "";
|
|
56
79
|
var Loading = defineComponent({
|
|
57
80
|
name: "DLoading",
|
|
@@ -90,27 +113,28 @@ var Loading = defineComponent({
|
|
|
90
113
|
message,
|
|
91
114
|
$slots
|
|
92
115
|
} = this;
|
|
116
|
+
const ns = useNamespace("loading");
|
|
93
117
|
return isShow && createVNode("div", {
|
|
94
|
-
"class": [
|
|
118
|
+
"class": [ns.b(), isFull ? ns.m("full") : ""]
|
|
95
119
|
}, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
|
|
96
|
-
"class": "
|
|
120
|
+
"class": ns.e("wrapper")
|
|
97
121
|
}, [backdrop ? createVNode("div", {
|
|
98
|
-
"class": "
|
|
122
|
+
"class": ns.e("mask")
|
|
99
123
|
}, null) : null, createVNode("div", {
|
|
100
124
|
"style": style,
|
|
101
|
-
"class": "
|
|
125
|
+
"class": ns.e("area")
|
|
102
126
|
}, [createVNode("div", {
|
|
103
|
-
"class": "
|
|
127
|
+
"class": ns.e("busy-default-spinner")
|
|
104
128
|
}, [createVNode("div", {
|
|
105
|
-
"class": "
|
|
129
|
+
"class": ns.e("bar1")
|
|
106
130
|
}, null), createVNode("div", {
|
|
107
|
-
"class": "
|
|
131
|
+
"class": ns.e("bar2")
|
|
108
132
|
}, null), createVNode("div", {
|
|
109
|
-
"class": "
|
|
133
|
+
"class": ns.e("bar3")
|
|
110
134
|
}, null), createVNode("div", {
|
|
111
|
-
"class": "
|
|
135
|
+
"class": ns.e("bar4")
|
|
112
136
|
}, null)]), message ? createVNode("span", {
|
|
113
|
-
"class": "
|
|
137
|
+
"class": ns.e("text")
|
|
114
138
|
}, [message]) : null])])]);
|
|
115
139
|
}
|
|
116
140
|
});
|
package/loading/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var B=Object.defineProperty,D=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var C=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(s,t,c)=>t in s?B(s,t,{enumerable:!0,configurable:!0,writable:!0,value:c}):s[t]=c,p=(s,t)=>{for(var c in t||(t={}))I.call(t,c)&&v(s,c,t[c]);if(C)for(var c of C(t))W.call(t,c)&&v(s,c,t[c]);return s},_=(s,t)=>D(s,F(t));var u=(s,t,c)=>(v(s,typeof t!="symbol"?t+"":t,c),c);(function(s,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(s=typeof globalThis!="undefined"?globalThis:s||self,t(s.index={},s.Vue))})(this,function(s,t){"use strict";class c{constructor(){u(this,"top","50%");u(this,"left","50%")}}const w={message:String,backdrop:Boolean,view:{type:Object,default:()=>new c},zIndex:Number,isFull:{type:Boolean,default:!1}};class b{constructor(){u(this,"target");u(this,"message");u(this,"loadingTemplateRef");u(this,"backdrop",!0);u(this,"positionType","relative");u(this,"view",new c);u(this,"zIndex")}}function m(e,o,r){let n=e;return o&&(n+=`__${o}`),r&&(n+=`--${r}`),n}function $(e,o=!1){const r=o?`.devui-${e}`:`devui-${e}`;return{b:()=>m(r),e:l=>l?m(r,l):"",m:l=>l?m(r,"",l):"",em:(l,y)=>l&&y?m(r,l,y):""}}var q="",N=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:w,setup(e){const o={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(o.background="none");const r=t.ref(!1);return{style:o,isShow:r,open:()=>{r.value=!0},close:()=>{r.value=!1}}},render(){var l;const{isShow:e,isFull:o,backdrop:r,style:n,message:a,$slots:d}=this,i=$("loading");return e&&t.createVNode("div",{class:[i.b(),o?i.m("full"):""]},[((l=d.default)==null?void 0:l.call(d))||t.createVNode("div",{class:i.e("wrapper")},[r?t.createVNode("div",{class:i.e("mask")},null):null,t.createVNode("div",{style:n,class:i.e("area")},[t.createVNode("div",{class:i.e("busy-default-spinner")},[t.createVNode("div",{class:i.e("bar1")},null),t.createVNode("div",{class:i.e("bar2")},null),t.createVNode("div",{class:i.e("bar3")},null),t.createVNode("div",{class:i.e("bar4")},null)]),a?t.createVNode("span",{class:i.e("text")},[a]):null])])])}});const T=Symbol("dev_component_container");function A(e,o,r=null){const n=t.h(e,p({},o),r),a=document.createElement("div");return n[T]=a,t.render(n,a),n.component}function j(e){t.render(null,e==null?void 0:e.vnode[T])}const z=t.defineComponent(N),f=new WeakSet,h=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},x=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),E=e=>{switch(x(e)){case"promise":return[e];case"array":return e.some(r=>x(r)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},S=e=>{f.delete(e),e.instance.proxy.close(),j(e.instance)},V=(e,o)=>{var r,n,a;if(o.value){const d=E(o.value);if(d==="error")return;(a=(n=(r=e==null?void 0:e.instance)==null?void 0:r.proxy)==null?void 0:n.open)==null||a.call(n),e.appendChild(e.mask),f.add(e),d&&Promise.all(d).catch(i=>{console.error(new Error("Promise handling errors"),i)}).finally(()=>{S(e)})}else S(e)},L=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},P=(e,o)=>{var d;const r=p(p({},new b),o),n=r.loadingTemplateRef,a=A(z,p({},r),n?()=>n:null);e.style.position=r.positionType,e.options=r,e.instance=a,e.mask=(d=a==null?void 0:a.proxy)==null?void 0:d.$el},k={mounted:function(e,o,r){P(e,r.props),L(e),!h(o.value)&&V(e,o)},updated:function(e,o,r){!h(o.value)&&f.has(e)||h(o.value)&&!f.has(e)||(!f.has(e)&&P(e,r.props),L(e),V(e,o))}},M=t.defineComponent(N),g=new WeakMap,O={open(e={}){var d,i,l;const o=e.target||document.body;if(g.has(o))return g.get(o);o.style&&(o.style.position=e.positionType);const r=document.body===o;e=p(p({},new b),e);const n=A(M,_(p({},e),{isFull:r}),e.loadingTemplateRef?()=>e.loadingTemplateRef:null);g.set(o,n),(d=n==null?void 0:n.proxy)==null||d.open(),o.appendChild((i=n==null?void 0:n.proxy)==null?void 0:i.$el);const a=(l=n==null?void 0:n.proxy)==null?void 0:l.close;return n&&(n.loadingInstance=n==null?void 0:n.proxy,n.loadingInstance&&(n.loadingInstance.close=(...y)=>{g.delete(o),a==null||a(...y)})),n}};var R={title:"Loading \u52A0\u8F7D\u63D0\u793A",category:"\u53CD\u9988",status:"100%",install(e){e.directive("dLoading",k),e.config.globalProperties.$loadingService=O}};s.Loading=k,s.LoadingOptions=b,s.LoadingService=O,s.default=R,s.loadingProps=w,Object.defineProperty(s,"__esModule",{value:!0}),s[Symbol.toStringTag]="Module"});
|
package/loading/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@keyframes devui-busy-spinner-anim{0%{transform:rotate(0) scale(1)}50%{transform:rotate(
|
|
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)}
|
package/modal/index.es.js
CHANGED
|
@@ -33,7 +33,7 @@ var __publicField = (obj, key, value) => {
|
|
|
33
33
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
34
34
|
return value;
|
|
35
35
|
};
|
|
36
|
-
import { defineComponent, toRefs, createVNode, Teleport, Transition, renderSlot, isVNode,
|
|
36
|
+
import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, Teleport, Transition, renderSlot, isVNode, onMounted, watch, onUnmounted, ref, unref, nextTick, h, render } from "vue";
|
|
37
37
|
import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
|
|
38
38
|
const modalProps = {
|
|
39
39
|
modelValue: {
|
|
@@ -56,6 +56,10 @@ const modalProps = {
|
|
|
56
56
|
type: Function
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
|
+
function isUrl(value) {
|
|
60
|
+
return /^((http|https):)?\/\//.test(value);
|
|
61
|
+
}
|
|
62
|
+
const DEFAULT_PREFIX = "icon";
|
|
59
63
|
const iconProps = {
|
|
60
64
|
name: {
|
|
61
65
|
type: String,
|
|
@@ -63,43 +67,135 @@ const iconProps = {
|
|
|
63
67
|
required: true
|
|
64
68
|
},
|
|
65
69
|
size: {
|
|
66
|
-
type: String,
|
|
70
|
+
type: [Number, String],
|
|
67
71
|
default: "inherit"
|
|
68
72
|
},
|
|
69
73
|
color: {
|
|
70
74
|
type: String,
|
|
71
75
|
default: "inherit"
|
|
72
76
|
},
|
|
77
|
+
component: {
|
|
78
|
+
type: Object,
|
|
79
|
+
default: null
|
|
80
|
+
},
|
|
73
81
|
classPrefix: {
|
|
74
82
|
type: String,
|
|
75
|
-
default:
|
|
83
|
+
default: DEFAULT_PREFIX
|
|
76
84
|
}
|
|
77
85
|
};
|
|
86
|
+
const svgIconProps = {
|
|
87
|
+
name: {
|
|
88
|
+
type: String,
|
|
89
|
+
default: "",
|
|
90
|
+
required: true
|
|
91
|
+
},
|
|
92
|
+
color: {
|
|
93
|
+
type: String,
|
|
94
|
+
default: "inherit"
|
|
95
|
+
},
|
|
96
|
+
size: {
|
|
97
|
+
type: [Number, String],
|
|
98
|
+
default: "inherit"
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
function createBem(namespace, element, modifier) {
|
|
102
|
+
let cls = namespace;
|
|
103
|
+
if (element) {
|
|
104
|
+
cls += `__${element}`;
|
|
105
|
+
}
|
|
106
|
+
if (modifier) {
|
|
107
|
+
cls += `--${modifier}`;
|
|
108
|
+
}
|
|
109
|
+
return cls;
|
|
110
|
+
}
|
|
111
|
+
function useNamespace(block, needDot = false) {
|
|
112
|
+
const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
|
|
113
|
+
const b = () => createBem(namespace);
|
|
114
|
+
const e = (element) => element ? createBem(namespace, element) : "";
|
|
115
|
+
const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
|
|
116
|
+
const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
|
|
117
|
+
return {
|
|
118
|
+
b,
|
|
119
|
+
e,
|
|
120
|
+
m,
|
|
121
|
+
em
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
var icon = "";
|
|
125
|
+
var svgIcon = defineComponent({
|
|
126
|
+
name: "DSvgIcon",
|
|
127
|
+
props: svgIconProps,
|
|
128
|
+
setup(props) {
|
|
129
|
+
const {
|
|
130
|
+
name,
|
|
131
|
+
color,
|
|
132
|
+
size
|
|
133
|
+
} = toRefs(props);
|
|
134
|
+
const ns = useNamespace("svg-icon");
|
|
135
|
+
const iconName = computed(() => `#icon-${name.value}`);
|
|
136
|
+
const iconSize = computed(() => {
|
|
137
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
138
|
+
});
|
|
139
|
+
const styles = {
|
|
140
|
+
width: iconSize.value,
|
|
141
|
+
height: iconSize.value
|
|
142
|
+
};
|
|
143
|
+
return () => {
|
|
144
|
+
return createVNode("svg", {
|
|
145
|
+
"class": ns.b(),
|
|
146
|
+
"style": styles
|
|
147
|
+
}, [createVNode("use", {
|
|
148
|
+
"xlink:href": iconName.value,
|
|
149
|
+
"fill": color.value
|
|
150
|
+
}, null)]);
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
});
|
|
78
154
|
var Icon = defineComponent({
|
|
79
155
|
name: "DIcon",
|
|
80
156
|
props: iconProps,
|
|
81
|
-
setup(props
|
|
157
|
+
setup(props, {
|
|
158
|
+
attrs
|
|
159
|
+
}) {
|
|
82
160
|
const {
|
|
161
|
+
component,
|
|
83
162
|
name,
|
|
84
163
|
size,
|
|
85
164
|
color,
|
|
86
165
|
classPrefix
|
|
87
166
|
} = toRefs(props);
|
|
88
|
-
|
|
89
|
-
|
|
167
|
+
const IconComponent = component.value ? resolveDynamicComponent(component.value) : resolveDynamicComponent(svgIcon);
|
|
168
|
+
const iconSize = computed(() => {
|
|
169
|
+
return typeof size.value === "number" ? `${size.value}px` : size.value;
|
|
170
|
+
});
|
|
171
|
+
const svgIconDom = () => {
|
|
172
|
+
return createVNode(IconComponent, mergeProps({
|
|
173
|
+
"name": name.value,
|
|
174
|
+
"color": color.value,
|
|
175
|
+
"size": iconSize.value
|
|
176
|
+
}, attrs), null);
|
|
177
|
+
};
|
|
178
|
+
const imgIconDom = () => {
|
|
179
|
+
return createVNode("img", mergeProps({
|
|
90
180
|
"src": name.value,
|
|
91
181
|
"alt": name.value.split("/")[name.value.split("/").length - 1],
|
|
92
182
|
"style": {
|
|
93
|
-
width:
|
|
94
|
-
verticalAlign: "text-bottom"
|
|
183
|
+
width: iconSize.value || ""
|
|
95
184
|
}
|
|
96
|
-
},
|
|
97
|
-
|
|
185
|
+
}, attrs), null);
|
|
186
|
+
};
|
|
187
|
+
const fontIconDom = () => {
|
|
188
|
+
const fontIconClass = /^icon-/.test(name.value) ? name.value : `${classPrefix.value}-${name.value}`;
|
|
189
|
+
return createVNode("i", mergeProps({
|
|
190
|
+
"class": [classPrefix.value, fontIconClass],
|
|
98
191
|
"style": {
|
|
99
|
-
fontSize:
|
|
192
|
+
fontSize: iconSize.value,
|
|
100
193
|
color: color.value
|
|
101
194
|
}
|
|
102
|
-
}, null);
|
|
195
|
+
}, attrs), null);
|
|
196
|
+
};
|
|
197
|
+
return () => {
|
|
198
|
+
return component.value ? svgIconDom() : isUrl(name.value) ? imgIconDom() : fontIconDom();
|
|
103
199
|
};
|
|
104
200
|
}
|
|
105
201
|
});
|
|
@@ -109,13 +205,14 @@ function _isSlot(s) {
|
|
|
109
205
|
}
|
|
110
206
|
const CommonOverlay = defineComponent({
|
|
111
207
|
setup(props, ctx) {
|
|
208
|
+
const ns = useNamespace("overlay");
|
|
112
209
|
return () => {
|
|
113
210
|
let _slot;
|
|
114
211
|
return createVNode(Teleport, {
|
|
115
212
|
"to": "#d-overlay-anchor"
|
|
116
213
|
}, {
|
|
117
214
|
default: () => [createVNode(Transition, {
|
|
118
|
-
"name": "
|
|
215
|
+
"name": ns.e("fade")
|
|
119
216
|
}, _isSlot(_slot = renderSlot(ctx.slots, "default")) ? _slot : {
|
|
120
217
|
default: () => [_slot]
|
|
121
218
|
})]
|
|
@@ -158,15 +255,12 @@ const fixedOverlayProps = __spreadProps(__spreadValues({}, overlayProps), {
|
|
|
158
255
|
});
|
|
159
256
|
const overlayEmits = ["update:visible", "backdropClick"];
|
|
160
257
|
function useOverlayLogic(props, ctx) {
|
|
258
|
+
const ns = useNamespace("overlay");
|
|
161
259
|
const backgroundClass = computed(() => {
|
|
162
|
-
return [
|
|
163
|
-
"devui-overlay-background",
|
|
164
|
-
props.backgroundClass,
|
|
165
|
-
!props.hasBackdrop ? "devui-overlay-background__disabled" : "devui-overlay-background__color"
|
|
166
|
-
];
|
|
260
|
+
return [ns.e("background"), props.backgroundClass, !props.hasBackdrop ? ns.em("background", "disabled") : ns.em("background", "color")];
|
|
167
261
|
});
|
|
168
262
|
const overlayClass = computed(() => {
|
|
169
|
-
return
|
|
263
|
+
return ns.b();
|
|
170
264
|
});
|
|
171
265
|
const handleBackdropClick = (event) => {
|
|
172
266
|
var _a;
|
|
@@ -376,6 +470,7 @@ defineComponent({
|
|
|
376
470
|
emit,
|
|
377
471
|
expose
|
|
378
472
|
}) {
|
|
473
|
+
const ns = useNamespace("flexible-overlay");
|
|
379
474
|
const {
|
|
380
475
|
arrowRef,
|
|
381
476
|
overlayRef,
|
|
@@ -388,10 +483,10 @@ defineComponent({
|
|
|
388
483
|
var _a;
|
|
389
484
|
return props.modelValue && createVNode("div", mergeProps({
|
|
390
485
|
"ref": overlayRef,
|
|
391
|
-
"class":
|
|
486
|
+
"class": ns.b()
|
|
392
487
|
}, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots), props.showArrow && createVNode("div", {
|
|
393
488
|
"ref": arrowRef,
|
|
394
|
-
"class": "
|
|
489
|
+
"class": ns.e("arrow")
|
|
395
490
|
}, null)]);
|
|
396
491
|
};
|
|
397
492
|
}
|
|
@@ -413,10 +508,11 @@ var Header = defineComponent({
|
|
|
413
508
|
setup(props, {
|
|
414
509
|
slots
|
|
415
510
|
}) {
|
|
511
|
+
const ns = useNamespace("modal");
|
|
416
512
|
return () => {
|
|
417
513
|
var _a;
|
|
418
514
|
return createVNode("div", {
|
|
419
|
-
"class": "
|
|
515
|
+
"class": ns.e("header")
|
|
420
516
|
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
|
|
421
517
|
};
|
|
422
518
|
}
|
|
@@ -426,10 +522,11 @@ var Body = defineComponent({
|
|
|
426
522
|
setup(props, {
|
|
427
523
|
slots
|
|
428
524
|
}) {
|
|
525
|
+
const ns = useNamespace("modal");
|
|
429
526
|
return () => {
|
|
430
527
|
var _a;
|
|
431
528
|
return createVNode("div", {
|
|
432
|
-
"class": "
|
|
529
|
+
"class": ns.e("body")
|
|
433
530
|
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
|
|
434
531
|
};
|
|
435
532
|
}
|
|
@@ -446,6 +543,7 @@ var Modal = defineComponent({
|
|
|
446
543
|
emit,
|
|
447
544
|
expose
|
|
448
545
|
}) {
|
|
546
|
+
const ns = useNamespace("modal");
|
|
449
547
|
const {
|
|
450
548
|
modelValue,
|
|
451
549
|
lockScroll,
|
|
@@ -462,18 +560,18 @@ var Modal = defineComponent({
|
|
|
462
560
|
const fixedOverlayProps2 = {
|
|
463
561
|
visible: modelValue.value,
|
|
464
562
|
"onUpdate:visible": handleVisibleChange,
|
|
465
|
-
"background-class": "
|
|
563
|
+
"background-class": ns.e("mask"),
|
|
466
564
|
"background-block": lockScroll.value,
|
|
467
565
|
"backdrop-close": closeOnClickOverlay.value
|
|
468
566
|
};
|
|
469
567
|
return createVNode(FixedOverlay, fixedOverlayProps2, {
|
|
470
568
|
default: () => [createVNode(Transition, {
|
|
471
|
-
"name": "
|
|
569
|
+
"name": ns.m("wipe")
|
|
472
570
|
}, {
|
|
473
571
|
default: () => {
|
|
474
572
|
var _a;
|
|
475
573
|
return [createVNode("div", mergeProps({
|
|
476
|
-
"class":
|
|
574
|
+
"class": ns.b()
|
|
477
575
|
}, attrs), [createVNode(Icon, {
|
|
478
576
|
"name": "close",
|
|
479
577
|
"class": "btn-close",
|
|
@@ -498,10 +596,11 @@ var Footer = defineComponent({
|
|
|
498
596
|
setup(props, {
|
|
499
597
|
slots
|
|
500
598
|
}) {
|
|
599
|
+
const ns = useNamespace("modal");
|
|
501
600
|
return () => {
|
|
502
601
|
var _a;
|
|
503
602
|
return createVNode("div", {
|
|
504
|
-
"class": "
|
|
603
|
+
"class": ns.e("footer")
|
|
505
604
|
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
|
|
506
605
|
};
|
|
507
606
|
}
|
package/modal/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Z=Object.defineProperty,ee=Object.defineProperties;var te=Object.getOwnPropertyDescriptors;var k=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var E=(r,e,d)=>e in r?Z(r,e,{enumerable:!0,configurable:!0,writable:!0,value:d}):r[e]=d,O=(r,e)=>{for(var d in e||(e={}))j.call(e,d)&&E(r,d,e[d]);if(k)for(var d of k(e))D.call(e,d)&&E(r,d,e[d]);return r},V=(r,e)=>ee(r,te(e));var L=(r,e)=>{var d={};for(var m in r)j.call(r,m)&&e.indexOf(m)<0&&(d[m]=r[m]);if(r!=null&&k)for(var m of k(r))e.indexOf(m)<0&&D.call(r,m)&&(d[m]=r[m]);return d};var R=(r,e,d)=>(E(r,typeof e!="symbol"?e+"":e,d),d);(function(r,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):(r=typeof globalThis!="undefined"?globalThis:r||self,e(r.index={},r.Vue,r.dom))})(this,function(r,e,d){"use strict";const m={modelValue:{type:Boolean,default:!1},title:{type:String,default:""},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},beforeClose:{type:Function}},T={name:{type:String,default:"",required:!0},size:{type:String,default:"inherit"},color:{type:String,default:"inherit"},classPrefix:{type:String,default:"icon"}};var _=e.defineComponent({name:"DIcon",props:T,setup(t){const{name:o,size:n,color:i,classPrefix:l}=e.toRefs(t);return()=>/^((https?):)?\/\//.test(o.value)?e.createVNode("img",{src:o.value,alt:o.value.split("/")[o.value.split("/").length-1],style:{width:n.value,verticalAlign:"text-bottom"}},null):e.createVNode("i",{class:`${l.value} ${l.value}-${o.value}`,style:{fontSize:n.value,color:i.value}},null)}}),oe="";function z(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const F=e.defineComponent({setup(t,o){return()=>{let n;return e.createVNode(e.Teleport,{to:"#d-overlay-anchor"},{default:()=>[e.createVNode(e.Transition,{name:"devui-overlay-fade"},z(n=e.renderSlot(o.slots,"default"))?n:{default:()=>[n]})]})}}}),$=V(O({},{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}}),Y=["update:visible","backdropClick"];function q(t,o){const n=e.computed(()=>["devui-overlay-background",t.backgroundClass,t.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),i=e.computed(()=>"devui-overlay"),l=a=>{var s;a.preventDefault(),(s=t.onBackdropClick)==null||s.call(t),t.backdropClose&&o.emit("update:visible",!1)},u=a=>a.cancelBubble=!0;return e.onMounted(()=>{const a=document.body,s=a.style.overflow,c=a.style.position;e.watch([()=>t.visible,()=>t.backgroundBlock],([y,v])=>{if(v){const f=a.getBoundingClientRect().y;y?(a.style.overflowY="scroll",a.style.position=y?"fixed":"",a.style.top=`${f}px`):(a.style.overflowY=s,a.style.position=c,a.style.top="",window.scrollTo(0,-f))}}),e.onUnmounted(()=>{document.body.style.overflow=s})}),{backgroundClass:n,overlayClass:i,handleBackdropClick:l,handleOverlayBubbleCancel:u}}var le="";const H=e.defineComponent({name:"DFixedOverlay",props:$,emits:Y,setup(t,o){const{backgroundClass:n,overlayClass:i,handleBackdropClick:l,handleOverlayBubbleCancel:u}=q(t,o);return()=>e.createVNode(F,null,{default:()=>[t.visible&&e.createVNode("div",{class:n.value,style:t.backgroundStyle,onClick:l},[e.createVNode("div",{class:i.value,style:t.overlayStyle,onClick:u},[e.renderSlot(o.slots,"default")])])]})}}),I={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 U(t){const o=/(auto|scroll|hidden)/;for(let n=t;n=n.parentElement;n.parentElement!==document.body){const i=window.getComputedStyle(n);if(o.test(i.overflow+i.overflowX+i.overflowY))return n}return window}function X(t,o,n,i){let{x:l,y:u}=o;if(!t){const{width:a,height:s}=i;l&&n.includes("start")&&(l=12),l&&n.includes("end")&&(l=Math.round(a-24)),u&&n.includes("start")&&(u=10),u&&n.includes("end")&&(u=s-14)}return{x:l,y:u}}function K(t,o){const n=e.ref(),i=e.ref();let l=null;const u=(s,c,y,v)=>{const{x:f,y:p}=X(t.isArrowCenter,y,c,v.getBoundingClientRect()),h={top:"bottom",right:"left",bottom:"top",left:"right"}[c.split("-")[0]];Object.assign(s.style,{left:f?`${f}px`:"",top:p?`${p}px`:"",right:"",bottom:"",[h]:"-4px"})},a=async()=>{const s=t.origin,c=e.unref(n.value),y=e.unref(i.value),v=[d.offset(t.offset),d.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&v.push(d.arrow({element:y})),t.shiftOffset!==void 0&&v.push(d.shift());const{x:f,y:p,placement:h,middlewareData:w}=await d.computePosition(s,c,{strategy:"fixed",middleware:v});let b=f,S=p;if(t.shiftOffset!==void 0){const{x:P,y:A}=w.shift;P<0&&(b-=t.shiftOffset),P>0&&(b+=t.shiftOffset),A<0&&(S-=t.shiftOffset),A>0&&(S+=t.shiftOffset)}o("positionChange",h),Object.assign(c.style,{top:`${S}px`,left:`${b}px`}),t.showArrow&&u(y,h,w.arrow,c)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(l=U(t.origin),e.nextTick(a),l==null||l.addEventListener("scroll",a),l!==window&&window.addEventListener("scroll",a),window.addEventListener("resize",a)):(l==null||l.removeEventListener("scroll",a),l!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a))}),e.onUnmounted(()=>{l==null||l.removeEventListener("scroll",a),l!==window&&window.removeEventListener("scroll",a),window.removeEventListener("resize",a)}),{arrowRef:i,overlayRef:n,updatePosition:a}}var ae="";e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:I,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:i,expose:l}){const{arrowRef:u,overlayRef:a,updatePosition:s}=K(t,i);return l({updatePosition:s}),()=>{var c;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:a,class:"devui-flexible-overlay"},n),[(c=o.default)==null?void 0:c.call(o),t.showArrow&&e.createVNode("div",{ref:u,class:"devui-flexible-overlay-arrow"},null)])}}});const G=typeof window!="undefined";function J(t,o){function n(){o("update:modelValue",!1)}function i(l){l||(t.beforeClose?t.beforeClose(n):n())}return{handleVisibleChange:i}}var x=e.defineComponent({name:"DModalHeader",setup(t,{slots:o}){return()=>{var n;return e.createVNode("div",{class:"devui-modal-header"},[(n=o.default)==null?void 0:n.call(o)])}}}),B=e.defineComponent({name:"DModalBody",setup(t,{slots:o}){return()=>{var n;return e.createVNode("div",{class:"devui-modal-body"},[(n=o.default)==null?void 0:n.call(o)])}}}),re="",g=e.defineComponent({name:"DModal",inheritAttrs:!1,props:m,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:i,expose:l}){const{modelValue:u,lockScroll:a,closeOnClickOverlay:s,title:c}=e.toRefs(t),{handleVisibleChange:y}=J(t,i);return l({handleVisibleChange:y}),()=>{const v={visible:u.value,"onUpdate:visible":y,"background-class":"devui-modal-mask","background-block":a.value,"backdrop-close":s.value};return e.createVNode(H,v,{default:()=>[e.createVNode(e.Transition,{name:"devui-modal-wipe"},{default:()=>{var f;return[e.createVNode("div",e.mergeProps({class:"devui-modal"},n),[e.createVNode(_,{name:"close",class:"btn-close",size:"var(--devui-font-size-md,12px)",onClick:()=>y(!1)},null),o.header?o.header():c.value&&e.createVNode(x,null,{default:()=>[c.value]}),e.createVNode(B,null,{default:()=>{var p;return[(p=o.default)==null?void 0:p.call(o)]}}),(f=o.footer)==null?void 0:f.call(o)])]}})]})}}}),M=e.defineComponent({name:"DModalFooter",setup(t,{slots:o}){return()=>{var n;return e.createVNode("div",{class:"devui-modal-footer"},[(n=o.default)==null?void 0:n.call(o)])}}});class Q{constructor(o){this.anchorContainer=o}renderModal(o,n,i){const l=e.h(this.component(),n,i);return e.render(l,o),l}renderNull(o){setTimeout(()=>{e.render(null,o)},500)}}let C;class N extends Q{component(){return g}open(o={}){const n=document.createElement("div");this.anchorContainer.appendChild(n);const v=o,{header:i,content:l,footer:u}=v,a=L(v,["header","content","footer"]),s=(f,p)=>this.renderModal(n,V(O({},f),{modelValue:!0,"onUpdate:modelValue":p}),{header:i,default:l,footer:u}),c=()=>{var p,h,w;const f=b=>{b||c()};s(a,b=>{b?s(a,f):(this.renderModal(n,V(O({},a),{modelValue:!1})),this.renderNull(n))}),(w=(h=(p=C==null?void 0:C.component)==null?void 0:p.exposed)==null?void 0:h.handleVisibleChange)==null||w.call(h,!1)},y=f=>{f||c()};return this.renderModal(n,{modelValue:!1}),C=s(a,y),{hide:c}}}R(N,"token","MODAL_SERVICE_TOKEN");var W={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(t){if(t.component(g.name,g),t.component(x.name,x),t.component(B.name,B),t.component(M.name,M),!G)return;let o=document.getElementById("d-modal-anchors-container");o||(o=document.createElement("div"),o.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(o)),t.provide(N.token,new N(o))}};r.Modal=g,r.default=W,r.modalProps=m,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});
|
|
1
|
+
var le=Object.defineProperty,re=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var D=(i,e,u)=>e in i?le(i,e,{enumerable:!0,configurable:!0,writable:!0,value:u}):i[e]=u,N=(i,e)=>{for(var u in e||(e={}))$.call(e,u)&&D(i,u,e[u]);if(V)for(var u of V(e))j.call(e,u)&&D(i,u,e[u]);return i},S=(i,e)=>re(i,ae(e));var z=(i,e)=>{var u={};for(var h in i)$.call(i,h)&&e.indexOf(h)<0&&(u[h]=i[h]);if(i!=null&&V)for(var h of V(i))e.indexOf(h)<0&&j.call(i,h)&&(u[h]=i[h]);return u};var L=(i,e,u)=>(D(i,typeof e!="symbol"?e+"":e,u),u);(function(i,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):(i=typeof globalThis!="undefined"?globalThis:i||self,e(i.index={},i.Vue,i.dom))})(this,function(i,e,u){"use strict";const h={modelValue:{type:Boolean,default:!1},title:{type:String,default:""},lockScroll:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!0},beforeClose:{type:Function}};function R(t){return/^((http|https):)?\/\//.test(t)}const F={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"}},T={name:{type:String,default:"",required:!0},color:{type:String,default:"inherit"},size:{type:[Number,String],default:"inherit"}};function C(t,o,n){let l=t;return o&&(l+=`__${o}`),n&&(l+=`--${n}`),l}function b(t,o=!1){const n=o?`.devui-${t}`:`devui-${t}`;return{b:()=>C(n),e:a=>a?C(n,a):"",m:a=>a?C(n,"",a):"",em:(a,s)=>a&&s?C(n,a,s):""}}var de="",_=e.defineComponent({name:"DSvgIcon",props:T,setup(t){const{name:o,color:n,size:l}=e.toRefs(t),r=b("svg-icon"),c=e.computed(()=>`#icon-${o.value}`),d=e.computed(()=>typeof l.value=="number"?`${l.value}px`:l.value),a={width:d.value,height:d.value};return()=>e.createVNode("svg",{class:r.b(),style:a},[e.createVNode("use",{"xlink:href":c.value,fill:n.value},null)])}}),U=e.defineComponent({name:"DIcon",props:F,setup(t,{attrs:o}){const{component:n,name:l,size:r,color:c,classPrefix:d}=e.toRefs(t),a=n.value?e.resolveDynamicComponent(n.value):e.resolveDynamicComponent(_),s=e.computed(()=>typeof r.value=="number"?`${r.value}px`:r.value),y=()=>e.createVNode(a,e.mergeProps({name:l.value,color:c.value,size:s.value},o),null),f=()=>e.createVNode("img",e.mergeProps({src:l.value,alt:l.value.split("/")[l.value.split("/").length-1],style:{width:s.value||""}},o),null),p=()=>{const m=/^icon-/.test(l.value)?l.value:`${d.value}-${l.value}`;return e.createVNode("i",e.mergeProps({class:[d.value,m],style:{fontSize:s.value,color:c.value}},o),null)};return()=>n.value?y():R(l.value)?f():p()}}),se="";function q(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const X=e.defineComponent({setup(t,o){const n=b("overlay");return()=>{let l;return e.createVNode(e.Teleport,{to:"#d-overlay-anchor"},{default:()=>[e.createVNode(e.Transition,{name:n.e("fade")},q(l=e.renderSlot(o.slots,"default"))?l:{default:()=>[l]})]})}}}),Y=S(N({},{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}}),H=["update:visible","backdropClick"];function K(t,o){const n=b("overlay"),l=e.computed(()=>[n.e("background"),t.backgroundClass,t.hasBackdrop?n.em("background","color"):n.em("background","disabled")]),r=e.computed(()=>n.b()),c=a=>{var s;a.preventDefault(),(s=t.onBackdropClick)==null||s.call(t),t.backdropClose&&o.emit("update:visible",!1)},d=a=>a.cancelBubble=!0;return e.onMounted(()=>{const a=document.body,s=a.style.overflow,y=a.style.position;e.watch([()=>t.visible,()=>t.backgroundBlock],([f,p])=>{if(p){const m=a.getBoundingClientRect().y;f?(a.style.overflowY="scroll",a.style.position=f?"fixed":"",a.style.top=`${m}px`):(a.style.overflowY=s,a.style.position=y,a.style.top="",window.scrollTo(0,-m))}}),e.onUnmounted(()=>{document.body.style.overflow=s})}),{backgroundClass:l,overlayClass:r,handleBackdropClick:c,handleOverlayBubbleCancel:d}}var ue="";const G=e.defineComponent({name:"DFixedOverlay",props:Y,emits:H,setup(t,o){const{backgroundClass:n,overlayClass:l,handleBackdropClick:r,handleOverlayBubbleCancel:c}=K(t,o);return()=>e.createVNode(X,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:c},[e.renderSlot(o.slots,"default")])])]})}}),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 Q(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 W(t,o,n,l){let{x:r,y:c}=o;if(!t){const{width:d,height:a}=l;r&&n.includes("start")&&(r=12),r&&n.includes("end")&&(r=Math.round(d-24)),c&&n.includes("start")&&(c=10),c&&n.includes("end")&&(c=a-14)}return{x:r,y:c}}function Z(t,o){const n=e.ref(),l=e.ref();let r=null;const c=(a,s,y,f)=>{const{x:p,y:m}=W(t.isArrowCenter,y,s,f.getBoundingClientRect()),v={top:"bottom",right:"left",bottom:"top",left:"right"}[s.split("-")[0]];Object.assign(a.style,{left:p?`${p}px`:"",top:m?`${m}px`:"",right:"",bottom:"",[v]:"-4px"})},d=async()=>{const a=t.origin,s=e.unref(n.value),y=e.unref(l.value),f=[u.offset(t.offset),u.autoPlacement({alignment:t.align,allowedPlacements:t.position})];t.showArrow&&f.push(u.arrow({element:y})),t.shiftOffset!==void 0&&f.push(u.shift());const{x:p,y:m,placement:v,middlewareData:w}=await u.computePosition(a,s,{strategy:"fixed",middleware:f});let g=p,P=m;if(t.shiftOffset!==void 0){const{x:A,y:I}=w.shift;A<0&&(g-=t.shiftOffset),A>0&&(g+=t.shiftOffset),I<0&&(P-=t.shiftOffset),I>0&&(P+=t.shiftOffset)}o("positionChange",v),Object.assign(s.style,{top:`${P}px`,left:`${g}px`}),t.showArrow&&c(y,v,w.arrow,s)};return e.watch(()=>t.modelValue,()=>{t.modelValue&&t.origin?(r=Q(t.origin),e.nextTick(d),r==null||r.addEventListener("scroll",d),r!==window&&window.addEventListener("scroll",d),window.addEventListener("resize",d)):(r==null||r.removeEventListener("scroll",d),r!==window&&window.removeEventListener("scroll",d),window.removeEventListener("resize",d))}),e.onUnmounted(()=>{r==null||r.removeEventListener("scroll",d),r!==window&&window.removeEventListener("scroll",d),window.removeEventListener("resize",d)}),{arrowRef:l,overlayRef:n,updatePosition:d}}var fe="";e.defineComponent({name:"DFlexibleOverlay",inheritAttrs:!1,props:J,emits:["update:modelValue","positionChange"],setup(t,{slots:o,attrs:n,emit:l,expose:r}){const c=b("flexible-overlay"),{arrowRef:d,overlayRef:a,updatePosition:s}=Z(t,l);return r({updatePosition:s}),()=>{var y;return t.modelValue&&e.createVNode("div",e.mergeProps({ref:a,class:c.b()},n),[(y=o.default)==null?void 0:y.call(o),t.showArrow&&e.createVNode("div",{ref:d,class:c.e("arrow")},null)])}}});const ee=typeof window!="undefined";function te(t,o){function n(){o("update:modelValue",!1)}function l(r){r||(t.beforeClose?t.beforeClose(n):n())}return{handleVisibleChange:l}}var x=e.defineComponent({name:"DModalHeader",setup(t,{slots:o}){const n=b("modal");return()=>{var l;return e.createVNode("div",{class:n.e("header")},[(l=o.default)==null?void 0:l.call(o)])}}}),B=e.defineComponent({name:"DModalBody",setup(t,{slots:o}){const n=b("modal");return()=>{var l;return e.createVNode("div",{class:n.e("body")},[(l=o.default)==null?void 0:l.call(o)])}}}),me="",k=e.defineComponent({name:"DModal",inheritAttrs:!1,props:h,emits:["update:modelValue"],setup(t,{slots:o,attrs:n,emit:l,expose:r}){const c=b("modal"),{modelValue:d,lockScroll:a,closeOnClickOverlay:s,title:y}=e.toRefs(t),{handleVisibleChange:f}=te(t,l);return r({handleVisibleChange:f}),()=>{const p={visible:d.value,"onUpdate:visible":f,"background-class":c.e("mask"),"background-block":a.value,"backdrop-close":s.value};return e.createVNode(G,p,{default:()=>[e.createVNode(e.Transition,{name:c.m("wipe")},{default:()=>{var m;return[e.createVNode("div",e.mergeProps({class:c.b()},n),[e.createVNode(U,{name:"close",class:"btn-close",size:"var(--devui-font-size-md,12px)",onClick:()=>f(!1)},null),o.header?o.header():y.value&&e.createVNode(x,null,{default:()=>[y.value]}),e.createVNode(B,null,{default:()=>{var v;return[(v=o.default)==null?void 0:v.call(o)]}}),(m=o.footer)==null?void 0:m.call(o)])]}})]})}}}),M=e.defineComponent({name:"DModalFooter",setup(t,{slots:o}){const n=b("modal");return()=>{var l;return e.createVNode("div",{class:n.e("footer")},[(l=o.default)==null?void 0:l.call(o)])}}});class oe{constructor(o){this.anchorContainer=o}renderModal(o,n,l){const r=e.h(this.component(),n,l);return e.render(r,o),r}renderNull(o){setTimeout(()=>{e.render(null,o)},500)}}let O;class E extends oe{component(){return k}open(o={}){const n=document.createElement("div");this.anchorContainer.appendChild(n);const f=o,{header:l,content:r,footer:c}=f,d=z(f,["header","content","footer"]),a=(p,m)=>this.renderModal(n,S(N({},p),{modelValue:!0,"onUpdate:modelValue":m}),{header:l,default:r,footer:c}),s=()=>{var m,v,w;const p=g=>{g||s()};a(d,g=>{g?a(d,p):(this.renderModal(n,S(N({},d),{modelValue:!1})),this.renderNull(n))}),(w=(v=(m=O==null?void 0:O.component)==null?void 0:m.exposed)==null?void 0:v.handleVisibleChange)==null||w.call(v,!1)},y=p=>{p||s()};return this.renderModal(n,{modelValue:!1}),O=a(d,y),{hide:s}}}L(E,"token","MODAL_SERVICE_TOKEN");var ne={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(t){if(t.component(k.name,k),t.component(x.name,x),t.component(B.name,B),t.component(M.name,M),!ee)return;let o=document.getElementById("d-modal-anchors-container");o||(o=document.createElement("div"),o.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(o)),t.provide(E.token,new E(o))}};i.Modal=k,i.default=ne,i.modalProps=h,Object.defineProperty(i,"__esModule",{value:!0}),i[Symbol.toStringTag]="Module"});
|
package/modal/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@keyframes d-overlay-fade{0%{opacity:0}to{opacity:1}}.devui-
|
|
1
|
+
.devui-svg-icon{vertical-align:middle}@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-modal__mask{justify-content:center;align-items:center;background-color:var(--devui-shadow, rgba(37, 43, 58, .2))}.devui-modal{position:relative;width:300px;border-radius:var(--devui-border-radius, 2px);border:none;background-color:var(--devui-fullscreen-overlay-bg, #ffffff);background-clip:padding-box;outline:0;box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}.devui-modal .btn-close{position:absolute;right:16px;top:16px;width:20px;height:20px;line-height:20px;text-align:center;color:#000;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.devui-modal .btn-close:hover{color:var(--devui-icon-fill-active-hover, #526ecc);background-color:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-modal-content{background:var(--devui-fullscreen-overlay-bg, #ffffff);border-radius:var(--devui-border-radius, 2px)}.devui-modal__header{width:100%;height:56px;padding:32px 32px 0;font-size:var(--devui-font-size-card-title, 14px);font-weight:700;box-sizing:border-box;border:none;user-select:none}.devui-modal__header .header-alert-icon{display:inline-block;vertical-align:middle;margin-right:8px;line-height:16px;text-align:center}.devui-modal__body{padding:20px 32px;font-size:var(--devui-font-size, 12px);color:var(--devui-text-weak, #575d6c);box-sizing:border-box}.devui-modal__footer{width:100%;border-top:none;text-align:center;padding:0 32px 24px;box-sizing:border-box}.devui-modal__footer>*{margin:0 4px}@keyframes wipe-in-out{0%{opacity:.2;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}.devui-modal--wipe-enter-from{opacity:.2}.devui-modal--wipe-enter-active{animation-name:wipe-in-out;animation-duration:.3s}.devui-modal--wipe-leave-to{opacity:1}.devui-modal--wipe-leave-active{animation-name:wipe-in-out;animation-duration:.3s;animation-direction:reverse}
|