var _excluded = ["data", "fileType", "disabled", "serviceName", "moduleName", "fileSource", "businessId", "value", "defaultValue", "onChange"];

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

import * as React from 'react';
import Image from '../image';
import { useBoolean } from 'ahooks';
import { isFunction } from 'lodash-es';
import { global } from '@parallel-line/utils';
import { imageMap } from './imageMap';
import InternalUpload from './Upload';

function validator(_, value) {
  if ((value === null || value === void 0 ? void 0 : value.success) === false) {
    return Promise.reject(value.msg);
  }

  return Promise.resolve(true);
}

var InternalOCR = function InternalOCR(props, ref) {
  var _global$companyInfo$i, _global$companyInfo;

  var _data = props.data,
      fileType = props.fileType,
      disabled = props.disabled,
      serviceName = props.serviceName,
      moduleName = props.moduleName,
      _props$fileSource = props.fileSource,
      fileSource = _props$fileSource === void 0 ? 12 : _props$fileSource,
      _props$businessId = props.businessId,
      businessId = _props$businessId === void 0 ? (_global$companyInfo$i = global === null || global === void 0 ? void 0 : (_global$companyInfo = global.companyInfo) === null || _global$companyInfo === void 0 ? void 0 : _global$companyInfo.id) !== null && _global$companyInfo$i !== void 0 ? _global$companyInfo$i : localStorage.getItem('pxx_userId') : _props$businessId,
      value = props.value,
      defaultValue = props.defaultValue,
      onChange = props.onChange,
      restProps = _objectWithoutProperties(props, _excluded);

  var _useBoolean = useBoolean(props.loading),
      _useBoolean2 = _slicedToArray(_useBoolean, 2),
      loading = _useBoolean2[0],
      toggle = _useBoolean2[1].toggle;

  var _React$useState = React.useState(_objectSpread(_objectSpread(_objectSpread({}, imageMap[fileType]), props.imageProps), {}, {
    onDelete: function onDelete() {
      var _props$onImageProps;

      var newImageProps = _objectSpread(_objectSpread({}, imageProps), {}, {
        src: imageMap[fileType].src,
        preview: false,
        delete: false
      });

      setImageProps(newImageProps);
      (_props$onImageProps = props.onImageProps) === null || _props$onImageProps === void 0 ? void 0 : _props$onImageProps.call(props, newImageProps);
    }
  })),
      _React$useState2 = _slicedToArray(_React$useState, 2),
      imageProps = _React$useState2[0],
      setImageProps = _React$useState2[1];

  var ocrProps = _objectSpread(_objectSpread({
    action: '/host/ocr',
    showUploadList: false,
    disabled: disabled || loading,
    data: function data(file) {
      return _objectSpread({
        waterMark: 0,
        serviceName: serviceName,
        moduleName: moduleName,
        businessId: businessId,
        fileSource: fileSource,
        fileType: fileType
      }, isFunction(_data) ? _data(file) : _data);
    }
  }, restProps), {}, {
    listType: 'picture',
    placeholder: /*#__PURE__*/React.createElement(Image, Object.assign({}, imageProps)),
    imageProps: imageProps,
    onImageProps: function onImageProps(imageProps) {
      var _props$onImageProps2;

      var newImageProps = _objectSpread(_objectSpread({}, imageMap[fileType]), imageProps);

      setImageProps(newImageProps);
      (_props$onImageProps2 = props.onImageProps) === null || _props$onImageProps2 === void 0 ? void 0 : _props$onImageProps2.call(props, newImageProps);
    },
    loading: loading,
    onLoading: function onLoading(loading) {
      var _props$onLoading;

      toggle(loading);
      (_props$onLoading = props.onLoading) === null || _props$onLoading === void 0 ? void 0 : _props$onLoading.call(props, loading);
    }
  });

  return /*#__PURE__*/React.createElement(InternalUpload, Object.assign({
    ref: ref
  }, ocrProps));
};

var OCR = /*#__PURE__*/React.forwardRef(InternalOCR);
OCR.validator = validator;
OCR.displayName = 'OCR';
export { OCR };