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.
Files changed (168) hide show
  1. package/README.md +5 -0
  2. package/alert/index.es.js +37 -11
  3. package/alert/index.umd.js +1 -1
  4. package/alert/style.css +1 -1
  5. package/auto-complete/index.es.js +311 -77
  6. package/auto-complete/index.umd.js +3 -5
  7. package/auto-complete/style.css +1 -1
  8. package/avatar/index.es.js +81 -70
  9. package/avatar/index.umd.js +1 -1
  10. package/avatar/style.css +1 -1
  11. package/badge/index.es.js +29 -4
  12. package/badge/index.umd.js +1 -1
  13. package/badge/style.css +1 -1
  14. package/button/index.es.js +5632 -87
  15. package/button/index.umd.js +27 -1
  16. package/button/style.css +1 -1
  17. package/card/index.es.js +56 -29
  18. package/card/index.umd.js +1 -1
  19. package/card/style.css +1 -1
  20. package/checkbox/index.es.js +364 -234
  21. package/checkbox/index.umd.js +1 -1
  22. package/checkbox/style.css +1 -1
  23. package/date-picker/index.es.js +310 -157
  24. package/date-picker/index.umd.js +1 -1
  25. package/date-picker/style.css +1 -1
  26. package/drawer/index.es.js +28 -3
  27. package/drawer/index.umd.js +1 -1
  28. package/drawer/style.css +1 -1
  29. package/dropdown/index.es.js +125 -45
  30. package/dropdown/index.umd.js +1 -1
  31. package/dropdown/style.css +1 -1
  32. package/editable-select/index.es.js +437 -22
  33. package/editable-select/index.umd.js +1 -1
  34. package/editable-select/style.css +1 -1
  35. package/form/index.es.js +490 -605
  36. package/form/index.umd.js +15 -15
  37. package/form/style.css +1 -1
  38. package/fullscreen/index.es.js +29 -5
  39. package/fullscreen/index.umd.js +1 -1
  40. package/fullscreen/style.css +1 -1
  41. package/grid/index.es.js +71 -50
  42. package/grid/index.umd.js +1 -1
  43. package/grid/style.css +1 -1
  44. package/icon/index.es.js +109 -13
  45. package/icon/index.umd.js +1 -1
  46. package/icon/style.css +1 -0
  47. package/image-preview/index.es.js +34 -11
  48. package/image-preview/index.umd.js +1 -1
  49. package/image-preview/style.css +1 -1
  50. package/input/index.es.js +330 -130
  51. package/input/index.umd.js +1 -1
  52. package/input/style.css +1 -1
  53. package/input-number/index.es.js +272 -199
  54. package/input-number/index.umd.js +1 -1
  55. package/input-number/style.css +1 -1
  56. package/layout/index.es.js +34 -6
  57. package/layout/index.umd.js +1 -1
  58. package/layout/style.css +1 -1
  59. package/loading/index.es.js +34 -10
  60. package/loading/index.umd.js +1 -1
  61. package/loading/style.css +1 -1
  62. package/modal/index.es.js +126 -27
  63. package/modal/index.umd.js +1 -1
  64. package/modal/style.css +1 -1
  65. package/notification/index.es.js +125 -25
  66. package/notification/index.umd.js +1 -1
  67. package/notification/style.css +1 -1
  68. package/nuxt/components/ButtonGroup.js +3 -0
  69. package/nuxt/components/CheckboxButton.js +3 -0
  70. package/nuxt/components/CheckboxGroup.js +3 -0
  71. package/nuxt/components/FORM_ITEM_TOKEN.js +3 -0
  72. package/nuxt/components/FORM_TOKEN.js +3 -0
  73. package/nuxt/components/Icon.js +1 -0
  74. package/nuxt/components/LABEL_DATA.js +3 -0
  75. package/nuxt/components/Option.js +3 -0
  76. package/nuxt/components/buttonGroupInjectionKey.js +3 -0
  77. package/nuxt/components/buttonGroupProps.js +3 -0
  78. package/nuxt/components/formControlProps.js +3 -0
  79. package/nuxt/components/formItemProps.js +3 -0
  80. package/nuxt/components/formProps.js +3 -0
  81. package/nuxt/components/iconProps.js +1 -0
  82. package/nuxt/components/svgIconProps.js +3 -0
  83. package/overlay/index.es.js +31 -9
  84. package/overlay/index.umd.js +1 -1
  85. package/overlay/style.css +1 -1
  86. package/package.json +2 -1
  87. package/pagination/index.es.js +135 -124
  88. package/pagination/index.umd.js +1 -1
  89. package/pagination/style.css +1 -1
  90. package/popover/index.es.js +198 -83
  91. package/popover/index.umd.js +16 -16
  92. package/popover/style.css +1 -1
  93. package/progress/index.es.js +76 -20
  94. package/progress/index.umd.js +3 -3
  95. package/progress/style.css +1 -1
  96. package/radio/index.es.js +161 -140
  97. package/radio/index.umd.js +1 -1
  98. package/radio/style.css +1 -1
  99. package/rate/index.es.js +48 -16
  100. package/rate/index.umd.js +1 -1
  101. package/rate/style.css +1 -1
  102. package/result/index.es.js +108 -12
  103. package/result/index.umd.js +1 -1
  104. package/result/style.css +1 -1
  105. package/search/index.es.js +379 -167
  106. package/search/index.umd.js +17 -17
  107. package/search/style.css +1 -1
  108. package/select/index.es.js +7339 -556
  109. package/select/index.umd.js +27 -1
  110. package/select/style.css +1 -1
  111. package/skeleton/index.es.js +37 -12
  112. package/skeleton/index.umd.js +1 -1
  113. package/skeleton/style.css +1 -1
  114. package/slider/index.es.js +34 -10
  115. package/slider/index.umd.js +1 -1
  116. package/slider/style.css +1 -1
  117. package/splitter/index.es.js +201 -84
  118. package/splitter/index.umd.js +14 -14
  119. package/splitter/style.css +1 -1
  120. package/status/index.es.js +26 -2
  121. package/status/index.umd.js +1 -1
  122. package/status/style.css +1 -1
  123. package/style.css +1 -1
  124. package/switch/index.es.js +30 -6
  125. package/switch/index.umd.js +1 -1
  126. package/switch/style.css +1 -1
  127. package/table/index.es.js +6808 -585
  128. package/table/index.umd.js +27 -1
  129. package/table/style.css +1 -1
  130. package/tabs/index.es.js +136 -70
  131. package/tabs/index.umd.js +1 -1
  132. package/tabs/style.css +1 -1
  133. package/tag/index.es.js +31 -7
  134. package/tag/index.umd.js +1 -1
  135. package/tag/style.css +1 -1
  136. package/textarea/index.es.js +5631 -80
  137. package/textarea/index.umd.js +35 -1
  138. package/textarea/style.css +1 -1
  139. package/timeline/index.es.js +108 -12
  140. package/timeline/index.umd.js +1 -1
  141. package/timeline/style.css +1 -1
  142. package/tooltip/index.es.js +190 -74
  143. package/tooltip/index.umd.js +17 -17
  144. package/tooltip/style.css +1 -1
  145. package/tree/index.es.js +376 -256
  146. package/tree/index.umd.js +1 -1
  147. package/tree/style.css +1 -1
  148. package/upload/index.es.js +138 -34
  149. package/upload/index.umd.js +1 -1
  150. package/upload/style.css +1 -1
  151. package/vue-devui.es.js +6770 -5769
  152. package/vue-devui.umd.js +27 -21
  153. package/comment/index.d.ts +0 -7
  154. package/comment/index.es.js +0 -84
  155. package/comment/index.umd.js +0 -1
  156. package/comment/package.json +0 -7
  157. package/comment/style.css +0 -1
  158. package/nuxt/components/Comment.js +0 -3
  159. package/nuxt/components/FormControl.js +0 -3
  160. package/nuxt/components/FormLabel.js +0 -3
  161. package/nuxt/components/ReadTip.js +0 -3
  162. package/nuxt/components/commentProps.js +0 -3
  163. package/nuxt/components/readTipProps.js +0 -3
  164. package/read-tip/index.d.ts +0 -7
  165. package/read-tip/index.es.js +0 -261
  166. package/read-tip/index.umd.js +0 -1
  167. package/read-tip/package.json +0 -7
  168. package/read-tip/style.css +0 -1
