{"version":3,"file":"link.vue2.mjs","sources":["../../../../../../packages/components/link/src/link.vue"],"sourcesContent":["<template>\r\n  <ll-tooltip\r\n    v-if=\"props.preview && props.href && !props.disabled\"\r\n    placement=\"top\"\r\n    :max-width=\"600\"\r\n    :overlay-style=\"{ maxWidth: 'none' }\"\r\n    is-white-bg\r\n    :container-style=\"{ display: 'inline-block' }\"\r\n  >\r\n    <template #title>\r\n      <div\r\n        style=\"\r\n          width: 240px;\r\n          height: 135px;\r\n          overflow: hidden;\r\n          background: #f0f2f5;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          position: relative;\r\n        \"\r\n      >\r\n        <a-spin :spinning=\"!isImgLoaded\">\r\n          <img\r\n            :src=\"`https://s0.wp.com/mshots/v1/${encodeURIComponent(\r\n              props.href,\r\n            )}?w=480&h=270`\"\r\n            style=\"width: 100%; height: 100%; object-fit: cover\"\r\n            alt=\"Link Preview\"\r\n            @load=\"handleImgLoad\"\r\n          />\r\n        </a-spin>\r\n      </div>\r\n    </template>\r\n    <a\r\n      :class=\"[\r\n        bem.b(),\r\n        props.disabled ? bem.is('disabled') : '',\r\n        props.colorType ? bem.is(props.colorType) : '',\r\n        props.typeChange ? bem.is('type-change') : '',\r\n        props.underlineStatus === 'fixed'\r\n          ? bem.is('fixed-underline')\r\n          : props.underlineStatus === 'hover'\r\n            ? bem.is('underline')\r\n            : '',\r\n        ,\r\n      ]\"\r\n      :style=\"{ gap: addUnit(props.gap), ...computedLinkColor }\"\r\n      :href=\"computedHref\"\r\n      :target=\"props.target\"\r\n      @click=\"handleClick\"\r\n    >\r\n      <ll-icon\r\n        v-if=\"props.prefixIcon\"\r\n        :icon-name=\"`icon-${props.prefixIcon}`\"\r\n        :size=\"props.iconSize\"\r\n        :class=\"bem.e('prefix-icon')\"\r\n      />\r\n      <span :class=\"bem.e('text')\">\r\n        <slot>{{ props.value }} </slot>\r\n      </span>\r\n      <ll-icon\r\n        v-if=\"props.suffixIcon\"\r\n        :icon-name=\"`icon-${props.suffixIcon}`\"\r\n        :size=\"props.iconSize\"\r\n        :class=\"bem.e('suffix-icon')\"\r\n      />\r\n    </a>\r\n  </ll-tooltip>\r\n  <a\r\n    v-else\r\n    :class=\"[\r\n      bem.b(),\r\n      props.disabled ? bem.is('disabled') : '',\r\n      props.typeChange ? bem.is('type-change') : '',\r\n      props.underlineStatus === 'fixed'\r\n        ? bem.is('fixed-underline')\r\n        : props.underlineStatus === 'hover'\r\n          ? bem.is('underline')\r\n          : '',\r\n    ]\"\r\n    :style=\"{ gap: addUnit(props.gap), ...computedLinkColor }\"\r\n    :href=\"computedHref\"\r\n    :target=\"props.target\"\r\n    @click=\"handleClick\"\r\n  >\r\n    <ll-icon\r\n      v-if=\"props.prefixIcon\"\r\n      :icon-name=\"`icon-${props.prefixIcon}`\"\r\n      :size=\"props.iconSize\"\r\n      :class=\"bem.e('prefix-icon')\"\r\n    />\r\n    <span :class=\"bem.e('text')\">\r\n      <slot>{{ props.value }} </slot>\r\n    </span>\r\n    <ll-icon\r\n      v-if=\"props.suffixIcon\"\r\n      :icon-name=\"`icon-${props.suffixIcon}`\"\r\n      :size=\"props.iconSize\"\r\n      :class=\"bem.e('suffix-icon')\"\r\n    />\r\n  </a>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { addUnit, createNamespace } from '@ll-plus/utils'\r\nimport { computed, ref } from 'vue'\r\nimport { linkColorMap, linkProps } from './link'\r\n\r\ndefineOptions({\r\n  name: 'LlLink',\r\n})\r\n\r\nconst bem = createNamespace('link')\r\n\r\n// 定义组件属性\r\nconst props = defineProps(linkProps)\r\n\r\n// 定义组件事件\r\nconst emits = defineEmits(['click'])\r\n\r\nconst isImgLoaded = ref(false)\r\n\r\n// 计算链接地址\r\nconst computedHref = computed(() => {\r\n  if (props.disabled) return 'javascript:;'\r\n  return props.href || 'javascript:;'\r\n})\r\n\r\nconst computedLinkColor = computed(() => {\r\n  return props.typeChange\r\n    ? {\r\n        '--a-color':\r\n          linkColorMap[props.colorType]?.['link'] ||\r\n          props.linkColor ||\r\n          '#005ce5',\r\n        '--a-link-color':\r\n          linkColorMap[props.colorType]?.['link'] || props.linkColor,\r\n        '--a-hover-color':\r\n          linkColorMap[props.colorType]?.['hover'] || props.hoverColor,\r\n        '--a-active-color':\r\n          linkColorMap[props.colorType]?.['active'] || props.activeColor,\r\n      }\r\n    : {\r\n        '--a-color':\r\n          linkColorMap[props.colorType]?.['link'] ||\r\n          props.linkColor ||\r\n          '#005ce5',\r\n      }\r\n})\r\n\r\n// 点击处理\r\nconst handleClick = (event) => {\r\n  if (props.disabled || !props.href) {\r\n    event.preventDefault()\r\n    return\r\n  }\r\n\r\n  emits('click', event)\r\n}\r\n\r\nconst handleImgLoad = () => {\r\n  isImgLoaded.value = true\r\n}\r\n</script>\r\n"],"names":["_createBlock","_createElementVNode","_createVNode","_normalizeClass","_unref","_renderSlot","_createTextVNode","_toDisplayString","_createElementBlock"],"mappings":"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"}