@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.
- package/dist/{components → cjs/components}/modal-container.vue.d.ts +32 -30
- package/dist/{components → cjs/components}/modal-provider.vue.d.ts +3 -3
- package/dist/cjs/hooks/on-submit.d.ts +2 -0
- package/dist/{hooks → cjs/hooks}/use-modal.d.ts +0 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/{index.d.ts → cjs/index.d.ts} +2 -1
- package/dist/{interfaces.d.ts → cjs/interfaces.d.ts} +5 -3
- package/dist/{utils → cjs/utils}/find-container.d.ts +1 -1
- package/dist/es/components/modal-container.vue.d.ts +89 -0
- package/dist/es/components/modal-provider.vue.d.ts +59 -0
- package/dist/es/constants.d.ts +3 -0
- package/dist/es/hooks/on-submit.d.ts +2 -0
- package/dist/es/hooks/use-modal.d.ts +7 -0
- package/dist/es/index.d.ts +7 -0
- package/dist/es/index.mjs +401 -0
- package/dist/es/interfaces.d.ts +37 -0
- package/dist/es/utils/find-container.d.ts +2 -0
- package/dist/style.css +1 -1
- package/package.json +20 -10
- package/dist/hooks/on-submit.d.ts +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.js +0 -404
- /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
|
@@ -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 |
|
|
9
|
-
maxWidth?: number |
|
|
10
|
-
maxHeight?: number |
|
|
8
|
+
width?: string | number | undefined;
|
|
9
|
+
maxWidth?: string | number | undefined;
|
|
10
|
+
maxHeight?: string | number | undefined;
|
|
11
11
|
sizes: SizeOptions;
|
|
12
|
-
size: 'small' | 'middle' | 'large'
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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 |
|
|
39
|
-
maxWidth?: number |
|
|
40
|
-
maxHeight?: number |
|
|
39
|
+
width?: string | number | undefined;
|
|
40
|
+
maxWidth?: string | number | undefined;
|
|
41
|
+
maxHeight?: string | number | undefined;
|
|
41
42
|
sizes: SizeOptions;
|
|
42
|
-
size: 'small' | 'middle' | 'large'
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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'
|
|
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,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, };
|