UNPKG

hc-components

Version:

基于react的通用组件库

11,288 lines 384 kB
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 57);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

module.exports = require("react");

/***/ }),
/* 1 */
/***/ (function(module, exports) {

module.exports = require("prop-types");

/***/ }),
/* 2 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/icon");

/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function localeContext(name, defaultLocale) {
  return function (BaseComponent) {
    BaseComponent.contextTypes = Object.assign(BaseComponent.contextTypes || {}, { antLocale: _propTypes2.default.object, app: _propTypes2.default.object });

    BaseComponent.prototype.getLocale = function (key) {
      var locale = void 0;
      if (this.context.locale) {
        locale = this.context.locale;
      } else {
        locale = this.context.locale = Object.assign(this.context.antLocale && this.context.antLocale[name] || {}, defaultLocale, this.props && this.props.locale);
      }
      if (key) {
        return locale[key];
      } else {
        return locale;
      }
    };
    return BaseComponent;
  };
}

/***/ }),
/* 4 */
/***/ (function(module, exports) {

module.exports = require("react-router");

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

exports.getComponent = getComponent;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _hoistNonReactStatics = __webpack_require__(16);

var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function getComponent(option, getProps) {
  if (option === false) {
    return function () {
      return EmptyComponent;
    };
  } else if (!option && !getProps) {
    return function (BaseComponent) {
      return BaseComponent;
    };
  }
  var AppointComponent = void 0;
  var propValues = {};
  if (option && option.prototype && option.prototype.isReactComponent) {
    AppointComponent = option;
  } else {
    propValues = option || {};
  }

  var decorator = function decorator(BaseComponent) {
    AppointComponent = AppointComponent || BaseComponent || EmptyComponent;

    var Component = function (_React$PureComponent) {
      _inherits(Component, _React$PureComponent);

      function Component(props) {
        _classCallCheck(this, Component);

        var _this = _possibleConstructorReturn(this, (Component.__proto__ || Object.getPrototypeOf(Component)).call(this, props));

        if (BaseComponent && !BaseComponent.prototype.isReactComponent) {
          _this.state = {
            stateProps: {},
            Component: EmptyComponent
          };
          _this._getComponent = BaseComponent;
        } else {
          _this.state = {
            stateProps: {},
            Component: AppointComponent
          };
        }
        return _this;
      }

      _createClass(Component, [{
        key: 'componentDidMount',
        value: function componentDidMount() {
          var _this2 = this;

          this.mounted = true;
          if (this._getComponent) {
            this._getComponent(this.context, function (err, component, props) {
              if (err) {
                window.console.error(err);
              } else {
                if (_this2.mounted) {
                  _this2.setState({
                    stateProps: props || {},
                    Component: component
                  });
                }
              }
            }, function (nextState) {
              return _this2.setState({ stateProps: Object.assign({}, _this2.state.stateProps, nextState) });
            });
          }
        }
      }, {
        key: 'componentWillUnmount',
        value: function componentWillUnmount() {
          this.mounted = false;
        }
      }, {
        key: 'getRealInstance',
        value: function getRealInstance() {
          return this._wrappedComponent;
        }
      }, {
        key: 'render',
        value: function render() {
          var _this3 = this;

          var _state = this.state,
              stateProps = _state.stateProps,
              Component = _state.Component;

          var newProps = Object.assign({}, propValues);
          for (var key in this.props) {
            if (newProps[key] === undefined) {
              newProps[key] = this.props[key];
            }
          }
          var asyncProps = getProps ? getProps(newProps, this.context, function (nextProps) {
            _this3.setState({
              stateProps: Object.assign({}, _this3.state.stateProps, nextProps)
            });
          }) : {};
          return _react2.default.createElement(Component, _extends({ ref: function ref(inst) {
              return _this3._wrappedComponent = inst;
            } }, newProps, asyncProps, stateProps));
        }
      }]);

      return Component;
    }(_react2.default.PureComponent);

    var newComponent = (0, _hoistNonReactStatics2.default)(Component, AppointComponent);
    if (BaseComponent && BaseComponent.contextTypes) {
      newComponent.contextTypes = Object.assign(newComponent.contextTypes || {}, BaseComponent.contextTypes);
    }
    return newComponent;
  };
  return decorator;
}

/* eslint-disable react/prop-types */
function EmptyComponent(props) {
  return _react2.default.createElement(
    'span',
    { id: props.id },
    props.children
  );
}
getComponent.emptyComponent = EmptyComponent;

/***/ }),
/* 6 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/input");

/***/ }),
/* 7 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/message");

/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _getComponent2 = __webpack_require__(5);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function loop(arrOrMap, callback) {
  if (Array.isArray(arrOrMap)) {
    arrOrMap.forEach(callback);
  } else {
    for (var key in arrOrMap) {
      var item = arrOrMap[key];
      var newItem = { key: key };
      if (typeof item === 'function') {
        if (item.prototype && item.prototype.isReactComponent) {
          newItem.component = item;
        } else {
          newItem.getProps = item;
        }
      } else if (item === false) {
        newItem.props = false;
      } else {
        Object.assign(newItem, item);
      }
      callback(newItem);
    }
  }
}

var BasicLayout = exports.BasicLayout = (_temp = _class = function (_React$PureComponent) {
  _inherits(BasicLayout, _React$PureComponent);

  function BasicLayout() {
    _classCallCheck(this, BasicLayout);

    return _possibleConstructorReturn(this, (BasicLayout.__proto__ || Object.getPrototypeOf(BasicLayout)).apply(this, arguments));
  }

  _createClass(BasicLayout, [{
    key: 'getComponent',
    value: function getComponent(name) {
      return this.props.components[name] || _getComponent2.getComponent.emptyComponent;
    }
  }, {
    key: 'hasComponent',
    value: function hasComponent(name) {
      return this.props.components[name] && this.props.components[name] !== _getComponent2.getComponent.emptyComponent;
    }
  }]);

  return BasicLayout;
}(_react2.default.PureComponent), _class.getLayoutProps = function (option, viewContent) {
  option.__widgets__ = option.__widgets__ || {};
  var layoutProps = Object.assign({
    route: option.route,
    viewContent: viewContent,
    components: Object.assign({}, option.__widgets__),
    style: option.style
  }, option.props);
  var layoutBlocks = Object.assign({}, this.layoutBlocks);
  loop(option.components, function (item) {
    var Com = item.component || layoutBlocks[item.key];
    if (Com) {
      delete item.component;
      delete layoutBlocks[item.key];
      layoutProps.components[item.key] = layoutProps.components[item.key] || (0, _getComponent2.getComponent)(item.props, item.getProps)(Com);
      if (item.props && item.static) {
        option.__widgets__[item.key] = layoutProps.components[item.key];
      }
    }
  });
  for (var name in layoutBlocks) {
    layoutProps.components[name] = layoutProps.components[name];
    if (layoutBlocks[name].props && layoutBlocks[name].static) {
      option.__widgets__[name] = layoutProps.components[name];
    }
  }
  var customLayoutProps = this.displayName && option[this.displayName];
  for (var key in customLayoutProps) {
    if (key === 'components') {
      Object.assign(layoutProps.components, customLayoutProps[key]);
    } else {
      layoutProps[key] = customLayoutProps[key];
    }
  }
  return layoutProps;
}, _class.propTypes = {
  className: _propTypes2.default.string,
  components: _propTypes2.default.object,
  viewContent: _propTypes2.default.element,
  children: _propTypes2.default.element,
  style: _propTypes2.default.object
}, _class.defaultProps = {
  className: '',
  components: {}
}, _temp);

/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };

exports.formatLayer = formatLayer;

var _merge = __webpack_require__(61);

var _merge2 = _interopRequireDefault(_merge);

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

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; }
// see: http://gitlab.alibaba-inc.com/openad/oa-ui/issues/57723


function safeMerge(o, b) {
  for (var key in b) {
    if (o.hasOwnProperty(key)) {
      window.console.warn('存在相同属性,即将被覆盖');
    }
    o[key] = b[key];
  }
  return o;
}

function getParameters(pm, state) {
  var params = {};

  if (pm) {
    pm.forEach(function (m) {
      params[m.name] = state[m.name] || m.value;
    });
  }

  return params;
}

function getDataByStructure(ret, structure, fields) {
  var asyncProps = {};
  var collections = [];
  var dataSource = ret;
  if (dataSource) {
    if (!Array.isArray(dataSource)) {
      dataSource = [dataSource];
    }
  } else {
    dataSource = [];
  }

  var _loop = function _loop(key) {
    var field = structure[key];
    // value: 'series[0].data
    if (typeof field === 'string') {
      field = {
        propName: field
      };
    }
    /**
     * field = {
     *  dataIndex,
     *  propName,
     *  // 只在对象时有效
     *  extend,
     *  data,
     *  district,
     *  groupBy,
     *  noLoop
     * }
     */
    field.dataIndex = field.dataIndex || key;
    field.propName = field.propName || key;

    var data = [];
    if (field.noLoop) {
      // dataFilter还有这个用处
      var _dataFilter = converter.parse(field.dataFilter);
      if (_dataFilter) {
        data = _dataFilter(ret, fields);
      } else {
        data = field.data || ret;
      }
    }

    if (field.groupBy) {
      var map = {};
      var index = 0;
      dataSource.forEach(function (item) {
        if (!map[item[field.groupBy]]) {
          collections.push({
            field: Object.assign({}, field, { propName: field.propName.replace('${x}', index++) }),
            data: field.noLoop ? data : [],
            dataMap: {}
          });
        }
        map[item[field.groupBy]] = true;
      });
    } else {
      collections.push({
        field: field,
        data: data,
        dataMap: {}
      });
    }
  };

  for (var key in structure) {
    _loop(key);
  }
  dataSource.forEach(function (item, index) {
    collections.forEach(function (map) {
      if (map.field.noLoop) return;

      var value = item[map.field.dataIndex];
      var _dataFilter = converter.parse(map.field.dataFilter);
      var newItem = item;
      if (_dataFilter) {
        newItem = _dataFilter(item, dataSource, fields, index);
      } else if (map.field.dataIndex) {
        newItem = value;
      }
      var flag = map.field.groupBy ? item[map.field.groupBy] !== undefined : true;
      if (flag) {
        if (map.field.district) {
          map.dataMap[value] = newItem;
        } else {
          map.data.push(newItem);
        }
      }
    });
  });

  collections.forEach(function (col) {
    var key = col.field.propName;
    var ks = key.split('.');
    var last = ks.length - 1;
    var prop = asyncProps;
    var lastProp = void 0;

    ks.forEach(function (tmp, index) {
      // xxx[x]
      if (tmp[tmp.length - 1] === ']') {
        var pos = tmp.indexOf('[');
        var num = tmp.slice(pos + 1, -1);
        var name = tmp.substr(0, pos);
        prop = prop[name] = prop[name] || [];

        // xxx[x].xx
        if (index < last) {
          if (num) {
            prop = prop[num] = {};
          } else {
            var _tmp = {};
            prop.push(_tmp);
            prop = _tmp;
          }
        } else {
          // xxx[x]
          lastProp = prop;
          key = num;
        }
      } else if (index < last) {
        // xxx[x].xx
        prop = prop[tmp] = prop[tmp] || {};
      } else {
        lastProp = prop;
        key = tmp;
      }
    });
    var data = void 0;
    if (col.field.district) {
      data = [];
      for (var k in col.dataMap) {
        data.push(col.dataMap[k]);
      }
    } else {
      data = col.data;
    }
    if (Array.isArray(lastProp)) {
      if (key === undefined) {
        lastProp.push(data);
      } else {
        lastProp[key] = data;
      }
    } else {
      lastProp[key] = data;
      if (col.field.extend) {
        safeMerge(lastProp, col.field.extend);
      }
    }
  });
  window.console.log(asyncProps);
  return asyncProps;
}

function dataRender(ret, structure, fields, dataFilter, dataPropName) {
  // 通过数据处理器返回
  if (dataFilter) {
    ret = dataFilter(ret, fields);
    // 通过结构返回
  } else if (structure) {
    ret = getDataByStructure(ret, structure, fields);
    // 通过赋值属性返回
  }
  if (dataPropName) {
    return _defineProperty({}, dataPropName, ret);
  } else {
    return ret || {};
  }
}

function bindStateObserver(Com, props, pm, stateObserver) {
  if (pm || stateObserver) {
    var _class, _temp;

    var routeHelper = void 0;
    stateObserver = stateObserver ? [].concat(stateObserver) : [];
    stateObserver.forEach(function (_ref2) {
      var trigger = _ref2.trigger,
          getValueFromEvent = _ref2.getValueFromEvent;

      props[trigger] = function () {
        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }

        getValueFromEvent = converter.parse(getValueFromEvent);
        var obj = getValueFromEvent ? getValueFromEvent.apply(undefined, args) : args[0];
        routeHelper && routeHelper.setState(obj);
      };
    });
    var newCom = (_temp = _class = function (_Com) {
      _inherits(newCom, _Com);

      function newCom(props, context) {
        _classCallCheck(this, newCom);

        var _this = _possibleConstructorReturn(this, (newCom.__proto__ || Object.getPrototypeOf(newCom)).call(this, props, context));

        routeHelper = context.routeHelper;
        return _this;
      }

      _createClass(newCom, [{
        key: 'componentDidMount',
        value: function componentDidMount() {
          var _this2 = this;

          _get(newCom.prototype.__proto__ || Object.getPrototypeOf(newCom.prototype), 'componentDidMount', this) && _get(newCom.prototype.__proto__ || Object.getPrototypeOf(newCom.prototype), 'componentDidMount', this).call(this);
          if (pm) {
            this.__watcher = function (nextState, prevState) {
              var hasChange = false;
              var mastChange = true;
              pm.forEach(function (item) {
                // _ID_ &&
                if (item.name[0] === '_' && item.name[item.name.length - 1] === '_') {
                  mastChange = nextState[item.name] !== prevState[item.name];
                } else {
                  // ||
                  hasChange = hasChange || nextState[item.name] !== prevState[item.name];
                }
              });
              return mastChange && hasChange;
            };
            this.context.routeHelper.watch(this.__watcher, function (nextState) {
              if (_this2 && _this2.handleResolve) {
                _this2.handleResolve(nextState);
              }
            });
          }
        }
      }, {
        key: 'componentWillUnmount',
        value: function componentWillUnmount() {
          _get(newCom.prototype.__proto__ || Object.getPrototypeOf(newCom.prototype), 'componentWillUnmount', this) && _get(newCom.prototype.__proto__ || Object.getPrototypeOf(newCom.prototype), 'componentWillUnmount', this).call(this);
          this.context.routeHelper.unwatch(this.__watcher);
        }
      }]);

      return newCom;
    }(Com), _class.contextTypes = {
      routeHelper: _propTypes2.default.object
    }, _temp);


    return newCom;
  } else {
    return Com;
  }
}

function setFields(fields, elements, context) {
  var newFields = [];
  fields.forEach(function (item) {
    var _dataFilter = converter.parse(item.dataFilter);
    if (_dataFilter) {
      item = _dataFilter(item, fields, context);
      if (item.component) {
        item.Component = context.layer.findComponent(item.component);
      }
    }
    newFields.push(safeMerge(item, elements && elements[item.dataIndex]));
  });
  return newFields;
}

var defaultLayerOptoin = { cname: 'SimpleLayer', componentType: 'custom' };

function formatLayerLoop(modules, layerOption, widgetsOption, dataQuery) {
  if (!layerOption) {
    return null;
  }
  var widgets = [];
  var widgetsMap = {};
  widgetsOption = widgetsOption || modules;
  widgetsOption.forEach(function (item, index) {
    if (typeof item === 'string') {
      widgetsMap[item] = { orderIndex: index, option: {} };
    } else {
      widgetsMap[item.name] = { orderIndex: index, option: item };
    }
  });
  modules.forEach(function (mod) {
    if (!mod.name || !widgetsMap[mod.name]) {
      return;
    }
    var orderIndex = widgetsMap[mod.name].orderIndex;
    var _widgetsMap$mod$name$ = widgetsMap[mod.name].option,
        layer = _widgetsMap$mod$name$.layer,
        layout = _widgetsMap$mod$name$.layout,
        blocks = _widgetsMap$mod$name$.blocks,
        elements = _widgetsMap$mod$name$.elements,
        attrs = _widgetsMap$mod$name$.attrs,
        props = _widgetsMap$mod$name$.props;
    var name = mod.name,
        pt = mod.pt,
        pm = mod.pm;

    var ds = mod.ds || {};

    var widget = void 0;
    // 容器
    if (pt.blocks) {
      widget = {
        layout: layout,
        layer: formatLayerLoop(pt.blocks, layer || defaultLayerOptoin, blocks, dataQuery)
      };
    } else {
      // 组件
      var fields = pt.fields;
      var _pt$dataset = pt.dataset,
          fieldPropName = _pt$dataset.fieldPropName,
          dataPropName = _pt$dataset.dataPropName,
          structure = _pt$dataset.structure,
          component = _pt$dataset.component,
          stateObserver = _pt$dataset.stateObserver;

      var dataFilter = converter.parse(pt.dataset.dataFilter);

      widget = component || {};
      widget.key = widget.key || name;
      widget.contextTypes = widget.contextTypes || [];

      var map = {};
      widget.contextTypes.forEach(function (t) {
        return map[t] = t;
      });
      ['app', 'layer', 'hocCreator', 'routeHelper'].forEach(function (service) {
        if (map[service] === undefined) {
          widget.contextTypes.push(service);
        }
      });

      if (!ds.data && (ds.api || pm || stateObserver)) {
        // 动态组件
        widget.getComponent = function (context, callback) {
          var hasReady = widget.contextTypes.every(function (name) {
            return context[name];
          });
          if (hasReady) {
            var Com = context.layer.findComponent(widget.cname, widget.componentType);
            // 封装成Hoc组件,动态获取数据
            var asyncProps = Object.assign({}, props);
            if (!asyncProps[fieldPropName] && fieldPropName && fields) {
              // 静态字段结构
              asyncProps[fieldPropName] = setFields(fields, elements, context);
            }

            if (ds.api) {
              var RichCom = context.hocCreator.getRichComponent(Com, {
                getResolver: function getResolver(state) {
                  state = state || context.routeHelper.state;
                  // 发起请求
                  return context.app.ajax[ds.method || 'post'](ds.api, Object.assign({
                    structure: ds.structure,
                    statement: ds.statement,
                    parameters: getParameters(pm, state)
                  }, dataQuery)).then(function (ret) {
                    return dataRender(ret, structure, fields, dataFilter, dataPropName);
                  });
                },
                childProps: asyncProps
              });
              callback(null, bindStateObserver(RichCom, asyncProps, pm, stateObserver));
            } else {
              callback(null, bindStateObserver(Com, asyncProps, pm, stateObserver), asyncProps);
            }
          } else {
            window.console.warn('服务丢失:' + widget.contextTypes.join(', '));
            callback(null, function () {
              return _react2.default.createElement('div', null);
            });
          }
        };
      } else {
        var getProps = converter.parse(widget.getProps);
        widget.getProps = function (props, context) {
          var syncProps = getProps ? getProps(props, context) : {};
          Object.assign(syncProps, dataRender(ds.data, structure, fields, dataFilter, dataPropName));
          // 静态组件
          if (!syncProps[fieldPropName] && fieldPropName && fields) {
            // 静态字段结构
            // TODO layer
            syncProps[fieldPropName] = setFields(fields, elements, context);
          }

          return syncProps;
        };

        widget.props = (0, _merge2.default)(widget.props || {}, props);
      }
    }

    // 把skeleton的属性和定位信息合并进来
    widget.attrs = (0, _merge2.default)(widget.attrs || {}, attrs);
    // 是否有title
    if (pt.hasTitle) {
      if (pt.title) {
        widget.attrs.title = pt.title;
      } else {
        window.console.warn('title不能为空');
      }
    }

    widgets[orderIndex] = widget;
  });
  return Object.assign(layerOption, {
    // 组件处理
    components: widgets
  });
}

var converter = exports.converter = {
  transform: function transform(code) {
    return code;
  },
  stringify: function stringify(obj) {
    try {
      if (Object(obj) === obj) {
        return JSON.stringify(obj, function (k, v) {
          if (typeof v === 'function') {
            return v.toString();
          } else {
            return v;
          }
        }, 2);
      } else if (obj) {
        return obj.toString();
      }
    } catch (e) {
      window.console.error(e);
    }
  },
  parse: function parse(obj) {
    try {
      if (typeof obj === 'function') {
        return obj;
      } else if (Object(obj) === obj) {
        return JSON.parse(obj, function (k, v) {
          if (typeof v === 'string' && v.indexOf('function') === 0) {
            return new Function('return ' + obj)();
          } else {
            return v;
          }
        }, 2);
      } else {
        return new Function('return ' + obj)();
      }
    } catch (e) {
      window.console.error(e);
    }
  }
};

function formatLayer(pageSetting, dataQuery) {
  try {
    var _ref3 = Object(pageSetting) === pageSetting ? pageSetting : JSON.parse(pageSetting),
        blocks = _ref3.blocks,
        skeleton = _ref3.skeleton;

    if (skeleton && blocks) {
      return {
        layout: skeleton.layout,
        layer: formatLayerLoop(blocks, skeleton.layer, skeleton.blocks, dataQuery)
      };
    } else {
      return {};
    }
  } catch (e) {
    window.console.error(e);
  }
  return {};
}

/***/ }),
/* 10 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/form");

/***/ }),
/* 11 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/card");

/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _menu = __webpack_require__(19);

var _menu2 = _interopRequireDefault(_menu);

var _button = __webpack_require__(17);

var _button2 = _interopRequireDefault(_button);

var _dropdown = __webpack_require__(31);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _localeContext = __webpack_require__(3);

__webpack_require__(77);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var NavLink = exports.NavLink = (_dec = (0, _localeContext.localeContext)('NavLink', {
  more: '更多'
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(NavLink, _React$PureComponent);

  function NavLink() {
    _classCallCheck(this, NavLink);

    return _possibleConstructorReturn(this, (NavLink.__proto__ || Object.getPrototypeOf(NavLink)).apply(this, arguments));
  }

  _createClass(NavLink, [{
    key: 'setAction',
    value: function setAction(key, flag) {
      var item = void 0;
      if (Object(key) === key) {
        item = key;
      } else {
        item = this.props.links.find(function (item) {
          return item.key === key;
        }) || this.props.menus.find(function (item) {
          return item.key === key;
        });
      }

      if (item.propName) {
        item[item.propName] = flag;
      }

      this.forceUpdate();

      return item;
    }
  }, {
    key: 'handleClick',
    value: function handleClick(e) {
      var _this2 = this;

      var key = e.key;

      var item = this.setAction(key, true);
      var action = item.action || this.props.onClick;

      var cancelCallback = function cancelCallback() {
        _this2.setAction(item, false);
      };
      if (action) {
        if (!action(e, this.props.data, cancelCallback)) {
          cancelCallback();
        }
      } else {
        cancelCallback();
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var handleClick = this.handleClick.bind(this);
      var _props = this.props,
          links = _props.links,
          menus = _props.menus,
          data = _props.data,
          className = _props.className,
          style = _props.style;

      var menu = _react2.default.createElement(
        _menu2.default,
        { onClick: function onClick(e) {
            return handleClick(e);
          }, className: 'j-com-dropdown-link' },
        menus.map(function (item, index) {
          var propsByState = item.getProps ? item.getProps(data) : {};
          return _react2.default.createElement(
            _menu2.default.Item,
            _extends({
              key: item.key || index,
              disabled: item.disabled,
              loading: item.loading
            }, propsByState),
            _react2.default.createElement(
              'a',
              null,
              item.render ? item.render() : item.name
            )
          );
        })
      );
      return _react2.default.createElement(
        'div',
        { className: 'j-com-nav-link ' + className, style: style },
        links.map(function (item, index) {
          var propsByState = item.getProps ? item.getProps(data) : {};
          return _react2.default.createElement(
            _button2.default,
            _extends({
              size: item.size ? item.size : 'small',
              type: item.type ? item.type : 'button',
              className: item.type ? '' : 'ant-btn-link',
              key: item.key || index,
              disabled: item.disabled,
              loading: item.loading,
              onClick: function onClick() {
                return handleClick(item);
              }
            }, propsByState),
            item.href ? _react2.default.createElement(
              'a',
              { href: item.href, target: item.target || '_blank' },
              item.render ? item.render() : item.name
            ) : _react2.default.createElement(
              'span',
              null,
              item.render ? item.render() : item.name
            )
          );
        }),
        menus.length ? this.props.menuLabel ? _react2.default.createElement(
          _dropdown2.default.Button,
          { overlay: menu },
          this.props.menuLabel
        ) : _react2.default.createElement(
          _dropdown2.default,
          { overlay: menu },
          _react2.default.createElement(
            'a',
            { className: 'ant-dropdown-link ant-btn-link' },
            this.getLocale().more,
            _react2.default.createElement(_icon2.default, { type: 'down' })
          )
        ) : null
      );
    }
  }]);

  return NavLink;
}(_react2.default.PureComponent), _class2.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  links: _propTypes2.default.array,
  menus: _propTypes2.default.array,
  onClick: _propTypes2.default.func,
  data: _propTypes2.default.any,
  menuLabel: _propTypes2.default.any
}, _class2.defaultProps = {
  className: '',
  links: [],
  menus: []
}, _temp)) || _class);

/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

__webpack_require__(86);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var GlobalFooter = exports.GlobalFooter = (_temp = _class = function (_React$PureComponent) {
  _inherits(GlobalFooter, _React$PureComponent);

  function GlobalFooter() {
    _classCallCheck(this, GlobalFooter);

    return _possibleConstructorReturn(this, (GlobalFooter.__proto__ || Object.getPrototypeOf(GlobalFooter)).apply(this, arguments));
  }

  _createClass(GlobalFooter, [{
    key: 'render',
    value: function render() {
      var _props = this.props,
          className = _props.className,
          style = _props.style,
          links = _props.links,
          copyright = _props.copyright;


      return _react2.default.createElement(
        'div',
        { className: 'j-com-globalFooter ' + className, style: style },
        links && _react2.default.createElement(
          'div',
          { className: 'links' },
          links.map(function (link) {
            var linkProps = link.action ? {
              onClick: function onClick(e) {
                return link.action(e, link);
              }
            } : {
              target: link.blankTarget ? '_blank' : '_self',
              href: link.href
            };
            return _react2.default.createElement(
              'a',
              _extends({ key: link.name || link.title }, linkProps),
              link.title
            );
          })
        ),
        copyright && _react2.default.createElement(
          'div',
          { className: 'copyright' },
          copyright
        )
      );
    }
  }]);

  return GlobalFooter;
}(_react2.default.PureComponent), _class.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  links: _propTypes2.default.array,
  copyright: _propTypes2.default.string
}, _class.defaultProps = {
  className: ''
}, _temp);

/***/ }),
/* 14 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/layout");

/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.findService = exports.gallery = undefined;

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

exports.findComponent = findComponent;
exports.setGallery = setGallery;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _upperFirst = __webpack_require__(25);

var _upperFirst2 = _interopRequireDefault(_upperFirst);

var _getComponent = __webpack_require__(5);

var _layerConvertor = __webpack_require__(9);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var hcGetComponent = _getComponent.getComponent;
var gallery = exports.gallery = {
  layouts: {
    name: 'layout',
    items: {}
  },
  services: {
    name: 'service',
    items: {}
  },
  layers: {
    name: 'layer',
    items: {}
  },
  components: {
    name: 'component',
    items: {
      custom: { name: 'custom', items: {} },
      hc: { name: 'hc', items: {} },
      antd: { name: 'antd', items: {} },
      material: { name: 'material', items: {} }
    }
  }
};

function findComponent() {
  var cname = void 0;
  var componentType = void 0;
  var component = void 0;
  var getComponent = void 0;
  var contextTypes = void 0;
  var hoc = void 0;
  var props = void 0;
  var getProps = void 0;
  var galleryType = void 0;
  var original = void 0;

  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  if (Object(args[0]) === args[0]) {
    var _args$ = args[0];
    cname = _args$.cname;
    componentType = _args$.componentType;
    component = _args$.component;
    props = _args$.props;
    getProps = _args$.getProps;
    getComponent = _args$.getComponent;
    contextTypes = _args$.contextTypes;
    hoc = _args$.hoc;

    original = args[1];
    galleryType = args[2];
  } else {
    cname = args[0];
    componentType = args[1];
    component = args[2];
    props = args[3];
    getProps = args[4];
    getComponent = args[5];
    contextTypes = args[6];
    hoc = args[7];
    original = args[8];
    galleryType = args[9];
  }
  var decorative = !original;

  var componentList = galleryType ? gallery[galleryType] : gallery.components.items[componentType] || gallery.components.items['custom'];

  var newComponent = void 0;
  var async = void 0;
  if (getComponent) {
    newComponent = _layerConvertor.converter.parse(getComponent);
    async = true;
    newComponent._async = async;
  } else {
    if (typeof component === 'function') {
      // 本身就是组件
      newComponent = component;
    } else if (cname) {
      /**
       * com = {
       *  componentType: [antd|custom|hc|material],
       *  cname: 'x',
       *  props: {
       *    ...
       *  }
       * }
       */
      var cs = cname.split('.');
      newComponent = componentList.items[cs.shift()];
      // Button.Group
      while (newComponent && cs.length) {
        newComponent = newComponent[cs.shift()];
      }
    }
  }

  if (newComponent) {
    var newContextTypes = {};
    if (contextTypes) {
      contextTypes.forEach(function (name) {
        newContextTypes[name] = _propTypes2.default.any;
      });
      if (newComponent.contextTypes) {
        Object.assign(newComponent.contextTypes, newContextTypes);
      } else {
        newComponent.contextTypes = newContextTypes;
      }
    }

    if (decorative) {
      if (async) {
        props = props || {};
      }
      newComponent = hcGetComponent(props, _layerConvertor.converter.parse(getProps))(newComponent);
    }

    // 一般来说和view不能共用
    if (hoc) {
      var Com = findComponent(hoc);
      if (!Com) {
        window.console.log('hoc组件丢失');
      }
      var ChildComponent = newComponent;
      var childProps = hoc.childProps || {};

      var HocComponent = function (_React$PureComponent) {
        _inherits(HocComponent, _React$PureComponent);

        function HocComponent() {
          _classCallCheck(this, HocComponent);

          return _possibleConstructorReturn(this, (HocComponent.__proto__ || Object.getPrototypeOf(HocComponent)).apply(this, arguments));
        }

        _createClass(HocComponent, [{
          key: 'render',
          value: function render() {
            var children = _react2.default.createElement(
              Com,
              null,
              _react2.default.createElement(newComponent.ChildComponent, _extends({}, childProps, this.props))
            );
            // #! 包裹
            var wrapper = _layerConvertor.converter.parse(hoc.wrapper);
            if (wrapper) {
              return wrapper(children);
            } else {
              return children;
            }
          }
        }]);

        return HocComponent;
      }(_react2.default.PureComponent);

      newComponent = HocComponent;
      newComponent.ChildComponent = ChildComponent;
      newComponent._async = ChildComponent._async;
    }
  }
  return newComponent;
}

var findService = exports.findService = function findService(name) {
  return gallery.services.items[name];
};

function setGallery(aGallery) {
  for (var key in aGallery) {
    if (key === 'components') {
      for (var ikey in aGallery[key]) {
        window[(0, _upperFirst2.default)(ikey)] = aGallery[key][ikey];
        Object.assign(gallery[key].items[ikey].items, aGallery[key][ikey]);
      }
    } else {
      Object.assign(gallery[key].items, aGallery[key]);
    }
  }
}

