@gopowerteam/modal-render 0.0.19 → 0.0.21

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.
@@ -26,6 +26,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
26
26
  } | undefined;
27
27
  backgroundColor?: string | undefined;
28
28
  bodyStyle?: CSSProperties | undefined;
29
+ submitText?: string | undefined;
30
+ cancelText?: string | undefined;
29
31
  }>, {
30
32
  header: boolean;
31
33
  closeable: boolean;
@@ -36,6 +38,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
36
38
  esc: boolean;
37
39
  draggable: boolean;
38
40
  mode: string;
41
+ submitText: string;
42
+ cancelText: string;
39
43
  }>, {
40
44
  showLoading: () => () => void;
41
45
  hideLoading: () => void;
@@ -67,6 +71,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
67
71
  } | undefined;
68
72
  backgroundColor?: string | undefined;
69
73
  bodyStyle?: CSSProperties | undefined;
74
+ submitText?: string | undefined;
75
+ cancelText?: string | undefined;
70
76
  }>, {
71
77
  header: boolean;
72
78
  closeable: boolean;
@@ -77,6 +83,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
77
83
  esc: boolean;
78
84
  draggable: boolean;
79
85
  mode: string;
86
+ submitText: string;
87
+ cancelText: string;
80
88
  }>>> & {
81
89
  onSubmit?: ((...args: any[]) => any) | undefined;
82
90
  }, {
@@ -88,6 +96,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
88
96
  maskClosable: boolean;
89
97
  draggable: boolean;
90
98
  mode: 'dialog' | 'drawer';
99
+ submitText: string;
100
+ cancelText: string;
91
101
  }, {}>;
92
102
  export default _default;
93
103
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -23,8 +23,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
23
23
  okText: string;
24
24
  cancelText: string;
25
25
  }>>>, {
26
- okText: string;
27
26
  cancelText: string;
27
+ okText: string;
28
28
  }, {}>;
29
29
  export default _default;
30
30
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -14,9 +14,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
14
14
  maxWidth: string;
15
15
  maxHeight: string;
16
16
  sizes: () => {
17
- small: number;
18
- middle: number;
19
- large: number;
17
+ small: string;
18
+ middle: string;
19
+ large: string;
20
20
  };
