{"version":3,"file":"message.mjs","sources":["../../src/message/message.tsx"],"sourcesContent":["import { h, ref, computed, watch, defineComponent, toRefs, reactive, nextTick, onMounted, Transition } from 'vue';\nimport { CheckCircleFilledIcon, CloseIcon, InfoCircleFilledIcon } from 'tdesign-icons-vue-next';\nimport { isString, isObject } from 'lodash-es';\n\nimport Link from '../link';\nimport props from './props';\nimport { MessageMarquee, TdMessageProps } from './type';\nimport config from '../config';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\n\nconst { prefix } = config;\nconst iconDefault = {\n  info: h(InfoCircleFilledIcon),\n  success: h(CheckCircleFilledIcon),\n  warning: h(InfoCircleFilledIcon),\n  error: h(InfoCircleFilledIcon),\n};\nconst closeBtnDefault = h(CloseIcon);\n\nexport default defineComponent({\n  name: `${prefix}-message`,\n  props,\n  setup(props, context) {\n    const messageClass = usePrefixClass('message');\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n\n    // 初始化动画相关数据\n    const state = reactive({\n      duration: 0,\n      offset: 0,\n      listWidth: 0,\n      itemWidth: 0,\n      scroll: {\n        marquee: false,\n        speed: 50,\n        loop: -1, // 值为 -1 表示循环播放，值为 0 表示不循环播放\n        delay: 300,\n      },\n    });\n\n    const { visible, modelValue } = toRefs(props);\n    const [currentVisible, setVisible] = useVModel(visible, modelValue, props.defaultVisible);\n\n    const rootClasses = computed(() => ({\n      [`${messageClass.value}`]: true,\n      [`${messageClass.value}--${props.theme}`]: true,\n      [`${messageClass.value}-align--${props.align}`]: !!props.align,\n    }));\n\n    const textWrapClasses = computed(() => ({\n      [`${messageClass.value}__text-wrap`]: true,\n      [`${messageClass.value}__text-nowrap`]: props.marquee,\n    }));\n\n    const changeNumToStr = (arr: TdMessageProps['offset'] = []) => {\n      return arr.map(function (item) {\n        return typeof item === 'number' ? `${item}px` : item;\n      });\n    };\n\n    const getMessageStylesOffset = (offset: TdMessageProps['offset']) => {\n      const arr = changeNumToStr(offset);\n      return {\n        top: arr[0],\n        right: arr[1],\n        left: arr[1],\n      };\n    };\n\n    const rootStyles = computed(() => {\n      const { offset } = props;\n      const offsetStyle: any = offset ? getMessageStylesOffset(offset) : [];\n      return {\n        zIndex: props.zIndex,\n        ...offsetStyle,\n      };\n    });\n\n    // link\n    const linkContent = computed(() => {\n      if (typeof props.link === 'function' || context.slots?.link) {\n        return renderTNodeJSX('link');\n      }\n\n      if (isObject(props.link) || isString(props.link)) {\n        const _link = isObject(props.link) ? { ...props.link } : { content: props.link };\n        return h(Link, { theme: 'primary', ..._link });\n      }\n      return null;\n    });\n\n    // 动画\n    const animateStyle = computed(() => ({\n      transform: state.offset ? `translateX(${state.offset}px)` : '',\n      transitionDuration: `${state.duration}s`,\n      transitionTimingFunction: 'linear',\n    }));\n\n    const textWrapDOM = ref();\n    const textDOM = ref();\n\n    const handleScrolling = () => {\n      if (!props?.marquee || (isObject(props?.marquee) && (props?.marquee as MessageMarquee))?.loop === 0) {\n        return;\n      }\n\n      const { loop, speed, delay } = state.scroll;\n\n      state.scroll = {\n        marquee: true,\n        // 负数统一当作循环播放\n        loop: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.loop == null\n            ? loop\n            : (props.marquee as MessageMarquee)?.loop,\n          -1,\n        ),\n        // 速度必须为正数\n        speed: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.speed == null\n            ? speed\n            : (props.marquee as MessageMarquee)?.speed,\n          1,\n        ),\n        // 延迟不可为负数\n        delay: Math.max(\n          props.marquee === true || (props.marquee as MessageMarquee)?.delay == null\n            ? delay\n            : (props.marquee as MessageMarquee)?.delay,\n          0,\n        ),\n      };\n      state.offset = 0;\n\n      // 设置动画\n      setTimeout(() => {\n        const textWrapDOMWidth = textWrapDOM.value?.getBoundingClientRect().width;\n        const textDOMWidth = textDOM.value?.getBoundingClientRect().width;\n        state.offset = -textDOMWidth;\n        state.duration = textDOMWidth / state.scroll.speed;\n        state.listWidth = textWrapDOMWidth;\n        state.itemWidth = textDOMWidth;\n      }, state.scroll.delay);\n    };\n\n    // 动画结束后，初始化动画\n    const handleTransitionend = () => {\n      resetTransition();\n\n      if (state.scroll.loop === -1) {\n        return;\n      }\n\n      state.scroll.loop = --state.scroll.loop;\n\n      if (state.scroll.loop === 0) {\n        state.scroll.marquee = false;\n      }\n    };\n\n    const resetTransition = () => {\n      state.duration = 0;\n      state.offset = state.listWidth;\n\n      setTimeout(() => {\n        state.offset = -state.itemWidth;\n        state.duration = (state.itemWidth + state.listWidth) / state.scroll.speed;\n      }, 0);\n    };\n\n    const onLinkClick = (e: MouseEvent) => {\n      props.onLinkClick?.({ e });\n    };\n\n    const onCloseBtnClick = (e: MouseEvent) => {\n      props.onCloseBtnClick?.({ e });\n      setVisible(false);\n    };\n\n    const handleDuration = () => {\n      if (props.duration > 0) {\n        setTimeout(() => {\n          props.onDurationEnd?.();\n          setVisible(false);\n        }, props.duration);\n      }\n    };\n\n    onMounted(() => {\n      nextTick(() => {\n        if (currentVisible.value) {\n          handleScrolling();\n        }\n      });\n    });\n\n    watch(\n      () => currentVisible.value,\n      (val) => {\n        if (val === false) return;\n        setVisible(true);\n        handleDuration();\n        nextTick(handleScrolling);\n      },\n    );\n\n    return () => {\n      const prefixIconContent = renderTNodeJSX('icon', { defaultNode: iconDefault?.[props.theme || 'info'] });\n      const computedContent = renderContent('default', 'content');\n      const closeBtnContent = renderTNodeJSX('closeBtn', { defaultNode: closeBtnDefault });\n\n      return (\n        <Transition name=\"message\">\n          {currentVisible.value && (\n            <div ref=\"root\" class={rootClasses.value} style={rootStyles.value}>\n              {prefixIconContent && <div class={`${messageClass.value}__icon--left`}>{prefixIconContent}</div>}\n              <div ref={textWrapDOM} class={textWrapClasses.value}>\n                <div\n                  ref={textDOM}\n                  class={`${messageClass.value}__text`}\n                  style={state.scroll.marquee ? animateStyle.value : ''}\n                  onTransitionend={handleTransitionend}\n                >\n                  {computedContent}\n                </div>\n              </div>\n              {linkContent.value && (\n                <div class={`${messageClass.value}__link`} onClick={onLinkClick}>\n                  {linkContent.value}\n                </div>\n              )}\n              {closeBtnContent && (\n                <div\n                  class={[`${messageClass.value}__close-wrap`, `${messageClass.value}__icon--right`]}\n                  onClick={onCloseBtnClick}\n                >\n                  {closeBtnContent}\n                </div>\n              )}\n            </div>\n          )}\n        </Transition>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","iconDefault","info","h","InfoCircleFilledIcon","success","CheckCircleFilledIcon","warning","error","closeBtnDefault","CloseIcon","defineComponent","name","props","setup","context","messageClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","state","reactive","duration","offset","listWidth","itemWidth","scroll","marquee","speed","loop","delay","_toRefs","toRefs","visible","modelValue","_useVModel","useVModel","defaultVisible","_useVModel2","_slicedToArray","currentVisible","setVisible","rootClasses","computed","_defineProperty","concat","value","theme","align","textWrapClasses","changeNumToStr","arr","arguments","length","undefined","map","item","getMessageStylesOffset","top","right","left","rootStyles","offsetStyle","_objectSpread","zIndex","linkContent","_context$slots","link","slots","isObject","isString","_link","content","Link","animateStyle","transform","transitionDuration","transitionTimingFunction","textWrapDOM","ref","textDOM","handleScrolling","_ref3","_props2$marquee","_props2$marquee2","_props2$marquee3","_props2$marquee4","_props2$marquee5","_props2$marquee6","_state$scroll","Math","max","setTimeout","_textWrapDOM$value","_textDOM$value","textWrapDOMWidth","getBoundingClientRect","width","textDOMWidth","handleTransitionend","resetTransition","onLinkClick","e","_props2$onLinkClick","onCloseBtnClick","_props2$onCloseBtnCli","handleDuration","_props2$onDurationEnd","onDurationEnd","onMounted","nextTick","watch","val","prefixIconContent","defaultNode","computedContent","closeBtnContent","_createVNode","Transition","default","_default"],"mappings":"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"}