UNPKG

nowrapper-json

Version:

nowrapper

238 lines (210 loc) 12.3 kB
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); });