/***/ }),
/* 16 */
/***/ (function(module, exports) {

module.exports = require("hoist-non-react-statics");

/***/ }),
/* 17 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/button");

/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactRouter = __webpack_require__(4);

var _breadcrumb = __webpack_require__(76);

var _breadcrumb2 = _interopRequireDefault(_breadcrumb);

var _navLink = __webpack_require__(12);

__webpack_require__(78);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var BreadCrumb = exports.BreadCrumb = (_temp = _class = function (_React$PureComponent) {
  _inherits(BreadCrumb, _React$PureComponent);

  function BreadCrumb() {
    _classCallCheck(this, BreadCrumb);

    return _possibleConstructorReturn(this, (BreadCrumb.__proto__ || Object.getPrototypeOf(BreadCrumb)).apply(this, arguments));
  }

  _createClass(BreadCrumb, [{
    key: 'render',
    value: function render() {
      var _this2 = this;

      var _props = this.props,
          className = _props.className,
          style = _props.style,
          navs = _props.navs,
          links = _props.links,
          extra = _props.extra;


      return _react2.default.createElement(
        'div',
        { className: 'j-com-breadcrumb ' + className, style: style },
        _react2.default.createElement(
          _breadcrumb2.default,
          null,
          navs.map(function (item, index) {
            if (item.link) {
              return _react2.default.createElement(
                _breadcrumb2.default.Item,
                { key: index },
                _react2.default.createElement(
                  _this2.props.Link,
                  { to: item.link },
                  item.text
                )
              );
            } else {
              return _react2.default.createElement(
                _breadcrumb2.default.Item,
                { key: index },
                item.text
              );
            }
          }),
          links || extra ? _react2.default.createElement(
            _breadcrumb2.default.Item,
            { className: 'j-breadcrumb-extra' },
            links && _react2.default.createElement(_navLink.NavLink, { links: links }),
            extra
          ) : null
        ),
        this.props.combox
      );
    }
  }]);

  return BreadCrumb;
}(_react2.default.PureComponent), _class.parse = function (route, subRoutes) {
  var navs = [];
  if (route) {
    navs.push({
      text: route.title
    });
    if (route.navKey && subRoutes[route.navKey]) {
      navs.unshift({
        text: subRoutes[route.navKey].title || route.navKey
      });
    }
    while ((route = route.parent) && route.title) {
      navs.unshift({ link: route.resolvePath, text: route.title });
    }
  }
  return navs;
}, _class.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  Link: _propTypes2.default.any,
  combox: _propTypes2.default.element,
  navs: _propTypes2.default.array,
  links: _propTypes2.default.array,
  extra: _propTypes2.default.any
}, _class.defaultProps = {
  className: '',

  Link: _reactRouter.Link,
  navs: []
}, _temp);

/***/ }),
/* 19 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/menu");

/***/ }),
/* 20 */
/***/ (function(module, exports) {

module.exports = require("react-dnd");

/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _layout = __webpack_require__(14);

var _layout2 = _interopRequireDefault(_layout);

var _menu = __webpack_require__(19);

var _menu2 = _interopRequireDefault(_menu);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _dropdown = __webpack_require__(31);

var _dropdown2 = _interopRequireDefault(_dropdown);

var _spin = __webpack_require__(37);

var _spin2 = _interopRequireDefault(_spin);

var _avatar = __webpack_require__(87);

var _avatar2 = _interopRequireDefault(_avatar);

var _headerSearch = __webpack_require__(38);

__webpack_require__(89);

var _localeContext = __webpack_require__(3);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Header = exports.Header = (_dec = (0, _localeContext.localeContext)('Header', {
  searchPlaceholder: '站内搜索',
  profile: '个人中心',
  setting: '设置',
  logout: '退出登录'
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(Header, _React$PureComponent);

  function Header(props) {
    _classCallCheck(this, Header);

    var _this = _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).call(this, props));

    _this.toggleClick = function () {
      _this.props.onCollapse(!_this.props.collapsed);

      _this._resizeTimer = setTimeout(function () {
        var event = document.createEvent('HTMLEvents');
        event.initEvent('resize', true, false);
        window.dispatchEvent(event);
      }, 600);
    };

    _this.handleChange = function (e) {
      _this.props.onChange && _this.props.onChange(e);
    };

    return _this;
  }

  _createClass(Header, [{
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      clearTimeout(this._resizeTimer);
    }
  }, {
    key: 'render',
    value: function render() {
      var _this2 = this;

      var _props = this.props,
          loading = _props.loading,
          className = _props.className,
          hasSetting = _props.hasSetting,
          search = _props.search,
          style = _props.style,
          collapsed = _props.collapsed,
          nick = _props.nick,
          noSider = _props.noSider,
          avatar = _props.avatar,
          theme = _props.theme,
          route = _props.route,
          routes = _props.routes,
          subMenus = _props.subMenus,
          menu = _props.menu,
          brand = _props.brand,
          Link = _props.Link,
          orderKeys = _props.orderKeys,
          getResolvePath = _props.getResolvePath;

      var IMenu = this.props.Menu;
      return _react2.default.createElement(
        _layout2.default.Header,
        { className: 'j-com-header ' + className + (theme ? ' j-com-header-' + theme : ''), style: style },
        loading,
        noSider ? null : _react2.default.createElement(_icon2.default, {
          className: 'j-header-trigger',
          type: collapsed ? 'menu-unfold' : 'menu-fold',
          onClick: this.toggleClick }),
        _react2.default.createElement(
          'div',
          { className: 'j-header-right', style: { display: nick === false ? 'none' : '' } },
          search !== undefined ? search : _react2.default.createElement(_headerSearch.HeaderSearch, {
            className: 'j-header-action j-header-search',
            placeholder: this.getLocale('searchPlaceholder'),
            dataSource: [],
            onSearch: function onSearch(v) {
              return _this2.handleChange({ value: v, key: 'search' });
            },
            onPressEnter: function onPressEnter(v) {
              return _this2.handleChange({ value: v, key: 'search' });
            }
          }),
          nick ? _react2.default.createElement(
            _dropdown2.default,
            {
              overlay: _react2.default.createElement(
                _menu2.default,
                { className: 'j-header-menu', selectedKeys: [], onClick: this.handleChange },
                _react2.default.createElement(
                  _menu2.default.Item,
                  { key: 'profile' },
                  _react2.default.createElement(_icon2.default, { type: 'user' }),
                  this.getLocale('profile')
                ),
                hasSetting ? _react2.default.createElement(
                  _menu2.default.Item,
                  { key: 'setting' },
                  _react2.default.createElement(_icon2.default, { type: 'setting' }),
                  this.getLocale('setting')
                ) : null,
                _react2.default.createElement(_menu2.default.Divider, null),
                _react2.default.createElement(
                  _menu2.default.Item,
                  { key: 'logout' },
                  _react2.default.createElement(_icon2.default, { type: 'logout' }),
                  this.getLocale('logout')
                )
              ) },
            _react2.default.createElement(
              'span',
              { className: 'j-header-action j-header-account' },
              avatar && _react2.default.createElement(_avatar2.default, { size: 'small', className: 'j-header-avatar', src: avatar }),
              ' ',
              nick
            )
          ) : _react2.default.createElement(_spin2.default, { size: 'small', style: { marginLeft: 8 } })
        ),
        IMenu ? _react2.default.createElement(IMenu, { style: { marginLeft: noSider ? 70 : 0 }, route: route, routes: routes, subMenus: subMenus, menu: menu, orderKeys: orderKeys, Link: Link, getResolvePath: getResolvePath, brand: brand }) : null
      );
    }
  }]);

  return Header;
}(_react2.default.PureComponent), _class2.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,
  route: _propTypes2.default.object,
  routes: _propTypes2.default.array,
  subMenus: _propTypes2.default.object,
  menu: _propTypes2.default.any,
  brand: _propTypes2.default.object,
  Link: _propTypes2.default.any,
  Menu: _propTypes2.default.any,
  orderKeys: _propTypes2.default.array,
  getResolvePath: _propTypes2.default.func,

  collapsed: _propTypes2.default.bool,
  onCollapse: _propTypes2.default.func,
  avatar: _propTypes2.default.string,
  nick: _propTypes2.default.string,
  noSider: _propTypes2.default.bool,
  loading: _propTypes2.default.element,
  theme: _propTypes2.default.string,
  onChange: _propTypes2.default.func,
  hasSetting: _propTypes2.default.bool,
  search: _propTypes2.default.any
}, _class2.defaultProps = {
  className: ''
}, _temp)) || _class);

/***/ }),
/* 22 */
/***/ (function(module, exports) {

module.exports = require("react-dom");

/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(22);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _message = __webpack_require__(7);

var _message2 = _interopRequireDefault(_message);

var _notification = __webpack_require__(42);

var _notification2 = _interopRequireDefault(_notification);

var _copyLogger = __webpack_require__(41);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// 默认8秒
_notification2.default.config({
  duration: 8
});
// 默认4秒
_message2.default.config({
  duration: 4
});

var seniorNotification = Object.assign({}, _notification2.default);
['success', 'info', 'warning', 'error', 'warn'].forEach(function (type) {
  seniorNotification[type] = function (args) {
    return _notification2.default[type](assign({}, args, { type: type, duration: null }));
  };
});

var Notifier = exports.Notifier = (_temp = _class = function () {
  function Notifier() {
    var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var immediate = arguments[1];

    _classCallCheck(this, Notifier);

    this.$opt_ = opt;
    if (immediate) {
      this.notify(opt);
    }
  }

  _createClass(Notifier, [{
    key: 'notify',
    value: function notify(opt) {
      var _this = this;

      var strategy = Notifier.strategy;
      // 特殊处理
      if (opt.rid) {
        opt = {
          content: opt
        };
      }
      opt = Object.assign({ type: 'info', level: 'one' }, this.$opt_, opt);

      if (opt.trace) {
        delete this.$opt_.trace;
        delete opt.trace;
        if (opt.content.then) {
          opt.content.then(function (res) {
            if (Object(res) !== res) {
              res = {
                message: res
              };
            }
            var rid = opt.rid || res.rid;
            if (rid) {
              opt.content = _react2.default.createElement(
                'div',
                null,
                _react2.default.createElement(
                  'span',
                  null,
                  res.message
                ),
                _react2.default.createElement(_copyLogger.CopyLogger, { rid: rid, message: 'rid: ' + rid })
              );
            } else {
              opt.content = res.message;
            }
            _this.notify(opt);
          }, function (err) {
            opt.content = err.message;
            _this.notify(opt);
          });
        } else {
          if (Object(opt.content) === opt.content) {
            var rid = opt.rid || opt.content.rid;
            var content = opt.content.message;
            if (rid) {
              opt.content = _react2.default.createElement(
                'div',
                null,
                _react2.default.createElement(
                  'span',
                  null,
                  content
                ),
                _react2.default.createElement(_copyLogger.CopyLogger, { rid: rid, message: 'rid: ' + rid })
              );
            } else {
              opt.content = content;
            }
          }
          this.notify(opt);
        }
      } else {
        // notification 和 message的初始化方式不同
        if (strategy[opt.level] === _notification2.default) {
          strategy[opt.level][opt.type]({
            message: opt.title || '提示',
            description: opt.content,
            btn: opt.btn,
            icon: opt.icon,
            key: opt.key,
            onClose: opt.onClose,
            duration: opt.duration
          });
        } else {
          strategy[opt.level][opt.type](opt.content, opt.duration);
        }
      }
    }
  }], [{
    key: 'notifierFactory',
    value: function notifierFactory(type, title, content) {
      return new Notifier({
        level: 'two',
        type: type,
        title: title || '错误异常',
        content: content,
        trace: true
      });
    }
  }, {
    key: 'error',
    value: function error(title, content) {
      if (content) {
        return new Notifier({
          type: 'error',
          level: 'two',
          title: title,
          content: content
        }, 1);
      } else {
        return new Notifier({
          type: 'error',
          level: 'one',
          content: title
        }, 1);
      }
    }
  }, {
    key: 'success',
    value: function success(title, content) {
      if (content) {
        return new Notifier({
          type: 'success',
          level: 'two',
          title: title,
          content: content
        }, 1);
      } else {
        return new Notifier({
          type: 'success',
          level: 'one',
          content: title
        }, 1);
      }
    }
  }, {
    key: 'info',
    value: function info(title, content) {
      if (content) {
        return new Notifier({
          type: 'info',
          level: 'two',
          title: title,
          content: content
        }, 1);
      } else {
        return new Notifier({
          type: 'info',
          level: 'one',
          content: title
        }, 1);
      }
    }
  }, {
    key: 'warn',
    value: function warn(title, content) {
      if (content) {
        return new Notifier({
          type: 'warn',
          level: 'two',
          title: title,
          content: content
        }, 1);
      } else {
        return new Notifier({
          type: 'warn',
          level: 'one',
          content: title
        }, 1);
      }
    }
  }]);

  return Notifier;
}(), _class.strategy = {
  one: _message2.default,
  two: _notification2.default,
  three: seniorNotification
}, _temp);

/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactRouter = __webpack_require__(4);

var _layout = __webpack_require__(14);

var _layout2 = _interopRequireDefault(_layout);

var _menu = __webpack_require__(19);

var _menu2 = _interopRequireDefault(_menu);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

__webpack_require__(98);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var HTTP_PATTERN = /^https?:\/\//;

var bubbleSort = function bubbleSort(arr, sortCb) {
  var len = arr.length;
  for (var i = 0; i < len; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      // 相邻元素两两对比
      if (sortCb(arr[j], arr[j + 1]) > 0) {
        // 元素交换
        var temp = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = temp;
      }
    }
  }
  return arr;
};

var Sider = exports.Sider = (_temp = _class = function (_React$PureComponent) {
  _inherits(Sider, _React$PureComponent);

  function Sider(props) {
    _classCallCheck(this, Sider);

    var _this = _possibleConstructorReturn(this, (Sider.__proto__ || Object.getPrototypeOf(Sider)).call(this, props));

    var route = props.route;
    var routes = _this.getRoutes(props.routes, props.orderKeys);
    var openKeys = route && _this.getParentsResolvePaths(route);
    if (!openKeys || !openKeys.length) {
      openKeys = _this.getOpenKeys(routes, props.subMenus);
    }
    _this.state = {
      routes: routes,
      selectedKeys: route ? [_this.props.getResolvePath(route)] : null,
      openKeys: openKeys,
      subMenus: props.subMenus
    };
    return _this;
  }

  _createClass(Sider, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this.mounted = true;
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this.mounted = false;
    }
  }, {
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      if (this.props.route !== nextProps.route) {
        var resolvePath = this.props.getResolvePath(nextProps.route);
        if (!this.state.selectedKeys || this.state.selectedKeys.indexOf(resolvePath) === -1) {
          var routes = this.getRoutes(nextProps.routes, nextProps.orderKeys);
          var openKeys = this.state.openKeys.length ? this.state.openKeys : nextProps.route && this.getParentsResolvePaths(nextProps.route);
          if (!openKeys || !openKeys.length) {
            openKeys = this.getOpenKeys(routes, nextProps.subMenus);
          }
          this.setState({
            routes: routes,
            selectedKeys: [resolvePath],
            openKeys: openKeys
          });
        }
      }
    }
  }, {
    key: 'getRoutes',
    value: function getRoutes(routes, orderKeys) {
      if (orderKeys) {
        var map = {};
        orderKeys.forEach(function (v, index) {
          return map[v] = index;
        });
        return bubbleSort(routes, function (a, b) {
          var aName = a.children ? a.name : a.navKey || a.name;
          var bName = b.children ? b.name : b.navKey || b.name;
          var compare = map[aName] - map[bName];
          if (compare === 0 || isNaN(compare)) {
            return a.value - b.value;
          } else {
            return compare;
          }
        });
      } else {
        return routes;
      }
    }
  }, {
    key: 'getOpenKeys',
    value: function getOpenKeys(routes, subMenus) {
      var _this2 = this;

      var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;

      if (this.props.openLevel) {
        var cacheMap = {};
        var keys = [];
        routes.forEach(function (route) {
          var children = route.children || route.childRoutes;
          if (route.navKey && subMenus[route.navKey]) {
            if (!cacheMap[route.navKey]) {
              cacheMap[route.navKey] = true;
              keys.push(route.navKey);
            }
          } else if (children && level < _this2.props.openLevel) {
            if (!cacheMap[route.name]) {
              cacheMap[route.name] = true;
              keys.push(route.name);
            }
            keys = keys.concat(_this2.getOpenKeys(children, subMenus, level + 1));
          }
        });
        return keys;
      } else {
        return null;
      }
    }
  }, {
    key: 'getParentsResolvePaths',
    value: function getParentsResolvePaths(route) {
      var resolvePaths = [];
      var navKey = route.navKey;
      while (route.parent) {
        route = route.parent;
        resolvePaths.push(route.name);
      }
      if (navKey && this.props.subMenus[navKey]) {
        resolvePaths.push(navKey);
      }
      return resolvePaths;
    }
  }, {
    key: 'packNode',
    value: function packNode(item, level) {
      var _this3 = this;

      var subMenus = this.state.subMenus;
      if (item.hide || item.disabled) {
        return null;
      }
      if (item.navKey && subMenus[item.navKey]) {
        if (subMenus[item.navKey].hide || subMenus[item.navKey].disabled) {
          return null;
        }
        if (level < 1) {
          subMenus[item.navKey].children = subMenus[item.navKey].children || [];
          var idx = subMenus[item.navKey].children.findIndex(function (d) {
            return d.name === item.name;
          });
          if (idx === 0) {
            item = subMenus[item.navKey];
          } else if (idx === -1) {
            subMenus[item.navKey].children = subMenus[item.navKey].children || [];
            idx = subMenus[item.navKey].children.push(item);
            if (idx > 1) {
              clearTimeout(this._timer);
              this._timer = setTimeout(function () {
                clearTimeout(_this3._timer);
                if (_this3.mounted) {
                  _this3.forceUpdate();
                }
              });
              return null;
            } else {
              var navKey = item.navKey;
              item = subMenus[item.navKey];
              item.name = navKey;
            }
          } else {
            return null;
          }
        }
      }

      // #! 从路由配置项中获取childRoutes
      var target = item.target;
      var title = item.title || item.name;
      var icon = item.icon;
      var iconCom = icon && _react2.default.createElement(_icon2.default, { type: icon });
      var children = item.children || item.childRoutes || [];

      if (title) {
        return {
          target: target,
          icon: iconCom,
          title: title,
          name: item.navKey ? item.navKey + '-' + item.name : item.name,
          children: children,
          hide: item.hide || item.disabled,
          path: children.length ? null : this.props.getResolvePath(item)
        };
      } else {
        return null;
      }
    }
  }, {
    key: 'getNavMenuItems',
    value: function getNavMenuItems(menusData) {
      var _this4 = this;

      var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var ILink = this.props.Link;
      if (!menusData) {
        return [];
      }
      return menusData.map(function (item) {
        item = _this4.packNode(item, level);

        if (!item) {
          return null;
        }

        if (item.children.length) {
          return _react2.default.createElement(
            _menu2.default.SubMenu,
            {
              title: item.icon ? _react2.default.createElement(
                'span',
                null,
                item.icon,
                _react2.default.createElement(
                  'span',
                  { className: 'j-menu-text' },
                  item.title
                )
              ) : _react2.default.createElement(
                'span',
                { className: 'j-menu-text' },
                item.title
              ),
              key: item.name },
            _this4.getNavMenuItems(item.children, level + 1)
          );
        }
        return _react2.default.createElement(
          _menu2.default.Item,
          { key: item.path },
          HTTP_PATTERN.test(item.path) ? _react2.default.createElement(
            'a',
            {
              href: item.path,
              target: item.target,
              onClick: function onClick(e) {
                return ['_self', undefined].indexOf(item.target) === -1 && e.stopPropagation();
              } },
            item.icon,
            _react2.default.createElement(
              'span',
              { className: 'j-menu-text' },
              item.title
            )
          ) : _react2.default.createElement(
            ILink,
            { to: item.path, target: item.target },
            item.icon,
            _react2.default.createElement(
              'span',
              { className: 'j-menu-text' },
              item.title
            )
          )
        );
      });
    }
  }, {
    key: 'render',
    value: function render() {
      var _this5 = this;

      var Conn = void 0;
      var connProps = void 0;
      var sider = this.props.sider;
      var header = this.props.header;
      var brand = this.props.brand;
      var ILink = this.props.Link;
      var flexDiv = void 0;

      var menuOption = Object.assign({
        mode: 'inline',
        theme: 'dark',
        inlineIndent: 24
      }, this.props.menu);

      if (menuOption.mode === 'horizontal') {
        Conn = _layout2.default.Header;
        connProps = header || {};
      } else {
        menuOption.style = menuOption.style || {
          margin: '16px 0',
          width: '100%'
        };
        menuOption.openKeys = this.state.collapsed ? null : this.state.openKeys;
        var _props = this.props,
            collapsed = _props.collapsed,
            onCollapse = _props.onCollapse,
            flex = _props.flex;

        Conn = _layout2.default.Sider;
        // inspired
        if (sider) {
          connProps = sider;
        } else {
          var width = this.props.width || 256;
          var collapsedWidth = this.props.collapsedWidth || 80;
          if (collapsed) {
            width = 0;
            collapsedWidth = 0;
          }
          connProps = {
            trigger: null,
            collapsible: true,
            breakpoint: 'md',
            width: width,
            collapsedWidth: collapsedWidth
          };
        }
        connProps.className = 'j-com-sider ' + 'j-com-sider-' + menuOption.theme + ' ' + (collapsed ? 'j-com-sider-collapse' : 'j-com-sider-expand');
        if (connProps.flex || flex) {
          flexDiv = _react2.default.createElement(
            'div',
            { className: 'j-sider-collapse-outer' },
            _react2.default.createElement(
              'div',
              { className: 'j-sider-collapse-inner' },
              _react2.default.createElement('div', { className: 'j-sider-collapse-bg' }),
              _react2.default.createElement(
                'div',
                { className: 'j-sider-collapse', onClick: function onClick() {
                    return onCollapse(!collapsed);
                  } },
                collapsed ? _react2.default.createElement(_icon2.default, { type: 'menu-unfold' }) : _react2.default.createElement(_icon2.default, { type: 'menu-fold' })
              )
            )
          );
        }
      }
      return _react2.default.createElement(
        Conn,
        connProps,
        brand ? _react2.default.createElement(
          'div',
          { className: 'j-sider-logo' },
          _react2.default.createElement(
            ILink,
            { to: brand.path || '/' },
            _react2.default.createElement('img', { src: brand.logo, alt: 'logo' }),
            _react2.default.createElement(
              'h1',
              { className: 'j-menu-text' },
              brand.title
            )
          )
        ) : null,
        _react2.default.createElement(
          _menu2.default,
          _extends({
            onOpenChange: function onOpenChange(openKeys) {
              return _this5.setState({ openKeys: openKeys });
            },
            onSelect: function onSelect(item) {
              return _this5.setState({ selectedKeys: item.selectedKeys });
            },
            selectedKeys: this.state.selectedKeys,
            inlineCollapsed: this.state.collapsed
          }, menuOption),
          this.getNavMenuItems(this.state.routes)
        ),
        flexDiv
      );
    }
  }]);

  return Sider;
}(_react2.default.PureComponent), _class.propTypes = {
  routes: _propTypes2.default.array.isRequired,
  route: _propTypes2.default.object,
  orderKeys: _propTypes2.default.array,
  collapsed: _propTypes2.default.bool,
  openLevel: _propTypes2.default.number,
  brand: _propTypes2.default.object,
  subMenus: _propTypes2.default.object,
  Link: _propTypes2.default.any,
  getResolvePath: _propTypes2.default.func,
  menu: _propTypes2.default.object,

  width: _propTypes2.default.any,
  collapsedWidth: _propTypes2.default.any,
  onCollapse: _propTypes2.default.func,
  flex: _propTypes2.default.bool,
  sider: _propTypes2.default.object,
  header: _propTypes2.default.object
}, _class.defaultProps = {
  subMenus: {},
  getResolvePath: function getResolvePath(item) {
    return item.resolvePath || item.path;
  },
  Link: _reactRouter.Link,
  brand: {
    logo: '//img.alicdn.com/tfs/TB14dINRpXXXXcyXXXXXXXXXXXX-64-64.png?t=1517996107967',
    title: 'App'
  }
}, _temp);