@@ -1 +1 @@
1
- (function(d,n){typeof exports=="object"&&typeof module!="undefined"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(d=typeof globalThis!="undefined"?globalThis:d||self,n(d.index={},d.Vue))})(this,function(d,n){"use strict";var y="",i=n.defineComponent({name:"DLayout",emits:[],setup(a,{slots:e}){return()=>{var c;const t=(c=e.default)==null?void 0:c.call(e),p=`${t.some(v=>v.name==="DAside")?"devui-layout-aside ":""}devui-layout`;return n.createVNode("div",{class:p},[t])}}}),C="",o=n.defineComponent({name:"DContent",setup(a,{slots:e}){return()=>{var t;return n.createVNode("div",{class:"devui-content"},[(t=e.default)==null?void 0:t.call(e)])}}}),D="",r=n.defineComponent({name:"DHeader",setup(a,{slots:e}){return()=>{var t;return n.createVNode("div",{class:"devui-header"},[(t=e.default)==null?void 0:t.call(e)])}}}),A="",u=n.defineComponent({name:"DFooter",setup(a,{slots:e}){return()=>{var t;return n.createVNode("div",{class:"devui-footer"},[(t=e.default)==null?void 0:t.call(e)])}}}),m=n.defineComponent({name:"DAside",setup(a,{slots:e}){return()=>{var t;return n.createVNode("div",{class:"devui-aside"},[(t=e.default)==null?void 0:t.call(e)])}}}),f={title:"Layout \u5E03\u5C40",category:"\u5E03\u5C40",status:"100%",install(a){a.component(i.name,i),a.component(o.name,o),a.component(r.name,r),a.component(u.name,u),a.component(m.name,m)}};d.Aside=m,d.Content=o,d.Footer=u,d.Header=r,d.Layout=i,d.default=f,Object.defineProperty(d,"__esModule",{value:!0}),d[Symbol.toStringTag]="Module"});
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-layout-aside{flex-direction:row}.devui-content{flex:auto;min-height:0}.devui-header{min-height:40px;flex:auto}.devui-footer{text-align:center;line-height:1.5}
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}
@@ -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": ["devui-loading-contanier", isFull ? "devui-loading--full" : ""]
118
+ "class": [ns.b(), isFull ? ns.m("full") : ""]
95
119
  }, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
