@gopowerteam/modal-render 0.0.4 → 0.0.6

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.
@@ -2,22 +2,23 @@ import type { Component } from 'vue';
2
2
  import type { SizeOptions } from '../interfaces';
3
3
  declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
4
  id: string;
5
- form?: string;
5
+ form?: string | undefined;
6
6
  component: Component;
7
7
  componentProps: Record<string, any>;
8
- width?: number | string;
9
- maxWidth?: number | string;
10
- maxHeight?: number | string;
8
+ width?: string | number | undefined;
9
+ maxWidth?: string | number | undefined;
10
+ maxHeight?: string | number | undefined;
11
11
  sizes: SizeOptions;
12
- size: 'small' | 'middle' | 'large' | 'fullscreen';
13
- title?: string;
14
- header?: boolean;
15
- footer?: boolean;
16
- closeable?: boolean;
17
- esc?: boolean;
18
- maskClosable?: boolean;
19
- draggable?: boolean;
20
- mode?: 'dialog' | 'drawer';
12
+ size: 'small' | 'middle' | 'large';
13
+ fullscreen?: boolean | undefined;
14
+ title?: string | undefined;
15
+ header?: boolean | undefined;
16
+ footer?: boolean | undefined;
17
+ closeable?: boolean | undefined;
18
+ esc?: boolean | undefined;
19
+ maskClosable?: boolean | undefined;
20
+ draggable?: boolean | undefined;
21
+ mode?: "dialog" | "drawer" | undefined;
21
22
  }>, {
22
23
  header: boolean;
23
24
  closeable: boolean;
@@ -32,22 +33,23 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
32
33
  submit: (...args: any[]) => void;
33
34
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
34
35
  id: string;
35
- form?: string;
36
+ form?: string | undefined;
36
37
  component: Component;
37
38
  componentProps: Record<string, any>;
38
- width?: number | string;
39
- maxWidth?: number | string;
40
- maxHeight?: number | string;
39
+ width?: string | number | undefined;
40
+ maxWidth?: string | number | undefined;
41
+ maxHeight?: string | number | undefined;
41
42
  sizes: SizeOptions;
42
- size: 'small' | 'middle' | 'large' | 'fullscreen';
43
- title?: string;
44
- header?: boolean;
45
- footer?: boolean;
46
- closeable?: boolean;
47
- esc?: boolean;
48
- maskClosable?: boolean;
49
- draggable?: boolean;
50
- mode?: 'dialog' | 'drawer';
43
+ size: 'small' | 'middle' | 'large';
44
+ fullscreen?: boolean | undefined;
45
+ title?: string | undefined;
46
+ header?: boolean | undefined;
47
+ footer?: boolean | undefined;
48
+ closeable?: boolean | undefined;
49
+ esc?: boolean | undefined;
50
+ maskClosable?: boolean | undefined;
51
+ draggable?: boolean | undefined;
52
+ mode?: "dialog" | "drawer" | undefined;
51
53
  }>, {
52
54
  header: boolean;
53
55
  closeable: boolean;
@@ -59,14 +61,14 @@ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_T
59
61
  draggable: boolean;
60
62
  mode: string;
61
63
  }>>> & {
62
- onSubmit?: (...args: any[]) => any;
64
+ onSubmit?: ((...args: any[]) => any) | undefined;
63
65
  }, {
66
+ size: 'small' | 'middle' | 'large';
64
67
  header: boolean;
65
- closeable: boolean;
66
68
  footer: boolean;
67
- maskClosable: boolean;
68
- size: 'small' | 'middle' | 'large' | 'fullscreen';
69
+ closeable: boolean;
69
70
  esc: boolean;
71
+ maskClosable: boolean;
70
72
  draggable: boolean;
71
73
  mode: 'dialog' | 'drawer';
72
74
  }, {}>;
@@ -1,6 +1,6 @@
1
1
  import type { ModalElement, SizeOptions } from '../interfaces';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
- appendToBody: boolean;
3
+ appendToBody: boolean | string;
4
4
  sizes: SizeOptions;
5
5
  maxWidth: string | number;
6
6
  maxHeight: string | number;