/***/ }),
/* 25 */
/***/ (function(module, exports) {

module.exports = require("lodash/upperFirst");

/***/ }),
/* 26 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/row");

/***/ }),
/* 27 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/col");

/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _form = __webpack_require__(10);

var _form2 = _interopRequireDefault(_form);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

var _inputNumber = __webpack_require__(64);

var _inputNumber2 = _interopRequireDefault(_inputNumber);

var _select = __webpack_require__(65);

var _select2 = _interopRequireDefault(_select);

var _datePicker = __webpack_require__(66);

var _datePicker2 = _interopRequireDefault(_datePicker);

var _timePicker = __webpack_require__(67);

var _timePicker2 = _interopRequireDefault(_timePicker);

var _radio = __webpack_require__(29);

var _radio2 = _interopRequireDefault(_radio);

var _checkbox = __webpack_require__(68);

var _checkbox2 = _interopRequireDefault(_checkbox);

var _switch = __webpack_require__(69);

var _switch2 = _interopRequireDefault(_switch);

var _card = __webpack_require__(11);

var _card2 = _interopRequireDefault(_card);

var _upload = __webpack_require__(70);

var _upload2 = _interopRequireDefault(_upload);

var _button = __webpack_require__(17);

var _button2 = _interopRequireDefault(_button);

var _tabs = __webpack_require__(71);

var _tabs2 = _interopRequireDefault(_tabs);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _message = __webpack_require__(7);

var _message2 = _interopRequireDefault(_message);

var _isPlainObject = __webpack_require__(72);

var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

var _moment = __webpack_require__(73);

var _moment2 = _interopRequireDefault(_moment);

var _localeContext = __webpack_require__(3);

__webpack_require__(74);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var CustomFormBase = (_dec = (0, _localeContext.localeContext)('CustomForm', {
  illegal: '表单校验失败',
  dataIndex: '数据项',
  legend: '数据结构',
  upload: '上传文件',
  save: '保存',
  cancel: '取消'
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(CustomFormBase, _React$PureComponent);

  function CustomFormBase(props) {
    _classCallCheck(this, CustomFormBase);

    var _this = _possibleConstructorReturn(this, (CustomFormBase.__proto__ || Object.getPrototypeOf(CustomFormBase)).call(this, props));

    _this._dataSource = _this._asMutable(props.dataSource);
    _this.optionsMap = {};
    _this.refsMap = {};

    _this._submitting = false;
    _this._validating = false;
    return _this;
  }

  _createClass(CustomFormBase, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this.mounted = true;
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this.mounted = false;
    }
  }, {
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      if (nextProps.dataSource !== this.props.dataSource) {
        this._dataSource = this._asMutable(nextProps.dataSource);
      }
    }
  }, {
    key: '_asMutable',
    value: function _asMutable(obj) {
      var _this2 = this;

      if (Array.isArray(obj)) {
        var arr = [];
        obj.forEach(function (d) {
          arr.push(_this2._asMutable(d));
        });
        return arr;
      } else if (Object(obj) === obj) {
        var newObj = {};
        for (var key in obj) {
          if (Object(obj[key]) === obj[key]) {
            newObj[key] = this._asMutable(obj[key]);
          } else {
            if (obj.hasOwnProperty(key)) {
              newObj[key] = obj[key];
            }
          }
        }
        return newObj;
      } else {
        return obj;
      }
    }
  }, {
    key: 'validate',
    value: function validate(keep, attrName) {
      var _this3 = this;

      this._validating = true;
      return new Promise(function (resolve, reject) {
        _this3.props.form.validateFields(function (err, body) {
          if (err) {
            _this3._validating = false;
            reject(err);
            _message2.default.error(_this3.getLocale('illegal'));
          } else {
            body = _this3.parseBody(body);

            var promises = [];
            /* eslint-disable react/no-string-refs */
            for (var name in _this3.refs) {
              promises.push(_this3.refs[name].validate(keep, name));
            }
            Promise.all(promises).then(function (bodys) {
              _this3._validating = false;
              if (bodys.length) {
                body = bodys.reduce(function (p, c) {
                  if (Array.isArray(c)) {
                    if (p[c[0]]) {
                      p[c[0]].push(c[1]);
                    } else {
                      p[c[0]] = [c[1]];
                    }
                    return p;
                  } else {
                    return Object.assign(p, c);
                  }
                }, body);
              }
              if (keep && attrName) {
                var arr = attrName.split('@');
                // 数组形式
                if (arr.length === 2) {
                  resolve([arr[0], body]);
                } else {
                  resolve(_defineProperty({}, attrName, body));
                }
              } else {
                resolve(body);
              }
            }, function (errs) {
              _this3._validating = false;
              _message2.default.error(_this3.getLocale('illegal'));
              reject(errs);
            });
          }
        });
      });
    }
  }, {
    key: 'handleSubmit',
    value: function handleSubmit(onSubmit, keep) {
      var _this4 = this;

      if (this.props.disabled) {
        return Promise.resolve(true);
      }
      this._submitting = true;
      return this.validate(keep).then(function (body) {
        var result = void 0;
        try {
          if (onSubmit) {
            result = onSubmit(body, _this4.props.dataSource);
          } else if (_this4.props.onSubmit) {
            result = _this4.props.onSubmit(body, _this4.props.dataSource);
          }
        } catch (e) {
          window.console.error(e);
        }
        if (result && result.then) {
          result.then(function () {
            _this4._submitting = false;
          }, function () {
            _this4._submitting = false;
          });
        } else {
          _this4._submitting = false;
        }
        return result;
      });
    }
  }, {
    key: 'parseBody',
    value: function parseBody(body) {
      if (this.props.normalize) {
        for (var name in body) {
          if (body[name] !== undefined) {
            // 组合成数组
            if (this.optionsMap[name].getValue) {
              body[name] = this.optionsMap[name].getValue(body[name]);
            }
            if (this.optionsMap[name].originName) {
              var v = body[name];
              delete body[name];
              name = this.optionsMap[name].originName;
              body[name] = body[name] || [];
              body[name].push(v);
            }
          }
        }
      }
      if (this.props.name) {
        return _defineProperty({}, this.props.name, body);
      } else {
        return body;
      }
    }
  }, {
    key: 'handleCancel',
    value: function handleCancel() {
      this.context.router.goBack();
    }
  }, {
    key: 'getFormLayout',
    value: function getFormLayout(option, extra) {
      return Object.assign({}, this.props.formLayout, {
        label: option.title || option.name || extra.title,
        required: option.required || extra.required,
        hasFeedback: option.hasFeedback || extra.hasFeedback,
        help: option.help || extra.help,
        className: option.className || extra.className,
        extra: option.extra ? option.extra : option.icon || null
      });
    }
  }, {
    key: 'getInitialValue',
    value: function getInitialValue(option, defaultValue) {
      var dataIndex = option.name || option.dataIndex;
      var initialValue = this._dataSource[dataIndex];
      if (this.props.normalize && initialValue !== undefined) {
        switch (option.type) {
          case 'boolean':
            if (typeof initialValue !== 'boolean') {
              initialValue = [false, true][parseInt(initialValue, 10)];
              option.getValue = function (value) {
                return value + 0;
              };
              option.builtIn = true;
            }
            break;
          case 'array':
            if (!Array.isArray(initialValue)) {
              initialValue = initialValue.split(',');
              option.getValue = function (value) {
                return Array.isArray(value) ? value.join(',') : String(value);
              };
              option.builtIn = true;
            }
            break;
        }
      }
      if (initialValue === undefined && !this.props.loading) {
        initialValue = defaultValue;
      }
      if (!this.optionsMap[dataIndex]) {
        this._dataSource[dataIndex] = initialValue;
        this.optionsMap[dataIndex] = option;
      }
      return initialValue;
    }
  }, {
    key: 'renderInput',
    value: function renderInput(option, key, _onChange) {
      var _this5 = this;

      var dataIndex = option.name || option.dataIndex;
      if (!dataIndex) {
        return null;
      }

      var noFlattern = option.noFlattern === undefined ? this.props.noFlattern : option.noFlattern;
      var dataSource = noFlattern ? option.dataSource || this._dataSource : this._dataSource;
      if (option.children) {
        if (option.type === 'array') {
          var isArr = option.children[0].children;
          var dataSources = dataSource[dataIndex] || [];
          var tabs = [];
          var indexes = [];
          dataSources.forEach(function (d, index) {
            indexes.push(index + '');
            tabs.push({
              index: index + '',
              data: d
            });
          });
          // 已经赋值过了
          if (this.refsMap[dataIndex]) {
            // 发现传入的dataSources有值,说明外部dataSource有变化,需要重新赋值,提取是之前的值不一样
            if (dataSources.length && dataSources !== this.refsMap[dataIndex].dataSources) {
              this.refsMap[dataIndex] = {
                indexes: indexes,
                activeKey: indexes[0],
                tabs: tabs,
                dataSources: dataSources
              };
            }
          } else {
            // 赋值
            this.refsMap[dataIndex] = {
              indexes: indexes,
              activeKey: indexes[0],
              tabs: tabs,
              dataSources: dataSources
            };
          }
          var obj = this.refsMap[dataIndex];
          return _react2.default.createElement(
            _card2.default,
            {
              className: 'j-com-customForm-card',
              key: key,
              title: option.title || dataIndex },
            _react2.default.createElement(
              _tabs2.default,
              {
                onChange: function onChange(activeKey) {
                  obj.activeKey = activeKey;
                  if (_this5.mounted) {
                    _this5.forceUpdate();
                  }
                },
                onEdit: function onEdit(targetKey, action) {
                  var idx = void 0;
                  if (action === 'add') {
                    idx = obj.indexes.length ? 1 + parseInt(obj.indexes[obj.indexes.length - 1], 10) + '' : '0';
                    obj.indexes.push(idx);
                    obj.tabs.push({
                      index: idx,
                      data: {}
                    });
                    obj.activeKey = idx + '';
                  } else {
                    idx = obj.indexes.indexOf(targetKey);
                    obj.indexes.splice(idx, 1);
                    obj.tabs.splice(idx, 1);
                    // 选中项小于触发项
                    if (obj.activeKey >= targetKey) {
                      if (idx > 0) {
                        obj.activeKey = idx - 1;
                      } else if (obj.indexes.length) {
                        obj.activeKey = idx + 1;
                      } else {
                        obj.activeKey = '';
                      }
                      obj.activeKey = obj.activeKey + '';
                    }
                  }
                  if (_this5.mounted) {
                    _this5.forceUpdate();
                  }
                },
                activeKey: obj.activeKey,
                type: 'editable-card' },
              obj.tabs.map(function (item) {
                var key = dataIndex + '@' + obj.indexes[item.index];
                return _react2.default.createElement(
                  _tabs2.default.TabPane,
                  {
                    tab: _this5.getLocale('dataIndex') + item.index,
                    key: item.index,
                    closable: true,
                    forceRender: true },
                  isArr ? (_this5.optionsMap[key] = Object.assign({
                    name: key,
                    dataSource: dataSources[item.index],
                    originName: dataIndex,
                    title: _this5.getLocale('legend')
                  }, option.children[item.index])) && _this5.renderInput(_this5.optionsMap[key], key, function (e) {
                    if (_onChange) {
                      var arr = obj.tabs.map(function (d) {
                        return d.data;
                      });
                      var o = Object.assign({}, _this5.optionsMap[key]);
                      obj.tabs[item.index].data = arr[item.index] = CustomForm.getValueFromEvent(e, o);
                      o.name = o.originName;
                      _onChange(arr, o);
                    }
                  }) : _react2.default.createElement(CustomForm, {
                    formLayout: _this5.props.formLayout,
                    disabled: _this5.props.disabled,
                    ref: key,
                    onChange: function onChange(e, o) {
                      if (_onChange) {
                        var arr = obj.tabs.map(function (d) {
                          return d.data;
                        });
                        arr[item.index][o.name] = CustomForm.getValueFromEvent(e, o);
                        _onChange(arr, option);
                      }
                    },
                    options: option.children,
                    noLabel: _this5.props.noLabel,
                    parentDataSource: _this5._dataSource,
                    dataSource: dataSources[item.index],
                    noButton: true,
                    noFlattern: noFlattern })
                );
              })
            )
          );
        } else if (noFlattern) {
          var formElm = _react2.default.createElement(CustomForm, {
            formLayout: this.props.formLayout,
            disabled: this.props.disabled,
            key: key,
            ref: dataIndex,
            title: option.title,
            name: option.embed ? '' : dataIndex,
            onChange: function onChange(e, o) {
              if (_onChange) {
                var _obj = _this5.refsMap[dataIndex] ? _this5.refsMap[dataIndex] : _this5.refsMap[dataIndex] = {};
                _obj[o.name] = CustomForm.getValueFromEvent(e, o);
                _onChange(_obj, option);
              }
            },
            options: option.children,
            noLabel: this.props.noLabel,
            parentDataSource: this._dataSource,
            dataSource: dataSource[dataIndex],
            noButton: true,
            noFlattern: noFlattern });

          return option.embed ? _react2.default.createElement(
            _form2.default.Item,
            _extends({ key: key }, this.props.formLayout, { label: option.title || dataIndex }),
            _react2.default.createElement(
              'div',
              { style: {
                  border: '1px solid #ddd',
                  padding: 10
                } },
              formElm
            )
          ) : formElm;
        } else {
          var renderInput = this.renderInput.bind(this);
          return _react2.default.createElement(
            _card2.default,
            {
              className: 'j-com-customForm-card',
              key: key,
              title: option.title || dataIndex },
            option.children.map(renderInput)
          );
        }
      }

      var propsByState = option.getProps ? option.getProps.call(this, this._dataSource, function (nextState) {
        Object.assign(_this5._dataSource, nextState);
        _this5.forceUpdate();
      }, this.props.form) : {};
      if (propsByState.name === false) {
        return null;
      }
      var initialValue = this.getInitialValue(option, propsByState.default || option.default);

      var formItemProps = this.getFormLayout(option, propsByState);
      if (this.props.noLabel) {
        formItemProps.label = null;
      }
      var rules = [].concat(this.props.rules[dataIndex] || []);
      var defaultProps = {
        disabled: option.disabled || this.props.disabled,
        placeholder: option.placeholder
      };
      var decoratorProps = {
        defaultValue: initialValue,
        rules: rules.concat(option.rules || propsByState.rules || []),
        getValueFromEvent: function getValueFromEvent(e) {
          var v = CustomForm.getValueFromEvent(e, option);
          _this5._dataSource[dataIndex] = v;
          if (_onChange) {
            _onChange(v, option);
          }
          if (option.onChange) {
            option.onChange(_this5._dataSource, function (nextState) {
              _this5.props.form.setFieldsValue(nextState);
            });
          }
          return v;
        }
      };
      if (option.renderInput) {
        return option.renderInput(option, function (node, dpros) {
          return _react2.default.createElement(
            _form2.default.Item,
            _extends({ key: key }, formItemProps),
            _this5.props.form.getFieldDecorator(dataIndex, Object.assign(decoratorProps, dpros))(node)
          );
        }, Object.assign(defaultProps, propsByState), this.props.form);
      } else {
        var input = CustomForm.getFieldInput(option, defaultProps, propsByState, decoratorProps);
        return _react2.default.createElement(
          _form2.default.Item,
          _extends({ key: key }, formItemProps),
          this.props.form.getFieldDecorator(dataIndex, decoratorProps)(input)
        );
      }
    }
  }, {
    key: 'clear',
    value: function clear() {
      this.props.form.resetFields();
      this.refsMap = {};
      /* eslint-disable react/no-string-refs */
      for (var name in this.refs) {
        this.refs[name].clear();
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _this6 = this;

      var _buttons = CustomForm.getButtons(this.props.buttons, {
        noButton: this.props.noButton,
        save: this.getLocale('save'),
        cancel: this.getLocale('cancel'),
        onSubmit: function onSubmit() {
          return _this6.handleSubmit(null, _this6.props.keep);
        },
        onCancel: function onCancel() {
          return _this6.handleCancel();
        }
      });
      var buttons = _buttons ? _react2.default.createElement(
        _form2.default.Item,
        {
          wrapperCol: {
            offset: this.props.formLayout.labelCol.span,
            span: this.props.formLayout.wrapperCol.span
          } },
        _buttons
      ) : null;

      var compact = this.props.compact ? 'j-com-customForm-compact ' : '';
      var className = compact + this.props.className;
      var formElm = _react2.default.createElement(
        _form2.default,
        {
          className: 'j-com-customForm ' + className,
          style: this.props.style,
          onSubmit: function onSubmit(e) {
            e.preventDefault();
            _this6.handleSubmit(null, _this6.props.keep);
          },
          layout: this.props.layout },
        this.props.options.map(function (option, key) {
          return _this6.renderInput(option, key, _this6.props.onChange);
        }),
        ' ',
        buttons
      );
      if (this.props.name) {
        return _react2.default.createElement(
          _card2.default,
          {
            className: 'j-com-customForm-card ' + className,
            title: this.props.title || this.props.name },
          formElm
        );
      } else {
        return formElm;
      }
    }
  }, {
    key: 'submitting',
    get: function get() {
      return this._submitting;
    }
  }, {
    key: 'validating',
    get: function get() {
      return this._validating;
    }
  }]);

  return CustomFormBase;
}(_react2.default.PureComponent), _class2.contextTypes = {
  router: _propTypes2.default.object
}, _class2.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  dataSource: _propTypes2.default.object,
  parentDataSource: _propTypes2.default.object,
  options: _propTypes2.default.array.isRequired,
  formLayout: _propTypes2.default.object,
  rules: _propTypes2.default.object,
  onSubmit: _propTypes2.default.func,
  onChange: _propTypes2.default.func,
  layout: _propTypes2.default.string,
  buttons: _propTypes2.default.object,
  name: _propTypes2.default.string,
  title: _propTypes2.default.string,
  noLabel: _propTypes2.default.bool,
  noButton: _propTypes2.default.bool,
  noFlattern: _propTypes2.default.bool,
  normalize: _propTypes2.default.bool,
  loading: _propTypes2.default.bool,
  keep: _propTypes2.default.bool,
  form: _propTypes2.default.object,
  compact: _propTypes2.default.bool,
  disabled: _propTypes2.default.bool
}, _class2.defaultProps = {
  className: '',

  layout: 'horizontal',
  dataSource: {},
  compact: true,
  rules: {},
  normalize: true,
  options: [],
  formLayout: {
    labelCol: {
      span: 4
    },
    wrapperCol: {
      span: 19
    },
    hasFeedback: true,
    required: true
  }
}, _temp)) || _class);


var CustomForm = _form2.default.create({ withRef: true })(CustomFormBase);

CustomForm.getLabel = function getLabel(item, option) {
  if (option.getLabel) {
    return option.getLabel(item);
  } else {
    return option.lableKey ? item[option.lableKey] : item.label || item.name;
  }
};
CustomForm.getValueFromEvent = function getValueFromEvent(e, option) {
  var v = void 0;
  if (Object(e) === e) {
    if ((0, _isPlainObject2.default)(e) || (0, _isPlainObject2.default)(e.__proto__)) {
      if (option.valuePropName) {
        v = e[option.valuePropName];
      } else {
        v = e.target ? e.target.value : e;
      }
    } else {
      v = e.target && e.target.nodeName ? e.target.value : e;
    }
  } else {
    v = e;
  }
  return option.builtIn && option.getValue ? option.getValue(v) : v;
};

CustomForm.getButtons = function getButtons(buttons, props) {
  if (!buttons && !props.noButton) {
    buttons = [];
    if (props.save) {
      buttons.push(_react2.default.createElement(
        _button2.default,
        {
          key: 0,
          onClick: props.onSubmit,
          style: {
            marginRight: 10
          },
          type: 'primary' },
        props.save || 'save'
      ));
    }
    if (props.cancel) {
      buttons.push(_react2.default.createElement(
        _button2.default,
        { key: 1,
          onClick: props.onCancel,
          style: {
            marginRight: 10
          },
          type: 'default' },
        props.cancel || 'cancel'
      ));
    }
  }
  return buttons;
};
/**
 * option = {
 *  dataType | type,
 *  // 枚举值
 *  enum,
 *  options,
 *
 *  // 特殊组件
 *  format,
 *  mode,
 *  // 上传
 *  dragger,
 *  action,
 *  valuePropName,
 *
 *  // 指定组件
 *  Component,
 *
 *  // 数字
 *  max,
 *  maxLength,
 *  maximum,
 *  // 置灰
 *  disabled,
 *  // 提示
 *  placeholder
 * }
 */
CustomForm.getFieldInput = function getFieldInput(option, props, stateProps, decorator) {
  var input = void 0;
  var dataFormat = void 0;
  if (option.enum) {
    input = _react2.default.createElement(
      _radio2.default.Group,
      _extends({}, props, stateProps),
      option.enum.map(function (item) {
        return _react2.default.createElement(
          _radio2.default,
          { key: item, value: item },
          item
        );
      })
    );
  } else {
    if (option.format) {
      switch (option.format) {
        case 'DATE_TIME':
          dataFormat = option.dataFormat || 'YYYY-MM-DD HH:mm:ss';
          decorator.initialValue = (0, _moment2.default)(decorator.defaultValue);
          input = _react2.default.createElement(_datePicker2.default, _extends({
            style: {
              maxWidth: 250
            },
            showTime: true,
            format: dataFormat
          }, props, stateProps));
          break;
        case 'DATE':
          dataFormat = option.dataFormat || 'YYYY-MM-DD';
          decorator.initialValue = (0, _moment2.default)(decorator.defaultValue);
          input = _react2.default.createElement(_datePicker2.default, _extends({
            style: {
              maxWidth: 250
            },
            format: dataFormat
          }, props, stateProps));
          break;
        case 'TIME':
          dataFormat = option.dataFormat || 'HH:mm:ss';
          decorator.initialValue = (0, _moment2.default)(decorator.defaultValue);
          input = _react2.default.createElement(_timePicker2.default, _extends({
            style: {
              maxWidth: 250
            },
            format: dataFormat
          }, props, stateProps));
          break;
        case 'DATE_RANGE':
          input = _react2.default.createElement(_datePicker2.default.RangePicker, _extends({}, props, stateProps));
          break;
        case 'CDN_PIC':
        case 'FILE':
          dataFormat = option.description || 'Click or drag files to the upload area';
          decorator.valuePropName = option.valuePropName = 'fileList';
          if (option.dragger) {
            input = _react2.default.createElement(
              _upload2.default.Dragger,
              _extends({}, props, stateProps, {
                listType: option.format === 'FILE' ? 'text' : 'picture',
                action: option.action }),
              _react2.default.createElement(
                'p',
                { className: 'ant-upload-drag-icon' },
                _react2.default.createElement(_icon2.default, { type: 'inbox' })
              ),
              _react2.default.createElement(
                'p',
                { className: 'ant-upload-text' },
                dataFormat
              )
            );
          } else {
            input = _react2.default.createElement(
              _upload2.default,
              _extends({}, props, stateProps, {
                action: option.action,
                listType: option.format === 'FILE' ? 'text' : 'picture' }),
              _react2.default.createElement(
                _button2.default,
                null,
                _react2.default.createElement(_icon2.default, { type: 'upload' }),
                ' ',
                option.description || 'Upload'
              )
            );
          }
          break;
        case 'SELECT':
          var options = stateProps.options || option.options;
          if (option.mode === 'radio') {
            input = _react2.default.createElement(
              _radio2.default.Group,
              _extends({}, props, stateProps),
              options.map(function (item) {
                return _react2.default.createElement(
                  _radio2.default,
                  {
                    key: item.value,
                    value: item.value,
                    disabled: item.disabled },
                  CustomForm.getLabel(item, option)
                );
              })
            );
          } else if (option.mode === 'checkbox') {
            input = _react2.default.createElement(_checkbox2.default.Group, _extends({}, props, stateProps, { options: options }));
          } else {
            input = _react2.default.createElement(
              _select2.default,
              _extends({ mode: option.mode }, props, stateProps),
              options.map(function (item) {
                return _react2.default.createElement(
                  _select2.default.Option,
                  {
                    key: item.value || item.id,
                    value: item.value || item.id,
                    disabled: item.disabled },
                  CustomForm.getLabel(item, option)
                );
              })
            );
          }
          break;
        case 'Component':
          input = _react2.default.createElement(option.Component, _extends({}, props, stateProps));
          break;
        case 'Element':
        case 'TEXT':
        case 'Function':
        case 'JSON':
          input = _react2.default.createElement(_input2.default.TextArea, _extends({
            autosize: {
              minRows: 4,
              maxRows: 10
            }
          }, props, {
            onPressEnter: decorator.getValueFromEvent,
            onBlur: decorator.getValueFromEvent
          }, stateProps));
          break;
        default:
          input = _react2.default.createElement(_input2.default, _extends({}, props, stateProps));
      }
    } else {
      var type = option.dataType || option.type;
      switch (type) {
        case 'number':
        case 'integer':
          var max = option.max;
          if (!max) {
            var maxLength = maxLength = option.maxLength ? option.maxLength : 10;
            max = +new Array(maxLength).join(9);
            if (option.maximum) {
              max = Number(maxLength + '0.' + option.maximum);
            }
          }
          input = _react2.default.createElement(_inputNumber2.default, _extends({
            style: {
              maxWidth: 250
            },
            min: option.min ? option.min : 0,
            max: max
          }, props, stateProps));
          break;
        case 'boolean':
          decorator.valuePropName = option.valuePropName || 'checked';
          var placeholder = [].concat(option.placeholder);
          input = _react2.default.createElement(_switch2.default, _extends({
            unCheckedChildren: placeholder[0],
            checkedChildren: placeholder[1]
          }, props, stateProps));
          break;
        case 'string':
        default:
          input = _react2.default.createElement(_input2.default, _extends({}, props, stateProps));
          break;
      }
    }
  }
  decorator.initialValue = decorator.initialValue || decorator.defaultValue;
  return input;
};

CustomForm.prototype.getRealInstance = function () {
  return this.refs.wrappedComponent;
};
['handleSubmit', 'clear', 'validate'].forEach(function (method) {
  CustomForm.prototype[method] = function () {
    var _refs$wrappedComponen;

    return (_refs$wrappedComponen = this.refs.wrappedComponent)[method].apply(_refs$wrappedComponen, arguments);
  };
});
Object.defineProperties(CustomForm.prototype, {
  submitting: {
    get: function get() {
      return this.refs.wrappedComponent.submitting;
    }
  },
  validating: {
    get: function get() {
      return this.refs.wrappedComponent.validating;
    }
  }
});

exports.CustomForm = CustomForm;

/***/ }),
/* 29 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/radio");

/***/ }),
/* 30 */
/***/ (function(module, exports) {

module.exports = require("material-ui/Divider");

/***/ }),
/* 31 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/dropdown");

/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var DataSet = exports.DataSet = (_temp = _class = function (_React$PureComponent) {
  _inherits(DataSet, _React$PureComponent);

  function DataSet(props, context) {
    _classCallCheck(this, DataSet);

    var _this = _possibleConstructorReturn(this, (DataSet.__proto__ || Object.getPrototypeOf(DataSet)).call(this, props, context));

    _this.handleResolve = function (value, params) {
      if (_this.props.spin) {
        _this.setState({
          pending: true
        });
      }
      if (_this.props.getResolver) {
        var resolver = _this.props.getResolver(value, params);
        resolver.then(function (iState) {
          iState.pending = false;
          _this.setState(iState, _this.props.onChange);
        });
      }
    };

    _this.state = {
      pending: props.spin
    };
    _this.stateUpdater = {};

    if (props.getResolver) {
      _this._resolver = props.getResolver(props.defaultValue);
    }
    /**
     * prop = {
     *  value: Object | Function,
     *  format: String,
     *  formatter: Function,
     *  setter: String | Function
     * }
     */
    Object.keys(props.data).forEach(function (name) {
      var prop = props.data[name];
      if (prop.value) {
        var originValue = typeof prop.value === 'function' ? prop.value.call(_this, _this.props) : prop.value;
        var formatter = _this.getFormatter(props.formatter, name);
        // formatter是一系列解决组件schema的格式化函数
        if (formatter) {
          _this.state[name] = formatter.call(_this, prop.schema, originValue);
        } else {
          _this.state[name] = originValue;
        }
      }
      if (prop.setter) {
        var setter = props.childProps[prop.setter];
        _this.stateUpdater[prop.setter] = function (updateFn) {
          return _this.setState(function (prevState) {
            var newValue = typeof updateFn === 'function' ? updateFn.call(_this, prevState[name]) : updateFn;
            var formatter = _this.getFormatter(props.formatter, name);
            if (formatter) {
              newValue = formatter.call(_this, prop.schema, newValue);
            }
            setter && setter(newValue);
            return _defineProperty({}, name, newValue);
          });
        };
      }
    });
    return _this;
  }

  _createClass(DataSet, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _this2 = this;

      this._resolver && this._resolver.then(function (iState) {
        iState.pending = false;
        _this2.setState(iState, _this2.props.onChange);
      });
    }
  }, {
    key: 'getFormatter',
    value: function getFormatter(formatter, name) {
      if (!formatter && DataSet.formatter) {
        var comFormatter = DataSet.formatter[this.props.format] || {};
        formatter = comFormatter[name];
      }
      return formatter;
    }
  }, {
    key: 'getRealInstance',
    value: function getRealInstance() {
      return this._instance;
    }
  }, {
    key: 'render',
    value: function render() {
      var _this3 = this;

      var option = {};
      var _props = this.props,
          children = _props.children,
          Component = _props.Component,
          childProps = _props.childProps;

      var type = void 0;
      if (Component) {
        type = Component.name;
        if (type && DataSet.themeOptions[type]) {
          option = DataSet.themeOptions[type];
        }

        if (children) {
          return _react2.default.createElement(
            Component,
            _extends({
              ref: function ref(instance) {
                return _this3._instance = instance;
              }
            }, option, childProps, this.state, this.stateUpdater),
            children
          );
        } else {
          return _react2.default.createElement(Component, _extends({
            ref: function ref(instance) {
              return _this3._instance = instance;
            }
          }, option, childProps, this.state, this.stateUpdater));
        }
      } else {
        type = children.type.name;
        if (type && DataSet.themeOptions[type]) {
          option = DataSet.themeOptions[type];
        }
        return _react2.default.cloneElement(_react2.default.Children.only(children), _extends({
          ref: function ref(instance) {
            _this3._instance = instance;
            if (typeof children.ref === 'function') {
              children.ref(instance);
            }
          }
        }, option, childProps, this.state, this.stateUpdater));
      }
    }
  }]);

  return DataSet;
}(_react2.default.PureComponent), _class.formatter = {}, _class.themeOptions = {}, _class.theme = function (themeOptions) {
  DataSet.themeOptions = themeOptions;
}, _class.propTypes = {
  Component: _propTypes2.default.any,
  childProps: _propTypes2.default.object,
  onChange: _propTypes2.default.object,

  value: _propTypes2.default.any,
  data: _propTypes2.default.object,
  getResolver: _propTypes2.default.func,
  defaultValue: _propTypes2.default.string,
  format: _propTypes2.default.string,
  formatter: _propTypes2.default.func,
  children: _propTypes2.default.any,
  spin: _propTypes2.default.bool
}, _class.defaultProps = {
  data: {},
  childProps: {}
}, _temp);

/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactDnd = __webpack_require__(20);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var DragItem = exports.DragItem = (_dec = (0, _reactDnd.DragSource)(function (props) {
  return props.type;
}, {
  beginDrag: function beginDrag(props, monitor) {
    props.doAction(props.type, props.data, monitor);
    return { data: props.data };
  },
  endDrag: function endDrag(props, monitor) {
    props.doAction(props.type, props.data, monitor);
  }
}, function (connect, monitor) {
  return {
    connectDragSource: connect.dragSource(),
    isDragging: monitor.isDragging()
  };
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(DragItem, _React$PureComponent);

  function DragItem() {
    _classCallCheck(this, DragItem);

    return _possibleConstructorReturn(this, (DragItem.__proto__ || Object.getPrototypeOf(DragItem)).apply(this, arguments));
  }

  _createClass(DragItem, [{
    key: 'render',
    value: function render() {
      var className = this.props.className;
      if (this.props.isDragging) {
        className += ' j-com-drag';
      }
      return this.props.connectDragSource(_react2.default.createElement(
        'div',
        _extends({ className: className, style: this.props.style }, this.props.htmlFor),
        this.props.children
      ));
    }
  }]);

  return DragItem;
}(_react2.default.PureComponent), _class2.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  type: _propTypes2.default.string.isRequired,
  data: _propTypes2.default.object.isRequired,
  doAction: _propTypes2.default.func.isRequired,
  connectDragSource: _propTypes2.default.func,
  isDragging: _propTypes2.default.bool,
  children: _propTypes2.default.any,
  htmlFor: _propTypes2.default.object
}, _class2.defaultProps = {
  className: '',

  doAction: function doAction(noop) {
    return noop;
  },
  htmlFor: {}
}, _temp)) || _class);

/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactDnd = __webpack_require__(20);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var DropItem = exports.DropItem = (_dec = (0, _reactDnd.DropTarget)(function (props) {
  return props.types;
}, {
  drop: function drop(props, monitor) {
    // component
    var type = monitor.getItemType();
    var data = monitor.getItem().data;
    monitor.targetProps = props;
    if (props.types.indexOf(type) > -1) {
      props.doAction(type, data, monitor);
    } else {
      props.doAction(type, data, monitor);
    }
  }
}, function (connect, monitor) {
  return {
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    canDrop: monitor.canDrop()
  };
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(DropItem, _React$PureComponent);

  function DropItem() {
    _classCallCheck(this, DropItem);

    return _possibleConstructorReturn(this, (DropItem.__proto__ || Object.getPrototypeOf(DropItem)).apply(this, arguments));
  }

  _createClass(DropItem, [{
    key: 'render',
    value: function render() {
      var className = this.props.className;
      if (this.props.canDrop) {
        className += ' j-com-drop';
      }
      if (this.props.isOver) {
        className += ' j-com-drop-over';
      }
      return this.props.connectDropTarget(_react2.default.createElement(
        'div',
        _extends({ className: className, style: this.props.style }, this.props.htmlFor),
        this.props.children
      ));
    }
  }]);

  return DropItem;
}(_react2.default.PureComponent), _class2.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,

  types: _propTypes2.default.array.isRequired,
  doAction: _propTypes2.default.func.isRequired,
  connectDropTarget: _propTypes2.default.func,
  canDrop: _propTypes2.default.bool,
  isOver: _propTypes2.default.bool,
  children: _propTypes2.default.any,
  htmlFor: _propTypes2.default.object
}, _class2.defaultProps = {
  className: '',
  htmlFor: {}
}, _temp)) || _class);

/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _navLink = __webpack_require__(12);

__webpack_require__(82);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

/**
 * data = {
 *  title,
 *  desc,
 *  img
 * }
 */
/* eslint-disable react/prop-types */
var Exception = function Exception(_ref) {
  var className = _ref.className,
      data = _ref.data,
      links = _ref.links,
      rest = _objectWithoutProperties(_ref, ['className', 'data', 'links']);

  return _react2.default.createElement(
    'div',
    _extends({ className: 'j-com-exception ' + className }, rest),
    _react2.default.createElement(
      'div',
      { className: 'imgBlock' },
      _react2.default.createElement('div', {
        className: 'imgEle',
        style: { backgroundImage: 'url(' + data.img + ')' }
      })
    ),
    _react2.default.createElement(
      'div',
      { className: 'content' },
      _react2.default.createElement(
        'h1',
        null,
        data.title
      ),
      _react2.default.createElement(
        'div',
        { className: 'desc' },
        data.desc
      ),
      links && _react2.default.createElement(
        'div',
        { className: 'links' },
        _react2.default.createElement(_navLink.NavLink, { links: links })
      )
    )
  );
};
exports.Exception = Exception;

/***/ }),
/* 36 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/alert");

/***/ }),
/* 37 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/spin");

/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp2;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _autoComplete = __webpack_require__(39);

var _autoComplete2 = _interopRequireDefault(_autoComplete);

__webpack_require__(88);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var HeaderSearch = exports.HeaderSearch = (_temp2 = _class = function (_React$PureComponent) {
  _inherits(HeaderSearch, _React$PureComponent);

  function HeaderSearch() {
    var _ref;

    var _temp, _this, _ret;

    _classCallCheck(this, HeaderSearch);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = HeaderSearch.__proto__ || Object.getPrototypeOf(HeaderSearch)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      searchMode: false,
      value: ''
    }, _this.onKeyDown = function (e) {
      if (e.key === 'Enter') {
        _this.timeout = setTimeout(function () {
          _this.props.onPressEnter(_this.state.value); // Fix duplicate onPressEnter
        }, 0);
      }
    }, _this.onChange = function (value) {
      _this.setState({ value: value });
      _this.props.onChange();
    }, _this.enterSearchMode = function () {
      _this.setState({
        searchMode: true
      }, function () {
        if (_this.state.searchMode) {
          _this.input.focus();
        }
      });
    }, _this.leaveSearchMode = function () {
      _this.setState({ searchMode: false, value: '' });
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  _createClass(HeaderSearch, [{
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      clearTimeout(this.timeout);
    }
  }, {
    key: 'render',
    value: function render() {
      var _this2 = this;

      var _props = this.props,
          className = _props.className,
          style = _props.style,
          placeholder = _props.placeholder,
          restProps = _objectWithoutProperties(_props, ['className', 'style', 'placeholder']);

      return _react2.default.createElement(
        'span',
        {
          className: 'j-com-headerSearch ' + className,
          style: style,
          onClick: this.enterSearchMode },
        _react2.default.createElement(_icon2.default, { type: 'search' }),
        _react2.default.createElement(
          _autoComplete2.default,
          _extends({
            className: 'input ' + (this.state.searchMode ? 'show' : ''),
            value: this.state.value,
            onChange: this.onChange
          }, restProps),
          _react2.default.createElement(_input2.default, {
            placeholder: placeholder,
            ref: function ref(node) {
              _this2.input = node;
            },
            onKeyDown: this.onKeyDown,
            onBlur: this.leaveSearchMode })
        )
      );
    }
  }]);

  return HeaderSearch;
}(_react2.default.PureComponent), _class.propTypes = {
  className: _propTypes2.default.string,
  style: _propTypes2.default.object,
  placeholder: _propTypes2.default.string,
  onSearch: _propTypes2.default.func,
  onPressEnter: _propTypes2.default.func,
  onChange: _propTypes2.default.func,
  defaultActiveFirstOption: _propTypes2.default.bool,
  dataSource: _propTypes2.default.array
}, _class.defaultProps = {
  defaultActiveFirstOption: false,
  onPressEnter: function onPressEnter() {},
  onChange: function onChange() {},
  onSearch: function onSearch() {},
  className: '',
  placeholder: '',
  dataSource: []
}, _temp2);

/***/ }),
/* 39 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/auto-complete");

/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _modal = __webpack_require__(91);

var _modal2 = _interopRequireDefault(_modal);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var iModal = void 0;
var GModal = exports.GModal = (_temp = _class = function (_React$PureComponent) {
  _inherits(GModal, _React$PureComponent);

  function GModal(props) {
    _classCallCheck(this, GModal);

    var _this = _possibleConstructorReturn(this, (GModal.__proto__ || Object.getPrototypeOf(GModal)).call(this, props));

    _this.state = {
      activeKeys: [],
      timestamp: +new Date().getTime(),
      modals: {}
    };

    iModal = props.component;
    props.component.open = function (config) {
      config.key = config.key || +new Date().getTime();
      config.width = config.width || _this.props.width;
      _this.applyChange(config, 'add');

      return {
        destroy: function destroy() {
          _this.applyChange(config, 'delete');
        },
        closeModal: function closeModal() {
          _this.applyChange(config, 'delete');
        }
      };
    };
    return _this;
  }

  _createClass(GModal, [{
    key: 'applyChange',
    value: function applyChange(config, operate) {
      var _state = this.state,
          modals = _state.modals,
          activeKeys = _state.activeKeys;

      switch (operate) {
        case 'add':
          config.onOk = this.getAction(config.onOk, config);
          config.onCancel = this.getAction(config.onCancel, config);
          if (config.visible === undefined) {
            config.visible = true;
          }
          modals[config.key] = config;
          activeKeys.push(config.key);
          this.setState({
            timestamp: +new Date().getTime()
          });
          break;
        case 'update':
          modals[config.key] = Object.assign({}, modals[config.key], config);
          var idx = activeKeys.indexOf(config.key);
          if (idx) {
            activeKeys.splice(idx, 1);
          }
          activeKeys.push(config.key);
          this.setState({
            timestamp: +new Date().getTime()
          });
          break;
        case 'delete':
          delete modals[config.key];
          activeKeys.pop();
          this.setState({
            timestamp: +new Date().getTime()
          });
          break;
        default:
          break;
      }
    }
  }, {
    key: 'getAction',
    value: function getAction(actionFn, config) {
      var _this2 = this;

      var closeModal = function closeModal() {
        _this2.applyChange(config, 'delete');
      };
      return function () {
        if (actionFn) {
          var ret = actionFn(closeModal);
          if (ret && ret.then) {
            _this2.applyChange({ key: config.key, confirmLoading: true }, 'update');
            ret.then(function () {
              // It's unnecessary to set loading=false, for the Modal will be unmounted after
              // close. this.update({   key: config.key,   confirmLoading: false });
              closeModal();
            }, function () {
              _this2.applyChange({ key: config.key, confirmLoading: false }, 'update');
            });
          } else if (ret !== false) {
            if (_this2.state.modals[config.key]) {
              closeModal();
            }
          }
        } else {
          closeModal();
        }
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var _this3 = this;

      var modals = this.state.modals;
      return _react2.default.createElement(
        'div',
        null,
        Object.keys(modals).map(function (key) {
          return _react2.default.createElement(
            _this3.props.component,
            _extends({}, modals[key], { key: key }),
            _react2.default.createElement(
              'div',
              { className: (modals[key].prefixCls || 'j-com-modal') + '-body-wrapper' },
              modals[key].content
            )
          );
        })
      );
    }
  }]);

  return GModal;
}(_react2.default.PureComponent), _class.propTypes = {
  component: _propTypes2.default.any,
  width: _propTypes2.default.any
}, _class.defaultProps = {
  component: _modal2.default
}, _temp);


['open', 'info', 'success', 'error', 'warning', 'confirm'].forEach(function (action) {
  GModal[action] = function (props) {
    return iModal[action](props);
  };
});

/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(22);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _clipboard = __webpack_require__(92);

var _clipboard2 = _interopRequireDefault(_clipboard);

var _message = __webpack_require__(7);

var _message2 = _interopRequireDefault(_message);

var _button = __webpack_require__(17);

var _button2 = _interopRequireDefault(_button);

var _localeContext = __webpack_require__(3);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var CopyLogger = exports.CopyLogger = (_dec = (0, _localeContext.localeContext)('CopyLogger', {
  copy: '复制',
  copySuccess: '复制成功'
}), _dec(_class = function (_React$PureComponent) {
  _inherits(CopyLogger, _React$PureComponent);

  function CopyLogger() {
    _classCallCheck(this, CopyLogger);

    return _possibleConstructorReturn(this, (CopyLogger.__proto__ || Object.getPrototypeOf(CopyLogger)).apply(this, arguments));
  }

  _createClass(CopyLogger, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _this2 = this;

      /**
       * copy:
       * see: https://clipboardjs.com/
       */
      this._clipboard = new _clipboard2.default(_reactDom2.default.findDOMNode(this.refs.trigger));

      this._clipboard.on('success', function (e) {
        _message2.default.info(_this2.getLocale().copySuccess);
        e.clearSelection();
      });
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this._clipboard.destroy();
    }
  }, {
    key: 'render',
    value: function render() {
      var inlineStyle = {
        marginRight: '40px',
        display: 'block',
        overflow: 'hidden',
        textOverflow: 'ellipsis',
        wordBreak: 'break-all',
        lineHeight: '22px'
      };
      return _react2.default.createElement(
        'div',
        { style: { whiteSpace: 'nowrap' } },
        _react2.default.createElement(
          _button2.default,
          {
            style: { float: 'right' },
            ref: 'trigger',
            size: 'small',
            type: 'ghost',
            'data-clipboard-text': this.props.rid
          },
          this.getLocale().copy
        ),
        _react2.default.createElement(
          'span',
          { style: inlineStyle },
          this.props.message
        )
      );
    }
  }]);

  return CopyLogger;
}(_react2.default.PureComponent)) || _class);

