vue-devui 1.0.0-beta.10 → 1.0.0-beta.11
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 +31 -36
- package/accordion/index.es.js +309 -38
- package/accordion/index.umd.js +1 -1
- package/accordion/style.css +1 -1
- package/button/index.es.js +203 -1
- package/button/index.umd.js +1 -1
- package/button/style.css +1 -1
- package/drawer/index.es.js +3 -4
- package/drawer/index.umd.js +1 -1
- package/editable-select/index.es.js +67 -3
- package/editable-select/index.umd.js +11 -11
- package/modal/index.es.js +198 -0
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/package.json +1 -1
- package/progress/index.es.js +8 -8
- package/progress/index.umd.js +3 -3
- package/radio/index.es.js +5 -5
- package/radio/index.umd.js +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 +207 -5
- package/table/index.umd.js +1 -1
- package/table/style.css +1 -1
- package/time-picker/index.es.js +203 -1
- package/time-picker/index.umd.js +1 -1
- package/time-picker/style.css +1 -1
- package/toast/index.es.js +1 -1
- package/toast/index.umd.js +1 -1
- package/toast/style.css +1 -1
- package/transfer/style.css +1 -1
- package/upload/index.es.js +158 -503
- package/upload/index.umd.js +1 -1
- package/upload/style.css +1 -1
- package/vue-devui.es.js +857 -869
- package/vue-devui.umd.js +18 -18
- package/nuxt/components/MultiUpload.js +0 -3
package/button/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, createVNode, ref, computed, withDirectives, mergeProps, resolveDirective, h, render } from "vue";
|
|
18
22
|
var Icon = defineComponent({
|
|
19
23
|
name: "DIcon",
|
|
20
24
|
props: {
|
|
@@ -176,7 +180,205 @@ var Button = defineComponent({
|
|
|
176
180
|
};
|
|
177
181
|
}
|
|
178
182
|
});
|
|
183
|
+
class View {
|
|
184
|
+
constructor() {
|
|
185
|
+
__publicField(this, "top", "50%");
|
|
186
|
+
__publicField(this, "left", "50%");
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const componentProps = {
|
|
190
|
+
message: String,
|
|
191
|
+
backdrop: Boolean,
|
|
192
|
+
view: {
|
|
193
|
+
type: Object,
|
|
194
|
+
default: () => new View()
|
|
195
|
+
},
|
|
196
|
+
zIndex: Number,
|
|
197
|
+
isFull: {
|
|
198
|
+
type: Boolean,
|
|
199
|
+
default: false
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
class LoadingProps {
|
|
203
|
+
constructor() {
|
|
204
|
+
__publicField(this, "target");
|
|
205
|
+
__publicField(this, "message");
|
|
206
|
+
__publicField(this, "loadingTemplateRef");
|
|
207
|
+
__publicField(this, "backdrop", true);
|
|
208
|
+
__publicField(this, "positionType", "relative");
|
|
209
|
+
__publicField(this, "view", new View());
|
|
210
|
+
__publicField(this, "zIndex");
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
var loading = "";
|
|
214
|
+
var Loading = defineComponent({
|
|
215
|
+
name: "DLoading",
|
|
216
|
+
inheritAttrs: false,
|
|
217
|
+
props: componentProps,
|
|
218
|
+
setup(props) {
|
|
219
|
+
const style = {
|
|
220
|
+
top: props.view.top,
|
|
221
|
+
left: props.view.left,
|
|
222
|
+
zIndex: props.zIndex
|
|
223
|
+
};
|
|
224
|
+
if (!props.message) {
|
|
225
|
+
style.background = "none";
|
|
226
|
+
}
|
|
227
|
+
const isShow = ref(false);
|
|
228
|
+
const open = () => {
|
|
229
|
+
isShow.value = true;
|
|
230
|
+
};
|
|
231
|
+
const close = () => {
|
|
232
|
+
isShow.value = false;
|
|
233
|
+
};
|
|
234
|
+
return {
|
|
235
|
+
style,
|
|
236
|
+
isShow,
|
|
237
|
+
open,
|
|
238
|
+
close
|
|
239
|
+
};
|
|
240
|
+
},
|
|
241
|
+
render() {
|
|
242
|
+
var _a;
|
|
243
|
+
const {
|
|
244
|
+
isShow,
|
|
245
|
+
isFull,
|
|
246
|
+
backdrop,
|
|
247
|
+
style,
|
|
248
|
+
message,
|
|
249
|
+
$slots
|
|
250
|
+
} = this;
|
|
251
|
+
return isShow && createVNode("div", {
|
|
252
|
+
"class": ["devui-loading-contanier", isFull ? "devui-loading--full" : ""]
|
|
253
|
+
}, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
|
|
254
|
+
"class": "devui-loading-wrapper"
|
|
255
|
+
}, [backdrop ? createVNode("div", {
|
|
256
|
+
"class": "devui-loading-mask"
|
|
257
|
+
}, null) : null, createVNode("div", {
|
|
258
|
+
"style": style,
|
|
259
|
+
"class": "devui-loading-area"
|
|
260
|
+
}, [createVNode("div", {
|
|
261
|
+
"class": "devui-busy-default-spinner"
|
|
262
|
+
}, [createVNode("div", {
|
|
263
|
+
"class": "devui-loading-bar1"
|
|
264
|
+
}, null), createVNode("div", {
|
|
265
|
+
"class": "devui-loading-bar2"
|
|
266
|
+
}, null), createVNode("div", {
|
|
267
|
+
"class": "devui-loading-bar3"
|
|
268
|
+
}, null), createVNode("div", {
|
|
269
|
+
"class": "devui-loading-bar4"
|
|
270
|
+
}, null)]), message ? createVNode("span", {
|
|
271
|
+
"class": "devui-loading-text"
|
|
272
|
+
}, [message]) : null])])]);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
const COMPONENT_CONTAINER_SYMBOL = Symbol("dev_component_container");
|
|
276
|
+
function createComponent(Component, props, children = null) {
|
|
277
|
+
const vnode = h(Component, __spreadValues({}, props), children);
|
|
278
|
+
const container = document.createElement("div");
|
|
279
|
+
vnode[COMPONENT_CONTAINER_SYMBOL] = container;
|
|
280
|
+
render(vnode, container);
|
|
281
|
+
return vnode.component;
|
|
282
|
+
}
|
|
283
|
+
function unmountComponent(ComponnetInstance) {
|
|
284
|
+
render(null, ComponnetInstance == null ? void 0 : ComponnetInstance.vnode[COMPONENT_CONTAINER_SYMBOL]);
|
|
285
|
+
}
|
|
286
|
+
const loadingConstructor = defineComponent(Loading);
|
|
287
|
+
const cacheInstance = new WeakSet();
|
|
288
|
+
const isEmpty = (val) => {
|
|
289
|
+
if (!val)
|
|
290
|
+
return true;
|
|
291
|
+
if (Array.isArray(val))
|
|
292
|
+
return val.length === 0;
|
|
293
|
+
if (val instanceof Set || val instanceof Map)
|
|
294
|
+
return val.size === 0;
|
|
295
|
+
if (val instanceof Promise)
|
|
296
|
+
return false;
|
|
297
|
+
if (typeof val === "object") {
|
|
298
|
+
try {
|
|
299
|
+
return Object.keys(val).length === 0;
|
|
300
|
+
} catch (e) {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return false;
|
|
305
|
+
};
|
|
306
|
+
const getType = (vari) => {
|
|
307
|
+
return Object.prototype.toString.call(vari).slice(8, -1).toLowerCase();
|
|
308
|
+
};
|
|
309
|
+
const isPromise = (value) => {
|
|
310
|
+
const type = getType(value);
|
|
311
|
+
switch (type) {
|
|
312
|
+
case "promise":
|
|
313
|
+
return [value];
|
|
314
|
+
case "array":
|
|
315
|
+
if (value.some((val) => getType(val) !== "promise")) {
|
|
316
|
+
console.error(new TypeError("Binding values should all be of type Promise"));
|
|
317
|
+
return "error";
|
|
318
|
+
}
|
|
319
|
+
return value;
|
|
320
|
+
default:
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
const unmount = (el) => {
|
|
325
|
+
cacheInstance.delete(el);
|
|
326
|
+
el.instance.proxy.close();
|
|
327
|
+
unmountComponent(el.instance);
|
|
328
|
+
};
|
|
329
|
+
const toggleLoading = (el, binding) => {
|
|
330
|
+
if (binding.value) {
|
|
331
|
+
const vals = isPromise(binding.value);
|
|
332
|
+
if (vals === "error")
|
|
333
|
+
return;
|
|
334
|
+
el.instance.proxy.open();
|
|
335
|
+
el.appendChild(el.mask);
|
|
336
|
+
cacheInstance.add(el);
|
|
337
|
+
if (vals) {
|
|
338
|
+
Promise.all(vals).catch((err) => {
|
|
339
|
+
console.error(new Error("Promise handling errors"), err);
|
|
340
|
+
}).finally(() => {
|
|
341
|
+
unmount(el);
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
} else {
|
|
345
|
+
unmount(el);
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
const removeAttribute = (el) => {
|
|
349
|
+
el.removeAttribute("zindex");
|
|
350
|
+
el.removeAttribute("positiontype");
|
|
351
|
+
el.removeAttribute("backdrop");
|
|
352
|
+
el.removeAttribute("message");
|
|
353
|
+
el.removeAttribute("view");
|
|
354
|
+
el.removeAttribute("loadingtemplateref");
|
|
355
|
+
};
|
|
356
|
+
const handleProps = (el, vprops) => {
|
|
357
|
+
const props = __spreadValues(__spreadValues({}, new LoadingProps()), vprops);
|
|
358
|
+
const loadingTemplateRef = props.loadingTemplateRef;
|
|
359
|
+
const loadingInstance = createComponent(loadingConstructor, __spreadValues({}, props), loadingTemplateRef ? () => loadingTemplateRef : null);
|
|
360
|
+
el.style.position = props.positionType;
|
|
361
|
+
el.options = props;
|
|
362
|
+
el.instance = loadingInstance;
|
|
363
|
+
el.mask = loadingInstance.proxy.$el;
|
|
364
|
+
};
|
|
365
|
+
const loadingDirective = {
|
|
366
|
+
mounted: function(el, binding, vnode) {
|
|
367
|
+
handleProps(el, vnode.props);
|
|
368
|
+
removeAttribute(el);
|
|
369
|
+
!isEmpty(binding.value) && toggleLoading(el, binding);
|
|
370
|
+
},
|
|
371
|
+
updated: function(el, binding, vnode) {
|
|
372
|
+
if (!isEmpty(binding.value) && cacheInstance.has(el) || isEmpty(binding.value) && !cacheInstance.has(el))
|
|
373
|
+
return;
|
|
374
|
+
!cacheInstance.has(el) && handleProps(el, vnode.props);
|
|
375
|
+
removeAttribute(el);
|
|
376
|
+
toggleLoading(el, binding);
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
defineComponent(Loading);
|
|
179
380
|
Button.install = function(app) {
|
|
381
|
+
app.directive("dLoading", loadingDirective);
|
|
180
382
|
app.component(Button.name, Button);
|
|
181
383
|
};
|
|
182
384
|
var index = {
|
package/button/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var F=Object.defineProperty;var L=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var N=(i,t,r)=>t in i?F(i,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[t]=r,u=(i,t)=>{for(var r in t||(t={}))W.call(t,r)&&N(i,r,t[r]);if(L)for(var r of L(t))q.call(t,r)&&N(i,r,t[r]);return i};var d=(i,t,r)=>(N(i,typeof t!="symbol"?t+"":t,r),r);(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";var r=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 u({},e)},render(){const{name:e,size:n,color:o,classPrefix:s}=this;return/^((https?):)?\/\//.test(e)?t.createVNode("img",{src:e,alt:e.split("/")[e.split("/").length-1],style:{width:n,verticalAlign:"text-bottom"}},null):t.createVNode("i",{class:`${s} ${s}-${e}`,style:{fontSize:n,color:o}},null)}});r.install=function(e){e.component(r.name,r)};const V={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 Y="",f=t.defineComponent({name:"DButton",props:V,setup(e,n){const o=t.ref(null),s=l=>{var c;e.showLoading||(c=e.onClick)==null||c.call(e,l)},a=t.computed(()=>n.slots.default),m=t.computed(()=>{const{btnStyle:l,size:c,position:w,bordered:S,icon:y}=e,b=`devui-btn devui-btn-${l} devui-btn-${c} devui-btn-${w}`,h=S?"bordered":"",R=!!y&&!a.value&&l!=="primary"?"d-btn-icon":"";return`${b} ${h} ${R} ${y?"d-btn-icon-wrap":""}`}),g=t.computed(()=>{if(!e.icon)return;const l="devui-icon-fix icon";return a.value?`${l} clear-right-5`:l});return()=>{var b,h;const{icon:l,type:c,disabled:w,showLoading:S,width:y}=e;return t.withDirectives(t.createVNode("div",t.mergeProps({class:"devui-btn-host"},n.attrs),[t.createVNode("button",{class:m.value,type:c,disabled:w,style:{width:y},onClick:s},[l?t.createVNode(r,{name:l,class:g.value},null):null,t.createVNode("span",{class:"button-content",ref:o},[(h=(b=n.slots).default)==null?void 0:h.call(b)])])]),[[t.resolveDirective("dLoading"),S]])}}});class C{constructor(){d(this,"top","50%");d(this,"left","50%")}}const $={message:String,backdrop:Boolean,view:{type:Object,default:()=>new C},zIndex:Number,isFull:{type:Boolean,default:!1}};class I{constructor(){d(this,"target");d(this,"message");d(this,"loadingTemplateRef");d(this,"backdrop",!0);d(this,"positionType","relative");d(this,"view",new C);d(this,"zIndex")}}var G="",P=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:$,setup(e){const n={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(n.background="none");const o=t.ref(!1);return{style:n,isShow:o,open:()=>{o.value=!0},close:()=>{o.value=!1}}},render(){var g;const{isShow:e,isFull:n,backdrop:o,style:s,message:a,$slots:m}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((g=m.default)==null?void 0:g.call(m))||t.createVNode("div",{class:"devui-loading-wrapper"},[o?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:s,class:"devui-loading-area"},[t.createVNode("div",{class:"devui-busy-default-spinner"},[t.createVNode("div",{class:"devui-loading-bar1"},null),t.createVNode("div",{class:"devui-loading-bar2"},null),t.createVNode("div",{class:"devui-loading-bar3"},null),t.createVNode("div",{class:"devui-loading-bar4"},null)]),a?t.createVNode("span",{class:"devui-loading-text"},[a]):null])])])}});const k=Symbol("dev_component_container");function O(e,n,o=null){const s=t.h(e,u({},n),o),a=document.createElement("div");return s[k]=a,t.render(s,a),s.component}function E(e){t.render(null,e==null?void 0:e.vnode[k])}const j=t.defineComponent(P),p=new WeakSet,v=e=>{if(!e)return!0;if(Array.isArray(e))return e.length===0;if(e instanceof Set||e instanceof Map)return e.size===0;if(e instanceof Promise)return!1;if(typeof e=="object")try{return Object.keys(e).length===0}catch{return!1}return!1},A=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),D=e=>{switch(A(e)){case"promise":return[e];case"array":return e.some(o=>A(o)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},x=e=>{p.delete(e),e.instance.proxy.close(),E(e.instance)},B=(e,n)=>{if(n.value){const o=D(n.value);if(o==="error")return;e.instance.proxy.open(),e.appendChild(e.mask),p.add(e),o&&Promise.all(o).catch(s=>{console.error(new Error("Promise handling errors"),s)}).finally(()=>{x(e)})}else x(e)},T=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},z=(e,n)=>{const o=u(u({},new I),n),s=o.loadingTemplateRef,a=O(j,u({},o),s?()=>s:null);e.style.position=o.positionType,e.options=o,e.instance=a,e.mask=a.proxy.$el},_={mounted:function(e,n,o){z(e,o.props),T(e),!v(n.value)&&B(e,n)},updated:function(e,n,o){!v(n.value)&&p.has(e)||v(n.value)&&!p.has(e)||(!p.has(e)&&z(e,o.props),T(e),B(e,n))}};t.defineComponent(P),f.install=function(e){e.directive("dLoading",_),e.component(f.name,f)};var M={title:"Button \u6309\u94AE",category:"\u901A\u7528",status:"100%",install(e){e.use(f)}};i.Button=f,i.buttonProps=V,i.default=M,Object.defineProperty(i,"__esModule",{value:!0}),i[Symbol.toStringTag]="Module"});
|
package/button/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.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-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-success{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-success, #50d4ab)}.devui-btn.devui-btn-warning{color:var(--devui-light-text, #ffffff);min-width:64px;background-color:var(--devui-warning, #fac20a)}.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}@keyframes devui-busy-spinner-anim{0%{transform:rotate(0) scale(1)}50%{transform:rotate(135deg) scale(1.5)}to{transform:rotate(270deg) scale(1)}}.devui-loading-mask{position:absolute;left:0;right:0;bottom:0;top:0;background-color:var(--devui-line, #adb0b8);opacity:.3}.devui-loading-wrapper{text-align:center}.devui-loading--full{position:fixed;left:0;right:0;bottom:0;top:0;z-index:9999}.devui-loading--hidden{overflow:hidden}.devui-loading-text{margin-left:10px}.devui-loading-area{position:absolute;transform:translate(-50%,-50%);padding:12px 14px;background:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px)}.devui-busy-default-spinner{position:relative;display:inline-block;width:15px;height:15px;animation:devui-busy-spinner-anim 1s linear infinite}.devui-busy-default-spinner div{position:absolute;left:44.5%;top:37%;width:6px;height:6px;border-radius:50%}.devui-busy-default-spinner .devui-loading-bar1{top:0;left:0;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}.devui-busy-default-spinner .devui-loading-bar2{top:0;left:9px;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar3{top:9px;left:0;background:#859bff;background:var(--devui-brand-foil, #859bff)}.devui-busy-default-spinner .devui-loading-bar4{top:9px;left:9px;background:#5e7ce0;background:var(--devui-brand, #5e7ce0)}
|
package/drawer/index.es.js
CHANGED
|
@@ -212,9 +212,8 @@ var Drawer = defineComponent({
|
|
|
212
212
|
const closeDrawer = async () => {
|
|
213
213
|
var _a;
|
|
214
214
|
const beforeHidden = props.beforeHidden;
|
|
215
|
-
let result = (_a = typeof beforeHidden === "function" ? beforeHidden() : beforeHidden) != null ? _a :
|
|
215
|
+
let result = (_a = typeof beforeHidden === "function" ? beforeHidden() : beforeHidden) != null ? _a : false;
|
|
216
216
|
if (result instanceof Promise) {
|
|
217
|
-
console.log(result);
|
|
218
217
|
result = await result;
|
|
219
218
|
}
|
|
220
219
|
if (result)
|
|
@@ -266,7 +265,7 @@ var Drawer = defineComponent({
|
|
|
266
265
|
"to": "body"
|
|
267
266
|
}, {
|
|
268
267
|
default: () => [createVNode(DrawerBody, null, {
|
|
269
|
-
default: () => [createVNode(DrawerHeader, {
|
|
268
|
+
default: () => [this.slots.header ? this.slots.header() : createVNode(DrawerHeader, {
|
|
270
269
|
"onToggleFullScreen": fullScreenEvent,
|
|
271
270
|
"onClose": closeDrawer
|
|
272
271
|
}, null), this.slots.default ? this.slots.default() : createVNode(DrawerContainer, null, null)]
|
|
@@ -280,7 +279,7 @@ Drawer.install = function(app) {
|
|
|
280
279
|
var index = {
|
|
281
280
|
title: "Drawer \u62BD\u5C49\u677F",
|
|
282
281
|
category: "\u53CD\u9988",
|
|
283
|
-
status: "
|
|
282
|
+
status: "50%",
|
|
284
283
|
install(app) {
|
|
285
284
|
app.use(Drawer);
|
|
286
285
|
}
|
package/drawer/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var j=Object.defineProperty;var D=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var N=(n,e,
|
|
1
|
+
var j=Object.defineProperty;var D=Object.getOwnPropertySymbols;var x=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var N=(n,e,l)=>e in n?j(n,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):n[e]=l,S=(n,e)=>{for(var l in e||(e={}))x.call(e,l)&&N(n,l,e[l]);if(D)for(var l of D(e))B.call(e,l)&&N(n,l,e[l]);return n};(function(n,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(n=typeof globalThis!="undefined"?globalThis:n||self,e(n.index={},n.Vue))})(this,function(n,e){"use strict";const l={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},beforeHidden:{type:[Promise,Function]}};var z="",V=e.defineComponent({name:"DrawerHeader",emits:["toggleFullScreen","close"],setup(t,r){const o=e.ref(!1),s=e.inject("visible");return{fullScreenClassName:e.computed(()=>o.value?"icon icon-minimize":"icon icon-maxmize"),visible:s,handleFullScreen:f=>{f.stopPropagation(),o.value=!o.value,r.emit("toggleFullScreen")},handleDrawerClose:()=>{r.emit("close")}}},render(){const{handleFullScreen:t,handleDrawerClose:r,visible:o,fullScreenClassName:s}=this;return o?e.createVNode("div",{class:"devui-drawer-header"},[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:t},[e.createVNode("span",{class:s},null)]),e.createVNode("div",{class:"devui-drawer-header-item",onClick:r},[e.createVNode("span",{class:"icon icon-close"},null)])]):null}}),g=e.defineComponent({name:"DrawerContainer",setup(){return{visible:e.inject("visible")}},render(){const{visible:t}=this;return t?e.createVNode("div",null,[e.createTextVNode("\u5185\u5BB9\u533A\u57DF")]):null}}),E="",k=e.defineComponent({name:"DrawerBody",setup(t,{slots:r}){const o=e.inject("isFullScreen"),s=e.inject("closeDrawer"),a=e.inject("zindex"),c=e.inject("isCover"),u=e.inject("position"),f=e.inject("width"),C=e.inject("visible"),v=e.inject("backdropCloseable"),d=e.computed(()=>u.value==="right"?{right:0}:{left:0}),b=e.computed(()=>o.value?"100vw":f.value);return{zindex:a,slots:r,isCover:c,navRight:d,navWidth:b,visible:C,clickContent:i=>{i.stopPropagation()},handleDrawerClose:()=>{!v.value||s()}}},render(){const{zindex:t,slots:r,isCover:o,navRight:s,navWidth:a,visible:c,handleDrawerClose:u}=this;return c?e.createVNode("div",{class:"devui-drawer",style:{zIndex:t},onClick:u},[o?e.createVNode("div",{class:"devui-overlay-backdrop"},null):null,e.createVNode("div",{class:"devui-overlay-wrapper"},[e.createVNode("div",{class:"devui-drawer-nav",style:S({width:a},s)},[e.createVNode("div",{class:"devui-drawer-content",onClick:this.clickContent},[r.default?r.default():null])])])]):null}}),p=e.defineComponent({name:"DDrawer",props:l,emits:["close","update:visible","afterOpened"],setup(t,{emit:r,slots:o}){const{width:s,visible:a,zIndex:c,isCover:u,escKeyCloseable:f,position:C,backdropCloseable:v}=e.toRefs(t),d=e.ref(!1),b=()=>{d.value=!d.value},w=async()=>{var y;const i=t.beforeHidden;let m=(y=typeof i=="function"?i():i)!=null?y:!1;m instanceof Promise&&(m=await m),!m&&(r("update:visible",!1),r("close"))},h=i=>{i.code==="Escape"&&w()};return e.watch(a,i=>{i&&(r("afterOpened"),d.value=!1),f&&i?document.addEventListener("keyup",h):document.removeEventListener("keyup",h)}),e.provide("closeDrawer",w),e.provide("zindex",c),e.provide("isCover",u),e.provide("position",C),e.provide("width",s),e.provide("visible",a),e.provide("isFullScreen",d),e.provide("backdropCloseable",v),e.onUnmounted(()=>{document.removeEventListener("keyup",h)}),{isFullScreen:d,visible:a,slots:o,fullScreenEvent:b,closeDrawer:w}},render(){const t=this.fullScreenEvent,r=this.closeDrawer;return this.visible?e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode(k,null,{default:()=>[this.slots.header?this.slots.header():e.createVNode(V,{onToggleFullScreen:t,onClose:r},null),this.slots.default?this.slots.default():e.createVNode(g,null,null)]})]}):null}});p.install=function(t){t.component(p.name,p)};var F={title:"Drawer \u62BD\u5C49\u677F",category:"\u53CD\u9988",status:"50%",install(t){t.use(p)}};n.Drawer=p,n.default=F,Object.defineProperty(n,"__esModule",{value:!0}),n[Symbol.toStringTag]="Module"});
|
|
@@ -14,7 +14,7 @@ var __spreadValues = (a, b) => {
|
|
|
14
14
|
}
|
|
15
15
|
return a;
|
|
16
16
|
};
|
|
17
|
-
import { defineComponent, inject, withDirectives, createVNode, vShow, ref, reactive, computed, provide, toRefs, Fragment, resolveComponent, resolveDirective, Transition, renderSlot } from "vue";
|
|
17
|
+
import { defineComponent, inject, withDirectives, createVNode, vShow, nextTick, ref, reactive, computed, provide, toRefs, Fragment, resolveComponent, resolveDirective, Transition, renderSlot } from "vue";
|
|
18
18
|
const editableSelectProps = {
|
|
19
19
|
appendToBody: {
|
|
20
20
|
type: Boolean,
|
|
@@ -93,6 +93,7 @@ var SelectDropdown = defineComponent({
|
|
|
93
93
|
renderDefaultSlots,
|
|
94
94
|
renderEmptySlots,
|
|
95
95
|
selectedIndex,
|
|
96
|
+
hoverIndex,
|
|
96
97
|
loadMore
|
|
97
98
|
} = select;
|
|
98
99
|
const {
|
|
@@ -105,7 +106,8 @@ var SelectDropdown = defineComponent({
|
|
|
105
106
|
} = selectProps;
|
|
106
107
|
return className("devui-dropdown-item", {
|
|
107
108
|
disabled: disabledKey ? !!item[disabledKey] : false,
|
|
108
|
-
selected: selectedIndex.value === index2
|
|
109
|
+
selected: selectedIndex.value === index2,
|
|
110
|
+
"devui-dropdown-bg": hoverIndex.value === index2
|
|
109
111
|
});
|
|
110
112
|
};
|
|
111
113
|
return withDirectives(createVNode("div", {
|
|
@@ -5598,6 +5600,60 @@ var lodash = { exports: {} };
|
|
|
5598
5600
|
}
|
|
5599
5601
|
}).call(commonjsGlobal);
|
|
5600
5602
|
})(lodash, lodash.exports);
|
|
5603
|
+
function keyboardSelect(dropdownRef, visible, hoverIndex, selectedIndex, filteredOptions, toggleMenu, selectOptionClick) {
|
|
5604
|
+
const updateHoverIndex = (index2) => {
|
|
5605
|
+
hoverIndex.value = index2;
|
|
5606
|
+
};
|
|
5607
|
+
const scrollToActive = (index2) => {
|
|
5608
|
+
const dropdownVal = dropdownRef.value;
|
|
5609
|
+
const li = dropdownVal.children[index2];
|
|
5610
|
+
nextTick(() => {
|
|
5611
|
+
if (li.scrollIntoViewIfNeeded) {
|
|
5612
|
+
li.scrollIntoViewIfNeeded(false);
|
|
5613
|
+
} else {
|
|
5614
|
+
const containerInfo = dropdownVal.getBoundingClientRect();
|
|
5615
|
+
const elementInfo = li.getBoundingClientRect();
|
|
5616
|
+
if (elementInfo.bottom > containerInfo.bottom || elementInfo.top < containerInfo.top) {
|
|
5617
|
+
li.scrollIntoView(false);
|
|
5618
|
+
}
|
|
5619
|
+
}
|
|
5620
|
+
});
|
|
5621
|
+
};
|
|
5622
|
+
const onKeyboardSelect = (e) => {
|
|
5623
|
+
const option = filteredOptions.value[hoverIndex.value];
|
|
5624
|
+
selectOptionClick(e, option);
|
|
5625
|
+
hoverIndex.value = selectedIndex.value;
|
|
5626
|
+
};
|
|
5627
|
+
const handleKeydown = (e) => {
|
|
5628
|
+
const keyCode = e.key || e.code;
|
|
5629
|
+
let index2 = 0;
|
|
5630
|
+
if (!visible.value) {
|
|
5631
|
+
toggleMenu();
|
|
5632
|
+
}
|
|
5633
|
+
if (keyCode === "Backspace") {
|
|
5634
|
+
return;
|
|
5635
|
+
}
|
|
5636
|
+
if (keyCode === "ArrowUp") {
|
|
5637
|
+
index2 = hoverIndex.value - 1;
|
|
5638
|
+
if (index2 < 0) {
|
|
5639
|
+
index2 = filteredOptions.value.length - 1;
|
|
5640
|
+
}
|
|
5641
|
+
} else if (keyCode === "ArrowDown") {
|
|
5642
|
+
index2 = hoverIndex.value + 1;
|
|
5643
|
+
if (index2 > filteredOptions.value.length - 1) {
|
|
5644
|
+
index2 = 0;
|
|
5645
|
+
}
|
|
5646
|
+
}
|
|
5647
|
+
if (keyCode === "Enter") {
|
|
5648
|
+
return onKeyboardSelect(e);
|
|
5649
|
+
}
|
|
5650
|
+
updateHoverIndex(index2);
|
|
5651
|
+
scrollToActive(index2);
|
|
5652
|
+
};
|
|
5653
|
+
return {
|
|
5654
|
+
handleKeydown
|
|
5655
|
+
};
|
|
5656
|
+
}
|
|
5601
5657
|
var EditableSelect = defineComponent({
|
|
5602
5658
|
name: "DEditableSelect",
|
|
5603
5659
|
directives: {
|
|
@@ -5647,6 +5703,7 @@ var EditableSelect = defineComponent({
|
|
|
5647
5703
|
const visible = ref(false);
|
|
5648
5704
|
const inputValue = ref("");
|
|
5649
5705
|
const selectedIndex = ref(0);
|
|
5706
|
+
const hoverIndex = ref(0);
|
|
5650
5707
|
const query = ref(props.modelValue);
|
|
5651
5708
|
const position = reactive({
|
|
5652
5709
|
originX: "left",
|
|
@@ -5732,6 +5789,7 @@ var EditableSelect = defineComponent({
|
|
|
5732
5789
|
selectedIndex.value = findIndex(item);
|
|
5733
5790
|
inputValue.value = "";
|
|
5734
5791
|
ctx2.emit("update:modelValue", item.name);
|
|
5792
|
+
visible.value = false;
|
|
5735
5793
|
}
|
|
5736
5794
|
};
|
|
5737
5795
|
const loadMore = () => {
|
|
@@ -5742,12 +5800,16 @@ var EditableSelect = defineComponent({
|
|
|
5742
5800
|
props.loadMore();
|
|
5743
5801
|
}
|
|
5744
5802
|
};
|
|
5803
|
+
const {
|
|
5804
|
+
handleKeydown
|
|
5805
|
+
} = keyboardSelect(dropdownRef, visible, hoverIndex, selectedIndex, filteredOptions, toggleMenu, selectOptionClick);
|
|
5745
5806
|
provide("InjectionKey", {
|
|
5746
5807
|
dropdownRef,
|
|
5747
5808
|
props: reactive(__spreadValues({}, toRefs(props))),
|
|
5748
5809
|
visible,
|
|
5749
5810
|
emptyText,
|
|
5750
5811
|
selectedIndex,
|
|
5812
|
+
hoverIndex,
|
|
5751
5813
|
loadMore,
|
|
5752
5814
|
selectOptionClick,
|
|
5753
5815
|
renderDefaultSlots,
|
|
@@ -5766,9 +5828,11 @@ var EditableSelect = defineComponent({
|
|
|
5766
5828
|
"ref": origin
|
|
5767
5829
|
}, [createVNode("input", {
|
|
5768
5830
|
"class": inputCls,
|
|
5831
|
+
"disabled": props.disabled,
|
|
5769
5832
|
"type": "text",
|
|
5770
5833
|
"onInput": handleInput,
|
|
5771
|
-
"value": query.value
|
|
5834
|
+
"value": query.value,
|
|
5835
|
+
"onKeydown": handleKeydown
|
|
5772
5836
|
}, null), createVNode("span", {
|
|
5773
5837
|
"class": "devui-form-control-feedback"
|
|
5774
5838
|
}, [createVNode("span", {
|