@@ -16,7 +16,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
16
16
  }>, {
17
17
  elements: import("vue").ShallowRef<ModalElement[]>;
18
18
  }, 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<{
19
- appendToBody: boolean;
19
+ appendToBody: boolean | string;
20
20
  sizes: SizeOptions;
21
21
  maxWidth: string | number;
22
22
  maxHeight: string | number;
@@ -33,7 +33,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
33
33
  maxWidth: string | number;
34
34
  maxHeight: string | number;
35
35
  sizes: SizeOptions;
36
- appendToBody: boolean;
36
+ appendToBody: boolean | string;
37
37
  }, {}>, {
38
38
  default?(_: {}): any;
39
39
  }>;
@@ -0,0 +1,2 @@
1
+ import type { useModal } from './use-modal';
2
+ export declare function onSubmit(callback: (actions: ReturnType<typeof useModal>) => void): void;
@@ -4,5 +4,4 @@ export declare function useModal(): {
4
4
  open(component: Component, props?: Record<string, any>, options?: OpenModalOptions): Promise<any>;
5
5
  close(data?: any): void;
6
6
  closeAll(): void;
7
- onSubmit(fun: () => void): void;
8
7
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");const C=Symbol("__MODAL__");function O(n){return e.getCurrentScope()?(e.onScopeDispose(n),!0):!1}function g(n){return typeof n=="function"?n():e.unref(n)}const $=typeof window<"u"&&typeof document<"u",D=Object.prototype.toString,T=n=>D.call(n)==="[object Object]",H=()=>{};function W(n,i={}){if(!e.isRef(n))return e.toRefs(n);const t=Array.isArray(n.value)?Array.from({length:n.value.length}):{};for(const l in n.value)t[l]=e.customRef(()=>({get(){return n.value[l]},set(r){var u;if((u=g(i.replaceRef))!=null?u:!0)if(Array.isArray(n.value)){const m=[...n.value];m[l]=r,n.value=m}else{const m={...n.value,[l]:r};Object.setPrototypeOf(m,Object.getPrototypeOf(n.value)),n.value=m}else n.value[l]=r}}));return t}function F(n){var i;const t=g(n);return(i=t==null?void 0:t.$el)!=null?i:t}const N=$?window:void 0;function A(...n){let i,t,l,r;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,l,r]=n,i=N):[i,t,l,r]=n,!i)return H;Array.isArray(t)||(t=[t]),Array.isArray(l)||(l=[l]);const u=[],y=()=>{u.forEach(c=>c()),u.length=0},m=(c,s,d,p)=>(c.addEventListener(s,d,p),()=>c.removeEventListener(s,d,p)),v=e.watch(()=>[F(i),g(r)],([c,s])=>{if(y(),!c)return;const d=T(s)?{...s}:s;u.push(...t.flatMap(p=>l.map(_=>m(c,p,_,d))))},{immediate:!0,flush:"post"}),a=()=>{v(),y()};return O(a),a}function I(n,i={}){var t,l;const{pointerTypes:r,preventDefault:u,stopPropagation:y,exact:m,onMove:v,onEnd:a,onStart:c,initialValue:s,axis:d="both",draggingElement:p=N,containerElement:_,handle:B=n}=i,h=e.ref((t=g(s))!=null?t:{x:0,y:0}),w=e.ref(),b=o=>r?r.includes(o.pointerType):!0,k=o=>{g(u)&&o.preventDefault(),g(y)&&o.stopPropagation()},S=o=>{var f;if(!b(o)||g(m)&&o.target!==g(n))return;const P=((f=g(_))!=null?f:g(n)).getBoundingClientRect(),z={x:o.clientX-P.left,y:o.clientY-P.top};(c==null?void 0:c(z,o))!==!1&&(w.value=z,k(o))},x=o=>{if(!b(o)||!w.value)return;let{x:f,y:E}=h.value;(d==="x"||d==="both")&&(f=o.clientX-w.value.x),(d==="y"||d==="both")&&(E=o.clientY-w.value.y),h.value={x:f,y:E},v==null||v(h.value,o),k(o)},M=o=>{b(o)&&w.value&&(w.value=void 0,a==null||a(h.value,o),k(o))};if($){const o={capture:(l=i.capture)!=null?l:!0};A(B,"pointerdown",S,o),A(p,"pointermove",x,o),A(p,"pointerup",M,o)}return{...W(h),position:h,isDragging:e.computed(()=>!!w.value),style:e.computed(()=>`left:${h.value.x}px;top:${h.value.y}px;`)}}const K={class:"title font-bold"},X={class:"action"},Y={key:1,class:"modal-footer space-x-2"},q=["form"],j={name:"ModalContainer",inheritAttrs:!0},G=e.defineComponent({...j,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"}},emits:["submit"],setup(n,{emit:i}){const t=n,l=i,r=e.inject(C);let u=0,y=0;const m=e.shallowRef(),v=e.shallowRef(),a=e.shallowRef(),{x:c,y:s}=I(a,{initialValue:{x:0,y:0}});function d(){r==null||r.close(t.id)}function p(o){if(typeof o=="number")return`${o}px`;if(typeof o=="string")return o}const _=e.computed(()=>{const o={};return t.mode==="dialog"&&(o.justifyContent="center"),t.mode==="drawer"&&(o.justifyContent="flex-end"),o}),B=e.computed(()=>{const o={};return t.size&&(o.width=p(t.sizes[t.size])),t.width&&(o.width=p(t.width)),t.maxWidth&&(o.maxWidth=p(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(${c.value-u}px, ${s.value-y}px, 0px)`),t.mode==="drawer"&&(o.borderRadius=0),o}),h=e.computed(()=>{const o={};return t.draggable&&!t.fullscreen&&t.mode==="dialog"&&(o.cursor="move"),o}),w=e.computed(()=>{var f;const o={};return t.maxHeight&&(o.maxHeight=`calc(${(f=p(t.maxHeight))==null?void 0:f.replace("%","vh")} - 50px)`),t.mode==="drawer"&&(o.maxHeight="unset",o.height=`calc(100vh - ${(t.header?50:0)+(t.footer?50:0)}px)`),t.fullscreen&&(o.maxHeight="unset",o.height=`calc(100vh - ${(t.header?50:0)+(t.footer?50:0)}px)`),o});function b(){const o=v.value;if(t.form&&o){const f=o.querySelector(`form[name="${t.form}"]`);f&&f.dispatchEvent(new Event("submit"))}l("submit",{open:r==null?void 0:r.open,close:f=>r==null?void 0:r.close(t.id,f)})}function k(){r==null||r.close(t.id)}function S(){window&&window.addEventListener("resize",()=>{e.triggerRef(m),e.triggerRef(v),u=v.value.offsetLeft,y=v.value.offsetTop})}function x(){if(t.closeable&&t.esc){const o=({key:f})=>{f==="Escape"&&(r==null||r.close(t.id),window.removeEventListener("keydown",o))};window.addEventListener("keydown",o)}}function M(){u=v.value.offsetLeft,y=v.value.offsetTop}return e.onMounted(()=>{x(),S()}),e.onUnmounted(()=>{}),(o,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapperRef",ref:m,class:"modal-wrapper",style:e.normalizeStyle(_.value),onClick:f[0]||(f[0]=e.withModifiers(E=>o.maskClosable&&d(),["self"]))},[e.createElementVNode("div",{ref_key:"contentRef",ref:v,class:e.normalizeClass(["modal-content",{[`${o.mode}-mode`]:!0}]),style:e.normalizeStyle(B.value)},[o.header?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"headerRef",ref:a,class:"modal-header",style:e.normalizeStyle(h.value),onMousedown:M},[e.createElementVNode("div",K,e.toDisplayString(o.title),1),e.createElementVNode("div",X,[o.closeable?(e.openBlock(),e.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:d})):e.createCommentVNode("",!0)])],36)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"modal-body",style:e.normalizeStyle(w.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",Y,[e.createElementVNode("button",{class:"submit-button",form:o.form,type:"submit",onClick:b}," 确定 ",8,q),e.createElementVNode("button",{class:"cancel-button",type:"button",onClick:k}," 取消 ")])):e.createCommentVNode("",!0)],6)],4))}});const R=(n,i)=>{const t=n.__vccOpts||n;for(const[l,r]of i)t[l]=r;return t},V=R(G,[["__scopeId","data-v-5a470d86"]]),U={key:0,class:"modal-teleport"},J={name:"ModalProvider",inheritAttrs:!0},Q=e.defineComponent({...J,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:520,middle:860,large:1190})},maxWidth:{default:"80%"},maxHeight:{default:"80%"}},setup(n,{expose:i}){const t=e.shallowRef([]),l=e.ref(!1);async function r(a,c,s){const d=e.defineAsyncComponent(()=>Promise.resolve(a));return new Promise(p=>{t.value.push({id:Math.random().toString(32).slice(2),component:d,props:c,options:s,resolve:p,onSubmit:e.ref(null)}),e.triggerRef(t)})}function u(a,c){const s=t.value.findIndex(p=>p.id===a);if(s<0)return;const d=t.value[s];d==null||d.resolve(c),t.value.splice(s,1),e.triggerRef(t)}function y(){t.value.forEach(a=>{a.resolve()}),t.value=[],e.triggerRef(t)}function m(a){return t.value.find(c=>c.id===a)}function v(a,c){const s=t.value.find(d=>d.id===a);console.log(c,111),s&&(s.onSubmit.value=c)}return e.provide(C,{open:r,close:u,closeAll:y,getElement:m,addSubmitListener:v}),i({elements:t}),e.onMounted(()=>{l.value=!0}),(a,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(a.$slots,"default",{},void 0,!0),l.value?(e.openBlock(),e.createElementBlock("div",U,[(e.openBlock(),e.createBlock(e.Teleport,{disabled:!a.appendToBody,to:typeof a.appendToBody=="string"?a.appendToBody:"body"},[e.createVNode(e.TransitionGroup,{name:"modal-fade"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,s=>(e.openBlock(),e.createBlock(V,e.mergeProps({id:s.id,key:s.id,component:s.component,"component-props":s.props,"max-height":a.maxHeight,"max-width":a.maxWidth,sizes:a.sizes},s.options,{onSubmit:s.onSubmit.value}),null,16,["id","component","component-props","max-height","max-width","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):e.createCommentVNode("",!0)],64))}});const Z=R(Q,[["__scopeId","data-v-cec9e05a"]]);function L(n,i){var l,r;let t=n==null?void 0:n.parent;for(;t&&((l=t==null?void 0:t.type)==null?void 0:l.name)!==i;)t=t.parent;return((r=t==null?void 0:t.type)==null?void 0:r.name)===i?t:null}function ee(){const n=e.inject(C),i=e.getCurrentInstance();return{open(t,l,r){if(!n)throw new Error("Not Found Modal Provider Component");return n.open(t,l||{},r||{})},close(t){var u;if(!n)throw new Error("Not Found Modal Provider Component");const l=L(i,"ModalContainer"),r=(u=l==null?void 0:l.props)==null?void 0:u.id;if(!r)throw new Error("Not Found Current Modal Container");n.close(r,t)},closeAll(){if(!n)throw new Error("Not Found Modal Provider Component");n.closeAll()}}}function te(n){var u;const i=e.inject(C),t=e.getCurrentInstance(),l=L(t,"ModalContainer"),r=(u=l==null?void 0:l.props)==null?void 0:u.id;i&&r&&i.addSubmitListener(r,n)}exports.ModalContainer=V;exports.ModalKey=C;exports.ModalProvider=Z;exports.onSubmit=te;exports.useModal=ee;
@@ -1,6 +1,7 @@
1
1
  import ModalProvider from './components/modal-provider.vue';
2
2
  import ModalContainer from './components/modal-container.vue';
3
3
  import { useModal } from './hooks/use-modal';
4
+ import { ModalKey } from './constants';
4
5
  export { onSubmit } from './hooks/on-submit';
5
6
  export * from './interfaces';
6
- export { ModalContainer, ModalProvider, useModal, };
7
+ export { ModalContainer, ModalProvider, useModal, ModalKey, };
@@ -1,4 +1,5 @@
1
1
  import type { Component, Ref } from 'vue';
2
+ import type { useModal } from './hooks/use-modal';
2
3
  export interface SizeOptions {
3
4
  small: number;
4
5
  middle: number;
@@ -13,7 +14,8 @@ export interface OpenModalOptions {
13
14
  header?: boolean;
14
15
  footer?: boolean;
15
16
  width?: number | string;
16
- size?: 'large' | 'middle' | 'small' | 'fullscreen';
17
+ size?: 'large' | 'middle' | 'small';
18
+ fullscreen?: boolean;
17
19
  draggable?: boolean;
18
20
  form?: string;
19
21
  mode?: 'dialog' | 'drawer';
@@ -24,12 +26,12 @@ export interface ModalElement extends OpenModalOptions {
24
26
  component: Component;
25
27
  props: Record<string, any>;
26
28
  options: OpenModalOptions;
27
- onSubmit: Ref<() => void>;
29
+ onSubmit: Ref<((actions: ReturnType<typeof useModal>) => void) | null>;
28
30
  }
29
31
  export interface ModalActions {
30
32
  open: (component: Component, props: Record<string, any>, options: OpenModalOptions) => Promise<any | void>;
31
33
  close: (id: string, data?: any) => void;
32
34
  closeAll: () => void;
33
35
  getElement: (id: string) => ModalElement | undefined;
34
- addSubmitListener: (id: string, fun: () => void) => void;
36
+ addSubmitListener: (id: string, fun: (modal: ReturnType<typeof useModal>) => void) => void;
35
37
  }
@@ -1,2 +1,2 @@
1
1
  import type { ComponentInternalInstance } from 'vue';
2
- export declare function findContainer(ctx: ComponentInternalInstance | null, name: 'ModalContainer' | 'ModalProvider'): ComponentInternalInstance;
2
+ export declare function findContainer(ctx: ComponentInternalInstance | null, name: 'ModalContainer' | 'ModalProvider'): ComponentInternalInstance | null;
@@ -0,0 +1,89 @@
1
+ import type { Component } from 'vue';
2
+ import type { SizeOptions } from '../interfaces';
3
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
+ id: string;
5
+ form?: string | undefined;
6
+ component: Component;
7
+ componentProps: Record<string, any>;
8
+ width?: string | number | undefined;
9
+ maxWidth?: string | number | undefined;
10
+ maxHeight?: string | number | undefined;
11
+ sizes: SizeOptions;
12
+ size: 'small' | 'middle' | 'large';
13
+ fullscreen?: boolean | undefined;
14
+ title?: string | undefined;
15
+ header?: boolean | undefined;
16
+ footer?: boolean | undefined;
17
+ closeable?: boolean | undefined;
18
+ esc?: boolean | undefined;
19
+ maskClosable?: boolean | undefined;
20
+ draggable?: boolean | undefined;
21
+ mode?: "dialog" | "drawer" | undefined;
22
+ }>, {
23
+ header: boolean;
24
+ closeable: boolean;
25
+ footer: boolean;
26
+ keyboard: boolean;
27
+ maskClosable: boolean;
28
+ size: string;
29
+ esc: boolean;
30
+ draggable: boolean;
31
+ mode: string;
32
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
+ submit: (...args: any[]) => void;
34
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
35
+ id: string;
36
+ form?: string | undefined;
37
+ component: Component;
38
+ componentProps: Record<string, any>;
39
+ width?: string | number | undefined;
40
+ maxWidth?: string | number | undefined;
41
+ maxHeight?: string | number | undefined;
42
+ sizes: SizeOptions;
43
+ size: 'small' | 'middle' | 'large';
44
+ fullscreen?: boolean | undefined;
45
+ title?: string | undefined;
46
+ header?: boolean | undefined;
47
+ footer?: boolean | undefined;
48
+ closeable?: boolean | undefined;
49
+ esc?: boolean | undefined;
50
+ maskClosable?: boolean | undefined;
51
+ draggable?: boolean | undefined;
52
+ mode?: "dialog" | "drawer" | undefined;
53
+ }>, {
54
+ header: boolean;
55
+ closeable: boolean;
56
+ footer: boolean;
57
+ keyboard: boolean;
58
+ maskClosable: boolean;
59
+ size: string;
60
+ esc: boolean;
61
+ draggable: boolean;
62
+ mode: string;
63
+ }>>> & {
64
+ onSubmit?: ((...args: any[]) => any) | undefined;
65
+ }, {
66
+ size: 'small' | 'middle' | 'large';
67
+ header: boolean;
68
+ footer: boolean;
69
+ closeable: boolean;
70
+ esc: boolean;
71
+ maskClosable: boolean;
72
+ draggable: boolean;
73
+ mode: 'dialog' | 'drawer';
74
+ }, {}>;
75
+ export default _default;
76
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
77
+ type __VLS_TypePropsToRuntimeProps<T> = {
78
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
79
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
80
+ } : {
81
+ type: import('vue').PropType<T[K]>;
82
+ required: true;
83
+ };
84
+ };
85
+ type __VLS_WithDefaults<P, D> = {
86
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
87
+ default: D[K];
88
+ }> : P[K];
89
+ };
@@ -0,0 +1,59 @@
1
+ import type { ModalElement, SizeOptions } from '../interfaces';
2
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
3
+ appendToBody: boolean | string;
4
+ sizes: SizeOptions;
5
+ maxWidth: string | number;
6
+ maxHeight: string | number;
7
+ }>, {
8
+ appendToBody: boolean;
9
+ maxWidth: string;
10
+ maxHeight: string;
11
+ sizes: () => {
12
+ small: number;
13
+ middle: number;
14
+ large: number;
15
+ };
16
+ }>, {
17
+ elements: import("vue").ShallowRef<ModalElement[]>;
18
+ }, 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<{
19
+ appendToBody: boolean | string;
20
+ sizes: SizeOptions;
21
+ maxWidth: string | number;
22
+ maxHeight: string | number;
23
+ }>, {
24
+ appendToBody: boolean;
25
+ maxWidth: string;
26
+ maxHeight: string;
27
+ sizes: () => {
28
+ small: number;
29
+ middle: number;
30
+ large: number;
31
+ };
32
+ }>>>, {
33
+ maxWidth: string | number;
34
+ maxHeight: string | number;
35
+ sizes: SizeOptions;
36
+ appendToBody: boolean | string;
37
+ }, {}>, {
38
+ default?(_: {}): any;
39
+ }>;
40
+ export default _default;
41
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
42
+ type __VLS_TypePropsToRuntimeProps<T> = {
43
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
44
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
45
+ } : {
46
+ type: import('vue').PropType<T[K]>;
47
+ required: true;
48
+ };
49
+ };
50
+ type __VLS_WithDefaults<P, D> = {
51
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
52
+ default: D[K];
53
+ }> : P[K];
54
+ };
55
+ type __VLS_WithTemplateSlots<T, S> = T & {
56
+ new (): {
57
+ $slots: S;
58
+ };
59
+ };
@@ -0,0 +1,3 @@
1
+ import type { InjectionKey } from 'vue';
2
+ import type { ModalActions } from './interfaces';
3
+ export declare const ModalKey: InjectionKey<ModalActions>;
@@ -0,0 +1,2 @@
1
+ import type { useModal } from './use-modal';
2
+ export declare function onSubmit(callback: (actions: ReturnType<typeof useModal>) => void): void;
@@ -0,0 +1,7 @@
1
+ import type { Component } from 'vue';
2
+ import type { OpenModalOptions } from '../interfaces';
3
+ export declare function useModal(): {
4
+ open(component: Component, props?: Record<string, any>, options?: OpenModalOptions): Promise<any>;
5
+ close(data?: any): void;
6
+ closeAll(): void;
7
+ };
@@ -0,0 +1,7 @@
1
+ import ModalProvider from './components/modal-provider.vue';
2
+ import ModalContainer from './components/modal-container.vue';
3
+ import { useModal } from './hooks/use-modal';
4
+ import { ModalKey } from './constants';
5
+ export { onSubmit } from './hooks/on-submit';
6
+ export * from './interfaces';
7
+ export { ModalContainer, ModalProvider, useModal, ModalKey, };