/***/ }),
/* 42 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/notification");

/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _notification = __webpack_require__(42);

var _notification2 = _interopRequireDefault(_notification);

var _message2 = __webpack_require__(7);

var _message3 = _interopRequireDefault(_message2);

var _fallbackRoutes = __webpack_require__(44);

var _beatle = __webpack_require__(45);

var _layers = __webpack_require__(46);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function bootstrap(app, getInitData, versionKey, inters) {
  _message3.default.config({
    top: 51
  });

  _beatle.crud.console = {
    success: _message3.default.success,
    error: function error(msg, err) {
      if (err) {
        if (!err.catched) {
          _notification2.default.error({ message: msg, description: err.message });
        }
      } else {
        _notification2.default.error({ message: 'ApiException', description: msg });
      }
    }
  };

  function proccessData(res) {
    if (res) {
      var _message = res.error || res.errorMessage || res.errMsg || res.message;
      if (_message) {
        return new Error(_message && JSON.stringify(_message, null, 2));
      } else {
        return res.data || null;
      }
    } else {
      return null;
    }
  }

  app.ajax.set('beforeRequest', function (ajaxOption) {
    if (ajaxOption.getMock || ajaxOption.mock) {
      return Promise.resolve(ajaxOption.getMock ? ajaxOption.getMock(ajaxOption) : ajaxOption.mock);
    } else {
      return ajaxOption;
    }
  });
  app.ajax.set('afterResponse', function (res, option, xhr) {
    xhr.catch(function (err) {
      err.catched = true;
      _notification2.default.error({ message: 'ApiException', description: err.message });
    });

    if (inters) {
      for (var key in inters) {
        res = inters[key](res, app);
        if (res instanceof Error) {
          return res;
        }
      }
    } else {
      res = proccessData(res, app);
    }
    return res;
  });

  // fallback路由
  app.route(_fallbackRoutes.fallbackRoutes, false);
  var promise = getInitData && getInitData() || Promise.resolve({});
  promise = promise.then(function () {
    var ret = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    var route = app.route('/');
    var childRoutes = void 0;
    if (ret.scenes) {
      childRoutes = _layers.Layer.createLayerRoutes(ret.scenes);
      route.childRoutes = childRoutes;
      app.setRoutes(childRoutes, null, route);
    }
    return {
      versionKey: versionKey,
      prefix: bootstrap.getPrefix(app),
      dom: document.getElementById('main')
    };
  });

  return function ready(callback) {
    promise.then(callback);
  };
}

bootstrap.getPrefix = function (app, name) {
  var o = window.CONFIG || {};
  var prefix = o.prefix || '';
  return prefix + (name ? '/' + name : '') || (o.root || 'oa') + '/' + (name || app.appName);
};

bootstrap.getResolvePath = function (app, name) {
  var resolvePath = bootstrap.getPrefix(app, name);
  return resolvePath[0] === '/' ? resolvePath : '/' + resolvePath;
};

/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _bootstrap = __webpack_require__(43);

var _reactRouter = __webpack_require__(4);

var _exception = __webpack_require__(35);

var _localeContext = __webpack_require__(3);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var exceptions = {
  403: {
    img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg',
    title: '403'
  },
  404: {
    img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg',
    title: '404'
  },
  500: {
    img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg',
    title: '500'
  }
};

var ExceptionScene = (_dec = (0, _localeContext.localeContext)('Exception', {
  backToHome: '返回首页',
  403: '抱歉,你无权访问该页面',
  404: '抱歉,你访问的页面不存在',
  500: '抱歉,服务器出错了'
}), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(ExceptionScene, _React$PureComponent);

  function ExceptionScene() {
    _classCallCheck(this, ExceptionScene);

    return _possibleConstructorReturn(this, (ExceptionScene.__proto__ || Object.getPrototypeOf(ExceptionScene)).apply(this, arguments));
  }

  _createClass(ExceptionScene, [{
    key: 'render',
    value: function render() {
      var _this2 = this;

      var locale = this.getLocale();
      var links = [{
        type: 'primary',
        size: 'large',
        name: locale.backToHome,
        action: function action() {
          _reactRouter.browserHistory.replace(_this2.context.app.route(_bootstrap.bootstrap.getPrefix(_this2.context.app)).resolvePath);
        }
      }];
      var data = exceptions[this.props.route.exception || 404];
      data.desc = locale[data.title];
      return _react2.default.createElement(_exception.Exception, {
        data: data,
        style: {
          minHeight: 500,
          height: '80%'
        },
        links: links
      });
    }
  }]);

  return ExceptionScene;
}(_react2.default.PureComponent), _class2.contextTypes = {
  app: _propTypes2.default.object
}, _class2.propTypes = {
  route: _propTypes2.default.object
}, _temp)) || _class);
var fallbackRoutes = exports.fallbackRoutes = [{
  name: 'noAuth',
  component: ExceptionScene,
  hide: true,
  exception: 403
}, {
  name: 'error',
  component: ExceptionScene,
  hide: true,
  exception: 500
}, {
  path: '*',
  resolvePath: '*',
  component: ExceptionScene,
  hide: true,
  exception: 404
}];

/***/ }),
/* 45 */
/***/ (function(module, exports) {

module.exports = require("beatle");

/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp, _initialiseProps;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _cloneDeep = __webpack_require__(109);

var _cloneDeep2 = _interopRequireDefault(_cloneDeep);

var _forEach = __webpack_require__(47);

var _forEach2 = _interopRequireDefault(_forEach);

var _beatle = __webpack_require__(45);

var _layerConvertor = __webpack_require__(9);

var _layerEditor = __webpack_require__(48);

var _galleryResolver = __webpack_require__(15);

var _getCombox = __webpack_require__(49);

var _getComponent2 = __webpack_require__(5);

var _layouts = __webpack_require__(50);

var _empty = __webpack_require__(118);

var _empty2 = _interopRequireDefault(_empty);

__webpack_require__(119);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var Layer = exports.Layer = (_temp = _class = function () {
  function Layer(context, callback) {
    _classCallCheck(this, Layer);

    _initialiseProps.call(this);

    this.context = context;
    this._promise = new Promise(function (resolve) {
      Layer.resolveGallery(function (gallery) {
        gallery && (0, _galleryResolver.setGallery)(gallery);
        resolve(true);
        callback && callback();
      });
    });
    this._editable = false;
    this._activeFuns = [];
    this._watcherFns = [];

    this.state = {};
    // TODO Object to immutable
    this._state = Object(this.state);
  }

  _createClass(Layer, [{
    key: 'ready',
    value: function ready(callback) {
      this._promise.then(callback);
    }
  }, {
    key: 'setState',
    value: function setState(nextState) {
      var prevState = this.state;
      this.state = Object.assign({}, prevState, nextState);
      this._state = Object(this.state);

      this._watcherFns.forEach(function (fn) {
        fn.watcher(nextState, prevState);
      });
    }
  }, {
    key: 'watch',
    value: function watch(watcher, callback) {
      var name = typeof watcher === 'function' ? null : watcher;
      if (name) {
        watcher = function watcher(nextState, prevStore) {
          if (nextState[fnOpt.name] !== prevStore[fnOpt.name]) {
            fnOpt.resolve(nextState);
            fnOpt.resolved = false;
            fnOpt.promise = new Promise(function (resolve) {
              fnOpt.resolve = resolve;
            }).then(function (ret) {
              return fnOpt.callback && fnOpt.callback(ret);
            });
          }
        };
      }

      var fnOpt = this._watcherFns.find(function (fn) {
        return fn.name === name || fn.watch === watcher;
      });
      if (!fnOpt) {
        fnOpt = {
          name: name,
          watcher: watcher,
          callback: callback,
          resolved: true
        };
        this._watcherFns.push(fnOpt);
      }
      if (fnOpt.resolved) {
        fnOpt.resolved = false;
        fnOpt.promise = new Promise(function (resolve) {
          fnOpt.resolve = resolve;
        }).then(function (ret) {
          return fnOpt.callback && fnOpt.callback(ret);
        });
      }
      return fnOpt.promise;
    }
  }, {
    key: 'unwatch',
    value: function unwatch(watcher) {
      var idx = this._watcherFns.findIndex(function (fn) {
        return fn.name === watcher || fn.watch === watcher;
      });
      if (idx > -1) {
        this._watcherFns.splice(idx, 1);
      }
    }

    // -----------------------------

  }, {
    key: 'setEditable',
    value: function setEditable(editable) {
      this._editable = editable;
    }
  }, {
    key: 'isEditable',
    value: function isEditable() {
      return this._editable;
    }
  }, {
    key: 'register',
    value: function register(id, callback) {
      this._activeFuns.push({
        id: id,
        fn: callback,
        active: false
      });
    }
  }, {
    key: 'handleActive',
    value: function handleActive(id) {
      if (this._editable) {
        this._activeFns.forEach(function (afn) {
          afn.active = afn.id === id;
          afn.fn(afn.active);
        });
      }
    }
    // -----------------------------

  }, {
    key: 'getComponent',
    value: function getComponent(component, props, getProps) {
      if (component._async) {
        props = props || {};
      }
      var contextTypes = void 0;
      var newComponent = void 0;
      if (component.ChildComponent) {
        contextTypes = component.ChildComponent.contextTypes;
        component.ChildComponent = (0, _getComponent2.getComponent)(props, getProps)(component.ChildComponent);
        component.ChildComponent.contextTypes = contextTypes;

        newComponent = component;
      } else {
        contextTypes = component.contextTypes;
        newComponent = (0, _getComponent2.getComponent)(props, getProps)(component);
        newComponent.contextTypes = contextTypes;
      }
      return newComponent;
    }
    /**
     * com = {
     *  key,            // 组件key,可不填
     *  componentType,  // 组件源,默认不填是custom,分别为: antd、material、custom
     *  cname,          // 组件名,在组件源内唯一
     *  component,      // 组件定义
     *  getComponent,   // 动态组件,cname、component、getComponent选择其一
     *  view,           // 组件升级成view,可拥有model和services特性
     *  props,          // 组件props属性
     *  getProps        // 组件props动态属性,
     *  attrs,          // 组件放在容器中的定位
     * }
     */

  }, {
    key: 'parseComponent',
    value: function parseComponent(opt, staticProps) {
      /**
       * com = {
       *  componentType: [antd|custom|hc|material],
       *  cname: ['a', 'b'],
       *  props: {
       *    a: {
       *      ...
       *    },
       *    b: {
       *      componentType: [antd|custom|hc|material],
       *      component: 'x',
       *      ...
       *    }
       *  }
       * }
       */
      var newComponent = void 0;
      var props = opt.props;
      var getProps = _layerConvertor.converter.parse(opt.getProps);
      var cname = opt.cname;
      var componentOption = {
        static: opt.static,
        attrs: opt.attrs,
        key: opt.key || cname
      };
      if (opt.layer) {
        var layer = opt.layer;
        newComponent = (0, _galleryResolver.findComponent)(layer, true, 'layers');
        var layerProps = this.parseLayer(layer.components, layer.props, layer.grid, layer.item, staticProps);
        newComponent = this.toView(newComponent, layer.view, layerProps, getProps);
      } else {
        var view = opt.view;
        if (Array.isArray(cname)) {
          newComponent = (0, _getCombox.getCombox)(opt, _galleryResolver.findComponent, function () {
            return view ? newComponent.childContextTypes : newComponent.contextTypes;
          });
          props = view ? {} : null;
          getProps = null;
        } else {
          newComponent = (0, _galleryResolver.findComponent)(opt, true);
        }
        if (newComponent) {
          newComponent = this.toView(newComponent, view, props, getProps);
        } else {
          componentOption.props = props;
          componentOption.getProps = getProps;
        }
      }
      componentOption.component = newComponent;

      return componentOption;
    }
  }, {
    key: 'toView',
    value: function toView(component, viewOpt, props, getProps) {
      var newComponent = this.getComponent(component, props, getProps);
      if (viewOpt) {
        var providers = void 0;
        // const childContextTypes = {};
        if (viewOpt.providers) {
          providers = {};
          // 此处可能有问题
          (0, _forEach2.default)(viewOpt.providers, function (provider, name) {
            if (typeof name === 'number') {
              name = provider;
              provider = (0, _galleryResolver.findService)(name);
            }
            if (provider) {
              providers[name] = provider;
            }
            // childContextTypes[name] = PropTypes.object;
          });
        }
        if (viewOpt.selector) {
          var selector = new _beatle.BaseSelector();
          Object.assign(selector, viewOpt.selector);
          newComponent = this.context.app.view(selector, newComponent, providers, viewOpt.bindings, viewOpt.hookActions, viewOpt.props, viewOpt.getProps);
        } else {
          newComponent = this.context.app.view(newComponent, providers, viewOpt.bindings, viewOpt.hookActions, viewOpt.props, viewOpt.getProps);
        }
        // newComponent.childContextTypes = childContextTypes;
      }
      return newComponent;
    }

    /**
     * // 界面配置
     * sceneOption = {
     *  // 路由配置
     *  route: {
     *    title,
     *    path,
     *    value,
     *    disabled
     *  },
     *  // 布局设置
     *  layout: {
     *    cname,
     *    components: [],
     *    props: {
     *    }
     *  },
     *  // 面板设置
     *  layer: {
     *    cname: 'flexGridLayer',
     *    bindings: [String, ...],
     *    components: [
     *      {cname: String, props: Object, bindings: [], vector}
     *    ],
     *    props: {
     *    }
     *  }
     * }
     */

  }, {
    key: 'getLayer',
    value: function getLayer(opt, staticProps) {
      var _this = this;

      var promise = opt.then ? opt : Promise.resolve(opt);
      return Promise.all([promise, this._promise]).then(function (_ref) {
        var _ref2 = _slicedToArray(_ref, 1),
            opt = _ref2[0];

        return _this.getViewComponent(opt, staticProps);
      });
    }
  }, {
    key: 'getViewComponent',
    value: function getViewComponent(opt, staticProps) {
      var ViewComponent = this.parseComponent(opt, staticProps).component;
      // 默认加入app服务
      // LayerComponent.childContextTypes = LayerComponent.childContextTypes || {};
      // LayerComponent.childContextTypes.layer = PropTypes.object;

      if (opt.layout) {
        ViewComponent.routeOptions = this.parseRoute(opt.layout, ViewComponent.routeOptions);
      }
      return ViewComponent;
    }
  }, {
    key: 'renderLayer',
    value: function renderLayer(Layer, customLayouts) {
      /* eslint-disable */
      var viewComponent = _react2.default.createElement(Layer, null);
      if (Layer.routeOptions && Layer.routeOptions.layout) {
        return (0, _layouts.getLayout)({
          layoutOption: Layer.routeOptions.layoutOption,
          layout: Layer.routeOptions.layout
        }, viewComponent, customLayouts);
      } else {
        return viewComponent;
      }
    }
  }, {
    key: 'render',
    value: function render(opt, staticProps) {
      if (opt.then || opt.layer) {
        return this.context.app.observer(this.getLayer(opt, staticProps)).render(this.renderLayer);
      } else {
        return _react2.default.createElement(
          'div',
          { className: 'o-spin-container' },
          _react2.default.createElement(_empty2.default, null)
        );
      }
    }
  }, {
    key: 'parseLayer',
    value: function parseLayer(components) {
      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var layerGrid = arguments[2];

      var _this2 = this;

      var layerItem = arguments[3];
      var staticProps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];

      var layerProps = (0, _cloneDeep2.default)(props);
      // TODO LayerItem提供了拖拽功能
      layerProps.LayerGrid = layerGrid && (0, _galleryResolver.findComponent)(layerGrid) || _layerEditor.LayerGrid;
      layerProps.LayerItem = layerItem && (0, _galleryResolver.findComponent)(layerItem) || _layerEditor.LayerItem;
      layerProps.components = [];

      if (components) {
        (0, _forEach2.default)(components, function (com, key) {
          var extra = staticProps[key] || staticProps[com.key] || staticProps[com.cname];
          // 可能不太好!!
          if (extra) {
            if (extra.props) {
              if (com.props) {
                Object.assign(com.props, extra.props);
              } else {
                com.props = extra.props;
              }
            } else if (extra.getProps) {
              if (com.getProps) {
                var getProps = com.getProps;
                com.getProps = function (props, context) {
                  var _props = extra.getProps(props, context);
                  return Object.assign(_props, getProps(props, context));
                };
              } else {
                com.getProps = extra.getProps;
              }
            }
          }

          var newCom = _this2.parseComponent(com, extra && extra.staticProps);
          layerProps.components.push(newCom);
        });
      }
      return layerProps;
    }
  }, {
    key: 'parseRoute',
    value: function parseRoute(layout) {
      var _this3 = this;

      var routeOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

      var layouts = [];
      if (layout.containerLayout) {
        if (Object(layout.containerLayout) === layout.containerLayout) {
          layouts.push((0, _galleryResolver.findComponent)(layout.containerLayout, null, 'layouts'));
        } else {
          layouts.push(layout.containerLayout);
        }
      }
      layouts.push((0, _galleryResolver.findComponent)(layout, null, 'layouts'));

      routeOptions.layout = layouts;
      routeOptions.layoutOption = layout.option; // defaultsDeep({}, layout.option);
      if (routeOptions.layoutOption.components) {
        var newComponents = {};
        (0, _forEach2.default)(routeOptions.layoutOption.components, function (com, key) {
          if (typeof key === 'number') {
            key = com.key || com.cname;
          }
          newComponents[key] = _this3.parseComponent(com);
        });
        routeOptions.layoutOption.components = newComponents;
      }

      return routeOptions;
    }
  }, {
    key: 'createLayerRoutes',
    value: function createLayerRoutes(scenes) {
      var _this4 = this;

      var layerRoutes = [];
      (0, _forEach2.default)(scenes, function (sceneOption) {
        var route = Object.assign({}, sceneOption.route, {
          // sceneOption: sceneOption,
          getComponent: function getComponent(nextState, callback) {
            _this4.getLayer(sceneOption).then(function (component) {
              Object.assign(route, component.routeOptions);
              callback(null, component);
            }, callback);
          }
        });
        layerRoutes.push(route);
      });
      return layerRoutes;
    }
  }]);

  return Layer;
}(), _class.resolveGallery = function (callback) {
  return callback({});
}, _class.contextTypes = {
  app: _propTypes2.default.object
}, _initialiseProps = function _initialiseProps() {
  this.findComponent = _galleryResolver.findComponent;
}, _temp);

/***/ }),
/* 47 */
/***/ (function(module, exports) {

module.exports = require("lodash/forEach");

/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.LayerItem = exports.LayerGrid = undefined;

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp, _class2, _temp2;
// import defaultsDeep from 'lodash/defaultsDeep';

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _dropItem = __webpack_require__(34);

var _card = __webpack_require__(11);

var _card2 = _interopRequireDefault(_card);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

// 有点问题
var types = ['hc', 'custom', 'antd', 'material'];
// https://github.com/swagger-api/swagger-editor/blob/2cc957f755a72fcc005c084f689810ce468d2571/src/plugins/editor/components/editor.jsx

var LayerGrid = exports.LayerGrid = (_temp = _class = function (_React$PureComponent) {
  _inherits(LayerGrid, _React$PureComponent);

  function LayerGrid() {
    _classCallCheck(this, LayerGrid);

    return _possibleConstructorReturn(this, (LayerGrid.__proto__ || Object.getPrototypeOf(LayerGrid)).apply(this, arguments));
  }

  _createClass(LayerGrid, [{
    key: 'render',
    value: function render() {
      return _react2.default.createElement(
        'div',
        { className: this.props.className, style: this.props.style },
        this.props.children
      );
    }
  }]);

  return LayerGrid;
}(_react2.default.PureComponent), _class.propTypes = {
  className: _propTypes2.default.string,
  children: _propTypes2.default.any,
  style: _propTypes2.default.object
}, _temp);


var __guid__ = 1;
function guid(prefix) {
  return prefix + __guid__++;
}
function wrapper(_ref) {
  var children = _ref.children;

  return children;
}
var LayerItem = exports.LayerItem = (_temp2 = _class2 = function (_React$PureComponent2) {
  _inherits(LayerItem, _React$PureComponent2);

  function LayerItem(props, context) {
    _classCallCheck(this, LayerItem);

    var _this2 = _possibleConstructorReturn(this, (LayerItem.__proto__ || Object.getPrototypeOf(LayerItem)).call(this, props));

    _this2.state = {
      active: false,
      guid: guid('layerItem')
    };
    context.layer.register(_this2.state.guid, function (active) {
      _this2.setState({
        active: active
      });
    });
    return _this2;
  }

  _createClass(LayerItem, [{
    key: 'render',
    value: function render() {
      var _this3 = this;

      var layer = this.context.layer;
      var ItemWrapper = layer.isEditable() ? _dropItem.DropItem : wrapper;
      var _props = this.props,
          title = _props.title,
          children = _props.children,
          disabled = _props.disabled,
          onChange = _props.onChange,
          cardProps = _props.cardProps,
          menu = _props.menu;

      return _react2.default.createElement(
        _card2.default,
        _extends({
          className: 'j-editor-layerItem ' + (this.state.active ? 'active' : ''),
          onClick: function onClick() {
            layer.handleActive(_this3.state.guid);
          },
          style: this.props.style,
          title: title,
          extra: disabled || !layer.isEditable() ? null : menu
        }, cardProps),
        _react2.default.createElement(
          ItemWrapper,
          { types: types, doAction: function doAction(type, item) {
              var target = {
                id: _this3.state.guid,
                key: 'update',
                type: type,
                attrs: item.attrs
              };
              onChange && onChange(target);
            } },
          children
        )
      );
    }
  }]);

  return LayerItem;
}(_react2.default.PureComponent), _class2.contextTypes = {
  layer: _propTypes2.default.object
}, _class2.propTypes = {
  title: _propTypes2.default.string,
  disabled: _propTypes2.default.bool,
  children: _propTypes2.default.element,
  onChange: _propTypes2.default.func,
  cardProps: _propTypes2.default.object,
  style: _propTypes2.default.object,
  menu: _propTypes2.default.any
}, _class2.defaultProps = {
  cardProps: {}
}, _temp2);

/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

exports.getCombox = getCombox;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _getComponent = __webpack_require__(5);

var _layerConvertor = __webpack_require__(9);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function getCombox(_ref, findComponent) {
  var cname = _ref.cname,
      componentType = _ref.componentType,
      props = _ref.props,
      getProps = _ref.getProps,
      hoc = _ref.hoc,
      className = _ref.className;

  var Combox = function (_React$PureComponent) {
    _inherits(Combox, _React$PureComponent);

    function Combox(tprops, context) {
      _classCallCheck(this, Combox);

      var _this = _possibleConstructorReturn(this, (Combox.__proto__ || Object.getPrototypeOf(Combox)).call(this, tprops));

      var _getProps = _layerConvertor.converter.parse(getProps);
      var propsMap = _getProps ? _getProps.call(_this, tprops, context) : props || {};
      _this.state = {
        components: cname.map(function (n) {
          var item = propsMap[n];
          item.cname = item.cname || n;
          item.componentType = item.componentType || componentType;

          var Component = void 0;
          if (Array.isArray(item.cname)) {
            Component = getCombox(item, findComponent, function () {
              return Component.contextTypes;
            });
          } else {
            Component = findComponent(item) || _getComponent.getComponent.emptyComponent;
          }
          return {
            Component: Component,
            key: n
          };
        })
      };
      return _this;
    }

    _createClass(Combox, [{
      key: 'render',
      value: function render() {
        var _this2 = this;

        return _react2.default.createElement(
          'div',
          { className: 'o-com-combox ' + (className || '') },
          this.state.components.map(function (item) {
            return _react2.default.createElement(item.Component, _extends({ key: item.key }, _this2.props));
          })
        );
      }
    }]);

    return Combox;
  }(_react2.default.PureComponent);

  if (hoc) {
    var Com = findComponent(hoc);
    if (!Com) {
      window.console.log('hoc组件丢失');
    }
    var ChildComponent = Combox;
    var childProps = hoc.childProps || {};

    var HocCombox = function (_React$PureComponent2) {
      _inherits(HocCombox, _React$PureComponent2);

      function HocCombox() {
        _classCallCheck(this, HocCombox);

        return _possibleConstructorReturn(this, (HocCombox.__proto__ || Object.getPrototypeOf(HocCombox)).apply(this, arguments));
      }

      _createClass(HocCombox, [{
        key: 'render',
        value: function render() {
          var children = _react2.default.createElement(
            Com,
            null,
            _react2.default.createElement(HocCombox.ChildComponent, _extends({}, childProps, this.props))
          );
          // #! 包裹
          var wrapper = _layerConvertor.converter.parse(hoc.wrapper);
          if (wrapper) {
            return wrapper(children);
          } else {
            return children;
          }
        }
      }]);

      return HocCombox;
    }(_react2.default.PureComponent);

    HocCombox.ChildComponent = ChildComponent;
    HocCombox._async = ChildComponent._async;

    return HocCombox;
  } else {
    return Combox;
  }
}

/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _upperFirst = __webpack_require__(25);

var _upperFirst2 = _interopRequireDefault(_upperFirst);

var _defaultsDeep = __webpack_require__(110);

var _defaultsDeep2 = _interopRequireDefault(_defaultsDeep);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var context = __webpack_require__(111);

var exportObj = {};
context.keys().forEach(function (key) {
  Object.assign(exportObj, context(key));
});
/**
 * option = {layoutOption, layout, route}
 */
function getLayout(option, viewContent) {
  var CustomLayouts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};

  if (option.route && option.route.layout) {
    (0, _defaultsDeep2.default)(option.layoutOption, option.route.layoutOption, { route: option.route });
    option.layout = option.route.layout;
    delete option.route;
  }

  var layouts = Array.isArray(option.layout) ? option.layout : [option.layout];
  var layoutType = layouts[layouts.length - 1];
  var Layout = void 0;
  if (Object(layoutType) === layoutType) {
    Layout = layoutType;
  } else {
    Layout = CustomLayouts[layoutType] || exportObj[(0, _upperFirst2.default)(layoutType)] || exportObj['ConsoleLayout'];
  }

  var layoutProps = Layout.getLayoutProps(option.layoutOption, viewContent);
  viewContent = _react2.default.createElement(Layout, layoutProps);
  if (layouts.length > 1) {
    option.layout = layouts.slice(0, -1);
    return getLayout(option, viewContent, CustomLayouts);
  } else {
    return viewContent;
  }
}

/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _reactRouter = __webpack_require__(4);

var _layout = __webpack_require__(14);

var _layout2 = _interopRequireDefault(_layout);

var _sider = __webpack_require__(24);

var _header = __webpack_require__(21);

var _basicLayout = __webpack_require__(8);

__webpack_require__(112);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var COLLAPSED_KEY = 'beatle_console_sidebar';

var ConsoleLayout = exports.ConsoleLayout = (_temp = _class = function (_BasicLayout) {
  _inherits(ConsoleLayout, _BasicLayout);

  function ConsoleLayout(props) {
    _classCallCheck(this, ConsoleLayout);

    var _this = _possibleConstructorReturn(this, (ConsoleLayout.__proto__ || Object.getPrototypeOf(ConsoleLayout)).call(this, props));

    _this.state = {
      inited: true,
      collapsed: window.localStorage && window.localStorage.getItem(COLLAPSED_KEY) === 'true' || false
    };
    return _this;
  }

  _createClass(ConsoleLayout, [{
    key: 'render',
    value: function render() {
      var _this2 = this;

      var collapseCfg = {
        collapsed: this.state.collapsed,
        onCollapse: function onCollapse(collapsed) {
          // if (this.state.inited && this.state.collapsed) {
          //   this.setState({inited: false});
          //   return;
          // }
          _this2.setState({ collapsed: collapsed, inited: false });
          window.localStorage && window.localStorage.setItem(COLLAPSED_KEY, collapsed);
        }
      };
      var Sider = this.getComponent('Sider');
      var BLink = this.getComponent('Link');
      var Header = this.getComponent('Header');

      return _react2.default.createElement(
        'div',
        { className: 'j-layout-console ' + this.props.className, style: this.props.style },
        _react2.default.createElement(
          _layout2.default,
          { className: 'ant-layout-has-sider' },
          _react2.default.createElement(Sider, _extends({}, collapseCfg, { Link: BLink })),
          _react2.default.createElement(
            _layout2.default,
            null,
            _react2.default.createElement(Header, collapseCfg),
            _react2.default.createElement(
              _layout2.default.Content,
              null,
              this.props.viewContent || this.props.children
            )
          )
        )
      );
    }
  }]);

  return ConsoleLayout;
}(_basicLayout.BasicLayout), _class.displayName = 'ConsoleLayout', _class.layoutBlocks = {
  Header: _header.Header,
  Link: _reactRouter.Link,
  Sider: _sider.Sider
}, _temp);

/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _card = __webpack_require__(11);

var _card2 = _interopRequireDefault(_card);

var _reactRouter = __webpack_require__(4);

var _globalFooter = __webpack_require__(13);

var _breadCrumb = __webpack_require__(18);

var _basicLayout = __webpack_require__(8);

__webpack_require__(113);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var ContentLayout = exports.ContentLayout = (_temp = _class = function (_BasicLayout) {
  _inherits(ContentLayout, _BasicLayout);

  function ContentLayout() {
    _classCallCheck(this, ContentLayout);

    return _possibleConstructorReturn(this, (ContentLayout.__proto__ || Object.getPrototypeOf(ContentLayout)).apply(this, arguments));
  }

  _createClass(ContentLayout, [{
    key: 'render',
    value: function render() {
      var Footer = this.getComponent('Footer');
      var BLink = this.getComponent('Link');
      var BreadCrumb = this.getComponent('BreadCrumb');
      return _react2.default.createElement(
        'div',
        { className: 'j-layout-content ' + this.props.className, style: this.props.style },
        _react2.default.createElement(BreadCrumb, { Link: BLink }),
        _react2.default.createElement(
          'div',
          { className: 'j-content' },
          _react2.default.createElement(
            _card2.default,
            { bordered: false },
            this.props.viewContent || this.props.children
          )
        ),
        _react2.default.createElement(Footer, { className: 'j-footer' })
      );
    }
  }]);

  return ContentLayout;
}(_basicLayout.BasicLayout), _class.displayName = 'ContentLayout', _class.layoutBlocks = {
  Footer: _globalFooter.GlobalFooter,
  Link: _reactRouter.Link,
  BreadCrumb: _breadCrumb.BreadCrumb
}, _temp);

/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _card = __webpack_require__(11);

var _card2 = _interopRequireDefault(_card);

var _affix = __webpack_require__(114);

var _affix2 = _interopRequireDefault(_affix);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _reactRouter = __webpack_require__(4);

var _breadCrumb = __webpack_require__(18);

var _globalFooter = __webpack_require__(13);

var _basicLayout = __webpack_require__(8);

var _Drawer = __webpack_require__(115);

var _Drawer2 = _interopRequireDefault(_Drawer);

var _Divider = __webpack_require__(30);

var _Divider2 = _interopRequireDefault(_Divider);

__webpack_require__(116);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var styles = {
  root: {
    flexGrow: 1
  },
  appFrame: {
    minHeight: '100%',
    zIndex: 1,
    overflow: 'hidden',
    position: 'relative',
    display: 'flex',
    width: '100%'
  },
  menuButton: {
    marginLeft: 12,
    marginRight: 20
  },
  hide: {
    display: 'none'
  },
  drawerPaper: {
    position: 'relative'
  },
  drawerHeader: {
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'flex-end',
    padding: '0 8px'
  },
  drawerHeaderRight: {
    display: 'flex',
    alignItems: 'center',
    padding: '0 8px'
  },
  content: {
    flexGrow: 1,
    padding: 0
  },
  'contentShift-left': {
    marginLeft: 0
  },
  'contentShift-right': {
    marginRight: 0
  },
  iconSelected: {
    color: '#00bfdc',
    background: '#e6f7ff',
    boxShadow: '-1px -1px 1px #c5dff5'
  },
  title: {
    height: 30,
    width: '100%',
    lineHeight: '30px',
    paddingLeft: '10px',
    whiteSpace: 'nowrap',
    wordBreak: 'break-all',
    textOverflow: 'ellipsis',
    overflow: 'hidden'
  }
};
var FlexContentLayout = exports.FlexContentLayout = (_temp = _class = function (_BasicLayout) {
  _inherits(FlexContentLayout, _BasicLayout);

  function FlexContentLayout(props) {
    _classCallCheck(this, FlexContentLayout);

    var _this = _possibleConstructorReturn(this, (FlexContentLayout.__proto__ || Object.getPrototypeOf(FlexContentLayout)).call(this, props));

    _this.handleLeftDrawer = function (open) {
      if (open === false) {
        _this.setState({ openLeft: false });
      } else {
        _this.setState({ openLeft: !_this.state.openLeft }); // openProcessor: false
      }
    };

    _this.handleRightDrawer = function (open) {
      if (open === false) {
        _this.setState({ openRight: false });
      } else {
        _this.setState({ openRight: !_this.state.openRight });
      }
    };

    _this.handleRightDrawerClose = function () {
      _this.setState({ openRight: false });
    };

    var drawerStyle = Object.assign({ zIndex: _this.props.zIndex || 1000 }, props.drawerStyle);
    _this.state = {
      openLeft: !!_this.props.openLeft,
      openRight: !!_this.props.openRight,
      drawerStyle: drawerStyle
    };
    return _this;
  }

  _createClass(FlexContentLayout, [{
    key: 'render',
    value: function render() {
      var _this2 = this;

      var Footer = this.getComponent('Footer');
      var BLink = this.getComponent('Link');
      var BreadCrumb = this.getComponent('BreadCrumb');

      var LeftDrawer = this.getComponent('LeftDrawer');
      var RightDrawer = this.getComponent('RightDrawer');
      var Overview = this.getComponent('Overview');
      var Combox = this.getComponent('Combox');
      var _props = this.props,
          className = _props.className,
          drawerWidth = _props.drawerWidth,
          overviewWidth = _props.overviewWidth,
          leftTitle = _props.leftTitle,
          rightTitle = _props.rightTitle,
          affix = _props.affix,
          style = _props.style,
          mainStyle = _props.mainStyle;
      var _state = this.state,
          drawerStyle = _state.drawerStyle,
          openLeft = _state.openLeft,
          openRight = _state.openRight;

      var hasOverview = this.hasComponent('Overview');
      var hasLeftDrawer = this.hasComponent('LeftDrawer');
      var hasRightDrawer = this.hasComponent('RightDrawer');

      var StepConnector = this.getComponent('StepConnector');
      var hasStepConnector = this.hasComponent('StepConnector');

      var beforeDrawer = hasLeftDrawer ? _react2.default.createElement(
        _Drawer2.default,
        {
          open: openLeft,
          style: styles.drawerPaper,
          width: drawerWidth,
          containerStyle: drawerStyle
        },
        _react2.default.createElement(
          'div',
          { style: styles.drawerHeader },
          _react2.default.createElement(
            'div',
            { style: styles.title },
            leftTitle
          ),
          _react2.default.createElement(_icon2.default, { type: 'left-square-o', onClick: function onClick() {
              return _this2.handleLeftDrawer(false);
            } })
        ),
        _react2.default.createElement(_Divider2.default, null),
        _react2.default.createElement(LeftDrawer, { Link: BLink })
      ) : null;
      var afterDrawer = hasRightDrawer ? _react2.default.createElement(
        _Drawer2.default,
        {
          openSecondary: true,
          open: openRight,
          style: styles.drawerPaper,
          width: drawerWidth,
          containerStyle: drawerStyle
        },
        _react2.default.createElement(
          'div',
          { style: styles.drawerHeaderRight },
          _react2.default.createElement(_icon2.default, { type: 'right-square-o', onClick: function onClick() {
              return _this2.handleRightDrawer(false);
            } }),
          _react2.default.createElement(
            'div',
            { style: styles.title },
            rightTitle
          )
        ),
        _react2.default.createElement(_Divider2.default, null),
        _react2.default.createElement(RightDrawer, { Link: BLink })
      ) : null;
      var Head = _react2.default.createElement(
        'div',
        { className: 'j-elem-iconbox' },
        hasLeftDrawer ? _react2.default.createElement(_icon2.default, { type: 'compass', onClick: this.handleLeftDrawer, style: openLeft ? styles.iconSelected : {} }) : null,
        hasRightDrawer ? _react2.default.createElement(_icon2.default, { type: 'appstore-o', onClick: this.handleRightDrawer, style: openRight ? styles.iconSelected : {} }) : null,
        hasStepConnector ? _react2.default.createElement(
          'div',
          { className: 'j-step-connector' },
          _react2.default.createElement(StepConnector, null)
        ) : null,
        _react2.default.createElement(BreadCrumb, { Link: BLink, style: { marginLeft: hasLeftDrawer ? 35 : 0, marginRight: hasRightDrawer ? 35 : 0 } })
      );
      return _react2.default.createElement(
        'div',
        { className: 'j-layout-flexContent ' + className, style: Object.assign(style, styles.root) },
        affix ? _react2.default.createElement(
          _affix2.default,
          null,
          Head
        ) : Head,
        _react2.default.createElement(
          'div',
          { style: styles.appFrame },
          beforeDrawer,
          _react2.default.createElement(
            'main',
            {
              style: Object.assign({
                minHeight: document.body.offsetHeight - 107
              }, styles.content, mainStyle, openLeft ? { marginLeft: drawerWidth } : styles['contentShift-left'], openRight ? { marginRight: drawerWidth } : styles['contentShift-right'])
            },
            _react2.default.createElement('div', { style: styles.drawerHeader }),
            _react2.default.createElement(
              _card2.default,
              { bordered: false, className: 'j-content', style: this.props.contentStyle },
              _react2.default.createElement(
                'div',
                { className: 'j-content-wrap', style: { width: hasOverview ? 'calc(100% - ' + overviewWidth + 'px)' : '' } },
                this.props.viewContent || this.props.children
              ),
              _react2.default.createElement(
                'div',
                { className: 'j-content-overview', style: { flexBasis: overviewWidth, display: hasOverview ? '' : 'none' } },
                _react2.default.createElement(Overview, null)
              )
            ),
            _react2.default.createElement(Combox, null),
            _react2.default.createElement(Footer, { className: 'j-footer' })
          ),
          afterDrawer
        )
      );
    }
  }]);

  return FlexContentLayout;
}(_basicLayout.BasicLayout), _class.displayName = 'FlexContentLayout', _class.layoutBlocks = {
  Footer: _globalFooter.GlobalFooter,
  Link: _reactRouter.Link,
  BreadCrumb: _breadCrumb.BreadCrumb
}, _class.propTypes = {
  className: _propTypes2.default.string,
  leftTitle: _propTypes2.default.node,
  rightTitle: _propTypes2.default.node,
  drawerStyle: _propTypes2.default.object,
  openLeft: _propTypes2.default.bool,
  openRight: _propTypes2.default.bool,
  hasSider: _propTypes2.default.bool,
  drawerWidth: _propTypes2.default.number,
  zIndex: _propTypes2.default.number,
  affix: _propTypes2.default.bool,
  style: _propTypes2.default.object,
  mainStyle: _propTypes2.default.object,
  contentStyle: _propTypes2.default.object
}, _class.defaultProps = {
  drawerWidth: 200,
  overviewWidth: 250,
  affix: true,
  style: {},
  mainStyle: {}
}, _temp);

/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _layout = __webpack_require__(14);

var _layout2 = _interopRequireDefault(_layout);

var _reactRouter = __webpack_require__(4);

var _globalFooter = __webpack_require__(13);

var _basicLayout = __webpack_require__(8);

var _sider = __webpack_require__(24);

var _header = __webpack_require__(21);

__webpack_require__(117);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function Brand(_ref) {
  var logo = _ref.logo,
      title = _ref.title,
      description = _ref.description,
      Link = _ref.Link;

  return _react2.default.createElement(
    'div',
    { className: 'j-top' },
    _react2.default.createElement(
      'div',
      { className: 'j-header' },
      _react2.default.createElement(
        Link,
        { to: '/' },
        _react2.default.createElement('img', { alt: '', className: 'j-logo', src: logo }),
        _react2.default.createElement(
          'span',
          { className: 'j-title' },
          title
        )
      )
    ),
    description ? _react2.default.createElement(
      'p',
      { className: 'j-desc' },
      description
    ) : null
  );
}

var LandingLayout = exports.LandingLayout = (_temp = _class = function (_BasicLayout) {
  _inherits(LandingLayout, _BasicLayout);

  function LandingLayout() {
    _classCallCheck(this, LandingLayout);

    return _possibleConstructorReturn(this, (LandingLayout.__proto__ || Object.getPrototypeOf(LandingLayout)).apply(this, arguments));
  }

  _createClass(LandingLayout, [{
    key: 'render',
    value: function render() {
      var Footer = this.getComponent('Footer');
      var BLink = this.getComponent('Link');
      var Brand = this.getComponent('Brand');
      var Header = this.getComponent('Header');
      var style = this.props.style || { padding: '110px 0 144px' };
      return _react2.default.createElement(
        'div',
        { className: 'j-layout-landing ' + this.props.className, style: style },
        _react2.default.createElement(
          _layout2.default,
          null,
          _react2.default.createElement(Header, { noSider: true, Menu: _sider.Sider }),
          _react2.default.createElement(
            _layout2.default.Content,
            null,
            _react2.default.createElement(Brand, { Link: BLink }),
            this.props.viewContent || this.props.children,
            _react2.default.createElement(Footer, { className: 'j-footer' })
          )
        )
      );
    }
  }]);

  return LandingLayout;
}(_basicLayout.BasicLayout), _class.displayName = 'LandingLayout', _class.layoutBlocks = {
  Footer: _globalFooter.GlobalFooter,
  Link: _reactRouter.Link,
  Brand: Brand,
  Header: _header.Header
}, _temp);

/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Deferred = Deferred;
// + 把promise封装成Deferred,参考jQuery.Deffered
// > see: https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred
function Deferred() {
  var _this = this;

  var PromiseUtils = window.PromiseUtils || {};
  // #! update 062115 for typeof
  if (typeof Promise !== 'undefined' && Promise.defer) {
    // #! need import of Promise.jsm for example: Cu.import('resource:/gree/modules/Promise.jsm');
    return Promise.defer();
  } else if (typeof PromiseUtils !== 'undefined' && PromiseUtils.defer) {
    // #! need import of PromiseUtils.jsm for example: Cu.import('resource:/gree/modules/PromiseUtils.jsm');
    return PromiseUtils.defer();
  } else {
    /* A method to resolve the associated Promise with the value passed.
    * If the promise is already settled it does nothing.
    *
    * @param {anything} value : This value is used to resolve the promise
    * If the value is a Promise then the associated promise assumes the state
    * of Promise passed as value.
    */
    this.resolve = null;
    /* A method to reject the assocaited Promise with the value passed.
    * If the promise is already settled it does nothing.
    *
    * @param {anything} reason: The reason for the rejection of the Promise.
    * Generally its an Error object. If however a Promise is passed, then the Promise
    * itself will be the reason for rejection no matter the state of the Promise.
    */
    this.reject = null;
    /* A newly created Pomise object.
    * Initially in pending state.
    */
    this.promise = new Promise(function (resolve, reject) {
      _this.resolve = resolve;
      _this.reject = reject;
    });
    Object.freeze(this);
  }
}

/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
var ua = navigator.userAgent.toLowerCase();
var isIE = ua.indexOf('msie') > -1;
var userDataEl;
var d = document;

var tp = location.pathname.split('/');
tp[tp.length - 1] = '';
var path = encodeURIComponent(tp.join('/'));

var ls;
var newLocalStorage;
try {
  ls = window.localStorage;
} catch (e) {
  window.console.warn(e);
}
if (ls) {
  userDataEl = window.localStorage;
  newLocalStorage = {
    set: function set(k, v) {
      try {
        userDataEl.setItem(k, v);
      } catch (e) {
        return false;
      }
      return true;
    },
    get: function get(k) {
      try {
        return userDataEl.getItem(k);
      } catch (e) {
        return;
      }
    }
  };
} else if (isIE) {
  userDataEl = d.getElementById('_console_userdata');
  if (!userDataEl) {
    userDataEl = d.createElement('input');
    userDataEl.type = 'hidden';
    d.body.insertBefore(userDataEl, d.body.firstChild);

    try {
      userDataEl.addBehavior('#default#userData');
    } catch (e) {
      window.console.warn(e);
    }
  }

  newLocalStorage = {
    set: function set(k, v) {
      try {
        userDataEl.load(path);
        userDataEl.setAttribute(k, v);
        userDataEl.save(path);
      } catch (e) {
        return false;
      }
      return true;
    },
    get: function get(k) {
      try {
        userDataEl.load(path);
      } catch (e) {
        return;
      }
      return userDataEl.getAttribute(k);
    }
  };
} else {
  newLocalStorage = {
    set: function set() {},
    get: function get() {}
  };
}

var localStorage = exports.localStorage = newLocalStorage;

/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

__webpack_require__(58);

var _path = __webpack_require__(59);

var _path2 = _interopRequireDefault(_path);

var _galleryResolver = __webpack_require__(15);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var context = __webpack_require__(62);

var exportObj = {};
var gallery = {
  layers: {},
  layouts: {},
  services: {},
  components: {}
};
context.keys().forEach(function (key) {
  var ks = key.split('/');
  var filename = ks.pop();
  var dirname = ks[ks.length - 2];
  if (gallery[dirname] && _path2.default.basename(filename, _path2.default.extname(filename)) === 'index') {
    Object.assign(gallery[dirname], context(key));
  }
  Object.assign(exportObj, context(key));
});

var components = gallery.components;
gallery.components = {
  hc: components
};
(0, _galleryResolver.setGallery)(gallery);

exports.default = exportObj;
module.exports = exports['default'];

/***/ }),
/* 58 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) {
  // if the path tries to go above the root, `up` ends up > 0
  var up = 0;
  for (var i = parts.length - 1; i >= 0; i--) {
    var last = parts[i];
    if (last === '.') {
      parts.splice(i, 1);
    } else if (last === '..') {
      parts.splice(i, 1);
      up++;
    } else if (up) {
      parts.splice(i, 1);
      up--;
    }
  }

  // if the path is allowed to go above the root, restore leading ..s
  if (allowAboveRoot) {
    for (; up--; up) {
      parts.unshift('..');
    }
  }

  return parts;
}

// Split a filename into [root, dir, basename, ext], unix version
// 'root' is just a slash, or nothing.
var splitPathRe =
    /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
var splitPath = function(filename) {
  return splitPathRe.exec(filename).slice(1);
};

// path.resolve([from ...], to)
// posix version
exports.resolve = function() {
  var resolvedPath = '',
      resolvedAbsolute = false;

  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
    var path = (i >= 0) ? arguments[i] : process.cwd();

    // Skip empty and invalid entries
    if (typeof path !== 'string') {
      throw new TypeError('Arguments to path.resolve must be strings');
    } else if (!path) {
      continue;
    }

    resolvedPath = path + '/' + resolvedPath;
    resolvedAbsolute = path.charAt(0) === '/';
  }

  // At this point the path should be resolved to a full absolute path, but
  // handle relative paths to be safe (might happen when process.cwd() fails)

  // Normalize the path
  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
    return !!p;
  }), !resolvedAbsolute).join('/');

  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
};

// path.normalize(path)
// posix version
exports.normalize = function(path) {
  var isAbsolute = exports.isAbsolute(path),
      trailingSlash = substr(path, -1) === '/';

  // Normalize the path
  path = normalizeArray(filter(path.split('/'), function(p) {
    return !!p;
  }), !isAbsolute).join('/');

  if (!path && !isAbsolute) {
    path = '.';
  }
  if (path && trailingSlash) {
    path += '/';
  }

  return (isAbsolute ? '/' : '') + path;
};

// posix version
exports.isAbsolute = function(path) {
  return path.charAt(0) === '/';
};

// posix version
exports.join = function() {
  var paths = Array.prototype.slice.call(arguments, 0);
  return exports.normalize(filter(paths, function(p, index) {
    if (typeof p !== 'string') {
      throw new TypeError('Arguments to path.join must be strings');
    }
    return p;
  }).join('/'));
};


// path.relative(from, to)
// posix version
exports.relative = function(from, to) {
  from = exports.resolve(from).substr(1);
  to = exports.resolve(to).substr(1);

  function trim(arr) {
    var start = 0;
    for (; start < arr.length; start++) {
      if (arr[start] !== '') break;
    }

    var end = arr.length - 1;
    for (; end >= 0; end--) {
      if (arr[end] !== '') break;
    }

    if (start > end) return [];
    return arr.slice(start, end - start + 1);
  }

  var fromParts = trim(from.split('/'));
  var toParts = trim(to.split('/'));

  var length = Math.min(fromParts.length, toParts.length);
  var samePartsLength = length;
  for (var i = 0; i < length; i++) {
    if (fromParts[i] !== toParts[i]) {
      samePartsLength = i;
      break;
    }
  }

  var outputParts = [];
  for (var i = samePartsLength; i < fromParts.length; i++) {
    outputParts.push('..');
  }

  outputParts = outputParts.concat(toParts.slice(samePartsLength));

  return outputParts.join('/');
};

exports.sep = '/';
exports.delimiter = ':';

exports.dirname = function(path) {
  var result = splitPath(path),
      root = result[0],
      dir = result[1];

  if (!root && !dir) {
    // No dirname whatsoever
    return '.';
  }

  if (dir) {
    // It has a dirname, strip trailing slash
    dir = dir.substr(0, dir.length - 1);
  }

  return root + dir;
};


exports.basename = function(path, ext) {
  var f = splitPath(path)[2];
  // TODO: make this comparison case-insensitive on windows?
  if (ext && f.substr(-1 * ext.length) === ext) {
    f = f.substr(0, f.length - ext.length);
  }
  return f;
};


exports.extname = function(path) {
  return splitPath(path)[3];
};

function filter (xs, f) {
    if (xs.filter) return xs.filter(f);
    var res = [];
    for (var i = 0; i < xs.length; i++) {
        if (f(xs[i], i, xs)) res.push(xs[i]);
    }
    return res;
}

// String.prototype.substr - negative index don't work in IE8
var substr = 'ab'.substr(-1) === 'b'
    ? function (str, start, len) { return str.substr(start, len) }
    : function (str, start, len) {
        if (start < 0) start = str.length + start;
        return str.substr(start, len);
    }
;

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(60)))

/***/ }),
/* 60 */
/***/ (function(module, exports) {

// shim for using process in browser
var process = module.exports = {};

// cached from whatever global is present so that test runners that stub it
// don't break things.  But we need to wrap it in a try catch in case it is
// wrapped in strict mode code which doesn't define any globals.  It's inside a
// function because try/catches deoptimize in certain engines.

var cachedSetTimeout;
var cachedClearTimeout;

function defaultSetTimout() {
    throw new Error('setTimeout has not been defined');
}
function defaultClearTimeout () {
    throw new Error('clearTimeout has not been defined');
}
(function () {
    try {
        if (typeof setTimeout === 'function') {
            cachedSetTimeout = setTimeout;
        } else {
            cachedSetTimeout = defaultSetTimout;
        }
    } catch (e) {
        cachedSetTimeout = defaultSetTimout;
    }
    try {
        if (typeof clearTimeout === 'function') {
            cachedClearTimeout = clearTimeout;
        } else {
            cachedClearTimeout = defaultClearTimeout;
        }
    } catch (e) {
        cachedClearTimeout = defaultClearTimeout;
    }
} ())
function runTimeout(fun) {
    if (cachedSetTimeout === setTimeout) {
        //normal enviroments in sane situations
        return setTimeout(fun, 0);
    }
    // if setTimeout wasn't available but was latter defined
    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
        cachedSetTimeout = setTimeout;
        return setTimeout(fun, 0);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedSetTimeout(fun, 0);
    } catch(e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
            return cachedSetTimeout.call(null, fun, 0);
        } catch(e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
            return cachedSetTimeout.call(this, fun, 0);
        }
    }


}
function runClearTimeout(marker) {
    if (cachedClearTimeout === clearTimeout) {
        //normal enviroments in sane situations
        return clearTimeout(marker);
    }
    // if clearTimeout wasn't available but was latter defined
    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
        cachedClearTimeout = clearTimeout;
        return clearTimeout(marker);
    }
    try {
        // when when somebody has screwed with setTimeout but no I.E. maddness
        return cachedClearTimeout(marker);
    } catch (e){
        try {
            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
            return cachedClearTimeout.call(null, marker);
        } catch (e){
            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
            return cachedClearTimeout.call(this, marker);
        }
    }



}
var queue = [];
var draining = false;
var currentQueue;
var queueIndex = -1;

