{"version":3,"file":"popup.mjs","sources":["../../../../../../../packages/components/popup/src/popup.tsx"],"sourcesContent":["import {\n  type CSSProperties,\n  type ExtractPropTypes,\n  Teleport,\n  Transition,\n  computed,\n  defineComponent,\n  nextTick,\n  onActivated,\n  onDeactivated,\n  onMounted,\n  provide,\n  ref,\n  watch,\n} from 'vue'\n\n// Utils\nimport {\n  HAPTICS_FEEDBACK,\n  callInterceptor,\n  createNamespace,\n  extend,\n  isDef,\n  makeObjectProp,\n  makeStringProp,\n} from '@xzx-design/utils'\n\n// Composables\nimport {\n  POPUP_TOGGLE_KEY,\n  useEventListener,\n  useExpose,\n  useGlobalZIndex,\n  useLazyRender,\n  useLockScroll,\n  useScopeId,\n} from '@xzx-design/hooks'\n\n// Components\nimport { Icon, Overlay } from '@xzx-design/components'\nimport { Close } from '@xzx-design/icons-vue'\nimport { popupSharedProps } from './shared'\n\n// Types\nimport type { IconsComponent } from '@xzx-design/components'\nimport type { PopupCloseIconPosition, PopupPosition } from './types'\n\nexport const popupProps = extend({}, popupSharedProps, {\n  round: Boolean,\n  position: makeStringProp<PopupPosition>('center'),\n  closeIcon: makeObjectProp<IconsComponent>(Close),\n  closeable: Boolean,\n  transition: String,\n  iconPrefix: String,\n  closeOnPopstate: Boolean,\n  closeIconPosition: makeStringProp<PopupCloseIconPosition>('top-right'),\n  destroyOnClose: Boolean,\n  safeAreaInsetTop: Boolean,\n  safeAreaInsetBottom: Boolean,\n})\n\nexport type PopupProps = ExtractPropTypes<typeof popupProps>\n\nconst [name, bem] = createNamespace('popup')\n\nexport default defineComponent({\n  name,\n\n  inheritAttrs: false,\n\n  props: popupProps,\n\n  emits: [\n    'open',\n    'close',\n    'opened',\n    'closed',\n    'keydown',\n    'update:show',\n    'clickOverlay',\n    'clickCloseIcon',\n  ],\n\n  setup(props, { emit, attrs, slots }) {\n    let opened: boolean\n    let shouldReopen: boolean\n\n    const zIndex = ref<number>()\n    const popupRef = ref<HTMLElement>()\n\n    const lazyRender = useLazyRender(() => props.show || !props.lazyRender)\n\n    const style = computed(() => {\n      const style: CSSProperties = {\n        zIndex: zIndex.value,\n      }\n\n      if (isDef(props.duration)) {\n        const key =\n          props.position === 'center'\n            ? 'animationDuration'\n            : 'transitionDuration'\n        style[key] = `${props.duration}s`\n      }\n\n      return style\n    })\n\n    const open = () => {\n      if (!opened) {\n        opened = true\n\n        zIndex.value =\n          props.zIndex !== undefined ? +props.zIndex : useGlobalZIndex()\n\n        emit('open')\n      }\n    }\n\n    const close = () => {\n      if (opened) {\n        callInterceptor(props.beforeClose, {\n          done() {\n            opened = false\n            emit('close')\n            emit('update:show', false)\n          },\n        })\n      }\n    }\n\n    const onClickOverlay = (event: MouseEvent) => {\n      emit('clickOverlay', event)\n\n      if (props.closeOnClickOverlay) {\n        close()\n      }\n    }\n\n    const renderOverlay = () => {\n      if (props.overlay) {\n        return (\n          <Overlay\n            v-slots={{ default: slots['overlay-content'] }}\n            show={props.show}\n            class={props.overlayClass}\n            zIndex={zIndex.value}\n            duration={props.duration}\n            customStyle={props.overlayStyle}\n            role={props.closeOnClickOverlay ? 'button' : undefined}\n            tabindex={props.closeOnClickOverlay ? 0 : undefined}\n            {...useScopeId()}\n            onClick={onClickOverlay}\n          />\n        )\n      }\n    }\n\n    const onClickCloseIcon = (event: MouseEvent) => {\n      emit('clickCloseIcon', event)\n      close()\n    }\n\n    const renderCloseIcon = () => {\n      if (props.closeable) {\n        const iconComponent = computed(() => props.closeIcon)\n        return (\n          <Icon\n            role=\"button\"\n            tabindex={0}\n            class={[\n              bem('close-icon', props.closeIconPosition),\n              HAPTICS_FEEDBACK,\n            ]}\n            classPrefix={props.iconPrefix}\n            onClick={onClickCloseIcon}\n          >\n            <iconComponent.value />\n          </Icon>\n        )\n      }\n    }\n\n    let timer: ReturnType<typeof setTimeout> | null\n    const onOpened = () => {\n      if (timer) clearTimeout(timer)\n      timer = setTimeout(() => {\n        emit('opened')\n      })\n    }\n    const onClosed = () => emit('closed')\n    const onKeydown = (event: KeyboardEvent) => emit('keydown', event)\n\n    const renderPopup = lazyRender(() => {\n      const {\n        destroyOnClose,\n        round,\n        position,\n        safeAreaInsetTop,\n        safeAreaInsetBottom,\n        show,\n      } = props\n\n      if (!show && destroyOnClose) {\n        return\n      }\n\n      return (\n        <div\n          v-show={show}\n          ref={popupRef}\n          style={style.value}\n          role=\"dialog\"\n          tabindex={0}\n          class={[\n            bem({\n              round,\n              [position]: position,\n            }),\n            {\n              'xzx-safe-area-top': safeAreaInsetTop,\n              'xzx-safe-area-bottom': safeAreaInsetBottom,\n            },\n          ]}\n          onKeydown={onKeydown}\n          {...attrs}\n          {...useScopeId()}\n        >\n          {slots.default?.()}\n          {renderCloseIcon()}\n        </div>\n      )\n    })\n\n    const renderTransition = () => {\n      const { position, transition, transitionAppear } = props\n      const name =\n        position === 'center' ? 'xzx-fade' : `xzx-popup-slide-${position}`\n      return (\n        <Transition\n          v-slots={{ default: renderPopup }}\n          name={transition || name}\n          appear={transitionAppear}\n          onAfterEnter={onOpened}\n          onAfterLeave={onClosed}\n        />\n      )\n    }\n\n    watch(\n      () => props.show,\n      (show) => {\n        if (show && !opened) {\n          open()\n\n          if (attrs.tabindex === 0) {\n            nextTick(() => {\n              popupRef.value?.focus()\n            })\n          }\n        }\n        if (!show && opened) {\n          opened = false\n          emit('close')\n        }\n      }\n    )\n\n    useExpose({ popupRef })\n\n    useLockScroll(popupRef, () => props.show && props.lockScroll)\n\n    useEventListener('popstate', () => {\n      if (props.closeOnPopstate) {\n        close()\n        shouldReopen = false\n      }\n    })\n\n    onMounted(() => {\n      if (props.show) {\n        open()\n      }\n    })\n\n    onActivated(() => {\n      if (shouldReopen) {\n        emit('update:show', true)\n        shouldReopen = false\n      }\n    })\n\n    onDeactivated(() => {\n      // teleported popup should be closed when deactivated\n      if (props.show && props.teleport) {\n        close()\n        shouldReopen = true\n      }\n    })\n\n    provide(POPUP_TOGGLE_KEY, () => props.show)\n\n    return () => {\n      if (props.teleport) {\n        return (\n          <Teleport to={props.teleport}>\n            {renderOverlay()}\n            {renderTransition()}\n          </Teleport>\n        )\n      }\n\n      return (\n        <>\n          {renderOverlay()}\n          {renderTransition()}\n        </>\n      )\n    }\n  },\n})\n"],"names":["popupProps","extend","popupSharedProps","round","Boolean","position","makeStringProp","closeIcon","makeObjectProp","Close","closeable","transition","String","iconPrefix","closeOnPopstate","closeIconPosition","destroyOnClose","safeAreaInsetTop","safeAreaInsetBottom","name","bem","createNamespace","defineComponent","inheritAttrs","props","emits","setup","emit","attrs","slots","opened","shouldReopen","zIndex","ref","popupRef","lazyRender","useLazyRender","show","style","computed","value","isDef","duration","key","open","undefined","useGlobalZIndex","close","callInterceptor","beforeClose","done","onClickOverlay","event","closeOnClickOverlay","renderOverlay","overlay","_createVNode","Overlay","_mergeProps","overlayClass","overlayStyle","useScopeId","default","onClickCloseIcon","renderCloseIcon","iconComponent","Icon","HAPTICS_FEEDBACK","timer","onOpened","clearTimeout","setTimeout","onClosed","onKeydown","renderPopup","_withDirectives","_vShow","renderTransition","transitionAppear","Transition","watch","tabindex","nextTick","focus","useExpose","useLockScroll","lockScroll","useEventListener","onMounted","onActivated","onDeactivated","teleport","provide","POPUP_TOGGLE_KEY","Teleport","_Fragment"],"mappings":"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"}