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/modal/index.es.js
CHANGED
|
@@ -68,7 +68,7 @@ const modalProps = {
|
|
|
68
68
|
},
|
|
69
69
|
backdropCloseable: {
|
|
70
70
|
type: Boolean,
|
|
71
|
-
default:
|
|
71
|
+
default: true
|
|
72
72
|
},
|
|
73
73
|
bodyScrollable: {
|
|
74
74
|
type: Boolean,
|
|
@@ -294,7 +294,7 @@ const FlexibleOverlay = defineComponent({
|
|
|
294
294
|
overlayClass,
|
|
295
295
|
handleBackdropClick,
|
|
296
296
|
handleOverlayBubbleCancel
|
|
297
|
-
} = useOverlayLogic(props);
|
|
297
|
+
} = useOverlayLogic(props, ctx);
|
|
298
298
|
return () => createVNode(CommonOverlay, null, {
|
|
299
299
|
default: () => [withDirectives(createVNode("div", {
|
|
300
300
|
"style": props.backgroundStyle,
|
|
@@ -561,7 +561,7 @@ const dialogProps = {
|
|
|
561
561
|
},
|
|
562
562
|
backdropCloseable: {
|
|
563
563
|
type: Boolean,
|
|
564
|
-
default:
|
|
564
|
+
default: true
|
|
565
565
|
},
|
|
566
566
|
bodyScrollable: {
|
|
567
567
|
type: Boolean,
|
|
@@ -724,118 +724,6 @@ var Icon = defineComponent({
|
|
|
724
724
|
Icon.install = function(app) {
|
|
725
725
|
app.component(Icon.name, Icon);
|
|
726
726
|
};
|
|
727
|
-
const buttonProps = {
|
|
728
|
-
type: {
|
|
729
|
-
type: String,
|
|
730
|
-
default: "button"
|
|
731
|
-
},
|
|
732
|
-
btnStyle: {
|
|
733
|
-
type: String,
|
|
734
|
-
default: "primary"
|
|
735
|
-
},
|
|
736
|
-
size: {
|
|
737
|
-
type: String,
|
|
738
|
-
default: "md"
|
|
739
|
-
},
|
|
740
|
-
position: {
|
|
741
|
-
type: String,
|
|
742
|
-
default: "default"
|
|
743
|
-
},
|
|
744
|
-
bordered: {
|
|
745
|
-
type: Boolean,
|
|
746
|
-
default: false
|
|
747
|
-
},
|
|
748
|
-
icon: {
|
|
749
|
-
type: String,
|
|
750
|
-
default: ""
|
|
751
|
-
},
|
|
752
|
-
showLoading: {
|
|
753
|
-
type: Boolean,
|
|
754
|
-
default: false
|
|
755
|
-
},
|
|
756
|
-
width: {
|
|
757
|
-
type: String
|
|
758
|
-
},
|
|
759
|
-
disabled: {
|
|
760
|
-
type: Boolean,
|
|
761
|
-
default: false
|
|
762
|
-
},
|
|
763
|
-
autofocus: {
|
|
764
|
-
type: Boolean,
|
|
765
|
-
default: false
|
|
766
|
-
},
|
|
767
|
-
onClick: {
|
|
768
|
-
type: Function
|
|
769
|
-
}
|
|
770
|
-
};
|
|
771
|
-
var button = "";
|
|
772
|
-
var Button = defineComponent({
|
|
773
|
-
name: "DButton",
|
|
774
|
-
props: buttonProps,
|
|
775
|
-
setup(props, ctx) {
|
|
776
|
-
const buttonContent = ref(null);
|
|
777
|
-
const onClick = (e) => {
|
|
778
|
-
var _a;
|
|
779
|
-
if (props.showLoading) {
|
|
780
|
-
return;
|
|
781
|
-
}
|
|
782
|
-
(_a = props.onClick) == null ? void 0 : _a.call(props, e);
|
|
783
|
-
};
|
|
784
|
-
const hasContent = computed(() => ctx.slots.default);
|
|
785
|
-
const btnClass = computed(() => {
|
|
786
|
-
const {
|
|
787
|
-
btnStyle,
|
|
788
|
-
size,
|
|
789
|
-
position,
|
|
790
|
-
bordered,
|
|
791
|
-
icon
|
|
792
|
-
} = props;
|
|
793
|
-
const origin = `devui-btn devui-btn-${btnStyle} devui-btn-${size} devui-btn-${position}`;
|
|
794
|
-
const borderedClass = bordered ? "bordered" : "";
|
|
795
|
-
const btnIcon = !!icon && !hasContent.value && btnStyle !== "primary" ? "d-btn-icon" : "";
|
|
796
|
-
const btnIconWrap = !!icon ? "d-btn-icon-wrap" : "";
|
|
797
|
-
return `${origin} ${borderedClass} ${btnIcon} ${btnIconWrap}`;
|
|
798
|
-
});
|
|
799
|
-
const iconClass = computed(() => {
|
|
800
|
-
if (!props.icon) {
|
|
801
|
-
return;
|
|
802
|
-
}
|
|
803
|
-
const origin = "devui-icon-fix icon";
|
|
804
|
-
if (hasContent.value) {
|
|
805
|
-
return `${origin} clear-right-5`;
|
|
806
|
-
} else {
|
|
807
|
-
return origin;
|
|
808
|
-
}
|
|
809
|
-
});
|
|
810
|
-
return () => {
|
|
811
|
-
var _a, _b;
|
|
812
|
-
const {
|
|
813
|
-
icon,
|
|
814
|
-
type,
|
|
815
|
-
disabled,
|
|
816
|
-
showLoading,
|
|
817
|
-
width
|
|
818
|
-
} = props;
|
|
819
|
-
return withDirectives(createVNode("div", mergeProps({
|
|
820
|
-
"class": "devui-btn-host"
|
|
821
|
-
}, ctx.attrs), [createVNode("button", {
|
|
822
|
-
"class": btnClass.value,
|
|
823
|
-
"type": type,
|
|
824
|
-
"disabled": disabled,
|
|
825
|
-
"style": {
|
|
826
|
-
width
|
|
827
|
-
},
|
|
828
|
-
"onClick": onClick
|
|
829
|
-
}, [!!icon ? createVNode(Icon, {
|
|
830
|
-
"name": icon,
|
|
831
|
-
"class": iconClass.value
|
|
832
|
-
}, null) : null, createVNode("span", {
|
|
833
|
-
"class": "button-content",
|
|
834
|
-
"ref": buttonContent
|
|
835
|
-
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])])]), [[resolveDirective("dLoading"), showLoading]]);
|
|
836
|
-
};
|
|
837
|
-
}
|
|
838
|
-
});
|
|
839
727
|
class View {
|
|
840
728
|
constructor() {
|
|
841
729
|
__publicField(this, "top", "50%");
|
|
@@ -1032,6 +920,121 @@ const loadingDirective = {
|
|
|
1032
920
|
toggleLoading(el, binding);
|
|
1033
921
|
}
|
|
1034
922
|
};
|
|
923
|
+
const buttonProps = {
|
|
924
|
+
type: {
|
|
925
|
+
type: String,
|
|
926
|
+
default: "button"
|
|
927
|
+
},
|
|
928
|
+
variant: {
|
|
929
|
+
type: String,
|
|
930
|
+
default: "primary"
|
|
931
|
+
},
|
|
932
|
+
size: {
|
|
933
|
+
type: String,
|
|
934
|
+
default: "md"
|
|
935
|
+
},
|
|
936
|
+
position: {
|
|
937
|
+
type: String,
|
|
938
|
+
default: "default"
|
|
939
|
+
},
|
|
940
|
+
bordered: {
|
|
941
|
+
type: Boolean,
|
|
942
|
+
default: false
|
|
943
|
+
},
|
|
944
|
+
icon: {
|
|
945
|
+
type: String,
|
|
946
|
+
default: ""
|
|
947
|
+
},
|
|
948
|
+
showLoading: {
|
|
949
|
+
type: Boolean,
|
|
950
|
+
default: false
|
|
951
|
+
},
|
|
952
|
+
width: {
|
|
953
|
+
type: String
|
|
954
|
+
},
|
|
955
|
+
disabled: {
|
|
956
|
+
type: Boolean,
|
|
957
|
+
default: false
|
|
958
|
+
},
|
|
959
|
+
autofocus: {
|
|
960
|
+
type: Boolean,
|
|
961
|
+
default: false
|
|
962
|
+
},
|
|
963
|
+
onClick: {
|
|
964
|
+
type: Function
|
|
965
|
+
}
|
|
966
|
+
};
|
|
967
|
+
var button = "";
|
|
968
|
+
var Button = defineComponent({
|
|
969
|
+
name: "DButton",
|
|
970
|
+
directives: {
|
|
971
|
+
devLoading: loadingDirective
|
|
972
|
+
},
|
|
973
|
+
props: buttonProps,
|
|
974
|
+
setup(props, ctx) {
|
|
975
|
+
const buttonContent = ref(null);
|
|
976
|
+
const onClick = (e) => {
|
|
977
|
+
var _a;
|
|
978
|
+
if (props.showLoading) {
|
|
979
|
+
return;
|
|
980
|
+
}
|
|
981
|
+
(_a = props.onClick) == null ? void 0 : _a.call(props, e);
|
|
982
|
+
};
|
|
983
|
+
const hasContent = computed(() => ctx.slots.default);
|
|
984
|
+
const btnClass = computed(() => {
|
|
985
|
+
const {
|
|
986
|
+
variant,
|
|
987
|
+
size,
|
|
988
|
+
position,
|
|
989
|
+
bordered,
|
|
990
|
+
icon
|
|
991
|
+
} = props;
|
|
992
|
+
const origin = `devui-btn devui-btn-${variant} devui-btn-${size} devui-btn-${position}`;
|
|
993
|
+
const borderedClass = bordered ? "bordered" : "";
|
|
994
|
+
const btnIcon = !!icon && !hasContent.value && variant !== "primary" ? "d-btn-icon" : "";
|
|
995
|
+
const btnIconWrap = !!icon ? "d-btn-icon-wrap" : "";
|
|
996
|
+
return `${origin} ${borderedClass} ${btnIcon} ${btnIconWrap}`;
|
|
997
|
+
});
|
|
998
|
+
const iconClass = computed(() => {
|
|
999
|
+
if (!props.icon) {
|
|
1000
|
+
return;
|
|
1001
|
+
}
|
|
1002
|
+
const origin = "devui-icon-fix icon";
|
|
1003
|
+
if (hasContent.value) {
|
|
1004
|
+
return `${origin} clear-right-5`;
|
|
1005
|
+
} else {
|
|
1006
|
+
return origin;
|
|
1007
|
+
}
|
|
1008
|
+
});
|
|
1009
|
+
return () => {
|
|
1010
|
+
var _a, _b;
|
|
1011
|
+
const {
|
|
1012
|
+
icon,
|
|
1013
|
+
type,
|
|
1014
|
+
disabled,
|
|
1015
|
+
showLoading,
|
|
1016
|
+
width
|
|
1017
|
+
} = props;
|
|
1018
|
+
return createVNode("div", mergeProps({
|
|
1019
|
+
"class": "devui-btn-host"
|
|
1020
|
+
}, ctx.attrs), [withDirectives(createVNode("button", {
|
|
1021
|
+
"class": btnClass.value,
|
|
1022
|
+
"type": type,
|
|
1023
|
+
"disabled": disabled,
|
|
1024
|
+
"style": {
|
|
1025
|
+
width
|
|
1026
|
+
},
|
|
1027
|
+
"onClick": onClick
|
|
1028
|
+
}, [!!icon ? createVNode(Icon, {
|
|
1029
|
+
"name": icon,
|
|
1030
|
+
"class": iconClass.value
|
|
1031
|
+
}, null) : null, createVNode("span", {
|
|
1032
|
+
"class": "button-content",
|
|
1033
|
+
"ref": buttonContent
|
|
1034
|
+
}, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)])]), [[resolveDirective("devLoading"), showLoading]])]);
|
|
1035
|
+
};
|
|
1036
|
+
}
|
|
1037
|
+
});
|
|
1035
1038
|
defineComponent(Loading);
|
|
1036
1039
|
Button.install = function(app) {
|
|
1037
1040
|
app.directive("dLoading", loadingDirective);
|
|
@@ -1088,7 +1091,7 @@ var Dialog = defineComponent({
|
|
|
1088
1091
|
const buttonsRef = computed(() => {
|
|
1089
1092
|
return props.buttons.map((buttonProps2, index2) => {
|
|
1090
1093
|
const {
|
|
1091
|
-
|
|
1094
|
+
variant,
|
|
1092
1095
|
disabled,
|
|
1093
1096
|
handler,
|
|
1094
1097
|
text
|
|
@@ -1099,7 +1102,7 @@ var Dialog = defineComponent({
|
|
|
1099
1102
|
display: "inline-block",
|
|
1100
1103
|
margin: "0 5px"
|
|
1101
1104
|
},
|
|
1102
|
-
"
|
|
1105
|
+
"variant": variant,
|
|
1103
1106
|
"disabled": disabled,
|
|
1104
1107
|
"onClick": handler
|
|
1105
1108
|
}, _isSlot(text) ? text : {
|
|
@@ -1147,7 +1150,7 @@ var Dialog = defineComponent({
|
|
|
1147
1150
|
}, null) : null, createVNode("span", null, [props.title]), createVNode(Button, {
|
|
1148
1151
|
"class": "btn-close",
|
|
1149
1152
|
"icon": "close",
|
|
1150
|
-
"
|
|
1153
|
+
"variant": "text-dark",
|
|
1151
1154
|
"onClick": closeModal
|
|
1152
1155
|
}, null)]), createVNode("div", {
|
|
1153
1156
|
"class": "devui-modal-body"
|
package/modal/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Pe=Object.defineProperty,Te=Object.defineProperties;var Ye=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var ae=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var A=(u,t,g)=>t in u?Pe(u,t,{enumerable:!0,configurable:!0,writable:!0,value:g}):u[t]=g,h=(u,t)=>{for(var g in t||(t={}))ae.call(t,g)&&A(u,g,t[g]);if(T)for(var g of T(t))re.call(t,g)&&A(u,g,t[g]);return u},O=(u,t)=>Te(u,Ye(t));var Y=(u,t)=>{var g={};for(var S in u)ae.call(u,S)&&t.indexOf(S)<0&&(g[S]=u[S]);if(u!=null&&T)for(var S of T(u))t.indexOf(S)<0&&re.call(u,S)&&(g[S]=u[S]);return g};var C=(u,t,g)=>(A(u,typeof t!="symbol"?t+"":t,g),g);(function(u,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(u=typeof globalThis!="undefined"?globalThis:u||self,t(u.index={},u.Vue))})(this,function(u,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 S="";function ie(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const j=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"},ie(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),_={visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}},F=["update:visible","backdropClick"],se=O(h({},_),{overlayStyle:{type:[String,Object],default:void 0}}),de=h({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},_);function H(e,n){const o=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),a=t.computed(()=>"devui-overlay"),l=r=>{var s;r.preventDefault(),(s=e.onBackdropClick)==null||s.call(e),e.backdropClose&&n.emit("update:visible",!1)},i=r=>r.cancelBubble=!0;return t.onMounted(()=>{const r=document.body,s=r.style.overflow,f=r.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([b,m])=>{if(m){const c=r.getBoundingClientRect().y;b?(r.style.overflowY="scroll",r.style.position=b?"fixed":"",r.style.top=`${c}px`):(r.style.overflowY=s,r.style.position=f,r.style.top="",window.scrollTo(0,-c))}}),t.onUnmounted(()=>{document.body.style.overflow=s})}),{backgroundClass:o,overlayClass:a,handleBackdropClick:l,handleOverlayBubbleCancel:i}}const z=t.defineComponent({name:"DFixedOverlay",props:se,emits:F,setup(e,n){const{backgroundClass:o,overlayClass:a,handleBackdropClick:l,handleOverlayBubbleCancel:i}=H(e,n);return()=>t.createVNode(j,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:l},[t.createVNode("div",{class:a.value,style:e.overlayStyle,onClick:i},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function ce(e){return!!(e==null?void 0:e.$el)}function U(e){return e instanceof Element?e:e&&typeof e=="object"&&e.$el instanceof Element?e.$el:null}const D=t.defineComponent({name:"DFlexibleOverlay",props:de,emits:F,setup(e,n){const o=t.ref(null),a=t.reactive({position:"absolute"});t.onMounted(async()=>{const f=(y,d,p)=>{const v=fe(y,d,p);a.left=`${v.x}px`,a.top=`${v.y}px`},b=t.computed(()=>{const y=o.value,d=ue(e.origin);if(!(!y||!d))return{origin:d,overlay:y}}),m=t.toRef(e,"visible"),c=t.toRef(e,"position");t.watch([b,m,c],async([y,d,p],v,x)=>{if(!d||!y)return;const{origin:w,overlay:k}=y;f(p,k.getBoundingClientRect(),w);const P=[pe(()=>f(p,k.getBoundingClientRect(),w)),ge(k,E=>f(p,E[0].contentRect,w)),he(w,()=>f(p,k.getBoundingClientRect(),w))];x(()=>{P.forEach(E=>E())})})});const{backgroundClass:l,overlayClass:i,handleBackdropClick:r,handleOverlayBubbleCancel:s}=H(e);return()=>t.createVNode(j,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:l.value,onClick:r},[t.createVNode("div",{ref:o,class:i.value,style:a,onClick:s},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function ue(e){return e instanceof Element?e:t.isRef(e)?U(e.value):ce(e)?U(e):e}function fe(e,n,o){const a=ye(o),l=be(a,e);return me(l,n,e)}function ye(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 me(e,n,o){let a;const{width:l,height:i}=n;o.overlayX=="center"?a=e.x-l/2:a=o.overlayX=="left"?e.x:e.x-l;let r;return o.overlayY=="center"?r=e.y-i/2:r=o.overlayY=="top"?e.y:e.y-i,{x:a,y:r}}function be(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const l=e.left,i=e.right;o=n.originX=="left"?l:i}let a;return n.originY=="center"?a=e.top+e.height/2:a=n.originY=="top"?e.top:e.bottom,{x:o,y:a}}function pe(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 ge(e,n){if(e instanceof Element){const o=new ResizeObserver(n);return o.observe(e),()=>o.disconnect()}return()=>{}}function he(e,n){if(e instanceof Element){const o=new MutationObserver(n);return o.observe(e,{attributeFilter:["style"]}),()=>o.disconnect()}return()=>{}}const ve=typeof window!="undefined";D.install=function(e){e.component(D.name,D)},z.install=function(e){e.component(z.name,z)};var De="",B=t.defineComponent({name:"DModal",props:g,emits:["onUpdate:modelValue"],setup(e,n){const o=t.computed(()=>e.showAnimation?e.modelValue:!0),a=l=>{var r;const i=e["onUpdate:modelValue"];if(l)i==null||i(l);else{const s=e.beforeHidden,f=m=>{var c;m&&(i==null||i(!1),(c=e.onClose)==null||c.call(e))},b=(r=typeof s=="function"?s():s)!=null?r:!0;b instanceof Promise?b.then(f):f(b)}};return n.expose({onVisibleChange:a}),()=>t.createVNode(z,{visible:e.modelValue,"onUpdate:visible":a,backgroundClass:"devui-modal-wrapper",backgroundBlock:!e.bodyScrollable,backdropClose:e.backdropCloseable},{default:()=>[t.createVNode(t.Transition,{name:"devui-modal-wipe"},{default:()=>{var l,i;return[o.value?(i=(l=n.slots).default)==null?void 0:i.call(l):null]}})]})}});class Z{constructor(n){this.anchorContainer=n}renderModal(n,o,a){const l=t.h(this.component(),o,a);return t.render(l,n),l}renderNull(n){setTimeout(()=>{t.render(null,n)},500)}}class I extends Z{component(){return B}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const f=n,{content:a}=f,l=Y(f,["content"]),i=b=>{b||s()},r=(b,m=i)=>this.renderModal(o,O(h({},b),{modelValue:!0,"onUpdate:modelValue":m}),{default:a}),s=()=>{var m,c;(c=(m=r(l,y=>{y?r(l):(this.renderModal(o,O(h({},l),{modelValue:!1})),this.renderNull(o))}).component.exposed).onVisibleChange)==null||c.call(m,!1)};return this.renderModal(o,{modelValue:!1}),r(l),{hide:s}}}C(I,"token","MODAL_SERVICE_TOKEN");const we={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}},Ce=(e=!0)=>{const n=t.ref(0),o=t.ref(0),a=()=>{n.value=0,o.value=0},l=t.ref(),i=t.ref(),r=t.isRef(e)?e:t.ref(e);return t.watch([i,l],([s,f],b,m)=>{if(!(f instanceof HTMLElement&&s instanceof HTMLElement))return;f.style.cursor="all-scroll";let c=0,y=0,d=0,p=0,v=s.getBoundingClientRect(),x=document.body.getBoundingClientRect(),w=!1;const k=V=>{if(V.preventDefault(),!r.value)return;c=V.clientX,y=V.clientY;const N=f.getBoundingClientRect();(f===V.target||f.contains(V.target))&&N.x<c&&N.y<y&&N.width+N.x>=c&&N.height+N.y>=y&&(w=!0,d=n.value,p=o.value,x=document.body.getBoundingClientRect(),v=s.getBoundingClientRect())},P=V=>{if(V.preventDefault(),!w)return;const N=d+V.clientX-c,ze=p+V.clientY-y,oe=v.x-d,le=v.y-p;n.value=q(N,-oe,x.width-v.width-oe),o.value=q(ze,-le,x.height-v.height-le)},E=V=>{V.preventDefault(),!!w&&(w=!1)};window.addEventListener("mousedown",k),window.addEventListener("mousemove",P),window.addEventListener("mouseup",E),m(()=>{window.removeEventListener("mousedown",k),window.removeEventListener("mousemove",P),window.removeEventListener("mouseup",E)})}),{movingX:t.readonly(n),movingY:t.readonly(o),handleRef:l,moveElRef:i,reset:a}},q=(e,n,o)=>e<n?n:e>o?o:e;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 h({},e)},render(){const{name:e,size:n,color:o,classPrefix:a}=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:`${a} ${a}-${e}`,style:{fontSize:n,color:o}},null)}});R.install=function(e){e.component(R.name,R)};const ke={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 Ie="",M=t.defineComponent({name:"DButton",props:ke,setup(e,n){const o=t.ref(null),a=s=>{var f;e.showLoading||(f=e.onClick)==null||f.call(e,s)},l=t.computed(()=>n.slots.default),i=t.computed(()=>{const{btnStyle:s,size:f,position:b,bordered:m,icon:c}=e,y=`devui-btn devui-btn-${s} devui-btn-${f} devui-btn-${b}`,d=m?"bordered":"",p=!!c&&!l.value&&s!=="primary"?"d-btn-icon":"";return`${y} ${d} ${p} ${c?"d-btn-icon-wrap":""}`}),r=t.computed(()=>{if(!e.icon)return;const s="devui-icon-fix icon";return l.value?`${s} clear-right-5`:s});return()=>{var y,d;const{icon:s,type:f,disabled:b,showLoading:m,width:c}=e;return t.withDirectives(t.createVNode("div",t.mergeProps({class:"devui-btn-host"},n.attrs),[t.createVNode("button",{class:i.value,type:f,disabled:b,style:{width:c},onClick:a},[s?t.createVNode(R,{name:s,class:r.value},null):null,t.createVNode("span",{class:"button-content",ref:o},[(d=(y=n.slots).default)==null?void 0:d.call(y)])])]),[[t.resolveDirective("dLoading"),m]])}}});class W{constructor(){C(this,"top","50%");C(this,"left","50%")}}const Ve={message:String,backdrop:Boolean,view:{type:Object,default:()=>new W},zIndex:Number,isFull:{type:Boolean,default:!1}};class Se{constructor(){C(this,"target");C(this,"message");C(this,"loadingTemplateRef");C(this,"backdrop",!0);C(this,"positionType","relative");C(this,"view",new W);C(this,"zIndex")}}var Xe="",K=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:Ve,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 r;const{isShow:e,isFull:n,backdrop:o,style:a,message:l,$slots:i}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((r=i.default)==null?void 0:r.call(i))||t.createVNode("div",{class:"devui-loading-wrapper"},[o?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:a,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)]),l?t.createVNode("span",{class:"devui-loading-text"},[l]):null])])])}});const G=Symbol("dev_component_container");function xe(e,n,o=null){const a=t.h(e,h({},n),o),l=document.createElement("div");return a[G]=l,t.render(a,l),a.component}function Ne(e){t.render(null,e==null?void 0:e.vnode[G])}const Be=t.defineComponent(K),L=new WeakSet,X=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},J=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),Oe=e=>{switch(J(e)){case"promise":return[e];case"array":return e.some(o=>J(o)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},Q=e=>{L.delete(e),e.instance.proxy.close(),Ne(e.instance)},ee=(e,n)=>{if(n.value){const o=Oe(n.value);if(o==="error")return;e.instance.proxy.open(),e.appendChild(e.mask),L.add(e),o&&Promise.all(o).catch(a=>{console.error(new Error("Promise handling errors"),a)}).finally(()=>{Q(e)})}else Q(e)},te=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},ne=(e,n)=>{const o=h(h({},new Se),n),a=o.loadingTemplateRef,l=xe(Be,h({},o),a?()=>a:null);e.style.position=o.positionType,e.options=o,e.instance=l,e.mask=l.proxy.$el},Ee={mounted:function(e,n,o){ne(e,o.props),te(e),!X(n.value)&&ee(e,n)},updated:function(e,n,o){!X(n.value)&&L.has(e)||X(n.value)&&!L.has(e)||(!L.has(e)&&ne(e,o.props),te(e),ee(e,n))}};t.defineComponent(K),M.install=function(e){e.directive("dLoading",Ee),e.component(M.name,M)};function Re(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var Me=t.defineComponent({name:"DModal",inheritAttrs:!1,props:we,emits:["onUpdate:modelValue"],setup(e,n){const{movingX:o,movingY:a,handleRef:l,moveElRef:i,reset:r}=Ce();t.watch(()=>e.modelValue,d=>{d&&r()});const s=t.computed(()=>({position:"relative",left:`${o.value}px`,top:`${a.value}px`})),f=t.computed(()=>({width:e.width,maxHeight:e.maxHeight,transform:`translate(${e.offsetX}, ${e.offsetY})`,zIndex:e.zIndex})),b=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""}}),m=t.computed(()=>e.buttons.map((d,p)=>{const{btnStyle:v,disabled:x,handler:w,text:k}=d;return t.createVNode(M,{key:p,style:{display:"inline-block",margin:"0 5px"},btnStyle:v,disabled:x,onClick:w},Re(k)?k:{default:()=>[k]})})),c=t.ref(),y=()=>{var d,p;(p=(d=c.value)==null?void 0:d.onVisibleChange)==null||p.call(d,!1)};return n.expose({closeModal:y}),()=>t.createVNode(B,{ref:c,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,p;return[t.createVNode("div",{class:"devui-modal-content",style:[f.value,s.value],ref:i},[t.createVNode("div",{class:"devui-modal-header",ref:l},[b.value?t.createVNode(R,{name:b.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"},[(p=(d=n.slots).default)==null?void 0:p.call(d)]),t.createVNode("div",{class:"devui-modal-footer"},[m.value])])]}})}});class $ extends Z{component(){return Me}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const b=n,{content:a}=b,l=Y(b,["content"]),i=m=>{m||s()},r=(m,c=i)=>this.renderModal(o,O(h({},m),{modelValue:!0,"onUpdate:modelValue":c}),{default:a}),s=()=>{var c,y;(y=(c=r(l,d=>{d?r(l):(this.renderModal(o,O(h({},l),{modelValue:!1})),this.renderNull(o))}).component.exposed).closeModal)==null||y.call(c)},f=m=>{const p=l,{buttons:c}=p,y=Y(p,["buttons"]),d=c.map((v,x)=>h(h({},v),m[x]));r(O(h({},y),{buttons:d}))};return this.renderModal(o,{modelValue:!1}),r(l),{hide:s,updateButtonOptions:f}}}C($,"token","DIALOG_SERVICE_TOKEN"),B.install=function(e){e.component(B.name,B)};var Le={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(e){if(e.use(B),!ve)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(I.token,new I(n)),e.provide($.token,new $(n))}};u.Modal=B,u.default=Le,Object.defineProperty(u,"__esModule",{value:!0}),u[Symbol.toStringTag]="Module"});
|
|
1
|
+
var Pe=Object.defineProperty,Te=Object.defineProperties;var Ye=Object.getOwnPropertyDescriptors;var T=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var A=(u,t,g)=>t in u?Pe(u,t,{enumerable:!0,configurable:!0,writable:!0,value:g}):u[t]=g,h=(u,t)=>{for(var g in t||(t={}))re.call(t,g)&&A(u,g,t[g]);if(T)for(var g of T(t))ie.call(t,g)&&A(u,g,t[g]);return u},O=(u,t)=>Te(u,Ye(t));var Y=(u,t)=>{var g={};for(var x in u)re.call(u,x)&&t.indexOf(x)<0&&(g[x]=u[x]);if(u!=null&&T)for(var x of T(u))t.indexOf(x)<0&&ie.call(u,x)&&(g[x]=u[x]);return g};var C=(u,t,g)=>(A(u,typeof t!="symbol"?t+"":t,g),g);(function(u,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(u=typeof globalThis!="undefined"?globalThis:u||self,t(u.index={},u.Vue))})(this,function(u,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:!0},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 x="";function se(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const j=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"},se(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),_={visible:{type:Boolean},backgroundBlock:{type:Boolean,default:!1},backgroundClass:{type:String,default:""},backgroundStyle:{type:[String,Object]},onBackdropClick:{type:Function},backdropClose:{type:Boolean,default:!0},hasBackdrop:{type:Boolean,default:!0}},F=["update:visible","backdropClick"],de=O(h({},_),{overlayStyle:{type:[String,Object],default:void 0}}),ce=h({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},_);function H(e,n){const o=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),a=t.computed(()=>"devui-overlay"),l=r=>{var s;r.preventDefault(),(s=e.onBackdropClick)==null||s.call(e),e.backdropClose&&n.emit("update:visible",!1)},i=r=>r.cancelBubble=!0;return t.onMounted(()=>{const r=document.body,s=r.style.overflow,f=r.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([p,y])=>{if(y){const c=r.getBoundingClientRect().y;p?(r.style.overflowY="scroll",r.style.position=p?"fixed":"",r.style.top=`${c}px`):(r.style.overflowY=s,r.style.position=f,r.style.top="",window.scrollTo(0,-c))}}),t.onUnmounted(()=>{document.body.style.overflow=s})}),{backgroundClass:o,overlayClass:a,handleBackdropClick:l,handleOverlayBubbleCancel:i}}const z=t.defineComponent({name:"DFixedOverlay",props:de,emits:F,setup(e,n){const{backgroundClass:o,overlayClass:a,handleBackdropClick:l,handleOverlayBubbleCancel:i}=H(e,n);return()=>t.createVNode(j,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:l},[t.createVNode("div",{class:a.value,style:e.overlayStyle,onClick:i},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function ue(e){return!!(e==null?void 0:e.$el)}function U(e){return e instanceof Element?e:e&&typeof e=="object"&&e.$el instanceof Element?e.$el:null}const D=t.defineComponent({name:"DFlexibleOverlay",props:ce,emits:F,setup(e,n){const o=t.ref(null),a=t.reactive({position:"absolute"});t.onMounted(async()=>{const f=(m,d,b)=>{const v=me(m,d,b);a.left=`${v.x}px`,a.top=`${v.y}px`},p=t.computed(()=>{const m=o.value,d=fe(e.origin);if(!(!m||!d))return{origin:d,overlay:m}}),y=t.toRef(e,"visible"),c=t.toRef(e,"position");t.watch([p,y,c],async([m,d,b],v,S)=>{if(!d||!m)return;const{origin:w,overlay:k}=m;f(b,k.getBoundingClientRect(),w);const P=[ge(()=>f(b,k.getBoundingClientRect(),w)),he(k,E=>f(b,E[0].contentRect,w)),ve(w,()=>f(b,k.getBoundingClientRect(),w))];S(()=>{P.forEach(E=>E())})})});const{backgroundClass:l,overlayClass:i,handleBackdropClick:r,handleOverlayBubbleCancel:s}=H(e,n);return()=>t.createVNode(j,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:l.value,onClick:r},[t.createVNode("div",{ref:o,class:i.value,style:a,onClick:s},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function fe(e){return e instanceof Element?e:t.isRef(e)?U(e.value):ue(e)?U(e):e}function me(e,n,o){const a=ye(o),l=be(a,e);return pe(l,n,e)}function ye(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 pe(e,n,o){let a;const{width:l,height:i}=n;o.overlayX=="center"?a=e.x-l/2:a=o.overlayX=="left"?e.x:e.x-l;let r;return o.overlayY=="center"?r=e.y-i/2:r=o.overlayY=="top"?e.y:e.y-i,{x:a,y:r}}function be(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const l=e.left,i=e.right;o=n.originX=="left"?l:i}let a;return n.originY=="center"?a=e.top+e.height/2:a=n.originY=="top"?e.top:e.bottom,{x:o,y:a}}function ge(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 he(e,n){if(e instanceof Element){const o=new ResizeObserver(n);return o.observe(e),()=>o.disconnect()}return()=>{}}function ve(e,n){if(e instanceof Element){const o=new MutationObserver(n);return o.observe(e,{attributeFilter:["style"]}),()=>o.disconnect()}return()=>{}}const we=typeof window!="undefined";D.install=function(e){e.component(D.name,D)},z.install=function(e){e.component(z.name,z)};var De="",B=t.defineComponent({name:"DModal",props:g,emits:["onUpdate:modelValue"],setup(e,n){const o=t.computed(()=>e.showAnimation?e.modelValue:!0),a=l=>{var r;const i=e["onUpdate:modelValue"];if(l)i==null||i(l);else{const s=e.beforeHidden,f=y=>{var c;y&&(i==null||i(!1),(c=e.onClose)==null||c.call(e))},p=(r=typeof s=="function"?s():s)!=null?r:!0;p instanceof Promise?p.then(f):f(p)}};return n.expose({onVisibleChange:a}),()=>t.createVNode(z,{visible:e.modelValue,"onUpdate:visible":a,backgroundClass:"devui-modal-wrapper",backgroundBlock:!e.bodyScrollable,backdropClose:e.backdropCloseable},{default:()=>[t.createVNode(t.Transition,{name:"devui-modal-wipe"},{default:()=>{var l,i;return[o.value?(i=(l=n.slots).default)==null?void 0:i.call(l):null]}})]})}});class Z{constructor(n){this.anchorContainer=n}renderModal(n,o,a){const l=t.h(this.component(),o,a);return t.render(l,n),l}renderNull(n){setTimeout(()=>{t.render(null,n)},500)}}class I extends Z{component(){return B}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const f=n,{content:a}=f,l=Y(f,["content"]),i=p=>{p||s()},r=(p,y=i)=>this.renderModal(o,O(h({},p),{modelValue:!0,"onUpdate:modelValue":y}),{default:a}),s=()=>{var y,c;(c=(y=r(l,m=>{m?r(l):(this.renderModal(o,O(h({},l),{modelValue:!1})),this.renderNull(o))}).component.exposed).onVisibleChange)==null||c.call(y,!1)};return this.renderModal(o,{modelValue:!1}),r(l),{hide:s}}}C(I,"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:!0},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}},ke=(e=!0)=>{const n=t.ref(0),o=t.ref(0),a=()=>{n.value=0,o.value=0},l=t.ref(),i=t.ref(),r=t.isRef(e)?e:t.ref(e);return t.watch([i,l],([s,f],p,y)=>{if(!(f instanceof HTMLElement&&s instanceof HTMLElement))return;f.style.cursor="all-scroll";let c=0,m=0,d=0,b=0,v=s.getBoundingClientRect(),S=document.body.getBoundingClientRect(),w=!1;const k=V=>{if(V.preventDefault(),!r.value)return;c=V.clientX,m=V.clientY;const N=f.getBoundingClientRect();(f===V.target||f.contains(V.target))&&N.x<c&&N.y<m&&N.width+N.x>=c&&N.height+N.y>=m&&(w=!0,d=n.value,b=o.value,S=document.body.getBoundingClientRect(),v=s.getBoundingClientRect())},P=V=>{if(V.preventDefault(),!w)return;const N=d+V.clientX-c,ze=b+V.clientY-m,le=v.x-d,ae=v.y-b;n.value=q(N,-le,S.width-v.width-le),o.value=q(ze,-ae,S.height-v.height-ae)},E=V=>{V.preventDefault(),!!w&&(w=!1)};window.addEventListener("mousedown",k),window.addEventListener("mousemove",P),window.addEventListener("mouseup",E),y(()=>{window.removeEventListener("mousedown",k),window.removeEventListener("mousemove",P),window.removeEventListener("mouseup",E)})}),{movingX:t.readonly(n),movingY:t.readonly(o),handleRef:l,moveElRef:i,reset:a}},q=(e,n,o)=>e<n?n:e>o?o:e;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 h({},e)},render(){const{name:e,size:n,color:o,classPrefix:a}=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:`${a} ${a}-${e}`,style:{fontSize:n,color:o}},null)}});R.install=function(e){e.component(R.name,R)};class W{constructor(){C(this,"top","50%");C(this,"left","50%")}}const Ve={message:String,backdrop:Boolean,view:{type:Object,default:()=>new W},zIndex:Number,isFull:{type:Boolean,default:!1}};class xe{constructor(){C(this,"target");C(this,"message");C(this,"loadingTemplateRef");C(this,"backdrop",!0);C(this,"positionType","relative");C(this,"view",new W);C(this,"zIndex")}}var Ie="",K=t.defineComponent({name:"DLoading",inheritAttrs:!1,props:Ve,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 r;const{isShow:e,isFull:n,backdrop:o,style:a,message:l,$slots:i}=this;return e&&t.createVNode("div",{class:["devui-loading-contanier",n?"devui-loading--full":""]},[((r=i.default)==null?void 0:r.call(i))||t.createVNode("div",{class:"devui-loading-wrapper"},[o?t.createVNode("div",{class:"devui-loading-mask"},null):null,t.createVNode("div",{style:a,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)]),l?t.createVNode("span",{class:"devui-loading-text"},[l]):null])])])}});const G=Symbol("dev_component_container");function Se(e,n,o=null){const a=t.h(e,h({},n),o),l=document.createElement("div");return a[G]=l,t.render(a,l),a.component}function Ne(e){t.render(null,e==null?void 0:e.vnode[G])}const Be=t.defineComponent(K),M=new WeakSet,X=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},J=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),Oe=e=>{switch(J(e)){case"promise":return[e];case"array":return e.some(o=>J(o)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},Q=e=>{M.delete(e),e.instance.proxy.close(),Ne(e.instance)},ee=(e,n)=>{if(n.value){const o=Oe(n.value);if(o==="error")return;e.instance.proxy.open(),e.appendChild(e.mask),M.add(e),o&&Promise.all(o).catch(a=>{console.error(new Error("Promise handling errors"),a)}).finally(()=>{Q(e)})}else Q(e)},te=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},ne=(e,n)=>{const o=h(h({},new xe),n),a=o.loadingTemplateRef,l=Se(Be,h({},o),a?()=>a:null);e.style.position=o.positionType,e.options=o,e.instance=l,e.mask=l.proxy.$el},oe={mounted:function(e,n,o){ne(e,o.props),te(e),!X(n.value)&&ee(e,n)},updated:function(e,n,o){!X(n.value)&&M.has(e)||X(n.value)&&!M.has(e)||(!M.has(e)&&ne(e,o.props),te(e),ee(e,n))}},Ee={type:{type:String,default:"button"},variant:{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 Xe="",L=t.defineComponent({name:"DButton",directives:{devLoading:oe},props:Ee,setup(e,n){const o=t.ref(null),a=s=>{var f;e.showLoading||(f=e.onClick)==null||f.call(e,s)},l=t.computed(()=>n.slots.default),i=t.computed(()=>{const{variant:s,size:f,position:p,bordered:y,icon:c}=e,m=`devui-btn devui-btn-${s} devui-btn-${f} devui-btn-${p}`,d=y?"bordered":"",b=!!c&&!l.value&&s!=="primary"?"d-btn-icon":"";return`${m} ${d} ${b} ${c?"d-btn-icon-wrap":""}`}),r=t.computed(()=>{if(!e.icon)return;const s="devui-icon-fix icon";return l.value?`${s} clear-right-5`:s});return()=>{var m,d;const{icon:s,type:f,disabled:p,showLoading:y,width:c}=e;return t.createVNode("div",t.mergeProps({class:"devui-btn-host"},n.attrs),[t.withDirectives(t.createVNode("button",{class:i.value,type:f,disabled:p,style:{width:c},onClick:a},[s?t.createVNode(R,{name:s,class:r.value},null):null,t.createVNode("span",{class:"button-content",ref:o},[(d=(m=n.slots).default)==null?void 0:d.call(m)])]),[[t.resolveDirective("devLoading"),y]])])}}});t.defineComponent(K),L.install=function(e){e.directive("dLoading",oe),e.component(L.name,L)};function Re(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}var Me=t.defineComponent({name:"DModal",inheritAttrs:!1,props:Ce,emits:["onUpdate:modelValue"],setup(e,n){const{movingX:o,movingY:a,handleRef:l,moveElRef:i,reset:r}=ke();t.watch(()=>e.modelValue,d=>{d&&r()});const s=t.computed(()=>({position:"relative",left:`${o.value}px`,top:`${a.value}px`})),f=t.computed(()=>({width:e.width,maxHeight:e.maxHeight,transform:`translate(${e.offsetX}, ${e.offsetY})`,zIndex:e.zIndex})),p=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""}}),y=t.computed(()=>e.buttons.map((d,b)=>{const{variant:v,disabled:S,handler:w,text:k}=d;return t.createVNode(L,{key:b,style:{display:"inline-block",margin:"0 5px"},variant:v,disabled:S,onClick:w},Re(k)?k:{default:()=>[k]})})),c=t.ref(),m=()=>{var d,b;(b=(d=c.value)==null?void 0:d.onVisibleChange)==null||b.call(d,!1)};return n.expose({closeModal:m}),()=>t.createVNode(B,{ref:c,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,b;return[t.createVNode("div",{class:"devui-modal-content",style:[f.value,s.value],ref:i},[t.createVNode("div",{class:"devui-modal-header",ref:l},[p.value?t.createVNode(R,{name:p.value,size:"24px",class:"header-alert-icon"},null):null,t.createVNode("span",null,[e.title]),t.createVNode(L,{class:"btn-close",icon:"close",variant:"text-dark",onClick:m},null)]),t.createVNode("div",{class:"devui-modal-body"},[(b=(d=n.slots).default)==null?void 0:b.call(d)]),t.createVNode("div",{class:"devui-modal-footer"},[y.value])])]}})}});class $ extends Z{component(){return Me}open(n={}){const o=document.createElement("div");this.anchorContainer.appendChild(o);const p=n,{content:a}=p,l=Y(p,["content"]),i=y=>{y||s()},r=(y,c=i)=>this.renderModal(o,O(h({},y),{modelValue:!0,"onUpdate:modelValue":c}),{default:a}),s=()=>{var c,m;(m=(c=r(l,d=>{d?r(l):(this.renderModal(o,O(h({},l),{modelValue:!1})),this.renderNull(o))}).component.exposed).closeModal)==null||m.call(c)},f=y=>{const b=l,{buttons:c}=b,m=Y(b,["buttons"]),d=c.map((v,S)=>h(h({},v),y[S]));r(O(h({},m),{buttons:d}))};return this.renderModal(o,{modelValue:!1}),r(l),{hide:s,updateButtonOptions:f}}}C($,"token","DIALOG_SERVICE_TOKEN"),B.install=function(e){e.component(B.name,B)};var Le={title:"Modal \u5F39\u7A97",category:"\u53CD\u9988",status:"100%",install(e){if(e.use(B),!we)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(I.token,new I(n)),e.provide($.token,new $(n))}};u.Modal=B,u.default=Le,Object.defineProperty(u,"__esModule",{value:!0}),u[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}.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-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)}
|
|
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}@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)}.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-dark-text, #252b3a);min-width:64px;background-color:var(--devui-success, #50d4ab)}.devui-btn.devui-btn-warning{color:var(--devui-dark-text, #252b3a);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-success:hover{background-color:var(--devui-success, #50d4ab)}.devui-btn.devui-btn-success:focus{background-color:var(--devui-success, #50d4ab)}.devui-btn.devui-btn-success:active{background-color:var(--devui-success, #50d4ab)}.devui-btn.devui-btn-warning:hover{background-color:var(--devui-warning, #fac20a)}.devui-btn.devui-btn-warning:focus{background-color:var(--devui-warning, #fac20a)}.devui-btn.devui-btn-warning:active{background-color:var(--devui-warning, #fac20a)}.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}
|
package/overlay/index.es.js
CHANGED
|
@@ -221,7 +221,7 @@ const FlexibleOverlay = defineComponent({
|
|
|
221
221
|
overlayClass,
|
|
222
222
|
handleBackdropClick,
|
|
223
223
|
handleOverlayBubbleCancel
|
|
224
|
-
} = useOverlayLogic(props);
|
|
224
|
+
} = useOverlayLogic(props, ctx);
|
|
225
225
|
return () => createVNode(CommonOverlay, null, {
|
|
226
226
|
default: () => [withDirectives(createVNode("div", {
|
|
227
227
|
"style": props.backgroundStyle,
|
package/overlay/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var J=Object.defineProperty,K=Object.defineProperties;var Q=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var F=(l,t,a)=>t in l?J(l,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):l[t]=a,B=(l,t)=>{for(var a in t||(t={}))W.call(t,a)&&F(l,a,t[a]);if(V)for(var a of V(t))Z.call(t,a)&&F(l,a,t[a]);return l},N=(l,t)=>K(l,Q(t));(function(l,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(l=typeof globalThis!="undefined"?globalThis:l||self,t(l.index={},l.Vue))})(this,function(l,t){"use strict";var a="";function L(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const x=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"},L(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),E={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}},S=["update:visible","backdropClick"],X=N(B({},E),{overlayStyle:{type:[String,Object],default:void 0}}),Y=B({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},E);function R(e,n){const o=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),i=t.computed(()=>"devui-overlay"),c=r=>{var d;r.preventDefault(),(d=e.onBackdropClick)==null||d.call(e),e.backdropClose&&n.emit("update:visible",!1)},s=r=>r.cancelBubble=!0;return t.onMounted(()=>{const r=document.body,d=r.style.overflow,f=r.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([p,w])=>{if(w){const C=r.getBoundingClientRect().y;p?(r.style.overflowY="scroll",r.style.position=p?"fixed":"",r.style.top=`${C}px`):(r.style.overflowY=d,r.style.position=f,r.style.top="",window.scrollTo(0,-C))}}),t.onUnmounted(()=>{document.body.style.overflow=d})}),{backgroundClass:o,overlayClass:i,handleBackdropClick:c,handleOverlayBubbleCancel:s}}const v=t.defineComponent({name:"DFixedOverlay",props:X,emits:S,setup(e,n){const{backgroundClass:o,overlayClass:i,handleBackdropClick:c,handleOverlayBubbleCancel:s}=R(e,n);return()=>t.createVNode(x,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:c},[t.createVNode("div",{class:i.value,style:e.overlayStyle,onClick:s},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function _(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 h=t.defineComponent({name:"DFlexibleOverlay",props:Y,emits:S,setup(e,n){const o=t.ref(null),i=t.reactive({position:"absolute"});t.onMounted(async()=>{const f=(u,y,b)=>{const g=T(u,y,b);i.left=`${g.x}px`,i.top=`${g.y}px`},p=t.computed(()=>{const u=o.value,y=z(e.origin);if(!(!u||!y))return{origin:y,overlay:u}}),w=t.toRef(e,"visible"),C=t.toRef(e,"position");t.watch([p,w,C],async([u,y,b],g,G)=>{if(!y||!u)return;const{origin:m,overlay:k}=u;f(b,k.getBoundingClientRect(),m);const H=[P(()=>f(b,k.getBoundingClientRect(),m)),A(k,O=>f(b,O[0].contentRect,m)),q(m,()=>f(b,k.getBoundingClientRect(),m))];G(()=>{H.forEach(O=>O())})})});const{backgroundClass:c,overlayClass:s,handleBackdropClick:r,handleOverlayBubbleCancel:d}=R(e);return()=>t.createVNode(x,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:c.value,onClick:r},[t.createVNode("div",{ref:o,class:s.value,style:i,onClick:d},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function z(e){return e instanceof Element?e:t.isRef(e)?j(e.value):_(e)?j(e):e}function T(e,n,o){const i=$(o),c=M(i,e);return D(c,n,e)}function $(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 D(e,n,o){let i;const{width:c,height:s}=n;o.overlayX=="center"?i=e.x-c/2:i=o.overlayX=="left"?e.x:e.x-c;let r;return o.overlayY=="center"?r=e.y-s/2:r=o.overlayY=="top"?e.y:e.y-s,{x:i,y:r}}function M(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const c=e.left,s=e.right;o=n.originX=="left"?c:s}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 P(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 A(e,n){if(e instanceof Element){const o=new ResizeObserver(n);return o.observe(e),()=>o.disconnect()}return()=>{}}function q(e,n){if(e instanceof Element){const o=new MutationObserver(n);return o.observe(e,{attributeFilter:["style"]}),()=>o.disconnect()}return()=>{}}const I=typeof window!="undefined";h.install=function(e){e.component(h.name,h)},v.install=function(e){e.component(v.name,v)};var U={title:"Overlay \u906E\u7F69\u5C42",category:"\u901A\u7528",status:"100%",install(e){if(e.use(v),e.use(h),I&&!document.getElementById("d-overlay-anchor")){const n=document.createElement("div");n.setAttribute("id","d-overlay-anchor"),n.style.position="fixed",n.style.left="0",n.style.top="0",n.style.zIndex="1000",document.body.appendChild(n)}}};l.FixedOverlay=v,l.FlexibleOverlay=h,l.default=U,Object.defineProperty(l,"__esModule",{value:!0}),l[Symbol.toStringTag]="Module"});
|
|
1
|
+
var J=Object.defineProperty,K=Object.defineProperties;var Q=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var F=(l,t,a)=>t in l?J(l,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):l[t]=a,B=(l,t)=>{for(var a in t||(t={}))W.call(t,a)&&F(l,a,t[a]);if(V)for(var a of V(t))Z.call(t,a)&&F(l,a,t[a]);return l},N=(l,t)=>K(l,Q(t));(function(l,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(l=typeof globalThis!="undefined"?globalThis:l||self,t(l.index={},l.Vue))})(this,function(l,t){"use strict";var a="";function L(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const x=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"},L(o=t.renderSlot(n.slots,"default"))?o:{default:()=>[o]})]})}}}),E={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}},S=["update:visible","backdropClick"],X=N(B({},E),{overlayStyle:{type:[String,Object],default:void 0}}),Y=B({origin:{type:Object,require:!0},position:{type:Object,default:()=>({originX:"left",originY:"top",overlayX:"left",overlayY:"top"})}},E);function R(e,n){const o=t.computed(()=>["devui-overlay-background",e.backgroundClass,e.hasBackdrop?"devui-overlay-background__color":"devui-overlay-background__disabled"]),i=t.computed(()=>"devui-overlay"),c=r=>{var d;r.preventDefault(),(d=e.onBackdropClick)==null||d.call(e),e.backdropClose&&n.emit("update:visible",!1)},s=r=>r.cancelBubble=!0;return t.onMounted(()=>{const r=document.body,d=r.style.overflow,f=r.style.position;t.watch([()=>e.visible,()=>e.backgroundBlock],([p,w])=>{if(w){const C=r.getBoundingClientRect().y;p?(r.style.overflowY="scroll",r.style.position=p?"fixed":"",r.style.top=`${C}px`):(r.style.overflowY=d,r.style.position=f,r.style.top="",window.scrollTo(0,-C))}}),t.onUnmounted(()=>{document.body.style.overflow=d})}),{backgroundClass:o,overlayClass:i,handleBackdropClick:c,handleOverlayBubbleCancel:s}}const v=t.defineComponent({name:"DFixedOverlay",props:X,emits:S,setup(e,n){const{backgroundClass:o,overlayClass:i,handleBackdropClick:c,handleOverlayBubbleCancel:s}=R(e,n);return()=>t.createVNode(x,null,{default:()=>[t.withDirectives(t.createVNode("div",{class:o.value,style:e.backgroundStyle,onClick:c},[t.createVNode("div",{class:i.value,style:e.overlayStyle,onClick:s},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function _(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 h=t.defineComponent({name:"DFlexibleOverlay",props:Y,emits:S,setup(e,n){const o=t.ref(null),i=t.reactive({position:"absolute"});t.onMounted(async()=>{const f=(u,y,b)=>{const g=T(u,y,b);i.left=`${g.x}px`,i.top=`${g.y}px`},p=t.computed(()=>{const u=o.value,y=z(e.origin);if(!(!u||!y))return{origin:y,overlay:u}}),w=t.toRef(e,"visible"),C=t.toRef(e,"position");t.watch([p,w,C],async([u,y,b],g,G)=>{if(!y||!u)return;const{origin:m,overlay:k}=u;f(b,k.getBoundingClientRect(),m);const H=[P(()=>f(b,k.getBoundingClientRect(),m)),A(k,O=>f(b,O[0].contentRect,m)),q(m,()=>f(b,k.getBoundingClientRect(),m))];G(()=>{H.forEach(O=>O())})})});const{backgroundClass:c,overlayClass:s,handleBackdropClick:r,handleOverlayBubbleCancel:d}=R(e,n);return()=>t.createVNode(x,null,{default:()=>[t.withDirectives(t.createVNode("div",{style:e.backgroundStyle,class:c.value,onClick:r},[t.createVNode("div",{ref:o,class:s.value,style:i,onClick:d},[t.renderSlot(n.slots,"default")])]),[[t.vShow,e.visible]])]})}});function z(e){return e instanceof Element?e:t.isRef(e)?j(e.value):_(e)?j(e):e}function T(e,n,o){const i=$(o),c=M(i,e);return D(c,n,e)}function $(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 D(e,n,o){let i;const{width:c,height:s}=n;o.overlayX=="center"?i=e.x-c/2:i=o.overlayX=="left"?e.x:e.x-c;let r;return o.overlayY=="center"?r=e.y-s/2:r=o.overlayY=="top"?e.y:e.y-s,{x:i,y:r}}function M(e,n){let o;if(n.originX=="center")o=e.left+e.width/2;else{const c=e.left,s=e.right;o=n.originX=="left"?c:s}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 P(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 A(e,n){if(e instanceof Element){const o=new ResizeObserver(n);return o.observe(e),()=>o.disconnect()}return()=>{}}function q(e,n){if(e instanceof Element){const o=new MutationObserver(n);return o.observe(e,{attributeFilter:["style"]}),()=>o.disconnect()}return()=>{}}const I=typeof window!="undefined";h.install=function(e){e.component(h.name,h)},v.install=function(e){e.component(v.name,v)};var U={title:"Overlay \u906E\u7F69\u5C42",category:"\u901A\u7528",status:"100%",install(e){if(e.use(v),e.use(h),I&&!document.getElementById("d-overlay-anchor")){const n=document.createElement("div");n.setAttribute("id","d-overlay-anchor"),n.style.position="fixed",n.style.left="0",n.style.top="0",n.style.zIndex="1000",document.body.appendChild(n)}}};l.FixedOverlay=v,l.FlexibleOverlay=h,l.default=U,Object.defineProperty(l,"__esModule",{value:!0}),l[Symbol.toStringTag]="Module"});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue-devui",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.15",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "DevUI components based on Vite and Vue3",
|
|
6
6
|
"keywords": [
|
|
@@ -18,6 +18,26 @@
|
|
|
18
18
|
"main": "vue-devui.umd.js",
|
|
19
19
|
"module": "vue-devui.es.js",
|
|
20
20
|
"style": "style.css",
|
|
21
|
+
"bin": {
|
|
22
|
+
"devui-cli": "./devui-cli/index.js"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"dev": "yarn generate:theme && vitepress dev docs",
|
|
26
|
+
"build": "yarn generate:theme && node --max_old_space_size=8192 ./node_modules/.bin/vitepress build docs && cp public/* docs/.vitepress/dist/assets",
|
|
27
|
+
"serve": "vitepress serve docs",
|
|
28
|
+
"app:dev": "vite",
|
|
29
|
+
"app:build": "vite build",
|
|
30
|
+
"build:lib": "yarn predev && yarn build:components && yarn copy",
|
|
31
|
+
"test": "jest --config jest.config.js",
|
|
32
|
+
"build:components": "node ./devui-cli/index.js build",
|
|
33
|
+
"generate:theme": "node ./devui-cli/index.js generate:theme",
|
|
34
|
+
"generate:dts": "node ./devui-cli/index.js generate:dts",
|
|
35
|
+
"copy": "cp package.json build && cp ../../README.md build && cp devui/theme/theme.scss build/theme",
|
|
36
|
+
"clean:cli": "npm uninstall -g devui-cli & npm uninstall -g vue-devui",
|
|
37
|
+
"cli:create": "node ./devui-cli/index.js create -t component",
|
|
38
|
+
"predev": "node ./devui-cli/index.js create -t vue-devui --ignore-parse-error",
|
|
39
|
+
"prebuild": "node ./devui-cli/index.js create -t vue-devui --ignore-parse-error"
|
|
40
|
+
},
|
|
21
41
|
"dependencies": {
|
|
22
42
|
"@devui-design/icons": "^1.3.0",
|
|
23
43
|
"@types/lodash-es": "^4.17.4",
|
|
@@ -34,7 +54,6 @@
|
|
|
34
54
|
"@babel/traverse": "^7.15.4",
|
|
35
55
|
"@commitlint/cli": "^11.0.0",
|
|
36
56
|
"@commitlint/config-conventional": "^11.0.0",
|
|
37
|
-
"@ls-lint/ls-lint": "^1.10.0",
|
|
38
57
|
"@types/chalk": "^2.2.0",
|
|
39
58
|
"@types/commander": "^2.12.2",
|
|
40
59
|
"@types/jest": "^26.0.23",
|
|
@@ -51,22 +70,12 @@
|
|
|
51
70
|
"babel-jest": "^27.0.2",
|
|
52
71
|
"chalk": "^4.1.2",
|
|
53
72
|
"commander": "^8.1.0",
|
|
54
|
-
"esbuild-register": "^2.6.0",
|
|
55
|
-
"eslint": "^7.28.0",
|
|
56
|
-
"eslint-plugin-import": "^2.24.2",
|
|
57
|
-
"eslint-plugin-vue": "^7.11.1",
|
|
58
|
-
"husky": "^7.0.4",
|
|
59
73
|
"inquirer": "^8.1.2",
|
|
60
74
|
"jest": "^27.0.4",
|
|
61
|
-
"lint-staged": "^11.0.0",
|
|
62
75
|
"ora": "^5.4.1",
|
|
63
76
|
"patch-vue-directive-ssr": "^0.0.1",
|
|
64
77
|
"sass": "^1.32.2",
|
|
65
78
|
"shelljs": "^0.8.4",
|
|
66
|
-
"stylelint": "^13.13.1",
|
|
67
|
-
"stylelint-config-recommended-scss": "^4.3.0",
|
|
68
|
-
"stylelint-config-standard": "^22.0.0",
|
|
69
|
-
"stylelint-scss": "^3.20.1",
|
|
70
79
|
"typescript": "^4.3.2",
|
|
71
80
|
"vite": "^2.4.4",
|
|
72
81
|
"vite-plugin-md": "^0.6.0",
|
|
@@ -75,9 +84,5 @@
|
|
|
75
84
|
"vitepress-theme-demoblock": "1.3.2",
|
|
76
85
|
"vue-tsc": "^0.2.2",
|
|
77
86
|
"yarn": "^1.22.11"
|
|
78
|
-
},
|
|
79
|
-
"lint-staged": {
|
|
80
|
-
"{src,devui}/**/*.{js,ts,jsx,tsx,vue}": "eslint --fix",
|
|
81
|
-
"{src,devui}/**/*.{scss,css}": "stylelint --fix"
|
|
82
87
|
}
|
|
83
88
|
}
|
package/popover/index.es.js
CHANGED
|
@@ -125,6 +125,10 @@ var Popover = defineComponent({
|
|
|
125
125
|
type: Number,
|
|
126
126
|
default: 1060
|
|
127
127
|
},
|
|
128
|
+
controlled: {
|
|
129
|
+
type: Boolean,
|
|
130
|
+
default: false
|
|
131
|
+
},
|
|
128
132
|
popType: {
|
|
129
133
|
type: String,
|
|
130
134
|
default: "default"
|
|
@@ -165,7 +169,8 @@ var Popover = defineComponent({
|
|
|
165
169
|
mouseEnterDelay,
|
|
166
170
|
mouseLeaveDelay,
|
|
167
171
|
showAnimation,
|
|
168
|
-
popMaxWidth
|
|
172
|
+
popMaxWidth,
|
|
173
|
+
controlled
|
|
169
174
|
} = toRefs(props);
|
|
170
175
|
const style = __spreadValues({
|
|
171
176
|
zIndex: zIndex.value
|
|
@@ -179,20 +184,24 @@ var Popover = defineComponent({
|
|
|
179
184
|
}
|
|
180
185
|
visible.value = true;
|
|
181
186
|
};
|
|
182
|
-
const onClick = isClick ? event : null;
|
|
187
|
+
const onClick = isClick && controlled.value ? event : null;
|
|
183
188
|
const enter = debounce(() => {
|
|
184
189
|
visible.value = true;
|
|
185
190
|
}, mouseEnterDelay.value);
|
|
186
191
|
const leave = debounce(() => {
|
|
187
192
|
visible.value = false;
|
|
188
193
|
}, mouseLeaveDelay.value);
|
|
189
|
-
const onMouseenter = isClick ?
|
|
190
|
-
const onMouseleave = isClick ?
|
|
194
|
+
const onMouseenter = !isClick && controlled.value ? enter : null;
|
|
195
|
+
const onMouseleave = !isClick && controlled.value ? leave : null;
|
|
191
196
|
const hiddenContext = () => {
|
|
197
|
+
if (!controlled.value)
|
|
198
|
+
return;
|
|
192
199
|
visible.value = false;
|
|
193
200
|
};
|
|
194
201
|
popMaxWidth.value && (style.maxWidth = `${popMaxWidth.value}px`);
|
|
195
202
|
watch(() => props.visible, (newVal) => {
|
|
203
|
+
if (controlled.value)
|
|
204
|
+
return;
|
|
196
205
|
visible.value = newVal;
|
|
197
206
|
});
|
|
198
207
|
return () => {
|