"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

var _typeof = require("@babel/runtime/helpers/typeof");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = _default;

require("maycur-antd/lib/button/style/css");

var _button = _interopRequireDefault(require("maycur-antd/lib/button"));

var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));

var _react = _interopRequireWildcard(require("react"));

var _FormFood = _interopRequireDefault(require("../../WebFormFood/FormFood"));

var _FormDish = _interopRequireDefault(require("../../FormDish/FormDish"));

var _FormFields = _interopRequireDefault(require("../../FormFields"));

var _EditableTable = _interopRequireDefault(require("../EditableTable"));

var _utils = _interopRequireDefault(require("../../utils/utils"));

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

var InputField = _FormFields.default.InputField,
    MoneyField = _FormFields.default.MoneyField;
var fieldMaps = {
  SingleTextInput: InputField,
  AmountInput: MoneyField
};
var FieldFood = (0, _FormDish.default)(_FormFood.default, {
  fieldMaps: fieldMaps
});
var EditableTable = (0, _EditableTable.default)({
  FieldFood: FieldFood
});
var formFields = [{
  identifier: 'name',
  property: {
    label: '名称'
  },
  children: [{
    identifier: 'name_1',
    type: 'SingleTextInput',
    property: {
      isFieldHide: false,
      required: true,
      placeholder: '请输入名称',
      label: '名称1'
    }
  }, {
    identifier: 'name_2',
    type: 'SingleTextInput',
    property: {
      isFieldHide: false,
      required: true,
      placeholder: '请输入名称',
      label: '名称2'
    }
  }]
}, {
  identifier: 'schedules',
  property: {
    label: '金额'
  },
  children: [{
    identifier: 'schedules_1',
    type: 'AmountInput',
    property: {
      label: '金额1',
      required: true,
      isFieldHide: false,
      placeholder: '请输入金额'
    }
  }, {
    identifier: 'schedules_2',
    type: 'AmountInput',
    property: {
      label: '金额2',
      required: true,
      isFieldHide: false,
      placeholder: '请输入金额'
    }
  }]
}];

function _default(props) {
  var _useState = (0, _react.useState)([]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      value = _useState2[0],
      setValue = _useState2[1];

  var onAdd = function onAdd() {
    setValue([].concat((0, _toConsumableArray2.default)(value), [{
      key: _utils.default.makeId()
    }]));
  };

  var onDelete = function onDelete(index) {
    var _value = (0, _toConsumableArray2.default)(value);

    if (index > -1) {
      _value.splice(index, 1);
    }

    setValue(_value);
  };

  var onChange = function onChange(newValue) {
    setValue(newValue);
  };

  var addExtraColumns = function addExtraColumns(formFields) {
    formFields.unshift({
      identifier: 'sequence',
      editable: false,
      width: 80,
      property: {
        label: '序号'
      },
      render: function render(value, row, index) {
        return index + 1;
      }
    });
    formFields.push({
      identifier: 'opt',
      editable: false,
      width: 80,
      property: {
        label: '操作'
      },
      render: function render(value, row, index) {
        return /*#__PURE__*/_react.default.createElement("span", {
          onClick: onDelete.bind(null, index)
        }, "\u5220\u9664");
      }
    });
    return formFields;
  };

  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_button.default, {
    type: "primary",
    onClick: onAdd
  }, "\u6DFB\u52A0\u4E00\u884C"), /*#__PURE__*/_react.default.createElement(EditableTable, {
    formFields: formFields,
    value: value,
    onChange: onChange,
    addExtraColumns: addExtraColumns
  }));
}