{"version":3,"file":"dep-844d8e8e.mjs","sources":["../../src/link/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n  name: 'TlbsLink',\n  \n})\n</script>\n<template>\n  <t-link\n    theme=\"primary\"\n    class=\"tlbs-link\"\n    :href=\"href\"\n    :target=\"target\"\n    @click=\"onClick\"\n  >\n    {{ text }}\n  </t-link>\n</template>\n\n<script setup lang=\"ts\" name=\"TlbsLink\">\nimport { navigateTo } from '@tlbs/galaxy-sdk';\n\ninterface Props {\n  link: string,\n  text: string;\n  target?: string;\n  params?: LooseObject[] | null;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  link: '',\n  text: '',\n  target: '_self',\n  params: null,\n});\nconst isAbsolutePath = ref(false);\nconst path = ref('');\nconst paramObj = ref<LooseObject | undefined>({});\nconst href = ref('');\nwatchEffect(() => {\n  const url = ref(props.link);\n  url.value = url.value.trim();\n\n  // URL 构造函数不支持 '//xxx.com' 的格式,此处做兼容\n  if (url.value.indexOf('//') === 0) {\n    url.value = location.protocol + url.value;\n  }\n\n  // \"proto:\" 或 \"//\" 起头的是绝对路径\n  isAbsolutePath.value = /^(?:[a-z]+:)/i.test(url.value);\n\n\n  let urlObj: URL;\n  let baseUrl = '';\n  if (!isAbsolutePath.value) {\n    // 相对地址为了能够被URL对象识别，需要增加协议前缀\n    baseUrl = location.origin && location.origin !== 'null'\n      ? location.origin\n      : 'https://';\n  }\n  try {\n    urlObj = new URL(url.value, baseUrl || undefined);\n    // 添加新参数\n    props.params?.forEach((item) => {\n      urlObj.searchParams.append(item.key, item.value);\n    });\n\n    href.value = urlObj.href;\n    path.value = urlObj.pathname;\n\n    for (const [key, value] of urlObj.searchParams) {\n      if (!paramObj.value) {\n        paramObj.value = {};\n      }\n      paramObj.value[key] = value;\n    }\n\n    // 相对地址去掉前缀域名\n    if (!isAbsolutePath.value) {\n      href.value = urlObj.pathname + urlObj.search + urlObj.hash;\n      href.value = href.value.slice(href.value.indexOf('?') + 1);\n    }\n  } catch (e) {\n    // 非法 url时， 直接透传，不再处理\n    isAbsolutePath.value = true;\n    href.value = url.value;\n    path.value = '';\n    paramObj.value = props.params?.reduce((p, x) => {\n      p[x.key] = x.value;\n      return p;\n    }, {});\n  }\n});\n\nconst onClick = (e: Event) => {\n  // 非绝对路径时，按照页面ID来判断跳转\n  if (!isAbsolutePath.value) {\n    e.preventDefault();\n    navigateTo({\n      pageId: path.value, // 页面 Id\n      params: paramObj.value,\n      target: props.target,\n    });\n  }\n};\n\n</script>\n"],"names":["__default__","defineComponent","name","_defineComponent","_objectSpread","props","link","type","String","required","default","text","target","params","Array","setup","__props","isAbsolutePath","ref","value","baseUrl","location","origin","urlObj","URL","url","forEach","item","searchParams","append","key","href","path","pathname","paramObj","search","hash","slice","indexOf","e","reduce","p","x","onClick","preventDefault","navigateTo","pageId","_ctx","_cache","_component_t_link","_resolveComponent","_openBlock","_createBlock","theme","class","_withCtx","_createTextVNode","_toDisplayString","_"],"mappings":"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"}