"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _useValidClassnames = require("../../helpers/useValidClassnames.cjs");
var _formatBytes = _interopRequireDefault(require("./formatBytes"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
var FFInput = props => {
  var {
    required,
    inputStyle,
    showValidity,
    bsSize,
    statusMsg,
    hasValue,
    value,
    valid,
    ftypeIcon,
    onDownload,
    onBrowse
  } = props;
  var [className] = (0, _useValidClassnames.useValidClassnames)(valid, showValidity, () => hasValue || !required);
  return /*#__PURE__*/_react.default.createElement("div", {
    style: _objectSpread({
      opacity: "1",
      zIndex: "3",
      position: "absolute",
      width: ftypeIcon == undefined ? "100%" : bsSize == 'sm' ? "calc(100% - 74px)" : bsSize == 'lg' ? "calc(100% - 91px)" : "calc(100% - 82px)",
      left: ftypeIcon != undefined ? bsSize == 'sm' ? "35px" : bsSize == 'lg' ? "51px" : "42px" : "",
      display: "flex",
      cursor: 'pointer',
      userSelect: 'none'
    }, inputStyle),
    className: "form-control ".concat(className, " ").concat(bsSize != undefined ? 'form-control-' + bsSize : ''),
    onClick: hasValue ? ev => onDownload(ev) : _ => onBrowse()
  }, hasValue ? /*#__PURE__*/_react.default.createElement("div", {
    style: {
      display: "flex",
      width: "100%",
      alignItems: "stretch"
    }
  }, /*#__PURE__*/_react.default.createElement("div", {
    style: {
      whiteSpace: "nowrap",
      overflow: "hidden",
      textOverflow: "ellipsis"
    }
  }, "".concat(onDownload != undefined ? '⤓ ' : '').concat(value.name)), /*#__PURE__*/_react.default.createElement("div", {
    style: {
      flex: "1 1 auto",
      textAlign: "right"
    }
  }, /*#__PURE__*/_react.default.createElement("i", {
    style: {
      fontSize: "0.6em",
      opacity: "0.75",
      whiteSpace: "nowrap"
    }
  }, " (".concat((0, _formatBytes.default)(value.size), ")")))) : statusMsg != undefined ? statusMsg : '...');
};
var _default = FFInput;
exports.default = _default;