21
21
  offset: () => {
22
22
  x: number;
@@ -43,9 +43,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
43
43
  maxWidth: string;
44
44
  maxHeight: string;
45
45
  sizes: () => {
46
- small: number;
47
- middle: number;
48
- large: number;
46
+ small: string;
47
+ middle: string;
48
+ large: string;
49
49
  };
50
50
  offset: () => {
51
51
  x: number;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");const N=Symbol("__MODAL__");function F(n){return e.getCurrentScope()?(e.onScopeDispose(n),!0):!1}function w(n){return typeof n=="function"?n():e.unref(n)}const z=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const W=Object.prototype.toString,I=n=>W.call(n)==="[object Object]",H=()=>{};function j(n,s={}){if(!e.isRef(n))return e.toRefs(n);const r=Array.isArray(n.value)?Array.from({length:n.value.length}):{};for(const t in n.value)r[t]=e.customRef(()=>({get(){return n.value[t]},set(a){var i;if((i=w(s.replaceRef))!=null?i:!0)if(Array.isArray(n.value)){const y=[...n.value];y[t]=a,n.value=y}else{const y={...n.value,[t]:a};Object.setPrototypeOf(y,Object.getPrototypeOf(n.value)),n.value=y}else n.value[t]=a}}));return r}function G(n){var s;const r=w(n);return(s=r==null?void 0:r.$el)!=null?s:r}const D=z?window:void 0;function P(...n){let s,r,t,a;if(typeof n[0]=="string"||Array.isArray(n[0])?([r,t,a]=n,s=D):[s,r,t,a]=n,!s)return H;Array.isArray(r)||(r=[r]),Array.isArray(t)||(t=[t]);const i=[],p=()=>{i.forEach(m=>m()),i.length=0},y=(m,h,l,f)=>(m.addEventListener(h,l,f),()=>m.removeEventListener(h,l,f)),C=e.watch(()=>[G(s),w(a)],([m,h])=>{if(p(),!m)return;const l=I(h)?{...h}:h;i.push(...r.flatMap(f=>t.map(c=>y(m,f,c,l))))},{immediate:!0,flush:"post"}),b=()=>{C(),p()};return F(b),b}function K(n,s={}){var r,t;const{pointerTypes:a,preventDefault:i,stopPropagation:p,exact:y,onMove:C,onEnd:b,onStart:m,initialValue:h,axis:l="both",draggingElement:f=D,containerElement:c,handle:v=n}=s,d=e.ref((r=w(h))!=null?r:{x:0,y:0}),k=e.ref(),E=u=>a?a.includes(u.pointerType):!0,x=u=>{w(i)&&u.preventDefault(),w(p)&&u.stopPropagation()},V=u=>{var M;if(!E(u)||w(y)&&u.target!==w(n))return;const _=w(c),B=(M=_==null?void 0:_.getBoundingClientRect)==null?void 0:M.call(_),o=w(n).getBoundingClientRect(),g={x:u.clientX-(_?o.left-B.left:o.left),y:u.clientY-(_?o.top-B.top:o.top)};(m==null?void 0:m(g,u))!==!1&&(k.value=g,x(u))},$=u=>{var M;if(!E(u)||!k.value)return;const _=w(c),B=(M=_==null?void 0:_.getBoundingClientRect)==null?void 0:M.call(_),o=w(n).getBoundingClientRect();let{x:g,y:S}=d.value;(l==="x"||l==="both")&&(g=u.clientX-k.value.x,_&&(g=Math.min(Math.max(0,g),B.width-o.width))),(l==="y"||l==="both")&&(S=u.clientY-k.value.y,_&&(S=Math.min(Math.max(0,S),B.height-o.height))),d.value={x:g,y:S},C==null||C(d.value,u),x(u)},A=u=>{E(u)&&k.value&&(k.value=void 0,b==null||b(d.value,u),x(u))};if(z){const u={capture:(t=s.capture)!=null?t:!0};P(v,"pointerdown",V,u),P(f,"pointermove",$,u),P(f,"pointerup",A,u)}return{...j(d),position:d,isDragging:e.computed(()=>!!k.value),style:e.computed(()=>`left:${d.value.x}px;top:${d.value.y}px;`)}}const X=n=>(e.pushScopeId("data-v-0982fb60"),n=n(),e.popScopeId(),n),Y={class:"title text-16px font-bold"},q={class:"action"},U={key:1,class:"modal-footer space-x-2"},J=["form"],Q={key:2,class:"modal-loading"},Z=X(()=>e.createElementVNode("div",{class:"lds-ring"},[e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div")],-1)),ee=[Z],te={name:"ModalContainer",inheritAttrs:!0},oe=e.defineComponent({...te,props:{id:{},form:{},component:{},componentProps:{},width:{},maxWidth:{},maxHeight:{},sizes:{},size:{default:"middle"},fullscreen:{type:Boolean},title:{},header:{type:Boolean,default:!0},footer:{type:Boolean,default:!1},closeable:{type:Boolean,default:!0},esc:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},mode:{default:"dialog"},type:{},offset:{},backgroundColor:{},bodyStyle:{}},emits:["submit"],setup(n,{expose:s,emit:r}){const t=n,a=r,i=e.inject(N),p=e.ref(!1);let y=0,C=0;const b=e.shallowRef(),m=e.shallowRef(),h=e.shallowRef(),{x:l,y:f}=K(h,{initialValue:{x:0,y:0}});function c(){i==null||i.close(t.id)}function v(o){if(typeof o=="number")return`${o}px`;if(typeof o=="string")return o}const d=e.computed(()=>{const o={};return t.mode==="dialog"&&(o.justifyContent="center"),t.mode==="drawer"&&(o.justifyContent="flex-end"),o}),k=e.computed(()=>{const o={};return t.size&&(o.width=v(t.sizes[t.size])),t.width&&(o.width=v(t.width)),t.maxWidth&&(o.maxWidth=v(t.maxWidth)),t.fullscreen&&(o.maxWidth="unset",o.width="100%",o.position="fixed",o.top=0,o.left=0,o.bottom=0,o.right=0,o.borderRadius=0),t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(o.transform=`translate3d(${l.value-y}px, ${f.value-C}px, 0px)`),t.mode==="drawer"&&(o.borderRadius=0,o.height="100%"),t.offset&&t.mode==="dialog"&&(o.marginLeft=`${t.offset.x||0}px`,o.marginTop=`${t.offset.y||0}px`),t.backgroundColor&&(o.backgroundColor=t.backgroundColor),o}),E=e.computed(()=>{const o={};return t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(o.cursor="move"),o}),x=e.computed(()=>{var g;const o={};return t.maxHeight&&(o.maxHeight=`calc(${(g=v(t.maxHeight))==null?void 0:g.replace("%","vh")} - 50px)`),t.mode==="drawer"&&(o.maxHeight="unset",o.height=`calc(100% - ${(t.header?50:0)+(t.footer?50:0)}px)`),t.fullscreen&&(o.maxHeight="unset",o.height=`calc(100% - ${(t.header?50:0)+(t.footer?50:0)}px)`),t.type!=="component"&&(o.padding="0"),t.bodyStyle&&Object.assign(o,t.bodyStyle),o});function V(){const o=m.value;if(t.form&&o){const g=o.querySelector(`form[name="${t.form}"]`);g&&g.dispatchEvent(new Event("submit"))}a("submit")}function $(){i==null||i.close(t.id)}function A(){window&&window.addEventListener("resize",()=>{e.triggerRef(b),e.triggerRef(m),m.value&&(y=m.value.offsetLeft,C=m.value.offsetTop)})}function u(){if(t.closeable&&t.esc){const o=({key:g})=>{g==="Escape"&&(i==null||i.close(t.id),window.removeEventListener("keydown",o))};window.addEventListener("keydown",o)}}function M(){y=m.value.offsetLeft,C=m.value.offsetTop}e.onMounted(()=>{u(),A()}),e.onUnmounted(()=>{});function _(){return p.value=!0,()=>B()}function B(){p.value=!1}return s({showLoading:_,hideLoading:B}),(o,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:b,class:"modal-wrapper",style:e.normalizeStyle(d.value),onClick:g[0]||(g[0]=e.withModifiers(S=>o.maskClosable&&c(),["self"]))},[e.createElementVNode("div",{ref_key:"contentRef",ref:m,class:e.normalizeClass(["modal-content",{[`${o.mode}-mode`]:!0}]),style:e.normalizeStyle(k.value)},[o.header?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"headerRef",ref:h,class:"modal-header",style:e.normalizeStyle(E.value),onMousedown:M},[e.createElementVNode("div",Y,e.toDisplayString(o.title),1),e.createElementVNode("div",q,[o.closeable?(e.openBlock(),e.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:c})):e.createCommentVNode("",!0)])],36)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"modal-body",style:e.normalizeStyle(x.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),e.normalizeProps(e.guardReactiveProps(o.componentProps)),null,16))],4),o.footer?(e.openBlock(),e.createElementBlock("div",U,[e.createElementVNode("button",{class:"cancel-button",type:"button",onClick:$}," 取消 "),e.createElementVNode("button",{class:"submit-button",form:o.form,type:"submit",onClick:V}," 确定 ",8,J)])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",Q,ee)):e.createCommentVNode("",!0)],6)],4))}});const R=(n,s)=>{const r=n.__vccOpts||n;for(const[t,a]of s)r[t]=a;return r},O=R(oe,[["__scopeId","data-v-0982fb60"]]),ne={class:"modal-dialog"},re={class:"dialog-body"},ie={class:"dialog-title"},le={class:"dialog-content"},se=e.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(n){const s=n,r=T(),t=e.computed(()=>s.title?s.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[s.type]);async function a(){s.onOk&&await s.onOk(),r.close()}async function i(){s.onCancel&&await s.onCancel(),r.close()}return(p,y)=>(e.openBlock(),e.createElementBlock("section",ne,[e.createElementVNode("div",re,[e.createElementVNode("div",ie,e.toDisplayString(t.value),1),e.createElementVNode("div",le,e.toDisplayString(p.content),1)]),e.createElementVNode("div",{class:"dialog-footer space-x-2",style:e.normalizeStyle(p.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[p.footer?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.footer),{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"submit-button",type:"submit",onClick:a},e.toDisplayString(p.okText),1),p.type==="confirm"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:i},e.toDisplayString(p.cancelText),1)):e.createCommentVNode("",!0)],64))],4)]))}});const ae=R(se,[["__scopeId","data-v-8326e5a5"]]),ce={key:0,class:"modal-teleport"},de={name:"ModalProvider",inheritAttrs:!0},ue=e.defineComponent({...de,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:520,middle:860,large:1190})},maxWidth:{default:"80%"},maxHeight:{default:"80%"},offset:{default:()=>({x:0,y:0})}},setup(n,{expose:s}){const r=e.shallowRef([]),t=e.ref(!1),a=e.getCurrentInstance();function i(l,f={},c={}){const v=e.defineAsyncComponent(()=>Promise.resolve(typeof l=="string"?ae:l));typeof l=="string"&&(f.type=l,c.size="small",c.fullscreen=!1,c.mode="dialog",c.footer=!1,c.header=!1);const d=Math.random().toString(32).slice(2),k=new Promise((E,x)=>{r.value.push({id:d,component:v,props:f||{},options:{...c,type:typeof l=="string"?l:"component"},resolve:E,reject:x,listeners:[]}),e.triggerRef(r)}).catch(E=>E==="CANCEL"?new Promise(()=>{}):Promise.reject(E));return Object.assign(k,{close:()=>p(d)})}function p(l,f){const c=r.value.findIndex(d=>d.id===l);if(c<0)return;const v=r.value[c];f===void 0?v==null||v.reject("CANCEL"):v==null||v.resolve(f),r.value.splice(c,1),e.triggerRef(r)}function y(){!r.value||r.value.length===0||(r.value.forEach(l=>{l==null||l.reject("CANCEL")}),r.value=[],e.triggerRef(r))}function C(l,f){const c=r.value.find(d=>d.id===l);if(!c)return;const v=c.listeners.find(d=>d.event===f);v&&v.callback({open:i,close:d=>p(c.id,d),closeAll:y,showLoading:()=>b(c.id),hideLoading:()=>m(c.id),confirm:d=>i("confirm",d),success:d=>i("success",d),error:d=>i("error",d),warning:d=>i("warning",d),info:d=>i("info",d)})}function b(l){if(!a)return;const[f]=a.refs[`modal-container_${l}`];if(f)return f.showLoading()}function m(l){if(!a)return;const[f]=a.refs[`modal-container_${l}`];if(f)return f.hideLoading()}function h(l,f,c){const v=r.value.find(d=>d.id===l);v&&v.listeners.push({event:f,callback:c})}return e.provide(N,{open:i,close:p,closeAll:y,addEventListener:h}),s({elements:r,open:i,close:p,closeAll:y}),e.onMounted(()=>{t.value=!0}),(l,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(l.$slots,"default",{},void 0,!0),t.value?(e.openBlock(),e.createElementBlock("div",ce,[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!l.appendToBody,to:typeof l.appendToBody=="string"?l.appendToBody:"body"},[e.createVNode(e.TransitionGroup,{name:"modal-fade"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,c=>(e.openBlock(),e.createBlock(O,e.mergeProps({id:c.id,key:c.id,ref_for:!0,ref:`modal-container_${c.id}`,component:c.component,"component-props":c.props,"max-height":l.maxHeight,"max-width":l.maxWidth,offset:l.offset,sizes:l.sizes},c.options,{onSubmit:()=>C(c.id,"submit")}),null,16,["id","component","component-props","max-height","max-width","offset","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):e.createCommentVNode("",!0)],64))}});const fe=R(ue,[["__scopeId","data-v-85b1d29d"]]);function L(n,s){var t,a;let r=n==null?void 0:n.parent;for(;r&&((t=r==null?void 0:r.type)==null?void 0:t.name)!==s;)r=r.parent;return((a=r==null?void 0:r.type)==null?void 0:a.name)===s?r:null}function T(){const n=e.inject(N),s=e.getCurrentInstance();function r(t,a,i){if(!n)throw new Error("Not Found Modal Provider Component");return n.open(t,a,i)}return{open:r,close(t){var p;if(!n)throw new Error("Not Found Modal Provider Component");const a=L(s,"ModalContainer"),i=(p=a==null?void 0:a.props)==null?void 0:p.id;if(!i)throw new Error("Not Found Current Modal Container");n.close(i,t)},closeAll(){if(!n)throw new Error("Not Found Modal Provider Component");n.closeAll()},showLoading(){var i;if(!n)throw new Error("Not Found Modal Provider Component");const t=L(s,"ModalContainer");if(!((i=t==null?void 0:t.props)==null?void 0:i.id))throw new Error("Not Found Current Modal Container");t!=null&&t.exposed&&(t==null||t.exposed.showLoading())},hideLoading(){var i;if(!n)throw new Error("Not Found Modal Provider Component");const t=L(s,"ModalContainer");if(!((i=t==null?void 0:t.props)==null?void 0:i.id))throw new Error("Not Found Current Modal Container");t!=null&&t.exposed&&(t==null||t.exposed.hideLoading())},confirm(t){return this.open("confirm",t)},info(t){return this.open("info",t)},error(t){return this.open("error",t)},warning(t){return this.open("warning",t)},success(t){return this.open("success",t)}}}function pe(n){var i;const s=e.inject(N),r=e.getCurrentInstance(),t=L(r,"ModalContainer"),a=(i=t==null?void 0:t.props)==null?void 0:i.id;s&&a&&s.addEventListener(a,"submit",n)}exports.ModalContainer=O;exports.ModalKey=N;exports.ModalProvider=fe;exports.onSubmit=pe;exports.useModal=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");const N=Symbol("__MODAL__");function F(n){return e.getCurrentScope()?(e.onScopeDispose(n),!0):!1}function w(n){return typeof n=="function"?n():e.unref(n)}const T=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const W=Object.prototype.toString,I=n=>W.call(n)==="[object Object]",H=()=>{};function j(n,s={}){if(!e.isRef(n))return e.toRefs(n);const r=Array.isArray(n.value)?Array.from({length:n.value.length}):{};for(const t in n.value)r[t]=e.customRef(()=>({get(){return n.value[t]},set(a){var i;if((i=w(s.replaceRef))!=null?i:!0)if(Array.isArray(n.value)){const v=[...n.value];v[t]=a,n.value=v}else{const v={...n.value,[t]:a};Object.setPrototypeOf(v,Object.getPrototypeOf(n.value)),n.value=v}else n.value[t]=a}}));return r}function G(n){var s;const r=w(n);return(s=r==null?void 0:r.$el)!=null?s:r}const z=T?window:void 0;function P(...n){let s,r,t,a;if(typeof n[0]=="string"||Array.isArray(n[0])?([r,t,a]=n,s=z):[s,r,t,a]=n,!s)return H;Array.isArray(r)||(r=[r]),Array.isArray(t)||(t=[t]);const i=[],p=()=>{i.forEach(m=>m()),i.length=0},v=(m,h,l,f)=>(m.addEventListener(h,l,f),()=>m.removeEventListener(h,l,f)),C=e.watch(()=>[G(s),w(a)],([m,h])=>{if(p(),!m)return;const l=I(h)?{...h}:h;i.push(...r.flatMap(f=>t.map(c=>v(m,f,c,l))))},{immediate:!0,flush:"post"}),b=()=>{C(),p()};return F(b),b}function K(n,s={}){var r,t;const{pointerTypes:a,preventDefault:i,stopPropagation:p,exact:v,onMove:C,onEnd:b,onStart:m,initialValue:h,axis:l="both",draggingElement:f=z,containerElement:c,handle:y=n}=s,d=e.ref((r=w(h))!=null?r:{x:0,y:0}),k=e.ref(),E=u=>a?a.includes(u.pointerType):!0,B=u=>{w(i)&&u.preventDefault(),w(p)&&u.stopPropagation()},V=u=>{var S;if(!E(u)||w(v)&&u.target!==w(n))return;const _=w(c),x=(S=_==null?void 0:_.getBoundingClientRect)==null?void 0:S.call(_),o=w(n).getBoundingClientRect(),g={x:u.clientX-(_?o.left-x.left:o.left),y:u.clientY-(_?o.top-x.top:o.top)};(m==null?void 0:m(g,u))!==!1&&(k.value=g,B(u))},$=u=>{var S;if(!E(u)||!k.value)return;const _=w(c),x=(S=_==null?void 0:_.getBoundingClientRect)==null?void 0:S.call(_),o=w(n).getBoundingClientRect();let{x:g,y:M}=d.value;(l==="x"||l==="both")&&(g=u.clientX-k.value.x,_&&(g=Math.min(Math.max(0,g),x.width-o.width))),(l==="y"||l==="both")&&(M=u.clientY-k.value.y,_&&(M=Math.min(Math.max(0,M),x.height-o.height))),d.value={x:g,y:M},C==null||C(d.value,u),B(u)},A=u=>{E(u)&&k.value&&(k.value=void 0,b==null||b(d.value,u),B(u))};if(T){const u={capture:(t=s.capture)!=null?t:!0};P(y,"pointerdown",V,u),P(f,"pointermove",$,u),P(f,"pointerup",A,u)}return{...j(d),position:d,isDragging:e.computed(()=>!!k.value),style:e.computed(()=>`left:${d.value.x}px;top:${d.value.y}px;`)}}const X=n=>(e.pushScopeId("data-v-0ecbfa64"),n=n(),e.popScopeId(),n),Y={class:"title text-16px font-bold"},q={class:"action"},U={key:1,class:"modal-footer space-x-2"},J=["form"],Q={key:2,class:"modal-loading"},Z=X(()=>e.createElementVNode("div",{class:"lds-ring"},[e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div")],-1)),ee=[Z],te={name:"ModalContainer",inheritAttrs:!0},oe=e.defineComponent({...te,props:{id:{},form:{},component:{},componentProps:{},width:{},maxWidth:{},maxHeight:{},sizes:{},size:{default:"middle"},fullscreen:{type:Boolean},title:{},header:{type:Boolean,default:!0},footer:{type:Boolean,default:!1},closeable:{type:Boolean,default:!0},esc:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},mode:{default:"dialog"},type:{},offset:{},backgroundColor:{},bodyStyle:{},submitText:{default:"确定"},cancelText:{default:"取消"}},emits:["submit"],setup(n,{expose:s,emit:r}){const t=n,a=r,i=e.inject(N),p=e.ref(!1);let v=0,C=0;const b=e.shallowRef(),m=e.shallowRef(),h=e.shallowRef(),{x:l,y:f}=K(h,{initialValue:{x:0,y:0}});function c(){i==null||i.close(t.id)}function y(o){if(typeof o=="number")return`${o}px`;if(typeof o=="string")return o}const d=e.computed(()=>{const o={};return t.mode==="dialog"&&(o.justifyContent="center"),t.mode==="drawer"&&(o.justifyContent="flex-end"),o}),k=e.computed(()=>{const o={};return t.size&&(o.width=y(t.sizes[t.size])),t.width&&(o.width=y(t.width)),t.maxWidth&&(o.maxWidth=y(t.maxWidth)),t.fullscreen&&(o.maxWidth="unset",o.width="100%",o.position="fixed",o.top=0,o.left=0,o.bottom=0,o.right=0,o.borderRadius=0),t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(o.transform=`translate3d(${l.value-v}px, ${f.value-C}px, 0px)`),t.mode==="drawer"&&(o.borderRadius=0,o.height="100%"),t.offset&&t.mode==="dialog"&&(o.marginLeft=`${t.offset.x||0}px`,o.marginTop=`${t.offset.y||0}px`),t.backgroundColor&&(o.backgroundColor=t.backgroundColor),o}),E=e.computed(()=>{const o={};return t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(o.cursor="move"),o}),B=e.computed(()=>{var g;const o={};return t.maxHeight&&(o.maxHeight=`calc(${(g=y(t.maxHeight))==null?void 0:g.replace("%","vh")} - 50px)`),t.mode==="drawer"&&(o.maxHeight="unset",o.height=`calc(100% - ${(t.header?50:0)+(t.footer?50:0)}px)`),t.fullscreen&&(o.maxHeight="unset",o.height=`calc(100% - ${(t.header?50:0)+(t.footer?50:0)}px)`),t.type!=="component"&&(o.padding="0"),t.bodyStyle&&Object.assign(o,t.bodyStyle),o});function V(){const o=m.value;if(t.form&&o){const g=o.querySelector(`form[name="${t.form}"]`);g&&g.dispatchEvent(new Event("submit"))}a("submit")}function $(){i==null||i.close(t.id)}function A(){window&&window.addEventListener("resize",()=>{e.triggerRef(b),e.triggerRef(m),m.value&&(v=m.value.offsetLeft,C=m.value.offsetTop)})}function u(){if(t.closeable&&t.esc){const o=({key:g})=>{g==="Escape"&&(i==null||i.close(t.id),window.removeEventListener("keydown",o))};window.addEventListener("keydown",o)}}function S(){v=m.value.offsetLeft,C=m.value.offsetTop}e.onMounted(()=>{u(),A()}),e.onUnmounted(()=>{});function _(){return p.value=!0,()=>x()}function x(){p.value=!1}return s({showLoading:_,hideLoading:x}),(o,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:b,class:"modal-wrapper",style:e.normalizeStyle(d.value),onClick:g[0]||(g[0]=e.withModifiers(M=>o.maskClosable&&c(),["self"]))},[e.createElementVNode("div",{ref_key:"contentRef",ref:m,class:e.normalizeClass(["modal-content",{[`${o.mode}-mode`]:!0}]),style:e.normalizeStyle(k.value)},[o.header?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"headerRef",ref:h,class:"modal-header",style:e.normalizeStyle(E.value),onMousedown:S},[e.createElementVNode("div",Y,e.toDisplayString(o.title),1),e.createElementVNode("div",q,[o.closeable?(e.openBlock(),e.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:c})):e.createCommentVNode("",!0)])],36)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"modal-body",style:e.normalizeStyle(B.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),e.normalizeProps(e.guardReactiveProps(o.componentProps)),null,16))],4),o.footer?(e.openBlock(),e.createElementBlock("div",U,[e.createElementVNode("button",{class:"cancel-button",type:"button",onClick:$},e.toDisplayString(o.cancelText),1),e.createElementVNode("button",{class:"submit-button",form:o.form,type:"submit",onClick:V},e.toDisplayString(o.submitText),9,J)])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",Q,ee)):e.createCommentVNode("",!0)],6)],4))}});const R=(n,s)=>{const r=n.__vccOpts||n;for(const[t,a]of s)r[t]=a;return r},D=R(oe,[["__scopeId","data-v-0ecbfa64"]]),ne={class:"modal-dialog"},re={class:"dialog-body"},ie={class:"dialog-title"},le={class:"dialog-content"},se=e.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(n){const s=n,r=O(),t=e.computed(()=>s.title?s.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[s.type]);async function a(){s.onOk&&await s.onOk(),r.close()}async function i(){s.onCancel&&await s.onCancel(),r.close()}return(p,v)=>(e.openBlock(),e.createElementBlock("section",ne,[e.createElementVNode("div",re,[e.createElementVNode("div",ie,e.toDisplayString(t.value),1),e.createElementVNode("div",le,e.toDisplayString(p.content),1)]),e.createElementVNode("div",{class:"dialog-footer space-x-2",style:e.normalizeStyle(p.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[p.footer?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.footer),{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"submit-button",type:"submit",onClick:a},e.toDisplayString(p.okText),1),p.type==="confirm"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:i},e.toDisplayString(p.cancelText),1)):e.createCommentVNode("",!0)],64))],4)]))}});const ae=R(se,[["__scopeId","data-v-8326e5a5"]]),ce={key:0,class:"modal-teleport"},de={name:"ModalProvider",inheritAttrs:!0},ue=e.defineComponent({...de,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:"50%",middle:"70%",large:"90%"})},maxWidth:{default:"90%"},maxHeight:{default:"90%"},offset:{default:()=>({x:0,y:0})}},setup(n,{expose:s}){const r=e.shallowRef([]),t=e.ref(!1),a=e.getCurrentInstance();function i(l,f={},c={}){const y=e.defineAsyncComponent(()=>Promise.resolve(typeof l=="string"?ae:l));typeof l=="string"&&(f.type=l,c.size="small",c.fullscreen=!1,c.mode="dialog",c.footer=!1,c.header=!1);const d=Math.random().toString(32).slice(2),k=new Promise((E,B)=>{r.value.push({id:d,component:y,props:f||{},options:{...c,type:typeof l=="string"?l:"component"},resolve:E,reject:B,listeners:[]}),e.triggerRef(r)}).catch(E=>E==="CANCEL"?new Promise(()=>{}):Promise.reject(E));return Object.assign(k,{close:()=>p(d)})}function p(l,f){const c=r.value.findIndex(d=>d.id===l);if(c<0)return;const y=r.value[c];f===void 0?y==null||y.reject("CANCEL"):y==null||y.resolve(f),r.value.splice(c,1),e.triggerRef(r)}function v(){!r.value||r.value.length===0||(r.value.forEach(l=>{l==null||l.reject("CANCEL")}),r.value=[],e.triggerRef(r))}function C(l,f){const c=r.value.find(d=>d.id===l);if(!c)return;const y=c.listeners.find(d=>d.event===f);y&&y.callback({open:i,close:d=>p(c.id,d),closeAll:v,showLoading:()=>b(c.id),hideLoading:()=>m(c.id),confirm:d=>i("confirm",d),success:d=>i("success",d),error:d=>i("error",d),warning:d=>i("warning",d),info:d=>i("info",d)})}function b(l){if(!a)return;const[f]=a.refs[`modal-container_${l}`];if(f)return f.showLoading()}function m(l){if(!a)return;const[f]=a.refs[`modal-container_${l}`];if(f)return f.hideLoading()}function h(l,f,c){const y=r.value.find(d=>d.id===l);y&&y.listeners.push({event:f,callback:c})}return e.provide(N,{open:i,close:p,closeAll:v,addEventListener:h}),s({elements:r,open:i,close:p,closeAll:v}),e.onMounted(()=>{t.value=!0}),(l,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(l.$slots,"default",{},void 0,!0),t.value?(e.openBlock(),e.createElementBlock("div",ce,[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!l.appendToBody,to:typeof l.appendToBody=="string"?l.appendToBody:"body"},[e.createVNode(e.TransitionGroup,{name:"modal-fade"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,c=>(e.openBlock(),e.createBlock(D,e.mergeProps({id:c.id,key:c.id,ref_for:!0,ref:`modal-container_${c.id}`,component:c.component,"component-props":c.props,"max-height":l.maxHeight,"max-width":l.maxWidth,offset:l.offset,sizes:l.sizes},c.options,{onSubmit:()=>C(c.id,"submit")}),null,16,["id","component","component-props","max-height","max-width","offset","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):e.createCommentVNode("",!0)],64))}});const fe=R(ue,[["__scopeId","data-v-cdd9e7f0"]]);function L(n,s){var t,a;let r=n==null?void 0:n.parent;for(;r&&((t=r==null?void 0:r.type)==null?void 0:t.name)!==s;)r=r.parent;return((a=r==null?void 0:r.type)==null?void 0:a.name)===s?r:null}function O(){const n=e.inject(N),s=e.getCurrentInstance();function r(t,a,i){if(!n)throw new Error("Not Found Modal Provider Component");return n.open(t,a,i)}return{open:r,close(t){var p;if(!n)throw new Error("Not Found Modal Provider Component");const a=L(s,"ModalContainer"),i=(p=a==null?void 0:a.props)==null?void 0:p.id;if(!i)throw new Error("Not Found Current Modal Container");n.close(i,t)},closeAll(){if(!n)throw new Error("Not Found Modal Provider Component");n.closeAll()},showLoading(){var i;if(!n)throw new Error("Not Found Modal Provider Component");const t=L(s,"ModalContainer");if(!((i=t==null?void 0:t.props)==null?void 0:i.id))throw new Error("Not Found Current Modal Container");t!=null&&t.exposed&&(t==null||t.exposed.showLoading())},hideLoading(){var i;if(!n)throw new Error("Not Found Modal Provider Component");const t=L(s,"ModalContainer");if(!((i=t==null?void 0:t.props)==null?void 0:i.id))throw new Error("Not Found Current Modal Container");t!=null&&t.exposed&&(t==null||t.exposed.hideLoading())},confirm(t){return this.open("confirm",t)},info(t){return this.open("info",t)},error(t){return this.open("error",t)},warning(t){return this.open("warning",t)},success(t){return this.open("success",t)}}}function pe(n){var i;const s=e.inject(N),r=e.getCurrentInstance(),t=L(r,"ModalContainer"),a=(i=t==null?void 0:t.props)==null?void 0:i.id;s&&a&&s.addEventListener(a,"submit",n)}exports.ModalContainer=D;exports.ModalKey=N;exports.ModalProvider=fe;exports.onSubmit=pe;exports.useModal=O;