function cleanUpNextTick() {
    if (!draining || !currentQueue) {
        return;
    }
    draining = false;
    if (currentQueue.length) {
        queue = currentQueue.concat(queue);
    } else {
        queueIndex = -1;
    }
    if (queue.length) {
        drainQueue();
    }
}

function drainQueue() {
    if (draining) {
        return;
    }
    var timeout = runTimeout(cleanUpNextTick);
    draining = true;

    var len = queue.length;
    while(len) {
        currentQueue = queue;
        queue = [];
        while (++queueIndex < len) {
            if (currentQueue) {
                currentQueue[queueIndex].run();
            }
        }
        queueIndex = -1;
        len = queue.length;
    }
    currentQueue = null;
    draining = false;
    runClearTimeout(timeout);
}

process.nextTick = function (fun) {
    var args = new Array(arguments.length - 1);
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args[i - 1] = arguments[i];
        }
    }
    queue.push(new Item(fun, args));
    if (queue.length === 1 && !draining) {
        runTimeout(drainQueue);
    }
};

// v8 likes predictible objects
function Item(fun, array) {
    this.fun = fun;
    this.array = array;
}
Item.prototype.run = function () {
    this.fun.apply(null, this.array);
};
process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];
process.version = ''; // empty string to avoid regexp issues
process.versions = {};

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;
process.prependListener = noop;
process.prependOnceListener = noop;

process.listeners = function (name) { return [] }

process.binding = function (name) {
    throw new Error('process.binding is not supported');
};

process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};
process.umask = function() { return 0; };


/***/ }),
/* 61 */
/***/ (function(module, exports) {

module.exports = require("lodash/merge");

/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {

var map = {
	"./components/archive/index.jsx": 63,
	"./components/breadCrumb/index.jsx": 18,
	"./components/complexInput/index.jsx": 79,
	"./components/customForm/index.jsx": 28,
	"./components/dataSet/index.jsx": 32,
	"./components/dnd/dragItem.jsx": 33,
	"./components/dnd/dropItem.jsx": 34,
	"./components/dnd/index.jsx": 80,
	"./components/exception/index.jsx": 35,
	"./components/explorer/index.jsx": 83,
	"./components/globalFooter/index.jsx": 13,
	"./components/header/index.jsx": 21,
	"./components/headerSearch/index.js": 38,
	"./components/loadingBar/index.jsx": 90,
	"./components/modal/index.jsx": 40,
	"./components/navLink/index.jsx": 12,
	"./components/notifier/copyLogger.jsx": 41,
	"./components/notifier/errorFetch.js": 93,
	"./components/notifier/errorReducer.js": 94,
	"./components/notifier/notifier.js": 23,
	"./components/result/index.jsx": 95,
	"./components/search/index.jsx": 97,
	"./components/sider/index.jsx": 24,
	"./components/stepConnector/index.jsx": 99,
	"./components/tagSearcher/index.jsx": 102,
	"./components/tour/index.jsx": 106,
	"./core/bootstrap.js": 43,
	"./core/defer.js": 55,
	"./core/fallbackRoutes.js": 44,
	"./core/localStorage.js": 56,
	"./core/localeContext.js": 3,
	"./core/versionDetector.js": 120,
	"./layers/flexGridLayer/index.jsx": 121,
	"./layers/galleryResolver.js": 15,
	"./layers/getCombox.jsx": 49,
	"./layers/index.js": 46,
	"./layers/layerConvertor.js": 9,
	"./layers/layerEditor.jsx": 48,
	"./layers/simpleLayer/index.jsx": 123,
	"./layouts/basicLayout.jsx": 8,
	"./layouts/consoleLayout/index.jsx": 51,
	"./layouts/contentLayout/index.jsx": 52,
	"./layouts/flexContentLayout/index.jsx": 53,
	"./layouts/getComponent.jsx": 5,
	"./layouts/index.jsx": 50,
	"./layouts/landingLayout/index.jsx": 54,
	"./services/adaptPage/index.js": 124,
	"./services/cascader/index.js": 125,
	"./services/hocCreator/index.js": 126,
	"./services/resizer/index.js": 127,
	"./services/routeHelper/index.js": 128,
	"./services/validator/index.js": 130
};
function webpackContext(req) {
	return __webpack_require__(webpackContextResolve(req));
};
function webpackContextResolve(req) {
	var id = map[req];
	if(!(id + 1)) // check for number or string
		throw new Error("Cannot find module '" + req + "'.");
	return id;
};
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 62;

/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp, _class2, _temp2;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _form = __webpack_require__(10);

var _form2 = _interopRequireDefault(_form);

var _row = __webpack_require__(26);

var _row2 = _interopRequireDefault(_row);

var _col = __webpack_require__(27);

var _col2 = _interopRequireDefault(_col);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _customForm = __webpack_require__(28);

var _Divider = __webpack_require__(30);

var _Divider2 = _interopRequireDefault(_Divider);

__webpack_require__(75);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var IArchive = (_temp = _class = function (_React$PureComponent) {
  _inherits(IArchive, _React$PureComponent);

  function IArchive(props, context) {
    _classCallCheck(this, IArchive);

    var _this = _possibleConstructorReturn(this, (IArchive.__proto__ || Object.getPrototypeOf(IArchive)).call(this, props, context));

    _this.toggle = function () {
      _this.setState({ expand: !_this.state.expand });
    };

    _this.handleSubmit = function (e) {
      e && e.preventDefault();
      _this.props.form.validateFields(function (err, values) {
        if (!err) {
          _this.props.options.forEach(function (option) {
            if (option.getValue) {
              var name = option.dataIndex || option.name;
              values[name] = option.getValue(values[name]);
            }
          });
          _this.props.onSubmit && _this.props.onSubmit(values);
        }
      });
    };

    _this.state = {
      expand: !props.limit || props.limit > props.options.length,
      dataSource: _this.props.dataSource
    };
    return _this;
  }

  _createClass(IArchive, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      if (nextProps.dataSource !== this.props.dataSource) {
        this.setState({ dataSource: nextProps.dataSource });
      }
    }
  }, {
    key: 'getFieldValue',
    value: function getFieldValue(name, option, editable) {
      var value = void 0;
      if (this.state.dataSource[name] === undefined) {
        value = option.value;
      } else {
        value = this.state.dataSource[name];
      }
      if (this.props.formatter) {
        return this.props.formatter(value, option);
      } else {
        if (editable) {
          return option.renderInput ? option.renderInput(value, this.state.dataSource) : value;
        } else {
          return option.render ? option.render(value, this.state.dataSource) : value;
        }
      }
    }
  }, {
    key: 'getFieldInput',
    value: function getFieldInput(name, option) {
      var _this2 = this;

      var _props = this.props,
          form = _props.form,
          readonly = _props.readonly,
          onChange = _props.onChange;

      var editable = option.editable === undefined ? !readonly : option.editable;

      if (editable) {
        /**
         * option = {
         *  dataType | type,
         *  enum,
         *  options,
         *  format,
         *  mode,
         *  dragger,
         *  action,
         *  valuePropName,
         *  Component,
         *  max,
         *  maxLength,
         *  maximum,
         *  disabled,
         *  placeholder
         * }
         */
        var decorator = option.decorator || {};
        if (onChange) {
          decorator.getValueFromEvent = function (e) {
            var v = _customForm.CustomForm.getValueFromEvent(e, option);
            onChange(v, name);
            return v;
          };
        }
        decorator.defaultValue = this.getFieldValue(name, option, editable);
        var stateProps = option.getProps && option.getProps.call(this, this.props, this.state.dataSource, function (nextState) {
          _this2.setState({
            dataSource: Object.assign({}, _this2.state.dataSource, nextState)
          });
        }, this.props.form);
        if (stateProps === false) return null;
        var fieldInput = _customForm.CustomForm.getFieldInput(option, option.props, stateProps || {}, decorator);
        return form.getFieldDecorator(name, decorator)(fieldInput);
      } else {
        return this.getFieldValue(name, option);
      }
    }
  }, {
    key: 'getFields',
    value: function getFields() {
      var _props2 = this.props,
          options = _props2.options,
          limit = _props2.limit,
          cols = _props2.cols,
          formItemLayout = _props2.formItemLayout,
          compact = _props2.compact,
          noLabel = _props2.noLabel;

      var span = Math.floor(24 / cols);
      var count = this.state.expand ? options.length : limit;
      // const {getFieldDecorator} = form;
      var fields = [];
      var itemStyle = compact ? { marginBottom: 0 } : {};
      var item = void 0;
      var name = void 0;
      var label = void 0;
      var input = void 0;
      for (var i = 0; i < count; i++) {
        item = options[i];
        if (item && (item.dataIndex || item.name)) {
          name = item.dataIndex || item.name;
          label = noLabel ? null : item.title || item.name;
          input = this.getFieldInput(name, item);
          if (input) {
            fields.push(_react2.default.createElement(
              _col2.default,
              { span: item.col ? item.col * span : item.span || span, key: name, style: { display: i < count ? 'block' : 'none' } },
              _react2.default.createElement(
                _form2.default.Item,
                _extends({}, formItemLayout, item.attrs, { label: label, style: itemStyle }),
                input
              )
            ));
          }
        }
      }
      return fields;
    }
  }, {
    key: 'getButtons',
    value: function getButtons() {
      var _props3 = this.props,
          buttons = _props3.buttons,
          buttonProps = _props3.buttonProps;

      if (buttonProps.onSubmit) {
        buttonProps.onSubmit.bind(this.state.dataSource);
      } else {
        buttonProps.onSubmit = this.handleSubmit;
      }
      var justify = buttonProps.align || 'end';
      var _buttons = _customForm.CustomForm.getButtons(buttons, buttonProps);
      return _buttons ? _react2.default.createElement(
        _row2.default,
        { justify: justify, type: 'flex', className: 'o-com-archive_btns', style: buttonProps.btnStyle },
        _buttons
      ) : null;
    }
  }, {
    key: 'render',
    value: function render() {
      return _react2.default.createElement(
        _form2.default,
        { className: 'o-com-archive ' + this.props.className, style: this.props.style, layout: this.props.layout, onSubmit: this.props.buttonProps.noButton && this.handleSubmit },
        _react2.default.createElement(
          _row2.default,
          { gutter: 24 },
          this.getFields(),
          this.props.limit && this.props.limit < this.props.options.length ? _react2.default.createElement(
            'a',
            { className: 'o-com-archive_expand', onClick: this.toggle },
            'more ',
            _react2.default.createElement(_icon2.default, { type: this.state.expand ? 'up' : 'down' })
          ) : null
        ),
        this.getButtons()
      );
    }
  }]);

  return IArchive;
}(_react2.default.PureComponent), _class.propTypes = {
  options: _propTypes2.default.array,
  dataSource: _propTypes2.default.object,
  limit: _propTypes2.default.number,
  form: _propTypes2.default.object,
  cols: _propTypes2.default.number,
  readonly: _propTypes2.default.bool,
  compact: _propTypes2.default.bool,

  layout: _propTypes2.default.string,
  formItemLayout: _propTypes2.default.object,
  onChange: _propTypes2.default.func,
  onSubmit: _propTypes2.default.func,
  formatter: _propTypes2.default.func,
  noLabel: _propTypes2.default.bool,
  style: _propTypes2.default.object,
  className: _propTypes2.default.string,

  buttons: _propTypes2.default.array,
  buttonProps: _propTypes2.default.object
}, _class.defaultProps = {
  options: [],
  dataSource: {},
  cols: 3,
  readonly: true,
  compact: false,
  buttonProps: { noButton: true },
  className: '',
  style: {}
}, _temp);
var ArchiveGroup = (_temp2 = _class2 = function (_React$PureComponent2) {
  _inherits(ArchiveGroup, _React$PureComponent2);

  function ArchiveGroup() {
    _classCallCheck(this, ArchiveGroup);

    return _possibleConstructorReturn(this, (ArchiveGroup.__proto__ || Object.getPrototypeOf(ArchiveGroup)).apply(this, arguments));
  }

  _createClass(ArchiveGroup, [{
    key: 'render',
    value: function render() {
      var _this4 = this;

      return _react2.default.createElement(
        'div',
        { className: 'o-com-archive-group' },
        this.props.options.map(function (item) {
          return _react2.default.createElement(
            'div',
            { key: item.name, className: 'o-com-archive-group_box' },
            _react2.default.createElement(
              'h5',
              null,
              item.title || item.name
            ),
            _react2.default.createElement(_Divider2.default, null),
            _react2.default.createElement(Archive, _extends({}, item.attrs, _this4.props, { options: item.items, dataSource: _this4.props.dataSource[item.name] }))
          );
        })
      );
    }
  }]);

  return ArchiveGroup;
}(_react2.default.PureComponent), _class2.propTypes = {
  options: _propTypes2.default.array,
  dataSource: _propTypes2.default.object
}, _class2.defaultProps = {
  options: [],
  dataSource: {}
}, _temp2);
var Archive = exports.Archive = _form2.default.create({ name: 'archive' })(IArchive);
Archive.Group = ArchiveGroup;

