vue-devui 1.0.0-beta.2 → 1.0.0-beta.6

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 (157) hide show
  1. package/accordion/index.d.ts +7 -0
  2. package/accordion/index.es.js +186 -139
  3. package/accordion/index.umd.js +1 -1
  4. package/accordion/style.css +1 -1
  5. package/alert/index.d.ts +7 -0
  6. package/anchor/index.d.ts +7 -0
  7. package/avatar/index.d.ts +7 -0
  8. package/back-top/index.d.ts +7 -0
  9. package/back-top/index.es.js +72 -0
  10. package/back-top/index.umd.js +1 -0
  11. package/back-top/package.json +7 -0
  12. package/back-top/style.css +1 -0
  13. package/badge/index.d.ts +7 -0
  14. package/breadcrumb/index.d.ts +7 -0
  15. package/button/index.d.ts +7 -0
  16. package/card/index.d.ts +7 -0
  17. package/carousel/index.d.ts +7 -0
  18. package/cascader/index.d.ts +7 -0
  19. package/cascader/index.es.js +1239 -83
  20. package/cascader/index.umd.js +1 -1
  21. package/cascader/style.css +1 -1
  22. package/checkbox/index.d.ts +7 -0
  23. package/checkbox/index.es.js +42 -7
  24. package/checkbox/index.umd.js +1 -1
  25. package/date-picker/index.d.ts +7 -0
  26. package/date-picker/index.es.js +4 -3
  27. package/date-picker/index.umd.js +1 -1
  28. package/date-picker/style.css +1 -1
  29. package/dragdrop/index.d.ts +7 -0
  30. package/dragdrop/index.es.js +32 -0
  31. package/dragdrop/index.umd.js +1 -0
  32. package/dragdrop/package.json +7 -0
  33. package/drawer/index.d.ts +7 -0
  34. package/drawer/index.es.js +112 -45
  35. package/drawer/index.umd.js +1 -1
  36. package/drawer/style.css +1 -1
  37. package/dropdown/index.d.ts +7 -0
  38. package/dropdown/index.es.js +528 -0
  39. package/dropdown/index.umd.js +1 -0
  40. package/dropdown/package.json +7 -0
  41. package/dropdown/style.css +1 -0
  42. package/editable-select/index.d.ts +7 -0
  43. package/editable-select/index.es.js +5646 -432
  44. package/editable-select/index.umd.js +27 -1
  45. package/editable-select/style.css +1 -1
  46. package/form/index.d.ts +7 -0
  47. package/form/index.es.js +427 -5554
  48. package/form/index.umd.js +1 -27
  49. package/form/style.css +1 -1
  50. package/fullscreen/index.d.ts +7 -0
  51. package/gantt/index.d.ts +7 -0
  52. package/gantt/index.es.js +535 -0
  53. package/gantt/index.umd.js +1 -0
  54. package/gantt/package.json +7 -0
  55. package/gantt/style.css +1 -0
  56. package/grid/index.d.ts +7 -0
  57. package/grid/index.es.js +269 -0
  58. package/grid/index.umd.js +1 -0
  59. package/grid/package.json +7 -0
  60. package/grid/style.css +1 -0
  61. package/icon/index.d.ts +7 -0
  62. package/image-preview/index.d.ts +7 -0
  63. package/image-preview/index.es.js +22 -1
  64. package/image-preview/index.umd.js +1 -1
  65. package/index.d.ts +7 -0
  66. package/input/index.d.ts +7 -0
  67. package/input/index.es.js +4 -3
  68. package/input/index.umd.js +1 -1
  69. package/input-number/index.d.ts +7 -0
  70. package/layout/index.d.ts +7 -0
  71. package/loading/index.d.ts +7 -0
  72. package/modal/index.d.ts +7 -0
  73. package/modal/index.es.js +100 -82
  74. package/modal/index.umd.js +1 -1
  75. package/modal/style.css +1 -1
  76. package/nav-sprite/index.d.ts +7 -0
  77. package/overlay/index.d.ts +7 -0
  78. package/overlay/index.es.js +100 -82
  79. package/overlay/index.umd.js +1 -1
  80. package/overlay/style.css +1 -1
  81. package/package.json +5 -4
  82. package/pagination/index.d.ts +7 -0
  83. package/panel/index.d.ts +7 -0
  84. package/popover/index.d.ts +7 -0
  85. package/progress/index.d.ts +7 -0
  86. package/quadrant-diagram/index.d.ts +7 -0
  87. package/radio/index.d.ts +7 -0
  88. package/rate/index.d.ts +7 -0
  89. package/read-tip/index.d.ts +7 -0
  90. package/read-tip/index.es.js +244 -0
  91. package/read-tip/index.umd.js +1 -0
  92. package/read-tip/package.json +7 -0
  93. package/read-tip/style.css +1 -0
  94. package/ripple/index.d.ts +7 -0
  95. package/search/index.d.ts +7 -0
  96. package/search/index.es.js +4 -3
  97. package/search/index.umd.js +1 -1
  98. package/select/index.d.ts +7 -0
  99. package/select/index.es.js +42 -7
  100. package/select/index.umd.js +1 -1
  101. package/skeleton/index.d.ts +7 -0
  102. package/skeleton/index.es.js +147 -25
  103. package/skeleton/index.umd.js +1 -1
  104. package/skeleton/style.css +1 -1
  105. package/slider/index.d.ts +7 -0
  106. package/slider/index.es.js +8 -6
  107. package/slider/index.umd.js +1 -1
  108. package/splitter/index.d.ts +7 -0
  109. package/status/index.d.ts +7 -0
  110. package/steps-guide/index.d.ts +7 -0
  111. package/steps-guide/index.es.js +5 -2
  112. package/steps-guide/index.umd.js +1 -1
  113. package/steps-guide/style.css +1 -1
  114. package/sticky/index.d.ts +7 -0
  115. package/style.css +1 -1
  116. package/switch/index.d.ts +7 -0
  117. package/table/index.d.ts +7 -0
  118. package/tabs/index.d.ts +7 -0
  119. package/tabs/index.es.js +1 -0
  120. package/tabs/index.umd.js +1 -1
  121. package/tag/index.d.ts +7 -0
  122. package/tag/index.es.js +49 -0
  123. package/tag/index.umd.js +1 -0
  124. package/tag/package.json +7 -0
  125. package/tag/style.css +1 -0
  126. package/tag-input/index.d.ts +7 -0
  127. package/textarea/index.d.ts +7 -0
  128. package/textarea/index.es.js +132 -0
  129. package/textarea/index.umd.js +1 -0
  130. package/textarea/package.json +7 -0
  131. package/textarea/style.css +1 -0
  132. package/time-axis/index.d.ts +7 -0
  133. package/time-axis/index.es.js +238 -21
  134. package/time-axis/index.umd.js +1 -1
  135. package/time-axis/style.css +1 -1
  136. package/time-picker/index.d.ts +7 -0
  137. package/time-picker/index.es.js +42 -19
  138. package/time-picker/index.umd.js +1 -1
  139. package/time-picker/style.css +1 -1
  140. package/toast/index.d.ts +7 -0
  141. package/toast/style.css +1 -1
  142. package/tooltip/index.d.ts +7 -0
  143. package/transfer/index.d.ts +7 -0
  144. package/transfer/index.es.js +46 -10
  145. package/transfer/index.umd.js +1 -1
  146. package/transfer/style.css +1 -1
  147. package/tree/index.d.ts +7 -0
  148. package/tree/index.es.js +11 -4
  149. package/tree/index.umd.js +1 -1
  150. package/tree-select/index.d.ts +7 -0
  151. package/tree-select/index.es.js +435 -110
  152. package/tree-select/index.umd.js +1 -1
  153. package/tree-select/style.css +1 -1
  154. package/upload/index.d.ts +7 -0
  155. package/upload/style.css +1 -1
  156. package/vue-devui.es.js +16759 -14226
  157. package/vue-devui.umd.js +16 -16
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, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, watch, onUnmounted, withDirectives, vShow, ref, reactive, getCurrentInstance, nextTick, toRef, onBeforeUnmount, isRef, h, render, readonly, Fragment, mergeProps } from "vue";
36
+ import { defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, watch, onUnmounted, withDirectives, vShow, ref, reactive, toRef, isRef, h, render, readonly, Fragment, mergeProps } from "vue";
37
37
  const modalProps = {
38
38
  width: {
39
39
  type: String,
@@ -135,11 +135,40 @@ const overlayProps = {
135
135
  backdropClose: {
136
136
  type: Boolean,
137
137
  default: true
138
+ },
139
+ hasBackdrop: {
140
+ type: Boolean,
141
+ default: true
138
142
  }
139
143
  };
144
+ const fixedOverlayProps = __spreadProps(__spreadValues({}, overlayProps), {
145
+ overlayStyle: {
146
+ type: [String, Object],
147
+ default: void 0
148
+ }
149
+ });
150
+ const flexibleOverlayProps = __spreadValues({
151
+ origin: {
152
+ type: Object,
153
+ require: true
154
+ },
155
+ position: {
156
+ type: Object,
157
+ default: () => ({
158
+ originX: "left",
159
+ originY: "top",
160
+ overlayX: "left",
161
+ overlayY: "top"
162
+ })
163
+ }
164
+ }, overlayProps);
140
165
  function useOverlayLogic(props) {
141
166
  const backgroundClass = computed(() => {
142
- return ["devui-overlay-background", "devui-overlay-background__color", props.backgroundClass];
167
+ return [
168
+ "devui-overlay-background",
169
+ props.backgroundClass,
170
+ !props.hasBackdrop ? "devui-overlay-background__disabled" : "devui-overlay-background__color"
171
+ ];
143
172
  });
144
173
  const overlayClass = computed(() => {
145
174
  return "devui-overlay";
@@ -185,12 +214,7 @@ function useOverlayLogic(props) {
185
214
  }
186
215
  const FixedOverlay = defineComponent({
187
216
  name: "DFixedOverlay",
188
- props: __spreadProps(__spreadValues({}, overlayProps), {
189
- overlayStyle: {
190
- type: Object,
191
- default: void 0
192
- }
193
- }),
217
+ props: fixedOverlayProps,
194
218
  setup(props, ctx) {
195
219
  const {
196
220
  backgroundClass,
@@ -211,76 +235,61 @@ const FixedOverlay = defineComponent({
211
235
  });
212
236
  }
213
237
  });
238
+ function isComponent(target) {
239
+ return !!(target == null ? void 0 : target.$el);
240
+ }
241
+ function getElement(element) {
242
+ if (element instanceof Element) {
243
+ return element;
244
+ }
245
+ if (element && typeof element === "object" && element.$el instanceof Element) {
246
+ return element.$el;
247
+ }
248
+ return null;
249
+ }
214
250
  const FlexibleOverlay = defineComponent({
215
251
  name: "DFlexibleOverlay",
216
- props: __spreadValues({
217
- origin: {
218
- type: Object,
219
- require: true
220
- },
221
- position: {
222
- type: Object,
223
- default: () => ({
224
- originX: "left",
225
- originY: "top",
226
- overlayX: "left",
227
- overlayY: "top"
228
- })
229
- }
230
- }, overlayProps),
252
+ props: flexibleOverlayProps,
231
253
  emits: ["onUpdate:visible"],
232
254
  setup(props, ctx) {
233
255
  const overlayRef = ref(null);
234
256
  const positionedStyle = reactive({
235
257
  position: "absolute"
236
258
  });
237
- const instance = getCurrentInstance();
238
259
  onMounted(async () => {
239
- await nextTick();
240
- const overlay2 = overlayRef.value;
241
- if (!overlay2) {
242
- return;
243
- }
244
- const origin = getOrigin(props.origin);
245
- if (!origin) {
246
- return;
247
- }
248
- const handleRectChange = (rect) => {
249
- const point = calculatePosition(props.position, rect, origin);
260
+ const handleRectChange = (position, rect, origin) => {
261
+ const point = calculatePosition(position, rect, origin);
250
262
  positionedStyle.left = `${point.x}px`;
251
263
  positionedStyle.top = `${point.y}px`;
252
264
  };
253
- const handleChange = () => handleRectChange(overlay2.getBoundingClientRect());
254
- watch(toRef(props, "visible"), (visible, ov, onInvalidate) => {
255
- if (visible) {
256
- subscribeLayoutEvent(handleChange);
257
- } else {
258
- unsbscribeLayoutEvent(handleChange);
265
+ const locationElements = computed(() => {
266
+ const overlay2 = overlayRef.value;
267
+ const origin = getOrigin(props.origin);
268
+ if (!overlay2 || !origin) {
269
+ return;
259
270
  }
271
+ return {
272
+ origin,
273
+ overlay: overlay2
274
+ };
275
+ });
276
+ const visibleRef = toRef(props, "visible");
277
+ const positionRef = toRef(props, "position");
278
+ watch([locationElements, visibleRef, positionRef], async ([locationElements2, visible, position], ov, onInvalidate) => {
279
+ if (!visible || !locationElements2) {
280
+ return;
281
+ }
282
+ const {
283
+ origin,
284
+ overlay: overlay2
285
+ } = locationElements2;
286
+ handleRectChange(position, overlay2.getBoundingClientRect(), origin);
287
+ const unsubscriptions = [subscribeLayoutEvent(() => handleRectChange(position, overlay2.getBoundingClientRect(), origin)), subscribeOverlayResize(overlay2, (entries) => handleRectChange(position, entries[0].contentRect, origin)), subscribeOriginResize(origin, () => handleRectChange(position, overlay2.getBoundingClientRect(), origin))];
260
288
  onInvalidate(() => {
261
- unsbscribeLayoutEvent(handleChange);
289
+ unsubscriptions.forEach((fn) => fn());
262
290
  });
263
291
  });
264
- watch(toRef(props, "position"), () => {
265
- handleChange();
266
- });
267
- const resizeObserver = new ResizeObserver((entries) => {
268
- handleRectChange(entries[0].contentRect);
269
- });
270
- resizeObserver.observe(overlay2);
271
- onBeforeUnmount(() => {
272
- resizeObserver.disconnect();
273
- }, instance);
274
- if (origin instanceof Element) {
275
- const observer = new MutationObserver(handleChange);
276
- observer.observe(origin, {
277
- attributeFilter: ["style"]
278
- });
279
- onBeforeUnmount(() => {
280
- observer.disconnect();
281
- }, instance);
282
- }
283
- }, instance);
292
+ });
284
293
  const {
285
294
  backgroundClass,
286
295
  overlayClass,
@@ -289,6 +298,7 @@ const FlexibleOverlay = defineComponent({
289
298
  } = useOverlayLogic(props);
290
299
  return () => createVNode(CommonOverlay, null, {
291
300
  default: () => [withDirectives(createVNode("div", {
301
+ "style": props.backgroundStyle,
292
302
  "class": backgroundClass.value,
293
303
  "onClick": handleBackdropClick
294
304
  }, [createVNode("div", {
@@ -300,15 +310,6 @@ const FlexibleOverlay = defineComponent({
300
310
  });
301
311
  }
302
312
  });
303
- function getElement(element) {
304
- if (element instanceof Element) {
305
- return element;
306
- }
307
- if (element && typeof element === "object" && element.$el instanceof Element) {
308
- return element.$el;
309
- }
310
- return null;
311
- }
312
313
  function getOrigin(origin) {
313
314
  if (origin instanceof Element) {
314
315
  return origin;
@@ -316,17 +317,14 @@ function getOrigin(origin) {
316
317
  if (isRef(origin)) {
317
318
  return getElement(origin.value);
318
319
  }
320
+ if (isComponent(origin)) {
321
+ return getElement(origin);
322
+ }
319
323
  return origin;
320
324
  }
321
- function calculatePosition(position, panelOrRect, origin) {
325
+ function calculatePosition(position, rect, origin) {
322
326
  const originRect = getOriginRect(origin);
323
327
  const originPoint = getOriginRelativePoint(originRect, position);
324
- let rect;
325
- if (panelOrRect instanceof HTMLElement) {
326
- rect = panelOrRect.getBoundingClientRect();
327
- } else {
328
- rect = panelOrRect;
329
- }
330
328
  return getOverlayPoint(originPoint, rect, position);
331
329
  }
332
330
  function getOriginRect(origin) {
@@ -390,11 +388,31 @@ function subscribeLayoutEvent(event) {
390
388
  window.addEventListener("scroll", event, true);
391
389
  window.addEventListener("resize", event);
392
390
  window.addEventListener("orientationchange", event);
391
+ return () => {
392
+ window.removeEventListener("scroll", event, true);
393
+ window.removeEventListener("resize", event);
394
+ window.removeEventListener("orientationchange", event);
395
+ };
393
396
  }
394
- function unsbscribeLayoutEvent(event) {
395
- window.removeEventListener("scroll", event, true);
396
- window.removeEventListener("resize", event);
397
- window.removeEventListener("orientationchange", event);
397
+ function subscribeOverlayResize(overlay2, callback) {
398
+ if (overlay2 instanceof Element) {
399
+ const resizeObserver = new ResizeObserver(callback);
400
+ resizeObserver.observe(overlay2);
401
+ return () => resizeObserver.disconnect();
402
+ }
403
+ return () => {
404
+ };
405
+ }
406
+ function subscribeOriginResize(origin, callback) {
407
+ if (origin instanceof Element) {
408
+ const observer = new MutationObserver(callback);
409
+ observer.observe(origin, {
410
+ attributeFilter: ["style"]
411
+ });
412
+ return () => observer.disconnect();
413
+ }
414
+ return () => {
415
+ };
398
416
  }
399
417
  const inBrowser = typeof window !== "undefined";
400
418
  FlexibleOverlay.install = function(app) {
@@ -1 +1 @@
1
- var fe=Object.defineProperty,ye=Object.defineProperties;var me=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var I=(d,t,g)=>t in d?fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:g}):d[t]=g,C=(d,t)=>{for(var g in t||(t={}))q.call(t,g)&&I(d,g,t[g]);if(R)for(var g of R(t))K.call(t,g)&&I(d,g,t[g]);return d},x=(d,t)=>ye(d,me(t));var L=(d,t)=>{var g={};for(var v in d)q.call(d,v)&&t.indexOf(v)<0&&(g[v]=d[v]);if(d!=null&&R)for(var v of R(d))t.indexOf(v)<0&&K.call(d,v)&&(g[v]=d[v]);return g};var D=(d,t,g)=>(I(d,typeof t!="symbol"?t+"":t,g),g);(function(d,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(d=typeof globalThis!="undefined"?globalThis:d||self,t(d.index={},d.Vue))})(this,function(d,t){"use strict";const g={width:{type:String,default:"300px"},maxHeight:{type:String},zIndex:{type:Number,default:1050},backdropZIndex:{type:Number,default:1049},placement:{type:String,default:"center"},offsetX:{type:String,default:"0px"},offsetY:{type:String,default:"0px"},showAnimation:{type:Boolean,default:!0},backdropCloseable:{type:Boolean,default:!1},bodyScrollable:{type:Boolean,default:!0},escapeable:{type:Boolean,default:!0},onClose:{type:Function},beforeHidden:{type:[Object,Function]},modelValue:{type:Boolean},"onUpdate:modelValue":{type:Function}};var v="";function W(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const F=t.defineComponent({setup(e,n){return()=>{let o;return t.createVNode(t.Teleport,{to:"#d-overlay-anchor"},{default:()=>[t.createVNode(t.Transition,{name:"devui-overlay-fade"},W(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),H={visible:{type:Boolean},"onUpdate:visible":{type:Function},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},backdropClick:{type:Function},backdropClose:{type:Boolean,default:!0}};function U(e){const n=t.computed(()=>["devui-overlay-background","devui-overlay-background__color",e.backgroundClass]),o=t.computed(()=>"devui-overlay"),i=l=>{var c,r;l.preventDefault(),(c=e.backdropClick)==null||c.call(e),e.backdropClose&&((r=e["onUpdate:visible"])==null||r.call(e,!1))},a=l=>l.cancelBubble=!0;return t.onMounted(()=>{const l=document.body,c=l.style.overflow,r=l.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([f,m])=>{if(m){const s=l.getBoundingClientRect().y;f?(l.style.overflowY="scroll",l.style.position=f?"fixed":"",l.style.top=`${s}px`):(l.style.overflowY=c,l.style.position=r,l.style.top="",window.scrollTo(0,-s))}}),t.onUnmounted(()=>{document.body.style.overflow=c})}),{backgroundClass:n,overlayClass:o,handleBackdropClick:i,handleOverlayBubbleCancel:a}}const M=t.defineComponent({name:"DFixedOverlay",props:x(C({},H),{overlayStyle:{type:Object,default:void 0}}),setup(e,n){const{backgroundClass:o,overlayClass:i,handleBackdropClick:a,handleOverlayBubbleCancel:l}=U(e);return()=>t.createVNode(F,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:a},[t.createVNode("div",{class:i.value,style:e.overlayStyle,onClick:l},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}}),X=t.defineComponent({name:"DFlexibleOverlay",props:C({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},H),emits:["onUpdate:visible"],setup(e,n){const o=t.ref(null),i=t.reactive({position:"absolute"}),a=t.getCurrentInstance();t.onMounted(async()=>{await t.nextTick();const m=o.value;if(!m)return;const s=J(e.origin);if(!s)return;const u=h=>{const p=Q(e.position,h,s);i.left=`${p.x}px`,i.top=`${p.y}px`},b=()=>u(m.getBoundingClientRect());t.watch(t.toRef(e,"visible"),(h,p,V)=>{h?oe(b):z(b),V(()=>{z(b)})}),t.watch(t.toRef(e,"position"),()=>{b()});const y=new ResizeObserver(h=>{u(h[0].contentRect)});if(y.observe(m),t.onBeforeUnmount(()=>{y.disconnect()},a),s instanceof Element){const h=new MutationObserver(b);h.observe(s,{attributeFilter:["style"]}),t.onBeforeUnmount(()=>{h.disconnect()},a)}},a);const{backgroundClass:l,overlayClass:c,handleBackdropClick:r,handleOverlayBubbleCancel:f}=U(e);return()=>t.createVNode(F,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:l.value,onClick:r},[t.createVNode("div",{ref:o,class:c.value,style:i,onClick:f},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function G(e){return e instanceof Element?e:e&&typeof e=="object"&&e.$el instanceof Element?e.$el:null}function J(e){return e instanceof Element?e:t.isRef(e)?G(e.value):e}function Q(e,n,o){const i=ee(o),a=ne(i,e);let l;return n instanceof HTMLElement?l=n.getBoundingClientRect():l=n,te(a,l,e)}function ee(e){if(e instanceof Element)return e.getBoundingClientRect();const n=e.width||0,o=e.height||0;return{top:e.y,bottom:e.y+o,left:e.x,right:e.x+n,height:o,width:n}}function te(e,n,o){let i;const{width:a,height:l}=n;o.overlayX=="center"?i=e.x-a/2:i=o.overlayX=="left"?e.x:e.x-a;let c;return o.overlayY=="center"?c=e.y-l/2:c=o.overlayY=="top"?e.y:e.y-l,{x:i,y:c}}function ne(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const a=e.left,l=e.right;o=n.originX=="left"?a:l}let i;return n.originY=="center"?i=e.top+e.height/2:i=n.originY=="top"?e.top:e.bottom,{x:o,y:i}}function oe(e){window.addEventListener("scroll",e,!0),window.addEventListener("resize",e),window.addEventListener("orientationchange",e)}function z(e){window.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}const le=typeof window!="undefined";X.install=function(e){e.component(X.name,X)},M.install=function(e){e.component(M.name,M)};var be="",S=t.defineComponent({name:"DModal",props:g,emits:["onUpdate:modelValue"],setup(e,n){const o=t.computed(()=>e.showAnimation?e.modelValue:!0),i=a=>{var c;const l=e["onUpdate:modelValue"];if(a)l==null||l(a);else{const r=e.beforeHidden,f=s=>{var u;s&&(l==null||l(!1),(u=e.onClose)==null||u.call(e))},m=(c=typeof r=="function"?r():r)!=null?c:!0;m instanceof Promise?m.then(f):f(m)}};return n.expose({onVisibleChange:i}),()=>t.createVNode(M,{visible:e.modelValue,"onUpdate:visible":i,backgroundClass:"devui-modal-wrapper",backgroundBlock:!e.bodyScrollable,backdropClose:e.backdropCloseable},{default:()=>[t.createVNode(t.Transition,{name:"devui-modal-wipe"},{default:()=>{var a,l;return[o.value?(l=(a=n.slots).default)==null?void 0:l.call(a):null]}})]})}});class T{constructor(n){this.anchorContainer=n}renderModal(n,o,i){const a=t.h(this.component(),o,i);return t.render(a,n),a}renderNull(n){setTimeout(()=>{t.render(null,n)},500)}}class Y extends T{component(){return S}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const f=n,{content:i}=f,a=L(f,["content"]),l=m=>{m||r()},c=(m,s=l)=>this.renderModal(o,x(C({},m),{modelValue:!0,"onUpdate:modelValue":s}),{default:i}),r=()=>{var s,u;(u=(s=c(a,b=>{b?c(a):(this.renderModal(o,x(C({},a),{modelValue:!1})),this.renderNull(o))}).component.exposed).onVisibleChange)==null||u.call(s,!1)};return this.renderModal(o,{modelValue:!1}),c(a),{hide:r}}}D(Y,"token","MODAL_SERVICE_TOKEN");const ae={width:{type:String,default:"300px"},maxHeight:{type:String},zIndex:{type:Number,default:1050},backdropZIndex:{type:Number,default:1049},placement:{type:String,default:"center"},offsetX:{type:String,default:"0px"},offsetY:{type:String,default:"0px"},title:{type:String},showAnimation:{type:Boolean,default:!0},backdropCloseable:{type:Boolean,default:!1},bodyScrollable:{type:Boolean,default:!0},escapeable:{type:Boolean,default:!0},onClose:{type:Function},beforeHidden:{type:[Promise,Function]},buttons:{type:Array,default:[]},dialogType:{type:String,default:"standard"},modelValue:{type:Boolean},"onUpdate:modelValue":{type:Function}},ie=(e=!0)=>{const n=t.ref(0),o=t.ref(0),i=()=>{n.value=0,o.value=0},a=t.ref(),l=t.ref(),c=t.isRef(e)?e:t.ref(e);return t.watch([l,a],([r,f],m,s)=>{if(!(f instanceof HTMLElement&&r instanceof HTMLElement))return;f.style.cursor="all-scroll";let u=0,b=0,y=0,h=0,p=r.getBoundingClientRect(),V=document.body.getBoundingClientRect(),B=!1;const N=w=>{if(w.preventDefault(),!c.value)return;u=w.clientX,b=w.clientY;const k=f.getBoundingClientRect();(f===w.target||f.contains(w.target))&&k.x<u&&k.y<b&&k.width+k.x>=u&&k.height+k.y>=b&&(B=!0,y=n.value,h=o.value,V=document.body.getBoundingClientRect(),p=r.getBoundingClientRect())},P=w=>{if(w.preventDefault(),!B)return;const k=y+w.clientX-u,ue=h+w.clientY-b,A=p.x-y,Z=p.y-h;n.value=j(k,-A,V.width-p.width-A),o.value=j(ue,-Z,V.height-p.height-Z)},_=w=>{w.preventDefault(),!!B&&(B=!1)};window.addEventListener("mousedown",N),window.addEventListener("mousemove",P),window.addEventListener("mouseup",_),s(()=>{window.removeEventListener("mousedown",N),window.removeEventListener("mousemove",P),window.removeEventListener("mouseup",_)})}),{movingX:t.readonly(n),movingY:t.readonly(o),handleRef:a,moveElRef:l,reset:i}},j=(e,n,o)=>e<n?n:e>o?o:e;var O=t.defineComponent({name:"DIcon",props:{name:{type:String,required:!0},size:{type:String,default:"inherit"},color:{type:String,default:"inherit"},classPrefix:{type:String,default:"icon"}},setup(e){return C({},e)},render(){const{name:e,size:n,color:o,classPrefix:i}=this;return t.createVNode(t.Fragment,null,[/^((https?):)?\/\//.test(e)?t.createVNode("img",{src:e,alt:e.split("/")[e.split("/").length-1],style:{width:n}},null):t.createVNode("i",{class:`${i} ${i}-${e}`,style:{fontSize:n,color:o}},null)])}});O.install=function(e){e.component(O.name,O)};const re={type:{type:String,default:"button"},btnStyle:{type:String,default:"primary"},size:{type:String,default:"md"},position:{type:String,default:"default"},bordered:{type:Boolean,default:!1},icon:{type:String,default:""},showLoading:{type:Boolean,default:!1},width:{type:String},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},onClick:{type:Function}};var he="",E=t.defineComponent({name:"DButton",props:re,setup(e,n){const o=t.ref(null),i=r=>{var f;e.showLoading||(f=e.onClick)==null||f.call(e,r)},a=t.computed(()=>n.slots.default),l=t.computed(()=>{const{btnStyle:r,size:f,position:m,bordered:s,icon:u}=e,b=`devui-btn devui-btn-${r} devui-btn-${f} devui-btn-${m}`,y=s?"bordered":"",h=!!u&&!a.value&&r!=="primary"?"d-btn-icon":"";return`${b} ${y} ${h} ${u?"d-btn-icon-wrap":""}`}),c=t.computed(()=>{if(!e.icon)return;const r="devui-icon-fix icon";return a.value?`${r} clear-right-5`:r});return()=>{var b,y;const{icon:r,type:f,disabled:m,showLoading:s,width:u}=e;return t.createVNode("div",t.mergeProps({class:"devui-btn-host"},n.attrs),[t.createVNode("button",{class:l.value,type:f,disabled:m,style:{width:u},onClick:i},[r?t.createVNode(O,{name:e.icon,class:c.value},null):null,t.createVNode("span",{class:"button-content",ref:o},[(y=(b=n.slots).default)==null?void 0:y.call(b)])])])}}});E.install=function(e){e.component(E.name,E)};function de(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var ce=t.defineComponent({name:"DModal",inheritAttrs:!1,props:ae,emits:["onUpdate:modelValue"],setup(e,n){const{movingX:o,movingY:i,handleRef:a,moveElRef:l,reset:c}=ie();t.watch(()=>e.modelValue,y=>{y&&c()});const r=t.computed(()=>({position:"relative",left:`${o.value}px`,top:`${i.value}px`})),f=t.computed(()=>({width:e.width,maxHeight:e.maxHeight,transform:`translate(${e.offsetX}, ${e.offsetY})`,zIndex:e.zIndex})),m=t.computed(()=>{switch(e.dialogType){case"standard":return"";case"info":return"icon-info-o";case"success":return"icon-right-o";case"warning":return"icon-warning-o";case"failed":return"icon-error-o";default:return""}}),s=t.computed(()=>e.buttons.map((y,h)=>{const{btnStyle:p,disabled:V,handler:B,text:N}=y;return t.createVNode(E,{key:h,style:{display:"inline-block",margin:"0 5px"},btnStyle:p,disabled:V,onClick:B},de(N)?N:{default:()=>[N]})})),u=t.ref(),b=()=>{var y,h;(h=(y=u.value)==null?void 0:y.onVisibleChange)==null||h.call(y,!1)};return n.expose({closeModal:b}),()=>t.createVNode(S,{ref:u,width:e.width,maxHeight:e.maxHeight,offsetX:e.offsetX,offsetY:e.offsetY,zIndex:e.zIndex,backdropZIndex:e.backdropZIndex,backdropCloseable:e.backdropCloseable,bodyScrollable:e.bodyScrollable,placement:e.placement,onClose:e.onClose,beforeHidden:e.beforeHidden,modelValue:e.modelValue,"onUpdate:modelValue":e["onUpdate:modelValue"]},{default:()=>{var y,h;return[t.createVNode("div",{class:"devui-modal-content",style:[f.value,r.value],ref:l},[t.createVNode("div",{class:"devui-modal-header",ref:a},[m.value?t.createVNode(O,{name:m.value,size:"24px",class:"header-alert-icon"},null):null,t.createVNode("span",null,[e.title]),t.createVNode(E,{class:"btn-close",icon:"close",btnStyle:"text-dark",onClick:b},null)]),t.createVNode("div",{class:"devui-modal-body"},[(h=(y=n.slots).default)==null?void 0:h.call(y)]),t.createVNode("div",{class:"devui-modal-footer"},[s.value])])]}})}});class $ extends T{component(){return ce}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const m=n,{content:i}=m,a=L(m,["content"]),l=s=>{s||r()},c=(s,u=l)=>this.renderModal(o,x(C({},s),{modelValue:!0,"onUpdate:modelValue":u}),{default:i}),r=()=>{var u,b;(b=(u=c(a,y=>{y?c(a):(this.renderModal(o,x(C({},a),{modelValue:!1})),this.renderNull(o))}).component.exposed).closeModal)==null||b.call(u)},f=s=>{const h=a,{buttons:u}=h,b=L(h,["buttons"]),y=u.map((p,V)=>C(C({},p),s[V]));c(x(C({},b),{buttons:y}))};return this.renderModal(o,{modelValue:!1}),c(a),{hide:r,updateButtonOptions:f}}}D($,"token","DIALOG_SERVICE_TOKEN"),S.install=function(e){e.component(S.name,S)};var se={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"\u5DF2\u5B8C\u6210",install(e){if(e.use(S),!le)return;let n=document.getElementById("d-modal-anchors-container");n||(n=document.createElement("div"),n.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(n)),e.provide(Y.token,new Y(n)),e.provide($.token,new $(n))}};d.Modal=S,d.default=se,Object.defineProperty(d,"__esModule",{value:!0}),d[Symbol.toStringTag]="Module"});
1
+ var he=Object.defineProperty,pe=Object.defineProperties;var ge=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var z=(s,t,p)=>t in s?he(s,t,{enumerable:!0,configurable:!0,writable:!0,value:p}):s[t]=p,k=(s,t)=>{for(var p in t||(t={}))q.call(t,p)&&z(s,p,t[p]);if(Y)for(var p of Y(t))K.call(t,p)&&z(s,p,t[p]);return s},O=(s,t)=>pe(s,ge(t));var $=(s,t)=>{var p={};for(var S in s)q.call(s,S)&&t.indexOf(S)<0&&(p[S]=s[S]);if(s!=null&&Y)for(var S of Y(s))t.indexOf(S)<0&&K.call(s,S)&&(p[S]=s[S]);return p};var F=(s,t,p)=>(z(s,typeof t!="symbol"?t+"":t,p),p);(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";const p={width:{type:String,default:"300px"},maxHeight:{type:String},zIndex:{type:Number,default:1050},backdropZIndex:{type:Number,default:1049},placement:{type:String,default:"center"},offsetX:{type:String,default:"0px"},offsetY:{type:String,default:"0px"},showAnimation:{type:Boolean,default:!0},backdropCloseable:{type:Boolean,default:!1},bodyScrollable:{type:Boolean,default:!0},escapeable:{type:Boolean,default:!0},onClose:{type:Function},beforeHidden:{type:[Object,Function]},modelValue:{type:Boolean},"onUpdate:modelValue":{type:Function}};var S="";function W(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const H=t.defineComponent({setup(e,n){return()=>{let o;return t.createVNode(t.Teleport,{to:"#d-overlay-anchor"},{default:()=>[t.createVNode(t.Transition,{name:"devui-overlay-fade"},W(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),P={visible:{type:Boolean},"onUpdate:visible":{type:Function},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},backdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}},G=O(k({},P),{overlayStyle:{type:[String,Object],default:void 0}}),J=k({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},P);function U(e){const n=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),o=t.computed(()=>"devui-overlay"),i=l=>{var u,r;l.preventDefault(),(u=e.backdropClick)==null||u.call(e),e.backdropClose&&((r=e["onUpdate:visible"])==null||r.call(e,!1))},a=l=>l.cancelBubble=!0;return t.onMounted(()=>{const l=document.body,u=l.style.overflow,r=l.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([c,m])=>{if(m){const b=l.getBoundingClientRect().y;c?(l.style.overflowY="scroll",l.style.position=c?"fixed":"",l.style.top=`${b}px`):(l.style.overflowY=u,l.style.position=r,l.style.top="",window.scrollTo(0,-b))}}),t.onUnmounted(()=>{document.body.style.overflow=u})}),{backgroundClass:n,overlayClass:o,handleBackdropClick:i,handleOverlayBubbleCancel:a}}const R=t.defineComponent({name:"DFixedOverlay",props:G,setup(e,n){const{backgroundClass:o,overlayClass:i,handleBackdropClick:a,handleOverlayBubbleCancel:l}=U(e);return()=>t.createVNode(H,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:a},[t.createVNode("div",{class:i.value,style:e.overlayStyle,onClick:l},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function Q(e){return!!(e==null?void 0:e.$el)}function j(e){return e instanceof Element?e:e&&typeof e=="object"&&e.$el instanceof Element?e.$el:null}const L=t.defineComponent({name:"DFlexibleOverlay",props:J,emits:["onUpdate:visible"],setup(e,n){const o=t.ref(null),i=t.reactive({position:"absolute"});t.onMounted(async()=>{const c=(y,d,h)=>{const g=te(y,d,h);i.left=`${g.x}px`,i.top=`${g.y}px`},m=t.computed(()=>{const y=o.value,d=ee(e.origin);if(!(!y||!d))return{origin:d,overlay:y}}),b=t.toRef(e,"visible"),f=t.toRef(e,"position");t.watch([m,b,f],async([y,d,h],g,V)=>{if(!d||!y)return;const{origin:v,overlay:C}=y;c(h,C.getBoundingClientRect(),v);const X=[ae(()=>c(h,C.getBoundingClientRect(),v)),ie(C,N=>c(h,N[0].contentRect,v)),re(v,()=>c(h,C.getBoundingClientRect(),v))];V(()=>{X.forEach(N=>N())})})});const{backgroundClass:a,overlayClass:l,handleBackdropClick:u,handleOverlayBubbleCancel:r}=U(e);return()=>t.createVNode(H,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:a.value,onClick:u},[t.createVNode("div",{ref:o,class:l.value,style:i,onClick:r},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function ee(e){return e instanceof Element?e:t.isRef(e)?j(e.value):Q(e)?j(e):e}function te(e,n,o){const i=ne(o),a=le(i,e);return oe(a,n,e)}function ne(e){if(e instanceof Element)return e.getBoundingClientRect();const n=e.width||0,o=e.height||0;return{top:e.y,bottom:e.y+o,left:e.x,right:e.x+n,height:o,width:n}}function oe(e,n,o){let i;const{width:a,height:l}=n;o.overlayX=="center"?i=e.x-a/2:i=o.overlayX=="left"?e.x:e.x-a;let u;return o.overlayY=="center"?u=e.y-l/2:u=o.overlayY=="top"?e.y:e.y-l,{x:i,y:u}}function le(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const a=e.left,l=e.right;o=n.originX=="left"?a:l}let i;return n.originY=="center"?i=e.top+e.height/2:i=n.originY=="top"?e.top:e.bottom,{x:o,y:i}}function ae(e){return window.addEventListener("scroll",e,!0),window.addEventListener("resize",e),window.addEventListener("orientationchange",e),()=>{window.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}}function ie(e,n){if(e instanceof Element){const o=new ResizeObserver(n);return o.observe(e),()=>o.disconnect()}return()=>{}}function re(e,n){if(e instanceof Element){const o=new MutationObserver(n);return o.observe(e,{attributeFilter:["style"]}),()=>o.disconnect()}return()=>{}}const de=typeof window!="undefined";L.install=function(e){e.component(L.name,L)},R.install=function(e){e.component(R.name,R)};var ve="",B=t.defineComponent({name:"DModal",props:p,emits:["onUpdate:modelValue"],setup(e,n){const o=t.computed(()=>e.showAnimation?e.modelValue:!0),i=a=>{var u;const l=e["onUpdate:modelValue"];if(a)l==null||l(a);else{const r=e.beforeHidden,c=b=>{var f;b&&(l==null||l(!1),(f=e.onClose)==null||f.call(e))},m=(u=typeof r=="function"?r():r)!=null?u:!0;m instanceof Promise?m.then(c):c(m)}};return n.expose({onVisibleChange:i}),()=>t.createVNode(R,{visible:e.modelValue,"onUpdate:visible":i,backgroundClass:"devui-modal-wrapper",backgroundBlock:!e.bodyScrollable,backdropClose:e.backdropCloseable},{default:()=>[t.createVNode(t.Transition,{name:"devui-modal-wipe"},{default:()=>{var a,l;return[o.value?(l=(a=n.slots).default)==null?void 0:l.call(a):null]}})]})}});class T{constructor(n){this.anchorContainer=n}renderModal(n,o,i){const a=t.h(this.component(),o,i);return t.render(a,n),a}renderNull(n){setTimeout(()=>{t.render(null,n)},500)}}class D extends T{component(){return B}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const c=n,{content:i}=c,a=$(c,["content"]),l=m=>{m||r()},u=(m,b=l)=>this.renderModal(o,O(k({},m),{modelValue:!0,"onUpdate:modelValue":b}),{default:i}),r=()=>{var b,f;(f=(b=u(a,y=>{y?u(a):(this.renderModal(o,O(k({},a),{modelValue:!1})),this.renderNull(o))}).component.exposed).onVisibleChange)==null||f.call(b,!1)};return this.renderModal(o,{modelValue:!1}),u(a),{hide:r}}}F(D,"token","MODAL_SERVICE_TOKEN");const ce={width:{type:String,default:"300px"},maxHeight:{type:String},zIndex:{type:Number,default:1050},backdropZIndex:{type:Number,default:1049},placement:{type:String,default:"center"},offsetX:{type:String,default:"0px"},offsetY:{type:String,default:"0px"},title:{type:String},showAnimation:{type:Boolean,default:!0},backdropCloseable:{type:Boolean,default:!1},bodyScrollable:{type:Boolean,default:!0},escapeable:{type:Boolean,default:!0},onClose:{type:Function},beforeHidden:{type:[Promise,Function]},buttons:{type:Array,default:[]},dialogType:{type:String,default:"standard"},modelValue:{type:Boolean},"onUpdate:modelValue":{type:Function}},se=(e=!0)=>{const n=t.ref(0),o=t.ref(0),i=()=>{n.value=0,o.value=0},a=t.ref(),l=t.ref(),u=t.isRef(e)?e:t.ref(e);return t.watch([l,a],([r,c],m,b)=>{if(!(c instanceof HTMLElement&&r instanceof HTMLElement))return;c.style.cursor="all-scroll";let f=0,y=0,d=0,h=0,g=r.getBoundingClientRect(),V=document.body.getBoundingClientRect(),v=!1;const C=w=>{if(w.preventDefault(),!u.value)return;f=w.clientX,y=w.clientY;const x=c.getBoundingClientRect();(c===w.target||c.contains(w.target))&&x.x<f&&x.y<y&&x.width+x.x>=f&&x.height+x.y>=y&&(v=!0,d=n.value,h=o.value,V=document.body.getBoundingClientRect(),g=r.getBoundingClientRect())},X=w=>{if(w.preventDefault(),!v)return;const x=d+w.clientX-f,me=h+w.clientY-y,A=g.x-d,Z=g.y-h;n.value=_(x,-A,V.width-g.width-A),o.value=_(me,-Z,V.height-g.height-Z)},N=w=>{w.preventDefault(),!!v&&(v=!1)};window.addEventListener("mousedown",C),window.addEventListener("mousemove",X),window.addEventListener("mouseup",N),b(()=>{window.removeEventListener("mousedown",C),window.removeEventListener("mousemove",X),window.removeEventListener("mouseup",N)})}),{movingX:t.readonly(n),movingY:t.readonly(o),handleRef:a,moveElRef:l,reset:i}},_=(e,n,o)=>e<n?n:e>o?o:e;var E=t.defineComponent({name:"DIcon",props:{name:{type:String,required:!0},size:{type:String,default:"inherit"},color:{type:String,default:"inherit"},classPrefix:{type:String,default:"icon"}},setup(e){return k({},e)},render(){const{name:e,size:n,color:o,classPrefix:i}=this;return t.createVNode(t.Fragment,null,[/^((https?):)?\/\//.test(e)?t.createVNode("img",{src:e,alt:e.split("/")[e.split("/").length-1],style:{width:n}},null):t.createVNode("i",{class:`${i} ${i}-${e}`,style:{fontSize:n,color:o}},null)])}});E.install=function(e){e.component(E.name,E)};const ue={type:{type:String,default:"button"},btnStyle:{type:String,default:"primary"},size:{type:String,default:"md"},position:{type:String,default:"default"},bordered:{type:Boolean,default:!1},icon:{type:String,default:""},showLoading:{type:Boolean,default:!1},width:{type:String},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},onClick:{type:Function}};var Ce="",M=t.defineComponent({name:"DButton",props:ue,setup(e,n){const o=t.ref(null),i=r=>{var c;e.showLoading||(c=e.onClick)==null||c.call(e,r)},a=t.computed(()=>n.slots.default),l=t.computed(()=>{const{btnStyle:r,size:c,position:m,bordered:b,icon:f}=e,y=`devui-btn devui-btn-${r} devui-btn-${c} devui-btn-${m}`,d=b?"bordered":"",h=!!f&&!a.value&&r!=="primary"?"d-btn-icon":"";return`${y} ${d} ${h} ${f?"d-btn-icon-wrap":""}`}),u=t.computed(()=>{if(!e.icon)return;const r="devui-icon-fix icon";return a.value?`${r} clear-right-5`:r});return()=>{var y,d;const{icon:r,type:c,disabled:m,showLoading:b,width:f}=e;return t.createVNode("div",t.mergeProps({class:"devui-btn-host"},n.attrs),[t.createVNode("button",{class:l.value,type:c,disabled:m,style:{width:f},onClick:i},[r?t.createVNode(E,{name:e.icon,class:u.value},null):null,t.createVNode("span",{class:"button-content",ref:o},[(d=(y=n.slots).default)==null?void 0:d.call(y)])])])}}});M.install=function(e){e.component(M.name,M)};function fe(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var ye=t.defineComponent({name:"DModal",inheritAttrs:!1,props:ce,emits:["onUpdate:modelValue"],setup(e,n){const{movingX:o,movingY:i,handleRef:a,moveElRef:l,reset:u}=se();t.watch(()=>e.modelValue,d=>{d&&u()});const r=t.computed(()=>({position:"relative",left:`${o.value}px`,top:`${i.value}px`})),c=t.computed(()=>({width:e.width,maxHeight:e.maxHeight,transform:`translate(${e.offsetX}, ${e.offsetY})`,zIndex:e.zIndex})),m=t.computed(()=>{switch(e.dialogType){case"standard":return"";case"info":return"icon-info-o";case"success":return"icon-right-o";case"warning":return"icon-warning-o";case"failed":return"icon-error-o";default:return""}}),b=t.computed(()=>e.buttons.map((d,h)=>{const{btnStyle:g,disabled:V,handler:v,text:C}=d;return t.createVNode(M,{key:h,style:{display:"inline-block",margin:"0 5px"},btnStyle:g,disabled:V,onClick:v},fe(C)?C:{default:()=>[C]})})),f=t.ref(),y=()=>{var d,h;(h=(d=f.value)==null?void 0:d.onVisibleChange)==null||h.call(d,!1)};return n.expose({closeModal:y}),()=>t.createVNode(B,{ref:f,width:e.width,maxHeight:e.maxHeight,offsetX:e.offsetX,offsetY:e.offsetY,zIndex:e.zIndex,backdropZIndex:e.backdropZIndex,backdropCloseable:e.backdropCloseable,bodyScrollable:e.bodyScrollable,placement:e.placement,onClose:e.onClose,beforeHidden:e.beforeHidden,modelValue:e.modelValue,"onUpdate:modelValue":e["onUpdate:modelValue"]},{default:()=>{var d,h;return[t.createVNode("div",{class:"devui-modal-content",style:[c.value,r.value],ref:l},[t.createVNode("div",{class:"devui-modal-header",ref:a},[m.value?t.createVNode(E,{name:m.value,size:"24px",class:"header-alert-icon"},null):null,t.createVNode("span",null,[e.title]),t.createVNode(M,{class:"btn-close",icon:"close",btnStyle:"text-dark",onClick:y},null)]),t.createVNode("div",{class:"devui-modal-body"},[(h=(d=n.slots).default)==null?void 0:h.call(d)]),t.createVNode("div",{class:"devui-modal-footer"},[b.value])])]}})}});class I extends T{component(){return ye}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const m=n,{content:i}=m,a=$(m,["content"]),l=b=>{b||r()},u=(b,f=l)=>this.renderModal(o,O(k({},b),{modelValue:!0,"onUpdate:modelValue":f}),{default:i}),r=()=>{var f,y;(y=(f=u(a,d=>{d?u(a):(this.renderModal(o,O(k({},a),{modelValue:!1})),this.renderNull(o))}).component.exposed).closeModal)==null||y.call(f)},c=b=>{const h=a,{buttons:f}=h,y=$(h,["buttons"]),d=f.map((g,V)=>k(k({},g),b[V]));u(O(k({},y),{buttons:d}))};return this.renderModal(o,{modelValue:!1}),u(a),{hide:r,updateButtonOptions:c}}}F(I,"token","DIALOG_SERVICE_TOKEN"),B.install=function(e){e.component(B.name,B)};var be={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"\u5DF2\u5B8C\u6210",install(e){if(e.use(B),!de)return;let n=document.getElementById("d-modal-anchors-container");n||(n=document.createElement("div"),n.setAttribute("id","d-modal-anchors-container"),document.body.appendChild(n)),e.provide(D.token,new D(n)),e.provide(I.token,new I(n))}};s.Modal=B,s.default=be,Object.defineProperty(s,"__esModule",{value:!0}),s[Symbol.toStringTag]="Module"});
package/modal/style.css CHANGED
@@ -1 +1 @@
1
- .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}@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-modal-wrapper{justify-content:center;align-items:center;background-color:var(--devui-shadow, rgba(0, 0, 0, .2))}.devui-modal-content{background:var(--devui-fullscreen-overlay-bg, #ffffff);border-radius:var(--devui-border-radius, 2px)}.devui-modal-body{padding:20px 32px;color:var(--devui-text-weak, #575d6c)}.devui-modal-header{padding:32px 32px 0;height:56px;position:relative;border:none;user-select:none}.devui-modal-header .btn-close{position:absolute;right:20px;top:20px;font-size:var(--devui-font-size-icon, 16px);font-weight:700;line-height:1;color:#000;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.devui-modal-header .header-alert-icon{display:inline-block;vertical-align:middle;margin-right:8px;line-height:16px;text-align:center}.devui-modal-footer{border-top:none;text-align:center;padding:0 32px 24px}@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}.devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:normal;line-height:1.5}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:bold;line-height:1.5}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:bold;line-height:1.5}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:bold;line-height:1.5}.devui-btn{padding:3px 20px;font-size:var(--devui-font-size-md, 12px);height:28px;line-height:1.5;border-radius:var(--devui-border-radius, 2px);border-width:1px;border-color:transparent;background-color:transparent}.devui-btn.devui-btn-text{color:var(--devui-brand-active, #526ecc);padding:0}.devui-btn.devui-btn-text-dark{color:var(--devui-brand-active, #526ecc);padding:0}.devui-btn.devui-btn-common{color:var(--devui-text, #252b3a);min-width:64px;background-color:var(--devui-block, #ffffff);border-color:var(--devui-line, #adb0b8)}.devui-btn.devui-btn-stress{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-primary, #5e7ce0)}.devui-btn.devui-btn-primary{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-primary, #5e7ce0)}.devui-btn.devui-btn-danger{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-contrast, #f66f6a)}.devui-btn.devui-btn-left{border-radius:var(--devui-border-radius, 2px) 0 0 var(--devui-border-radius, 2px)}.devui-btn.devui-btn-right{border-radius:0 var(--devui-border-radius, 2px) var(--devui-border-radius, 2px) 0}.devui-btn.devui-btn-xs{padding:1px 5px;height:24px;font-size:var(--devui-font-size-sm, 12px);min-width:48px}.devui-btn.devui-btn-sm{padding:1px 15px;height:24px;font-size:var(--devui-font-size-sm, 12px);min-width:56px}.devui-btn.devui-btn-lg{padding:5px 23px;height:32px;font-size:var(--devui-font-size-lg, 14px);min-width:72px}.devui-btn.devui-btn-text:hover{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text:focus{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text:active{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:hover{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:focus{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:active{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-common:hover{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-common:focus{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-common:active{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-stress:hover{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-stress:focus{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-stress:active{background-color:var(--devui-primary-active, #344899)}.devui-btn.devui-btn-primary:hover{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-primary:focus{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-primary:active{background-color:var(--devui-primary-active, #344899)}.devui-btn.devui-btn-danger:hover{background-color:var(--devui-contrast-hover, #ff8b87)}.devui-btn.devui-btn-danger:focus{background-color:var(--devui-contrast-hover, #ff8b87)}.devui-btn.devui-btn-danger:active{background-color:var(--devui-contrast-active, #de504e)}.devui-btn.devui-btn-common:disabled{color:var(--devui-disabled-text, #adb0b8);background:var(--devui-disabled-bg, #f5f5f6);border:1px solid var(--devui-disabled-line, #dfe1e6)}.devui-btn.devui-btn-primary:disabled{color:var(--devui-light-text, #ffffff);background:var(--devui-primary-disabled, #beccfa);border:none}.devui-btn.devui-btn-danger:disabled{color:var(--devui-disabled-text, #adb0b8);background:var(--devui-disabled-bg, #f5f5f6);border:1px solid var(--devui-disabled-line, #dfe1e6)}.devui-btn.devui-btn-text-dark:disabled{color:var(--devui-disabled-text, #adb0b8)}.devui-btn.devui-btn-text:disabled{color:var(--devui-disabled-text, #adb0b8)}.devui-btn.bordered.devui-btn-common{color:var(--devui-text, #252b3a);border-color:transparent}.devui-btn.bordered.devui-btn-common:hover,.devui-btn.bordered.devui-btn-common:focus{border-color:var(--devui-primary-hover, #7693f5)}.devui-btn.bordered.devui-btn-common:active{border-color:var(--devui-primary-active, #344899)}.devui-btn.bordered.devui-btn-stress,.devui-btn.bordered.devui-btn-primary{border-color:var(--devui-brand, #5e7ce0);color:var(--devui-brand, #5e7ce0);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-success{border-color:var(--devui-success, #50d4ab);color:var(--devui-success, #50d4ab);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-warning{border-color:var(--devui-warning, #fac20a);color:var(--devui-warning, #fac20a);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-danger{border-color:var(--devui-danger, #f66f6a);color:var(--devui-danger, #f66f6a);background-color:var(--devui-block, #ffffff)}.devui-btn.d-btn-icon:hover,.devui-btn.d-btn-icon:focus{border:1px solid var(--devui-list-item-hover-bg, #f2f5fc);background-color:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-btn.d-btn-icon:disabled{background-color:var(--devui-disabled-bg, #f5f5f6)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap{color:var(--devui-text, #252b3a)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap .devui-icon-fix,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap .devui-icon-fix{color:var(--devui-text-weak, #575d6c)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap:hover,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap:hover{color:var(--devui-list-item-hover-text, #526ecc)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap:hover .devui-icon-fix,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap:hover .devui-icon-fix{color:var(--devui-icon-fill-active, #5e7ce0)}.devui-loading .devui-loading-default-spinner div{background-color:var(--devui-text, #252b3a)}.devui-btn-host{display:inline-block}.devui-btn{transition:background-color .2s;border-style:solid;white-space:nowrap;display:flex;align-items:center;justify-content:center}.devui-btn:disabled,.devui-btn[disabled]{cursor:not-allowed}.devui-btn.d-btn-icon{padding:7px 8px;line-height:1em;border:1px solid transparent}.devui-btn.d-btn-icon.devui-btn-xs,.devui-btn.d-btn-icon.devui-btn-sm{padding:5px}.devui-btn.d-btn-icon.devui-btn-xs{min-width:24px}.devui-btn.d-btn-icon.devui-btn-sm{min-width:24px}.devui-btn.d-btn-icon.devui-btn-lg{min-width:32px}.devui-btn.d-btn-icon.devui-btn-lg .icon{font-size:var(--devui-font-size-icon, 16px)}.devui-btn:not(.d-btn-icon) .icon-fix{font-size:var(--devui-font-size-icon, 16px)}.devui-icon-fix{position:relative;font-size:var(--devui-font-size, 12px)}.devui-btn.devui-btn-common:not(:disabled) .devui-icon-fix{color:var(--devui-text-weak, #575d6c)}.devui-btn.devui-btn-common:not(:disabled):hover .devui-icon-fix,.devui-btn.devui-btn-common:not(:disabled):active .devui-icon-fix,.devui-btn.devui-btn-common:not(:disabled):focus .devui-icon-fix{color:var(--devui-icon-fill-active, #5e7ce0)}.button-content{display:inline-block;position:relative}.clear-right-5{margin-right:5px}
1
+ .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}@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-modal-wrapper{justify-content:center;align-items:center;background-color:var(--devui-shadow, rgba(0, 0, 0, .2))}.devui-modal-content{background:var(--devui-fullscreen-overlay-bg, #ffffff);border-radius:var(--devui-border-radius, 2px)}.devui-modal-body{padding:20px 32px;color:var(--devui-text-weak, #575d6c)}.devui-modal-header{padding:32px 32px 0;height:56px;position:relative;border:none;user-select:none}.devui-modal-header .btn-close{position:absolute;right:20px;top:20px;font-size:var(--devui-font-size-icon, 16px);font-weight:700;line-height:1;color:#000;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.devui-modal-header .header-alert-icon{display:inline-block;vertical-align:middle;margin-right:8px;line-height:16px;text-align:center}.devui-modal-footer{border-top:none;text-align:center;padding:0 32px 24px}@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}.devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:normal;line-height:1.5}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:bold;line-height:1.5}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:bold;line-height:1.5}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:bold;line-height:1.5}.devui-btn{padding:3px 20px;font-size:var(--devui-font-size-md, 12px);height:28px;line-height:1.5;border-radius:var(--devui-border-radius, 2px);border-width:1px;border-color:transparent;background-color:transparent}.devui-btn.devui-btn-text{color:var(--devui-brand-active, #526ecc);padding:0}.devui-btn.devui-btn-text-dark{color:var(--devui-brand-active, #526ecc);padding:0}.devui-btn.devui-btn-common{color:var(--devui-text, #252b3a);min-width:64px;background-color:var(--devui-block, #ffffff);border-color:var(--devui-line, #adb0b8)}.devui-btn.devui-btn-stress{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-primary, #5e7ce0)}.devui-btn.devui-btn-primary{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-primary, #5e7ce0)}.devui-btn.devui-btn-danger{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-contrast, #f66f6a)}.devui-btn.devui-btn-left{border-radius:var(--devui-border-radius, 2px) 0 0 var(--devui-border-radius, 2px)}.devui-btn.devui-btn-right{border-radius:0 var(--devui-border-radius, 2px) var(--devui-border-radius, 2px) 0}.devui-btn.devui-btn-xs{padding:1px 5px;height:24px;font-size:var(--devui-font-size-sm, 12px);min-width:48px}.devui-btn.devui-btn-sm{padding:1px 15px;height:24px;font-size:var(--devui-font-size-sm, 12px);min-width:56px}.devui-btn.devui-btn-lg{padding:5px 23px;height:32px;font-size:var(--devui-font-size-lg, 14px);min-width:72px}.devui-btn.devui-btn-text:hover{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text:focus{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text:active{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:hover{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:focus{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-text-dark:active{background-color:transparent;color:var(--devui-brand-active-focus, #344899)}.devui-btn.devui-btn-common:hover{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-common:focus{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-common:active{border-color:var(--devui-form-control-line-active, #5e7ce0);color:var(--devui-brand-active, #526ecc)}.devui-btn.devui-btn-stress:hover{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-stress:focus{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-stress:active{background-color:var(--devui-primary-active, #344899)}.devui-btn.devui-btn-primary:hover{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-primary:focus{background-color:var(--devui-primary-hover, #7693f5)}.devui-btn.devui-btn-primary:active{background-color:var(--devui-primary-active, #344899)}.devui-btn.devui-btn-danger:hover{background-color:var(--devui-contrast-hover, #ff8b87)}.devui-btn.devui-btn-danger:focus{background-color:var(--devui-contrast-hover, #ff8b87)}.devui-btn.devui-btn-danger:active{background-color:var(--devui-contrast-active, #de504e)}.devui-btn.devui-btn-common:disabled{color:var(--devui-disabled-text, #adb0b8);background:var(--devui-disabled-bg, #f5f5f6);border:1px solid var(--devui-disabled-line, #dfe1e6)}.devui-btn.devui-btn-primary:disabled{color:var(--devui-light-text, #ffffff);background:var(--devui-primary-disabled, #beccfa);border:none}.devui-btn.devui-btn-danger:disabled{color:var(--devui-disabled-text, #adb0b8);background:var(--devui-disabled-bg, #f5f5f6);border:1px solid var(--devui-disabled-line, #dfe1e6)}.devui-btn.devui-btn-text-dark:disabled{color:var(--devui-disabled-text, #adb0b8)}.devui-btn.devui-btn-text:disabled{color:var(--devui-disabled-text, #adb0b8)}.devui-btn.bordered.devui-btn-common{color:var(--devui-text, #252b3a);border-color:transparent}.devui-btn.bordered.devui-btn-common:hover,.devui-btn.bordered.devui-btn-common:focus{border-color:var(--devui-primary-hover, #7693f5)}.devui-btn.bordered.devui-btn-common:active{border-color:var(--devui-primary-active, #344899)}.devui-btn.bordered.devui-btn-stress,.devui-btn.bordered.devui-btn-primary{border-color:var(--devui-brand, #5e7ce0);color:var(--devui-brand, #5e7ce0);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-success{border-color:var(--devui-success, #50d4ab);color:var(--devui-success, #50d4ab);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-warning{border-color:var(--devui-warning, #fac20a);color:var(--devui-warning, #fac20a);background-color:var(--devui-block, #ffffff)}.devui-btn.bordered.devui-btn-danger{border-color:var(--devui-danger, #f66f6a);color:var(--devui-danger, #f66f6a);background-color:var(--devui-block, #ffffff)}.devui-btn.d-btn-icon:hover,.devui-btn.d-btn-icon:focus{border:1px solid var(--devui-list-item-hover-bg, #f2f5fc);background-color:var(--devui-list-item-hover-bg, #f2f5fc)}.devui-btn.d-btn-icon:disabled{background-color:var(--devui-disabled-bg, #f5f5f6)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap{color:var(--devui-text, #252b3a)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap .devui-icon-fix,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap .devui-icon-fix{color:var(--devui-text-weak, #575d6c)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap:hover,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap:hover{color:var(--devui-list-item-hover-text, #526ecc)}.devui-btn:not(:disabled).devui-btn-text.d-btn-icon-wrap:hover .devui-icon-fix,.devui-btn:not(:disabled).devui-btn-text-dark.d-btn-icon-wrap:hover .devui-icon-fix{color:var(--devui-icon-fill-active, #5e7ce0)}.devui-loading .devui-loading-default-spinner div{background-color:var(--devui-text, #252b3a)}.devui-btn-host{display:inline-block}.devui-btn{transition:background-color .2s;border-style:solid;white-space:nowrap;display:flex;align-items:center;justify-content:center}.devui-btn:disabled,.devui-btn[disabled]{cursor:not-allowed}.devui-btn.d-btn-icon{padding:7px 8px;line-height:1em;border:1px solid transparent}.devui-btn.d-btn-icon.devui-btn-xs,.devui-btn.d-btn-icon.devui-btn-sm{padding:5px}.devui-btn.d-btn-icon.devui-btn-xs{min-width:24px}.devui-btn.d-btn-icon.devui-btn-sm{min-width:24px}.devui-btn.d-btn-icon.devui-btn-lg{min-width:32px}.devui-btn.d-btn-icon.devui-btn-lg .icon{font-size:var(--devui-font-size-icon, 16px)}.devui-btn:not(.d-btn-icon) .icon-fix{font-size:var(--devui-font-size-icon, 16px)}.devui-icon-fix{position:relative;font-size:var(--devui-font-size, 12px)}.devui-btn.devui-btn-common:not(:disabled) .devui-icon-fix{color:var(--devui-text-weak, #575d6c)}.devui-btn.devui-btn-common:not(:disabled):hover .devui-icon-fix,.devui-btn.devui-btn-common:not(:disabled):active .devui-icon-fix,.devui-btn.devui-btn-common:not(:disabled):focus .devui-icon-fix{color:var(--devui-icon-fill-active, #5e7ce0)}.button-content{display:inline-block;position:relative}.clear-right-5{margin-right:5px}
@@ -0,0 +1,7 @@
1
+ import { App } from 'vue';
2
+ declare function install(app: App): void
3
+ declare const _default: {
4
+ install: typeof install;
5
+ version: string;
6
+ };
7
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { App } from 'vue';
2
+ declare function install(app: App): void
3
+ declare const _default: {
4
+ install: typeof install;
5
+ version: string;
6
+ };
7
+ export default _default;
@@ -17,7 +17,7 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, watch, onUnmounted, withDirectives, vShow, ref, reactive, getCurrentInstance, nextTick, toRef, onBeforeUnmount, isRef } from "vue";
20
+ import { defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, watch, onUnmounted, withDirectives, vShow, ref, reactive, toRef, isRef } from "vue";
21
21
  var overlay = "";
22
22
  function _isSlot(s) {
23
23
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
@@ -62,11 +62,40 @@ const overlayProps = {
62
62
  backdropClose: {
63
63
  type: Boolean,
64
64
  default: true
65
+ },
66
+ hasBackdrop: {
67
+ type: Boolean,
68
+ default: true
65
69
  }
66
70
  };
71
+ const fixedOverlayProps = __spreadProps(__spreadValues({}, overlayProps), {
72
+ overlayStyle: {
73
+ type: [String, Object],
74
+ default: void 0
75
+ }
76
+ });
77
+ const flexibleOverlayProps = __spreadValues({
78
+ origin: {
79
+ type: Object,
80
+ require: true
81
+ },
82
+ position: {
83
+ type: Object,
84
+ default: () => ({
85
+ originX: "left",
86
+ originY: "top",
87
+ overlayX: "left",
88
+ overlayY: "top"
89
+ })
90
+ }
91
+ }, overlayProps);
67
92
  function useOverlayLogic(props) {
68
93
  const backgroundClass = computed(() => {
69
- return ["devui-overlay-background", "devui-overlay-background__color", props.backgroundClass];
94
+ return [
95
+ "devui-overlay-background",
96
+ props.backgroundClass,
97
+ !props.hasBackdrop ? "devui-overlay-background__disabled" : "devui-overlay-background__color"
98
+ ];
70
99
  });
71
100
  const overlayClass = computed(() => {
72
101
  return "devui-overlay";
@@ -112,12 +141,7 @@ function useOverlayLogic(props) {
112
141
  }
113
142
  const FixedOverlay = defineComponent({
114
143
  name: "DFixedOverlay",
115
- props: __spreadProps(__spreadValues({}, overlayProps), {
116
- overlayStyle: {
117
- type: Object,
118
- default: void 0
119
- }
120
- }),
144
+ props: fixedOverlayProps,
121
145
  setup(props, ctx) {
122
146
  const {
123
147
  backgroundClass,
@@ -138,76 +162,61 @@ const FixedOverlay = defineComponent({
138
162
  });
139
163
  }
140
164
  });
165
+ function isComponent(target) {
166
+ return !!(target == null ? void 0 : target.$el);
167
+ }
168
+ function getElement(element) {
169
+ if (element instanceof Element) {
170
+ return element;
171
+ }
172
+ if (element && typeof element === "object" && element.$el instanceof Element) {
173
+ return element.$el;
174
+ }
175
+ return null;
176
+ }
141
177
  const FlexibleOverlay = defineComponent({
142
178
  name: "DFlexibleOverlay",
143
- props: __spreadValues({
144
- origin: {
145
- type: Object,
146
- require: true
147
- },
148
- position: {
149
- type: Object,
150
- default: () => ({
151
- originX: "left",
152
- originY: "top",
153
- overlayX: "left",
154
- overlayY: "top"
155
- })
156
- }
157
- }, overlayProps),
179
+ props: flexibleOverlayProps,
158
180
  emits: ["onUpdate:visible"],
159
181
  setup(props, ctx) {
160
182
  const overlayRef = ref(null);
161
183
  const positionedStyle = reactive({
162
184
  position: "absolute"
163
185
  });
164
- const instance = getCurrentInstance();
165
186
  onMounted(async () => {
166
- await nextTick();
167
- const overlay2 = overlayRef.value;
168
- if (!overlay2) {
169
- return;
170
- }
171
- const origin = getOrigin(props.origin);
172
- if (!origin) {
173
- return;
174
- }
175
- const handleRectChange = (rect) => {
176
- const point = calculatePosition(props.position, rect, origin);
187
+ const handleRectChange = (position, rect, origin) => {
188
+ const point = calculatePosition(position, rect, origin);
177
189
  positionedStyle.left = `${point.x}px`;
178
190
  positionedStyle.top = `${point.y}px`;
179
191
  };
180
- const handleChange = () => handleRectChange(overlay2.getBoundingClientRect());
181
- watch(toRef(props, "visible"), (visible, ov, onInvalidate) => {
182
- if (visible) {
183
- subscribeLayoutEvent(handleChange);
184
- } else {
185
- unsbscribeLayoutEvent(handleChange);
192
+ const locationElements = computed(() => {
193
+ const overlay2 = overlayRef.value;
194
+ const origin = getOrigin(props.origin);
195
+ if (!overlay2 || !origin) {
196
+ return;
186
197
  }
198
+ return {
199
+ origin,
200
+ overlay: overlay2
201
+ };
202
+ });
203
+ const visibleRef = toRef(props, "visible");
204
+ const positionRef = toRef(props, "position");
205
+ watch([locationElements, visibleRef, positionRef], async ([locationElements2, visible, position], ov, onInvalidate) => {
206
+ if (!visible || !locationElements2) {
207
+ return;
208
+ }
209
+ const {
210
+ origin,
211
+ overlay: overlay2
212
+ } = locationElements2;
213
+ handleRectChange(position, overlay2.getBoundingClientRect(), origin);
214
+ const unsubscriptions = [subscribeLayoutEvent(() => handleRectChange(position, overlay2.getBoundingClientRect(), origin)), subscribeOverlayResize(overlay2, (entries) => handleRectChange(position, entries[0].contentRect, origin)), subscribeOriginResize(origin, () => handleRectChange(position, overlay2.getBoundingClientRect(), origin))];
187
215
  onInvalidate(() => {
188
- unsbscribeLayoutEvent(handleChange);
216
+ unsubscriptions.forEach((fn) => fn());
189
217
  });
190
218
  });
191
- watch(toRef(props, "position"), () => {
192
- handleChange();
193
- });
194
- const resizeObserver = new ResizeObserver((entries) => {
195
- handleRectChange(entries[0].contentRect);
196
- });
197
- resizeObserver.observe(overlay2);
198
- onBeforeUnmount(() => {
199
- resizeObserver.disconnect();
200
- }, instance);
201
- if (origin instanceof Element) {
202
- const observer = new MutationObserver(handleChange);
203
- observer.observe(origin, {
204
- attributeFilter: ["style"]
205
- });
206
- onBeforeUnmount(() => {
207
- observer.disconnect();
208
- }, instance);
209
- }
210
- }, instance);
219
+ });
211
220
  const {
212
221
  backgroundClass,
213
222
  overlayClass,
@@ -216,6 +225,7 @@ const FlexibleOverlay = defineComponent({
216
225
  } = useOverlayLogic(props);
217
226
  return () => createVNode(CommonOverlay, null, {
218
227
  default: () => [withDirectives(createVNode("div", {
228
+ "style": props.backgroundStyle,
219
229
  "class": backgroundClass.value,
220
230
  "onClick": handleBackdropClick
221
231
  }, [createVNode("div", {
@@ -227,15 +237,6 @@ const FlexibleOverlay = defineComponent({
227
237
  });
228
238
  }
229
239
  });
230
- function getElement(element) {
231
- if (element instanceof Element) {
232
- return element;
233
- }
234
- if (element && typeof element === "object" && element.$el instanceof Element) {
235
- return element.$el;
236
- }
237
- return null;
238
- }
239
240
  function getOrigin(origin) {
240
241
  if (origin instanceof Element) {
241
242
  return origin;
@@ -243,17 +244,14 @@ function getOrigin(origin) {
243
244
  if (isRef(origin)) {
244
245
  return getElement(origin.value);
245
246
  }
247
+ if (isComponent(origin)) {
248
+ return getElement(origin);
249
+ }
246
250
  return origin;
247
251
  }
248
- function calculatePosition(position, panelOrRect, origin) {
252
+ function calculatePosition(position, rect, origin) {
249
253
  const originRect = getOriginRect(origin);
250
254
  const originPoint = getOriginRelativePoint(originRect, position);
251
- let rect;
252
- if (panelOrRect instanceof HTMLElement) {
253
- rect = panelOrRect.getBoundingClientRect();
254
- } else {
255
- rect = panelOrRect;
256
- }
257
255
  return getOverlayPoint(originPoint, rect, position);
258
256
  }
259
257
  function getOriginRect(origin) {
@@ -317,11 +315,31 @@ function subscribeLayoutEvent(event) {
317
315
  window.addEventListener("scroll", event, true);
318
316
  window.addEventListener("resize", event);
319
317
  window.addEventListener("orientationchange", event);
318
+ return () => {
319
+ window.removeEventListener("scroll", event, true);
320
+ window.removeEventListener("resize", event);
321
+ window.removeEventListener("orientationchange", event);
322
+ };
323
+ }
324
+ function subscribeOverlayResize(overlay2, callback) {
325
+ if (overlay2 instanceof Element) {
326
+ const resizeObserver = new ResizeObserver(callback);
327
+ resizeObserver.observe(overlay2);
328
+ return () => resizeObserver.disconnect();
329
+ }
330
+ return () => {
331
+ };
320
332
  }
321
- function unsbscribeLayoutEvent(event) {
322
- window.removeEventListener("scroll", event, true);
323
- window.removeEventListener("resize", event);
324
- window.removeEventListener("orientationchange", event);
333
+ function subscribeOriginResize(origin, callback) {
334
+ if (origin instanceof Element) {
335
+ const observer = new MutationObserver(callback);
336
+ observer.observe(origin, {
337
+ attributeFilter: ["style"]
338
+ });
339
+ return () => observer.disconnect();
340
+ }
341
+ return () => {
342
+ };
325
343
  }
326
344
  const inBrowser = typeof window !== "undefined";
327
345
  FlexibleOverlay.install = function(app) {