import type { FormSchemaEntryShared } from "../form/webcomponent.type";

/** Inclusive bounds passed to `new Date(...)`; `removeSeconds` hides the seconds column. */
export type InputDatetimeParams = {
  min?: string | number;
  max?: string | number;
  /** When truthy, the seconds `hb-input-number` is not rendered. */
  removeSeconds?: boolean;
};

export type FormSchemaEntry = Omit<FormSchemaEntryShared, "params"> & {
  /**
   * Optional default value.
   */
  value?: string | number | boolean;
  params?: InputDatetimeParams;
};

export type Component = {
  id?: string;
  style?: string;

  show_validation?: "yes" | "no";
  schemaentry: FormSchemaEntry | undefined;
};

export type Events = {
  setVal: { value: string | undefined; valid: boolean; id: string };
};