@@ -1,9 +1,9 @@
1
1
  import type { CSSProperties, Component } from 'vue';
2
2
  import type { useModal } from './hooks/use-modal';
3
3
  export interface SizeOptions {
4
- small: number;
5
- middle: number;
6
- large: number;
4
+ small: string;
5
+ middle: string;
6
+ large: string;
7
7
  }
8
8
  export interface OpenModalOptions {
9
9
  closeable?: boolean;
@@ -21,6 +21,8 @@ export interface OpenModalOptions {
21
21
  mode?: 'dialog' | 'drawer';
22
22
  backgroundColor?: string;
23
23
  bodyStyle?: CSSProperties;
24
+ submitText?: string;
25
+ cancelText?: string;
24
26
  }
25
27
  export interface ModalElement extends OpenModalOptions {
26
28
  id: string;
@@ -26,6 +26,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
26
26
  } | undefined;
27
27
  backgroundColor?: string | undefined;
28
28
  bodyStyle?: CSSProperties | undefined;
29
+ submitText?: string | undefined;
30
+ cancelText?: string | undefined;
29
31
  }>, {
30
32
  header: boolean;
31
33
  closeable: boolean;
@@ -36,6 +38,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
36
38
  esc: boolean;
37
39
  draggable: boolean;
38
40
  mode: string;
41
+ submitText: string;
42
+ cancelText: string;
39
43
  }>, {
40
44
  showLoading: () => () => void;
41
45
  hideLoading: () => void;
@@ -67,6 +71,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
67
71
  } | undefined;