96
- "class": "devui-loading-wrapper"
120
+ "class": ns.e("wrapper")
97
121
  }, [backdrop ? createVNode("div", {
98
- "class": "devui-loading-mask"
122
+ "class": ns.e("mask")
99
123
  }, null) : null, createVNode("div", {
100
124
  "style": style,
101
- "class": "devui-loading-area"
125
+ "class": ns.e("area")
102
126
  }, [createVNode("div", {
103
- "class": "devui-busy-default-spinner"
127
+ "class": ns.e("busy-default-spinner")
104
128
  }, [createVNode("div", {
105
- "class": "devui-loading-bar1"
129
+ "class": ns.e("bar1")
106
130
  }, null), createVNode("div", {
107
- "class": "devui-loading-bar2"
131
+ "class": ns.e("bar2")
108
132
  }, null), createVNode("div", {
109
- "class": "devui-loading-bar3"
133
+ "class": ns.e("bar3")
110
134
  }, null), createVNode("div", {
111
- "class": "devui-loading-bar4"
135
+ "class": ns.e("bar4")
112
136
  }, null)]), message ? createVNode("span", {
113
- "class": "devui-loading-text"
137
+ "class": ns.e("text")
114
138
  }, [message]) : null])])]);
115
139
  }
116
140
  });
