znyg-frontend-common 1.0.1 → 1.0.2
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/cdn/index.cdn.js +1 -1
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +1 -1
- package/cdn/index.cdn.mjs.map +1 -1
- package/es/hooks/usePopWindow/src/index.mjs +1 -0
- package/es/hooks/usePopWindow/src/index.mjs.map +1 -1
- package/lib/hooks/usePopWindow/src/index.js +1 -0
- package/lib/hooks/usePopWindow/src/index.js.map +1 -1
- package/package.json +1 -1
package/cdn/index.cdn.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var oe=Object.defineProperty;var l=(t,o)=>oe(t,"name",{value:o,configurable:!0});(function(t,o){typeof exports=="object"&&typeof module!="undefined"?o(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],o):(t=typeof globalThis!="undefined"?globalThis:t||self,o(t.ZnygFrontendCommon={},t.Vue,t.elementPlus))})(this,function(t,o,$){"use strict";var j=Object.defineProperty,v=l((e,n)=>j(e,"name",{value:n,configurable:!0}),"r$4");const g=v(e=>(e.install=n=>{const i=e;n.component(i.name,i)},e),"withInstall"),E=v((e,n)=>({install:v(i=>{i.directive(n,e)},"install"),directive:e}),"withInstallDirectives"),S={type:{type:String,default:"default"}};var V=o.defineComponent({name:"IButton",__name:"button",props:S,setup(e,{expose:n}){n();const i={};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),D=l((e,n)=>{const i=e.__vccOpts||e;for(const[r,p]of n)i[r]=p;return i},"c"),T=Object.defineProperty,F=l((e,n)=>T(e,"name",{value:n,configurable:!0}),"t$1");function y(e,n,i,r,p,s){return o.openBlock(),o.createElementBlock("button",{class:o.normalizeClass(["mu-button",e.type])},[o.renderSlot(e.$slots,"default")],2)}l(y,"p$2"),F(y,"_sfc_render");var M=D(V,[["render",y],["__file","button.vue"]]);const _=g(M);var k=Object.defineProperty,q=l((e,n)=>k(e,"name",{value:n,configurable:!0}),"n");const N=[_],b=q(function(e){N.forEach(n=>e.use(n))},"install");var A={install:b},x=Object.defineProperty,z=l((e,n)=>x(e,"name",{value:n,configurable:!0}),"r");function W(){return{num:o.ref(0)}}l(W,"useDeveloper"),z(W,"useDeveloper");var L=Object.defineProperty,Z=l((e,n)=>L(e,"name",{value:n,configurable:!0}),"o");function I(){console.log("developFn")}l(I,"developFn"),Z(I,"developFn");var G=Object.defineProperty,H=l((e,n)=>G(e,"name",{value:n,configurable:!0}),"t");function u(e){return typeof e=="number"?`${e}px`:typeof e=="string"?e.endsWith("px")||e.endsWith("%")?e:`${e}px`:""}l(u,"formatValue"),H(u,"formatValue");var J=Object.defineProperty,d=l((e,n)=>J(e,"name",{value:n,configurable:!0}),"a");let w,c=[];const K=d(()=>document.querySelector("body"),"getBody"),C=d((e,n,i)=>{var r;const p={left:"0",top:"0",position:"absolute",id:"popwindow_"+Math.ceil(Math.random()*1e6),animate:!1,animateInClass:"animate__animated animate__faster animate__fadeIn",animateOutClass:"animate__animated animate__faster animate__fadeOut"};let s={...e};e.left!==void 0&&(s.left=u(s.left)),e.top!==void 0&&(s.top=u(s.top)),e.width!==void 0&&(s.width=u(s.width)),e.height!==void 0&&(s.height=u(s.height));const a=Object.assign(p,s),P=d(()=>{h(a.id)},"close");h(a.id);let ne=a.animate?a.animateInClass:"";const
|
|
1
|
+
var oe=Object.defineProperty;var l=(t,o)=>oe(t,"name",{value:o,configurable:!0});(function(t,o){typeof exports=="object"&&typeof module!="undefined"?o(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],o):(t=typeof globalThis!="undefined"?globalThis:t||self,o(t.ZnygFrontendCommon={},t.Vue,t.elementPlus))})(this,function(t,o,$){"use strict";var j=Object.defineProperty,v=l((e,n)=>j(e,"name",{value:n,configurable:!0}),"r$4");const g=v(e=>(e.install=n=>{const i=e;n.component(i.name,i)},e),"withInstall"),E=v((e,n)=>({install:v(i=>{i.directive(n,e)},"install"),directive:e}),"withInstallDirectives"),S={type:{type:String,default:"default"}};var V=o.defineComponent({name:"IButton",__name:"button",props:S,setup(e,{expose:n}){n();const i={};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),D=l((e,n)=>{const i=e.__vccOpts||e;for(const[r,p]of n)i[r]=p;return i},"c"),T=Object.defineProperty,F=l((e,n)=>T(e,"name",{value:n,configurable:!0}),"t$1");function y(e,n,i,r,p,s){return o.openBlock(),o.createElementBlock("button",{class:o.normalizeClass(["mu-button",e.type])},[o.renderSlot(e.$slots,"default")],2)}l(y,"p$2"),F(y,"_sfc_render");var M=D(V,[["render",y],["__file","button.vue"]]);const _=g(M);var k=Object.defineProperty,q=l((e,n)=>k(e,"name",{value:n,configurable:!0}),"n");const N=[_],b=q(function(e){N.forEach(n=>e.use(n))},"install");var A={install:b},x=Object.defineProperty,z=l((e,n)=>x(e,"name",{value:n,configurable:!0}),"r");function W(){return{num:o.ref(0)}}l(W,"useDeveloper"),z(W,"useDeveloper");var L=Object.defineProperty,Z=l((e,n)=>L(e,"name",{value:n,configurable:!0}),"o");function I(){console.log("developFn")}l(I,"developFn"),Z(I,"developFn");var G=Object.defineProperty,H=l((e,n)=>G(e,"name",{value:n,configurable:!0}),"t");function u(e){return typeof e=="number"?`${e}px`:typeof e=="string"?e.endsWith("px")||e.endsWith("%")?e:`${e}px`:""}l(u,"formatValue"),H(u,"formatValue");var J=Object.defineProperty,d=l((e,n)=>J(e,"name",{value:n,configurable:!0}),"a");let w,c=[];const K=d(()=>document.querySelector("body"),"getBody"),C=d((e,n,i)=>{var r;const p={left:"0",top:"0",position:"absolute",id:"popwindow_"+Math.ceil(Math.random()*1e6),animate:!1,animateInClass:"animate__animated animate__faster animate__fadeIn",animateOutClass:"animate__animated animate__faster animate__fadeOut"};let s={...e};e.left!==void 0&&(s.left=u(s.left)),e.top!==void 0&&(s.top=u(s.top)),e.width!==void 0&&(s.width=u(s.width)),e.height!==void 0&&(s.height=u(s.height));const a=Object.assign(p,s),P=d(()=>{h(a.id)},"close");h(a.id);let ne=a.animate?a.animateInClass:"";const m=o.createVNode("div",{class:"popWindow "+ne,style:{width:a.width,height:a.height,left:a.left,top:a.top,position:a.position}},[o.createVNode($.ElScrollbar,null,{default:d(()=>[e.render?e.render({close:P,option:a}):o.createVNode(n,o.mergeProps({is:n},i,{onClose:d(()=>P(),"onClose")}),null)],"default")})]);m.appContext=w,(r=m.children)!=null&&r.length&&(m.children[0].appContext=w);const f=document.createElement("div");f.id="popwindow_"+Math.ceil(Math.random()*1e6),f.style.pointerEvents="auto";let B=K();return e.appendParent&&(B=document.getElementById(e.appendParent)),B.appendChild(f),o.render(m,f),o.nextTick(()=>{const te={id:a.id,tag:a.tag,node:f,option:a};c.push(te)}),{id:a.id,close:P}},"showPopWindow"),O=d(e=>{var n;if(!e)return;const{option:i,node:r}=e;if((n=i.onClose)==null||n.call(i),i.animate){const p=r.querySelector(".popWindow");p.className="popWindow "+i.animateOutClass,p.addEventListener("animationend",()=>{o.render(null,r),r.remove(),c.splice(c.indexOf(e),1)})}else o.render(null,r),r.remove(),c.splice(c.indexOf(e),1)},"removePopWindow"),h=d(e=>{const n=c.find(i=>i.id===e);n&&O(n)},"closePopWindowById"),Q=d(e=>{c.filter(n=>n.tag===e).forEach(n=>O(n))},"closePopWindowByTag"),R=d(()=>c,"getAllPopWindows"),U=d(e=>{const{appContext:n}=e||o.getCurrentInstance()||{};return w=n,{showPopWindow:C}},"initPopWindow");var X=Object.defineProperty,Y=l((e,n)=>X(e,"name",{value:n,configurable:!0}),"p");const ee=Y(e=>{const n=e||o.getCurrentInstance(),{showPopWindow:i}=U(n);return{showPopWindow:i}},"usePopWindow");t.IButton=_,t.closePopWindowById=h,t.closePopWindowByTag=Q,t.default=A,t.developFn=I,t.formatValue=u,t.getAllPopWindows=R,t.install=b,t.showPopWindow=C,t.useDeveloper=W,t.usePopWindow=ee,t.withInstall=g,t.withInstallDirectives=E,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=index.cdn.js.map
|
package/cdn/index.cdn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cdn.js","sources":["../../../packages/utils/install.ts","../../../packages/components/button/src/button.ts","../../../packages/components/button/src/button.vue","../../../packages/components/button/index.ts","../../../packages/installer.ts","../../../packages/hooks/useDeveloper/index.ts","../../../packages/utils/myDevelop.ts","../../../packages/utils/index.ts","../../../packages/hooks/usePopWindow/src/index.tsx","../../../packages/hooks/usePopWindow/index.ts"],"sourcesContent":["import type { App, Directive } from 'vue';\nimport type { SFCWithInstall } from '../types';\n\n// 注册组件\nexport const withInstall = <T>(main: T) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n const comp: Record<string, any> = main as Record<string, any>;\n app.component(comp.name, comp);\n };\n return main as SFCWithInstall<T>;\n};\n\n// 注册指令\nexport const withInstallDirectives = <T extends Directive>(main: T, name: string) => {\n return {\n install: (app: App): void => {\n app.directive(name, main);\n },\n directive: main,\n };\n};\n","import type { ExtractPropTypes, PropType } from 'vue';\nimport type button from './button.vue';\n\nexport type Type = 'primary' | 'success' | 'error';\n\nexport const ButtonProps = {\n type: {\n type: String as PropType<Type>,\n default: 'default',\n },\n};\n\nexport type ButtonPropsType = ExtractPropTypes<typeof ButtonProps>;\nexport type ButtonInstanceType = InstanceType<typeof button>;\n","<script lang=\"ts\" setup>\n import { ButtonProps } from './button';\n\n defineProps(ButtonProps);\n\n defineOptions({\n name: 'IButton',\n });\n</script>\n\n<template>\n <button class=\"mu-button\" :class=\"type\">\n <slot></slot>\n </button>\n</template>\n","import { withInstall } from '../../utils/install';\nimport Button from './src/button.vue';\n\nexport const IButton = withInstall(Button); // 增加类型\n\nexport default IButton;\n","import type { App, Plugin } from 'vue';\n\nimport { IButton } from './components/button';\n\nconst component = [IButton] as Plugin[];\n\nexport const install = function (app: App) {\n component.forEach((i) => app.use(i));\n};\n\nexport default {\n install,\n};\n","import { ref } from 'vue';\n\nexport function useDeveloper() {\n const num = ref<number>(0);\n return { num };\n}\n","// utils 用例\nexport function developFn() {\n console.log('developFn');\n}\n","export * from './install';\nexport * from './myDevelop';\n\n\nexport function formatValue(value: number | string): string {\n if (typeof value === 'number') {\n return `${value}px`;\n } else if (typeof value === 'string') {\n // 检查是否已经带有 px 单位或其他单位\n if (value.endsWith('px') || value.endsWith('%')) {\n return value; // 直接返回已有单位的字符串\n }\n return `${value}px`; // 其他字符串类型的值加上 px\n }\n return '';\n}","import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n","import { type ComponentInternalInstance, getCurrentInstance } from 'vue'\n\nimport { closePopWindowById, closePopWindowByTag, initPopWindow, showPopWindow, getAllPopWindows } from './src/index'\nimport { type PopWindowInfoProps, type PopWindowProps } from './src/interface'\n\nexport { showPopWindow, closePopWindowById, closePopWindowByTag, getAllPopWindows }\nexport type { PopWindowInfoProps, PopWindowProps }\nexport const usePopWindow = (ctx?: any) => {\n const thisAppContext = ctx || (getCurrentInstance() as ComponentInternalInstance)\n const { showPopWindow } = initPopWindow(thisAppContext)\n return { showPopWindow }\n}\n"],"names":["s","r","__name","t","e","withInstall","main","app","comp","withInstallDirectives","name","ButtonProps","_sfc_render","_ctx","_cache","$props","type","$data","$options","_normalizeClass","IButton","Button","component","install","i","r$2","o","useDeveloper","ref","l","developFn","formatValue","value","appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance","usePopWindow","thisAppContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cdn.js","sources":["../../../packages/utils/install.ts","../../../packages/components/button/src/button.ts","../../../packages/components/button/src/button.vue","../../../packages/components/button/index.ts","../../../packages/installer.ts","../../../packages/hooks/useDeveloper/index.ts","../../../packages/utils/myDevelop.ts","../../../packages/utils/index.ts","../../../packages/hooks/usePopWindow/src/index.tsx","../../../packages/hooks/usePopWindow/index.ts"],"sourcesContent":["import type { App, Directive } from 'vue';\nimport type { SFCWithInstall } from '../types';\n\n// 注册组件\nexport const withInstall = <T>(main: T) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n const comp: Record<string, any> = main as Record<string, any>;\n app.component(comp.name, comp);\n };\n return main as SFCWithInstall<T>;\n};\n\n// 注册指令\nexport const withInstallDirectives = <T extends Directive>(main: T, name: string) => {\n return {\n install: (app: App): void => {\n app.directive(name, main);\n },\n directive: main,\n };\n};\n","import type { ExtractPropTypes, PropType } from 'vue';\nimport type button from './button.vue';\n\nexport type Type = 'primary' | 'success' | 'error';\n\nexport const ButtonProps = {\n type: {\n type: String as PropType<Type>,\n default: 'default',\n },\n};\n\nexport type ButtonPropsType = ExtractPropTypes<typeof ButtonProps>;\nexport type ButtonInstanceType = InstanceType<typeof button>;\n","<script lang=\"ts\" setup>\n import { ButtonProps } from './button';\n\n defineProps(ButtonProps);\n\n defineOptions({\n name: 'IButton',\n });\n</script>\n\n<template>\n <button class=\"mu-button\" :class=\"type\">\n <slot></slot>\n </button>\n</template>\n","import { withInstall } from '../../utils/install';\nimport Button from './src/button.vue';\n\nexport const IButton = withInstall(Button); // 增加类型\n\nexport default IButton;\n","import type { App, Plugin } from 'vue';\n\nimport { IButton } from './components/button';\n\nconst component = [IButton] as Plugin[];\n\nexport const install = function (app: App) {\n component.forEach((i) => app.use(i));\n};\n\nexport default {\n install,\n};\n","import { ref } from 'vue';\n\nexport function useDeveloper() {\n const num = ref<number>(0);\n return { num };\n}\n","// utils 用例\nexport function developFn() {\n console.log('developFn');\n}\n","export * from './install';\nexport * from './myDevelop';\n\n\nexport function formatValue(value: number | string): string {\n if (typeof value === 'number') {\n return `${value}px`;\n } else if (typeof value === 'string') {\n // 检查是否已经带有 px 单位或其他单位\n if (value.endsWith('px') || value.endsWith('%')) {\n return value; // 直接返回已有单位的字符串\n }\n return `${value}px`; // 其他字符串类型的值加上 px\n }\n return '';\n}","import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n container.style.pointerEvents='auto'\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n","import { type ComponentInternalInstance, getCurrentInstance } from 'vue'\n\nimport { closePopWindowById, closePopWindowByTag, initPopWindow, showPopWindow, getAllPopWindows } from './src/index'\nimport { type PopWindowInfoProps, type PopWindowProps } from './src/interface'\n\nexport { showPopWindow, closePopWindowById, closePopWindowByTag, getAllPopWindows }\nexport type { PopWindowInfoProps, PopWindowProps }\nexport const usePopWindow = (ctx?: any) => {\n const thisAppContext = ctx || (getCurrentInstance() as ComponentInternalInstance)\n const { showPopWindow } = initPopWindow(thisAppContext)\n return { showPopWindow }\n}\n"],"names":["s","r","__name","t","e","withInstall","main","app","comp","withInstallDirectives","name","ButtonProps","_sfc_render","_ctx","_cache","$props","type","$data","$options","_normalizeClass","IButton","Button","component","install","i","r$2","o","useDeveloper","ref","l","developFn","formatValue","value","appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","style","pointerEvents","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance","usePopWindow","thisAppContext"],"mappings":"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"}
|
package/cdn/index.cdn.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var E=Object.defineProperty;var a=(e,t)=>E(e,"name",{value:t,configurable:!0});import{defineComponent as S,openBlock as k,createElementBlock as D,normalizeClass as M,renderSlot as F,ref as T,createVNode as
|
|
1
|
+
var E=Object.defineProperty;var a=(e,t)=>E(e,"name",{value:t,configurable:!0});import{defineComponent as S,openBlock as k,createElementBlock as D,normalizeClass as M,renderSlot as F,ref as T,createVNode as v,mergeProps as V,render as m,nextTick as q,getCurrentInstance as b}from"vue";import{ElScrollbar as A}from"element-plus";var N=Object.defineProperty,h=a((e,t)=>N(e,"name",{value:t,configurable:!0}),"r$4");const y=h(e=>(e.install=t=>{const n=e;t.component(n.name,n)},e),"withInstall"),z=h((e,t)=>({install:h(n=>{n.directive(t,e)},"install"),directive:e}),"withInstallDirectives"),L={type:{type:String,default:"default"}};var G=S({name:"IButton",__name:"button",props:L,setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),H=a((e,t)=>{const n=e.__vccOpts||e;for(const[i,d]of t)n[i]=d;return n},"c"),J=Object.defineProperty,K=a((e,t)=>J(e,"name",{value:t,configurable:!0}),"t$1");function _(e,t,n,i,d,r){return k(),D("button",{class:M(["mu-button",e.type])},[F(e.$slots,"default")],2)}a(_,"p$2"),K(_,"_sfc_render");var Q=H(G,[["render",_],["__file","button.vue"]]);const W=y(Q);var R=Object.defineProperty,U=a((e,t)=>R(e,"name",{value:t,configurable:!0}),"n");const X=[W],O=U(function(e){X.forEach(t=>e.use(t))},"install");var Y={install:O},Z=Object.defineProperty,ee=a((e,t)=>Z(e,"name",{value:t,configurable:!0}),"r");function C(){return{num:T(0)}}a(C,"useDeveloper"),ee(C,"useDeveloper");var te=Object.defineProperty,ne=a((e,t)=>te(e,"name",{value:t,configurable:!0}),"o");function $(){console.log("developFn")}a($,"developFn"),ne($,"developFn");var oe=Object.defineProperty,ae=a((e,t)=>oe(e,"name",{value:t,configurable:!0}),"t");function p(e){return typeof e=="number"?`${e}px`:typeof e=="string"?e.endsWith("px")||e.endsWith("%")?e:`${e}px`:""}a(p,"formatValue"),ae(p,"formatValue");var ie=Object.defineProperty,l=a((e,t)=>ie(e,"name",{value:t,configurable:!0}),"a");let w,s=[];const re=l(()=>document.querySelector("body"),"getBody"),I=l((e,t,n)=>{var i;const d={left:"0",top:"0",position:"absolute",id:"popwindow_"+Math.ceil(Math.random()*1e6),animate:!1,animateInClass:"animate__animated animate__faster animate__fadeIn",animateOutClass:"animate__animated animate__faster animate__fadeOut"};let r={...e};e.left!==void 0&&(r.left=p(r.left)),e.top!==void 0&&(r.top=p(r.top)),e.width!==void 0&&(r.width=p(r.width)),e.height!==void 0&&(r.height=p(r.height));const o=Object.assign(d,r),f=l(()=>{g(o.id)},"close");g(o.id);let B=o.animate?o.animateInClass:"";const u=v("div",{class:"popWindow "+B,style:{width:o.width,height:o.height,left:o.left,top:o.top,position:o.position}},[v(A,null,{default:l(()=>[e.render?e.render({close:f,option:o}):v(t,V({is:t},n,{onClose:l(()=>f(),"onClose")}),null)],"default")})]);u.appContext=w,(i=u.children)!=null&&i.length&&(u.children[0].appContext=w);const c=document.createElement("div");c.id="popwindow_"+Math.ceil(Math.random()*1e6),c.style.pointerEvents="auto";let P=re();return e.appendParent&&(P=document.getElementById(e.appendParent)),P.appendChild(c),m(u,c),q(()=>{const j={id:o.id,tag:o.tag,node:c,option:o};s.push(j)}),{id:o.id,close:f}},"showPopWindow"),x=l(e=>{var t;if(!e)return;const{option:n,node:i}=e;if((t=n.onClose)==null||t.call(n),n.animate){const d=i.querySelector(".popWindow");d.className="popWindow "+n.animateOutClass,d.addEventListener("animationend",()=>{m(null,i),i.remove(),s.splice(s.indexOf(e),1)})}else m(null,i),i.remove(),s.splice(s.indexOf(e),1)},"removePopWindow"),g=l(e=>{const t=s.find(n=>n.id===e);t&&x(t)},"closePopWindowById"),le=l(e=>{s.filter(t=>t.tag===e).forEach(t=>x(t))},"closePopWindowByTag"),se=l(()=>s,"getAllPopWindows"),de=l(e=>{const{appContext:t}=e||b()||{};return w=t,{showPopWindow:I}},"initPopWindow");var pe=Object.defineProperty,ce=a((e,t)=>pe(e,"name",{value:t,configurable:!0}),"p");const ue=ce(e=>{const t=e||b(),{showPopWindow:n}=de(t);return{showPopWindow:n}},"usePopWindow");export{W as IButton,g as closePopWindowById,le as closePopWindowByTag,Y as default,$ as developFn,p as formatValue,se as getAllPopWindows,O as install,I as showPopWindow,C as useDeveloper,ue as usePopWindow,y as withInstall,z as withInstallDirectives};
|
|
2
2
|
//# sourceMappingURL=index.cdn.mjs.map
|
package/cdn/index.cdn.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cdn.mjs","sources":["../../../packages/utils/install.ts","../../../packages/components/button/src/button.ts","../../../packages/components/button/src/button.vue","../../../packages/components/button/index.ts","../../../packages/installer.ts","../../../packages/hooks/useDeveloper/index.ts","../../../packages/utils/myDevelop.ts","../../../packages/utils/index.ts","../../../packages/hooks/usePopWindow/src/index.tsx","../../../packages/hooks/usePopWindow/index.ts"],"sourcesContent":["import type { App, Directive } from 'vue';\nimport type { SFCWithInstall } from '../types';\n\n// 注册组件\nexport const withInstall = <T>(main: T) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n const comp: Record<string, any> = main as Record<string, any>;\n app.component(comp.name, comp);\n };\n return main as SFCWithInstall<T>;\n};\n\n// 注册指令\nexport const withInstallDirectives = <T extends Directive>(main: T, name: string) => {\n return {\n install: (app: App): void => {\n app.directive(name, main);\n },\n directive: main,\n };\n};\n","import type { ExtractPropTypes, PropType } from 'vue';\nimport type button from './button.vue';\n\nexport type Type = 'primary' | 'success' | 'error';\n\nexport const ButtonProps = {\n type: {\n type: String as PropType<Type>,\n default: 'default',\n },\n};\n\nexport type ButtonPropsType = ExtractPropTypes<typeof ButtonProps>;\nexport type ButtonInstanceType = InstanceType<typeof button>;\n","<script lang=\"ts\" setup>\n import { ButtonProps } from './button';\n\n defineProps(ButtonProps);\n\n defineOptions({\n name: 'IButton',\n });\n</script>\n\n<template>\n <button class=\"mu-button\" :class=\"type\">\n <slot></slot>\n </button>\n</template>\n","import { withInstall } from '../../utils/install';\nimport Button from './src/button.vue';\n\nexport const IButton = withInstall(Button); // 增加类型\n\nexport default IButton;\n","import type { App, Plugin } from 'vue';\n\nimport { IButton } from './components/button';\n\nconst component = [IButton] as Plugin[];\n\nexport const install = function (app: App) {\n component.forEach((i) => app.use(i));\n};\n\nexport default {\n install,\n};\n","import { ref } from 'vue';\n\nexport function useDeveloper() {\n const num = ref<number>(0);\n return { num };\n}\n","// utils 用例\nexport function developFn() {\n console.log('developFn');\n}\n","export * from './install';\nexport * from './myDevelop';\n\n\nexport function formatValue(value: number | string): string {\n if (typeof value === 'number') {\n return `${value}px`;\n } else if (typeof value === 'string') {\n // 检查是否已经带有 px 单位或其他单位\n if (value.endsWith('px') || value.endsWith('%')) {\n return value; // 直接返回已有单位的字符串\n }\n return `${value}px`; // 其他字符串类型的值加上 px\n }\n return '';\n}","import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n","import { type ComponentInternalInstance, getCurrentInstance } from 'vue'\n\nimport { closePopWindowById, closePopWindowByTag, initPopWindow, showPopWindow, getAllPopWindows } from './src/index'\nimport { type PopWindowInfoProps, type PopWindowProps } from './src/interface'\n\nexport { showPopWindow, closePopWindowById, closePopWindowByTag, getAllPopWindows }\nexport type { PopWindowInfoProps, PopWindowProps }\nexport const usePopWindow = (ctx?: any) => {\n const thisAppContext = ctx || (getCurrentInstance() as ComponentInternalInstance)\n const { showPopWindow } = initPopWindow(thisAppContext)\n return { showPopWindow }\n}\n"],"names":["s","r","__name","t","e","withInstall","main","app","comp","withInstallDirectives","name","ButtonProps","_sfc_render","_ctx","_cache","$props","type","$data","$options","_normalizeClass","IButton","Button","component","install","i","r$2","o","n","useDeveloper","ref","l","developFn","formatValue","value","appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance","usePopWindow","thisAppContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cdn.mjs","sources":["../../../packages/utils/install.ts","../../../packages/components/button/src/button.ts","../../../packages/components/button/src/button.vue","../../../packages/components/button/index.ts","../../../packages/installer.ts","../../../packages/hooks/useDeveloper/index.ts","../../../packages/utils/myDevelop.ts","../../../packages/utils/index.ts","../../../packages/hooks/usePopWindow/src/index.tsx","../../../packages/hooks/usePopWindow/index.ts"],"sourcesContent":["import type { App, Directive } from 'vue';\nimport type { SFCWithInstall } from '../types';\n\n// 注册组件\nexport const withInstall = <T>(main: T) => {\n (main as SFCWithInstall<T>).install = (app): void => {\n const comp: Record<string, any> = main as Record<string, any>;\n app.component(comp.name, comp);\n };\n return main as SFCWithInstall<T>;\n};\n\n// 注册指令\nexport const withInstallDirectives = <T extends Directive>(main: T, name: string) => {\n return {\n install: (app: App): void => {\n app.directive(name, main);\n },\n directive: main,\n };\n};\n","import type { ExtractPropTypes, PropType } from 'vue';\nimport type button from './button.vue';\n\nexport type Type = 'primary' | 'success' | 'error';\n\nexport const ButtonProps = {\n type: {\n type: String as PropType<Type>,\n default: 'default',\n },\n};\n\nexport type ButtonPropsType = ExtractPropTypes<typeof ButtonProps>;\nexport type ButtonInstanceType = InstanceType<typeof button>;\n","<script lang=\"ts\" setup>\n import { ButtonProps } from './button';\n\n defineProps(ButtonProps);\n\n defineOptions({\n name: 'IButton',\n });\n</script>\n\n<template>\n <button class=\"mu-button\" :class=\"type\">\n <slot></slot>\n </button>\n</template>\n","import { withInstall } from '../../utils/install';\nimport Button from './src/button.vue';\n\nexport const IButton = withInstall(Button); // 增加类型\n\nexport default IButton;\n","import type { App, Plugin } from 'vue';\n\nimport { IButton } from './components/button';\n\nconst component = [IButton] as Plugin[];\n\nexport const install = function (app: App) {\n component.forEach((i) => app.use(i));\n};\n\nexport default {\n install,\n};\n","import { ref } from 'vue';\n\nexport function useDeveloper() {\n const num = ref<number>(0);\n return { num };\n}\n","// utils 用例\nexport function developFn() {\n console.log('developFn');\n}\n","export * from './install';\nexport * from './myDevelop';\n\n\nexport function formatValue(value: number | string): string {\n if (typeof value === 'number') {\n return `${value}px`;\n } else if (typeof value === 'string') {\n // 检查是否已经带有 px 单位或其他单位\n if (value.endsWith('px') || value.endsWith('%')) {\n return value; // 直接返回已有单位的字符串\n }\n return `${value}px`; // 其他字符串类型的值加上 px\n }\n return '';\n}","import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n container.style.pointerEvents='auto'\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n","import { type ComponentInternalInstance, getCurrentInstance } from 'vue'\n\nimport { closePopWindowById, closePopWindowByTag, initPopWindow, showPopWindow, getAllPopWindows } from './src/index'\nimport { type PopWindowInfoProps, type PopWindowProps } from './src/interface'\n\nexport { showPopWindow, closePopWindowById, closePopWindowByTag, getAllPopWindows }\nexport type { PopWindowInfoProps, PopWindowProps }\nexport const usePopWindow = (ctx?: any) => {\n const thisAppContext = ctx || (getCurrentInstance() as ComponentInternalInstance)\n const { showPopWindow } = initPopWindow(thisAppContext)\n return { showPopWindow }\n}\n"],"names":["s","r","__name","t","e","withInstall","main","app","comp","withInstallDirectives","name","ButtonProps","_sfc_render","_ctx","_cache","$props","type","$data","$options","_normalizeClass","IButton","Button","component","install","i","r$2","o","n","useDeveloper","ref","l","developFn","formatValue","value","appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","style","pointerEvents","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance","usePopWindow","thisAppContext"],"mappings":"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"}
|
|
@@ -60,6 +60,7 @@ const showPopWindow = /* @__PURE__ */ __name((props, component, componentProps)
|
|
|
60
60
|
}
|
|
61
61
|
const container = document.createElement("div");
|
|
62
62
|
container.id = "popwindow_" + Math.ceil(Math.random() * 1e6);
|
|
63
|
+
container.style.pointerEvents = "auto";
|
|
63
64
|
let parentEl = getBody();
|
|
64
65
|
if (props.appendParent) {
|
|
65
66
|
parentEl = document.getElementById(props.appendParent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/usePopWindow/src/index.tsx"],"sourcesContent":["import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n"],"names":["appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","component","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","formatValue","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","popWindows","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/hooks/usePopWindow/src/index.tsx"],"sourcesContent":["import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n container.style.pointerEvents='auto'\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n"],"names":["appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","component","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","formatValue","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","style","pointerEvents","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","popWindows","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance"],"mappings":"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"}
|
|
@@ -62,6 +62,7 @@ const showPopWindow = /* @__PURE__ */ __name((props, component, componentProps)
|
|
|
62
62
|
}
|
|
63
63
|
const container = document.createElement("div");
|
|
64
64
|
container.id = "popwindow_" + Math.ceil(Math.random() * 1e6);
|
|
65
|
+
container.style.pointerEvents = "auto";
|
|
65
66
|
let parentEl = getBody();
|
|
66
67
|
if (props.appendParent) {
|
|
67
68
|
parentEl = document.getElementById(props.appendParent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/usePopWindow/src/index.tsx"],"sourcesContent":["import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n"],"names":["appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","component","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","formatValue","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","popWindows","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/usePopWindow/src/index.tsx"],"sourcesContent":["import { type AppContext, type Component, type ComponentInternalInstance, getCurrentInstance, nextTick, render } from 'vue'\n\nimport { type PopWindowInfoProps, type PopWindowProps } from './interface'\nimport { ElScrollbar } from 'element-plus'\nimport { formatValue } from '../../../utils'\n\nlet appContextConst: AppContext | undefined\nlet popWindowList: Array<any> = []\nconst getBody = (): Element => {\n return document.querySelector('body') as HTMLBodyElement\n}\n/**\n * 显示弹出窗口\n *\n * 此函数用于创建并显示一个弹出窗口,支持自定义样式和内容通过参数传递\n * 可以选择附加到特定的父元素,并且在渲染后会将自身添加到弹出窗口列表中\n *\n * @param props 弹出窗口的属性,包括位置、尺寸等样式属性以及附加属性\n * @param component 可选参数,用于指定弹出窗口内渲染的自定义组件类型,如果props中传了render函数,则无效\n * @param componentProps 可选参数,传递给自定义组件的属性\n */\nexport const showPopWindow = (props: PopWindowProps, component?: Component, componentProps?: any) => {\n const op = {\n left: '0',\n top: '0',\n // width: 'auto',\n // height: 'auto',\n position: 'absolute',\n id: 'popwindow_' + Math.ceil(Math.random() * 1000000),\n animate: false,\n animateInClass: 'animate__animated animate__faster animate__fadeIn',\n animateOutClass: 'animate__animated animate__faster animate__fadeOut'\n }\n let propsFormat = { ...props }\n if (props.left !== undefined) propsFormat.left = formatValue(propsFormat.left)\n if (props.top !== undefined) propsFormat.top = formatValue(propsFormat.top)\n if (props.width !== undefined) propsFormat.width = formatValue(propsFormat.width)\n if (props.height !== undefined) propsFormat.height = formatValue(propsFormat.height)\n\n const option: PopWindowProps = Object.assign(op, propsFormat)\n const close = () => {\n closePopWindowById(option.id)\n }\n\n // 相同的id只会存在一个\n closePopWindowById(option.id)\n let animateClass = option.animate ? option.animateInClass : ''\n\n const vm = (\n <div\n class={'popWindow ' + animateClass}\n style={{ width: option.width, height: option.height, left: option.left, top: option.top, position: option.position }}>\n <ElScrollbar>\n {props.render ? props.render({ close, option }) : <component is={component} {...componentProps} onClose={() => close()}></component>}\n </ElScrollbar>\n </div>\n )\n vm.appContext = appContextConst\n // 这里是为了让插槽的子组件能获取到appContext\n if (vm.children?.length) {\n vm.children[0].appContext = appContextConst\n }\n const container = document.createElement('div')\n container.id = 'popwindow_' + Math.ceil(Math.random() * 1000000)\n container.style.pointerEvents='auto'\n\n let parentEl = getBody()\n if (props.appendParent) {\n parentEl = document.getElementById(props.appendParent)\n }\n parentEl.appendChild(container)\n render(vm, container)\n\n nextTick(() => {\n const popWindowInfo = { id: option.id, tag: option.tag, node: container, option }\n popWindowList.push(popWindowInfo)\n })\n return { id: option.id, close }\n}\nconst removePopWindow = (popWindowInfo: PopWindowInfoProps) => {\n if (!popWindowInfo) return\n const { option, node } = popWindowInfo\n option.onClose?.()\n if (option.animate) {\n const popWindowNode = node.querySelector('.popWindow')\n popWindowNode.className = 'popWindow ' + option.animateOutClass\n popWindowNode.addEventListener('animationend', () => {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n })\n } else {\n render(null, node)\n node.remove()\n popWindowList.splice(popWindowList.indexOf(popWindowInfo), 1)\n }\n}\n\n/**\n * 根据ID关闭弹出窗口\n *\n * @param id 弹出窗口的唯一标识符\n */\nexport const closePopWindowById = (id: string) => {\n const popWindowItem = popWindowList.find((item) => item.id === id)\n if (popWindowItem) {\n removePopWindow(popWindowItem)\n }\n}\n\n/**\n * 根据tag关闭弹出窗口\n *\n * @param tag 弹出窗口的tag\n */\nexport const closePopWindowByTag = (tag: string) => {\n const popWindows = popWindowList.filter((item) => item.tag === tag)\n popWindows.forEach((item) => removePopWindow(item))\n}\n\n/**\n * 获取所有弹窗信息\n *\n * @returns {PopWindowInfoProps[]} 所有弹窗的列表\n */\nexport const getAllPopWindows = (): PopWindowInfoProps[] => {\n return popWindowList\n}\n\nexport const initPopWindow = (ctx?: ComponentInternalInstance) => {\n const { appContext } = ctx || getCurrentInstance() || {}\n appContextConst = appContext\n\n return { showPopWindow }\n}\n"],"names":["appContextConst","popWindowList","getBody","document","querySelector","showPopWindow","props","component","componentProps","op","left","top","position","id","Math","ceil","random","animate","animateInClass","animateOutClass","propsFormat","undefined","formatValue","width","height","option","Object","assign","close","closePopWindowById","animateClass","vm","_createVNode","ElScrollbar","default","render","_mergeProps","onClose","appContext","children","length","container","createElement","style","pointerEvents","parentEl","appendParent","getElementById","appendChild","nextTick","popWindowInfo","tag","node","push","removePopWindow","popWindowNode","className","addEventListener","remove","splice","indexOf","popWindowItem","find","item","closePopWindowByTag","popWindows","filter","forEach","getAllPopWindows","initPopWindow","ctx","getCurrentInstance"],"mappings":"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"}
|