{"version":3,"file":"KeywordTrigger.cjs","sources":["../../../../../../packages/vue-components/vc-mentions/src/KeywordTrigger.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport type { OptionProps } from './Option';\nimport { computed, defineComponent } from 'vue';\nimport Trigger from '../../vc-trigger/src/Trigger';\nimport DropdownMenu from './DropdownMenu';\n\nconst BUILT_IN_PLACEMENTS = {\n  bottomRight: {\n    points: ['tl', 'br'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n  bottomLeft: {\n    points: ['tr', 'bl'],\n    offset: [0, 4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n  topRight: {\n    points: ['bl', 'tr'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n  topLeft: {\n    points: ['br', 'tl'],\n    offset: [0, -4],\n    overflow: {\n      adjustX: 0,\n      adjustY: 1,\n    },\n  },\n};\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'KeywordTrigger',\n  props: {\n    loading: { type: Boolean, default: undefined },\n    options: {\n      type: Array as PropType<OptionProps[]>,\n      default: () => [],\n    },\n    prefixCls: String,\n    placement: String,\n    visible: { type: Boolean, default: undefined },\n    transitionName: String,\n    getPopupContainer: Function,\n    direction: String,\n    dropdownClassName: String,\n  },\n  setup(props, { slots }) {\n    const getDropdownPrefix = () => {\n      return `${props.prefixCls}-dropdown`;\n    };\n    const getDropdownElement = () => {\n      const { options } = props;\n      return (\n        <DropdownMenu\n          prefixCls={getDropdownPrefix()}\n          options={options}\n          v-slots={{ notFoundContent: slots.notFoundContent, option: slots.option }}\n        />\n      );\n    };\n\n    const popupPlacement = computed(() => {\n      const { placement, direction } = props;\n      let popupPlacement = 'topRight';\n      if (direction === 'rtl')\n        popupPlacement = placement === 'top' ? 'topLeft' : 'bottomLeft';\n      else\n        popupPlacement = placement === 'top' ? 'topRight' : 'bottomRight';\n\n      return popupPlacement;\n    });\n    return () => {\n      const { visible, transitionName, getPopupContainer } = props;\n      return (\n        <Trigger\n          prefixCls={getDropdownPrefix()}\n          popupVisible={visible}\n          popup={getDropdownElement()}\n          popupClassName={props.dropdownClassName}\n          popupPlacement={popupPlacement.value}\n          popupTransitionName={transitionName}\n          builtinPlacements={BUILT_IN_PLACEMENTS}\n          getPopupContainer={getPopupContainer}\n          v-slots={{ default: slots.default }}\n        >\n        </Trigger>\n      );\n    };\n  },\n});\n"],"names":["BUILT_IN_PLACEMENTS","bottomRight","points","offset","overflow","adjustX","adjustY","bottomLeft","topRight","topLeft","defineComponent","compatConfig","MODE","name","props","loading","type","Boolean","default","undefined","options","Array","prefixCls","String","placement","visible","transitionName","getPopupContainer","Function","direction","dropdownClassName","setup","slots","getDropdownPrefix","getDropdownElement","_createVNode","DropdownMenu","notFoundContent","option","popupPlacement","computed","Trigger","value"],"mappings":"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"}