{"version":3,"file":"popper.vue.mjs","sources":["../../../components/popper/popper.vue"],"sourcesContent":["<template>\n  <Portal :to=\"props.to\">\n    <Transition\n      :name=\"props.transition\"\n      :appear=\"props.appear\"\n      @before-enter=\"emitHookEvent('be', $event)\"\n      @enter=\"emitHookEvent('e', $event)\"\n      @after-enter=\"emitHookEvent('ae', $event)\"\n      @enter-cancelled=\"emitHookEvent('ec', $event)\"\n      @before-leave=\"emitHookEvent('bl', $event)\"\n      @leave=\"emitHookEvent('l', $event)\"\n      @after-leave=\"emitHookEvent('al', $event)\"\n      @leave-cancelled=\"emitHookEvent('lc', $event)\"\n    >\n      <div\n        v-if=\"props.alive || props.visible\"\n        v-show=\"!props.alive || props.visible\"\n        ref=\"wrapper\"\n        v-bind=\"$attrs\"\n        :class=\"[nh.b(), props.to !== 'body' && nh.bm('inherit')]\"\n        :role=\"props.role\"\n        :style=\"{ zIndex: props.to && props.visible ? zIndex : undefined }\"\n      >\n        <slot></slot>\n      </div>\n    </Transition>\n  </Portal>\n</template>\n\n<script lang=\"ts\">\nimport { Portal } from '@/components/portal'\n\nimport { defineComponent, ref, watch } from 'vue'\n\nimport { emitEvent, useNameHelper, useProps, useZIndex } from '@vexip-ui/config'\nimport { popperProps } from './props'\n\nexport default defineComponent({\n  name: 'Popper',\n  components: {\n    Portal\n  },\n  inheritAttrs: false,\n  props: popperProps,\n  emits: [],\n  setup(_props) {\n    const nh = useNameHelper('popper')\n    const props = useProps('popper', _props, {\n      visible: false,\n      alive: false,\n      to: '',\n      transition: () => nh.ns('drop'),\n      appear: false,\n      role: 'dialog'\n    })\n    const getIndex = useZIndex()\n\n    const zIndex = ref(10)\n\n    const wrapper = ref<HTMLElement>()\n\n    watch(\n      () => props.visible,\n      value => {\n        if (props.to && value) {\n          zIndex.value = getIndex()\n        }\n      },\n      { immediate: true }\n    )\n\n    function emitHookEvent(name: 'be' | 'e' | 'ae' | 'ec' | 'bl' | 'l' | 'al' | 'lc', el: Element) {\n      switch (name) {\n        case 'be':\n          emitEvent(props.onBeforeEnter, el)\n          break\n        case 'e':\n          emitEvent(props.onEnter, el)\n          break\n        case 'ae':\n          emitEvent(props.onAfterEnter, el)\n          break\n        case 'ec':\n          emitEvent(props.onEnterCancelled, el)\n          break\n        case 'bl':\n          emitEvent(props.onBeforeLeave, el)\n          break\n        case 'l':\n          emitEvent(props.onLeave, el)\n          break\n        case 'al':\n          emitEvent(props.onAfterLeave, el)\n          break\n        case 'lc':\n          emitEvent(props.onLeaveCancelled, el)\n          break\n      }\n    }\n\n    return {\n      nh,\n      props,\n      zIndex,\n\n      wrapper,\n\n      emitHookEvent\n    }\n  }\n})\n</script>\n"],"names":["_resolveComponent","_ctx","_withCtx","props","_createVNode","_cache","$event","emitHookEvent","_withDirectives","_openBlock","_createElementBlock","_mergeProps","$attrs","zIndex","_vShow","_createCommentVNode"],"mappings":";;;;;YACEA,EAyBS,QAAA;;IA1BX,IAAAC,EAAA,MAAA;AAAA,EAAA,GAAA;AAAA,IAGW,SAAAC,EAAEC,MAAM;AAAA,MAAAC,EACJD,GAAM;AAAA,QACd,MAAYF,EAAA,MAAA;AAAA,QACZ,QAAKA,EAAA,MAAA;AAAA,QACL,eAAWI,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAa,cAAA,MAAOD,CAAM;AAAA,QACvC,SAAAD,EAAe,qCAAEE,KAAaD,CAAA;AAAA,QAC9B,cAAYD,EAAEE,CAAAA,MAAAA,EAAAA,CAAAA,IAAAA,CAAAA,MAAAA,EAAAA,cAAa,MAAOD,CAAA;AAAA,QAClC,kBAAKD,EAAEE,CAAAA,MAAAA,EAAAA,CAAAA,IAAAA,CAAAA,MAAAA,EAAAA,cAAmB,MAAMD,CAAA;AAAA,QAChC,eAAWD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEC,EAAa,cAAA,MAAOD,CAAM;AAAA,QACvC,SAAAD,EAAe,qCAAEE,KAAaD,CAAA;AAAA,QAAA,cAAAD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAL,EAAA,cAAA,MAAAK,CAAA;AAAA,QAZrC,kBAcMD,EAUM,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAL,EAAA,cAAA,MAAAK,CAAA;AAAA,MAAA,GAAA;AAAA;YAxBZ,MAiBqB,SAAAL,EAAA,MAAA,UAAAO,GAAAC,EAAA,GAAAC,EAAA,OAAAC,EAAA;AAAA,YACLC,KAAAA;AAAAA,YACP,KAAK;AAAA,UAAA,GACLX,EAAME,QAAAA;AAAAA,YACN,OAAK,CAAYA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,MAAQ,OAAIA,UAAMF,EAAO,GAAGY,GAAS,SAAA,CAAA;AAAA,YAAA,MAAAZ,EAAA,MAAA;AAAA,YAEvD,OAAa,EAAA,QAAAA,EAAA,MAAA,MAAAA,EAAA,MAAA,UAAAA,EAAA,SAAA,OAAA;AAAA,UAAA,CAAA,GAAA;AAAA,YAPJE,EAAAA,EAAAA,QAAM,SAASA;AAAAA,UAAAA,GAAAA,IAAAA,CAAAA,IAAAA;AAAAA,YAhBhC,CAAAW,GAAA,CAAAb,EAAA,MAAA,SAAAA,EAAA,MAAA,OAAA;AAAA,UAAA,CAAA,IAAAc,EAAA,IAAA,EAAA;AAAA,QAAA,CAAA;AAAA;MAAA,GAAA,GAAA,CAAA,QAAA,QAAA,CAAA;AAAA,IAAA,CAAA;AAAA;;;;"}