'use strict';

var icons = require('@ant-design/icons');
var iconsReact = require('@cloudtower/icons-react');
var cs = require('classnames');
var React = require('react');
var index$4 = require('../../Icon/index.js');
var index$3 = require('../../Input/index.js');
var index$2 = require('../../InputTagItem/index.js');
var index$1 = require('../../Overflow/index.js');
var index = require('../../Styled/index.js');

function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var cs__default = /*#__PURE__*/_interopDefault(cs);
var React__default = /*#__PURE__*/_interopDefault(React);

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
const FieldsString = (_a) => {
  var _b = _a, {
    input,
    meta,
    autoComplete = "off",
    size,
    tags,
    className,
    allowClear,
    tagsOverflow,
    onTagsAllowClearClick,
    onClick,
    maxLength,
    focusIndicator
  } = _b, props = __objRest(_b, [
    "input",
    "meta",
    "autoComplete",
    "size",
    "tags",
    "className",
    "allowClear",
    "tagsOverflow",
    "onTagsAllowClearClick",
    "onClick",
    "maxLength",
    "focusIndicator"
  ]);
  if (tags == null ? void 0 : tags.length) {
    return /* @__PURE__ */ React__default.default.createElement(
      "div",
      {
        className: cs__default.default(
          className,
          index.KitInputStyle,
          "input-tags",
          allowClear && "kit-input-suffix-wrapper"
        ),
        onClick
      },
      /* @__PURE__ */ React__default.default.createElement("div", { className: "input-tags-inner" }, /* @__PURE__ */ React__default.default.createElement(index$1.default, { overflow: tagsOverflow }, /* @__PURE__ */ React__default.default.createElement("span", { className: "tags-overflow-auto" }, tags.map((tag) => /* @__PURE__ */ React__default.default.createElement(index$2, { key: tag }, tag))))),
      /* @__PURE__ */ React__default.default.createElement("span", { className: "input-tag-suffix" }, allowClear && /* @__PURE__ */ React__default.default.createElement(icons.CloseCircleFilled, { onClick: onTagsAllowClearClick }))
    );
  }
  return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
    index$3,
    __spreadProps(__spreadValues(__spreadProps(__spreadValues({
      className: cs__default.default(
        className,
        index.KitInputStyle,
        focusIndicator && "has-focus-indicator"
      )
    }, input), {
      autoComplete: props.type === "password" ? "new-password" : autoComplete,
      size,
      allowClear,
      onClick,
      prefix: focusIndicator ? /* @__PURE__ */ React__default.default.createElement(index$4, { alt: "focusIndicator16Blue", src: iconsReact.FocusIndicator16BlueIcon }) : void 0,
      error: meta.touched && (meta.error || !meta.dirtySinceLastSubmit && meta.submitError)
    }), props), {
      onChange: (e) => {
        var _a2;
        if (maxLength) {
          e.target.value = e.target.value.substr(0, maxLength);
        }
        (_a2 = input.onChange) == null ? void 0 : _a2.call(input, e);
      }
    })
  ));
};
var FieldsString$1 = FieldsString;

module.exports = FieldsString$1;
