{"version":3,"file":"method.mjs","sources":["../../../../../../packages/components/loading/src/method.ts"],"sourcesContent":["// @ts-nocheck\nimport { createVNode, reactive, ref, render, unref } from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { debugWarn, isClient, isElement, isString } from '@vuesax-alpha/utils'\nimport { LOADING_RECT, SCALE_PARENT } from '@vuesax-alpha/constants'\nimport LoadingConstructor from './loading.vue'\nimport type { LoadingFn, LoadingParams, LoadingParamsRef } from './loading'\n\nexport const loading: LoadingFn = (options = {}) => {\n  if (!options || !isClient)\n    return {\n      setPercent: () => undefined,\n      setProgress: () => undefined,\n      close: () => undefined,\n      setText: () => undefined,\n    }\n\n  const getOption = (key: keyof LoadingParams) => {\n    const data = options?.[key] || key\n    if (unref(data)) return ref(data)\n    return data\n  }\n\n  const optionsRef: LoadingParamsRef = {}\n\n  Object.keys(options).forEach((e) => {\n    optionsRef[e] = getOption(e)\n  })\n\n  let appendTo: HTMLElement | null = document.body\n  if (isElement(unrefElement(optionsRef.target))) {\n    appendTo = unrefElement(optionsRef.target)\n  } else if (isString(unref(optionsRef.target))) {\n    appendTo = document.querySelector(unref(optionsRef.target))\n  }\n\n  if (!isElement(appendTo)) {\n    debugWarn(\n      'VsLoading',\n      'the appendTo option is not an HTMLElement. Falling back to document.body.'\n    )\n    appendTo = document.body\n    optionsRef.target!.value = undefined\n  }\n\n  if (appendTo.clientHeight < LOADING_RECT.height) {\n    const eightyPercentParentHeight = appendTo.clientHeight * SCALE_PARENT\n    const loadingScale = eightyPercentParentHeight / LOADING_RECT.height\n    optionsRef.scale = ref(loadingScale)\n  }\n\n  const vm = createVNode(LoadingConstructor, reactive(optionsRef))\n  const container = document.createElement('div')\n  render(vm, container)\n\n  appendTo!.appendChild(container.firstChild!)\n\n  const close = () => {\n    ;(vm.component!.exposed as { close: () => void }).close()\n  }\n\n  const setText = (val: string) => {\n    optionsRef.text!.value = val\n  }\n  const setProgress = (val: number) => {\n    optionsRef.progress!.value = val\n  }\n  const setPercent = (val: number) => {\n    optionsRef.percent!.value = val\n  }\n\n  return {\n    close,\n    setText,\n    setProgress,\n    setPercent,\n  }\n}\n\nexport default loading\n"],"names":[],"mappings":"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"}