{"version":3,"file":"_trigger.mjs","sources":["../../../../../../packages/components/trigger/src/_trigger.ts"],"sourcesContent":["import type { PropType, ExtractPropTypes, CSSProperties } from 'vue'\n\nexport const TRIGGER_POSITIONS = [\n  'top',\n  'tl',\n  'tr',\n  'bottom',\n  'bl',\n  'br',\n  'left',\n  'lt',\n  'lb',\n  'right',\n  'rt',\n  'rb'\n] as const\nexport type TriggerPosition = (typeof TRIGGER_POSITIONS)[number]\n\nexport const TRIGGER_EVENTS = ['hover', 'click', 'focus', 'contextMenu'] as const\nexport type TriggerEvent = (typeof TRIGGER_EVENTS)[number]\n\nexport type TriggerPopupTranslate =\n  | [number, number]\n  | { [key in TriggerPosition]?: [number, number] }\n\nexport const triggerProps = {\n  // 弹出框是否可见\n  popupVisible: {\n    type: Boolean,\n    default: undefined\n  },\n  // 弹出框默认是否可见（非受控模式）\n  defaultPopupVisible: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  触发方式\n   * @values 'hover','click','focus','contextMenu'\n   */\n  trigger: {\n    type: [String, Array] as PropType<TriggerEvent | TriggerEvent[]>,\n    default: 'hover'\n  },\n  /**\n   *  弹出位置\n   * @values 'top','tl','tr','bottom','bl','br','left','lt','lb','right','rt','rb'\n   */\n  position: {\n    type: String as PropType<TriggerPosition>,\n    default: 'bottom'\n  },\n  /**\n   *  触发器是否禁用\n   */\n  disabled: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  弹出框的偏移量（弹出框距离触发器的偏移距离）\n   */\n  popupOffset: {\n    type: Number,\n    default: 5\n  },\n  /**\n   *  弹出框的移动距离\n   */\n  popupTranslate: {\n    type: [Array, Object] as PropType<TriggerPopupTranslate>\n  },\n  /**\n   *  弹出框是否显示箭头\n   */\n  showArrow: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  弹出框是否跟随鼠标\n   */\n  alignPoint: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   *  是否在移出触发器，并移入弹出框时保持弹出框显示\n   */\n  popupHoverStay: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   *  是否在触发器失去焦点时关闭弹出框\n   */\n  blurToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   *  是否在点击触发器时关闭弹出框\n   */\n  clickToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 是否在点击外部区域时关闭弹出框\n   */\n  clickOutsideToClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 是否在关闭时卸载弹出框节点\n   */\n  unmountOnClose: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 弹出框内容的类名\n   */\n  contentClass: {\n    type: [String, Array, Object]\n  },\n  /**\n   * 弹出框内容的样式\n   */\n  contentStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   * 弹出框箭头的类名\n   */\n  arrowClass: {\n    type: [String, Array, Object]\n  },\n  /**\n   * 弹出框箭头的样式\n   */\n  arrowStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   *  弹出框的样式\n   */\n  popupStyle: {\n    type: Object as PropType<CSSProperties>\n  },\n  /**\n   * 弹出动画的name\n   */\n  animationName: {\n    type: String,\n    default: 'bn-fade-in'\n  },\n  /**\n   * 弹出动画的持续时间\n   */\n  duration: {\n    type: [Number, Object] as PropType<\n      | number\n      | {\n          enter: number\n          leave: number\n        }\n    >\n  },\n  /**\n   * mouseenter事件延时触发的时间（毫秒）\n   */\n  mouseEnterDelay: {\n    type: Number,\n    default: 100\n  },\n  /**\n   * mouseleave事件延时触发的时间（毫秒）\n   */\n  mouseLeaveDelay: {\n    type: Number,\n    default: 100\n  },\n  /**\n   * focus事件延时触发的时间（毫秒）\n   */\n  focusDelay: {\n    type: Number,\n    default: 0\n  },\n  /**\n   * 是否将弹出框宽度设置为触发器宽度\n   */\n  autoFitPopupWidth: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * 是否将弹出框的最小宽度设置为触发器宽度\n   */\n  autoFitPopupMinWidth: {\n    type: Boolean,\n    default: false\n  },\n  /**\n   * 当触发器的尺寸发生变化时，是否重新计算弹出框位置\n   */\n  autoFixPosition: {\n    type: Boolean,\n    default: true\n  },\n  /**\n   * 弹出框的挂载容器\n   */\n  popupContainer: {\n    type: [String, Object] as PropType<string | HTMLElement>\n  },\n  autoFitTransformOrigin: {\n    type: Boolean,\n    default: false\n  },\n  openedClass: {\n    type: [String, Array, Object]\n  },\n  autoFitPosition: {\n    type: Boolean,\n    default: true\n  },\n  renderToBody: {\n    type: Boolean,\n    default: true\n  },\n  preventFocus: {\n    type: Boolean,\n    default: false\n  }\n}\n\nexport type TriggerProps = ExtractPropTypes<typeof triggerProps>\n"],"names":[],"mappings":"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"}