/***/ }),
/* 64 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/input-number");

/***/ }),
/* 65 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/select");

/***/ }),
/* 66 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/date-picker");

/***/ }),
/* 67 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/time-picker");

/***/ }),
/* 68 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/checkbox");

/***/ }),
/* 69 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/switch");

/***/ }),
/* 70 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/upload");

/***/ }),
/* 71 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/tabs");

/***/ }),
/* 72 */
/***/ (function(module, exports) {

module.exports = require("lodash/isPlainObject");

/***/ }),
/* 73 */
/***/ (function(module, exports) {

module.exports = require("moment");

/***/ }),
/* 74 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 75 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 76 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/breadcrumb");

/***/ }),
/* 77 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 78 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp, _initialiseProps;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _form = __webpack_require__(10);

var _form2 = _interopRequireDefault(_form);

var _row = __webpack_require__(26);

var _row2 = _interopRequireDefault(_row);

var _col = __webpack_require__(27);

var _col2 = _interopRequireDefault(_col);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var formItemLayout = {
  wrapperCol: { span: 24 },
  required: false,
  style: { margin: '0 10px 10px 0' }
};
var formItemLayoutTwo = {
  labelCol: {
    xs: { span: 2 },
    sm: { span: 2 }
  },
  wrapperCol: {
    xs: { span: 2 },
    sm: { span: 22 }
  },
  style: { margin: '0 10px 10px 0' }
};

var ComplexInput = exports.ComplexInput = (_dec = _form2.default.create(), _dec(_class = (_temp = _class2 = function (_React$PureComponent) {
  _inherits(ComplexInput, _React$PureComponent);

  function ComplexInput(props) {
    _classCallCheck(this, ComplexInput);

    var _this = _possibleConstructorReturn(this, (ComplexInput.__proto__ || Object.getPrototypeOf(ComplexInput)).call(this, props));

    _initialiseProps.call(_this);

    var value = _this.convert(props.value || '');
    _this._uuid = 0;
    _this._oValue = props.value;
    _this.state = {
      value: value,
      keys: Array.isArray(value) && value.length ? value.map(function () {
        return _this._uuid++;
      }) : [_this._uuid++]
    };
    return _this;
  }

  _createClass(ComplexInput, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      var _this2 = this;

      if (nextProps.value !== this._oValue) {
        this._oValue = nextProps.value;
        var value = this.convert(nextProps.value || '');
        this._uuid = 0;
        this.setState({
          value: value,
          keys: Array.isArray(value) && value.length ? value.map(function () {
            return _this2._uuid++;
          }) : [this._uuid++]
        });
      }
    }
  }, {
    key: 'convert',
    value: function convert(v, inverse) {
      var _props = this.props,
          convert = _props.convert,
          separator = _props.separator,
          delimeter = _props.delimeter;

      if (convert) {
        return convert(v, inverse);
      } else if (separator) {
        if (inverse) {
          v = delimeter ? v.map(function (d) {
            return d.join(delimeter);
          }) : v;
          return v.join(separator);
        } else {
          v = v.split(separator);
          return delimeter ? v.map(function (d) {
            return d.split(delimeter);
          }) : v;
        }
      } else {
        return [].concat(v || []);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var keys = this.state.keys;
      return this.props.showBorder ? _react2.default.createElement(
        'div',
        { style: {
            border: '1px solid #ddd',
            padding: 10
          } },
        _react2.default.createElement(
          _form2.default,
          null,
          keys.map(this.getItem)
        )
      ) : _react2.default.createElement(
        _form2.default,
        null,
        keys.map(this.getItem)
      );
    }
  }]);

  return ComplexInput;
}(_react2.default.PureComponent), _class2.propTypes = {
  form: _propTypes2.default.object,
  separator: _propTypes2.default.string,
  delimeter: _propTypes2.default.string,
  inputs: _propTypes2.default.array,
  disabled: _propTypes2.default.bool,
  extra: _propTypes2.default.string,
  convert: _propTypes2.default.func,
  value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
  onChange: _propTypes2.default.func,
  showIcon: _propTypes2.default.bool,
  showBorder: _propTypes2.default.bool,
  showLine: _propTypes2.default.string,
  span: _propTypes2.default.number,
  keyName: _propTypes2.default.number
}, _initialiseProps = function _initialiseProps() {
  var _this3 = this;

  this.remove = function (k) {
    var keys = _this3.state.keys;
    // can use data-binding to get
    // We need at least one passenger

    if (keys.length === 1) {
      return;
    }

    // can use data-binding to set
    _this3.setState({
      keys: keys.filter(function (key) {
        return key !== k;
      })
    });
  };

  this.add = function () {
    var keys = _this3.state.keys;
    // can use data-binding to get

    var nextKeys = keys.concat(_this3._uuid);
    _this3._uuid++;
    // keys.splice(idx, 0, this._uuid++);

    // can use data-binding to set
    // important! notify form to detect changes
    _this3.setState({
      keys: nextKeys
    });
  };

  this.handleChange = function () {
    clearTimeout(_this3._timer);
    _this3._timer = setTimeout(function () {
      _this3.props.form.validateFields(function (err, values) {
        if (!err) {
          var body = _this3.state.keys.map(function (k) {
            return _this3.props.inputs.length > 1 ? _this3.props.inputs.map(function (inp, index) {
              return values['inp' + index][k];
            }) : values['inp0'][k];
          });
          _this3._oValue = _this3.convert(body, true);
          _this3.props.onChange && _this3.props.onChange(_this3._oValue);
        }
      });
    }, 200);
  };

  this.getItem = function (k, index) {
    var keys = _this3.state.keys;
    var _props2 = _this3.props,
        form = _props2.form,
        inputs = _props2.inputs,
        disabled = _props2.disabled,
        extra = _props2.extra;

    var showIcon = _this3.props.showIcon ? _this3.props.showIcon : false;
    var showLine = _this3.props.showLine ? _this3.props.showLine : 'none';
    var value = _this3.state.value[k];
    var span = _this3.props.span ? _this3.props.span : Math.floor(22 / inputs.length);
    var IInput = inputs[0].component || _input2.default;
    return _react2.default.createElement(
      'div',
      null,
      _react2.default.createElement(
        _row2.default,
        { key: k },
        span < 22 ? inputs.map(function (inp, pos) {
          IInput = inp.component || _input2.default;
          return _react2.default.createElement(
            _col2.default,
            { span: span, key: k + '_' + pos },
            _react2.default.createElement(
              _form2.default.Item,
              _extends({}, formItemLayout, { disabled: disabled }),
              form.getFieldDecorator('inp' + pos + '[' + k + ']', Object.assign({
                initialValue: value ? value[pos] : undefined
              }, inp.rule && {
                validateTrigger: ['onChange', 'onBlur'],
                rules: inp.rule
              }))(_react2.default.createElement(IInput, _extends({}, inp, { onChange: _this3.handleChange })))
            )
          );
        }) : inputs.map(function (inp, pos) {
          IInput = inp.component || _input2.default;
          return _react2.default.createElement(
            _col2.default,
            { span: 22, key: k + '_' + pos },
            _react2.default.createElement(
              _form2.default.Item,
              _extends({}, formItemLayoutTwo, { disabled: disabled, label: inp.label, rules: inp.rules, extra: inp.types ? null : extra }),
              inp.types ? form.getFieldDecorator('inp' + pos + '[' + k + ']', Object.assign({
                initialValue: value ? value[pos] : undefined
              }, inp.rule && {
                validateTrigger: ['onChange', 'onBlur'],
                rules: inp.rule
              }))(_react2.default.createElement(IInput.TextArea, _extends({}, inp, { onChange: _this3.handleChange }))) : form.getFieldDecorator('inp' + pos + '[' + k + ']', Object.assign({
                initialValue: value ? value[pos] : undefined
              }, inp.rule && {
                validateTrigger: ['onChange', 'onBlur'],
                rules: inp.rule
              }))(_react2.default.createElement(IInput, _extends({}, inp, { onChange: _this3.handleChange })))
            )
          );
        }),
        showIcon === false ? keys.length > 0 ? _react2.default.createElement(
          'span',
          null,
          '\xA0',
          _react2.default.createElement(_icon2.default, {
            style: { lineHeight: '32px' },
            type: 'minus-circle-o',
            disabled: disabled,
            onClick: function onClick() {
              return _this3.remove(k);
            }
          }),
          '\xA0',
          _react2.default.createElement(_icon2.default, {
            style: { lineHeight: '32px' },
            type: 'plus-circle-o',
            disabled: disabled,
            onClick: function onClick() {
              return _this3.add(index);
            }
          })
        ) : null : null
      ),
      _react2.default.createElement('hr', { style: { border: '1px dashed rgb(221, 221, 221)', width: '80%', display: showLine } })
    );
  };
}, _temp)) || _class);

/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _hoistNonReactStatics = __webpack_require__(16);

var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

var _reactDndHtml5Backend = __webpack_require__(81);

var _reactDndHtml5Backend2 = _interopRequireDefault(_reactDndHtml5Backend);

var _reactDnd = __webpack_require__(20);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var DnDContext = exports.DnDContext = function DnDContext() {
  return function (BaseComponent) {
    var Component = (0, _reactDnd.DragDropContext)(_reactDndHtml5Backend2.default)(BaseComponent);
    return (0, _hoistNonReactStatics2.default)(Component, BaseComponent);
  };
};

/***/ }),
/* 81 */
/***/ (function(module, exports) {

module.exports = require("react-dnd-html5-backend");

/***/ }),
/* 82 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

var _tree = __webpack_require__(84);

var _tree2 = _interopRequireDefault(_tree);

var _radio = __webpack_require__(29);

var _radio2 = _interopRequireDefault(_radio);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _alert = __webpack_require__(36);

var _alert2 = _interopRequireDefault(_alert);

var _spin = __webpack_require__(37);

var _spin2 = _interopRequireDefault(_spin);

__webpack_require__(85);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Explorer = exports.Explorer = (_temp = _class = function (_React$PureComponent) {
  _inherits(Explorer, _React$PureComponent);

  function Explorer(props, context) {
    _classCallCheck(this, Explorer);

    var _this = _possibleConstructorReturn(this, (Explorer.__proto__ || Object.getPrototypeOf(Explorer)).call(this, props, context));

    _this.state = {
      searchValue: '',
      expandedKeys: [],
      activeTab: props.cateId,
      activeKey: props.value,
      dataSource: props.changeNodes ? _this.handleChange(props.dataSource, props.changeNodes) : props.dataSource
    };
    if (props.value) {
      _this.state.expandedKeys = _this.getExpandedKeys(_this.getData(), function (item) {
        return item.id === props.value;
      });
    }

    _this._lazySearch = null;
    return _this;
  }

  /**
   * dataSource = [
   *  {
   *    id,
   *    children
   *  },
   *  ...
   * ]
   */


  _createClass(Explorer, [{
    key: 'handleChange',
    value: function handleChange(dataSource, changeNodes, map) {
      var _this2 = this;

      if (!changeNodes.length) return dataSource;

      if (!map) {
        map = {};
        changeNodes.forEach(function (node, index) {
          map[node.id] = index;
        });
      }

      var newDataSource = [];
      dataSource.forEach(function (item) {
        if (map[item.id] === undefined) {
          if (item.children) {
            item.children = _this2.handleChange(item.children, changeNodes, map);
          }
        } else {
          changeNodes.splice(map[item.id], 1);
          newDataSource.push(item);
        }
      });
      return newDataSource;
    }
  }, {
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      if (nextProps.dataSource !== this.props.dataSource || nextProps.changeNodes !== this.props.changeNodes) {
        this.setState({
          dataSource: this.handleChange(nextProps.dataSource, nextProps.changeNodes)
        });
      }
    }
  }, {
    key: 'getExpandedKeys',
    value: function getExpandedKeys(dataSource, matcher, parentKey) {
      var _this3 = this;

      var expandedKeys = [];
      dataSource.forEach(function (item) {
        if (matcher(item)) {
          // 因为有子集有命中的,所以父级ID要加进去
          if (parentKey) {
            expandedKeys.push(String(parentKey));
            parentKey = null;
          }
          expandedKeys.push(String(item.id));
        } else if (item.children && item.children.length) {
          var keys = _this3.getExpandedKeys(item.children, matcher, item.id);
          var len = keys.length;
          if (len) {
            if (item.id !== keys[len - 1]) {
              expandedKeys.push(String(item.id));
            }
            for (var i = 0; i < len; i++) {
              expandedKeys.push(String(keys[i]));
            }
          }
        }
      });
      return expandedKeys;
    }
  }, {
    key: 'getIcon',
    value: function getIcon(item) {
      var icon = item.icon ? _react2.default.createElement(_icon2.default, { type: item.icon }) : null;
      if (this.props.leafIcon) {
        return icon || (item.children ? null : _react2.default.createElement(_icon2.default, { type: this.props.leafIcon }));
      } else {
        return icon;
      }
    }
  }, {
    key: 'loopTreeNode',
    value: function loopTreeNode(dataSource) {
      var _this4 = this;

      var searchValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

      var actions = this.props.actions;
      var activeKey = this.state.activeKey;
      var firstMatchId = void 0;
      /**
       * item = {
       *  id,
       *  name,
       *  icon,
       *  children
       * }
       */
      var nodes = dataSource.map(function (item) {
        var index = -1;
        var beforeStr = void 0;
        var afterStr = void 0;
        var title = void 0;
        var label = item.name;
        if (item.title) {
          label = item.title;
        } else if (searchValue) {
          index = label.indexOf(searchValue);
          beforeStr = label.substr(0, index);
          afterStr = label.substr(index + searchValue.length);
        }
        /**
         * actions = [{
         *  icon,
         *  title,
         *  text,
         *  onAction
         * }, ...]
         */
        var btns = null;
        if (actions && (_this4.props.byLeaf && !item.children || !_this4.props.byLeaf)) {
          btns = _react2.default.createElement(
            'span',
            { className: 'o-com-explorer_elem-btns' },
            actions.map(function (btnItem, key) {
              return _react2.default.createElement(
                'a',
                {
                  key: key,
                  href: 'javascript:;',
                  onClick: function onClick() {
                    btnItem.onAction && btnItem.onAction(item);
                  },
                  title: btnItem.title || btnItem.text
                },
                btnItem.icon ? _react2.default.createElement(_icon2.default, { type: btnItem.icon }) : btnItem.text
              );
            })
          );
        }

        if (index > -1) {
          if (!firstMatchId) {
            firstMatchId = item.id;
          }
          title = _react2.default.createElement(
            'span',
            { id: item.id, className: 'o-com-explorer-elem_span' },
            btns,
            _react2.default.createElement(
              'span',
              { onClick: function onClick() {
                  return _this4.handleSelect(item);
                } },
              _this4.getIcon(item),
              beforeStr,
              _react2.default.createElement(
                'span',
                { style: { color: '#f50' } },
                searchValue
              ),
              afterStr
            )
          );
        } else {
          title = _react2.default.createElement(
            'span',
            { id: item.id },
            btns,
            _react2.default.createElement(
              'span',
              { onClick: function onClick() {
                  return _this4.handleSelect(item);
                } },
              _this4.getIcon(item),
              label
            )
          );
        }
        if (item.children && item.children.length) {
          return _react2.default.createElement(
            _tree2.default.TreeNode,
            { key: item.id, title: title, className: activeKey === item.id ? 'active' : '' },
            _this4.loopTreeNode(item.children, searchValue)
          );
        } else {
          return _react2.default.createElement(_tree2.default.TreeNode, { key: item.id, title: title, className: activeKey === item.id ? 'active' : '' });
        }
      });
      if (firstMatchId && this._lazySearch) {
        this._lazySearch(firstMatchId);
        this._lazySearch = null;
      }
      return nodes;
    }
  }, {
    key: 'handleSelect',
    value: function handleSelect(node) {
      this.props.onSelect && this.props.onSelect(node);
      this.setState({
        expandedKeys: this.getExpandedKeys(this.getData(), function (item) {
          return node.id === item.id;
        }),
        activeKey: node.id
      });
    }
  }, {
    key: 'getData',
    value: function getData() {
      if (this.props.mode === 'multiple') {
        return this.state.dataSource[this.state.activeTab || 0];
      } else {
        return this.state.dataSource;
      }
    }
  }, {
    key: 'renderTabs',
    value: function renderTabs(dataSource) {
      var _this5 = this;

      var activeTab = this.state.activeTab;

      return _react2.default.createElement(
        'div',
        { className: 'o-com-explorer-elem_btn-group' },
        _react2.default.createElement(
          _radio2.default.Group,
          { value: activeTab, onChange: function onChange(e) {
              _this5.setState({
                searchValue: '',
                expandedKeys: [],
                activeTab: e.target.value
              });
              _this5.props.onChange && _this5.props.onChange(e.target.value);
            } },
          dataSource.map(function (item) {
            return _react2.default.createElement(
              _radio2.default.Button,
              { value: item.id, key: item.id },
              item.name
            );
          })
        )
      );
    }
  }, {
    key: 'renderSearch',
    value: function renderSearch(dataSource) {
      var _this6 = this;

      var searchProps = {
        size: 'small',
        value: this.state.searchValue,
        placeholder: this.props.searchPlaceholder,
        onChange: function onChange(e) {
          var value = e.target.value;
          _this6.setState({
            searchValue: value
          });
          _this6.props.onSearch && _this6.props.onSearch(value);

          clearTimeout(_this6._timer);
          _this6._timer = setTimeout(function () {
            var expandedKeys = _this6.getExpandedKeys(dataSource, function (item) {
              return item.name.indexOf(value) > -1;
            });
            _this6.setState({
              expandedKeys: expandedKeys
            }, function () {
              _this6._lazySearch = function (firstMatchId) {
                _this6._timer = setTimeout(function () {
                  var node = document.getElementById(firstMatchId).parentNode.parentNode.parentNode;
                  node.scrollIntoView();
                }, 200);
              };
            });
          }, 200);
        }
      };
      return _react2.default.createElement(
        'div',
        { className: 'o-com-explorer-elem_search' },
        _react2.default.createElement(_input2.default.Search, searchProps)
      );
    }
  }, {
    key: 'render',
    value: function render() {
      var _this7 = this;

      var _props = this.props,
          menu = _props.menu,
          noSearch = _props.noSearch,
          title = _props.title,
          mode = _props.mode;
      var _state = this.state,
          searchValue = _state.searchValue,
          activeKey = _state.activeKey,
          expandedKeys = _state.expandedKeys;

      var dataSource = this.getData();

      var treeProps = {
        checkStrictly: true,
        expandedKeys: expandedKeys,
        autoExpandParent: searchValue !== undefined,
        onExpand: function onExpand(expandedKeys) {
          _this7.setState({
            expandedKeys: expandedKeys,
            searchValue: ''
          });
        },
        multiple: false,
        selectable: false,
        selectedKeys: activeKey ? [String(activeKey)] : [],
        showLine: this.props.showLine
      };
      return _react2.default.createElement(
        'div',
        { className: 'o-com-explorer' },
        _react2.default.createElement(
          'div',
          { className: 'o-com-explorer_wrapper' },
          title ? _react2.default.createElement(
            'div',
            { className: 'o-com-explorer_title' },
            _react2.default.createElement(
              'span',
              { className: 'o-com-explorer_link' },
              title
            ),
            menu
          ) : null,
          mode === 'multiple' ? this.renderTabs(dataSource) : null,
          noSearch ? null : this.renderSearch(dataSource),
          _react2.default.createElement(
            'div',
            { className: 'o-com-explorer_tree' },
            dataSource.length ? _react2.default.createElement(
              _tree2.default,
              treeProps,
              this.loopTreeNode(dataSource, searchValue)
            ) : _react2.default.createElement(
              _spin2.default,
              { spinning: this.props.pending },
              _react2.default.createElement(_alert2.default, { style: { margin: '0 6px' }, message: this.props.pending ? 'Loading...' : this.props.noResult, type: 'warning' })
            )
          )
        )
      );
    }
  }]);

  return Explorer;
}(_react2.default.PureComponent), _class.propTypes = {
  mode: _propTypes2.default.string,
  dataSource: _propTypes2.default.array,
  changeNodes: _propTypes2.default.array,
  noSearch: _propTypes2.default.bool,
  cateId: _propTypes2.default.any,
  value: _propTypes2.default.any,
  onSelect: _propTypes2.default.func,
  onChange: _propTypes2.default.func,
  searchPlaceholder: _propTypes2.default.string,
  menu: _propTypes2.default.element,
  title: _propTypes2.default.string,
  actions: _propTypes2.default.array,
  onSearch: _propTypes2.default.func,
  noResult: _propTypes2.default.string,
  pending: _propTypes2.default.bool,
  showLine: _propTypes2.default.bool,
  leafIcon: _propTypes2.default.string,
  byLeaf: _propTypes2.default.bool }, _class.defaultProps = {
  dataSource: [],
  changeNodes: [],
  // single, multiple
  mode: 'single',
  noResult: 'No Result!',
  pending: false
}, _temp);

/***/ }),
/* 84 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/tree");

/***/ }),
/* 85 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 86 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 87 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/avatar");

/***/ }),
/* 88 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 89 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var initialState = {
  terminatingAnimationTimeout: null,
  percent: 0,
  progressInterval: null
};

var DEFAULT_SCOPE = 'default';
var UPDATE_TIME = 200;
var MAX_PROGRESS = 99;
var PROGRESS_INCREASE = 10;
var LoadingBar = exports.LoadingBar = (_temp = _class = function (_React$Component) {
  _inherits(LoadingBar, _React$Component);

  _createClass(LoadingBar, null, [{
    key: 'showLoading',
    value: function showLoading() {
      var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE;

      var instance = LoadingBar.instances[scope];
      if (instance && instance.handleUpdate) {
        instance.handleUpdate({
          loading: (instance.state.loading || 0) + 1
        });
      } else {
        LoadingBar.instances[scope] = (LoadingBar.instances[scope] || 0) + 1;
      }
    }
  }, {
    key: 'hideLoading',
    value: function hideLoading() {
      var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE;

      var instance = LoadingBar.instances[scope];
      if (instance && instance.handleUpdate) {
        instance.handleUpdate({
          loading: Math.max(0, (instance.state.loading || 1) - 1)
        });
      }
    }
  }, {
    key: 'resetLoading',
    value: function resetLoading() {
      var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_SCOPE;

      var instance = LoadingBar.instances[scope];
      if (instance && instance.handleUpdate) {
        instance.handleUpdate({ loading: 0 });
      }
    }
  }]);

  function LoadingBar(props) {
    _classCallCheck(this, LoadingBar);

    var _this = _possibleConstructorReturn(this, (LoadingBar.__proto__ || Object.getPrototypeOf(LoadingBar)).call(this, props));

    _this.state = _extends({}, initialState, {
      loading: LoadingBar.instances[props.scope] === undefined ? props.loading : LoadingBar.instances[props.scope].loading
    });
    _this.style = {
      opacity: '0',
      transform: 'scaleX(0)',
      transformOrigin: 'left',
      width: '100%',
      willChange: 'transform, opacity'
    };

    // Use default styling if there's no CSS class applied
    if (!_this.props.className) {
      _this.style.height = '3px';
      _this.style.backgroundColor = 'red';
      _this.style.position = 'absolute';
    }

    Object.assign(_this.style, _this.props.style);

    _this.boundSimulateProgress = _this.simulateProgress.bind(_this);
    _this.boundResetProgress = _this.resetProgress.bind(_this);

    LoadingBar.instances[props.scope] = _this;
    return _this;
  }

  _createClass(LoadingBar, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      // Re-render the component after mount to fix problems with SSR and CSP.
      //
      // Apps that use Server Side Rendering and has Content Security Policy for style
      // that doesn't allow inline styles should render an empty div and replace it
      // with the actual Loading Bar after mount See:
      // https://github.com/mironov/react-redux-loading-bar/issues/39
      //
      // eslint-disable-next-line react/no-did-mount-set-state
      this.mounted = true;

      if (this.state.loading > 0) {
        this.launch();
      }
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this.mounted = false;
      clearInterval(this.state.progressInterval);
      clearTimeout(this.state.terminatingAnimationTimeout);
    }
  }, {
    key: 'handleUpdate',
    value: function handleUpdate(nextProps) {
      if (this.shouldStart(nextProps)) {
        this.launch();
      } else if (this.shouldStop(nextProps)) {
        if (this.state.percent === 0 && !this.props.showFastActions) {
          // not even shown yet because the action finished quickly after start
          clearInterval(this.state.progressInterval);
          this.resetProgress();
        } else {
          // should progress to 100 percent
          this.setState({ percent: 100 });
        }
      }
    }

    // componentWillReceiveProps(nextProps) {   this.handleUpdate(nextProps); }

  }, {
    key: 'shouldStart',
    value: function shouldStart(nextProps) {
      if (!this.state.loading && nextProps.loading > 0) {
        this.setState({ loading: nextProps.loading });
        return true;
      } else {
        return false;
      }
    }
  }, {
    key: 'shouldStop',
    value: function shouldStop(nextProps) {
      if (this.state.progressInterval && nextProps.loading === 0) {
        this.setState({ loading: nextProps.loading });
        return true;
      } else {
        return false;
      }
    }
  }, {
    key: 'shouldShow',
    value: function shouldShow() {
      return this.state.percent > 0 && this.state.percent <= 100;
    }
  }, {
    key: 'launch',
    value: function launch() {
      var percent = this.state.percent;
      var terminatingAnimationTimeout = this.state.terminatingAnimationTimeout;


      var loadingBarNotShown = !this._progressInterval;
      var terminatingAnimationGoing = percent === 100;

      if (loadingBarNotShown) {
        this._progressInterval = setInterval(this.boundSimulateProgress, this.props.updateTime);
      }

      if (terminatingAnimationGoing) {
        clearTimeout(terminatingAnimationTimeout);
      }

      percent = 0;

      this.setState({ progressInterval: this._progressInterval, percent: percent });
    }
  }, {
    key: 'newPercent',
    value: function newPercent() {
      var percent = this.state.percent;
      var progressIncrease = this.props.progressIncrease;

      // Use cos as a smoothing function Can be any function to slow down progress
      // near the 100%

      var smoothedProgressIncrease = progressIncrease * Math.cos(percent * (Math.PI / 2 / 100));

      return percent + smoothedProgressIncrease;
    }
  }, {
    key: 'simulateProgress',
    value: function simulateProgress() {
      var _state = this.state,
          progressInterval = _state.progressInterval,
          percent = _state.percent,
          terminatingAnimationTimeout = _state.terminatingAnimationTimeout;
      var maxProgress = this.props.maxProgress;


      if (percent === 100) {
        clearInterval(progressInterval);
        terminatingAnimationTimeout = setTimeout(this.boundResetProgress, LoadingBar.TERMINATING_ANIMATION_TIME);
        progressInterval = null;
      } else if (this.newPercent() <= maxProgress) {
        percent = this.newPercent();
      }

      this.setState({ percent: percent, progressInterval: progressInterval, terminatingAnimationTimeout: terminatingAnimationTimeout });
    }
  }, {
    key: 'resetProgress',
    value: function resetProgress() {
      this.setState(initialState);
    }
  }, {
    key: 'buildStyle',
    value: function buildStyle() {
      var animationTime = this.state.percent !== 100 ? LoadingBar.ANIMATION_TIME : LoadingBar.TERMINATING_ANIMATION_TIME;

      this.style = Object.assign({}, this.style, {
        transform: 'scaleX(' + this.state.percent / 100 + ')',
        transition: 'transform ' + animationTime + 'ms linear',
        opacity: this.shouldShow() ? '1' : '0'
      });
      return this.style;
    }
  }, {
    key: 'render',
    value: function render() {
      // In order not to violate strict style CSP it's better to make an extra
      // re-render after component mount
      if (!this.mounted) {
        return _react2.default.createElement('div', null);
      }

      return _react2.default.createElement(
        'div',
        null,
        _react2.default.createElement('div', { style: this.buildStyle(), className: this.props.className }),
        _react2.default.createElement('div', { style: {
            display: 'table',
            clear: 'both'
          } })
      );
    }
  }]);

  return LoadingBar;
}(_react2.default.Component), _class.UPDATE_TIME = UPDATE_TIME, _class.MAX_PROGRESS = MAX_PROGRESS, _class.PROGRESS_INCREASE = PROGRESS_INCREASE, _class.ANIMATION_TIME = UPDATE_TIME * 4, _class.TERMINATING_ANIMATION_TIME = UPDATE_TIME / 2, _class.instances = {}, _class.create = function () {
  var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

  return function (action, next) {
    if (action.type && !action.suppressGlobalProgress) {
      if (action.type.match(/\/start$/)) {
        LoadingBar.showLoading(opt.name);
      } else if (action.type.match(/\/success$/) || action.type.match(/\/error$/)) {
        LoadingBar.hideLoading(opt.name);
      }
    }
    next(action);
  };
}, _class.propTypes = {
  className: _propTypes.string,
  loading: _propTypes.number,
  maxProgress: _propTypes.number,
  progressIncrease: _propTypes.number,
  showFastActions: _propTypes.bool,
  updateTime: _propTypes.number,
  // eslint-disable-next-line react/no-unused-prop-types
  scope: _propTypes.string,
  // eslint-disable-next-line react/forbid-prop-types
  style: _propTypes.object
}, _class.defaultProps = {
  className: '',
  loading: 0,
  maxProgress: MAX_PROGRESS,
  progressIncrease: PROGRESS_INCREASE,
  showFastActions: false,
  style: {},
  updateTime: UPDATE_TIME,
  scope: DEFAULT_SCOPE
}, _temp);

/***/ }),
/* 91 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/modal");

/***/ }),
/* 92 */
/***/ (function(module, exports) {

module.exports = require("clipboard");

/***/ }),
/* 93 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _notifier = __webpack_require__(23);

function errorFetch(res, errorNotification) {
  var checkStatus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};

  var statusResult = checkStatus(res);
  if (statusResult) {
    var error = new Error(statusResult.message || res.message || '');
    error.response = res;
    error.errorNotification = new _notifier.Notifier({
      type: 'error',
      level: 'two',
      trace: true,
      title: statusResult.title || '错误提示'
    });
    throw error;
  }
  return res;
}

/***/ }),
/* 94 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _notifier = __webpack_require__(23);

function errorReducer() {
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  var action = arguments[1];

  if (!action.error || action.suppressGlobalErrorNotification) {
    return state;
  }

  if (action.error.errorNotification) {
    action.error.errorNotification.notify({
      content: action.error.message || action.error.response,
      trace: true
    });
  } else {
    var errorNotification = _notifier.Notifier.notifierFactory('error', action.error.title, action.error.response || action.error.message);
    errorNotification.notify({
      trace: true
    });
  }
  return action.error;
} /**
   * ### 集成到reducer中
   * 在redux体系中,一旦有action触发,所有的reducer都会调用一次,而errorReducer会专门判断action是否包含error属性,包含即认定action发生了错误。
   * 
   * 识别action发生错误的基本结构:
   * 
   * ```javascript
   *  action = {
   *    suppressGlobalErrorNotification: Boolean, // 为true表示忽略错误 
   *    error: { // 否则认定发生了错误,需要做提示。
   *      errorNotification: Notifier, // 存在则通过告警器来做提示
   *      response: Response, // 发生错误的响应体,比如http请求的返回结果
   *      message: String, // 简单错误提示
   *    }
   *  }
   * ```
   */

