var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/components/dataSourceComponents/fields/TimePicker/WithMode.tsx
var WithMode_exports = {};
__export(WithMode_exports, {
  default: () => WithMode_default
});
module.exports = __toCommonJS(WithMode_exports);
var import_react = __toESM(require("react"));
var import_antd = require("antd");
var import_icons = require("@ant-design/icons");
var import_dayjs = __toESM(require("dayjs"));
var import_classnames = __toESM(require("classnames"));
var import_utils = require("@pisell/utils");
var import_select_time = __toESM(require("../../../select-time"));
var import_usePisellConfig = __toESM(require("../../../pisell-config-provider/hooks/usePisellConfig"));
var import_utils2 = require("../../../table/Table/utils");
var import_ReadPretty = __toESM(require("./ReadPretty"));
var import_utils3 = require("../../dataSourceForm/utils");
var import_style = require("./style.less");
var TimePicker = (props) => {
  const config = (0, import_usePisellConfig.default)();
  const {
    format = "HH:mm",
    className,
    size = "middle",
    value,
    onChange,
    disabled,
    placeholder,
    defaultValue: propsDefaultValue
  } = props;
  const normalizedValue = (0, import_react.useMemo)(() => {
    if (!value)
      return void 0;
    if (import_dayjs.default.isDayjs(value))
      return value;
    try {
      return (0, import_dayjs.default)(String(value), format);
    } catch {
      return void 0;
    }
  }, [value, format]);
  const defaultValue = (0, import_react.useMemo)(() => {
    if (!propsDefaultValue)
      return void 0;
    if (import_dayjs.default.isDayjs(propsDefaultValue))
      return propsDefaultValue;
    try {
      return (0, import_dayjs.default)(String(propsDefaultValue), format);
    } catch {
      return void 0;
    }
  }, [propsDefaultValue, format]);
  if (config.platform === "h5") {
    const sizeClassMap = {
      large: "pisell-h5-time-picker-lg",
      middle: "",
      small: "pisell-h5-time-picker-sm"
    };
    const timeFormat = (0, import_utils.isString)(format) ? format : "HH:mm:ss";
    const stepValue = timeFormat.includes("ss") ? 1 : 60;
    return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-h5-time-picker-wrapper" }, /* @__PURE__ */ import_react.default.createElement(
      "input",
      {
        type: "time",
        step: stepValue,
        value: (normalizedValue == null ? void 0 : normalizedValue.format(timeFormat)) || "",
        onChange: (e) => {
          const timeString = e.target.value;
          if (onChange && timeString) {
            const today = (0, import_dayjs.default)().format("YYYY-MM-DD");
            const timeValue = (0, import_dayjs.default)(`${today} ${timeString}`);
            onChange(timeValue, timeValue.format(timeFormat));
          }
        },
        disabled,
        placeholder,
        className: (0, import_classnames.default)(
          "pisell-h5-time-picker",
          sizeClassMap[size],
          className
        )
      }
    ), /* @__PURE__ */ import_react.default.createElement(import_icons.ClockCircleOutlined, { className: "pisell-h5-time-picker-suffix" }));
  }
  if (format === "HH:mm") {
    return /* @__PURE__ */ import_react.default.createElement(
      import_select_time.default,
      {
        value: normalizedValue == null ? void 0 : normalizedValue.format("HH:mm"),
        onChange: (timeString) => {
          if (onChange) {
            const timeValue = timeString ? (0, import_dayjs.default)(`${(0, import_dayjs.default)().format("YYYY-MM-DD")} ${timeString}`) : null;
            onChange(timeValue, timeString || "");
          }
        },
        timePickerProps: {
          format,
          ...(0, import_utils2.omit)(props, ["value", "defaultValue"]) || {}
        },
        popoverProps: {},
        timeProps: {},
        slice: 15
      }
    );
  }
  return /* @__PURE__ */ import_react.default.createElement(import_antd.TimePicker, { ...props, value: normalizedValue, defaultValue });
};
var TimePickerWithMode = (0, import_utils3.withMode)(TimePicker, import_ReadPretty.default);
var WithMode_default = TimePickerWithMode;
