UNPKG

tdesign-vue-next

Version:
1 lines 6.16 kB
{"version":3,"file":"gradient.mjs","sources":["../../../../common/js/loading/circle-adapter.ts","../../../../components/loading/icon/gradient.tsx"],"sourcesContent":["import setStyle from '../utils/setStyle';\nimport { getIEVersion } from '../utils/helper';\n\nexport default function circleAdapter(circleElem: HTMLElement) {\n let basicStyle = {};\n\n if (!circleElem || typeof window === 'undefined') {\n return;\n }\n\n const { color, fontSize } = window?.getComputedStyle?.(circleElem);\n\n // to fix the browser compat of foreignObject in Safari,\n // https://bugs.webkit.org/show_bug.cgi?id=23113\n const ua = window?.navigator?.userAgent;\n const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iOS 下的微信和企业微信\n const isIosWechat = /(?=.*iPhone)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n // 判断是否为 iPadOS 下的微信和企业微信\n const isIpadWechat = /(?=.*iPad)[?=.*MicroMessenger]/.test(ua) && !/Chrome/.test(ua);\n\n // 注意:chrome上调试mobile/ipad端时,loading出现异常,属于正常现象,不需要修改。\n if (isSafari || isIosWechat || isIpadWechat) {\n basicStyle = {\n transformOrigin: '0px 0px',\n transform: `scale(${parseInt(fontSize, 10) / 12})`,\n };\n }\n // 添加:判断是否为IE浏览器\n if (color && getIEVersion() > 11) {\n const matched = color.match(/[\\d.]+/g);\n const endColor = matched ? `rgba(${matched[0]}, ${matched[1]}, ${matched[2]}, 0)` : '';\n setStyle(circleElem, {\n ...basicStyle,\n background: `conic-gradient(from 90deg at 50% 50%,${endColor} 0deg, ${color} 360deg)`,\n });\n } else {\n setStyle(circleElem, {\n ...basicStyle,\n background: '',\n });\n }\n}\n","import { defineComponent, onMounted, nextTick, ref } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport circleAdapter from '@tdesign/common-js/loading/circle-adapter';\n\nexport default defineComponent({\n name: 'TLoadingGradient',\n setup() {\n const classPrefix = usePrefixClass();\n const circleRef = ref<HTMLElement | null>();\n\n onMounted(() => {\n nextTick(() => {\n circleAdapter(circleRef.value);\n });\n });\n\n return () => {\n const name = `${classPrefix.value}-loading__gradient`;\n const classes = [name, `${classPrefix.value}-icon-loading`];\n\n return (\n <svg\n class={classes}\n viewBox=\"0 0 12 12\"\n version=\"1.1\"\n width=\"1em\"\n height=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <foreignObject x=\"0\" y=\"0\" width=\"12\" height=\"12\">\n <div class={`${name}-conic`} ref={circleRef} />\n </foreignObject>\n </svg>\n );\n };\n },\n});\n"],"names":["circleAdapter","circleElem","_window","_window$getComputedSt2","_window2","basicStyle","window","_window$getComputedSt","getComputedStyle","call","color","fontSize","ua","navigator","userAgent","isSafari","test","isIosWechat","isIpadWechat","transformOrigin","transform","concat","parseInt","getIEVersion","matched","match","endColor","setStyle","_objectSpread","background","defineComponent","name","setup","classPrefix","usePrefixClass","circleRef","ref","onMounted","nextTick","value","classes","_createVNode"],"mappings":"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"}