UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

57 lines (56 loc) 2.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var React = _interopRequireWildcard(require("react")); var _ut = require("ut2"); var _SuperCascadePicker = _interopRequireDefault(require("../ItemCascadePicker/SuperCascadePicker")); var _transformKeys = _interopRequireDefault(require("../utils/transformKeys")); var _parseAreaCode = _interopRequireDefault(require("./parseAreaCode")); var _excluded = ["value", "mapKeys", "options"]; var AreaCodePicker = function AreaCodePicker(_ref) { var value = _ref.value, mapKeys = _ref.mapKeys, _ref$options = _ref.options, outOptions = _ref$options === void 0 ? [] : _ref$options, restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); var options = React.useMemo(function () { if (mapKeys) { return (0, _transformKeys.default)(outOptions, mapKeys); } return outOptions; }, [mapKeys, outOptions]); var data = React.useMemo(function () { var ret = []; function recursion(opts) { var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; opts.forEach(function (item) { var currItem = (0, _ut.omit)(item, 'children'); ret.push(currItem); if ((0, _ut.isArray)(item === null || item === void 0 ? void 0 : item.children) && item.children.length > 0) { recursion(item.children, index + 1); } }); } recursion(options); return ret; }, [options]); var realValue = React.useMemo(function () { if (typeof value === 'string') { return (0, _parseAreaCode.default)(value, data).map(function (item) { return (item === null || item === void 0 ? void 0 : item.value) || null; }); } return value; }, [data, value]); return /*#__PURE__*/React.createElement(_SuperCascadePicker.default, (0, _objectSpread2.default)({ value: realValue, options: options }, restProps)); }; var _default = exports.default = AreaCodePicker;