import { isArray, isUndefined } from 'lodash-es';
import { dateUtil } from '/nerv-lib/util/date-util';
const DATE_TYPE = [
  'NsDatePicker',
  'NsMonthPicker',
  'NsWeekPicker',
  'NsTimePicker',
  'NsRangePicker',
  'ADatePicker',
  'AMonthPicker',
  'AWeekPicker',
  'ATimePicker',
  'ARangePicker',
];

const INPUT_TYPE = ['NsInput', 'AInput', 'NsTextarea', 'ATextarea'];

/**
 * 是否时间组件
 */
export function isDateType(component: string | undefined) {
  if (isUndefined(component)) return false;
  return DATE_TYPE.includes(component);
}

/**
 * 是否输入框组件
 */
export function isInputType(component: string | undefined) {
  if (isUndefined(component)) return false;
  return INPUT_TYPE.includes(component);
}
/**
 *把时间转换为moment格式
 * @param component
 * @param value
 */
export const transformDate = (component: string, value: any, format?: any) => {
  if (value && isDateType(component)) {
    if (isArray(value)) {
      return value.map((item) => validTime(item, format));
    }
    return validTime(value, format);
  }
};

/**
 * 验证时间值和格式是否匹配 不匹配则格式化
 * @param time
 * @param format
 */
export function validTime(time: any, format: string) {
  if (dateUtil(time, format, true).isValid()) {
    return time;
  } else {
    return dateUtil(time).format(format);
  }
}