You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
13 KiB

{"ast":null,"code":"import { ref, reactive, defineComponent, h, Transition, withCtx, withDirectives, createVNode, vShow, createApp, toRefs } from 'vue';\nimport '../../../utils/index.mjs';\nimport '../../config-provider/index.mjs';\nimport { removeClass } from '../../../utils/dom/style.mjs';\nimport { useGlobalComponentSettings } from '../../config-provider/src/hooks/use-global-config.mjs';\nfunction createLoadingComponent(options) {\n let afterLeaveTimer;\n const afterLeaveFlag = ref(false);\n const data = reactive({\n ...options,\n originalPosition: \"\",\n originalOverflow: \"\",\n visible: false\n });\n function setText(text) {\n data.text = text;\n }\n function destroySelf() {\n const target = data.parent;\n const ns = vm.ns;\n if (!target.vLoadingAddClassList) {\n let loadingNumber = target.getAttribute(\"loading-number\");\n loadingNumber = Number.parseInt(loadingNumber) - 1;\n if (!loadingNumber) {\n removeClass(target, ns.bm(\"parent\", \"relative\"));\n target.removeAttribute(\"loading-number\");\n } else {\n target.setAttribute(\"loading-number\", loadingNumber.toString());\n }\n removeClass(target, ns.bm(\"parent\", \"hidden\"));\n }\n removeElLoadingChild();\n loadingInstance.unmount();\n }\n function removeElLoadingChild() {\n var _a, _b;\n (_b = (_a = vm.$el) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.removeChild(vm.$el);\n }\n function close() {\n var _a;\n if (options.beforeClose && !options.beforeClose()) return;\n afterLeaveFlag.value = true;\n clearTimeout(afterLeaveTimer);\n afterLeaveTimer = setTimeout(handleAfterLeave, 400);\n data.visible = false;\n (_a = options.closed) == null ? void 0 : _a.call(options);\n }\n function handleAfterLeave() {\n if (!afterLeaveFlag.value) return;\n const target = data.parent;\n afterLeaveFlag.value = false;\n target.vLoadingAddClassList = void 0;\n destroySelf();\n }\n const elLoadingComponent = defineComponent({\n name: \"ElLoading\",\n setup(_, {\n expose\n }) {\n const {\n ns,\n zIndex\n } = useGlobalComponentSettings(\"loading\");\n expose({\n ns,\n zIndex\n });\n return () => {\n const svg = data.spinner || data.svg;\n const spinner = h(\"svg\", {\n class: \"circular\",\n viewBox: data.svgViewBox ? data.svgViewBox : \"0 0 50 50\",\n ...(svg ? {\n innerHTML: svg\n } : {})\n }, [h(\"circle\", {\n class: \"path\",\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\"\n })]);\n const spinnerText = data.text ? h(\"p\", {\n class: ns.b(\"text\")\n }, [data.text]) : void 0;\n return h(Transition, {\n name: ns.b(\"fade\"),\n onAfterLeave: handleAfterLeave\n }, {\n default: withCtx(() => [withDirectives(createVNode(\"div\", {\n style: {\n backgroundColor: data.background || \"\"\n },\n class: [ns.b(\"mask\"), data.customClass, data.fullscreen ? \"is-fullscreen\" : \"\"]\n }, [h(\"div\", {\n class: ns.b(\"spinner\")\n }, [spinner, spinnerText])]), [[vShow, data.visible]])])\n });\n };\n }\n });\n const loadingInstance = createApp(elLoadingComponent);\n const vm = loadingInstance.mount(document.createElement(\"div\"));\n return {\n ...toRefs(data),\n setText,\n removeElLoadingChild,\n close,\n handleAfterLeave,\n vm,\n get $el() {\n return vm.$el;\n }\n };\n}\nexport { createLoadingComponent };","map":{"version":3,"names":["createLoadingComponent","options","afterLeaveTimer","afterLeaveFlag","ref","data","reactive","originalPosition","originalOverflow","visible","setText","text","destroySelf","target","parent","ns","vm","vLoadingAddClassList","loadingNumber","getAttribute","Number","parseInt","removeClass","bm","removeAttribute","setAttribute","toString","removeElLoadingChild","loadingInstance","unmount","_a","_b","$el","parentNode","removeChild","close","beforeClose","value","clearTimeout","setTimeout","handleAfterLeave","closed","call","elLoadingComponent","defineComponent","name","setup","_","expose","zIndex","useGlobalComponentSettings","svg","spinner","h","class","viewBox","svgViewBox","innerHTML","cx","cy","r","fill","spinnerText","b","Transition","onAfterLeave","default","withCtx","withDirectives","createVNode","style","backgroundColor","background","customClass","fullscreen","vShow","createApp","mount","document","createElement","toRefs"],"sources":["../../../../../../packages/components/loading/src/loading.ts"],"sourcesContent":["import {\n Transition,\n createApp,\n createVNode,\n defineComponent,\n h,\n reactive,\n ref,\n toRefs,\n vShow,\n withCtx,\n withDirectives,\n} from 'vue'\nimport { removeClass } from '@element-plus/utils'\nimport { useGlobalComponentSettings } from '@element-plus/components/config-provider'\n\nimport type { UseNamespaceReturn } from '@element-plus/hooks'\nimport type { LoadingOptionsResolved } from './types'\n\nexport function createLoadingComponent(options: LoadingOptionsResolved) {\n let afterLeaveTimer: ReturnType<typeof setTimeout>\n // IMPORTANT NOTE: this is only a hacking way to expose the injections on an\n // instance, DO NOT FOLLOW this pattern in your own code.\n const afterLeaveFlag = ref(false)\n const data = reactive({\n ...options,\n originalPosition: '',\n originalOverflow: '',\n visible: false,\n })\n\n function setText(text: string) {\n data.text = text\n }\n\n function destroySelf() {\n const target = data.parent\n const ns = (vm as any).ns as UseNamespaceReturn\n if (!target.vLoadingAddClassList) {\n let loadingNumber: number | string | null =\n target.getAttribute('loading-number')\n loadingNumber = Number.parseInt(loadingNumber as any) - 1\n if (!loadingNumber) {\n removeClass(target, ns.bm('parent', 'relative'))\n target.removeAttribute('loading-number')\n } else {\n target.setAttribute('loading-number', loadingNumber.toString())\n }\n removeClass(target, ns.bm('parent', 'hidden'))\n }\n removeElLoadingChild()\n loadingInstance.unmount()\n }\n function removeElLoadingChild(): void {\n vm.$el?.parentNode?.removeChild(vm.$el)\n }\n function close() {\n if (options.beforeClose && !options.beforeClose()) return\n\n afterLeaveFlag.value = true\n clearTimeout(afterLeaveTimer)\n\n afterLeaveTimer = setTimeout(handleAfterLeave, 400)\n data.visible = false\n\n options.closed?.()\n }\n\n function handleAfterLeave() {\n if (!afterLeaveFlag.value) return\n const target = data.parent\n afterLeaveFlag.value = false\n target.vLoadingAddClassList = undefined\n destroySelf()\n }\n\n const elLoadingComponent = defineComponent({\n name: 'ElLoading',\n setup(_, { expose }) {\n const { ns, zIndex } = useGlobalComponentSettings('loading')\n\n expose({\n ns,\n zIndex,\n })\n\n return () => {\n const svg = data.spinner || data.svg\n const spinner = h(\n 'svg',\n {\n class: 'circular',\n viewBox: data.svgViewBox ? data.svgViewBox : '0 0 50 50',\n ...(svg ? { innerHTML: svg } : {}),\n },\n [\n h('circle', {\n class: 'path',\n cx: '25',\n cy: '25',\n r: '20',\n fill: 'none',\n }),\n ]\n )\n\n const spinnerText = data.text\n ? h('p', { class: ns.b('text') }, [data.text])\n : undefined\n\n return h(\n Transition,\n {\n name: ns.b('fade'),\n onAfterLeave: handleAfterLeave,\n },\n {\n default: withCtx(() => [\n withDirectives(\n createVNode(\n 'div',\n {\n style: {\n backgroundColor: data.background || '',\n },\n class: [\n ns.b('mask'),\n data.customClass,\n data.fullscreen ? 'is-fullscreen' : '',\n ],\n },\n [\n h(\n 'div',\n {\n class: ns.b('spinner'),\n },\n [spinner, spinnerText]\n ),\n ]\n ),\n [[vShow, data.visible]]\n ),\n ]),\n }\n )\n }\n },\n })\n\n const loadingInstance = createApp(elLoadingComponent)\n const vm = loadingInstance.mount(document.createElement('div'))\n\n return {\n ...toRefs(data),\n setText,\n removeElLoadingChild,\n close,\n handleAfterLeave,\n vm,\n get $el(): HTMLElement {\n return vm.$el\n },\n }\n}\n\nexport type LoadingInstance = ReturnType<typeof createLoadingComponent>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}