{"version":3,"file":"Content.cjs","sources":["../../../../../../packages/vue-components/vc-dialog/src/Content.tsx"],"sourcesContent":["import type { MouseEventHandler } from '@antdv/types';\nimport type { CSSProperties, PropType } from 'vue';\nimport { computed, defineComponent, nextTick, ref, Transition } from 'vue';\nimport { getTransitionProps } from '../../transition';\nimport dialogPropTypes from './IDialogPropTypes';\nimport { offset } from './util';\n\nconst sentinelStyle = { width: 0, height: 0, overflow: 'hidden', outline: 'none' };\nconst entityStyle = { outline: 'none' };\nexport interface ContentRef {\n  focus: () => void;\n  changeActive: (next: boolean) => void;\n}\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'DialogContent',\n  inheritAttrs: false,\n  props: {\n    ...dialogPropTypes(),\n    motionName: String,\n    ariaId: String,\n    onVisibleChanged: Function as PropType<(visible: boolean) => void>,\n    onMousedown: Function as PropType<MouseEventHandler>,\n    onMouseup: Function as PropType<MouseEventHandler>,\n  },\n  setup(props, { expose, slots, attrs }) {\n    const sentinelStartRef = ref<HTMLDivElement>();\n    const sentinelEndRef = ref<HTMLDivElement>();\n    const dialogRef = ref<HTMLDivElement>();\n    expose({\n      focus: () => {\n        sentinelStartRef.value?.focus({ preventScroll: true });\n      },\n      changeActive: (next) => {\n        const { activeElement } = document;\n        if (next && activeElement === sentinelEndRef.value)\n          sentinelStartRef.value.focus({ preventScroll: true });\n        else if (!next && activeElement === sentinelStartRef.value)\n          sentinelEndRef.value.focus({ preventScroll: true });\n      },\n    });\n    const transformOrigin = ref<string>();\n    const contentStyleRef = computed(() => {\n      const { width, height } = props;\n      const contentStyle: CSSProperties = {};\n      if (width !== undefined)\n        contentStyle.width = typeof width === 'number' ? `${width}px` : width;\n\n      if (height !== undefined)\n        contentStyle.height = typeof height === 'number' ? `${height}px` : height;\n\n      if (transformOrigin.value)\n        contentStyle.transformOrigin = transformOrigin.value;\n\n      return contentStyle;\n    });\n\n    const onPrepare = () => {\n      nextTick(() => {\n        if (dialogRef.value) {\n          const elementOffset = offset(dialogRef.value);\n          transformOrigin.value = props.mousePosition\n            ? `${props.mousePosition.x - elementOffset.left}px ${\n              props.mousePosition.y - elementOffset.top\n            }px`\n            : '';\n        }\n      });\n    };\n    const onVisibleChanged = (visible: boolean) => {\n      props.onVisibleChanged(visible);\n    };\n    return () => {\n      const {\n        prefixCls,\n        footer = slots.footer?.(),\n        title = slots.title?.(),\n        ariaId,\n        closable,\n        closeIcon = slots.closeIcon?.(),\n        onClose,\n        bodyStyle,\n        bodyProps,\n        onMousedown,\n        onMouseup,\n        visible,\n        modalRender = slots.modalRender,\n        destroyOnClose,\n        motionName,\n      } = props;\n      let footerNode: any;\n      if (footer)\n        footerNode = <div class={`${prefixCls}-footer`}>{footer}</div>;\n\n      let headerNode: any;\n      if (title) {\n        headerNode = (\n          <div class={`${prefixCls}-header`}>\n            <div class={`${prefixCls}-title`} id={ariaId}>\n              {title}\n            </div>\n          </div>\n        );\n      }\n\n      let closer: any;\n      if (closable) {\n        closer = (\n          <button type=\"button\" onClick={onClose} aria-label=\"Close\" class={`${prefixCls}-close`}>\n            {closeIcon || <span class={`${prefixCls}-close-x`} />}\n          </button>\n        );\n      }\n\n      const content = (\n        <div class={`${prefixCls}-content`}>\n          {closer}\n          {headerNode}\n          <div class={`${prefixCls}-body`} style={bodyStyle} {...bodyProps}>\n            {slots.default?.()}\n          </div>\n          {footerNode}\n        </div>\n      );\n      const transitionProps = getTransitionProps(motionName);\n      return (\n        <Transition\n          {...transitionProps}\n          onBeforeEnter={onPrepare}\n          onAfterEnter={() => onVisibleChanged(true)}\n          onAfterLeave={() => onVisibleChanged(false)}\n        >\n          {visible || !destroyOnClose\n            ? (\n                <div\n                  {...attrs}\n                  ref={dialogRef}\n                  v-show={visible}\n                  key=\"dialog-element\"\n                  role=\"document\"\n                  style={[contentStyleRef.value, attrs.style as CSSProperties]}\n                  class={[prefixCls, attrs.class]}\n                  onMousedown={onMousedown}\n                  onMouseup={onMouseup}\n                >\n                  <div tabindex={0} ref={sentinelStartRef} style={entityStyle}>\n                    {modalRender ? modalRender({ originVNode: content }) : content}\n                  </div>\n                  <div tabindex={0} ref={sentinelEndRef} style={sentinelStyle} />\n                </div>\n              )\n            : null}\n        </Transition>\n      );\n    };\n  },\n});\n"],"names":["sentinelStyle","width","height","overflow","outline","entityStyle","defineComponent","compatConfig","MODE","name","inheritAttrs","props","dialogPropTypes","motionName","String","ariaId","onVisibleChanged","Function","onMousedown","onMouseup","setup","expose","slots","attrs","sentinelStartRef","ref","sentinelEndRef","dialogRef","focus","value","preventScroll","changeActive","next","activeElement","document","transformOrigin","contentStyleRef","computed","contentStyle","undefined","onPrepare","nextTick","elementOffset","offset","mousePosition","x","left","y","top","visible","prefixCls","footer","title","closable","closeIcon","onClose","bodyStyle","bodyProps","modalRender","destroyOnClose","footerNode","_createVNode","headerNode","closer","content","default","transitionProps","getTransitionProps","Transition","onAfterEnter","onAfterLeave","_withDirectives","style","class","originVNode","_vShow"],"mappings":"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"}