/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

exports.Result = Result;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _navLink = __webpack_require__(12);

__webpack_require__(96);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

/* eslint-disable react/prop-types */
function Result(_ref) {
  var className = _ref.className,
      type = _ref.type,
      title = _ref.title,
      description = _ref.description,
      extra = _ref.extra,
      links = _ref.links,
      restProps = _objectWithoutProperties(_ref, ['className', 'type', 'title', 'description', 'extra', 'links']);

  var iconMap = {
    error: _react2.default.createElement(_icon2.default, { className: 'error', type: 'close-circle' }),
    success: _react2.default.createElement(_icon2.default, { className: 'success', type: 'check-circle' })
  };
  return _react2.default.createElement(
    'div',
    _extends({ className: 'j-com-result ' + className }, restProps),
    _react2.default.createElement(
      'div',
      { className: 'icon' },
      iconMap[type]
    ),
    _react2.default.createElement(
      'div',
      { className: 'title' },
      title
    ),
    description && _react2.default.createElement(
      'div',
      { className: 'description' },
      description
    ),
    extra && _react2.default.createElement(
      'div',
      { className: 'extra' },
      extra
    ),
    links && _react2.default.createElement(
      'div',
      { className: 'actions' },
      _react2.default.createElement(_navLink.NavLink, { links: links })
    )
  );
}

/***/ }),
/* 96 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _autoComplete = __webpack_require__(39);

var _autoComplete2 = _interopRequireDefault(_autoComplete);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

/**
 * Search搜索组件
 */
var Search = exports.Search = (_temp = _class = function (_React$PureComponent) {
  _inherits(Search, _React$PureComponent);

  // 把数据存入dataSource使组件可以通过ref拿到原始数据;
  function Search(props) {
    _classCallCheck(this, Search);

    var _this = _possibleConstructorReturn(this, (Search.__proto__ || Object.getPrototypeOf(Search)).call(this, props));

    _this.handleSearch = function (value, params) {
      params = params || _this.props.params;
      var select = Object.assign({}, _this.state.select, { value: value });
      if (!_this.props.noSearch && _this.props.getResolver) {
        _this.getOptions(_this.props.getResolver(value, params));
      } else {
        _this.setState({ select: select });
      }
    };

    _this.state = {
      dataSource: props.dataSource,
      select: {
        value: props.defaultValue,
        dataSource: props.options ? props.options : props.dataSource.map(function (item) {
          return _react2.default.createElement(
            _autoComplete2.default.Option,
            { key: item[props.rowKey] },
            _this.renderOption(item)
          );
        })
      }
    };
    if (props.getResolver) {
      _this.getOptions(props.getResolver(null, _this.props.params), props.defaultValue);
    }
    return _this;
  }

  _createClass(Search, [{
    key: 'find',
    value: function find(condition) {
      return this.state.dataSource.find(condition);
    }
  }, {
    key: 'renderOption',
    value: function renderOption(item) {
      var _props = this.props,
          labelKey = _props.labelKey,
          renderItem = _props.renderItem;

      if (renderItem) {
        return renderItem(item);
      } else {
        return item[labelKey];
      }
    }
  }, {
    key: 'getOptions',
    value: function getOptions(resolver, value) {
      var _this2 = this;

      var rowKey = this.props.rowKey;

      return resolver.then(function (ret) {
        var nextState = {
          dataSource: ret.dataSource,
          select: Object.assign({}, ret, {
            dataSource: ret.dataSource.map(function (item) {
              return _react2.default.createElement(
                _autoComplete2.default.Option,
                { key: item[rowKey] },
                _this2.renderOption(item)
              );
            })
          })
        };
        if (value) {
          nextState.select.value = value;
        }
        _this2.setState(nextState);
      });
    }
    /**
     * @param {string} value-输入框的内容
     * @param {} params
     */

  }, {
    key: 'render',
    value: function render() {
      var _this3 = this;

      var style = this.props.style || {};
      var _onSelect = this.props.onSelect;
      var InputSearch = this.props.noSearch ? null : _react2.default.createElement(_input2.default, { suffix: _react2.default.createElement(_icon2.default, { type: 'search' }) });
      style.width = style.width || 240;
      style.height = style.height || 32;
      return _react2.default.createElement(
        _autoComplete2.default,
        _extends({
          style: style,
          allowClear: true
        }, this.props, this.state.select, {
          filterOption: function filterOption(inputValue, option) {
            return inputValue === option.key || option.props.children.indexOf(inputValue) > -1;
          },
          onSearch: function onSearch(v) {
            var delay = _this3.props.delay;
            if (delay) {
              clearTimeout(_this3.timer);
              _this3.timer = setTimeout(function () {
                _this3.handleSearch(v);
              }, delay);
            } else {
              _this3.handleSearch(v);
            }
          },
          onSelect: function onSelect(v, o) {
            _onSelect && _onSelect(v, o);
            var select = Object.assign({}, _this3.state.select, { value: v });
            _this3.setState({ select: select });
          }
        }),
        InputSearch
      );
    }
  }]);

  return Search;
}(_react2.default.PureComponent), _class.propTypes = {
  getResolver: _propTypes2.default.func,
  defaultValue: _propTypes2.default.string,
  dataSource: _propTypes2.default.array,
  options: _propTypes2.default.array,
  rowKey: _propTypes2.default.string,
  renderItem: _propTypes2.default.func,
  labelKey: _propTypes2.default.string,
  onChange: _propTypes2.default.func,
  mode: _propTypes2.default.string,
  onSelect: _propTypes2.default.func,
  noSearch: _propTypes2.default.bool,
  style: _propTypes2.default.object,
  delay: _propTypes2.default.number,
  params: _propTypes2.default.object
}, _class.defaultProps = {
  rowKey: 'id',
  labelKey: 'value',
  dataSource: [] }, _temp);

/***/ }),
/* 98 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _anchor = __webpack_require__(100);

var _anchor2 = _interopRequireDefault(_anchor);

__webpack_require__(101);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var StepConnector = exports.StepConnector = (_temp = _class = function (_React$PureComponent) {
  _inherits(StepConnector, _React$PureComponent);

  function StepConnector(props) {
    _classCallCheck(this, StepConnector);

    var _this = _possibleConstructorReturn(this, (StepConnector.__proto__ || Object.getPrototypeOf(StepConnector)).call(this, props));

    _this.handleStep = function (activeStep, activeTab) {
      _this.props.steps.forEach(function (step) {
        var dom = step.getContainer ? step.getContainer(step.id) : document.getElementById(step.id);
        if (step.tab === activeTab) {
          dom.style.display = 'block';
        } else {
          dom.style.display = 'none';
        }
      });
      _this.setState({
        activeStep: activeStep,
        activeTab: activeTab
      });
    };

    var firstStep = props.steps[0] || {};
    _this.state = {
      activeStep: 0,
      activeTab: firstStep.tab
    };
    return _this;
  }

  _createClass(StepConnector, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      if (nextProps.activeStep !== undefined && nextProps.activeStep !== this.state.activeStep) {
        this.handleStep(nextProps.activeStep, nextProps.steps[nextProps.activeStep].tab);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _this2 = this;

      var activeStep = this.state.activeStep;
      var steps = this.props.steps;

      // return (<Stepper nonLinear activeStep={activeStep} style={{height: height}}>
      //   {steps.map((label) => (
      //     <Step key={label}>
      //       <StepButton onClick={this.handleStep} completed={completed}>
      //         {label}
      //       </StepButton>
      //     </Step>
      //   ))}
      // </Stepper>);

      return _react2.default.createElement(
        _anchor2.default,
        { affix: false, className: 'o-com-stepConnector' },
        steps.map(function (step, index) {
          return [_react2.default.createElement(
            'div',
            { key: index, className: 'o-com-stepConnector_elem-step' },
            _react2.default.createElement(
              'button',
              { tabIndex: index, type: 'button', className: 'o-com-stepConnector_elem-step_btn', onClick: function onClick() {
                  return _this2.handleStep(index, step.tab);
                } },
              _react2.default.createElement(
                'div',
                null,
                _react2.default.createElement(
                  'span',
                  { className: 'o-com-stepConnector_elem-step_span' + (activeStep === index ? ' active' : '') },
                  _react2.default.createElement(
                    'span',
                    null,
                    _react2.default.createElement(
                      'svg',
                      { viewBox: '0 0 24 24' },
                      _react2.default.createElement('circle', { cx: '12', cy: '12', r: '10' }),
                      _react2.default.createElement(
                        'text',
                        { x: '12', y: '16' },
                        index + 1
                      )
                    )
                  ),
                  _react2.default.createElement(_anchor2.default.Link, { href: '#' + step.id, title: step.text })
                )
              )
            )
          ), steps.length - index > 1 ? _react2.default.createElement(
            'div',
            { className: 'o-com-stepConnector_elem-connector' },
            _react2.default.createElement('span', null)
          ) : null];
        })
      );
    }
  }]);

  return StepConnector;
}(_react2.default.PureComponent), _class.propTypes = {
  nonLinear: _propTypes2.default.object,
  height: _propTypes2.default.number,
  steps: _propTypes2.default.array,
  completed: _propTypes2.default.bool,
  activeStep: _propTypes2.default.number
}, _temp);

/***/ }),
/* 100 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/anchor");

/***/ }),
/* 101 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _collapse = __webpack_require__(103);

var _collapse2 = _interopRequireDefault(_collapse);

var _input = __webpack_require__(6);

var _input2 = _interopRequireDefault(_input);

var _tooltip = __webpack_require__(104);

var _tooltip2 = _interopRequireDefault(_tooltip);

var _icon = __webpack_require__(2);

var _icon2 = _interopRequireDefault(_icon);

var _alert = __webpack_require__(36);

var _alert2 = _interopRequireDefault(_alert);

var _dragItem = __webpack_require__(33);

__webpack_require__(105);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var TagSearcher = exports.TagSearcher = (_temp = _class = function (_Component) {
  _inherits(TagSearcher, _Component);

  function TagSearcher(props) {
    _classCallCheck(this, TagSearcher);

    var _this = _possibleConstructorReturn(this, (TagSearcher.__proto__ || Object.getPrototypeOf(TagSearcher)).call(this, props));

    _this.state = {
      keyword: '',
      entityCode: '',
      tagCode: '',
      objectList: [],
      tagsMap: {},
      dimsMap: {}
    };
    _this.handleChange(props.entityCode, props.tagCode, props.objectList);
    return _this;
  }

  _createClass(TagSearcher, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      // #! objectList发生变化时因为请求单个entity的tagList #! 只有可能改变entityCode和tagCode, 用来定位
      var mergeProps = {
        entityCode: this.state.entityCode,
        tagCode: this.state.tagCode,
        objectList: this.state.objectList,
        keyword: this.state.keyword
      };
      var keyword = this.state.keyword;
      var hasReceive = true;

      switch (true) {
        case this.props.entityCode !== nextProps.entityCode:
          mergeProps.entityCode = nextProps.entityCode;
          break;
        case this.props.tagCode !== nextProps.tagCode:
          mergeProps.tagCode = nextProps.tagCode;
          break;
        case nextProps.objectList !== this.props.objectList:
          mergeProps.objectList = nextProps.objectList;
          break;
        case this.props.keyword !== nextProps.keyword:
          keyword = '';
          // #! 因为setState是异步的
          this.setState({ keyword: '' });
          mergeProps.keyword = nextProps.keyword;
          break;
        default:
          hasReceive = false;
          break;
      }
      if (hasReceive) {
        // #! 搜索时,请求tagList会导致objectList更新
        if (keyword) {
          var _state$keyword$split = this.state.keyword.split('.'),
              _state$keyword$split2 = _slicedToArray(_state$keyword$split, 1),
              entityCodeOrName = _state$keyword$split2[0];

          var objectList = nextProps.objectList.filter(function (item) {
            return item.entityCode.indexOf(entityCodeOrName) > -1 || item.entityName.indexOf(entityCodeOrName) > -1;
          });
          this.handleChange(mergeProps.entityCode, mergeProps.tagCode, objectList);
        } else if (mergeProps.keyword) {
          this.handleSearch(mergeProps.keyword);
        } else {
          this.handleChange(mergeProps.entityCode, mergeProps.tagCode, mergeProps.objectList);
        }
      }
    }
  }, {
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate(nextProps, nextState) {
      return this.props !== nextProps || this.state !== nextState;
    }
  }, {
    key: 'getDims',
    value: function getDims(object) {
      // #! entity
      if (object.dims) {
        return object.dims.map(function (dim) {
          return { name: dim.dimCode, code: dim.dimId, entityCode: object.entityCode };
        });
        // #! link
      } else if (object.objects) {
        return object.objects.map(function (obj) {
          return {
            name: obj.entityCode + '.' + obj.dims[0].dimCode,
            code: obj.relationshipId,
            entityCode: object.entityCode
          };
        });
      }
    }

    // #! 展开object或者定位object和tag

  }, {
    key: 'handleChange',
    value: function handleChange(entityCode, tagCode, objectList) {
      var tagsMap = {};
      var dimsMap = {};
      var object = entityCode ? objectList.find(function (item) {
        return item.entityCode === entityCode;
      }) : objectList[0];
      var focusItem = void 0;
      if (object) {
        // #! 需要定位的元素, 定位到entity
        if (entityCode) {
          focusItem = object;
        }
        if (object.tagList) {
          tagsMap[entityCode] = {
            list: object.tagList
          };
          if (tagCode) {
            // #! 如果有tagCode则是定位到tag
            focusItem = object.tagList.find(function (tag) {
              return tag.tagCode === tagCode;
            });
            tagsMap[entityCode].tagCode = focusItem ? focusItem.tagCode : '';
          }
        } else if (entityCode) {
          tagsMap[entityCode] = {
            loading: true,
            list: []
          };
          // #! 请求
          this.props.doFetchTagList(entityCode);
        }
        dimsMap[entityCode] = this.getDims(object);
      }
      if (focusItem) {// undefined表示collaspse的点击
        // 延迟200毫秒后定位
      }
      this.setState({
        tagCode: tagCode,
        entityCode: entityCode,
        objectList: objectList,
        tagsMap: tagsMap,
        dimsMap: dimsMap
      });
    }
  }, {
    key: 'handleSearch',
    value: function handleSearch(keyword) {
      var _this2 = this;

      var _keyword$split = keyword.split('.'),
          _keyword$split2 = _slicedToArray(_keyword$split, 2),
          entityCodeOrName = _keyword$split2[0],
          tagCodeOrName = _keyword$split2[1];

      var tagsMap = {};
      var dimsMap = {};
      var objectList = this.props.objectList;
      if (entityCodeOrName) {
        objectList = objectList.filter(function (item) {
          // #! 匹配name或者code
          if (item.entityCode.indexOf(entityCodeOrName) > -1 || item.entityName.indexOf(entityCodeOrName) > -1) {
            if (tagCodeOrName) {
              if (item.tagList) {
                // #! 匹配name或者code
                tagsMap[item.entityCode] = {
                  list: item.tagList.filter(function (tag) {
                    return tag.tagCode.indexOf(tagCodeOrName) > -1 || tag.tagName.indexOf(tagCodeOrName) > -1;
                  })
                };
              } else {
                tagsMap[item.entityCode] = {
                  loading: true,
                  list: []
                };
                _this2.props.doFetchTagList(item.entityCode);
              }
            } else {
              if (item.tagList) {
                tagsMap[item.entityCode] = {
                  list: item.tagList
                };
              } else {
                tagsMap[item.entityCode] = {
                  loading: true,
                  list: []
                };
                _this2.props.doFetchTagList(item.entityCode);
              }
              dimsMap[item.entityCode] = _this2.getDims(item);
            }
            return true;
          } else {
            return false;
          }
        });
      }

      var entityCode = objectList[0] && objectList[0].entityCode;
      var tagCode = tagsMap[entityCode] && tagsMap[entityCode].list.length && tagsMap[entityCode].list[0].tagCode;
      this.setState({ entityCode: entityCode, tagCode: tagCode, objectList: objectList, tagsMap: tagsMap, dimsMap: dimsMap });
    }
  }, {
    key: 'clearSearch',
    value: function clearSearch() {
      this.setState({ keyword: '' });
      this.handleSearch('');
    }
  }, {
    key: 'render',
    value: function render() {
      var _this3 = this;

      var _state = this.state,
          keyword = _state.keyword,
          entityCode = _state.entityCode,
          objectList = _state.objectList,
          tagsMap = _state.tagsMap,
          dimsMap = _state.dimsMap;
      // #! 判断是否需要拖拽

      var doDrag = this.props.doDrag;
      var ItemDom = _dragItem.DragItem;
      if (!doDrag) {
        /* eslint-disable no-unused-vars */
        ItemDom = function ItemDom(_ref) {
          var children = _ref.children;

          return _react2.default.createElement(
            'div',
            null,
            _this3.props.children
          );
        };
      }

      // #! 遍历输出所有object,
      // 展开的object必然有dims,不展开则没有;展开的object必然有tagList(分为空和有列表数据,!!完全找不到则需要发请求去拿),不展开则没有
      // 。 #! handleChange,展开object;handleSearch,搜索object或tag
      return _react2.default.createElement(
        'div',
        { className: 'j-com-tagSearcher' },
        _react2.default.createElement(_input2.default.Search, {
          placeholder: this.props.searchPlaceholder || '使用 实体.标签 进行模糊搜索',
          value: keyword,
          suffix: keyword ? _react2.default.createElement(_icon2.default, { type: 'close-circle', onClick: function onClick() {
              return _this3.clearSearch();
            } }) : null,
          onChange: function onChange(e) {
            _this3.setState({ keyword: e.target.value });
          },
          onSearch: function onSearch() {
            return _this3.handleSearch(_this3.state.keyword);
          } }),
        _react2.default.createElement(
          'div',
          { className: 'j-com-elem-oltList' },
          this.props.keyword ? _react2.default.createElement(_alert2.default, { message: '\u901A\u8FC7\u5224\u5B9A\u5F0F\u5B9A\u4F4D', type: 'info', closable: true, onClose: function onClose() {
              return _this3.clearSearch();
            } }) : null,
          _react2.default.createElement(
            _collapse2.default,
            {
              accordion: true,
              activeKey: entityCode,
              onChange: function onChange(key) {
                return _this3.handleChange(key, '', objectList);
              } },
            objectList.map(function (entity) {
              return _react2.default.createElement(
                _collapse2.default.Panel,
                {
                  key: entity.entityCode,
                  header: _react2.default.createElement(
                    ItemDom,
                    { key: entity.entityCode, doAction: doDrag, type: 'entity', data: entity },
                    _react2.default.createElement('div', { className: 'j-com-elem-icon-entity' }),
                    _react2.default.createElement(
                      'span',
                      { title: entity.entityCode + '(' + entity.entityName + ')' },
                      entity.entityCode + '(' + entity.entityName + ')'
                    )
                  ) },
                _react2.default.createElement(
                  'ul',
                  null,
                  dimsMap[entity.entityCode] && dimsMap[entity.entityCode].map(function (dim, index) {
                    return _react2.default.createElement(
                      'li',
                      { key: index },
                      _react2.default.createElement(
                        ItemDom,
                        { key: dim.code, doAction: doDrag, type: 'dim', data: dim },
                        _react2.default.createElement('div', { className: 'j-com-elem-icon-dim' }),
                        _react2.default.createElement(
                          _tooltip2.default,
                          {
                            placement: 'right',
                            title: (entity.entityType === 'object' && '实体' || '关系') + '(' + entity.entityName + ')\u4E0B\u53EF\u7528\u7684\u6807\u7B7E' },
                          _react2.default.createElement(_icon2.default, { type: 'pushpin-o', className: 'j-com-elem-icon-pushpin-o' })
                        ),
                        _react2.default.createElement(
                          'span',
                          { title: dim.name },
                          dim.name
                        )
                      )
                    );
                  })
                ),
                _react2.default.createElement(
                  'ul',
                  null,
                  tagsMap[entity.entityCode] && (tagsMap[entity.entityCode].loading ? _react2.default.createElement(
                    'li',
                    null,
                    _react2.default.createElement(
                      'span',
                      null,
                      '\u6B63\u5728\u62C9\u53D6...'
                    )
                  ) : tagsMap[entity.entityCode].list.length ? tagsMap[entity.entityCode].list.map(function (tag, index) {
                    return _react2.default.createElement(
                      'li',
                      { key: index },
                      _react2.default.createElement(
                        ItemDom,
                        { key: tag.tagCode, doAction: doDrag, type: 'tag', data: tag },
                        _react2.default.createElement('div', { className: 'j-com-elem-icon-tag' }),
                        _react2.default.createElement(
                          _tooltip2.default,
                          {
                            placement: 'right',
                            title: (entity.entityType === 'object' && '实体' || '关系') + '(' + entity.entityName + ')\u4E0B\u53EF\u7528\u7684\u6807\u7B7E' },
                          _react2.default.createElement(_icon2.default, { type: 'tag-o', className: 'j-com-elem-icon-tag-o' })
                        ),
                        _react2.default.createElement(
                          'span',
                          { title: tag.tagCode + '(' + tag.tagName + ')' },
                          tag.tagCode + '(' + tag.tagName + ')'
                        )
                      )
                    );
                  }) : _react2.default.createElement(
                    'li',
                    null,
                    _react2.default.createElement(
                      'span',
                      null,
                      '\u65E0\u6807\u7B7E'
                    )
                  ))
                )
              );
            })
          )
        )
      );
    }
  }]);

  return TagSearcher;
}(_react.Component), _class.propTypes = {
  entityCode: _propTypes2.default.string.isRequired,
  tagCode: _propTypes2.default.string.isRequired,
  keyword: _propTypes2.default.string.isRequired,
  objectList: _propTypes2.default.array.isRequired,
  doFetchTagList: _propTypes2.default.func.isRequired,
  children: _propTypes2.default.any,
  doDrag: _propTypes2.default.func,
  searchPlaceholder: _propTypes2.default.string
}, _class.defaultProps = {
  entityCode: '',
  tagCode: '',
  keyword: '',
  objectList: []
}, _temp);

/***/ }),
/* 103 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/collapse");

/***/ }),
/* 104 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/tooltip");

/***/ }),
/* 105 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _dec, _class, _class2, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactJoyride = __webpack_require__(107);

var _reactJoyride2 = _interopRequireDefault(_reactJoyride);

var _localeContext = __webpack_require__(3);

__webpack_require__(108);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var types = ['continuous', 'single'];

var Tour = exports.Tour = (_dec = (0, _localeContext.localeContext)('Tour', {
  back: '后退',
  close: '关闭',
  last: '完成',
  next: '下一个',
  skip: '跳过'
}), _dec(_class = (_temp = _class2 = function (_React$Component) {
  _inherits(Tour, _React$Component);

  function Tour(props, context) {
    _classCallCheck(this, Tour);

    var _this = _possibleConstructorReturn(this, (Tour.__proto__ || Object.getPrototypeOf(Tour)).call(this, props));

    _this.handleFocus = function (e) {
      _this.setState({
        selector: e.type === 'tooltip:before' ? e.step.selector : ''
      });
    };

    _this.state = {
      joyrideOverlay: props.mask || true,
      joyrideType: props.type || types[0],
      isRunning: props.visible || false,
      stepIndex: 0,
      steps: [],
      selector: ''
    };
    _this._defaultSteps = [];

    if (Array.isArray(props.steps)) {
      _this.state.steps = props.steps;
    } else {
      if (_this.props.steps.steps) {
        _this._defaultSteps = _this.props.steps.steps;
      }
      context.history.listen(function (location, action) {
        if (action.location) {
          var step = _this.props.steps[action.location.pathname];
          if (step) {
            clearTimeout(_this._timer);
            _this._timer = setTimeout(function () {
              if (step.type) {
                _this._switch(step.type, step.mask);
              } else {
                _this.setState({ joyrideType: types[0] });
              }
              _this.addSteps(step.steps, function () {
                if (step.tip) {
                  _this.addTooltip(step.tip);
                }
              }, step.action);
            }, 300);
          } else {
            if (_this._defaultSteps[0] && document.querySelector(_this._defaultSteps[0].selector)) {
              _this.setState({ steps: _this._defaultSteps });
            }
          }
        }
      });
    }
    return _this;
  }

  _createClass(Tour, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _this2 = this;

      if (this.props.visible !== false) {
        setTimeout(function () {
          if (!_this2.state.isRunning) {
            _this2.setState({ steps: _this2._defaultSteps, isRunning: true });
          }
        }, 1000);
      }
    }
  }, {
    key: 'addSteps',
    value: function addSteps(steps, callback, action) {
      var newSteps = steps;

      if (!Array.isArray(newSteps)) {
        newSteps = [newSteps];
      }

      if (!newSteps.length) {
        return;
      }
      if (action === 'replace') {
        this.setState({
          isRunning: true,
          steps: newSteps
        }, callback);
      } else if (action === 'push') {
        // Force setState to be synchronous to keep step order.
        this.setState(function (currentState) {
          currentState.steps = currentState.steps.concat(newSteps);
          callback && callback();
          return currentState;
        });
      } else {
        var _steps = void 0;
        var stepIndex = 0;
        if (action) {
          var idx = this._defaultSteps.findIndex(function (item) {
            return item.tag === action;
          });
          if (idx > -1) {
            stepIndex = idx + 1;
            _steps = this._defaultSteps.slice(0, idx + 1).concat(newSteps).concat(this._defaultSteps.slice(idx + 1));
          } else {
            _steps = newSteps.concat(this._defaultSteps);
          }
        } else {
          _steps = this._defaultSteps.concat(newSteps);
        }
        this.setState({
          isRunning: true,
          stepIndex: stepIndex,
          steps: _steps
        }, callback);
      }
    }
  }, {
    key: 'addTooltip',
    value: function addTooltip(data) {
      this._joyride.addTooltip(data);
    }
  }, {
    key: 'next',
    value: function next() {
      this._joyride.next();
    }
  }, {
    key: '_switch',
    value: function _switch(type, mask) {
      var _this3 = this;

      if (type === types[0]) {
        this._joyride && this._joyride.reset();

        this.setState({ isRunning: false, joyrideType: type, joyrideOverlay: mask });
        clearTimeout(this._timer);
        this._timer = setTimeout(function () {
          _this3.setState({ isRunning: true });
        }, 300);
      } else {
        this.setState({ joyrideType: type, joyrideOverlay: mask });
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _this4 = this;

      var _state = this.state,
          isRunning = _state.isRunning,
          joyrideOverlay = _state.joyrideOverlay,
          joyrideType = _state.joyrideType,
          selector = _state.selector,
          stepIndex = _state.stepIndex,
          steps = _state.steps;


      return _react2.default.createElement(_reactJoyride2.default, {
        ref: function ref(inst) {
          return _this4._joyride = inst;
        },
        callback: this.handleFocus,
        debug: false,
        disableOverlay: selector === '.j-tour-ticket',
        locale: this.getLocale(),
        run: isRunning,
        showOverlay: joyrideOverlay,
        showSkipButton: true,
        showStepsProgress: true,
        stepIndex: stepIndex,
        steps: steps,
        type: joyrideType });
    }
  }]);

  return Tour;
}(_react2.default.Component), _class2.contextTypes = {
  history: _propTypes2.default.object
}, _class2.propTypes = {
  steps: _propTypes2.default.object,
  type: _propTypes2.default.bool,
  mask: _propTypes2.default.bool,
  visible: _propTypes2.default.bool
}, _temp)) || _class);

/***/ }),
/* 107 */
/***/ (function(module, exports) {

module.exports = require("react-joyride");

/***/ }),
/* 108 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 109 */
/***/ (function(module, exports) {

module.exports = require("lodash/cloneDeep");

/***/ }),
/* 110 */
/***/ (function(module, exports) {

module.exports = require("lodash/defaultsDeep");

/***/ }),
/* 111 */
/***/ (function(module, exports, __webpack_require__) {

var map = {
	"./consoleLayout/index.jsx": 51,
	"./contentLayout/index.jsx": 52,
	"./flexContentLayout/index.jsx": 53,
	"./landingLayout/index.jsx": 54
};
function webpackContext(req) {
	return __webpack_require__(webpackContextResolve(req));
};
function webpackContextResolve(req) {
	var id = map[req];
	if(!(id + 1)) // check for number or string
		throw new Error("Cannot find module '" + req + "'.");
	return id;
};
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 111;

/***/ }),
/* 112 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 113 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 114 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/affix");

/***/ }),
/* 115 */
/***/ (function(module, exports) {

module.exports = require("material-ui/Drawer");

/***/ }),
/* 116 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 117 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 118 */
/***/ (function(module, exports) {

module.exports = require("antd/lib/empty");

/***/ }),
/* 119 */
/***/ (function(module, exports) {

// removed by extract-text-webpack-plugin

/***/ }),
/* 120 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _localStorage = __webpack_require__(56);

function versionDetector(tmpVersionKey, appVersion) {
  window.tmpVersionUpdate = function (flag) {
    document.getElementById('j_' + tmpVersionKey).remove();

    if (flag) {
      var val = String(encodeURIComponent(window[tmpVersionKey]));
      _localStorage.localStorage.set(tmpVersionKey, val);

      var date = new Date();
      date.setTime(date.getTime() + 30 * 24 * 60 * 60 * 1000);
      val += '; expires=' + date.toUTCString();
      if (window.location.pathname.indexOf('/portal/publisher/') === 0) {
        val += '; domain=' + document.domain.split('.').slice(1).join('.');
      } else {
        val += '; domain=' + document.domain;
      }
      val += '; path=/';

      document.cookie = tmpVersionKey + '=' + val;

      window.location.reload(true);
    }
    // 已更新了,30分钟后继续探测
    setTimeout(window.tmpIntervalFunc, 1000 * 60 * 30);
  };
  window.tmpIntervalTick = function () {
    var tmpVersion = _localStorage.localStorage.get(tmpVersionKey);
    if (tmpVersion && window[tmpVersionKey] && tmpVersion !== window[tmpVersionKey]) {
      var tmpVs = window[tmpVersionKey].split('_');
      var tmpVersions = tmpVersion.split('_');
      if (tmpVs[0] === tmpVersions[0] || tmpVs[0] === appVersion) {
        var tmpDiv = document.createElement('div');
        tmpDiv.innerHTML = '<div id="j_' + tmpVersionKey + '" style="position: fixed; top: 0; z-index: 100000000; left: 50%; padding: 5px 20px; border: 1px solid #ffe58f; background-color: #fffbe6; width: 294px; margin-left: -147px; font-weight: bold;">\n              \u60A8\u597D\uFF0C\u7CFB\u7EDF\u6709\u66F4\u65B0\uFF0C\u8BF7\u70B9\u51FB<a onclick="window.tmpVersionUpdate(1);">\u5237\u65B0</a>\u9875\u9762\u3002\n              <a onclick="window.tmpVersionUpdate();" style="display: inline-block; *zoom: 1; *display: inline; width: 14px; height: 14px; opacity: 0.3;    position: absolute; border: 1px solid; border-radius: 7px; right: 4px; top: 7px;" >\n                <i style=" position: absolute; right: 6px; top: 1px; height: 11px; width: 1px; background-color: #333; transform: rotate(45deg); "></i>\n                <i style=" position: absolute; right: 6px; top: 1px; height: 11px; width: 1px; background-color: #333; transform: rotate(-45deg); "></i>\n              </a>\n            </div>';
        document.body.appendChild(tmpDiv);
      }
    } else if (window[tmpVersionKey]) {
      _localStorage.localStorage.set(tmpVersionKey, window[tmpVersionKey]);
      // 没有识别到,30分钟后继续探测
      setTimeout(window.tmpIntervalFunc, 1000 * 60 * 30);
    }
  };

  var tickScript;
  window.tmpIntervalFunc = function () {
    if (tickScript) {
      tickScript.remove();
    }
    tickScript = document.createElement('script');
    tickScript.type = 'text/javascript';
    tickScript.src = window.__static_public_path__ + ('../v.js?t=' + +new Date().getTime());
    tickScript.onload = window.tmpIntervalTick;
    document.head.appendChild(tickScript);
  };

  window.tmpIntervalFunc();
}

/***/ }),
/* 121 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp2;
// see: https://github.com/STRML/react-grid-layout


var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(22);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactGridLayout = __webpack_require__(122);

var _reactGridLayout2 = _interopRequireDefault(_reactGridLayout);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var FlexGridLayer = exports.FlexGridLayer = (_temp2 = _class = function (_React$PureComponent) {
  _inherits(FlexGridLayer, _React$PureComponent);

  function FlexGridLayer() {
    var _ref;

    var _temp, _this, _ret;

    _classCallCheck(this, FlexGridLayer);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = FlexGridLayer.__proto__ || Object.getPrototypeOf(FlexGridLayer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      width: 800
    }, _this._nextVectors = [], _temp), _possibleConstructorReturn(_this, _ret);
  }
  // static providers = ['resizer'];

  _createClass(FlexGridLayer, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _this2 = this;

      /* eslint-disable react/no-find-dom-node */
      var dom = _reactDom2.default.findDOMNode(this);
      this.setState({
        width: dom.offsetWidth
      }, function () {
        if (_this2.context.resizer) {
          _this2._cancelResize = _this2.context.resizer.resize(dom, function () {
            _this2.setState({
              width: dom.offsetWidth
            });
          });
        }
      });
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this._cancelResize && this._cancelResize();
    }
  }, {
    key: 'getGridVector',
    value: function getGridVector(vectors) {
      if (this._nextVectors.length) {
        return this._nextVectors.shift();
      }
      var precedent = !!vectors[0];
      // 一行分6个
      var count = 12;
      // 所有高度
      var hArr = new Array(count);
      // x轴只判断一遍
      var xArr = [];
      // 最低高度
      var minHeight = precedent ? count : 0;
      // 最低高度的下标
      var minHkey = 0;
      var tmpHeight = void 0;
      for (var i = vectors.length; i--;) {
        tmpHeight = vectors[i].y + vectors[i].h;
        if (tmpHeight <= minHeight && !xArr[vectors[i].x]) {
          minHeight = tmpHeight;
          minHkey = i;
          xArr[vectors[i].x] = true;
        }
        // 首行占用了多少位置
        if (vectors[i].y === 0) {
          for (var j = 0; j < vectors[i].w; j++) {
            hArr[vectors[i].x + j] = true;
          }
        }
      }
      var minH = 3;
      var minW = 4;
      var k = 0;
      // 已占有2个宽度为准
      var fWidth = 0;
      // 有占用时的下标
      var fWkey = 0;
      if (hArr.length) {
        while (fWkey < count) {
          if (hArr[fWkey]) {
            fWkey++;
          } else {
            while (k < minW) {
              if (fWkey + k < count && !hArr[fWkey + k]) {
                fWidth++;
              }
              k++;
            }
            break;
          }
        }
      }
      // 未占满
      var vector = void 0;
      if (fWidth === minW) {
        vector = { x: fWkey, y: 0, w: fWidth, h: minH };
      } else if (precedent) {
        // 重要,如果一个模块下,可以容纳2个,那么就加入2个
        var mults = Math.floor(vectors[minHkey].w / minW);
        if (mults > 1) {
          vector = { x: vectors[minHkey].x, y: minHeight, w: minW, h: minH };
          for (var z = 1; z < mults; z++) {
            this._nextVectors.push({ x: vectors[minHkey].x + minW * z, y: minHeight, w: minW * z, h: minH });
          }
        } else {
          vector = { x: vectors[minHkey].x, y: minHeight, w: vectors[minHkey].w, h: minH };
        }
      } else {
        vector = { x: 0, y: 0, w: minW, h: minH };
      }
      return vector;
    }
  }, {
    key: 'render',
    value: function render() {
      var _this3 = this;

      var _props = this.props,
          components = _props.components,
          LayerItem = _props.LayerItem,
          onLayerChange = _props.onLayerChange,
          autoGrid = _props.autoGrid,
          isResizable = _props.isResizable,
          style = _props.style;

      var editable = this.context.layer.isEditable();
      var enabled = isResizable || editable;
      var vectors = [];
      return _react2.default.createElement(
        'div',
        { style: Object.assign({ position: 'relative' }, style), className: 'o-layer o-layer-flexGrid' },
        _react2.default.createElement(
          _reactGridLayout2.default,
          { isDraggable: enabled, isResizable: enabled, cols: 12, rowHeight: 100, width: this.state.width },
          components.map(function (item, index) {
            var vector = item.attrs.vector;
            if (autoGrid) {
              if (!vector) {
                vector = item.attrs.vector = _this3.getGridVector(vectors);
              }
              vectors.push(vector);
            }
            return _react2.default.createElement(
              'div',
              { key: item.key || index, 'data-tt': 1, 'data-grid': vector },
              _react2.default.createElement(
                LayerItem,
                _extends({ onChange: onLayerChange }, item.attrs),
                item && item.component ? _react2.default.createElement(item.component, null) : null
              )
            );
          })
        )
      );
    }
  }]);

  return FlexGridLayer;
}(_react2.default.PureComponent), _class.contextTypes = {
  resizer: _propTypes2.default.object,
  layer: _propTypes2.default.object
}, _class.propTypes = {
  components: _propTypes2.default.array,
  LayerItem: _propTypes2.default.any,
  onLayerChange: _propTypes2.default.func,
  autoGrid: _propTypes2.default.bool,
  isResizable: _propTypes2.default.bool,
  style: _propTypes2.default.object
}, _temp2);

