{"version":3,"file":"loading2.mjs","sources":["../../../../../../packages/components/loading/src/loading.vue"],"sourcesContent":["<template>\r\n  <transition name=\"sg-loading-fade\" @afterLeave=\"onAfterLeave\">\r\n    <div v-if=\"isShow\" :id=\"id\" :class=\"['sg-loading', fix ? 'sg-loading-mask' : '', customClass, ns.is(fullscreen ? 'fullscreen' : '')]\" :style=\"maskStyle\">\r\n      <div :class=\"spinnerClass\">\r\n        <div v-if=\"!$slots.default\" class=\"sg-loading-animation\" :style=\"iconWrapperStyle\">\r\n          <sg-icon :size=\"circleRadius\" class=\"circular\" :color=\"color\">\r\n            <Loading class=\"path\"/>\r\n          </sg-icon>\r\n        </div>\r\n        <p class=\"sg-loading-text\" :style=\"textStyle\">\r\n          <slot>{{ text }}</slot>\r\n        </p>\r\n      </div>\r\n    </div>\r\n  </transition>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, computed, onUnmounted, ref } from 'vue'\r\nimport { loadingProps } from './loading'\r\nimport { useGlobalComponentSettings } from '@sgui-plus/hooks'\r\nimport SgIcon from '@sgui-plus/components/icon'\r\nimport { Loading } from '@sgui-plus/icons-vue'\r\nimport { getLockTargetEl } from './getLockTargetEl'\r\n\r\nexport default defineComponent({\r\n  name: 'SgLoading',\r\n  props: loadingProps,\r\n  inheritAttrs: false,\r\n  components: {\r\n    SgIcon,\r\n    Loading\r\n  },\r\n  setup(props, { emit, expose }) {\r\n    const { ns, zIndex } = useGlobalComponentSettings('loading')\r\n\r\n    let visiable = ref(false)\r\n\r\n    const circleRadiusMap = {\r\n      large: 36,\r\n      middle: 26,\r\n      small: 16\r\n    } as const\r\n\r\n    const maskStyle = computed(() => {\r\n      return {\r\n        backgroundColor: props.backgroundColor\r\n      }\r\n    })\r\n\r\n    const textStyle = computed(() => {\r\n      return {\r\n        color: props.color\r\n      }\r\n    })\r\n\r\n    const iconWrapperStyle = computed(() => {\r\n      return {\r\n        height: circleRadiusMap[props.size] + 'px'\r\n      }\r\n    })\r\n\r\n    const spinnerClass = computed(() => {\r\n      const res = ['sg-loading-spinner']\r\n      if (props.fix) res.push('sg-loading-fix')\r\n      return res\r\n    })\r\n\r\n    const circleRadius = computed(() => {\r\n      return circleRadiusMap[props.size]\r\n    })\r\n\r\n    const { lock, lockTarget } = props\r\n    const hasLock = lock && lockTarget\r\n    hasLock && handleLockScroll(lockTarget, 'hidden')\r\n\r\n    function handleLockScroll (name: string, overflow: string) {\r\n      let target: HTMLElement | null = getLockTargetEl(name)\r\n      target && (target.style.overflow = overflow)\r\n    }\r\n\r\n    function show () {\r\n      visiable.value = true\r\n    }\r\n\r\n    function hide () {\r\n      visiable.value = false\r\n    }\r\n\r\n    function onAfterLeave (event) {\r\n      emit('after-leave', event)\r\n    }\r\n\r\n    const isShow = computed(() => {\r\n      return props.fullscreen ? props.visible : true\r\n    })\r\n\r\n    onUnmounted(() => {\r\n      hasLock && handleLockScroll(lockTarget, 'auto')\r\n    })\r\n\r\n    expose({\r\n      ns,\r\n      zIndex\r\n    })\r\n\r\n    return {\r\n      ns,\r\n      show,\r\n      hide,\r\n      isShow,\r\n      maskStyle,\r\n      textStyle,\r\n      iconWrapperStyle,\r\n      spinnerClass,\r\n      circleRadius,\r\n      onAfterLeave,\r\n      handleLockScroll\r\n    }\r\n  },\r\n})\r\n</script>\r\n"],"names":["_resolveComponent","_openBlock","_createBlock","_Transition","_withCtx","_createElementBlock","_normalizeClass","_normalizeStyle","_createCommentVNode","_createElementVNode"],"mappings":";;;;;;;6BACEA,gBAaa,CAAA,SAAA,CAAA,CAAA;AAbuB,EAAA,OAAAC,SAAA,EAAwB,EAAAC,WAAA,CAAAC,UAAA,EAAA;AAAA,IAAA,IAAA,EAAA,iBAAA;AAYpD,IAAA,YAAA,EAAA,IAAA,CAAA,YAAA;AAAA,GAAA,EAAA;AAXN,IAAA,OAAA,EAAAC,OAAA,CAAA,MAAA;AAAA,MAAA,IAAA,CAAA,MAAA,IAAAH,SAAA,EAA0B,EAAAI,kBAAA,CAAA,KAAA,EAAA;AAAA,QAAG,GAAK,EAAA,CAAA;AAAA,QAAqG,EAAK,EAAA,IAAA,CAAA,EAAA;AAAA,QAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,YAAA,EAAA,IAAA,CAAA,GAAA,GAAA,iBAAA,GAAA,EAAA,EAAA,IAAA,CAAA,WAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,IAAA,CAAA,UAAA,GAAA,YAAA,GAAA,EAAA,CAAA,CAAA,CAAA;QAC1I,KASM,EAAAC,cAAA,CAAA,IAAA,CAAA,SAAA,CAAA;AAAA,OAAA,EAAA;;iBARQD,cAAc,CAAA,IAAA,CAAA,YAAA,CAAA;AAAA,SAAA,EAAA;6CAA8B,EAAAD,kBAAA,CAAA,KAAA,EAAA;AAAA,YAAE,GAAK,EAAA,CAAA;AAAA,YAAA,KAAA,EAAA,sBAAA;YAC7D,KAEU,EAAAE,cAAA,CAAA,IAAA,CAAA,gBAAA,CAAA;AAAA,WAAA,EAAA;wBAF0B,kBAAU,EAAA;AAAA,cAAE,MAAK,IAAE,CAAA,YAAA;AAAA,cAAA,KAAA,EAAA,UAAA;;;;;;;;WAMrD,EAAA,CAAA,CAAA,IAFDC,mBAAM,MAAiB,EAAA,IAAA,CAAA;AAAA,UAAAC,kBAAA,CAAO,GAAE,EAAA;AAAA,YAAA,KAAA,EAAA,iBAAA;YACjC,KAAuB,EAAAF,cAAA,CAAA,IAAA,CAAA,SAAA,CAAA;AAAA,WAAA,EAAA;;;;;;;;;;;;;;;"}