68
72
  backgroundColor?: string | undefined;
69
73
  bodyStyle?: CSSProperties | undefined;
74
+ submitText?: string | undefined;
75
+ cancelText?: string | undefined;
70
76
  }>, {
71
77
  header: boolean;
72
78
  closeable: boolean;
@@ -77,6 +83,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
77
83
  esc: boolean;
78
84
  draggable: boolean;
79
85
  mode: string;
86
+ submitText: string;
87
+ cancelText: string;
80
88
  }>>> & {
81
89
  onSubmit?: ((...args: any[]) => any) | undefined;
82
90
  }, {
@@ -88,6 +96,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
88
96
  maskClosable: boolean;
89
97
  draggable: boolean;
90
98
  mode: 'dialog' | 'drawer';
99
+ submitText: string;
100
+ cancelText: string;
91
101
  }, {}>;
92
102
  export default _default;
93
103
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -23,8 +23,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
23
23
  okText: string;
24
24
  cancelText: string;
25
25
  }>>>, {
26
- okText: string;
27
26
  cancelText: string;
27
+ okText: string;
28
28
  }, {}>;
29
29
  export default _default;
30
30
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -14,9 +14,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
14
14
  maxWidth: string;
15
15
  maxHeight: string;
16
16
  sizes: () => {
17
- small: number;
18
- middle: number;
19
- large: number;
17
+ small: string;
18
+ middle: string;
19
+ large: string;
20
20
  };
