nowrapper-json
Version:
nowrapper
238 lines (210 loc) • 12.3 kB
JavaScript
var _typeof = require("@babel/runtime/helpers/typeof");
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(["exports", "@babel/runtime/helpers/extends", "@babel/runtime/helpers/classCallCheck", "@babel/runtime/helpers/createClass", "@babel/runtime/helpers/possibleConstructorReturn", "@babel/runtime/helpers/getPrototypeOf", "@babel/runtime/helpers/assertThisInitialized", "@babel/runtime/helpers/inherits", "@babel/runtime/helpers/defineProperty", "react", "./components", "./wrapper", "axios", "deep-equal"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("@babel/runtime/helpers/extends"), require("@babel/runtime/helpers/classCallCheck"), require("@babel/runtime/helpers/createClass"), require("@babel/runtime/helpers/possibleConstructorReturn"), require("@babel/runtime/helpers/getPrototypeOf"), require("@babel/runtime/helpers/assertThisInitialized"), require("@babel/runtime/helpers/inherits"), require("@babel/runtime/helpers/defineProperty"), require("react"), require("./components"), require("./wrapper"), require("axios"), require("deep-equal"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global._extends, global.classCallCheck, global.createClass, global.possibleConstructorReturn, global.getPrototypeOf, global.assertThisInitialized, global.inherits, global.defineProperty, global.react, global.components, global.wrapper, global.axios, global.deepEqual);
global.Select = mod.exports;
}
})((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object" ? globalThis : (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" ? self : this, function (_exports, _extends2, _classCallCheck2, _createClass2, _possibleConstructorReturn2, _getPrototypeOf2, _assertThisInitialized2, _inherits2, _defineProperty2, _react, _components, _wrapper, _axios, _deepEqual) {
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports["default"] = void 0;
_extends2 = _interopRequireDefault(_extends2);
_classCallCheck2 = _interopRequireDefault(_classCallCheck2);
_createClass2 = _interopRequireDefault(_createClass2);
_possibleConstructorReturn2 = _interopRequireDefault(_possibleConstructorReturn2);
_getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf2);
_assertThisInitialized2 = _interopRequireDefault(_assertThisInitialized2);
_inherits2 = _interopRequireDefault(_inherits2);
_defineProperty2 = _interopRequireDefault(_defineProperty2);
_react = _interopRequireDefault(_react);
_components = _interopRequireDefault(_components);
_wrapper = _interopRequireDefault(_wrapper);
_axios = _interopRequireDefault(_axios);
_deepEqual = _interopRequireDefault(_deepEqual);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var wrapperedSummary = (0, _wrapper["default"])(_components["default"]);
var AntdSelect = wrapperedSummary.Select;
var Option = AntdSelect.Option,
OptGroup = AntdSelect.OptGroup;
var Select =
/*#__PURE__*/
function (_React$Component) {
(0, _inherits2["default"])(Select, _React$Component);
function Select(props) {
var _this;
(0, _classCallCheck2["default"])(this, Select);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Select).call(this, props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "id", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "timer", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "genId", function () {
return Math.random().toString(36).slice(2);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "componentDidMount", function () {
if (_this.props.fetchOptions) {
var url = _this.props.fetchOptions.url;
if (typeof url === "string") {
_this.setState({
loading: true
});
_this.pullOptions(_this.props.fetchOptions);
} else {
console.error("【Select: invalid fetchOptions url】: url of FetchOptions must be string");
}
}
if ((_this.props.suggestOptions || _this.props.fetchOptions || {}).defaultOptions) {
_this.setDefaultOptions();
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "componentDidUpdate", function (prevProps) {
var _this$props = _this.props,
suggestOptions = _this$props.suggestOptions,
fetchOptions = _this$props.fetchOptions,
value = _this$props.value,
mode = _this$props.mode,
labelInValue = _this$props.labelInValue;
var _ref = suggestOptions || {},
suggestDefaultOptions = _ref.defaultOptions;
var _ref2 = fetchOptions || {},
fetchDefaultOptions = _ref2.defaultOptions;
if (suggestOptions && prevProps.suggestOptions && !(0, _deepEqual["default"])(suggestOptions.defaultOptions, prevProps.suggestOptions.defaultOptions) && suggestOptions.defaultOptions || suggestOptions && !prevProps.suggestOptions && suggestOptions.defaultOptions || fetchOptions && prevProps.fetchOptions && !(0, _deepEqual["default"])(fetchOptions.defaultOptions, prevProps.fetchOptions.defaultOptions) && fetchOptions.defaultOptions || fetchOptions && !prevProps.fetchOptions && fetchOptions.defaultOptions) {
_this.setDefaultOptions();
}
if (value !== null && value !== undefined && !(0, _deepEqual["default"])(value, prevProps.value) && !_this.state.options.some(function (option) {
return option.value === value;
}) && (!mode || mode && mode === "default")) {
if ((suggestDefaultOptions || fetchDefaultOptions || []).some(function (option) {
return option.value === value;
})) {
_this.setDefaultOptions();
} else {
if (!labelInValue) {
_this.handelSearch(value);
}
}
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setDefaultOptions", function () {
var _this$props2 = _this.props,
fetchOptions = _this$props2.fetchOptions,
suggestOptions = _this$props2.suggestOptions;
var _ref3 = fetchOptions || suggestOptions || {},
defaultOptions = _ref3.defaultOptions;
if (defaultOptions) {
_this.setState({
options: defaultOptions
});
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "pullOptions", function (userOptions, config) {
var url = userOptions.url,
resMap = userOptions.resMap,
resMapKeys = userOptions.resMapKeys,
axiosConfig = userOptions.axiosConfig;
_this.id = _this.genId();
var id = _this.id;
if (typeof url === "string") {
(0, _axios["default"])(_objectSpread({
method: "GET",
url: url + (config ? "?".concat(config.name, "=").concat(config.value) : "")
}, axiosConfig)).then(function (res) {
if (id === _this.id) {
var status = res.status,
data = res.data;
if (status === 200) {
var newData = _objectSpread({}, data);
var options = data;
if (resMap) {
options = resMap(data) || [];
} else if (resMapKeys) {
resMapKeys.map(function (item) {
var key = item.key;
options = newData[key] || [];
newData = _objectSpread({}, newData[key]);
});
}
_this.setState({
options: options,
loading: false
});
}
} else {
console.error("\u3010Select\u3011: failed to load options");
}
});
} else {
console.error("【SuggestOptions: invalid fetchOptions url】: url of SuggestOptions must be string");
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "debounce", function (func, delay) {
clearTimeout(_this.timer);
_this.timer = setTimeout(function () {
return func();
}, delay);
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "suggest", function (value) {
if (_this.props.suggestOptions) {
var name = _this.props.suggestOptions.name;
_this.setState({
loading: true
});
_this.pullOptions(_this.props.suggestOptions, {
name: name,
value: value
});
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handelSearch", function (value) {
if (_this.props.suggestOptions && value) {
var debounce = _this.props.suggestOptions.debounce;
_this.debounce(function () {
return _this.suggest(value);
}, debounce || 300);
}
});
_this.state = {
loading: false,
options: []
};
return _this;
}
(0, _createClass2["default"])(Select, [{
key: "render",
value: function render() {
var _this$props3 = this.props,
childrenMode = _this$props3.childrenMode,
optionRender = _this$props3.optionRender;
return !childrenMode ? _react["default"].createElement(AntdSelect, (0, _extends2["default"])({}, this.props, {
loading: this.props.fetchOptions && this.props.fetchOptions.url || this.props.suggestOptions && this.props.suggestOptions.url ? this.state.loading : this.props.loading,
options: this.props.fetchOptions && this.props.fetchOptions.url || this.props.suggestOptions && this.props.suggestOptions.url ? this.state.options : this.props.options,
onSearch: this.props.suggestOptions ? this.handelSearch : this.props.onSearch
})) : _react["default"].createElement(AntdSelect, (0, _extends2["default"])({}, this.props, {
loading: this.props.fetchOptions && this.props.fetchOptions.url || this.props.suggestOptions && this.props.suggestOptions.url ? this.state.loading : this.props.loading,
onSearch: this.props.suggestOptions ? this.handelSearch : this.props.onSearch
}), (this.props.fetchOptions && this.props.fetchOptions.url || this.props.suggestOptions && this.props.suggestOptions.url ? this.state.options : this.props.options || []).map(function (opt) {
var label = opt.label,
value = opt.value;
return optionRender ? optionRender(opt) : _react["default"].createElement(Option, (0, _extends2["default"])({
key: label + value
}, opt, {
value: value
}), label);
}));
}
}]);
return Select;
}(_react["default"].Component);
_exports["default"] = Select;
(0, _defineProperty2["default"])(Select, "Option", Option);
(0, _defineProperty2["default"])(Select, "OptGroup", OptGroup);
});