tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 19.4 kB
Source Map (JSON)
{"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 isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\n\nimport Link from '../link';\nimport props from './props';\nimport { MessageMarquee, TdMessageProps } from './type';\nimport config from '../config';\nimport { useVModel } from '../shared';\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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"}