21
21
  offset: () => {
22
22
  x: number;
@@ -43,9 +43,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
43
43
  maxWidth: string;
44
44
  maxHeight: string;
45
45
  sizes: () => {
46
- small: number;
47
- middle: number;
48
- large: number;
46
+ small: string;
47
+ middle: string;
48
+ large: string;
49
49
  };
50
50
  offset: () => {
51
51
  x: number;
package/dist/es/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { unref as ee, isRef as te, toRefs as oe, customRef as ne, getCurrentScope as ie, onScopeDispose as re, ref as D, computed as A, watch as se, defineComponent as X, inject as Y, shallowRef as R, onMounted as U, onUnmounted as le, openBlock as g, createElementBlock as x, normalizeStyle as O, withModifiers as ae, createElementVNode as h, normalizeClass as de, toDisplayString as T, createCommentVNode as P, createBlock as W, resolveDynamicComponent as J, normalizeProps as ce, guardReactiveProps as ue, triggerRef as z, pushScopeId as fe, popScopeId as pe, Fragment as G, getCurrentInstance as K, provide as me, renderSlot as ve, Teleport as ye, createVNode as he, TransitionGroup as ge, withCtx as _e, renderList as we, mergeProps as be, defineAsyncComponent as Ce } from "vue";
1
+ import { unref as ee, isRef as te, toRefs as oe, customRef as ne, getCurrentScope as ie, onScopeDispose as re, ref as D, computed as A, watch as se, defineComponent as X, inject as Y, shallowRef as R, onMounted as U, onUnmounted as le, openBlock as g, createElementBlock as x, normalizeStyle as O, withModifiers as ae, createElementVNode as h, normalizeClass as de, toDisplayString as P, createCommentVNode as T, createBlock as W, resolveDynamicComponent as J, normalizeProps as ce, guardReactiveProps as ue, triggerRef as z, pushScopeId as fe, popScopeId as pe, Fragment as G, getCurrentInstance as K, provide as me, renderSlot as ve, Teleport as ye, createVNode as he, TransitionGroup as ge, withCtx as _e, renderList as we, mergeProps as be, defineAsyncComponent as Ce } from "vue";
2
2
  const F = Symbol("__MODAL__");
3
3
  function xe(o) {
4
4
  return ie() ? (re(o), !0) : !1;
@@ -118,10 +118,10 @@ function $e(o, s = {}) {
118
118
  )
119
119
  };
120
120
  }
121
- const Ae = (o) => (fe("data-v-0982fb60"), o = o(), pe(), o), Pe = { class: "title text-16px font-bold" }, Be = { class: "action" }, Oe = {
121
+ const Ae = (o) => (fe("data-v-0ecbfa64"), o = o(), pe(), o), Pe = { class: "title text-16px font-bold" }, Te = { class: "action" }, Be = {
122
122
  key: 1,
123
123
  class: "modal-footer space-x-2"
124
- }, Te = ["form"], ze = {
124
+ }, Oe = ["form"], ze = {
125
125
  key: 2,
126
126
  class: "modal-loading"
127
127
  }, Re = /* @__PURE__ */ Ae(() => /* @__PURE__ */ h("div", { class: "lds-ring" }, [
@@ -158,7 +158,9 @@ const Ae = (o) => (fe("data-v-0982fb60"), o = o(), pe(), o), Pe = { class: "titl
158
158
  type: {},
159
159
  offset: {},
160
160
  backgroundColor: {},
161
- bodyStyle: {}
161
+ bodyStyle: {},
162
+ submitText: { default: "确定" },
163
+ cancelText: { default: "取消" }
162
164
  },
163
165
  emits: ["submit"],
164
166
  setup(o, { expose: s, emit: n }) {
@@ -251,35 +253,35 @@ const Ae = (o) => (fe("data-v-0982fb60"), o = o(), pe(), o), Pe = { class: "titl
251
253
  style: O(E.value),
252
254
  onMousedown: $
253
255
  }, [
254
- h("div", Pe, T(t.title), 1),
255
- h("div", Be, [
256
+ h("div", Pe, P(t.title), 1),
257
+ h("div", Te, [
256
258
  t.closeable ? (g(), x("div", {
257
259
  key: 0,
258
260
  class: "i-icon-park-outline:close block cursor-pointer",
259
261
  onClick: a
260
- })) : P("", !0)
262
+ })) : T("", !0)
261
263
  ])
262
- ], 36)) : P("", !0),
264
+ ], 36)) : T("", !0),
263
265
  h("div", {
264
266
  class: "modal-body",
265
267
  style: O(L.value)
266
268
  }, [
267
269
  (g(), W(J(t.component), ce(ue(t.componentProps)), null, 16))
268
270
  ], 4),
