UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

1 lines 6.38 kB
{"version":3,"file":"index.mjs","sources":["../../../../packages/methods/loading/index.ts"],"sourcesContent":["import { createApp } from \"vue\";\r\nimport { UiLoading, UiHTMLElement, type UiTypes } from \"@various/constants\";\r\nimport { node } from \"@various/utils\";\r\n\r\nexport type UiLoadingShowOption = {\r\n icon?: string;\r\n unit?: UiTypes.styleUnit;\r\n delay?: number;\r\n message?: string;\r\n};\r\n\r\nexport type UiLoadingHandles = {\r\n timer?: NodeJS.Timeout;\r\n delay: boolean;\r\n spacing: { x: string; y: string };\r\n overflow: string;\r\n open: (config?: UiLoadingShowOption) => void;\r\n close: (config?: { delay?: number }) => void;\r\n};\r\n\r\n//* Loading Show 函数\r\nconst show = (config?: UiLoadingShowOption) => {\r\n //* 数据初始化\r\n const body = document.body as UiHTMLElement;\r\n //* 判断body是否已挂载Loading组件\r\n if (body.instance) {\r\n //* 属性变更\r\n if (config?.icon) body.instance.$.props.icon = config.icon;\r\n if (config?.message) body.instance.$.props.message = config.message;\r\n } else {\r\n //* 组件挂载\r\n //* 创建新的Vue实例\r\n const app = createApp(UiLoading, Object.assign({ visible: false, mode: \"fixed\" }, config));\r\n const instance = app.mount(document.createElement(\"div\"));\r\n\r\n //* 检测是否需要添加Position\r\n if (body.style.position == \"\") body.classList.add(\"ui-relative\");\r\n\r\n //* 缓存Loading并将Loading插入body中\r\n body.app = app;\r\n body.instance = instance;\r\n body.appendChild(instance.$el);\r\n }\r\n\r\n //* 更新Loading状态\r\n if (!body.instance?.$.props.visible) {\r\n //* 数据缓存\r\n $loading.spacing = { x: document.body.style.paddingRight, y: document.body.style.paddingBottom };\r\n $loading.overflow = document.body.style.overflow;\r\n //* 隐藏滚动条\r\n node.scrollbarHidden({ unit: config?.unit });\r\n }\r\n\r\n //* 显示Loading\r\n body.instance.$.props.visible = true;\r\n};\r\n\r\n//* Loading Hidden 函数\r\nconst hidden = () => {\r\n //* 获取body\r\n const body = document.body as UiHTMLElement;\r\n //* 还原body样式\r\n document.body.style.overflow = $loading.overflow;\r\n document.body.style.paddingRight = $loading.spacing.x;\r\n document.body.style.paddingBottom = $loading.spacing.y;\r\n //* 隐藏Loading\r\n if (body.instance) {\r\n body.instance.$.props.visible = false;\r\n }\r\n};\r\n\r\nconst $loading: UiLoadingHandles = {\r\n delay: false, //* 是否延迟关闭\r\n timer: undefined, //* 定时器\r\n spacing: { x: \"\", y: \"\" }, //* 内间距属性\r\n overflow: \"\", //* overflow属性\r\n\r\n //* Loading 激活函数\r\n open: function (config) {\r\n //* 清除上一个延时器\r\n this.timer && clearTimeout(this.timer);\r\n //* 判断是否需要添加延时器\r\n if (!config?.delay) show(config);\r\n else {\r\n this.timer = setTimeout(() => (show(config), (this.delay = true)), config.delay);\r\n }\r\n },\r\n\r\n //* Loading 关闭函数\r\n close: function (config) {\r\n //* 清除延时器\r\n this.timer && clearTimeout(this.timer);\r\n //* 检测是否需要延迟关闭\r\n if (!this.delay) return hidden();\r\n else {\r\n this.delay = false;\r\n this.timer = setTimeout(() => hidden(), config?.delay || 200);\r\n }\r\n },\r\n};\r\n\r\nexport { $loading };\r\nexport default $loading;\r\n"],"names":["node.scrollbarHidden"],"mappings":";;;;;;AAqBA,MAAM,IAAA,GAAO,CAAC,MAAiC,KAAA;AArB/C,EAAA,IAAA,EAAA,CAAA;AAuBI,EAAA,MAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AAEtB,EAAA,IAAI,KAAK,QAAU,EAAA;AAEf,IAAA,IAAI,iCAAQ,IAAM,EAAA,IAAA,CAAK,SAAS,CAAE,CAAA,KAAA,CAAM,OAAO,MAAO,CAAA,IAAA,CAAA;AACtD,IAAA,IAAI,iCAAQ,OAAS,EAAA,IAAA,CAAK,SAAS,CAAE,CAAA,KAAA,CAAM,UAAU,MAAO,CAAA,OAAA,CAAA;AAAA,GACzD,MAAA;AAGH,IAAA,MAAM,GAAM,GAAA,SAAA,CAAU,SAAW,EAAA,MAAA,CAAO,MAAO,CAAA,EAAE,OAAS,EAAA,KAAA,EAAO,IAAM,EAAA,OAAA,EAAW,EAAA,MAAM,CAAC,CAAA,CAAA;AACzF,IAAA,MAAM,WAAW,GAAI,CAAA,KAAA,CAAM,QAAS,CAAA,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAGxD,IAAA,IAAI,KAAK,KAAM,CAAA,QAAA,IAAY,IAAS,IAAA,CAAA,SAAA,CAAU,IAAI,aAAa,CAAA,CAAA;AAG/D,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAA;AACX,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAChB,IAAK,IAAA,CAAA,WAAA,CAAY,SAAS,GAAG,CAAA,CAAA;AAAA,GACjC;AAGA,EAAA,IAAI,GAAC,EAAK,GAAA,IAAA,CAAA,QAAA,KAAL,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAE,MAAM,OAAS,CAAA,EAAA;AAEjC,IAAS,QAAA,CAAA,OAAA,GAAU,EAAE,CAAA,EAAG,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA,EAAc,CAAG,EAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,aAAc,EAAA,CAAA;AAC/F,IAAS,QAAA,CAAA,QAAA,GAAW,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAA;AAExC,IAAAA,eAAqB,CAAA,EAAE,IAAM,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,GAC/C;AAGA,EAAK,IAAA,CAAA,QAAA,CAAS,CAAE,CAAA,KAAA,CAAM,OAAU,GAAA,IAAA,CAAA;AACpC,CAAA,CAAA;AAGA,MAAM,SAAS,MAAM;AAEjB,EAAA,MAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AAEtB,EAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,GAAW,QAAS,CAAA,QAAA,CAAA;AACxC,EAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,YAAe,GAAA,QAAA,CAAS,OAAQ,CAAA,CAAA,CAAA;AACpD,EAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,aAAgB,GAAA,QAAA,CAAS,OAAQ,CAAA,CAAA,CAAA;AAErD,EAAA,IAAI,KAAK,QAAU,EAAA;AACf,IAAK,IAAA,CAAA,QAAA,CAAS,CAAE,CAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAA;AAAA,GACpC;AACJ,CAAA,CAAA;AAEA,MAAM,QAA6B,GAAA;AAAA,EAC/B,KAAO,EAAA,KAAA;AAAA;AAAA,EACP,KAAO,EAAA,KAAA,CAAA;AAAA;AAAA,EACP,OAAS,EAAA,EAAE,CAAG,EAAA,EAAA,EAAI,GAAG,EAAG,EAAA;AAAA;AAAA,EACxB,QAAU,EAAA,EAAA;AAAA;AAAA;AAAA,EAGV,IAAA,EAAM,SAAU,MAAQ,EAAA;AAEpB,IAAK,IAAA,CAAA,KAAA,IAAS,YAAa,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAErC,IAAA,IAAI,EAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,KAAO,CAAA,EAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,SAC1B;AACD,MAAK,IAAA,CAAA,KAAA,GAAQ,UAAW,CAAA,OAAO,IAAK,CAAA,MAAM,GAAI,IAAK,CAAA,KAAA,GAAQ,IAAQ,CAAA,EAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,KACnF;AAAA,GACJ;AAAA;AAAA,EAGA,KAAA,EAAO,SAAU,MAAQ,EAAA;AAErB,IAAK,IAAA,CAAA,KAAA,IAAS,YAAa,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAErC,IAAA,IAAI,CAAC,IAAA,CAAK,KAAO,EAAA,OAAO,MAAO,EAAA,CAAA;AAAA,SAC1B;AACD,MAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AACb,MAAA,IAAA,CAAK,QAAQ,UAAW,CAAA,MAAM,QAAU,EAAA,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,UAAS,GAAG,CAAA,CAAA;AAAA,KAChE;AAAA,GACJ;AACJ;;;;"}