vue-devui 1.0.0-beta.11 → 1.0.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -18
- package/accordion/style.css +1 -1
- package/alert/index.es.js +5 -2
- package/alert/index.umd.js +1 -1
- package/auto-complete/index.d.ts +7 -0
- package/auto-complete/index.es.js +1121 -0
- package/auto-complete/index.umd.js +1 -0
- package/auto-complete/package.json +7 -0
- package/auto-complete/style.css +1 -0
- package/button/index.es.js +116 -113
- package/button/index.umd.js +1 -1
- package/button/style.css +1 -1
- package/carousel/index.es.js +5 -5
- package/carousel/index.umd.js +1 -1
- package/color-picker/index.d.ts +7 -0
- package/color-picker/index.es.js +2960 -0
- package/color-picker/index.umd.js +1 -0
- package/color-picker/package.json +7 -0
- package/color-picker/style.css +1 -0
- package/comment/index.es.js +3 -2
- package/comment/index.umd.js +1 -1
- package/comment/style.css +1 -1
- package/dragdrop/index.es.js +135 -10
- package/dragdrop/index.umd.js +1 -1
- package/drawer/index.es.js +142 -30
- package/drawer/index.umd.js +1 -1
- package/dropdown/index.es.js +30 -22
- package/dropdown/index.umd.js +1 -1
- package/dropdown/style.css +1 -1
- package/form/index.es.js +59 -17
- package/form/index.umd.js +1 -1
- package/gantt/index.es.js +3 -3
- package/gantt/index.umd.js +1 -1
- package/image-preview/index.es.js +33 -15
- package/image-preview/index.umd.js +1 -1
- package/modal/index.es.js +121 -118
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/nuxt/components/AutoComplete.js +3 -0
- package/nuxt/components/CarouselItem.js +3 -0
- package/nuxt/components/ColorPicker.js +3 -0
- package/nuxt/components/DrawerService.js +3 -0
- package/overlay/index.es.js +1 -1
- package/overlay/index.umd.js +1 -1
- package/package.json +21 -16
- package/popover/index.es.js +13 -4
- package/popover/index.umd.js +1 -1
- package/slider/index.es.js +2 -5
- package/slider/index.umd.js +1 -1
- package/slider/style.css +1 -1
- package/splitter/index.es.js +145 -14
- package/splitter/index.umd.js +1 -1
- package/splitter/style.css +1 -1
- package/statistic/index.es.js +2 -2
- package/statistic/index.umd.js +1 -1
- package/statistic/style.css +1 -1
- package/style.css +1 -1
- package/table/index.es.js +29 -21
- package/table/index.umd.js +1 -1
- package/table/style.css +1 -1
- package/tag/index.es.js +2 -2
- package/tag/index.umd.js +1 -1
- package/tag/style.css +1 -1
- package/time-picker/index.es.js +124 -116
- package/time-picker/index.umd.js +1 -1
- package/time-picker/style.css +1 -1
- package/toast/index.es.js +7 -4
- package/toast/index.umd.js +1 -1
- package/tooltip/index.es.js +69 -115
- package/tooltip/index.umd.js +1 -1
- package/transfer/index.es.js +570 -172
- package/transfer/index.umd.js +1 -1
- package/transfer/style.css +1 -1
- package/tree/index.es.js +6 -5
- package/tree/index.umd.js +1 -1
- package/tree-select/index.es.js +129 -34
- package/tree-select/index.umd.js +1 -1
- package/tree-select/style.css +1 -1
- package/upload/index.es.js +8 -5
- package/upload/index.umd.js +1 -1
- package/vue-devui.es.js +15782 -13138
- package/vue-devui.umd.js +14 -14
package/drawer/index.es.js
CHANGED
|
@@ -14,7 +14,11 @@ var __spreadValues = (a, b) => {
|
|
|
14
14
|
}
|
|
15
15
|
return a;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
var __publicField = (obj, key, value) => {
|
|
18
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
19
|
+
return value;
|
|
20
|
+
};
|
|
21
|
+
import { defineComponent, ref, inject, computed, createVNode, createTextVNode, toRefs, watch, provide, onUnmounted, Teleport, createApp } from "vue";
|
|
18
22
|
const drawerProps = {
|
|
19
23
|
width: {
|
|
20
24
|
type: String,
|
|
@@ -44,8 +48,18 @@ const drawerProps = {
|
|
|
44
48
|
type: Boolean,
|
|
45
49
|
default: true
|
|
46
50
|
},
|
|
51
|
+
destroyOnHide: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false
|
|
54
|
+
},
|
|
47
55
|
beforeHidden: {
|
|
48
56
|
type: [Promise, Function]
|
|
57
|
+
},
|
|
58
|
+
content: {
|
|
59
|
+
type: [Object, Function]
|
|
60
|
+
},
|
|
61
|
+
header: {
|
|
62
|
+
type: [Object, Function]
|
|
49
63
|
}
|
|
50
64
|
};
|
|
51
65
|
var drawerHeader = "";
|
|
@@ -55,6 +69,7 @@ var DrawerHeader = defineComponent({
|
|
|
55
69
|
setup(props, ctx) {
|
|
56
70
|
const isFullScreen = ref(false);
|
|
57
71
|
const visible = inject("visible");
|
|
72
|
+
const destroyOnHide = inject("destroyOnHide");
|
|
58
73
|
const fullScreenClassName = computed(() => isFullScreen.value ? "icon icon-minimize" : "icon icon-maxmize");
|
|
59
74
|
const handleFullScreen = (e) => {
|
|
60
75
|
e.stopPropagation();
|
|
@@ -68,7 +83,8 @@ var DrawerHeader = defineComponent({
|
|
|
68
83
|
fullScreenClassName,
|
|
69
84
|
visible,
|
|
70
85
|
handleFullScreen,
|
|
71
|
-
handleDrawerClose
|
|
86
|
+
handleDrawerClose,
|
|
87
|
+
destroyOnHide
|
|
72
88
|
};
|
|
73
89
|
},
|
|
74
90
|
render() {
|
|
@@ -76,12 +92,18 @@ var DrawerHeader = defineComponent({
|
|
|
76
92
|
handleFullScreen,
|
|
77
93
|
handleDrawerClose,
|
|
78
94
|
visible,
|
|
79
|
-
fullScreenClassName
|
|
95
|
+
fullScreenClassName,
|
|
96
|
+
destroyOnHide
|
|
80
97
|
} = this;
|
|
81
|
-
if (!visible)
|
|
98
|
+
if (destroyOnHide.value && !visible) {
|
|
82
99
|
return null;
|
|
100
|
+
}
|
|
101
|
+
const visibleVal = visible ? "visible" : "hidden";
|
|
83
102
|
return createVNode("div", {
|
|
84
|
-
"class": "devui-drawer-header"
|
|
103
|
+
"class": "devui-drawer-header",
|
|
104
|
+
"style": {
|
|
105
|
+
visibility: visibleVal
|
|
106
|
+
}
|
|
85
107
|
}, [createVNode("div", {
|
|
86
108
|
"class": "devui-drawer-header-item"
|
|
87
109
|
}, [createVNode("span", {
|
|
@@ -103,17 +125,26 @@ var DrawerContainer = defineComponent({
|
|
|
103
125
|
name: "DrawerContainer",
|
|
104
126
|
setup() {
|
|
105
127
|
const visible = inject("visible");
|
|
128
|
+
const destroyOnHide = inject("destroyOnHide");
|
|
106
129
|
return {
|
|
107
|
-
visible
|
|
130
|
+
visible,
|
|
131
|
+
destroyOnHide
|
|
108
132
|
};
|
|
109
133
|
},
|
|
110
134
|
render() {
|
|
111
135
|
const {
|
|
112
|
-
visible
|
|
136
|
+
visible,
|
|
137
|
+
destroyOnHide
|
|
113
138
|
} = this;
|
|
114
|
-
if (!visible)
|
|
139
|
+
if (destroyOnHide.value && !visible) {
|
|
115
140
|
return null;
|
|
116
|
-
|
|
141
|
+
}
|
|
142
|
+
const visibleVal = this.visible ? "visible" : "hidden";
|
|
143
|
+
return createVNode("div", {
|
|
144
|
+
"style": {
|
|
145
|
+
visibility: visibleVal
|
|
146
|
+
}
|
|
147
|
+
}, [createTextVNode("\u5185\u5BB9\u533A\u57DF")]);
|
|
117
148
|
}
|
|
118
149
|
});
|
|
119
150
|
var drawerBody = "";
|
|
@@ -130,6 +161,7 @@ var DrawerBody = defineComponent({
|
|
|
130
161
|
const width = inject("width");
|
|
131
162
|
const visible = inject("visible");
|
|
132
163
|
const backdropCloseable = inject("backdropCloseable");
|
|
164
|
+
const destroyOnHide = inject("destroyOnHide");
|
|
133
165
|
const navRight = computed(() => position.value === "right" ? {
|
|
134
166
|
"right": 0
|
|
135
167
|
} : {
|
|
@@ -152,7 +184,8 @@ var DrawerBody = defineComponent({
|
|
|
152
184
|
navWidth,
|
|
153
185
|
visible,
|
|
154
186
|
clickContent,
|
|
155
|
-
handleDrawerClose
|
|
187
|
+
handleDrawerClose,
|
|
188
|
+
destroyOnHide
|
|
156
189
|
};
|
|
157
190
|
},
|
|
158
191
|
render() {
|
|
@@ -163,14 +196,18 @@ var DrawerBody = defineComponent({
|
|
|
163
196
|
navRight,
|
|
164
197
|
navWidth,
|
|
165
198
|
visible,
|
|
166
|
-
handleDrawerClose
|
|
199
|
+
handleDrawerClose,
|
|
200
|
+
destroyOnHide
|
|
167
201
|
} = this;
|
|
168
|
-
if (!visible)
|
|
202
|
+
if (destroyOnHide.value && !visible) {
|
|
169
203
|
return null;
|
|
204
|
+
}
|
|
205
|
+
const visibleVal = visible ? "visible" : "hidden";
|
|
170
206
|
return createVNode("div", {
|
|
171
207
|
"class": "devui-drawer",
|
|
172
208
|
"style": {
|
|
173
|
-
zIndex: zindex
|
|
209
|
+
zIndex: zindex,
|
|
210
|
+
visibility: visibleVal
|
|
174
211
|
},
|
|
175
212
|
"onClick": handleDrawerClose
|
|
176
213
|
}, [isCover ? createVNode("div", {
|
|
@@ -188,7 +225,7 @@ var DrawerBody = defineComponent({
|
|
|
188
225
|
}, [slots.default ? slots.default() : null])])])]);
|
|
189
226
|
}
|
|
190
227
|
});
|
|
191
|
-
var Drawer = defineComponent({
|
|
228
|
+
var Drawer$1 = defineComponent({
|
|
192
229
|
name: "DDrawer",
|
|
193
230
|
props: drawerProps,
|
|
194
231
|
emits: ["close", "update:visible", "afterOpened"],
|
|
@@ -203,10 +240,11 @@ var Drawer = defineComponent({
|
|
|
203
240
|
isCover,
|
|
204
241
|
escKeyCloseable,
|
|
205
242
|
position,
|
|
206
|
-
backdropCloseable
|
|
243
|
+
backdropCloseable,
|
|
244
|
+
destroyOnHide
|
|
207
245
|
} = toRefs(props);
|
|
208
246
|
const isFullScreen = ref(false);
|
|
209
|
-
const
|
|
247
|
+
const fullscreen = () => {
|
|
210
248
|
isFullScreen.value = !isFullScreen.value;
|
|
211
249
|
};
|
|
212
250
|
const closeDrawer = async () => {
|
|
@@ -229,7 +267,9 @@ var Drawer = defineComponent({
|
|
|
229
267
|
watch(visible, (val) => {
|
|
230
268
|
if (val) {
|
|
231
269
|
emit("afterOpened");
|
|
232
|
-
|
|
270
|
+
if (destroyOnHide.value) {
|
|
271
|
+
isFullScreen.value = false;
|
|
272
|
+
}
|
|
233
273
|
}
|
|
234
274
|
if (escKeyCloseable && val) {
|
|
235
275
|
document.addEventListener("keyup", escCloseDrawer);
|
|
@@ -245,6 +285,7 @@ var Drawer = defineComponent({
|
|
|
245
285
|
provide("visible", visible);
|
|
246
286
|
provide("isFullScreen", isFullScreen);
|
|
247
287
|
provide("backdropCloseable", backdropCloseable);
|
|
288
|
+
provide("destroyOnHide", destroyOnHide);
|
|
248
289
|
onUnmounted(() => {
|
|
249
290
|
document.removeEventListener("keyup", escCloseDrawer);
|
|
250
291
|
});
|
|
@@ -252,36 +293,107 @@ var Drawer = defineComponent({
|
|
|
252
293
|
isFullScreen,
|
|
253
294
|
visible,
|
|
254
295
|
slots,
|
|
255
|
-
|
|
296
|
+
fullscreen,
|
|
256
297
|
closeDrawer
|
|
257
298
|
};
|
|
258
299
|
},
|
|
259
300
|
render() {
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
301
|
+
const {
|
|
302
|
+
fullscreen,
|
|
303
|
+
closeDrawer,
|
|
304
|
+
visible,
|
|
305
|
+
destroyOnHide
|
|
306
|
+
} = this;
|
|
307
|
+
if (destroyOnHide.value && !visible) {
|
|
263
308
|
return null;
|
|
309
|
+
}
|
|
310
|
+
const visibleVal = visible ? "visible" : "hidden";
|
|
264
311
|
return createVNode(Teleport, {
|
|
265
312
|
"to": "body"
|
|
266
313
|
}, {
|
|
267
|
-
default: () => [createVNode(DrawerBody,
|
|
268
|
-
|
|
269
|
-
|
|
314
|
+
default: () => [createVNode(DrawerBody, {
|
|
315
|
+
"style": {
|
|
316
|
+
visibility: visibleVal
|
|
317
|
+
}
|
|
318
|
+
}, {
|
|
319
|
+
default: () => [this.slots.header ? this.slots.header({
|
|
320
|
+
fullscreen,
|
|
321
|
+
closeDrawer
|
|
322
|
+
}) : createVNode(DrawerHeader, {
|
|
323
|
+
"onToggleFullScreen": fullscreen,
|
|
270
324
|
"onClose": closeDrawer
|
|
271
|
-
}, null), this.slots.
|
|
325
|
+
}, null), this.slots.content ? this.slots.content() : createVNode(DrawerContainer, null, null)]
|
|
272
326
|
})]
|
|
273
327
|
});
|
|
274
328
|
}
|
|
275
329
|
});
|
|
276
|
-
|
|
277
|
-
|
|
330
|
+
function createDrawerApp(props, drawer, el) {
|
|
331
|
+
if (drawer) {
|
|
332
|
+
return drawer;
|
|
333
|
+
}
|
|
334
|
+
const res = createApp(createVNode(Drawer$1, {
|
|
335
|
+
"visible": props.visible,
|
|
336
|
+
"onUpdate:visible": ($event) => props.visible = $event
|
|
337
|
+
}, {
|
|
338
|
+
header: props.header,
|
|
339
|
+
content: props.content
|
|
340
|
+
}));
|
|
341
|
+
res.mount(el);
|
|
342
|
+
return res;
|
|
343
|
+
}
|
|
344
|
+
class DrawerService {
|
|
345
|
+
static create(props, drawer) {
|
|
346
|
+
if (!drawer) {
|
|
347
|
+
drawer = new Drawer(props);
|
|
348
|
+
}
|
|
349
|
+
return drawer;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
class Drawer {
|
|
353
|
+
constructor(props) {
|
|
354
|
+
__publicField(this, "drawer", null);
|
|
355
|
+
__publicField(this, "div", null);
|
|
356
|
+
__publicField(this, "props", null);
|
|
357
|
+
__publicField(this, "hide", async () => {
|
|
358
|
+
var _a;
|
|
359
|
+
const beforeHidden = this.props.beforeHidden;
|
|
360
|
+
let result = (_a = typeof beforeHidden === "function" ? beforeHidden() : beforeHidden) != null ? _a : false;
|
|
361
|
+
if (result instanceof Promise) {
|
|
362
|
+
result = await result;
|
|
363
|
+
}
|
|
364
|
+
if (!result)
|
|
365
|
+
this.hideDirectly();
|
|
366
|
+
});
|
|
367
|
+
__publicField(this, "hideDirectly", () => {
|
|
368
|
+
this.drawer._instance.props.visible = false;
|
|
369
|
+
});
|
|
370
|
+
__publicField(this, "destroy", () => {
|
|
371
|
+
if (this.drawer) {
|
|
372
|
+
this.drawer.unmount();
|
|
373
|
+
this.drawer = null;
|
|
374
|
+
this.div.remove();
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
this.props = props;
|
|
378
|
+
}
|
|
379
|
+
show() {
|
|
380
|
+
if (!this.drawer) {
|
|
381
|
+
this.div = document.createElement("div");
|
|
382
|
+
this.drawer = createDrawerApp(this.props, this.drawer, this.div);
|
|
383
|
+
}
|
|
384
|
+
this.drawer._instance.props.visible = true;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
Drawer$1.install = function(app) {
|
|
388
|
+
app.component(Drawer$1.name, Drawer$1);
|
|
278
389
|
};
|
|
279
390
|
var index = {
|
|
280
391
|
title: "Drawer \u62BD\u5C49\u677F",
|
|
281
392
|
category: "\u53CD\u9988",
|
|
282
|
-
status: "
|
|
393
|
+
status: "75%",
|
|
283
394
|
install(app) {
|
|
284
|
-
app.use(Drawer);
|
|
395
|
+
app.use(Drawer$1);
|
|
396
|
+
app.config.globalProperties.$drawerService = DrawerService;
|
|
285
397
|
}
|
|
286
398
|
};
|
|
287
|
-
export { Drawer, index as default };
|
|
399
|
+
export { Drawer$1 as Drawer, DrawerService, index as default };
|
package/drawer/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var z=Object.defineProperty;var S=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var V=(r,e,o)=>e in r?z(r,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[e]=o,g=(r,e)=>{for(var o in e||(e={}))P.call(e,o)&&V(r,o,e[o]);if(S)for(var o of S(e))T.call(e,o)&&V(r,o,e[o]);return r};var p=(r,e,o)=>(V(r,typeof e!="symbol"?e+"":e,o),o);(function(r,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(r=typeof globalThis!="undefined"?globalThis:r||self,e(r.index={},r.Vue))})(this,function(r,e){"use strict";const o={width:{type:String,default:"300px"},visible:{type:Boolean,default:!1},zIndex:{type:Number,default:1e3},isCover:{type:Boolean,default:!0},escKeyCloseable:{type:Boolean,default:!0},position:{type:String,default:"left"},backdropCloseable:{type:Boolean,default:!0},destroyOnHide:{type:Boolean,default:!1},beforeHidden:{type:[Promise,Function]},content:{type:[Object,Function]},header:{type:[Object,Function]}};var E="",O=e.defineComponent({name:"DrawerHeader",emits:["toggleFullScreen","close"],setup(n,i){const t=e.ref(!1),s=e.inject("visible"),l=e.inject("destroyOnHide");return{fullScreenClassName:e.computed(()=>t.value?"icon icon-minimize":"icon icon-maxmize"),visible:s,handleFullScreen:c=>{c.stopPropagation(),t.value=!t.value,i.emit("toggleFullScreen")},handleDrawerClose:()=>{i.emit("close")},destroyOnHide:l}},render(){const{handleFullScreen:n,handleDrawerClose:i,visible:t,fullScreenClassName:s,destroyOnHide:l}=this;if(l.value&&!t)return null;const d=t?"visible":"hidden";return e.createVNode("div",{class:"devui-drawer-header",style:{visibility:d}},[e.createVNode("div",{class:"devui-drawer-header-item"},[e.createVNode("span",{class:"devui-drawer-header-item icon icon-more-operate"},null)]),e.createVNode("div",{class:"devui-drawer-header-item",onClick:n},[e.createVNode("span",{class:s},null)]),e.createVNode("div",{class:"devui-drawer-header-item",onClick:i},[e.createVNode("span",{class:"icon icon-close"},null)])])}}),j=e.defineComponent({name:"DrawerContainer",setup(){const n=e.inject("visible"),i=e.inject("destroyOnHide");return{visible:n,destroyOnHide:i}},render(){const{visible:n,destroyOnHide:i}=this;if(i.value&&!n)return null;const t=this.visible?"visible":"hidden";return e.createVNode("div",{style:{visibility:t}},[e.createTextVNode("\u5185\u5BB9\u533A\u57DF")])}}),_="",k=e.defineComponent({name:"DrawerBody",setup(n,{slots:i}){const t=e.inject("isFullScreen"),s=e.inject("closeDrawer"),l=e.inject("zindex"),d=e.inject("isCover"),h=e.inject("position"),v=e.inject("width"),c=e.inject("visible"),C=e.inject("backdropCloseable"),b=e.inject("destroyOnHide"),u=e.computed(()=>h.value==="right"?{right:0}:{left:0}),D=e.computed(()=>t.value?"100vw":v.value);return{zindex:l,slots:i,isCover:d,navRight:u,navWidth:D,visible:c,clickContent:a=>{a.stopPropagation()},handleDrawerClose:()=>{!C.value||s()},destroyOnHide:b}},render(){const{zindex:n,slots:i,isCover:t,navRight:s,navWidth:l,visible:d,handleDrawerClose:h,destroyOnHide:v}=this;if(v.value&&!d)return null;const c=d?"visible":"hidden";return e.createVNode("div",{class:"devui-drawer",style:{zIndex:n,visibility:c},onClick:h},[t?e.createVNode("div",{class:"devui-overlay-backdrop"},null):null,e.createVNode("div",{class:"devui-overlay-wrapper"},[e.createVNode("div",{class:"devui-drawer-nav",style:g({width:l},s)},[e.createVNode("div",{class:"devui-drawer-content",onClick:this.clickContent},[i.default?i.default():null])])])])}}),f=e.defineComponent({name:"DDrawer",props:o,emits:["close","update:visible","afterOpened"],setup(n,{emit:i,slots:t}){const{width:s,visible:l,zIndex:d,isCover:h,escKeyCloseable:v,position:c,backdropCloseable:C,destroyOnHide:b}=e.toRefs(n),u=e.ref(!1),D=()=>{u.value=!u.value},w=async()=>{var H;const a=n.beforeHidden;let m=(H=typeof a=="function"?a():a)!=null?H:!1;m instanceof Promise&&(m=await m),!m&&(i("update:visible",!1),i("close"))},y=a=>{a.code==="Escape"&&w()};return e.watch(l,a=>{a&&(i("afterOpened"),b.value&&(u.value=!1)),v&&a?document.addEventListener("keyup",y):document.removeEventListener("keyup",y)}),e.provide("closeDrawer",w),e.provide("zindex",d),e.provide("isCover",h),e.provide("position",c),e.provide("width",s),e.provide("visible",l),e.provide("isFullScreen",u),e.provide("backdropCloseable",C),e.provide("destroyOnHide",b),e.onUnmounted(()=>{document.removeEventListener("keyup",y)}),{isFullScreen:u,visible:l,slots:t,fullscreen:D,closeDrawer:w}},render(){const{fullscreen:n,closeDrawer:i,visible:t,destroyOnHide:s}=this;if(s.value&&!t)return null;const l=t?"visible":"hidden";return e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(k,{style:{visibility:l}},{default:()=>[this.slots.header?this.slots.header({fullscreen:n,closeDrawer:i}):e.createVNode(O,{onToggleFullScreen:n,onClose:i},null),this.slots.content?this.slots.content():e.createVNode(j,null,null)]})]})}});function F(n,i,t){if(i)return i;const s=e.createApp(e.createVNode(f,{visible:n.visible,"onUpdate:visible":l=>n.visible=l},{header:n.header,content:n.content}));return s.mount(t),s}class N{static create(i,t){return t||(t=new B(i)),t}}class B{constructor(i){p(this,"drawer",null);p(this,"div",null);p(this,"props",null);p(this,"hide",async()=>{var s;const i=this.props.beforeHidden;let t=(s=typeof i=="function"?i():i)!=null?s:!1;t instanceof Promise&&(t=await t),t||this.hideDirectly()});p(this,"hideDirectly",()=>{this.drawer._instance.props.visible=!1});p(this,"destroy",()=>{this.drawer&&(this.drawer.unmount(),this.drawer=null,this.div.remove())});this.props=i}show(){this.drawer||(this.div=document.createElement("div"),this.drawer=F(this.props,this.drawer,this.div)),this.drawer._instance.props.visible=!0}}f.install=function(n){n.component(f.name,f)};var x={title:"Drawer \u62BD\u5C49\u677F",category:"\u53CD\u9988",status:"75%",install(n){n.use(f),n.config.globalProperties.$drawerService=N}};r.Drawer=f,r.DrawerService=N,r.default=x,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});
|
package/dropdown/index.es.js
CHANGED
|
@@ -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 { ref, watch, defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, onUnmounted, withDirectives, vShow, reactive, toRef, isRef, toRefs
|
|
20
|
+
import { ref, watch, defineComponent, createVNode, Teleport, Transition, renderSlot, isVNode, computed, onMounted, onUnmounted, withDirectives, vShow, reactive, toRef, isRef, toRefs } from "vue";
|
|
21
21
|
const dropdownProps = {
|
|
22
22
|
origin: {
|
|
23
23
|
type: Object
|
|
@@ -45,6 +45,10 @@ const dropdownProps = {
|
|
|
45
45
|
showAnimation: {
|
|
46
46
|
type: Boolean,
|
|
47
47
|
default: true
|
|
48
|
+
},
|
|
49
|
+
width: {
|
|
50
|
+
type: [Number, String],
|
|
51
|
+
default: "102px"
|
|
48
52
|
}
|
|
49
53
|
};
|
|
50
54
|
function isComponent(target) {
|
|
@@ -328,7 +332,7 @@ const FlexibleOverlay = defineComponent({
|
|
|
328
332
|
overlayClass,
|
|
329
333
|
handleBackdropClick,
|
|
330
334
|
handleOverlayBubbleCancel
|
|
331
|
-
} = useOverlayLogic(props);
|
|
335
|
+
} = useOverlayLogic(props, ctx);
|
|
332
336
|
return () => createVNode(CommonOverlay, null, {
|
|
333
337
|
default: () => [withDirectives(createVNode("div", {
|
|
334
338
|
"style": props.backgroundStyle,
|
|
@@ -490,27 +494,31 @@ var Dropdown = defineComponent({
|
|
|
490
494
|
const animatedVisible = computed(() => {
|
|
491
495
|
return props.showAnimation ? visible.value : true;
|
|
492
496
|
});
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
497
|
+
const wrapStyle = computed(() => typeof props.width === "string" ? {
|
|
498
|
+
width: props.width
|
|
499
|
+
} : {
|
|
500
|
+
width: `${props.width}px`
|
|
501
|
+
});
|
|
502
|
+
return () => createVNode(FlexibleOverlay, {
|
|
503
|
+
"origin": props.origin,
|
|
504
|
+
"visible": visible.value,
|
|
505
|
+
"onUpdate:visible": ($event) => visible.value = $event,
|
|
506
|
+
"position": position,
|
|
507
|
+
"hasBackdrop": false
|
|
508
|
+
}, {
|
|
509
|
+
default: () => [createVNode(Transition, {
|
|
510
|
+
"name": "devui-dropdown-fade"
|
|
500
511
|
}, {
|
|
501
|
-
default: () =>
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
})]
|
|
512
|
-
})]);
|
|
513
|
-
};
|
|
512
|
+
default: () => {
|
|
513
|
+
var _a, _b;
|
|
514
|
+
return [withDirectives(createVNode("div", {
|
|
515
|
+
"ref": dropdownEl,
|
|
516
|
+
"class": "devui-dropdown-menu-wrap",
|
|
517
|
+
"style": wrapStyle.value
|
|
518
|
+
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]), [[vShow, animatedVisible.value]])];
|
|
519
|
+
}
|
|
520
|
+
})]
|
|
521
|
+
});
|
|
514
522
|
}
|
|
515
523
|
});
|
|
516
524
|
Dropdown.install = function(app) {
|
package/dropdown/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Q=Object.defineProperty,W=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var X=(
|
|
1
|
+
var Q=Object.defineProperty,W=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var X=(i,t,v)=>t in i?Q(i,t,{enumerable:!0,configurable:!0,writable:!0,value:v}):i[t]=v,R=(i,t)=>{for(var v in t||(t={}))ee.call(t,v)&&X(i,v,t[v]);if(j)for(var v of j(t))te.call(t,v)&&X(i,v,t[v]);return i},Y=(i,t)=>W(i,Z(t));(function(i,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(i=typeof globalThis!="undefined"?globalThis:i||self,t(i.index={},i.Vue))})(this,function(i,t){"use strict";const v={origin:{type:Object},isOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},closeScope:{type:String,default:"all"},closeOnMouseLeaveMenu:{type:Boolean,default:!1},showAnimation:{type:Boolean,default:!0},width:{type:[Number,String],default:"102px"}};function _(e){return!!(e==null?void 0:e.$el)}function S(e){return e instanceof Element?e:e&&typeof e=="object"&&e.$el instanceof Element?e.$el:null}function w(e,o,n){return e==null||e.addEventListener(o,n),()=>{e==null||e.removeEventListener(o,n)}}const F=({visible:e,trigger:o,origin:n,closeScope:r,closeOnMouseLeaveMenu:s})=>{const u=t.ref(),l=()=>{r.value!=="none"&&(e.value=!1)};return t.watch([o,n,u],([c,b,f],m,h)=>{const a=S(b);if(!a||!f)return;const y=[w(f,"click",()=>{r.value==="all"&&(e.value=!1)})];if(c==="click")y.push(w(a,"click",()=>e.value=!e.value),w(document,"click",d=>{if(!e.value)return;const p=d.target;a.contains(p)||f.contains(p)||l()}),w(f,"mouseleave",()=>{s.value&&(e.value=!1)}));else if(c==="hover"){let d=!1,p=!1;const O=async g=>{await new Promise(k=>setTimeout(k,50)),!(g==="origin"&&d||g==="dropdown"&&p)&&l()};y.push(w(a,"mouseenter",()=>{p=!0,e.value=!0}),w(a,"mouseleave",()=>{p=!1,s.value||O("origin")}),w(f,"mouseenter",()=>{d=!0,e.value=!0}),w(f,"mouseleave",()=>{d=!1,O("dropdown")}))}h(()=>y.forEach(d=>d()))}),{dropdownEl:u}};var ne="";function M(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const V=t.defineComponent({setup(e,o){return()=>{let n;return t.createVNode(t.Teleport,{to:"#d-overlay-anchor"},{default:()=>[t.createVNode(t.Transition,{name:"devui-overlay-fade"},M(n=t.renderSlot(o.slots,"default"))?n:{default:()=>[n]})]})}}}),D={visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}},N=["update:visible","backdropClick"],T=Y(R({},D),{overlayStyle:{type:[String,Object],default:void 0}}),$=R({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},D);function L(e,o){const n=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),r=t.computed(()=>"devui-overlay"),s=l=>{var c;l.preventDefault(),(c=e.onBackdropClick)==null||c.call(e),e.backdropClose&&o.emit("update:visible",!1)},u=l=>l.cancelBubble=!0;return t.onMounted(()=>{const l=document.body,c=l.style.overflow,b=l.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([f,m])=>{if(m){const h=l.getBoundingClientRect().y;f?(l.style.overflowY="scroll",l.style.position=f?"fixed":"",l.style.top=`${h}px`):(l.style.overflowY=c,l.style.position=b,l.style.top="",window.scrollTo(0,-h))}}),t.onUnmounted(()=>{document.body.style.overflow=c})}),{backgroundClass:n,overlayClass:r,handleBackdropClick:s,handleOverlayBubbleCancel:u}}const E=t.defineComponent({name:"DFixedOverlay",props:T,emits:N,setup(e,o){const{backgroundClass:n,overlayClass:r,handleBackdropClick:s,handleOverlayBubbleCancel:u}=L(e,o);return()=>t.createVNode(V,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:n.value,style:e.backgroundStyle,onClick:s},[t.createVNode("div",{class:r.value,style:e.overlayStyle,onClick:u},[t.renderSlot(o.slots,"default")])]),[[t.vShow,e.visible]])]})}}),B=t.defineComponent({name:"DFlexibleOverlay",props:$,emits:N,setup(e,o){const n=t.ref(null),r=t.reactive({position:"absolute"});t.onMounted(async()=>{const b=(a,y,d)=>{const p=P(a,y,d);r.left=`${p.x}px`,r.top=`${p.y}px`},f=t.computed(()=>{const a=n.value,y=z(e.origin);if(!(!a||!y))return{origin:y,overlay:a}}),m=t.toRef(e,"visible"),h=t.toRef(e,"position");t.watch([f,m,h],async([a,y,d],p,O)=>{if(!y||!a)return;const{origin:g,overlay:k}=a;b(d,k.getBoundingClientRect(),g);const K=[G(()=>b(d,k.getBoundingClientRect(),g)),H(k,x=>b(d,x[0].contentRect,g)),I(g,()=>b(d,k.getBoundingClientRect(),g))];O(()=>{K.forEach(x=>x())})})});const{backgroundClass:s,overlayClass:u,handleBackdropClick:l,handleOverlayBubbleCancel:c}=L(e,o);return()=>t.createVNode(V,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:s.value,onClick:l},[t.createVNode("div",{ref:n,class:u.value,style:r,onClick:c},[t.renderSlot(o.slots,"default")])]),[[t.vShow,e.visible]])]})}});function z(e){return e instanceof Element?e:t.isRef(e)?S(e.value):_(e)?S(e):e}function P(e,o,n){const r=A(n),s=U(r,e);return q(s,o,e)}function A(e){if(e instanceof Element)return e.getBoundingClientRect();const o=e.width||0,n=e.height||0;return{top:e.y,bottom:e.y+n,left:e.x,right:e.x+o,height:n,width:o}}function q(e,o,n){let r;const{width:s,height:u}=o;n.overlayX=="center"?r=e.x-s/2:r=n.overlayX=="left"?e.x:e.x-s;let l;return n.overlayY=="center"?l=e.y-u/2:l=n.overlayY=="top"?e.y:e.y-u,{x:r,y:l}}function U(e,o){let n;if(o.originX=="center")n=e.left+e.width/2;else{const s=e.left,u=e.right;n=o.originX=="left"?s:u}let r;return o.originY=="center"?r=e.top+e.height/2:r=o.originY=="top"?e.top:e.bottom,{x:n,y:r}}function G(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 H(e,o){if(e instanceof Element){const n=new ResizeObserver(o);return n.observe(e),()=>n.disconnect()}return()=>{}}function I(e,o){if(e instanceof Element){const n=new MutationObserver(o);return n.observe(e,{attributeFilter:["style"]}),()=>n.disconnect()}return()=>{}}B.install=function(e){e.component(B.name,B)},E.install=function(e){e.component(E.name,E)};var oe="",C=t.defineComponent({name:"DDropdown",props:v,emits:[],setup(e,o){const{isOpen:n,origin:r,trigger:s,closeScope:u,closeOnMouseLeaveMenu:l}=t.toRefs(e),c=t.ref(!1);t.watch(n,a=>{c.value=a},{immediate:!0});const b={originX:"center",originY:"bottom",overlayX:"center",overlayY:"top"},{dropdownEl:f}=F({visible:c,origin:r,trigger:s,closeScope:u,closeOnMouseLeaveMenu:l}),m=t.computed(()=>e.showAnimation?c.value:!0),h=t.computed(()=>typeof e.width=="string"?{width:e.width}:{width:`${e.width}px`});return()=>t.createVNode(B,{origin:e.origin,visible:c.value,"onUpdate:visible":a=>c.value=a,position:b,hasBackdrop:!1},{default:()=>[t.createVNode(t.Transition,{name:"devui-dropdown-fade"},{default:()=>{var a,y;return[t.withDirectives(t.createVNode("div",{ref:f,class:"devui-dropdown-menu-wrap",style:h.value},[(y=(a=o.slots).default)==null?void 0:y.call(a)]),[[t.vShow,m.value]])]}})]})}});C.install=function(e){e.component(C.name,C)};var J={title:"Dropdown \u4E0B\u62C9\u83DC\u5355",category:"\u5BFC\u822A",status:"10%",install(e){e.use(C)}};i.Dropdown=C,i.default=J,Object.defineProperty(i,"__esModule",{value:!0}),i[Symbol.toStringTag]="Module"});
|
package/dropdown/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}.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-dropdown span.icon-chevron-down,.devui-dropdown span.icon-select-arrow{display:inline-block;vertical-align:text-top}.devui-dropdown-animation span.icon-chevron-down,.devui-dropdown-animation span.icon-select-arrow{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-dropdown.open span.icon-chevron-down,.devui-dropdown.open span.icon-select-arrow{transform:rotate(180deg)}@keyframes d-dropdown-fade{0%{opacity:0;transform:scaleY(.9999) scaleY(0)}to{opacity:1;transform:scaleY(.8) scaleY(4px)}}.devui-dropdown-fade-enter{opacity:0}.devui-dropdown-fade-enter-active{animation-name:d-dropdown-fade;animation-duration:.3s}.devui-dropdown-fade-leave{opacity:1}.devui-dropdown-fade-leave-active{animation-name:d-dropdown-fade;animation-duration:.3s;animation-direction:reverse}
|
|
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-dropdown span.icon-chevron-down,.devui-dropdown span.icon-select-arrow{display:inline-block;vertical-align:text-top}.devui-dropdown-menu-wrap .devui-dropdown-menu{width:100%}.devui-dropdown-animation span.icon-chevron-down,.devui-dropdown-animation span.icon-select-arrow{transition:transform var(--devui-animation-duration-slow, .3s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}.devui-dropdown.open span.icon-chevron-down,.devui-dropdown.open span.icon-select-arrow{transform:rotate(180deg)}@keyframes d-dropdown-fade{0%{opacity:0;transform:scaleY(.9999) scaleY(0)}to{opacity:1;transform:scaleY(.8) scaleY(4px)}}.devui-dropdown-fade-enter{opacity:0}.devui-dropdown-fade-enter-active{animation-name:d-dropdown-fade;animation-duration:.3s}.devui-dropdown-fade-leave{opacity:1}.devui-dropdown-fade-leave-active{animation-name:d-dropdown-fade;animation-duration:.3s;animation-direction:reverse}
|