@gopowerteam/modal-render 0.0.37 → 0.0.39

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.
@@ -1,11 +1,13 @@
1
- import type { CSSProperties, Component } from 'vue';
2
- import type { SizeOptions } from '../interfaces';
3
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ import { SizeOptions } from '../interfaces';
2
+ import { CSSProperties, Component } from 'vue';
3
+
4
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  id: string;
5
6
  form?: string | undefined;
6
7
  component: Component;
7
8
  componentProps: Record<string, any>;
8
9
  width?: string | number | undefined;
10
+ height?: string | number | undefined;
9
11
  maxWidth?: string | number | undefined;
10
12
  maxHeight?: string | number | undefined;
11
13
  sizes: SizeOptions;
@@ -19,6 +21,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
19
21
  maskClosable?: boolean | undefined;
20
22
  draggable?: boolean | undefined;
21
23
  mode?: "dialog" | "drawer" | undefined;
24
+ position?: "top" | "right" | "bottom" | "left" | undefined;
22
25
  type?: string | undefined;
23
26
  offset?: {
24
27
  x?: number | undefined;
@@ -39,6 +42,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
39
42
  esc: boolean;
40
43
  draggable: boolean;
41
44
  mode: string;
45
+ position: string;
42
46
  submitText: string;
43
47
  cancelText: string;
44
48
  maxHeight: number;
@@ -46,14 +50,15 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
46
50
  }>, {
47
51
  showLoading: () => () => void;
48
52
  hideLoading: () => void;
49
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
50
54
  submit: (...args: any[]) => void;
51
- }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
55
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
52
56
  id: string;
53
57
  form?: string | undefined;
54
58
  component: Component;
55
59
  componentProps: Record<string, any>;
56
60
  width?: string | number | undefined;
61
+ height?: string | number | undefined;
57
62
  maxWidth?: string | number | undefined;
58
63
  maxHeight?: string | number | undefined;
59
64
  sizes: SizeOptions;
@@ -67,6 +72,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
67
72
  maskClosable?: boolean | undefined;
68
73
  draggable?: boolean | undefined;
69
74
  mode?: "dialog" | "drawer" | undefined;
75
+ position?: "top" | "right" | "bottom" | "left" | undefined;
70
76
  type?: string | undefined;
71
77
  offset?: {
72
78
  x?: number | undefined;
@@ -87,6 +93,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
87
93
  esc: boolean;
88
94
  draggable: boolean;
89
95
  mode: string;
96
+ position: string;
90
97
  submitText: string;
91
98
  cancelText: string;
92
99
  maxHeight: number;
@@ -94,8 +101,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
94
101
  }>>> & {
95
102
  onSubmit?: ((...args: any[]) => any) | undefined;
96
103
  }, {
97
- maxHeight: number | string;
98
104
  size: 'small' | 'middle' | 'large';
105
+ maxHeight: number | string;
99
106
  header: boolean;
100
107
  footer: boolean;
101
108
  closeable: boolean;
@@ -103,6 +110,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
103
110
  maskClosable: boolean;
104
111
  draggable: boolean;
105
112
  mode: 'dialog' | 'drawer';
113
+ position: 'left' | 'right' | 'bottom' | 'top';
106
114
  submitText: string;
107
115
  cancelText: string;
108
116
  zIndex: number;
@@ -1,4 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
2
2
  type: 'confirm' | 'success' | 'error' | 'warning' | 'info';
3
3
  title?: string | undefined;
4
4
  content: string;
@@ -10,7 +10,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
10
10
  }>, {
11
11
  okText: string;
12
12
  cancelText: string;
13
- }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
13
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
14
14
  type: 'confirm' | 'success' | 'error' | 'warning' | 'info';
15
15
  title?: string | undefined;
16
16
  content: string;
@@ -1,4 +1,4 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
1
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>, {
2
2
  default?(_: {}): any;
3
3
  }>;
4
4
  export default _default;
@@ -1,4 +1,4 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
1
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>, {
2
2
  default?(_: {}): any;
3
3
  }>;
4
4
  export default _default;
@@ -1,6 +1,7 @@
1
- import type { Component } from 'vue';
2
- import type { ModalElement, OpenModalOptions, SizeOptions } from '../interfaces';
3
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ import { ModalElement, OpenModalOptions, SizeOptions } from '../interfaces';
2
+ import { Component } from 'vue';
3
+
4
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  appendToBody: boolean | string;
5
6
  sizes: SizeOptions;
6
7
  maxWidth: string | number;
@@ -14,22 +15,22 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
14
15
  maxWidth: string;
15
16
  maxHeight: string;
16
17
  sizes: () => {
17
- small: number;
18
- middle: number;
19
- large: number;
18
+ small: string;
19
+ middle: string;
20
+ large: string;
20
21
  };
21
22
  offset: () => {
22
23
  x: number;
23
24
  y: number;
24
25
  };