269
- t.footer ? (g(), x("div", Oe, [
271
+ t.footer ? (g(), x("div", Be, [
270
272
  h("button", {
271
273
  class: "cancel-button",
272
274
  type: "button",
273
275
  onClick: I
274
- }, " 取消 "),
276
+ }, P(t.cancelText), 1),
275
277
  h("button", {
276
278
  class: "submit-button",
277
279
  form: t.form,
278
280
  type: "submit",
279
281
  onClick: H
280
- }, " 确定 ", 8, Te)
281
- ])) : P("", !0),
282
- f.value ? (g(), x("div", ze, Ne)) : P("", !0)
282
+ }, P(t.submitText), 9, Oe)
283
+ ])) : T("", !0),
284
+ f.value ? (g(), x("div", ze, Ne)) : T("", !0)
283
285
  ], 6)
284
286
  ], 4));
285
287
  }
@@ -289,7 +291,7 @@ const q = (o, s) => {
289
291
  for (const [e, l] of s)
290
292
  n[e] = l;
291
293
  return n;
292
- }, Fe = /* @__PURE__ */ q(We, [["__scopeId", "data-v-0982fb60"]]), He = { class: "modal-dialog" }, Ie = { class: "dialog-body" }, Ve = { class: "dialog-title" }, je = { class: "dialog-content" }, Ge = /* @__PURE__ */ X({
294
+ }, Fe = /* @__PURE__ */ q(We, [["__scopeId", "data-v-0ecbfa64"]]), He = { class: "modal-dialog" }, Ie = { class: "dialog-body" }, Ve = { class: "dialog-title" }, je = { class: "dialog-content" }, Ge = /* @__PURE__ */ X({
293
295
  __name: "modal-dialog",
294
296
  props: {
295
297
  type: {},
@@ -317,8 +319,8 @@ const q = (o, s) => {
317
319
  }
318
320
  return (f, v) => (g(), x("section", He, [
319
321
  h("div", Ie, [
320
- h("div", Ve, T(e.value), 1),
321
- h("div", je, T(f.content), 1)
322
+ h("div", Ve, P(e.value), 1),
323
+ h("div", je, P(f.content), 1)
322
324
  ]),
323
325
  h("div", {
324
326
  class: "dialog-footer space-x-2",
@@ -329,13 +331,13 @@ const q = (o, s) => {
329
331
  class: "submit-button",
330
332
  type: "submit",
331
333
  onClick: l
332
- }, T(f.okText), 1),
334
+ }, P(f.okText), 1),
333
335
  f.type === "confirm" ? (g(), x("button", {
334
336
  key: 0,
335
337
  class: "cancel-button",
336
338
  type: "button",
337
339
  onClick: i
338
- }, T(f.cancelText), 1)) : P("", !0)
340
+ }, P(f.cancelText), 1)) : T("", !0)
339
341
  ], 64))
