{"version":3,"file":"popup.vue2.mjs","sources":["../../../../../../packages/components/popup/src/popup.vue"],"sourcesContent":["<script lang=\"ts\">\n  import { computed, defineComponent, ref } from 'vue'\n  import type { PropType, StyleValue } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import Trigger from '../../trigger'\n  import { addUnit } from '../../../shared/utils'\n  import type { TriggerPosition } from '../../trigger/src/_trigger'\n  import { isUndefined } from '../../../utils/is'\n\n  export default defineComponent({\n    name: getComponentNamespace('Popup'),\n    components: {\n      Trigger\n    },\n    props: {\n      trigger: {\n        type: String as PropType<'click' | 'hover'>,\n        default: 'click'\n      },\n      minWidth: {\n        type: [String, Number],\n        default: 150\n      },\n      width: {\n        type: [String, Number],\n        default: 'auto'\n      },\n      placement: {\n        type: String as PropType<TriggerPosition>,\n        default: 'bottom'\n      },\n      showArrow: {\n        type: Boolean,\n        default: false\n      },\n      contentClass: {\n        type: String,\n        default: undefined\n      },\n      offset: {\n        type: Number,\n        default: undefined\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      }\n    },\n    emits: ['show', 'hide'],\n    setup(props, { expose }) {\n      const ns = getNamespace('popup')\n      const popupVisible = ref(false)\n\n      const contentCls = computed(() => [`${ns}__content`, props.contentClass])\n\n      const contentStyle = computed(() => {\n        const style: StyleValue = {}\n        style.minWidth = addUnit(props.minWidth)\n        style.width = addUnit(props.width)\n        return style\n      })\n\n      const arrowStyle = computed(() => {\n        const style: Record<string, string> = {\n          '--bn-trigger-arrow-background-color': '#fff'\n        }\n\n        return style\n      })\n\n      const computedOffset = computed(() => {\n        if (isUndefined(props.offset) && props.showArrow) return 12\n        if (isUndefined(props.offset)) return 6\n        return props.offset\n      })\n\n      const changePopupVisible = (visible: boolean) => {\n        popupVisible.value = visible\n      }\n\n      expose({\n        changePopupVisible\n      })\n\n      return {\n        ns,\n        contentCls,\n        contentStyle,\n        popupVisible,\n        arrowStyle,\n        computedOffset\n      }\n    }\n  })\n</script>\n\n<template>\n  <Trigger\n    v-model:popup-visible=\"popupVisible\"\n    :trigger=\"trigger\"\n    :position=\"placement\"\n    :show-arrow=\"showArrow\"\n    :popup-offset=\"computedOffset\"\n    :arrow-style=\"arrowStyle\"\n    :disabled=\"disabled\"\n    @show=\"$emit('show')\"\n    @hide=\"$emit('hide')\"\n  >\n    <template #default>\n      <slot name=\"trigger\" :show=\"popupVisible\"></slot>\n    </template>\n    <template #content>\n      <div :class=\"contentCls\" :style=\"contentStyle\">\n        <slot name=\"content\"></slot>\n      </div>\n    </template>\n  </Trigger>\n</template>\n"],"names":[],"mappings":"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"}