@@ -1 +1 @@
1
- var _=Object.defineProperty,D=Object.defineProperties;var B=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable;var y=(r,t,s)=>t in r?_(r,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[t]=s,c=(r,t)=>{for(var s in t||(t={}))F.call(t,s)&&y(r,s,t[s]);if(P)for(var s of P(t))I.call(t,s)&&y(r,s,t[s]);return r},O=(r,t)=>D(r,B(t));var l=(r,t,s)=>(y(r,typeof t!="symbol"?t+"":t,s),s);(function(r,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(r=typeof globalThis!="undefined"?globalThis:r||self,t(r.index={},r.Vue))})(this,function(r,t){"use strict";class s{constructor(){l(this,"top","50%");l(this,"left","50%")}}const v={message:String,backdrop:Boolean,view:{type:Object,default:()=>new s},zIndex:Number,isFull:{type:Boolean,default:!1}};class g{constructor(){l(this,"target");l(this,"message");l(this,"loadingTemplateRef");l(this,"backdrop",!0);l(this,"positionType","relative");l(this,"view",new s);l(this,"zIndex")}}var $="",b=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:v,setup(e){const n={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(n.background="none");const i=t.ref(!1);return{style:n,isShow:i,open:()=>{i.value=!0},close:()=>{i.value=!1}}},render(){var u;const{isShow:e,isFull:n,backdrop:i,style:o,message:a,$slots:d}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((u=d.default)==null?void 0:u.call(d))||t.createVNode("div",{class:"devui-loading-wrapper"},[i?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:o,class:"devui-loading-area"},[t.createVNode("div",{class:"devui-busy-default-spinner"},[t.createVNode("div",{class:"devui-loading-bar1"},null),t.createVNode("div",{class:"devui-loading-bar2"},null),t.createVNode("div",{class:"devui-loading-bar3"},null),t.createVNode("div",{class:"devui-loading-bar4"},null)]),a?t.createVNode("span",{class:"devui-loading-text"},[a]):null])])])}});const h=Symbol("dev_component_container");function w(e,n,i=null){const o=t.h(e,c({},n),i),a=document.createElement("div");return o[h]=a,t.render(o,a),o.component}function C(e){t.render(null,e==null?void 0:e.vnode[h])}const j=t.defineComponent(b),p=new WeakSet,m=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},T=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),z=e=>{switch(T(e)){case"promise":return[e];case"array":return e.some(i=>T(i)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},N=e=>{p.delete(e),e.instance.proxy.close(),C(e.instance)},A=(e,n)=>{var i,o,a;if(n.value){const d=z(n.value);if(d==="error")return;(a=(o=(i=e==null?void 0:e.instance)==null?void 0:i.proxy)==null?void 0:o.open)==null||a.call(o),e.appendChild(e.mask),p.add(e),d&&Promise.all(d).catch(u=>{console.error(new Error("Promise handling errors"),u)}).finally(()=>{N(e)})}else N(e)},x=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},S=(e,n)=>{var d;const i=c(c({},new g),n),o=i.loadingTemplateRef,a=w(j,c({},i),o?()=>o:null);e.style.position=i.positionType,e.options=i,e.instance=a,e.mask=(d=a==null?void 0:a.proxy)==null?void 0:d.$el},V={mounted:function(e,n,i){S(e,i.props),x(e),!m(n.value)&&A(e,n)},updated:function(e,n,i){!m(n.value)&&p.has(e)||m(n.value)&&!p.has(e)||(!p.has(e)&&S(e,i.props),x(e),A(e,n))}},E=t.defineComponent(b),f=new WeakMap,k={open(e={}){var d,u,L;const n=e.target||document.body;if(f.has(n))return f.get(n);n.style&&(n.style.position=e.positionType);const i=document.body===n;e=c(c({},new g),e);const o=w(E,O(c({},e),{isFull:i}),e.loadingTemplateRef?()=>e.loadingTemplateRef:null);f.set(n,o),(d=o==null?void 0:o.proxy)==null||d.open(),n.appendChild((u=o==null?void 0:o.proxy)==null?void 0:u.$el);const a=(L=o==null?void 0:o.proxy)==null?void 0:L.close;return o&&(o.loadingInstance=o==null?void 0:o.proxy,o.loadingInstance&&(o.loadingInstance.close=(...R)=>{f.delete(n),a==null||a(...R)})),o}};var M={title:"Loading \u52A0\u8F7D\u63D0\u793A",category:"\u53CD\u9988",status:"100%",install(e){e.directive("dLoading",V),e.config.globalProperties.$loadingService=k}};r.Loading=V,r.LoadingOptions=g,r.LoadingService=k,r.default=M,r.loadingProps=v,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});
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(135deg) scale(1.5)}to{transform:rotate(270deg) 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-busy-default-spinner{position:relative;display:inline-block;width:15px;height:15px;animation:devui-busy-spinner-anim 1s linear infinite}.devui-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:6px;height:6px;border-radius:50%}.devui-busy-default-spinner .devui-loading-bar1{top:0;left:0;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-busy-default-spinner .devui-loading-bar2{top:0;left:9px;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar3{top:9px;left:0;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar4{top:9px;left:9px;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}
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, computed, onMounted, watch, onUnmounted, ref, unref, nextTick, mergeProps, h, render } from "vue";
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: "icon"
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
- return () => {
89
- return /^((https?):)?\/\//.test(name.value) ? createVNode("img", {
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: size.value,
94
- verticalAlign: "text-bottom"
183
+ width: iconSize.value || ""
95
184
  }
96
- }, null) : createVNode("i", {
97
- "class": `${classPrefix.value} ${classPrefix.value}-${name.value}`,
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: size.value,
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": "devui-overlay-fade"
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 "devui-overlay";
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": "devui-flexible-overlay"
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": "devui-flexible-overlay-arrow"
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": "devui-modal-header"
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": "devui-modal-body"
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": "devui-modal-mask",
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": "devui-modal-wipe"
569
+ "name": ns.m("wipe")
472
570
  }, {
473
571
  default: () => {
474
572
  var _a;
475
573
  return [createVNode("div", mergeProps({
476
- "class": "devui-modal"
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": "devui-modal-footer"
603
+ "class": ns.e("footer")
505
604
  }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
506
605
  };
507
606
  }
@@ -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-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(0, 0, 0, .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(0, 0, 0, .2))}.devui-modal{position:relative;width:300px;background-color:var(--devui-global-bg-normal, #ffffff)}.devui-modal .btn-close{position:absolute;right:20px;top:20px;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}
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}