import * as i from "yup";
import { OPERATORS as p } from "../../../constants.js";
import { getDynamicSortDictionary as l } from "../../../dictionary.js";
import { StringSort as n } from "./index.js";
import { createValidationSchema as f, createValidationFullObject as d, createValidationPartialObject as s } from "../../../../hook-form/RHFormProvider/schema.js";
class y {
  getComponent() {
    return n;
  }
  /**
   * getDefaulSort obtiene el valor por defecto de un campo de tipo string
   */
  getDefaultSort(r, t) {
    const e = r.defaultOperator, o = {
      id: 0,
      fieldType: "string",
      field: r,
      fixed: t,
      isSet: !0,
      operator: "asc"
    };
    return e !== void 0 && typeof e == "string" && (o.operator = e), o;
  }
  /**
   * getSortFromFormValue obtiene el valor de un campo de tipo string
   */
  getSortFromFormValue(r) {
    return {
      fieldType: "string",
      operator: r.formValueOperator
    };
  }
  /**
   * getFormValue obtiene el valor de un campo de tipo string
   */
  getFormValue(r, t, e) {
    const o = e || void 0;
    return {
      fieldType: "string",
      formValueOperator: o ? o.operator : r.defaultOperator ?? "asc"
    };
  }
  /**
   * getLabels obtiene las etiquetas de un campo de tipo string
   */
  getLabels(r, t, e, o) {
    const a = r.operator ? t(l(`operator_${r.operator}`)) : "";
    return {
      labelField: r.field.label ?? t(r.field.dictionaryId),
      labelOperator: a
    };
  }
  /**
   * getSchema obtiene el esquema de un campo de tipo string
   */
  getSchema(r) {
    return f(d(s({
      formValueOperator: i.string().required(r("dynamic_Sort.error_operator_required"))
    })));
  }
  /**
   * verifySort verifica si un campo de tipo string es válido
   */
  verifySort(r, t) {
    return typeof r.operator != "string" || p.findIndex((e) => e === r.operator) === -1 ? !1 : typeof r.operator == "string";
  }
}
export {
  y as SortHelpers
};