25
26
  }>, {
26
- elements: import("vue").ShallowRef<ModalElement[]>;
27
+ elements: import('vue').ShallowRef<ModalElement[]>;
27
28
  open: (component: Component | 'confirm' | 'info' | 'warning' | 'error' | 'success', props?: Record<string, any>, options?: OpenModalOptions) => Promise<unknown> & {
28
29
  close: () => void;
29
30
  };
30
31
  close: (id: string, data?: any) => void;
31
32
  closeAll: () => void;
32
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
33
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
33
34
  appendToBody: boolean | string;
34
35
  sizes: SizeOptions;
35
36
  maxWidth: string | number;
@@ -43,9 +44,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
43
44
  maxWidth: string;
44
45
  maxHeight: string;
45
46
  sizes: () => {
46
- small: number;
47
- middle: number;
48
- large: number;
47
+ small: string;
48
+ middle: string;
49
+ large: string;
49
50
  };
50
51
  offset: () => {
51
52
  x: number;
@@ -1,3 +1,4 @@
1
- import type { InjectionKey } from 'vue';
2
- import type { ModalActions } from './interfaces';
1
+ import { ModalActions } from './interfaces';
2
+ import { InjectionKey } from 'vue';
3
+
3
4
  export declare const ModalKey: InjectionKey<ModalActions>;
@@ -1,2 +1,3 @@
1
- import type { useModal } from './use-modal';
1
+ import { useModal } from './use-modal';
2
+
2
3
  export declare function onSubmit(callback: (actions: ReturnType<typeof useModal>) => void): void;
@@ -1,5 +1,6 @@
1
- import type { Component } from 'vue';
2
- import type { OpenModalOptions } from '../interfaces';
1
+ import { OpenModalOptions } from '../interfaces';
2
+ import { Component } from 'vue';
3
+
3
4
  export declare function useModal(): {
4
5
  open: {
5
6
  (component: 'confirm', props: {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");const L=Symbol("__MODAL__");function W(o){return e.getCurrentScope()?(e.onScopeDispose(o),!0):!1}function b(o){return typeof o=="function"?o():e.unref(o)}const j=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const J=Object.prototype.toString,Q=o=>J.call(o)==="[object Object]",Z=()=>{};function ee(o,s={}){if(!e.isRef(o))return e.toRefs(o);const n=Array.isArray(o.value)?Array.from({length:o.value.length}):{};for(const t in o.value)n[t]=e.customRef(()=>({get(){return o.value[t]},set(c){var i;if((i=b(s.replaceRef))!=null?i:!0)if(Array.isArray(o.value)){const h=[...o.value];h[t]=c,o.value=h}else{const h={...o.value,[t]:c};Object.setPrototypeOf(h,Object.getPrototypeOf(o.value)),o.value=h}else o.value[t]=c}}));return n}function te(o,s=!0){e.getCurrentInstance()?e.onMounted(o):s?o():e.nextTick(o)}function R(o){var s;const n=b(o);return(s=n==null?void 0:n.$el)!=null?s:n}const P=j?window:void 0;function D(...o){let s,n,t,c;if(typeof o[0]=="string"||Array.isArray(o[0])?([n,t,c]=o,s=P):[s,n,t,c]=o,!s)return Z;Array.isArray(n)||(n=[n]),Array.isArray(t)||(t=[t]);const i=[],u=()=>{i.forEach(v=>v()),i.length=0},h=(v,d,l,f)=>(v.addEventListener(d,l,f),()=>v.removeEventListener(d,l,f)),_=e.watch(()=>[R(s),b(c)],([v,d])=>{if(u(),!v)return;const l=Q(d)?{...d}:d;i.push(...n.flatMap(f=>t.map(a=>h(v,f,a,l))))},{immediate:!0,flush:"post"}),y=()=>{_(),u()};return W(y),y}function oe(){const o=e.ref(!1);return e.getCurrentInstance()&&e.onMounted(()=>{o.value=!0}),o}function ne(o){const s=oe();return e.computed(()=>(s.value,!!o()))}function re(o,s={}){var n,t;const{pointerTypes:c,preventDefault:i,stopPropagation:u,exact:h,onMove:_,onEnd:y,onStart:v,initialValue:d,axis:l="both",draggingElement:f=P,containerElement:a,handle:g=o}=s,p=e.ref((n=b(d))!=null?n:{x:0,y:0}),k=e.ref(),B=m=>c?c.includes(m.pointerType):!0,x=m=>{b(i)&&m.preventDefault(),b(u)&&m.stopPropagation()},V=m=>{var M;if(!B(m)||b(h)&&m.target!==b(o))return;const w=b(a),N=(M=w==null?void 0:w.getBoundingClientRect)==null?void 0:M.call(w),E=b(o).getBoundingClientRect(),S={x:m.clientX-(w?E.left-N.left:E.left),y:m.clientY-(w?E.top-N.top:E.top)};(v==null?void 0:v(S,m))!==!1&&(k.value=S,x(m))},H=m=>{var M;if(!B(m)||!k.value)return;const w=b(a),N=(M=w==null?void 0:w.getBoundingClientRect)==null?void 0:M.call(w),E=b(o).getBoundingClientRect();let{x:S,y:$}=p.value;(l==="x"||l==="both")&&(S=m.clientX-k.value.x,w&&(S=Math.min(Math.max(0,S),N.width-E.width))),(l==="y"||l==="both")&&($=m.clientY-k.value.y,w&&($=Math.min(Math.max(0,$),N.height-E.height))),p.value={x:S,y:$},_==null||_(p.value,m),x(m)},O=m=>{B(m)&&k.value&&(k.value=void 0,y==null||y(p.value,m),x(m))};if(j){const m={capture:(t=s.capture)!=null?t:!0};D(g,"pointerdown",V,m),D(f,"pointermove",H,m),D(f,"pointerup",O,m)}return{...ee(p),position:p,isDragging:e.computed(()=>!!k.value),style:e.computed(()=>`left:${p.value.x}px;top:${p.value.y}px;`)}}function le(o,s,n={}){const{window:t=P,...c}=n;let i;const u=ne(()=>t&&"ResizeObserver"in t),h=()=>{i&&(i.disconnect(),i=void 0)},_=e.computed(()=>Array.isArray(o)?o.map(d=>R(d)):[R(o)]),y=e.watch(_,d=>{if(h(),u.value&&t){i=new ResizeObserver(s);for(const l of d)l&&i.observe(l,c)}},{immediate:!0,flush:"post",deep:!0}),v=()=>{h(),y()};return W(v),{isSupported:u,stop:v}}function A(o,s={width:0,height:0},n={}){const{window:t=P,box:c="content-box"}=n,i=e.computed(()=>{var d,l;return(l=(d=R(o))==null?void 0:d.namespaceURI)==null?void 0:l.includes("svg")}),u=e.ref(s.width),h=e.ref(s.height),{stop:_}=le(o,([d])=>{const l=c==="border-box"?d.borderBoxSize:c==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(t&&i.value){const f=R(o);if(f){const a=t.getComputedStyle(f);u.value=Number.parseFloat(a.width),h.value=Number.parseFloat(a.height)}}else if(l){const f=Array.isArray(l)?l:[l];u.value=f.reduce((a,{inlineSize:g})=>a+g,0),h.value=f.reduce((a,{blockSize:g})=>a+g,0)}else u.value=d.contentRect.width,h.value=d.contentRect.height},n);te(()=>{const d=R(o);d&&(u.value="offsetWidth"in d?d.offsetWidth:s.width,h.value="offsetHeight"in d?d.offsetHeight:s.height)});const y=e.watch(()=>R(o),d=>{u.value=d?s.width:0,h.value=d?s.height:0});function v(){_(),y()}return{width:u,height:h,stop:v}}const se=o=>(e.pushScopeId("data-v-189513f2"),o=o(),e.popScopeId(),o),ie={class:"title text-16px font-bold"},ae={class:"action"},ce=["form"],de={key:2,class:"modal-loading"},ue=se(()=>e.createElementVNode("div",{class:"lds-ring"},[e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div")],-1)),fe=[ue],pe={name:"ModalContainer",inheritAttrs:!0},me=e.defineComponent({...pe,props:{id:{},form:{},component:{},componentProps:{},width:{},maxWidth:{},maxHeight:{default:90},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:"取消"},zIndex:{default:1e3}},emits:["submit"],setup(o,{expose:s,emit:n}){e.useCssVars(r=>({b10a2d42:r.zIndex}));const t=o,c=n,i=e.inject(L),u=e.ref(!1);let h=0,_=0;const y=e.shallowRef(),v=e.shallowRef(),d=e.shallowRef(),l=e.shallowRef(),f=e.shallowRef(),a=e.shallowRef(),{height:g}=A(y),{height:p}=A(d,void 0,{box:"border-box"}),{height:k}=A(l,void 0,{box:"border-box"}),{height:B}=A(f),{height:x}=A(a),{x:V,y:H}=re(d,{initialValue:{x:0,y:0}});function O(){i==null||i.close(t.id)}function m(r){return typeof r=="number"?`${r}px`:r}const M=e.computed(()=>{const r={};return t.mode==="dialog"&&(r.justifyContent="center"),t.mode==="drawer"&&(r.justifyContent="flex-end"),r}),w=e.computed(()=>{const r={};return t.size&&(r.width=m(t.sizes[t.size])),t.width&&(r.width=m(t.width)),t.maxWidth&&(r.maxWidth=m(t.maxWidth)),t.fullscreen&&(r.maxWidth="unset",r.width="100%",r.position="fixed",r.top=0,r.left=0,r.bottom=0,r.right=0,r.borderRadius=0),t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(r.transform=`translate3d(${V.value-h}px, ${H.value-_}px, 0px)`),t.mode==="drawer"&&(r.borderRadius=0,r.height="100%"),t.offset&&t.mode==="dialog"&&(r.marginLeft=`${t.offset.x||0}px`,r.marginTop=`${t.offset.y||0}px`),t.backgroundColor&&(r.backgroundColor=t.backgroundColor),r}),N=e.computed(()=>{const r={};return t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(r.cursor="move"),r}),E=e.computed(()=>{const r={},C=B.value+x.value+p.value+k.value,F=Math.floor(g.value*(Number(m(t.maxHeight).replace("%",""))/100));return t.maxHeight&&(r.maxHeight=`${F-C}px`),t.mode==="drawer"&&(r.maxHeight="unset",r.height=`${g.value-C}px`),t.fullscreen&&(r.maxHeight="unset",r.height=`calc(100% - ${C}px)`),t.type!=="component"&&(r.padding="0"),t.bodyStyle&&Object.assign(r,t.bodyStyle),r});function S(){const r=v.value;if(t.form&&r){const C=r.querySelector(`form[name="${t.form}"]`);C&&C.dispatchEvent(new Event("submit"))}c("submit")}function $(){i==null||i.close(t.id)}function X(){window&&window.addEventListener("resize",()=>{e.triggerRef(y),e.triggerRef(v),v.value&&(h=v.value.offsetLeft,_=v.value.offsetTop)})}function Y(){if(t.closeable&&t.esc){const r=({key:C})=>{C==="Escape"&&(i==null||i.close(t.id),window.removeEventListener("keydown",r))};window.addEventListener("keydown",r)}}function q(){h=v.value.offsetLeft,_=v.value.offsetTop}e.onMounted(()=>{Y(),X()}),e.onUnmounted(()=>{});function U(){return u.value=!0,()=>I()}function I(){u.value=!1}return s({showLoading:U,hideLoading:I}),(r,C)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:y,class:"modal-wrapper",style:e.normalizeStyle(M.value),onClick:C[0]||(C[0]=e.withModifiers(F=>r.maskClosable&&O(),["self"]))},[e.createElementVNode("div",{ref_key:"contentRef",ref:v,class:e.normalizeClass(["modal-content",{[`${r.mode}-mode`]:!0}]),style:e.normalizeStyle(w.value)},[r.header?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"headerRef",ref:d,class:"modal-header",style:e.normalizeStyle(N.value),onMousedown:q},[e.createElementVNode("div",ie,e.toDisplayString(r.title),1),e.createElementVNode("div",ae,[r.closeable?(e.openBlock(),e.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:O})):e.createCommentVNode("",!0)])],36)):e.createCommentVNode("",!0),e.createElementVNode("div",{id:"modal-header-slot",ref_key:"headerSlotRef",ref:f},null,512),e.createElementVNode("div",{class:"modal-body",style:e.normalizeStyle(E.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.component),e.normalizeProps(e.guardReactiveProps(r.componentProps)),null,16))],4),e.createElementVNode("div",{id:"modal-footer-slot",ref_key:"footerSlotRef",ref:a},null,512),r.footer?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"footerRef",ref:l,class:"modal-footer space-x-2"},[e.createElementVNode("button",{class:"cancel-button",type:"button",onClick:$},e.toDisplayString(r.cancelText),1),e.createElementVNode("button",{class:"submit-button",form:r.form,type:"submit",onClick:S},e.toDisplayString(r.submitText),9,ce)],512)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",de,fe)):e.createCommentVNode("",!0)],6)],4))}});const z=(o,s)=>{const n=o.__vccOpts||o;for(const[t,c]of s)n[t]=c;return n},G=z(me,[["__scopeId","data-v-189513f2"]]),he={class:"modal-dialog"},ve={class:"dialog-body"},ge={class:"dialog-title"},ye={class:"dialog-content"},_e=e.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(o){const s=o,n=K(),t=e.computed(()=>s.title?s.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[s.type]);async function c(){s.onOk&&await s.onOk(),n.close()}async function i(){s.onCancel&&await s.onCancel(),n.close()}return(u,h)=>(e.openBlock(),e.createElementBlock("section",he,[e.createElementVNode("div",ve,[e.createElementVNode("div",ge,e.toDisplayString(t.value),1),e.createElementVNode("div",ye,e.toDisplayString(u.content),1)]),e.createElementVNode("div",{class:"dialog-footer space-x-2",style:e.normalizeStyle(u.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[u.footer?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.footer),{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"submit-button",type:"submit",onClick:c},e.toDisplayString(u.okText),1),u.type==="confirm"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:i},e.toDisplayString(u.cancelText),1)):e.createCommentVNode("",!0)],64))],4)]))}});const we=z(_e,[["__scopeId","data-v-8326e5a5"]]),be={key:0,class:"modal-teleport"},ke={name:"ModalProvider",inheritAttrs:!0},Ce=e.defineComponent({...ke,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:520,middle:860,large:1190})},maxWidth:{default:"90%"},maxHeight:{default:"90%"},offset:{default:()=>({x:0,y:0})}},setup(o,{expose:s}){const n=e.shallowRef([]),t=e.ref(!1),c=e.getCurrentInstance();function i(l,f={},a={}){const g=e.defineAsyncComponent(()=>Promise.resolve(typeof l=="string"?we:l));typeof l=="string"&&(f.type=l,a.size="small",a.fullscreen=!1,a.mode="dialog",a.footer=!1,a.header=!1);const p=Math.random().toString(32).slice(2),k=Object.assign({zIndex:typeof l=="string"?1100:1e3},a),B=new Promise((x,V)=>{n.value.push({id:p,component:g,props:f||{},options:{...k,type:typeof l=="string"?l:"component"},resolve:x,reject:V,listeners:[]}),e.triggerRef(n)}).catch(x=>x==="CANCEL"?new Promise(()=>{}):Promise.reject(x));return Object.assign(B,{close:()=>u(p)})}function u(l,f){const a=n.value.findIndex(p=>p.id===l);if(a<0)return;const g=n.value[a];f===void 0?g==null||g.reject("CANCEL"):g==null||g.resolve(f),n.value.splice(a,1),e.triggerRef(n)}function h(){!n.value||n.value.length===0||(n.value.forEach(l=>{l==null||l.reject("CANCEL")}),n.value=[],e.triggerRef(n))}function _(l,f){const a=n.value.find(p=>p.id===l);if(!a)return;const g=a.listeners.find(p=>p.event===f);g&&g.callback({open:i,close:p=>u(a.id,p),closeAll:h,showLoading:()=>y(a.id),hideLoading:()=>v(a.id),confirm:p=>i("confirm",p),success:p=>i("success",p),error:p=>i("error",p),warning:p=>i("warning",p),info:p=>i("info",p)})}function y(l){if(!c)return;const[f]=c.refs[`modal-container_${l}`];if(f)return f.showLoading()}function v(l){if(!c)return;const[f]=c.refs[`modal-container_${l}`];if(f)return f.hideLoading()}function d(l,f,a){const g=n.value.find(p=>p.id===l);g&&g.listeners.push({event:f,callback:a})}return e.provide(L,{open:i,close:u,closeAll:h,addEventListener:d}),s({elements:n,open:i,close:u,closeAll:h}),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",be,[(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(n.value,a=>(e.openBlock(),e.createBlock(G,e.mergeProps({id:a.id,key:a.id,ref_for:!0,ref:`modal-container_${a.id}`,component:a.component,"component-props":a.props,"max-height":l.maxHeight,"max-width":l.maxWidth,offset:l.offset,sizes:l.sizes},a.options,{onSubmit:()=>_(a.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 xe=z(Ce,[["__scopeId","data-v-45a851d0"]]);const Ee={},Se={class:"modal-footer"};function Be(o,s){return e.openBlock(),e.createBlock(e.Teleport,{to:"#modal-footer-slot"},[e.createElementVNode("div",Se,[e.renderSlot(o.$slots,"default",{},void 0,!0)])])}const Me=z(Ee,[["render",Be],["__scopeId","data-v-2080a86e"]]);const Ne={},Re={class:"modal-header"};function $e(o,s){return e.openBlock(),e.createBlock(e.Teleport,{to:"#modal-header-slot"},[e.createElementVNode("div",Re,[e.renderSlot(o.$slots,"default",{},void 0,!0)])])}const Ve=z(Ne,[["render",$e],["__scopeId","data-v-d0247172"]]);function T(o,s){var t,c;let n=o==null?void 0:o.parent;for(;n&&((t=n==null?void 0:n.type)==null?void 0:t.name)!==s;)n=n.parent;return((c=n==null?void 0:n.type)==null?void 0:c.name)===s?n:null}function K(){const o=e.inject(L),s=e.getCurrentInstance();function n(t,c,i){if(!o)throw new Error("Not Found Modal Provider Component");return o.open(t,c,i)}return{open:n,close(t){var u;if(!o)throw new Error("Not Found Modal Provider Component");const c=T(s,"ModalContainer"),i=(u=c==null?void 0:c.props)==null?void 0:u.id;if(!i)throw new Error("Not Found Current Modal Container");o.close(i,t)},closeAll(){if(!o)throw new Error("Not Found Modal Provider Component");o.closeAll()},showLoading(){var i;if(!o)throw new Error("Not Found Modal Provider Component");const t=T(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(!o)throw new Error("Not Found Modal Provider Component");const t=T(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 Ae(o){var i;const s=e.inject(L),n=e.getCurrentInstance(),t=T(n,"ModalContainer"),c=(i=t==null?void 0:t.props)==null?void 0:i.id;s&&c&&s.addEventListener(c,"submit",o)}exports.ModalContainer=G;exports.ModalFooter=Me;exports.ModalHeader=Ve;exports.ModalKey=L;exports.ModalProvider=xe;exports.onSubmit=Ae;exports.useModal=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),V=Symbol("__MODAL__");function F(o){return e.getCurrentScope()?(e.onScopeDispose(o),!0):!1}function w(o){return typeof o=="function"?o():e.unref(o)}const W=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const J=Object.prototype.toString,Q=o=>J.call(o)==="[object Object]",Z=()=>{};function ee(o){return e.getCurrentInstance()}function te(o,i={}){if(!e.isRef(o))return e.toRefs(o);const r=Array.isArray(o.value)?Array.from({length:o.value.length}):{};for(const t in o.value)r[t]=e.customRef(()=>({get(){return o.value[t]},set(c){var s;if((s=w(i.replaceRef))!=null?s:!0)if(Array.isArray(o.value)){const h=[...o.value];h[t]=c,o.value=h}else{const h={...o.value,[t]:c};Object.setPrototypeOf(h,Object.getPrototypeOf(o.value)),o.value=h}else o.value[t]=c}}));return r}function oe(o,i=!0,r){ee()?e.onMounted(o,r):i?o():e.nextTick(o)}function N(o){var i;const r=w(o);return(i=r==null?void 0:r.$el)!=null?i:r}const O=W?window:void 0;function P(...o){let i,r,t,c;if(typeof o[0]=="string"||Array.isArray(o[0])?([r,t,c]=o,i=O):[i,r,t,c]=o,!i)return Z;Array.isArray(r)||(r=[r]),Array.isArray(t)||(t=[t]);const s=[],u=()=>{s.forEach(v=>v()),s.length=0},h=(v,d,l,f)=>(v.addEventListener(d,l,f),()=>v.removeEventListener(d,l,f)),b=e.watch(()=>[N(i),w(c)],([v,d])=>{if(u(),!v)return;const l=Q(d)?{...d}:d;s.push(...r.flatMap(f=>t.map(a=>h(v,f,a,l))))},{immediate:!0,flush:"post"}),y=()=>{b(),u()};return F(y),y}function ne(){const o=e.ref(!1),i=e.getCurrentInstance();return i&&e.onMounted(()=>{o.value=!0},i),o}function re(o){const i=ne();return e.computed(()=>(i.value,!!o()))}function ie(o,i={}){var r,t;const{pointerTypes:c,preventDefault:s,stopPropagation:u,exact:h,onMove:b,onEnd:y,onStart:v,initialValue:d,axis:l="both",draggingElement:f=O,containerElement:a,handle:g=o}=i,p=e.ref((r=w(d))!=null?r:{x:0,y:0}),C=e.ref(),M=m=>c?c.includes(m.pointerType):!0,E=m=>{w(s)&&m.preventDefault(),w(u)&&m.stopPropagation()},$=m=>{var S;if(w(i.disabled)||!M(m)||w(h)&&m.target!==w(o))return;const k=w(a),B=(S=k==null?void 0:k.getBoundingClientRect)==null?void 0:S.call(k),_=w(o).getBoundingClientRect(),T={x:m.clientX-(k?_.left-B.left+k.scrollLeft:_.left),y:m.clientY-(k?_.top-B.top+k.scrollTop:_.top)};(v==null?void 0:v(T,m))!==!1&&(C.value=T,E(m))},H=m=>{if(w(i.disabled)||!M(m)||!C.value)return;const S=w(a),k=w(o).getBoundingClientRect();let{x:B,y:_}=p.value;(l==="x"||l==="both")&&(B=m.clientX-C.value.x,S&&(B=Math.min(Math.max(0,B),S.scrollWidth-k.width))),(l==="y"||l==="both")&&(_=m.clientY-C.value.y,S&&(_=Math.min(Math.max(0,_),S.scrollHeight-k.height))),p.value={x:B,y:_},b==null||b(p.value,m),E(m)},A=m=>{w(i.disabled)||!M(m)||C.value&&(C.value=void 0,y==null||y(p.value,m),E(m))};if(W){const m={capture:(t=i.capture)!=null?t:!0};P(g,"pointerdown",$,m),P(f,"pointermove",H,m),P(f,"pointerup",A,m)}return{...te(p),position:p,isDragging:e.computed(()=>!!C.value),style:e.computed(()=>`left:${p.value.x}px;top:${p.value.y}px;`)}}function le(o,i,r={}){const{window:t=O,...c}=r;let s;const u=re(()=>t&&"ResizeObserver"in t),h=()=>{s&&(s.disconnect(),s=void 0)},b=e.computed(()=>Array.isArray(o)?o.map(d=>N(d)):[N(o)]),y=e.watch(b,d=>{if(h(),u.value&&t){s=new ResizeObserver(i);for(const l of d)l&&s.observe(l,c)}},{immediate:!0,flush:"post"}),v=()=>{h(),y()};return F(v),{isSupported:u,stop:v}}function R(o,i={width:0,height:0},r={}){const{window:t=O,box:c="content-box"}=r,s=e.computed(()=>{var d,l;return(l=(d=N(o))==null?void 0:d.namespaceURI)==null?void 0:l.includes("svg")}),u=e.ref(i.width),h=e.ref(i.height),{stop:b}=le(o,([d])=>{const l=c==="border-box"?d.borderBoxSize:c==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(t&&s.value){const f=N(o);if(f){const a=t.getComputedStyle(f);u.value=Number.parseFloat(a.width),h.value=Number.parseFloat(a.height)}}else if(l){const f=Array.isArray(l)?l:[l];u.value=f.reduce((a,{inlineSize:g})=>a+g,0),h.value=f.reduce((a,{blockSize:g})=>a+g,0)}else u.value=d.contentRect.width,h.value=d.contentRect.height},r);oe(()=>{const d=N(o);d&&(u.value="offsetWidth"in d?d.offsetWidth:i.width,h.value="offsetHeight"in d?d.offsetHeight:i.height)});const y=e.watch(()=>N(o),d=>{u.value=d?i.width:0,h.value=d?i.height:0});function v(){b(),y()}return{width:u,height:h,stop:v}}const se=o=>(e.pushScopeId("data-v-8d442648"),o=o(),e.popScopeId(),o),ae={class:"title text-16px font-bold"},ce={class:"action"},de=["form"],ue={key:2,class:"modal-loading"},fe=se(()=>e.createElementVNode("div",{class:"lds-ring"},[e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div"),e.createElementVNode("div")],-1)),pe=[fe],me={name:"ModalContainer",inheritAttrs:!0},he=e.defineComponent({...me,props:{id:{},form:{},component:{},componentProps:{},width:{},height:{},maxWidth:{},maxHeight:{default:90},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"},position:{default:"right"},type:{},offset:{},backgroundColor:{},bodyStyle:{},submitText:{default:"确定"},cancelText:{default:"取消"},zIndex:{default:1e3}},emits:["submit"],setup(o,{expose:i,emit:r}){e.useCssVars(n=>({"8796093c":n.zIndex}));const t=o,c=r,s=e.inject(V),u=e.ref(!1);let h=0,b=0;const y=e.shallowRef(),v=e.shallowRef(),d=e.shallowRef(),l=e.shallowRef(),f=e.shallowRef(),a=e.shallowRef(),{height:g}=R(y);R(v);const{height:p}=R(d,void 0,{box:"border-box"}),{height:C}=R(l,void 0,{box:"border-box"}),{height:M}=R(f),{height:E}=R(a),{x:$,y:H}=ie(d,{initialValue:{x:0,y:0}});function A(){s==null||s.close(t.id)}function m(n){return typeof n=="number"?`${n}px`:n}const S=e.computed(()=>{const n={};return t.mode==="dialog"&&(n.justifyContent="center"),t.mode==="drawer"&&(n.justifyContent={left:"flex-start",right:"flex-end",top:"flex-start",bottom:"flex-end"}[t.position],n.flexDirection={left:"row",right:"row",top:"column",bottom:"column"}[t.position]),n}),k=e.computed(()=>{const n={};return t.mode==="drawer"&&["top","bottom"].includes(t.position)?n.maxHeight=m(t.maxHeight):(n.width=m(t.sizes[t.size]),n.maxWidth=m(t.maxWidth)),t.width&&(n.width=m(t.width)),t.height&&(n.height=m(t.height)),t.fullscreen&&(n.maxWidth="unset",n.width="100%",n.position="fixed",n.top=0,n.left=0,n.bottom=0,n.right=0,n.borderRadius=0),t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(n.transform=`translate3d(${$.value-h}px, ${H.value-b}px, 0px)`),t.mode==="drawer"&&(n.borderRadius=0,["left","right"].includes(t.position)?n.height="100%":n.width="100%"),t.offset&&t.mode==="dialog"&&(n.marginLeft=`${t.offset.x||0}px`,n.marginTop=`${t.offset.y||0}px`),t.backgroundColor&&(n.backgroundColor=t.backgroundColor),n}),B=e.computed(()=>{const n={};return t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(n.cursor="move"),n}),_=e.computed(()=>{const n={},x=M.value+E.value+p.value+C.value,I=Math.floor(g.value*(Number(m(t.maxHeight).replace("%",""))/100));return t.maxHeight&&(n.maxHeight=`${I-x}px`),t.mode==="drawer"&&(n.maxHeight="unset",["left","right"].includes(t.position)&&(n.height=`${g.value-x}px`)),t.fullscreen&&(n.maxHeight="unset",n.height=`calc(100% - ${x}px)`),t.type!=="component"&&(n.padding="0"),t.bodyStyle&&Object.assign(n,t.bodyStyle),n});function T(){const n=v.value;if(t.form&&n){const x=n.querySelector(`form[name="${t.form}"]`);x&&x.dispatchEvent(new Event("submit"))}c("submit")}function K(){s==null||s.close(t.id)}function X(){window&&window.addEventListener("resize",()=>{e.triggerRef(y),e.triggerRef(v),v.value&&(h=v.value.offsetLeft,b=v.value.offsetTop)})}function Y(){if(t.closeable&&t.esc){const n=({key:x})=>{x==="Escape"&&(s==null||s.close(t.id),window.removeEventListener("keydown",n))};window.addEventListener("keydown",n)}}function q(){h=v.value.offsetLeft,b=v.value.offsetTop}e.onMounted(()=>{Y(),X()}),e.onUnmounted(()=>{});function U(){return u.value=!0,()=>D()}function D(){u.value=!1}return i({showLoading:U,hideLoading:D}),(n,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:y,class:"modal-wrapper",style:e.normalizeStyle(S.value),onClick:x[0]||(x[0]=e.withModifiers(I=>n.maskClosable&&A(),["self"]))},[e.createElementVNode("div",{ref_key:"contentRef",ref:v,class:e.normalizeClass(["modal-content",{[`${n.mode}-mode`]:!0,[`${n.position}-position`]:!0}]),style:e.normalizeStyle(k.value)},[n.header?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"headerRef",ref:d,class:"modal-header",style:e.normalizeStyle(B.value),onMousedown:q},[e.createElementVNode("div",ae,e.toDisplayString(n.title),1),e.createElementVNode("div",ce,[n.closeable?(e.openBlock(),e.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:A})):e.createCommentVNode("",!0)])],36)):e.createCommentVNode("",!0),e.createElementVNode("div",{id:"modal-header-slot",ref_key:"headerSlotRef",ref:f},null,512),e.createElementVNode("div",{class:"modal-body",style:e.normalizeStyle(_.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.component),e.normalizeProps(e.guardReactiveProps(n.componentProps)),null,16))],4),e.createElementVNode("div",{id:"modal-footer-slot",ref_key:"footerSlotRef",ref:a},null,512),n.footer?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"footerRef",ref:l,class:"modal-footer space-x-2"},[e.createElementVNode("button",{class:"cancel-button",type:"button",onClick:K},e.toDisplayString(n.cancelText),1),e.createElementVNode("button",{class:"submit-button",form:n.form,type:"submit",onClick:T},e.toDisplayString(n.submitText),9,de)],512)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",ue,pe)):e.createCommentVNode("",!0)],6)],4))}}),L=(o,i)=>{const r=o.__vccOpts||o;for(const[t,c]of i)r[t]=c;return r},j=L(he,[["__scopeId","data-v-8d442648"]]),ve={class:"modal-dialog"},ge={class:"dialog-body"},ye={class:"dialog-title"},we={class:"dialog-content"},be=e.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(o){const i=o,r=G(),t=e.computed(()=>i.title?i.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[i.type]);async function c(){i.onOk&&await i.onOk(),r.close()}async function s(){i.onCancel&&await i.onCancel(),r.close()}return(u,h)=>(e.openBlock(),e.createElementBlock("section",ve,[e.createElementVNode("div",ge,[e.createElementVNode("div",ye,e.toDisplayString(t.value),1),e.createElementVNode("div",we,e.toDisplayString(u.content),1)]),e.createElementVNode("div",{class:"dialog-footer space-x-2",style:e.normalizeStyle(u.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[u.footer?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.footer),{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"submit-button",type:"submit",onClick:c},e.toDisplayString(u.okText),1),u.type==="confirm"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:s},e.toDisplayString(u.cancelText),1)):e.createCommentVNode("",!0)],64))],4)]))}}),ke=L(be,[["__scopeId","data-v-0c6b8db2"]]),Ce={key:0,class:"modal-teleport"},_e={name:"ModalProvider",inheritAttrs:!0},xe=e.defineComponent({..._e,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(o,{expose:i}){const r=e.shallowRef([]),t=e.ref(!1),c=e.getCurrentInstance();function s(l,f={},a={}){const g=e.defineAsyncComponent(()=>Promise.resolve(typeof l=="string"?ke:l));typeof l=="string"&&(f.type=l,a.size="small",a.fullscreen=!1,a.mode="dialog",a.footer=!1,a.header=!1);const p=Math.random().toString(32).slice(2),C=Object.assign({zIndex:typeof l=="string"?1100:1e3},a),M=new Promise((E,$)=>{r.value.push({id:p,component:g,props:f||{},options:{...C,type:typeof l=="string"?l:"component"},resolve:E,reject:$,listeners:[]}),e.triggerRef(r)}).catch(E=>E==="CANCEL"?new Promise(()=>{}):Promise.reject(E));return Object.assign(M,{close:()=>u(p)})}function u(l,f){const a=r.value.findIndex(p=>p.id===l);if(a<0)return;const g=r.value[a];f===void 0?g==null||g.reject("CANCEL"):g==null||g.resolve(f),r.value.splice(a,1),e.triggerRef(r)}function h(){!r.value||r.value.length===0||(r.value.forEach(l=>{l==null||l.reject("CANCEL")}),r.value=[],e.triggerRef(r))}function b(l,f){const a=r.value.find(p=>p.id===l);if(!a)return;const g=a.listeners.find(p=>p.event===f);g&&g.callback({open:s,close:p=>u(a.id,p),closeAll:h,showLoading:()=>y(a.id),hideLoading:()=>v(a.id),confirm:p=>s("confirm",p),success:p=>s("success",p),error:p=>s("error",p),warning:p=>s("warning",p),info:p=>s("info",p)})}function y(l){if(!c)return;const[f]=c.refs[`modal-container_${l}`];if(f)return f.showLoading()}function v(l){if(!c)return;const[f]=c.refs[`modal-container_${l}`];if(f)return f.hideLoading()}function d(l,f,a){const g=r.value.find(p=>p.id===l);g&&g.listeners.push({event:f,callback:a})}return e.provide(V,{open:s,close:u,closeAll:h,addEventListener:d}),i({elements:r,open:s,close:u,closeAll:h}),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,a=>(e.openBlock(),e.createBlock(j,e.mergeProps({id:a.id,key:a.id,ref_for:!0,ref:`modal-container_${a.id}`,component:a.component,"component-props":a.props,"max-height":l.maxHeight,"max-width":l.maxWidth,offset:l.offset,sizes:l.sizes},a.options,{onSubmit:()=>b(a.id,"submit")}),null,16,["id","component","component-props","max-height","max-width","offset","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):e.createCommentVNode("",!0)],64))}}),Ee=L(xe,[["__scopeId","data-v-756481fe"]]),Se={},Be={class:"modal-footer"};function Me(o,i){return e.openBlock(),e.createBlock(e.Teleport,{to:"#modal-footer-slot"},[e.createElementVNode("div",Be,[e.renderSlot(o.$slots,"default",{},void 0,!0)])])}const Ne=L(Se,[["render",Me],["__scopeId","data-v-46f8d703"]]),Re={},$e={class:"modal-header"};function Ve(o,i){return e.openBlock(),e.createBlock(e.Teleport,{to:"#modal-header-slot"},[e.createElementVNode("div",$e,[e.renderSlot(o.$slots,"default",{},void 0,!0)])])}const Le=L(Re,[["render",Ve],["__scopeId","data-v-d0247172"]]);function z(o,i){var t,c;let r=o==null?void 0:o.parent;for(;r&&((t=r==null?void 0:r.type)==null?void 0:t.name)!==i;)r=r.parent;return((c=r==null?void 0:r.type)==null?void 0:c.name)===i?r:null}function G(){const o=e.inject(V),i=e.getCurrentInstance();function r(t,c,s){if(!o)throw new Error("Not Found Modal Provider Component");return o.open(t,c,s)}return{open:r,close(t){var u;if(!o)throw new Error("Not Found Modal Provider Component");const c=z(i,"ModalContainer"),s=(u=c==null?void 0:c.props)==null?void 0:u.id;if(!s)throw new Error("Not Found Current Modal Container");o.close(s,t)},closeAll(){if(!o)throw new Error("Not Found Modal Provider Component");o.closeAll()},showLoading(){var s;if(!o)throw new Error("Not Found Modal Provider Component");const t=z(i,"ModalContainer");if(!((s=t==null?void 0:t.props)==null?void 0:s.id))throw new Error("Not Found Current Modal Container");t!=null&&t.exposed&&(t==null||t.exposed.showLoading())},hideLoading(){var s;if(!o)throw new Error("Not Found Modal Provider Component");const t=z(i,"ModalContainer");if(!((s=t==null?void 0:t.props)==null?void 0:s.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 Ae(o){var s;const i=e.inject(V),r=e.getCurrentInstance(),t=z(r,"ModalContainer"),c=(s=t==null?void 0:t.props)==null?void 0:s.id;i&&c&&i.addEventListener(c,"submit",o)}exports.ModalContainer=j;exports.ModalFooter=Ne;exports.ModalHeader=Le;exports.ModalKey=V;exports.ModalProvider=Ee;exports.onSubmit=Ae;exports.useModal=G;
@@ -1,9 +1,10 @@
1
- import ModalProvider from './components/modal-provider.vue';
2
- import ModalContainer from './components/modal-container.vue';
3
- import ModalFooter from './components/modal-footer.vue';
4
- import ModalHeader from './components/modal-header.vue';
5
- import { useModal } from './hooks/use-modal';
6
1
  import { ModalKey } from './constants';
2
+ import { useModal } from './hooks/use-modal';
3
+ import { default as ModalHeader } from './components/modal-header.vue';
4
+ import { default as ModalFooter } from './components/modal-footer.vue';
5
+ import { default as ModalContainer } from './components/modal-container.vue';
6
+ import { default as ModalProvider } from './components/modal-provider.vue';
7
+
7
8
  export { onSubmit } from './hooks/on-submit';
8
9
  export * from './interfaces';
9
10
  export { ModalContainer, ModalProvider, ModalFooter, ModalHeader, useModal, ModalKey, };
@@ -1,5 +1,6 @@
1
- import type { CSSProperties, Component } from 'vue';
2
- import type { useModal } from './hooks/use-modal';
1
+ import { useModal } from './hooks/use-modal';
2
+ import { CSSProperties, Component } from 'vue';
3
+
3
4
  export interface SizeOptions {
4
5
  small: string | number;
5
6
  middle: string | number;
@@ -14,11 +15,13 @@ export interface OpenModalOptions {
14
15
  header?: boolean;
15
16
  footer?: boolean;
16
17
  width?: number | string;
18
+ height?: number | string;
17
19
  size?: 'large' | 'middle' | 'small';
18
20
  fullscreen?: boolean;
19
21
  draggable?: boolean;
20
22
  form?: string;
21
23
  mode?: 'dialog' | 'drawer';
24
+ position?: 'top' | 'right' | 'bottom' | 'left';
22
25
  backgroundColor?: string;
23
26
  bodyStyle?: CSSProperties;
24
27
  submitText?: string;
@@ -1,2 +1,3 @@
1
- import type { ComponentInternalInstance } from 'vue';
1
+ import { ComponentInternalInstance } from 'vue';
2
+
2
3
  export declare function findContainer(ctx: ComponentInternalInstance | null, name: 'ModalContainer' | 'ModalProvider'): ComponentInternalInstance | null;
@@ -1,11 +1,13 @@
1
- import type { CSSProperties, Component } from 'vue';
2
- import type { SizeOptions } from '../interfaces';
3
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ import { SizeOptions } from '../interfaces';
2
+ import { CSSProperties, Component } from 'vue';
3
+
4
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  id: string;
5
6
  form?: string | undefined;
6
7
  component: Component;
7
8
  componentProps: Record<string, any>;
8
9
  width?: string | number | undefined;
10
+ height?: string | number | undefined;
9
11
  maxWidth?: string | number | undefined;
10
12
  maxHeight?: string | number | undefined;
11
13
  sizes: SizeOptions;
@@ -19,6 +21,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
19
21
  maskClosable?: boolean | undefined;
20
22
  draggable?: boolean | undefined;
21
23
  mode?: "dialog" | "drawer" | undefined;
24
+ position?: "top" | "right" | "bottom" | "left" | undefined;
22
25
  type?: string | undefined;
23
26
  offset?: {
24
27
  x?: number | undefined;
@@ -39,6 +42,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
39
42
  esc: boolean;
40
43
  draggable: boolean;
41
44
  mode: string;
45
+ position: string;
42
46
  submitText: string;
43
47
  cancelText: string;
44
48
  maxHeight: number;
@@ -46,14 +50,15 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
46
50
  }>, {
47
51
  showLoading: () => () => void;
48
52
  hideLoading: () => void;
49
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
50
54
  submit: (...args: any[]) => void;
51
- }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
55
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
52
56
  id: string;
53
57
  form?: string | undefined;
54
58
  component: Component;
55
59
  componentProps: Record<string, any>;
56
60
  width?: string | number | undefined;
61
+ height?: string | number | undefined;
57
62
  maxWidth?: string | number | undefined;
58
63
  maxHeight?: string | number | undefined;
59
64
  sizes: SizeOptions;
@@ -67,6 +72,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
67
72
  maskClosable?: boolean | undefined;
68
73
  draggable?: boolean | undefined;
69
74
  mode?: "dialog" | "drawer" | undefined;
75
+ position?: "top" | "right" | "bottom" | "left" | undefined;
70
76
  type?: string | undefined;
71
77
  offset?: {
72
78
  x?: number | undefined;
@@ -87,6 +93,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
87
93
  esc: boolean;
88
94
  draggable: boolean;
89
95
  mode: string;
96
+ position: string;
90
97
  submitText: string;
91
98
  cancelText: string;
92
99
  maxHeight: number;
@@ -94,8 +101,8 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
94
101
  }>>> & {
95
102
  onSubmit?: ((...args: any[]) => any) | undefined;
96
103
  }, {
97
- maxHeight: number | string;
98
104
  size: 'small' | 'middle' | 'large';
105
+ maxHeight: number | string;
99
106
  header: boolean;
100
107
  footer: boolean;
101
108
  closeable: boolean;
@@ -103,6 +110,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
103
110
  maskClosable: boolean;
104
111
  draggable: boolean;
105
112
  mode: 'dialog' | 'drawer';
113
+ position: 'left' | 'right' | 'bottom' | 'top';
106
114
  submitText: string;
107
115
  cancelText: string;
108
116
  zIndex: number;
@@ -1,4 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
2
2
  type: 'confirm' | 'success' | 'error' | 'warning' | 'info';
3
3
  title?: string | undefined;
4
4
  content: string;
@@ -10,7 +10,7 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
10
10
  }>, {
11
11
  okText: string;
12
12
  cancelText: string;
13
- }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
13
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
14
14
  type: 'confirm' | 'success' | 'error' | 'warning' | 'info';
15
15
  title?: string | undefined;
16
16
  content: string;
@@ -1,4 +1,4 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
1
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>, {
2
2
  default?(_: {}): any;
3
3
  }>;
4
4
  export default _default;
@@ -1,4 +1,4 @@
1
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
1
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{}>>, {}, {}>, {
2
2
  default?(_: {}): any;
3
3
  }>;
4
4
  export default _default;
@@ -1,6 +1,7 @@
1
- import type { Component } from 'vue';
2
- import type { ModalElement, OpenModalOptions, SizeOptions } from '../interfaces';
3
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
1
+ import { ModalElement, OpenModalOptions, SizeOptions } from '../interfaces';
2
+ import { Component } from 'vue';
3
+
4
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  appendToBody: boolean | string;
5
6
  sizes: SizeOptions;
6
7
  maxWidth: string | number;
@@ -14,22 +15,22 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
14
15
  maxWidth: string;
15
16
  maxHeight: string;
16
17
  sizes: () => {
17
- small: number;
18
- middle: number;
19
- large: number;
18
+ small: string;
19
+ middle: string;
20
+ large: string;
20
21
  };
21
22
  offset: () => {
22
23
  x: number;
23
24
  y: number;
24
25
  };
25
26
  }>, {
26
- elements: import("vue").ShallowRef<ModalElement[]>;
27
+ elements: import('vue').ShallowRef<ModalElement[]>;
27
28
  open: (component: Component | 'confirm' | 'info' | 'warning' | 'error' | 'success', props?: Record<string, any>, options?: OpenModalOptions) => Promise<unknown> & {
28
29
  close: () => void;
29
30
  };
30
31
  close: (id: string, data?: any) => void;
31
32
  closeAll: () => void;
32
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
33
+ }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
33
34
  appendToBody: boolean | string;
34
35
  sizes: SizeOptions;
35
36
  maxWidth: string | number;
@@ -43,9 +44,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
43
44
  maxWidth: string;
44
45
  maxHeight: string;
45
46
  sizes: () => {
46
- small: number;
47
- middle: number;
48
- large: number;
47
+ small: string;
48
+ middle: string;
49
+ large: string;
49
50
  };
50
51
  offset: () => {
51
52
  x: number;
@@ -1,3 +1,4 @@
1
- import type { InjectionKey } from 'vue';
2
- import type { ModalActions } from './interfaces';
1
+ import { ModalActions } from './interfaces';
2
+ import { InjectionKey } from 'vue';
3
+
3
4
  export declare const ModalKey: InjectionKey<ModalActions>;
@@ -1,2 +1,3 @@
1
- import type { useModal } from './use-modal';
1
+ import { useModal } from './use-modal';
2
+
2
3
  export declare function onSubmit(callback: (actions: ReturnType<typeof useModal>) => void): void;
@@ -1,5 +1,6 @@
1
- import type { Component } from 'vue';
2
- import type { OpenModalOptions } from '../interfaces';
1
+ import { OpenModalOptions } from '../interfaces';
2
+ import { Component } from 'vue';
3
+
3
4
  export declare function useModal(): {
4
5
  open: {
5
6
  (component: 'confirm', props: {
@@ -1,9 +1,10 @@
1
- import ModalProvider from './components/modal-provider.vue';
2
- import ModalContainer from './components/modal-container.vue';
3
- import ModalFooter from './components/modal-footer.vue';
4
- import ModalHeader from './components/modal-header.vue';
5
- import { useModal } from './hooks/use-modal';
6
1
  import { ModalKey } from './constants';
2
+ import { useModal } from './hooks/use-modal';
3
+ import { default as ModalHeader } from './components/modal-header.vue';
4
+ import { default as ModalFooter } from './components/modal-footer.vue';
5
+ import { default as ModalContainer } from './components/modal-container.vue';
6
+ import { default as ModalProvider } from './components/modal-provider.vue';
7
+
7
8
  export { onSubmit } from './hooks/on-submit';
8
9
  export * from './interfaces';
9
10
  export { ModalContainer, ModalProvider, ModalFooter, ModalHeader, useModal, ModalKey, };