/***/ }),
/* 122 */
/***/ (function(module, exports) {

module.exports = require("react-grid-layout");

/***/ }),
/* 123 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var SimpleLayer = exports.SimpleLayer = (_temp = _class = function (_React$PureComponent) {
  _inherits(SimpleLayer, _React$PureComponent);

  function SimpleLayer() {
    _classCallCheck(this, SimpleLayer);

    return _possibleConstructorReturn(this, (SimpleLayer.__proto__ || Object.getPrototypeOf(SimpleLayer)).apply(this, arguments));
  }

  _createClass(SimpleLayer, [{
    key: 'render',
    value: function render() {
      var _props = this.props,
          components = _props.components,
          LayerItem = _props.LayerItem,
          LayerGrid = _props.LayerGrid,
          style = _props.style;

      return _react2.default.createElement(
        LayerGrid,
        { className: 'o-layer o-layer-simple', style: style },
        components.map(function (item, index) {
          return _react2.default.createElement(
            LayerItem,
            _extends({ key: item.key || index }, item.attrs, { className: 'o-layer-elem_box' }),
            item && item.component ? _react2.default.createElement(item.component, null) : null
          );
        })
      );
    }
  }]);

  return SimpleLayer;
}(_react2.default.PureComponent), _class.propTypes = {
  components: _propTypes2.default.array,
  LayerItem: _propTypes2.default.any,
  LayerGrid: _propTypes2.default.any,
  style: _propTypes2.default.object
}, _temp);

/***/ }),
/* 124 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var w = window;
var documentElement = document.documentElement;
var body = document.body;

var AdaptPage = exports.AdaptPage = function () {
  _createClass(AdaptPage, [{
    key: 'setOffsetHeight',
    value: function setOffsetHeight(offsetHeight) {
      this._offsetHeight = offsetHeight;
    }
  }, {
    key: 'getScreenHeight',
    value: function getScreenHeight() {
      return (w.innerHeight || documentElement.clientHeight || body.clientHeight) - this._offsetHeight;
    }
  }], [{
    key: 'inIframe',

    /**
     * identify in an iframe
     * see: http://stackoverflow.com/questions/326069/how-to-identify-if-a-webpage-is-being-loaded-inside-an-iframe-or-directly-into-t
     */
    value: function inIframe() {
      try {
        return window.self !== window.top;
      } catch (e) {
        return true;
      }
    }
  }]);

  function AdaptPage() {
    var _this = this;

    _classCallCheck(this, AdaptPage);

    this._offsetHeight = 0;
    this._isInIframe = AdaptPage.inIframe();
    this._watchers = [];
    this._adapter = function () {
      clearTimeout(_this._timer);
      _this._timer = setTimeout(function () {
        var index = 0;
        var watcher = _this._watchers[index];
        while (watcher) {
          if (!watcher.el || watcher.el.offsetParent === null) {
            _this._watchers.splice(index, 1);
          } else {
            watcher.fn(watcher.el);
            index++;
          }
          watcher = _this._watchers[index];
        }
      }, 200);
    };

    /**
     * + add resize
     * see: http://stackoverflow.com/questions/19014250/reactjs-rerender-on-browser-resize
     */
    window.addEventListener('resize', this._adapter);
  }

  _createClass(AdaptPage, [{
    key: 'onAdapt',
    value: function onAdapt(el, callback) {
      this._watchers.push({ el: el, fn: callback });
      callback(el, this._isInIframe);
    }
  }, {
    key: 'autoAdaptDim',
    value: function autoAdaptDim(el, setter) {
      var _this2 = this;

      var callback = function callback(el, isInIframe) {
        setter(el.offsetHeight - _this2._offsetHeight, isInIframe, _this2.getScreenHeight());
      };
      this.onAdapt(el, callback);
    }
  }, {
    key: 'autoAdapt',
    value: function autoAdapt(dom, action) {
      this.autoAdaptDim(dom, function (size, isInIframe, screenHeight) {
        action(size, screenHeight, isInIframe);
      });
    }
  }, {
    key: 'dispose',
    value: function dispose() {
      this._watchers = [];
      window.removeEventListener('resize', this._adapter);
    }
  }]);

  return AdaptPage;
}();

/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _forEach = __webpack_require__(47);

var _forEach2 = _interopRequireDefault(_forEach);

var _getComponent = __webpack_require__(5);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var Cascader = exports.Cascader = function () {
  function Cascader() {
    var _this = this;

    _classCallCheck(this, Cascader);

    this._cascadesMap = {};
    this._refs = {};

    this.getFieldDecorator = function (name, _ref) {
      var rely = _ref.rely,
          _ref$event = _ref.event,
          event = _ref$event === undefined ? 'onChange' : _ref$event,
          _ref$argIndex = _ref.argIndex,
          argIndex = _ref$argIndex === undefined ? 2 : _ref$argIndex,
          getValueFromEvent = _ref.getValueFromEvent,
          trigger = _ref.trigger,
          _ref$props = _ref.props,
          props = _ref$props === undefined ? {} : _ref$props;
      return function (Field) {
        /**
         * + 初始化步骤
         * 1. rely有值表示当前组件和来源组件有级联关系,rely指向来源组件的实例名
         * 2. this._cascadesMap[rely]存入当前级联的配置信息,来源组件的事件作为key,值是数组
         *
         * 示例:
         * A(来源)和B有级联,通过A的onClick;当前装饰C,需要和A有级联,通过onChange;当前装饰C,需要和A有级联,通过onChange;当装饰D,D和A也做级联,而且也是通过onChange。
         *
         * A(来源)和B有级联onClick, A本身有onClick事件,alert(1); B本身onChange值介绍1个参数是不行的,必须要接受2个参数,A传给B的值放在第二个参数,同时这个参数值会存起来。
         */
        if (rely) {
          _this._cascadesMap[rely] = _this._cascadesMap[rely] || {};
          var events = _this._cascadesMap[rely][event] = _this._cascadesMap[rely][event] || [];
          var item = events.find(function (item) {
            return item.name === name;
          });
          // 是否有重复的级联配置存在
          if (!item) {
            events.push({
              name: name,
              getValueFromEvent: getValueFromEvent,
              trigger: trigger
            });
          }
        }

        // 1. 外部变量,统一在函数内部一个地方可以管理到
        // 2. 外部变量很大,存在内部变量来使用,效率更高
        var cascadesMap = _this._cascadesMap;
        var refs = _this._refs;
        /**
        * Hoc所需的getProps方法
        * @param {object} props -外部传入的props
        * @param {object} context -父级挂载的组件
        * @param {func} setState -方法
        */
        var _getProps = props.getProps;
        var getProps = function getProps(props, context, setState) {
          var newProps = _getProps ? _getProps(props, context, setState) : {};
          // 拿到ref实例
          newProps.ref = function (inst) {
            // 判断是否是Hoc组件
            if (inst && inst.getRealInstance) {
              refs[name] = inst.getRealInstance();
            } else {
              refs[name] = inst;
            }
          };

          var cascadeEvents = cascadesMap[name];
          if (cascadeEvents) {
            // 遍历级联事件
            (0, _forEach2.default)(cascadeEvents, function (cascades, eventName) {
              var eventCb = newProps[eventName] || props[eventName];
              // 拦截事件
              newProps[eventName] = function (e) {
                // 之前的事情触发掉。
                var ret = eventCb && eventCb(e);
                var promise = ret && ret.then ? ret : Promise.resolve();
                // 在之前的事件触发完成之后再执行后续的动作
                promise.then(function () {
                  cascades.forEach(function (instObj) {
                    var value = e.target ? e.target.value : e;
                    // 组件的实例
                    var instance = refs[instObj.name];
                    if (instance) {
                      //
                      if (argIndex !== 1 && instance._triggerParams === undefined) {
                        // 我们给B组件传入值到第二个参数
                        if (!instance._args) {
                          instance._args = [];
                          for (var i = 1; i < argIndex; i++) {
                            instance._args.push(undefined);
                          }
                        }
                        var method = instance[instObj.trigger];
                        instance[instObj.trigger] = function () {
                          return method.apply(this, instance._args.concat(instance._triggerParams));
                        };
                      }
                      // 约定把值传入给_triggerParams
                      instance._triggerParams = instObj.getValueFromEvent ? instObj.getValueFromEvent(value) : null;
                      instance[instObj.trigger]();
                    }
                  });
                });
                return ret;
              };
            });
          }
          return newProps;
        };

        /**
         * Hoc的通用逻辑:B -> Hoc
         * 1. 新定义组件Hoc,传入的所有的prop存在state
         * 2. render函数把state的值,以props的形式传入到A
         * 3. Hoc组件,可以通过getRealInstance获取B的实例
         */
        var HocField = (0, _getComponent.getComponent)(props, getProps)(Field);
        HocField.prototype.getRealInstance = function () {
          return refs[name];
        };

        // 装饰当前组件,会生成一个新的Hoc组件返回。
        return HocField;
      };
    };
  }
  // #! 维护所有组件实例的配置

  // #! 维护所有践实例引用


  _createClass(Cascader, [{
    key: 'getInstance',


    // # 获取组件实例
    value: function getInstance(name) {
      return this._refs[name];
    }
    /**
     * # 装饰一个组件,并加入级联配置信息
     * @param {String} name -指定实例的名称
     * @param {Object} option - 组件的级联配置
     *
     * + getFieldDecorator函数定义
     * ```
     *  getFieldDecorator = function (name, option) {
     *    // Field当前组件的定义
     *    return function(Field) {
     *      return Hoc组件;
     *    }
     *  }
     *
     * // getFieldDecorator(a, b)(Input)
     * ```
     *
     * + option的示例结构
     * ```
     *  option = {
     *    rely,                 // 级联的来源组件实例名称
     *    event,                // 来源组件监听的事件,该事件触发后,会驱动当前组件的触发动作
     *    getVallueFormEvent,   // 触发动作调用时,会传入来源组件触发事件后带进来的值
     *    trigger,              // 当前组件的触发动作
     *    props                 // 装饰组件的额外props
     *  }
     * ```
     *
     * + this._cascadesMap示例结构
     * ```
     * cascadesMap = {
     *  a: {
     *    onChange: [{name, getValueFromEvent, trigger}, ...],
     *    onClick: []
     *  }
     * }
     * ```
     */

  }]);

  return Cascader;
}();

/***/ }),
/* 126 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _react = __webpack_require__(0);

var _react2 = _interopRequireDefault(_react);

var _modal = __webpack_require__(40);

var _dataSet = __webpack_require__(32);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var HocCreator = exports.HocCreator = function () {
  function HocCreator() {
    _classCallCheck(this, HocCreator);

    this._modals = [];
  }

  _createClass(HocCreator, [{
    key: 'getModalComponent',


    /**
     * modalOption = {
     *  // 对话框的配置
     *  modalProps,
     *  // 对话框打开类型
     *  modalType,
     *  // 独立打开
     *  standalone,
     *  // 子组件的属性
     *  childProps
     * }
     */
    value: function getModalComponent(Widget, modalOption, richProps) {
      var modalType = modalOption.modalType || 'open';
      // 有richProps说明是一个动态数据的组件
      if (richProps) {
        Widget = this.getRichComponent(Widget, richProps);
      }
      var option = Object.assign({
        content: _react2.default.createElement(Widget, modalOption.childProps)
      }, modalOption.modalProps);

      var modal = _modal.GModal[modalType](option);

      // 多个对话框可以叠加
      if (modalOption.standalone) {
        this._modals.push(modal);
      } else {
        // 否则把之前的对话框干掉,只显示当前的
        this._modals[0] && this._modals[0].destroy();
        this._modals[0] = modal;
      }
      return modal;
    }
  }, {
    key: 'destroy',
    value: function destroy() {
      var modal = this._modals.pop();
      modal && modal.destroy();
    }
  }, {
    key: 'getRichComponent',
    value: function getRichComponent(Widget, richProps) {
      var RichWidget = function (_React$PureComponent) {
        _inherits(RichWidget, _React$PureComponent);

        function RichWidget() {
          _classCallCheck(this, RichWidget);

          return _possibleConstructorReturn(this, (RichWidget.__proto__ || Object.getPrototypeOf(RichWidget)).apply(this, arguments));
        }

        _createClass(RichWidget, [{
          key: 'getRealInstance',
          value: function getRealInstance() {
            return this._wrappedComponent;
          }
        }, {
          key: 'handleResolve',
          value: function handleResolve(v, params) {
            this._wrappedComponent.handleResolve(v, params);
          }
        }, {
          key: 'render',
          value: function render() {
            var _this2 = this;

            if (richProps.childProps) {
              Object.assign(richProps.childProps, this.props);
            }
            return _react2.default.createElement(
              _dataSet.DataSet,
              _extends({
                ref: function ref(inst) {
                  return _this2._wrappedComponent = inst;
                }
              }, richProps),
              _react2.default.createElement(Widget, null)
            );
          }
        }]);

        return RichWidget;
      }(_react2.default.PureComponent);

      return RichWidget;
    }
  }]);

  return HocCreator;
}();

/***/ }),
/* 127 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// see: https://www.npmjs.com/package/vue-resize
var Resizer = exports.Resizer = function () {
  function Resizer() {
    _classCallCheck(this, Resizer);
  }

  _createClass(Resizer, [{
    key: 'resize',
    value: function resize(el, callback) {
      var object = document.createElement('object');
      this._resizeObject = object;
      object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');
      object.setAttribute('aria-hidden', 'true');
      object.setAttribute('tabindex', -1);
      object.onload = function () {
        object.contentDocument.defaultView.addEventListener('resize', callback);
      };
      object.type = 'text/html';
      if (this.isIE) {
        el.appendChild(object);
      }
      object.data = 'about:blank';
      if (!this.isIE) {
        el.appendChild(object);
      }
      return function () {
        object.contentDocument.defaultView.removeEventListener('resize', callback);
      };
    }
  }, {
    key: 'isIE',
    get: function get() {
      if (this._isIE === undefined) {
        var ua = window.navigator.userAgent;

        var msie = ua.indexOf('MSIE ');
        if (msie > 0) {
          // IE 10 or older => return version number
          this._isIE = parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
        }

        var trident = ua.indexOf('Trident/');
        if (trident > 0) {
          // IE 11 => return version number
          var rv = ua.indexOf('rv:');
          this._isIE = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
        }

        var edge = ua.indexOf('Edge/');
        if (edge > 0) {
          // Edge (IE 12+) => return version number
          this._isIE = parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
        }

        // other browser
        this._isIE = -1;
      }
      return this._isIE;
    }
  }]);

  return Resizer;
}();

/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp;

var _propTypes = __webpack_require__(1);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _url = __webpack_require__(129);

var _url2 = _interopRequireDefault(_url);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var RouteHelper = exports.RouteHelper = (_temp = _class = function () {
  function RouteHelper(context) {
    var _this = this;

    _classCallCheck(this, RouteHelper);

    this._fns = [];
    this.context = context;
    this.setState(null, window.location.href);
    context.router.listen(function (location) {
      _this.context.location = location;
      _this.setState(null, window.location.href);
    });
  }

  _createClass(RouteHelper, [{
    key: 'replace',
    value: function replace(query) {
      var newLocation = this.context.router.createLocation(this.context.location.pathname);
      newLocation.query = Object.assign(this.context.location.query, query);
      this.context.router.replace(newLocation);
    }
  }, {
    key: 'push',
    value: function push(url) {
      this.context.router.push(url);
    }
  }, {
    key: 'watch',
    value: function watch(watcher, callback) {
      this._fns.push({
        watcher: watcher,
        callback: callback
      });
    }
  }, {
    key: 'unwatch',
    value: function unwatch(watcher) {
      var index = this._fns.findIndex(function (cfg) {
        return cfg.watcher === watcher;
      });
      this._fns.splice(index, 1);
    }
  }, {
    key: 'setState',
    value: function setState(query, url) {
      var newState = {};
      if (url) {
        var u = _url2.default.parse(url, true);
        Object.assign(newState, u.query);
      }

      if (query) {
        Object.assign(newState, query);
      }

      try {
        var cfg = void 0;
        for (var i = 0, len = this._fns.length; i < len; i++) {
          cfg = this._fns[i];
          if (cfg.watcher(newState, this.state)) {
            cfg.callback(newState);
          }
        }
      } catch (e) {
        window.console.error(e);
      }
      this.state = newState;
    }
  }, {
    key: 'location',
    get: function get() {
      return this.context.location;
    }
  }]);

  return RouteHelper;
}(), _class.contextTypes = {
  location: _propTypes2.default.object,
  router: _propTypes2.default.object
}, _temp);

/***/ }),
/* 129 */
/***/ (function(module, exports) {

module.exports = require("url");

/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _class, _temp; /**
                    * # 通用校验模块
                    * 1. 通过定义校验规则用于校验数据合法
                    * 2. 集成antd-form,校验表单合法
                    */


var _asyncValidator = __webpack_require__(131);

var _asyncValidator2 = _interopRequireDefault(_asyncValidator);

var _hoistNonReactStatics = __webpack_require__(16);

var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

var _form = __webpack_require__(10);

var _form2 = _interopRequireDefault(_form);

var _message = __webpack_require__(7);

var _message2 = _interopRequireDefault(_message);

var _defer = __webpack_require__(55);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
 * + async-validator@1.6.6
 * > see: https://github.com/yiminghe/async-validator
 */
var Validator = exports.Validator = (_temp = _class = function () {

  /* eslint-disable camelcase */
  function Validator(props, validateRules) {
    _classCallCheck(this, Validator);

    for (var key in validateRules) {
      validateRules[key] = this.pack(validateRules[key]);
    }
    this._validateRules = validateRules || {};
    this._handleSubmit = function (errors, values) {
      if (errors) {
        return false;
      } else {
        return values;
      }
    };
    this._submitting = false;
    this._validating = false;
  }
  /**
   * + 校验规则
   * ```
   * fieldRules = [{
   *  [fieldName]: {
   *    type: ['string', 'number', 'boolean', 'method', 'regexp', 'integer', 'float', 'array', 'object', 'enum', 'date', 'url', 'hex', 'email'],
   *    required,
   *    pattern,
   *    whitespace,
   *    transform,
   *    message,
   *    validator,
   *    [range(min, max): 'string' | 'array' | 'integer'],
   *    [length: 'string' | 'array']
   *    [enum: 'enum'],
   *    [fields: 'deep rules'],
   *    [defaultField: 'array' | 'object']
   *  }
   * },...]
   * ```
   */


  _createClass(Validator, [{
    key: 'isSubmitting',
    value: function isSubmitting() {
      return this._submitting;
    }
  }, {
    key: 'isValidating',
    value: function isValidating() {
      return this._validating;
    }
  }, {
    key: 'pack',
    value: function pack(rule) {
      if (Array.isArray(rule)) {
        rule = rule.map(function (item) {
          if (typeof item.pattern === 'string') {
            item.pattern = Validator.templates.pattern[item.pattern];
          }
          return item;
        });
      } else {
        if (typeof rule.pattern === 'string') {
          rule.pattern = Validator.templates.pattern[rule.pattern];
        }
      }
      return rule;
    }
  }, {
    key: 'setForm',
    value: function setForm(form, validateRules, submitCallback) {
      this._form = form;
      if (submitCallback) {
        this._handleSubmit = submitCallback;
        if (validateRules) {
          for (var key in validateRules) {
            validateRules[key] = this.pack(validateRules[key]);
          }
          this._validateRules = validateRules;
        }
      } else if (validateRules) {
        this._handleSubmit = validateRules;
      }
    }
  }, {
    key: 'reset',
    value: function reset() {
      this._form.resetFields();
    }
  }, {
    key: 'getProps',
    value: function getProps(fieldName, rule) {
      if (this._validateRules[fieldName]) {
        return assignDeep(this._validateRules[fieldName], rule && this.pack(rule));
      } else {
        return rule && this.pack(rule);
      }
    }

    // #! for antd-form

  }, {
    key: 'getFieldProps',
    value: function getFieldProps(fieldName, option) {
      if (!option.rules && option.rule) {
        option.rules = [option.rule];
      }
      if (this._validateRules[fieldName]) {
        // option.rules = assignDeep([].concat(this._validateRules[fieldName]),
        // option.rules && this.pack(option.rules) || []);
        option.rules = [].concat(this._validateRules[fieldName], option.rules && this.pack(option.rules) || []);
      } else if (option.rules) {
        option.rules = this.pack(option.rules);
      }
      return this._form.getFieldProps(fieldName, option);
    }
  }, {
    key: 'getFieldDecorator',
    value: function getFieldDecorator(fieldName, option) {
      if (!option.rules && option.rule) {
        option.rules = [option.rule];
      }
      if (this._validateRules[fieldName]) {
        // option.rules = assignDeep([].concat(this._validateRules[fieldName]),
        // option.rules && this.pack(option.rules) || []);
        option.rules = [].concat(this._validateRules[fieldName], option.rules && this.pack(option.rules) || []);
      } else if (option.rules) {
        option.rules = this.pack(option.rules);
      }
      return this._form.getFieldDecorator(fieldName, option);
    }
  }, {
    key: '_validate',
    value: function _validate(opt) {
      var _this = this;

      var defer = new _defer.Deferred();
      this._validating = true;
      this._form.setFields();
      opt.preCallback && opt.preCallback();
      var callback = function callback(errors, values) {
        _this._validating = false;
        var postCallback = function postCallback() {
          opt.postCallback && opt.postCallback();
          _this._form.setFields();
        };
        if (errors) {
          if (opt.catchError) {
            opt.catchError(errors);
          } else {
            _message2.default.error('表单校验失败');
          }
          postCallback();
          return defer.reject(false);
        }

        var result = opt.callback && opt.callback(errors, values);
        if (result && result.then) {
          result.then(defer.resolve, defer.reject);
        } else if (result === false) {
          defer.reject(false);
        } else {
          defer.resolve(result);
        }
        defer.promise.then(postCallback, postCallback);
      };
      if (opt.source) {
        new _asyncValidator2.default(this._validateRules).validate(opt.source, callback);
      } else {
        this._form[opt.method](callback);
      }
      return defer.promise;
    }
  }, {
    key: 'validateFields',
    value: function validateFields(callback, catchError) {
      return this._validate({
        method: 'validateFields',
        callback: callback,
        catchError: catchError
      });
    }
  }, {
    key: 'validateFieldsAndScroll',
    value: function validateFieldsAndScroll(callback, catchError) {
      return this._validate({
        method: 'validateFieldsAndScroll',
        callback: callback,
        catchError: catchError
      });
    }
  }, {
    key: 'validate',
    value: function validate(source, callback, catchError) {
      return this._validate({
        source: source,
        callback: callback,
        catchError: catchError
      });
    }
  }, {
    key: 'submit',
    value: function submit(_callback, catchError) {
      var _this2 = this;

      return this._validate({
        method: 'validateFieldsAndScroll',
        preCallback: function preCallback() {
          _this2._submitting = true;
        },
        postCallback: function postCallback() {
          _this2._submitting = false;
        },
        callback: function callback(errors, values) {
          values = _this2._handleSubmit(errors, values);
          if (values === false) {
            return false;
          } else {
            return _callback(values);
          }
        },
        catchError: catchError
      });
    }
  }]);

  return Validator;
}(), _class.enhanceForm = function (option) {
  return function (BaseComponent) {
    var Component = _form2.default.create(Object.assign(option || {}, { withRef: true }))(BaseComponent);
    Component.prototype.getRealInstance = function () {
      return this.refs.wrappedComponent.refs.formWrappedComponent;
    };
    return (0, _hoistNonReactStatics2.default)(Component, BaseComponent);
  };
}, _class.validate = function (rules, source, callback) {
  var descriptor = {};
  for (var key in rules) {
    if (typeof rules[key] === 'boolean') {
      descriptor[key] = {
        type: 'string',
        required: rules[key]
      };
    } else {
      descriptor[key] = rules[key];
    }
  }
  var validator = new _asyncValidator2.default(descriptor);
  validator.validate(source, callback);
}, _class.templates = {
  pattern: {
    // #! 中英字母数字下划线
    legal: /^[A-Za-z0-9_\u4e00-\u9fa5]*$/,
    // #! 必须是字母数字、下划线、中划线以及
    light_legal: /^[A-Za-z0-9._-]*$/,
    // #! 以字母开头,不能包含中文或特殊字符
    light_light_legal: /^[a-zA-Z]\w*$/,
    // #! 中英字母数字下划线
    dark_legal: /^[A-Za-z0-9_\u4e00-\u9fa5]*$/,
    // #! 必须是中英字母数字下划线以及.
    dark_dark_legal: /^[A-Za-z0-9._\u4e00-\u9fa5]*$/
  } }, _class.$inject = ['props', 'validateRules'], _temp);


function assignDeep(obj, newObj) {
  if (Array.isArray(obj)) {
    return obj.map(function (item, index) {
      return assignDeep(item, newObj[index]);
    });
  } else {
    return Object.assign(obj, newObj);
  }
}

/***/ }),
/* 131 */
/***/ (function(module, exports) {

module.exports = require("async-validator");

/***/ })
/******/ ]);
//# sourceMappingURL=hcComponent.js.map