340
342
  ], 4)
341
343
  ]));
@@ -352,12 +354,12 @@ const Xe = /* @__PURE__ */ q(Ge, [["__scopeId", "data-v-8326e5a5"]]), Ye = {
352
354
  props: {
353
355
  appendToBody: { type: [Boolean, String], default: !1 },
354
356
  sizes: { default: () => ({
355
- small: 520,
356
- middle: 860,
357
- large: 1190
357
+ small: "50%",
358
+ middle: "70%",
359
+ large: "90%"
358
360
  }) },
359
- maxWidth: { default: "80%" },
360
- maxHeight: { default: "80%" },
361
+ maxWidth: { default: "90%" },
362
+ maxHeight: { default: "90%" },
361
363
  offset: { default: () => ({ x: 0, y: 0 }) }
362
364
  },
363
365
  setup(o, { expose: s }) {
@@ -476,11 +478,11 @@ const Xe = /* @__PURE__ */ q(Ge, [["__scopeId", "data-v-8326e5a5"]]), Ye = {
476
478
  _: 1
477
479
  })
478
480
  ], 8, ["disabled", "to"]))
479
- ])) : P("", !0)
481
+ ])) : T("", !0)
480
482
  ], 64));
481
483
  }
482
484
  });
483
- const Qe = /* @__PURE__ */ q(qe, [["__scopeId", "data-v-85b1d29d"]]);
485
+ const Qe = /* @__PURE__ */ q(qe, [["__scopeId", "data-v-cdd9e7f0"]]);
484
486
  function N(o, s) {
485
487
  var e, l;
486
488
  let n = o == null ? void 0 : o.parent;
@@ -1,9 +1,9 @@
1
1
  import type { CSSProperties, Component } from 'vue';
2
2
  import type { useModal } from './hooks/use-modal';
3
3
  export interface SizeOptions {
4
- small: number;
5
- middle: number;
6
- large: number;
4
+ small: string;
5
+ middle: string;
6
+ large: string;
7
7
  }
8
8
  export interface OpenModalOptions {
9
9
  closeable?: boolean;
@@ -21,6 +21,8 @@ export interface OpenModalOptions {
21
21
  mode?: 'dialog' | 'drawer';
22
22
  backgroundColor?: string;
23
23
  bodyStyle?: CSSProperties;
24
+ submitText?: string;
25
+ cancelText?: string;
24
26
  }
25
27
  export interface ModalElement extends OpenModalOptions {
26
28
  id: string;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-icon-park-outline\:close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 48 48' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='m8 8l32 32M8 40L40 8'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.space-x-2>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(.5rem * calc(1 - var(--un-space-x-reverse)));margin-right:calc(.5rem * var(--un-space-x-reverse))}.border{border-width:1px}.px{padding-left:1rem;padding-right:1rem}.text-16px{font-size:16px}.font-bold{font-weight:700}.outline{outline-style:solid}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-wrapper[data-v-0982fb60]{z-index:1000;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;background:rgba(0,0,0,.3)}.modal-content[data-v-0982fb60]{background:#ffffff;border-radius:5px;position:relative}.modal-header[data-v-0982fb60]{box-sizing:border-box;padding:10px;height:50px;display:flex;justify-content:space-between;align-items:center;border-bottom:solid 1px var(--color-border-1, #e8e8e8);color:var(--color-text-2, #4E5969)}.modal-body[data-v-0982fb60]{padding:10px;box-sizing:border-box;max-height:10vw;overflow:auto}.modal-footer[data-v-0982fb60]{box-sizing:border-box;height:50px;border-top:solid 1px var(--color-border-1, #e8e8e8);display:flex;justify-content:end;padding:10px}.modal-footer button[data-v-0982fb60]{height:28px;line-height:28px;width:80px;outline:none;border-color:transparent;font-size:14px;border-radius:4px;padding:0;box-sizing:content-box}.modal-footer button.submit-button[data-v-0982fb60]{color:#fff;background-color:rgb(var(--primary-6, 45, 106, 251))}.modal-footer button.submit-button[data-v-0982fb60]:hover{background-color:rgb(var(--primary-5, 28, 76, 207))}.modal-footer button.cancel-button[data-v-0982fb60]{color:rgb(var(--color-text-2, 78, 89, 105));background-color:var(--color-fill-1, #f5f5f5)}.modal-footer button.cancel-button[data-v-0982fb60]:hover{background-color:var(--color-fill-4, #c9cdd4)}.modal-loading[data-v-0982fb60]{position:absolute;z-index:1001;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#0000001a}.modal-loading .lds-ring[data-v-0982fb60]{display:inline-block;position:relative;width:80px;height:80px}.modal-loading .lds-ring div[data-v-0982fb60]{box-sizing:border-box;display:block;position:absolute;width:48px;height:48px;margin:8px;border:5px solid #fff;border-radius:50%;animation:lds-ring-0982fb60 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#fff transparent transparent transparent}.modal-loading .lds-ring div[data-v-0982fb60]:nth-child(1){animation-delay:-.45s}.modal-loading .lds-ring div[data-v-0982fb60]:nth-child(2){animation-delay:-.3s}.modal-loading .lds-ring div[data-v-0982fb60]:nth-child(3){animation-delay:-.15s}@keyframes lds-ring-0982fb60{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dialog-body[data-v-8326e5a5]{padding:20px 10px 10px}.dialog-title[data-v-8326e5a5]{padding:5px;font-weight:700;font-size:16px}.dialog-content[data-v-8326e5a5]{padding:5px}.dialog-footer[data-v-8326e5a5]{box-sizing:border-box;height:50px;border-top:solid 1px var(--color-border-1, #e8e8e8);display:flex;justify-content:center;align-items:center;padding:0 10px}.dialog-footer button[data-v-8326e5a5]{height:28px;line-height:28px;width:80px;outline:none;border-color:transparent;font-size:14px;border-radius:4px;padding:0;box-sizing:content-box}.dialog-footer button.submit-button[data-v-8326e5a5]{color:#fff;background-color:rgb(var(--primary-6, 45, 106, 251))}.dialog-footer button.submit-button[data-v-8326e5a5]:hover{background-color:rgb(var(--primary-5, 28, 76, 207))}.dialog-footer button.cancel-button[data-v-8326e5a5]{color:rgb(var(--color-text-2, 78, 89, 105));background-color:var(--color-fill-1, #f5f5f5)}.dialog-footer button.cancel-button[data-v-8326e5a5]:hover{background-color:var(--color-fill-4, #c9cdd4)}.modal-fade-enter-active[data-v-85b1d29d],.modal-fade-leave-active[data-v-85b1d29d]{transition:opacity .5s ease}.modal-fade-enter-active[data-v-85b1d29d] .modal-content.drawer-mode,.modal-fade-leave-active[data-v-85b1d29d] .modal-content.drawer-mode{transition:transform .5s ease}.modal-fade-enter-from[data-v-85b1d29d],.modal-fade-leave-to[data-v-85b1d29d]{opacity:0}.modal-fade-enter-from[data-v-85b1d29d] .modal-content.drawer-mode,.modal-fade-leave-to[data-v-85b1d29d] .modal-content.drawer-mode{transform:translate3d(100%,0,0)}
1
+ *,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-icon-park-outline\:close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 48 48' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='m8 8l32 32M8 40L40 8'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;width:1em;height:1em}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.space-x-2>:not([hidden])~:not([hidden]){--un-space-x-reverse:0;margin-left:calc(.5rem * calc(1 - var(--un-space-x-reverse)));margin-right:calc(.5rem * var(--un-space-x-reverse))}.border{border-width:1px}.px{padding-left:1rem;padding-right:1rem}.text-16px{font-size:16px}.font-bold{font-weight:700}.outline{outline-style:solid}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}.modal-wrapper[data-v-0ecbfa64]{z-index:1000;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;background:rgba(0,0,0,.3)}.modal-content[data-v-0ecbfa64]{background:#ffffff;border-radius:5px;position:relative}.modal-header[data-v-0ecbfa64]{box-sizing:border-box;padding:10px;height:50px;display:flex;justify-content:space-between;align-items:center;border-bottom:solid 1px var(--color-border-1, #e8e8e8);color:var(--color-text-2, #4E5969)}.modal-body[data-v-0ecbfa64]{padding:10px;box-sizing:border-box;max-height:10vw;overflow:auto}.modal-footer[data-v-0ecbfa64]{box-sizing:border-box;height:50px;border-top:solid 1px var(--color-border-1, #e8e8e8);display:flex;justify-content:end;padding:10px}.modal-footer button[data-v-0ecbfa64]{height:28px;line-height:28px;width:80px;outline:none;border-color:transparent;font-size:14px;border-radius:4px;padding:0;box-sizing:content-box}.modal-footer button.submit-button[data-v-0ecbfa64]{color:#fff;background-color:rgb(var(--primary-6, 45, 106, 251))}.modal-footer button.submit-button[data-v-0ecbfa64]:hover{background-color:rgb(var(--primary-5, 28, 76, 207))}.modal-footer button.cancel-button[data-v-0ecbfa64]{color:rgb(var(--color-text-2, 78, 89, 105));background-color:var(--color-fill-1, #f5f5f5)}.modal-footer button.cancel-button[data-v-0ecbfa64]:hover{background-color:var(--color-fill-4, #c9cdd4)}.modal-loading[data-v-0ecbfa64]{position:absolute;z-index:1001;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#0000001a}.modal-loading .lds-ring[data-v-0ecbfa64]{display:inline-block;position:relative;width:80px;height:80px}.modal-loading .lds-ring div[data-v-0ecbfa64]{box-sizing:border-box;display:block;position:absolute;width:48px;height:48px;margin:8px;border:5px solid #fff;border-radius:50%;animation:lds-ring-0ecbfa64 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#fff transparent transparent transparent}.modal-loading .lds-ring div[data-v-0ecbfa64]:nth-child(1){animation-delay:-.45s}.modal-loading .lds-ring div[data-v-0ecbfa64]:nth-child(2){animation-delay:-.3s}.modal-loading .lds-ring div[data-v-0ecbfa64]:nth-child(3){animation-delay:-.15s}@keyframes lds-ring-0ecbfa64{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dialog-body[data-v-8326e5a5]{padding:20px 10px 10px}.dialog-title[data-v-8326e5a5]{padding:5px;font-weight:700;font-size:16px}.dialog-content[data-v-8326e5a5]{padding:5px}.dialog-footer[data-v-8326e5a5]{box-sizing:border-box;height:50px;border-top:solid 1px var(--color-border-1, #e8e8e8);display:flex;justify-content:center;align-items:center;padding:0 10px}.dialog-footer button[data-v-8326e5a5]{height:28px;line-height:28px;width:80px;outline:none;border-color:transparent;font-size:14px;border-radius:4px;padding:0;box-sizing:content-box}.dialog-footer button.submit-button[data-v-8326e5a5]{color:#fff;background-color:rgb(var(--primary-6, 45, 106, 251))}.dialog-footer button.submit-button[data-v-8326e5a5]:hover{background-color:rgb(var(--primary-5, 28, 76, 207))}.dialog-footer button.cancel-button[data-v-8326e5a5]{color:rgb(var(--color-text-2, 78, 89, 105));background-color:var(--color-fill-1, #f5f5f5)}.dialog-footer button.cancel-button[data-v-8326e5a5]:hover{background-color:var(--color-fill-4, #c9cdd4)}.modal-fade-enter-active[data-v-cdd9e7f0],.modal-fade-leave-active[data-v-cdd9e7f0]{transition:opacity .5s ease}.modal-fade-enter-active[data-v-cdd9e7f0] .modal-content.drawer-mode,.modal-fade-leave-active[data-v-cdd9e7f0] .modal-content.drawer-mode{transition:transform .5s ease}.modal-fade-enter-from[data-v-cdd9e7f0],.modal-fade-leave-to[data-v-cdd9e7f0]{opacity:0}.modal-fade-enter-from[data-v-cdd9e7f0] .modal-content.drawer-mode,.modal-fade-leave-to[data-v-cdd9e7f0] .modal-content.drawer-mode{transform:translate3d(100%,0,0)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gopowerteam/modal-render",
3
3
  "type": "module",
4
- "version": "0.0.19",
4
+ "version": "0.0.21",
5
5
  "author": {
6
6
  "name": "zhuchentong",
7
7
  "email": "2037630@gmail.com"