UNPKG

tdesign-vue-next

Version:
1 lines 40 kB
{"version":3,"file":"guide.mjs","sources":["../../../components/guide/guide.tsx"],"sourcesContent":["import { defineComponent, computed, nextTick, onMounted, ref, toRefs, watch, h, Teleport } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport props from './props';\nimport { GuideCrossProps } from './types';\nimport { TdGuideProps, GuideStep } from './type';\nimport { scrollToParentVisibleArea, getRelativePosition, getTargetElm, scrollToElm } from './utils';\nimport setStyle from '@tdesign/common-js/utils/setStyle';\nimport { addClass, removeClass, isFixed, getWindowScroll } from '@tdesign/shared-utils';\nimport { useVModel, useConfig, useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport Button from '../button';\nimport Popup, { PopupProps } from '../popup';\n\nexport default defineComponent({\n name: 'TGuide',\n props,\n setup(props: TdGuideProps, context) {\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('guide');\n const LOCK_CLASS = usePrefixClass('guide--lock');\n const { globalConfig } = useConfig('guide');\n\n const { current, modelValue, hideCounter, hidePrev, hideSkip, steps, zIndex } = toRefs(props);\n const [innerCurrent, setInnerCurrent] = useVModel(\n current,\n modelValue,\n props.defaultCurrent,\n props.onChange,\n 'current',\n );\n\n // 覆盖层,用于覆盖所有元素\n const overlayLayerRef = ref<HTMLElement>();\n // 高亮层,用于高亮元素\n const highlightLayerRef = ref<HTMLElement>();\n // 提示层,用于高亮元素\n const referenceLayerRef = ref<HTMLElement>();\n // 当前高亮的元素\n const currentHighlightLayerElm = ref<HTMLElement>();\n // dialog wrapper ref\n const dialogWrapperRef = ref<HTMLElement>();\n // dialog ref\n const dialogTooltipRef = ref<HTMLElement>();\n // ! popup ref 不确定这里的类型是否完全正确\n const popupTooltipRef = ref<InstanceType<typeof Popup>>();\n // 是否开始展示\n const actived = ref<boolean>(false);\n // 步骤总数\n const stepsTotal = computed(() => steps.value.length);\n // 当前步骤的信息\n const currentStepInfo = computed<GuideStep>(() => steps.value[innerCurrent.value]);\n // 当前是否为 popup\n const isPopup = computed(() => getCurrentCrossProps('mode') === 'popup');\n // 当前元素位置状态\n const currentElmIsFixed = computed(() => isFixed(currentHighlightLayerElm.value || document.body));\n // 获取当前步骤的属性值 用户当前步骤设置 > 用户组件设置的\n const getCurrentCrossProps = <Key extends keyof GuideCrossProps>(propsName: Key) =>\n currentStepInfo.value[propsName] ?? props[propsName];\n // 获取当前步骤的用户设定的高亮内容\n const currentCustomHighlightContent = computed(() => {\n const { highlightContent } = currentStepInfo.value;\n\n let node: any = highlightContent;\n if (isFunction(highlightContent)) {\n // 支持函数\n node = highlightContent(hWithParams());\n } else if (context.slots.highlightContent) {\n // 支持插槽\n node = context.slots.highlightContent(hWithParams());\n } else if (context.slots['highlight-content']) {\n // 支持插槽\n node = context.slots['highlight-content'](hWithParams());\n } else if (!!highlightContent) {\n // 支持组件\n node = <node />;\n }\n\n // 给自定义元素添加类名\n if (node) {\n if (!node.props) node.props = {};\n node.props.class = node.props.class || '';\n }\n return node;\n });\n\n // 是否展示高亮区域\n const showCustomHighlightContent = computed(() => Boolean(currentCustomHighlightContent.value && isPopup.value));\n //\n const popupVisible = ref(false);\n const hWithParams = (params: Record<string, any> = { currentStepInfo: currentStepInfo.value }) => {\n const newH = new Function('return ' + h.toString())();\n return Object.assign({}, newH, params);\n };\n\n // 设置高亮层的位置\n const setHighlightLayerPosition = (highlightLayer: HTMLElement, isReference = false) => {\n // 这里预留了一个相对元素的功能,暂未使用,也是这里导致了 fix #2111\n let { top, left } = getRelativePosition(currentHighlightLayerElm.value);\n let { width, height } = currentHighlightLayerElm.value.getBoundingClientRect();\n const highlightPadding = getCurrentCrossProps('highlightPadding');\n\n if (isPopup.value) {\n width += highlightPadding * 2;\n height += highlightPadding * 2;\n top -= highlightPadding;\n left -= highlightPadding;\n } else {\n const { scrollTop, scrollLeft } = getWindowScroll();\n top += scrollTop;\n left += scrollLeft;\n }\n\n const style = {\n top: `${top}px`,\n left: `${left}px`,\n };\n\n // 展示自定义高亮\n if (showCustomHighlightContent.value) {\n // 高亮框本身不设定宽高,引用用框的宽高设定为用户自定义的宽高\n if (isReference) {\n const { width, height } = highlightLayerRef.value.getBoundingClientRect();\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n } else {\n Object.assign(style, {\n width: 'auto',\n height: 'auto',\n });\n }\n } else {\n Object.assign(style, {\n width: `${width}px`,\n height: `${height}px`,\n });\n }\n setStyle(highlightLayer, style);\n };\n\n const showPopupGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = getTargetElm(currentStepInfo.value.element);\n if (!currentHighlightLayerElm.value) return;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n setHighlightLayerPosition(referenceLayerRef.value, true);\n scrollToElm(currentHighlightLayerElm.value);\n // fix: https://github.com/Tencent/tdesign-vue-next/issues/2536\n // 这里其实是一个临时解决方案,最合理的是 popup 内部处理\n popupTooltipRef.value?.update();\n });\n };\n\n const destroyTooltipElm = () => {\n referenceLayerRef.value?.parentNode.removeChild(referenceLayerRef.value);\n };\n\n const showDialogGuide = () => {\n nextTick(() => {\n currentHighlightLayerElm.value = dialogTooltipRef.value;\n scrollToParentVisibleArea(currentHighlightLayerElm.value);\n setHighlightLayerPosition(highlightLayerRef.value);\n scrollToElm(currentHighlightLayerElm.value);\n });\n };\n\n const destroyDialogTooltipElm = () => {\n dialogTooltipRef.value?.parentNode.removeChild(dialogTooltipRef.value);\n dialogWrapperRef.value?.parentNode.removeChild(dialogWrapperRef.value);\n };\n\n const showGuide = () => {\n if (isPopup.value) {\n destroyDialogTooltipElm();\n showPopupGuide();\n } else {\n destroyTooltipElm();\n showDialogGuide();\n }\n popupVisible.value = true;\n };\n\n const destroyGuide = () => {\n destroyTooltipElm();\n destroyDialogTooltipElm();\n highlightLayerRef.value?.parentNode.removeChild(highlightLayerRef.value);\n overlayLayerRef.value?.parentNode.removeChild(overlayLayerRef.value);\n removeClass(document.body, LOCK_CLASS.value);\n };\n\n const handleSkip = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onSkip?.({ e, current: innerCurrent.value, total });\n };\n\n const handlePrev = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value - 1, { e, total });\n props.onPrevStepClick?.({\n e,\n prev: innerCurrent.value - 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleNext = (e: MouseEvent) => {\n const total = stepsTotal.value;\n setInnerCurrent(innerCurrent.value + 1, { e, total });\n props.onNextStepClick?.({\n e,\n next: innerCurrent.value + 1,\n current: innerCurrent.value,\n total,\n });\n };\n\n const handleFinish = (e: MouseEvent) => {\n const total = stepsTotal.value;\n actived.value = false;\n setInnerCurrent(-1, { e, total });\n props.onFinish?.({ e, current: innerCurrent.value, total });\n };\n\n const initGuide = () => {\n if (innerCurrent.value >= 0 && innerCurrent.value < steps.value.length) {\n if (!actived.value) {\n actived.value = true;\n addClass(document.body, LOCK_CLASS.value);\n }\n showGuide();\n }\n };\n\n watch(innerCurrent, (val) => {\n if (val >= 0 && val < steps.value.length) {\n popupVisible.value = false;\n initGuide();\n } else {\n actived.value = false;\n destroyGuide();\n }\n });\n\n onMounted(() => {\n initGuide();\n });\n\n return () => {\n const renderOverlayLayer = () => (\n <div ref={overlayLayerRef} class={`${COMPONENT_NAME.value}__overlay`} style={{ zIndex: zIndex.value - 2 }} />\n );\n\n const renderHighlightLayer = () => {\n const style = { zIndex: zIndex.value - 1 };\n const highlightClass = [\n `${COMPONENT_NAME.value}__highlight`,\n `${COMPONENT_NAME.value}__highlight--${isPopup.value ? 'popup' : 'dialog'}`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value && isPopup.value ? 'fixed' : 'absolute'}`,\n ];\n const showOverlay = getCurrentCrossProps('showOverlay');\n const maskClass = [`${COMPONENT_NAME.value}__highlight--${showOverlay ? 'mask' : 'nomask'}`];\n\n return (\n <div ref={highlightLayerRef} class={[...highlightClass, ...maskClass]} style={style}>\n {showCustomHighlightContent.value && currentCustomHighlightContent.value}\n </div>\n );\n };\n\n const renderCounter = () => {\n const popupSlotCounter = renderTNodeJSX('counter', {\n params: { total: stepsTotal.value, current: innerCurrent.value },\n });\n\n const popupDefaultCounter = (\n <div class={`${COMPONENT_NAME.value}__counter`}>\n {popupSlotCounter || `${innerCurrent.value + 1}/${stepsTotal.value}`}\n </div>\n );\n return <>{!hideCounter.value && popupDefaultCounter}</>;\n };\n\n const renderAction = (mode: TdGuideProps['mode']) => {\n const isLast = innerCurrent.value === stepsTotal.value - 1;\n const isFirst = innerCurrent.value === 0;\n const buttonSize = mode === 'popup' ? 'small' : 'medium';\n\n return (\n <div class={`${COMPONENT_NAME.value}__action`}>\n {!hideSkip.value && !isLast && (\n <Button\n key=\"skip\"\n class={`${COMPONENT_NAME.value}__skip`}\n theme=\"default\"\n size={buttonSize}\n variant=\"base\"\n onClick={handleSkip}\n {...(getCurrentCrossProps('skipButtonProps') ?? globalConfig.value.skipButtonProps)}\n />\n )}\n {!hidePrev.value && !isFirst && (\n <Button\n key=\"prev\"\n class={`${COMPONENT_NAME.value}__prev`}\n theme=\"default\"\n size={buttonSize}\n variant=\"base\"\n onClick={handlePrev}\n {...(getCurrentCrossProps('prevButtonProps') ?? globalConfig.value.prevButtonProps)}\n />\n )}\n {!isLast && (\n <Button\n key=\"next\"\n class={`${COMPONENT_NAME.value}__next`}\n theme=\"primary\"\n size={buttonSize}\n variant=\"base\"\n onClick={handleNext}\n {...(getCurrentCrossProps('nextButtonProps') ?? globalConfig.value.nextButtonProps)}\n />\n )}\n {isLast && (\n <Button\n key=\"finish\"\n class={`${COMPONENT_NAME.value}__finish`}\n theme=\"primary\"\n size={buttonSize}\n variant=\"base\"\n onClick={handleFinish}\n {...(props.finishButtonProps ?? globalConfig.value.finishButtonProps)}\n />\n )}\n </div>\n );\n };\n\n const renderTitle = () => {\n const functionTitle = isFunction(currentStepInfo.value.title) ? currentStepInfo.value.title() : undefined;\n const slotTitle = context.slots.title ? context.slots.title(hWithParams()) : undefined;\n return functionTitle || slotTitle || currentStepInfo.value.title;\n };\n\n const renderTooltipBody = () => {\n const title = <div class={`${COMPONENT_NAME.value}__title`}>{renderTitle()}</div>;\n const bodyRender = currentStepInfo.value.body;\n\n let descBody: any;\n if (isFunction(bodyRender)) {\n descBody = bodyRender(hWithParams());\n } else if (context.slots.body) {\n descBody = context.slots.body({ currentStepInfo: currentStepInfo.value });\n } else if (typeof bodyRender === 'string') {\n descBody = bodyRender;\n } else {\n descBody = <bodyRender />;\n }\n const desc = <div class={`${COMPONENT_NAME.value}__desc`}>{descBody}</div>;\n\n return (\n <>\n {title}\n {desc}\n </>\n );\n };\n\n const renderPopupContent = () => {\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n const action = (\n <div class={footerClasses}>\n {renderCounter()}\n {renderAction('popup')}\n </div>\n );\n\n return (\n <div class={`${COMPONENT_NAME.value}__tooltip`}>\n {renderTooltipBody()}\n {action}\n </div>\n );\n };\n\n const renderPopupGuide = () => {\n const { content } = currentStepInfo.value;\n const contentProps = {\n handlePrev,\n handleNext,\n handleSkip,\n handleFinish,\n current: innerCurrent.value,\n total: stepsTotal.value,\n };\n let renderBody;\n if (isFunction(content)) {\n renderBody = () => content(hWithParams(contentProps));\n } else if (context.slots.content) {\n renderBody = () => context.slots.content(hWithParams(contentProps));\n } else if (content) {\n renderBody = () => <content {...contentProps} />;\n } else {\n renderBody = renderPopupContent;\n }\n const classes = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--${currentElmIsFixed.value ? 'fixed' : 'absolute'}`,\n ];\n\n const innerClassName: PopupProps['overlayInnerClassName'] = [\n {\n [`${COMPONENT_NAME.value}__popup--content`]: !!content,\n },\n ];\n\n return (\n <Popup\n ref={popupTooltipRef}\n visible={popupVisible.value}\n show-arrow={!content}\n zIndex={zIndex.value}\n placement={currentStepInfo.value.placement as any}\n {...currentStepInfo.value.popupProps}\n content={renderBody}\n overlayClassName={[`${COMPONENT_NAME.value}__popup`, currentStepInfo.value.stepOverlayClass]}\n overlayInnerClassName={innerClassName.concat(currentStepInfo.value.popupProps?.overlayInnerClassName)}\n >\n <div ref={referenceLayerRef} class={classes} />\n </Popup>\n );\n };\n\n const renderDialogGuide = () => {\n const style = { zIndex: zIndex.value };\n const wrapperClasses = [\n `${COMPONENT_NAME.value}__wrapper`,\n { [`${COMPONENT_NAME.value}__wrapper--center`]: currentStepInfo.value.placement === 'center' },\n ];\n const dialogClasses = [\n `${COMPONENT_NAME.value}__reference`,\n `${COMPONENT_NAME.value}--absolute`,\n `${COMPONENT_NAME.value}__dialog`,\n {\n [`${COMPONENT_NAME.value}__dialog--nomask`]: !getCurrentCrossProps('showOverlay'),\n [currentStepInfo.value.stepOverlayClass]: !!currentStepInfo.value.stepOverlayClass,\n },\n ];\n const footerClasses = [`${COMPONENT_NAME.value}__footer`, `${COMPONENT_NAME.value}__footer--popup`];\n return (\n <>\n <div ref={dialogWrapperRef} class={wrapperClasses} style={style}>\n <div ref={dialogTooltipRef} class={dialogClasses}>\n {renderTooltipBody()}\n <div class={footerClasses}>\n {renderCounter()}\n {renderAction('dialog')}\n </div>\n </div>\n </div>\n </>\n );\n };\n\n const renderGuide = () => {\n return (\n <>\n <Teleport to=\"body\">\n {renderOverlayLayer()}\n {renderHighlightLayer()}\n {isPopup.value ? renderPopupGuide() : renderDialogGuide()}\n </Teleport>\n </>\n );\n };\n\n return <>{actived.value && renderGuide()}</>;\n };\n },\n});\n"],"names":["defineComponent","name","props","setup","context","renderTNodeJSX","useTNodeJSX","COMPONENT_NAME","usePrefixClass","LOCK_CLASS","_useConfig","useConfig","globalConfig","_toRefs","toRefs","current","modelValue","hideCounter","hidePrev","hideSkip","steps","zIndex","_useVModel","useVModel","defaultCurrent","onChange","_useVModel2","_slicedToArray","innerCurrent","setInnerCurrent","overlayLayerRef","ref","highlightLayerRef","referenceLayerRef","currentHighlightLayerElm","dialogWrapperRef","dialogTooltipRef","popupTooltipRef","actived","stepsTotal","computed","value","length","currentStepInfo","isPopup","getCurrentCrossProps","currentElmIsFixed","isFixed","document","body","propsName","_currentStepInfo$valu","currentCustomHighlightContent","highlightContent","node","isFunction","hWithParams","slots","_createVNode","showCustomHighlightContent","Boolean","popupVisible","params","arguments","undefined","newH","Function","h","toString","Object","assign","setHighlightLayerPosition","highlightLayer","isReference","_getRelativePosition","getRelativePosition","top","left","_currentHighlightLaye","getBoundingClientRect","width","height","highlightPadding","_getWindowScroll","getWindowScroll","scrollTop","scrollLeft","style","_highlightLayerRef$va","setStyle","showPopupGuide","nextTick","_popupTooltipRef$valu","getTargetElm","element","scrollToParentVisibleArea","scrollToElm","update","destroyTooltipElm","_referenceLayerRef$va","parentNode","removeChild","showDialogGuide","destroyDialogTooltipElm","_dialogTooltipRef$val","_dialogWrapperRef$val","showGuide","destroyGuide","_highlightLayerRef$va2","_overlayLayerRef$valu","removeClass","handleSkip","e","_props2$onSkip","total","onSkip","handlePrev","_props2$onPrevStepCli","onPrevStepClick","prev","handleNext","_props2$onNextStepCli","onNextStepClick","next","handleFinish","_props2$onFinish","onFinish","initGuide","addClass","watch","val","onMounted","renderOverlayLayer","renderHighlightLayer","highlightClass","concat","showOverlay","maskClass","renderCounter","popupSlotCounter","popupDefaultCounter","_Fragment","renderAction","mode","_getCurrentCrossProps","_getCurrentCrossProps2","_getCurrentCrossProps3","_props2$finishButtonP","isLast","isFirst","buttonSize","Button","_mergeProps","skipButtonProps","prevButtonProps","nextButtonProps","finishButtonProps","renderTitle","functionTitle","title","slotTitle","renderTooltipBody","bodyRender","descBody","desc","renderPopupContent","footerClasses","action","renderPopupGuide","_currentStepInfo$valu2","content","contentProps","renderBody","classes","innerClassName","_defineProperty","Popup","placement","popupProps","stepOverlayClass","overlayInnerClassName","renderDialogGuide","wrapperClasses","dialogClasses","renderGuide","Teleport","_default"],"mappings":"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"}