/**
 * 触发器相关工具函数
 */

/**
 * 根据触发器类型获取默认的展示类型
 * @param triggerType 触发器类型
 * @param hasTrigger 是否有自定义触发器
 * @returns 默认的展示类型
 */
export var getDefaultDisplayType = function getDefaultDisplayType(triggerType, hasTrigger) {
  // 如果有自定义触发器，默认使用 modal
  if (hasTrigger) {
    return 'modal';
  }

  // 根据触发器类型判断
  if (triggerType === 'input') {
    return 'inline';
  }

  // button、icon、text 默认使用 modal
  if (triggerType === 'button' || triggerType === 'icon' || triggerType === 'text') {
    return 'modal';
  }

  // 默认使用 detached
  return 'detached';
};

/**
 * 判断是否为输入框触发器
 * @param triggerType 触发器类型
 * @returns 是否为输入框触发器
 */
export var isInputTrigger = function isInputTrigger(triggerType) {
  return triggerType === 'input';
};

/**
 * 判断是否为按钮类触发器（button、icon、text、自定义）
 * @param triggerType 触发器类型
 * @param hasTrigger 是否有自定义触发器
 * @returns 是否为按钮类触发器
 */
export var isButtonLikeTrigger = function isButtonLikeTrigger(triggerType, hasTrigger) {
  if (hasTrigger) return true;
  return triggerType === 'button' || triggerType === 'icon' || triggerType === 'text';
};

/**
 * 判断展示类型是否需要容器（modal、drawer）
 * @param displayType 展示类型
 * @returns 是否需要容器
 */
export var needsContainer = function needsContainer(displayType) {
  return displayType === 'modal' || displayType === 'drawer';
};

/**
 * 判断展示类型是否需要浮层（popup）
 * @param displayType 展示类型
 * @returns 是否需要浮层
 */
export var needsPopup = function needsPopup(displayType) {
  return displayType === 'popup';
};

/**
 * 判断展示类型是否为内联（inline）
 * @param displayType 展示类型
 * @returns 是否为内联
 */
export var isInline = function isInline(displayType) {
  return displayType === 'inline';
};