taro-react-uilib 1.4.26-1 → 1.4.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/components/Button/index.js +1 -1
  2. package/dist/components/Button/index.js.map +1 -1
  3. package/dist/components/Checkbox/index.js +1 -1
  4. package/dist/components/Checkbox/index.js.map +1 -1
  5. package/dist/components/CheckboxButton/index.js +1 -1
  6. package/dist/components/CheckboxButton/index.js.map +1 -1
  7. package/dist/components/FormInput/index.js +1 -1
  8. package/dist/components/FormInput/index.js.map +1 -1
  9. package/dist/components/IDNumberInput/index.js +1 -1
  10. package/dist/components/IDNumberInput/index.js.map +1 -1
  11. package/dist/components/Image/index.js +1 -1
  12. package/dist/components/Image/index.js.map +1 -1
  13. package/dist/components/LicensePlateInput/index.js +1 -1
  14. package/dist/components/LicensePlateInput/index.js.map +1 -1
  15. package/dist/components/NumberKeyboard/index.js +1 -1
  16. package/dist/components/NumberKeyboard/index.js.map +1 -1
  17. package/dist/components/Radio/index.js +1 -1
  18. package/dist/components/Radio/index.js.map +1 -1
  19. package/dist/components/Step/index.js +1 -1
  20. package/dist/components/Step/index.js.map +1 -1
  21. package/dist/components/Tabbar/tabbar/Tabbar.js +1 -1
  22. package/dist/components/Tabbar/tabbar/Tabbar.js.map +1 -1
  23. package/dist/index.esm.js +6 -6
  24. package/dist/index.esm.js.map +1 -1
  25. package/dist/index.js +3 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.umd.js +3 -3
  28. package/dist/index.umd.js.map +1 -1
  29. package/dist/styles/components/checkbox.scss +1 -0
  30. package/package.json +4 -1
  31. package/types/components/Button/index.d.ts +0 -1
  32. package/types/components/Captcha/index.d.ts +1 -1
  33. package/types/components/Checkbox/index.d.ts +0 -1
  34. package/types/components/CheckboxButton/index.d.ts +0 -1
  35. package/types/components/FormInput/index.d.ts +0 -1
  36. package/types/components/IDNumberInput/index.d.ts +0 -2
  37. package/types/components/Image/index.d.ts +0 -1
  38. package/types/components/LicensePlateInput/index.d.ts +0 -2
  39. package/types/components/NumberKeyboard/index.d.ts +0 -1
  40. package/types/components/Radio/index.d.ts +0 -1
  41. package/types/components/Step/index.d.ts +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/hooks/index.tsx","../src/utils/index.ts","../src/components/Button/DotJump.tsx","../src/components/Button/index.tsx","../src/components/Mask/index.tsx","../src/components/Loading/index.tsx","../src/components/NavBar/index.tsx","../src/hooks/useCustomNavbar.tsx","../src/components/Image/index.tsx","../src/components/Captcha/index.tsx","../src/components/FormInput/index.tsx","../src/components/List/index.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/PropTypes.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../src/components/DialogComponent/index.tsx","../src/components/Dialog/index.tsx","../src/components/Dialog/Alert/index.tsx","../src/components/Dialog/Confirm/index.tsx","../src/components/NumberKeyboard/index.tsx","../src/components/Toast/Toast.tsx","../src/components/DialogRef/index.tsx","../src/components/Tabbar/tabbar/TabItem.tsx","../src/components/Tabbar/tabbar/Tabbar.tsx","../src/components/Tabbar/index.tsx","../src/components/Animated/Animated.tsx","../src/components/Animated/Slide/index.tsx","../src/components/Animated/Fade/index.tsx","../src/components/Popup/index.tsx","../src/components/Picker/PickerSlot.tsx","../src/hooks/useTouch.ts","../src/components/Picker/Picker.tsx","../src/hooks/useRefs.ts","../src/hooks/useFlexGapSupport.ts","../src/components/Space/config-provider.ts","../src/components/Space/Item.tsx","../src/components/Space/index.tsx","../node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js","../src/components/ThemeProvider/index.tsx","../src/hooks/useGenerateId.tsx","../src/components/Checkbox/Group/index.tsx","../src/components/Icon/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Radio/Group/index.tsx","../src/components/Radio/index.tsx","../src/components/Step/Steps/index.tsx","../src/components/Step/index.tsx","../src/components/Badge/index.tsx","../src/components/AmountKeyboard/index.tsx","../src/components/ActionSheet/index.tsx","../src/components/LinkMan/index.tsx","../src/components/Result/index.tsx","../src/components/LicensePlateInput/Keyboard.tsx","../src/components/LicensePlateInput/index.tsx","../src/components/BankCardNumberInput/index.tsx","../src/components/IDNumberInput/index.tsx","../src/hooks/useUpdateEffect.ts","../src/hooks/useFirstMountState.ts","../src/components/Echarts/weapp/wx-canvas.ts","../src/components/Echarts/weapp/wx-touch.ts","../src/components/Echarts/index.tsx","../src/hooks/useUnMount.ts","../src/hooks/usePrevious.ts","../src/components/ActivityIndicator/index.tsx","../src/components/AmountInput/index.tsx","../src/components/BankIcon/index.tsx","../src/components/Cell/index.tsx","../src/components/CheckboxButton/index.tsx","../src/components/Collapse/index.tsx","../src/components/Countdown/index.tsx","../src/components/Notice/index.tsx","../src/components/Page/index.tsx","../src/components/PasswordInput/index.tsx","../src/components/Picker/index.tsx","../src/components/Progress/index.tsx","../src/components/ProgressCircle/index.tsx","../src/components/Rank/index.tsx","../src/components/Switch/index.tsx","../src/components/Toast/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { useEffect, useState } from \"react\";\nimport { getEnv } from \"@tarojs/taro\";\n\nexport const useTaroEnv = () => {\n const [taroEnv, setTaroEnv] = useState(\"\");\n useEffect(() => {\n setTaroEnv(getEnv());\n }, []);\n\n return taroEnv;\n};\n\nexport const useAsyncEffect = async (fn, deps) => {\n useEffect(() => {\n fn().catch(err => {\n console.log(err);\n });\n }, [deps]);\n};\n","/**\n * 禁止输入emoji表情\n * @param {string} val - 输入内容\n * @returns {boolean} - 校验结果 返回 true || false\n */\nimport React from \"react\";\n\nexport const inputRange = (val: string): string => {\n let iconRule1 =\n /[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030/gi;\n return val.replace(iconRule1, \"\");\n};\n\n// function Handler(fn) {\n// this.handler = fn;\n// this.next = null;\n// }\n\n// Handler.prototype.setNext = function setNext(h) {\n// this.next = h;\n// return h;\n// };\n\n// Handler.prototype.passRequest = function () {\n// const ret = this.handler.apply(this, arguments);\n// // 提前结束\n// if (!ret) {\n// return ret;\n// }\n\n// // 向后传递\n// if (this.next) {\n// return this.next.passRequest.apply(this.next, arguments);\n// }\n// return ret;\n// };\n\n// export class ChainHander {\n// public hander: (s: string) => boolean\n// public next\n// constructor(fn: (str: string) => boolean) {\n// this.hander = fn\n// }\n// public setNext(callback): () => boolean {\n// this.next = callback\n// return callback\n// }\n// public checkPass(...arg) {\n// const result = this.hander.apply(this, arg)\n// if (!result) {\n// return result\n// }\n\n// if (this.next != null) {\n// return this.next.checkPass.apply(this.next, arg)\n// }\n\n// return result\n// }\n// }\n\nexport const throtte = (fn: Function, delay: number = 1500) => {\n let timer: NodeJS.Timer;\n let canCall = true;\n return function (arg) {\n if (canCall) {\n canCall = false;\n fn(arg);\n }\n timer = setTimeout(() => {\n canCall = true;\n clearTimeout(timer);\n }, delay);\n };\n};\n\nexport const debounce = (fn: (...arg: any) => any, delay: number = 1500) => {\n let timer: NodeJS.Timeout | null = null;\n return function () {\n const context = this;\n const arg = arguments;\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, arg);\n }, delay);\n };\n};\n\nexport function pxTransform(size: number, designWidth = 750): string {\n if (!size) return process.env.TARO_ENV === \"h5\" ? \"0rem\" : \"0rpx\";\n const deviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2,\n };\n if (process.env.TARO_ENV === \"h5\")\n return (\n Math.ceil(\n (((parseInt(`${size}`, 10) / 40) * 640) / designWidth) * 10000\n ) /\n 10000 +\n \"rem\"\n );\n return `${size / deviceRatio[designWidth]}rpx`;\n}\n\nlet flexGapSupported: boolean | undefined;\nexport const detectFlexGapSupported = () => {\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n\n const flex = document.createElement(\"div\");\n flex.style.display = \"flex\";\n flex.style.flexDirection = \"column\";\n flex.style.rowGap = \"1px\";\n\n flex.appendChild(document.createElement(\"div\"));\n flex.appendChild(document.createElement(\"div\"));\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1;\n document.body.removeChild(flex);\n\n return flexGapSupported;\n};\n\nexport interface Option {\n keepEmpty?: boolean;\n}\n\nexport function toArray(\n children: React.ReactNode,\n option: Option = {}\n): React.ReactElement[] {\n let ret: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child: any | any[]) => {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n\n return ret;\n}\n\nfunction isFragment(object) {\n return (\n object.$$typeof === Symbol.for(\"react.element\") &&\n object.type === Symbol.for(\"react.fragment\")\n );\n}\n\n// 获取 校验银行卡\nexport const checkBankCard = (cardNo: string) => {\n if (!cardNo) return false;\n let tmp = true;\n let total = 0;\n for (let i = cardNo.length; i > 0; i--) {\n let num = +cardNo.substring(i, i - 1);\n if (((tmp = !tmp), tmp)) num = num * 2;\n const gw = num % 10;\n total += gw + (num - gw) / 10;\n }\n return total % 10 === 0;\n};\n\n/**\n * 格式化银行卡号\n *\n * @export\n * @param {string} cardNum 6217002712347888987\n * @param {boolean} mask 是否掩码\n * @returns {string} 6217 0027 1234 7888 987\n */\nexport function creditCard(cardNum: string, mask?: boolean): string {\n const newCardNum = cardNum\n .replace(/[^\\d]/g, \"\")\n .replace(/(\\d{4})(?=\\d)/g, \"$1 \");\n\n return mask ? newCardNum.replace(/\\s(\\d{4})(?!\\d)/g, \" ****\") : newCardNum;\n}\n\n/**\n * 校验身份证号是否符合规范\n *\n * @export\n * @param {string} idcard\n * @returns {boolean} true 符合 | false 不符合\n */\nexport function verifyIdcard(idcard: string): boolean {\n if (!idcard) return false;\n let regex1 =\n /^[1-9][0-7]\\d{4}((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))\\d{3}(\\d|X|x)?$/;\n /* 身份号码位数及格式检验 */\n switch (idcard.length) {\n case 15:\n if (\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0 ||\n ((parseInt(idcard.substr(6, 2)) + 1900) % 100 === 0 &&\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0)\n ) {\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n }\n // eslint-disable-next-line\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n\n case 18:\n if (regex1.test(idcard)) {\n let S =\n (parseInt(idcard.charAt(0)) + parseInt(idcard.charAt(10))) * 7 +\n (parseInt(idcard.charAt(1)) + parseInt(idcard.charAt(11))) * 9 +\n (parseInt(idcard.charAt(2)) + parseInt(idcard.charAt(12))) * 10 +\n (parseInt(idcard.charAt(3)) + parseInt(idcard.charAt(13))) * 5 +\n (parseInt(idcard.charAt(4)) + parseInt(idcard.charAt(14))) * 8 +\n (parseInt(idcard.charAt(5)) + parseInt(idcard.charAt(15))) * 4 +\n (parseInt(idcard.charAt(6)) + parseInt(idcard.charAt(16))) * 2 +\n parseInt(idcard.charAt(7)) * 1 +\n parseInt(idcard.charAt(8)) * 6 +\n parseInt(idcard.charAt(9)) * 3;\n let Y = S % 11;\n let M = \"F\";\n let JYM = \"10X98765432\";\n M = JYM.substr(Y, 1);\n /* 判断校验位 */\n if (M === idcard.charAt(17).toUpperCase()) {\n return true;\n }\n return false;\n }\n break;\n default:\n return false;\n }\n\n return false;\n}\n\nexport function tripleDefer(func: () => void): void {\n setTimeout(() => setTimeout(() => setTimeout(() => func())));\n}\n\nexport function isString(v) {\n return typeof v === \"string\";\n}\n\nexport function isFunction(v) {\n return typeof v === \"function\";\n}\n\nexport function isEqual(x, y) {\n if (x === y) {\n return true;\n } else if (\n typeof x === \"object\" &&\n x !== null &&\n typeof y === \"object\" &&\n y !== null\n ) {\n const keysX = Object.keys(x);\n const keysY = Object.keys(y);\n if (keysX.length !== keysY.length) {\n return false;\n }\n for (const key of keysX) {\n if (!isEqual(x[key], y[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nexport function pick(obj: any, keys) {\n const r = {};\n keys.forEach(key => {\n r[key] = obj[key];\n });\n return r;\n}\n\nconst idCounter = {};\nexport function uniqueId(prefix = \"$unique$\") {\n if (!idCounter[prefix]) {\n idCounter[prefix] = 0;\n }\n\n const id = ++idCounter[prefix];\n if (prefix === \"$unique$\") {\n return `${id}`;\n }\n\n return `${prefix}${id}`;\n}\n\n/**\n * 版本号比较进阶版\n * @param {string} ver1 5.19.1 前一个版本\n * @param {string} ver2 5.18.3 后一个版本\n * @returns {number} 1: 前一个版本 大于 后一个版本\n * -1: 前一个版本 小于 后一个版本\n * 0: 前一个版本 等于 后一个版本\n */\nexport function compareVersion(ver1: string, ver2: string): number {\n let v1 = ver1.split(\".\");\n let v2 = ver2.split(\".\");\n const len = Math.max(v1.length, v2.length);\n\n // 调整两个版本号位数相同\n while (v1.length < len) {\n v1.push(\"0\");\n }\n while (v2.length < len) {\n v2.push(\"0\");\n }\n\n // 循环判断每位数的大小\n for (let i = 0; i < len; i++) {\n const num1 = parseInt(v1[i]);\n const num2 = parseInt(v2[i]);\n\n if (num1 > num2) {\n //前一个版本 大于 后一个版本\n return 1;\n } else if (num1 < num2) {\n //前一个版本 小于 后一个版本\n return -1;\n }\n }\n\n return 0;\n}\n\nexport const replaceCharByIndex = (\n str: string,\n index: number,\n replace: string\n) => {\n return str.substring(0, index) + replace + str.substring(index + 1);\n};\n\n/**\n * 车牌号正则校验\n *\n * @export\n * @param {string} str 车牌号\n * @returns {boolean} false | true\n */\nexport const isLicenseNo = (str: string): boolean => {\n let xreg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\n let creg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\n if (str.length === 7) {\n return creg.test(str);\n } else if (str.length === 8) {\n return xreg.test(str);\n }\n return false;\n};\n","import React from \"react\";\n\nexport type DotJumpProps = {\n style?: React.CSSProperties;\n space?: number;\n};\n\nconst DotJump: React.FC<DotJumpProps> = props => {\n const { style, space = 20 } = props;\n return (\n <div className=\"xh-dot-loading\" style={style}>\n <svg\n height=\"1em\"\n viewBox=\"0 0 100 40\"\n style={{ verticalAlign: \"-0.125em\" }}\n >\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(-100.000000, -71.000000)\">\n <g transform=\"translate(95.000000, 71.000000)\">\n <g transform=\"translate(5.000000, 0.000000)\">\n {[0, 1, 2].map(i => (\n <rect\n key={i}\n fill=\"currentColor\"\n x={20 + i * space}\n y=\"16\"\n width=\"8\"\n height=\"8\"\n rx=\"2\"\n >\n <animate\n attributeName=\"y\"\n from=\"16\"\n to=\"16\"\n dur=\"2s\"\n begin={`${i * 0.2}s`}\n repeatCount=\"indefinite\"\n values=\"16; 6; 26; 16; 16\"\n keyTimes=\"0; 0.1; 0.3; 0.4; 1\"\n />\n </rect>\n ))}\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n );\n};\n\nexport default DotJump;\n","import React, {\n FC,\n MouseEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Button } from \"@tarojs/components\";\nimport { ButtonProps } from \"@tarojs/components/types/Button\";\nimport {\n ITouchEvent,\n TouchEventFunction,\n} from \"@tarojs/components/types/common\";\n\nimport { useTaroEnv } from \"../../hooks\";\nimport \"./index.scss\";\nimport DotJump from \"./DotJump\";\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport type XhButtonProps = {\n htmlType?: \"button\" | \"submit\" | \"reset\";\n type?: ButtonType;\n size?: ButtonSize;\n shape?: ButtonShape;\n disabled?: boolean;\n className?: string;\n styleName?: string;\n text?: string;\n preventTime?: number;\n onClick?: (e: ITouchEvent | MouseEvent) => void;\n style?: React.CSSProperties;\n loading?: boolean;\n loadingStyle?: React.CSSProperties;\n loadingSpace?: number;\n ghost?: boolean;\n /**\n * 镂空\n */\n hollow?: boolean;\n dataTrackId?: string;\n} & Omit<ButtonProps, \"type\" | \"size\">;\n\nconst XhButton: FC<XhButtonProps> = props => {\n const {\n disabled = false,\n type = \"default\",\n size = \"normal\",\n shape = \"round\",\n children,\n className,\n htmlType,\n formType,\n text,\n openType,\n lang,\n sessionFrom,\n sendMessageTitle,\n sendMessagePath,\n sendMessageImg,\n showMessageCard,\n appParameter,\n onGetUserInfo,\n onGetPhoneNumber,\n onOpenSetting,\n onError,\n onContact,\n onClick,\n preventTime = 2500,\n style,\n loading,\n loadingStyle,\n loadingSpace,\n ghost = false,\n hollow = false,\n dataTrackId = \"\",\n } = props;\n const state = useTaroEnv();\n const [preventClick, setPreventClick] = useState(false);\n const timer = useRef<NodeJS.Timeout | undefined>();\n const classObj = classNames(\n \"xh-button\",\n {\n default: type === \"default\",\n primary: type === \"primary\",\n secondary: type === \"secondary\",\n ghost: ghost,\n hollow: hollow,\n warn: type === \"warn\",\n quare: shape === \"square\",\n round: shape === \"round\",\n rectangle: shape === \"rectangle\",\n normal: size === \"normal\",\n small: size === \"mini\",\n full: size === \"full\",\n disabled: disabled,\n webutton: state === \"WEAPP\",\n },\n className\n );\n\n const handleClick: MouseEventHandler & TouchEventFunction = e => {\n state === \"WEB\" && e.nativeEvent.stopImmediatePropagation();\n e.preventDefault();\n\n if (preventClick && preventTime !== 0) {\n console.log(\"重复点击\");\n return;\n }\n if (preventTime !== 0) {\n timer.current = setTimeout(() => {\n setPreventClick(false);\n clearTimeout(timer.current);\n }, preventTime);\n }\n if (preventTime !== 0) setPreventClick(true);\n console.log(\"正常点击\");\n onClick && onClick(e);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n\n const weButton = (\n <Button\n data-track-id={dataTrackId}\n className={classObj}\n formType={formType}\n openType={openType}\n lang={lang}\n type={type as ButtonProps[\"type\"]}\n sessionFrom={sessionFrom}\n sendMessageTitle={sendMessageTitle}\n sendMessagePath={sendMessagePath}\n sendMessageImg={sendMessageImg}\n showMessageCard={showMessageCard}\n appParameter={appParameter}\n onGetUserInfo={onGetUserInfo}\n onGetPhoneNumber={onGetPhoneNumber}\n onOpenSetting={onOpenSetting}\n onError={onError}\n onContact={onContact}\n onClick={handleClick}\n disabled={disabled}\n style={style}\n loading={loading}\n >\n {children}\n </Button>\n );\n\n if (state !== \"WEB\") {\n return weButton;\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n <button\n data-track-id={dataTrackId}\n className={classObj}\n disabled={disabled}\n type={htmlType}\n onClick={disabled ? undefined : handleClick}\n style={style}\n >\n {children || text}\n {loading && <DotJump style={loadingStyle} space={loadingSpace} />}\n </button>\n );\n};\n\nexport default XhButton;\n","import React, { FC, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type MaskProps = {\n closeOnClickMask?: boolean;\n onClick?: (e: MouseEvent) => void;\n mask?: \"transparent\" | \"normal\";\n} & XHComponentCommonProps;\n\nconst Mask: FC<MaskProps> = props => {\n const { closeOnClickMask = true, onClick, mask } = props;\n\n const cls = classNames(\"xh-mask\", {\n \"xh-mask-normal\": mask === \"normal\",\n \"xh-mask-transparent\": mask === \"transparent\",\n });\n\n function handleClick(e: any): void {\n closeOnClickMask && onClick && onClick(e);\n }\n\n return <View className={cls} onClick={handleClick} />;\n};\n\nexport default Mask;\n","import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport Mask, { MaskProps } from \"../Mask\";\n// import Activityindicator from \"../ActivityIndicator\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n mask?: MaskProps[\"mask\"];\n color?: string;\n tip?: string | ReactNode;\n size?: number;\n} & XHComponentCommonProps;\n\nconst Loading: FC<LoadingProps> = ({\n mask,\n className,\n tip = \"加载中\",\n // color = \"#FFF\",\n // size = 60,\n}) => {\n const cls = classNames(\"xh-loading\", className);\n\n return (\n <View className={cls}>\n <Mask mask={mask} />\n <View className={classNames(\"xh-loading-main\", { hasTip: tip })}>\n {/* <Activityindicator\n size={size}\n style={{\n \"--loading-border-color\": color,\n \"--loading-border-width\": \"3px\",\n }}\n /> */}\n <View className=\"xh-loading-main-gif\"></View>\n {/* <Image src={require('../../assets/images/loading.gif')} className=\"xh-loading-main-gif\" /> */}\n\n {/* <View className=\"xh-loading-main-spinner\">\n {[...Array(12).keys()].map((index) => (\n <View\n className={classNames(\n \"xh-loading-main-spinner-circle\",\n `is-circle${index + 1}`\n )}\n key={`spinner${index}`}\n >\n <View\n className=\"dot-rotate\"\n style={{ backgroundColor: color }}\n ></View>\n </View>\n ))}\n </View> */}\n {tip && <View className=\"xh-loading-main-tip\">{tip}</View>}\n </View>\n </View>\n );\n};\n\nexport default Loading;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { navigateBack, getSystemInfoSync } from \"@tarojs/taro\";\nimport useCustomNavBar from \"@/hooks/useCustomNavbar\";\n\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type NavBarProps = {\n title: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n navBarBorder?: boolean;\n onBack?: () => void;\n} & XHComponentCommonProps;\n\n// 小程序中判断设备系统\nconst isMiniProgramIos =\n process.env.TARO_ENV !== \"h5\"\n ? getSystemInfoSync().platform === \"ios\"\n : false;\nconst NavBar: FC<NavBarProps> = props => {\n const {\n leftIcon = true,\n rightIcon = false,\n title,\n onBack,\n navBarBorder = false,\n className,\n } = props;\n\n const { navBarHeight, statusBar, buttonRight } = useCustomNavBar();\n\n function goBackPage() {\n onBack ? onBack() : navigateBack();\n }\n\n const wrapStyle =\n process.env.TARO_ENV === \"h5\"\n ? {}\n : {\n height: `${navBarHeight}px`,\n paddingTop: `${statusBar}px`,\n };\n\n const backStyle =\n process.env.TARO_ENV === \"h5\"\n ? {}\n : {\n left: `${buttonRight}px`,\n };\n\n const NavBarCls = classNames(\"xh-nav-bar\", className, {\n h5: process.env.TARO_ENV === \"h5\",\n border: navBarBorder,\n });\n\n return (\n <View className={NavBarCls} style={wrapStyle}>\n <View\n className={classNames(\"xh-nav-bar-back\", { hidden: !leftIcon })}\n style={backStyle}\n onClick={goBackPage}\n ></View>\n <Text\n className={classNames(\"xh-nav-bar-title\", {\n isAndroid: !isMiniProgramIos,\n })}\n >\n {title}\n </Text>\n {process.env.TARO_ENV === \"h5\" && rightIcon && (\n <View className=\"xh-nav-bar-right\">{rightIcon}</View>\n )}\n <View />\n </View>\n );\n};\n\nexport default NavBar;\n","import { useEffect, useState } from \"react\";\nimport {\n getMenuButtonBoundingClientRect,\n getSystemInfoSync,\n} from \"@tarojs/taro\";\n\nconst useCustomNavBar = () => {\n const [navInfo, setNavinfo] = useState({\n navBarHeight: 0,\n statusBar: 0,\n buttonRight: 0,\n });\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\") {\n const { top, height, right } = getMenuButtonBoundingClientRect();\n\n const { statusBarHeight = 0, screenWidth } = getSystemInfoSync();\n\n const navBarHeight = height + (top - statusBarHeight) * 2;\n\n setNavinfo({\n navBarHeight,\n statusBar: statusBarHeight,\n buttonRight: screenWidth - right,\n });\n }\n }, []);\n\n return navInfo;\n};\n\nexport default useCustomNavBar;\n","import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { Image } from \"@tarojs/components\";\nimport { getImageInfo } from \"@tarojs/taro\";\nimport classNames from \"classnames\";\n\nimport { pxTransform } from \"../../utils/index\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type ImageProps = {\n width?: number;\n height?: number;\n src: string;\n alt?: string;\n style?: React.CSSProperties;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst XHImage: FC<ImageProps> = props => {\n const { width = 0, height = 0, src, className, dataTrackId, ...rest } = props;\n const [defaultSize, setDefaultSize] = useState<{\n width?: number;\n height?: number;\n }>({});\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\" && !className) {\n getImageInfo({\n src,\n success: res => {\n if (res.errMsg === \"getImageInfo:ok\") {\n console.log(res);\n setDefaultSize({ width: res.width, height: res.height });\n }\n },\n });\n }\n }, []);\n\n const size = useMemo(() => {\n let computedSize: { width?: string | number; height?: string | number } =\n defaultSize || {};\n if (width) {\n computedSize.width = `${pxTransform(width)}`;\n }\n if (height) {\n computedSize.height = `${pxTransform(height)}`;\n }\n\n return computedSize;\n }, [width, height, defaultSize]);\n\n const imgCls = classNames(\"xh-image\", className);\n\n return process.env.TARO_ENV !== \"h5\" ? (\n <Image src={src} style={{ ...size, ...rest }} className={imgCls} />\n ) : (\n <img\n src={src}\n style={size}\n className={imgCls}\n data-track-id={dataTrackId}\n {...rest}\n />\n );\n};\n\nexport default XHImage;\n","import React, {\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n forwardRef,\n Ref,\n useMemo,\n} from \"react\";\nimport classnames from \"classnames\";\n\nimport Button, { XhButtonProps } from \"../Button\";\n\nimport \"./index.scss\";\n\nexport type refMe = {\n reset: () => void;\n begin: () => void;\n beginning: boolean;\n};\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport interface CaptchaProps extends XhButtonProps {\n timeout?: number;\n className?: string;\n styleName?: string;\n text?: string;\n onClick: () => Promise<boolean>;\n ref: Ref<refMe>;\n timeingTemp?: string;\n ingText?: string;\n onEnd?: () => void;\n}\n\nexport type CaptchaRef = refMe;\n\nconst CountdownButton = forwardRef<\n refMe,\n Omit<CaptchaProps, \"businessId\" | \"onGetRealnameAuthInfo\" | \"onLaunchapp\">\n>((props, fromRef) => {\n const {\n timeout = 59,\n text = \"获取验证码\",\n onClick,\n className,\n ingText = \"s重新获取\",\n onEnd,\n shape = \"square\",\n ...rest\n } = props;\n const intervalRef = useRef<NodeJS.Timeout | null>();\n const [time, setTime] = useState(0);\n const [disabled, setDisabled] = useState(false);\n\n const reset = (): void => {\n intervalRef.current && clearInterval(intervalRef.current);\n setTime(0);\n setDisabled(false);\n };\n\n useImperativeHandle(\n fromRef,\n () => ({\n reset,\n begin: counter,\n beginning: disabled,\n }),\n [disabled]\n );\n\n useEffect(() => {\n intervalRef.current && clearInterval(intervalRef.current);\n return () => {\n intervalRef.current && clearInterval(intervalRef.current);\n };\n }, []);\n\n // 倒计时\n const buttonText = useMemo((): string | number => {\n if (time) {\n return `${time}${ingText}`;\n }\n return text;\n }, [time, text, ingText]);\n\n const counter = () => {\n const now = Date.now();\n let nowStamp = now;\n\n setDisabled(true);\n\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n }\n\n setTime(timeout);\n\n intervalRef.current = setInterval(() => {\n nowStamp = Date.now();\n const overTimeStamp = now + timeout * 1000 + 100;\n const leftTime = Math.max(\n Math.floor((overTimeStamp - nowStamp) / 1000),\n 0\n );\n\n if (leftTime === 0) {\n intervalRef.current && clearInterval(intervalRef.current);\n setDisabled(false);\n onEnd && onEnd();\n }\n\n setTime(leftTime);\n }, 1000);\n };\n\n const handleClick = (): any => {\n const promise = onClick();\n if (promise && promise.then) {\n promise.then(counter).catch(() => {\n console.log(\"callback reject....\");\n setDisabled(false);\n });\n }\n };\n\n return (\n <Button\n {...props}\n className={classnames(\"xh-captcha\", className)}\n disabled={disabled}\n onClick={handleClick}\n type=\"secondary\"\n shape={shape}\n {...rest}\n >\n {buttonText}\n </Button>\n );\n});\nexport default CountdownButton;\n","import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n className?: string;\n disabled?: boolean;\n align?: \"left\" | \"right\"; // 文本对齐方式\n dataTrackId?: string;\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n className,\n disabled = false,\n align = \"left\",\n ...rest\n } = props;\n\n const password = type === \"password\";\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\n \"xh-form-input\",\n {\n column: direction === \"column\",\n border,\n padding,\n },\n className\n );\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n password={password}\n ref={inputRef}\n className={classNames(\n \"xh-form-input-main-center-native\",\n align\n )}\n maxlength={maxlength}\n name={name}\n disabled={disabled}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className={classNames(\"xh-form-input-main-center-native\", align)}\n maxLength={maxlength}\n name={name}\n disabled={disabled}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n data-track-id={rest?.dataTrackId}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHListProps = {\n title?: string;\n description?: string | ReactNode;\n icon?: ReactNode;\n extra?: string | ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n condensed?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: string;\n extraColor?: string;\n ellipsis?: boolean;\n padding?: boolean;\n} & XHComponentCommonProps;\n\nconst XHList: FC<XHListProps> = props => {\n const {\n title = \"\",\n description = \"\",\n icon,\n extra = \"\",\n extraIcon = \"\",\n arrow,\n border = true,\n onClick,\n className,\n outline = true,\n condensed = false,\n descriptionColor = \"\",\n extraColor = \"\",\n ellipsis = true,\n padding = false,\n } = props;\n\n const listcls = classNames(\n \"xh-list\",\n { border },\n { outline },\n { condensed },\n { padding },\n className\n );\n\n const mainCls = classNames(\"xh-list-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={listcls} onClick={handleClick}>\n {icon && <View className=\"xh-list-icon\">{icon}</View>}\n <View className={mainCls}>\n {title && <Text className=\"xh-list-main-title\">{title}</Text>}\n <Text\n className=\"xh-list-main-description\"\n style={{ color: descriptionColor }}\n >\n {description}\n </Text>\n </View>\n <View className=\"xh-list-extra\">\n <View className=\"xh-list-extra-info\" style={{ color: extraColor }}>\n {extra}\n </View>\n <View className=\"xh-list-extra-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-list-extra-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHList;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: string | ReactNode;\n visible: boolean;\n} & XHComponentCommonProps;\n\nexport type DialogRef = {\n close: () => void;\n};\nconst DialogCom = forwardRef<DialogRef, DialogProps>((props, fromRef) => {\n const { header, content, footer, className = \"\", visible } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close: () => {\n console.log(\"closes\");\n setSelfVisible(false);\n },\n }));\n\n useEffect(() => {\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog\", className, {\n microApp: process.env.TARO_ENV !== \"h5\",\n });\n\n const dialogContent = classNames(\"xh-dialog-content-content\", {\n headless: !header,\n });\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition\n in={selfVisible}\n timeout={200}\n classNames=\"scale\"\n unmountOnExit\n >\n <View className=\"xh-dialog-content\">\n {header && <View className=\"xh-dialog-content-header\">{header}</View>}\n <View className={dialogContent}>{content}</View>\n <View className=\"xh-dialog-content-footer\">{footer}</View>\n </View>\n </CSSTransition>\n </View>\n );\n\n return ReactDOM.createPortal(DialogMain, document.body);\n});\n\nexport default DialogCom;\n","import { ForwardRefExoticComponent, RefObject } from \"react\";\nimport DialogComponent, { DialogRef, DialogProps } from \"../DialogComponent\";\nimport Alert, { AlertProps } from \"./Alert\";\nimport Confirm, { ConfirmProps, ConfirmPropsResult } from \"./Confirm\";\n\nexport interface DialogComponent<P = {}> extends ForwardRefExoticComponent<P> {\n ref: RefObject<DialogRef>;\n alert: (options: AlertProps) => Promise<void>;\n confirm: (options: ConfirmProps) => Promise<ConfirmPropsResult>;\n}\n\nconst Dialog = DialogComponent as DialogComponent<DialogProps>;\nDialog.alert = Alert;\nDialog.confirm = Confirm;\n\nexport default Dialog;\n","import React, { createRef, ReactNode } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport Dialog, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../../../src/components/Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type AlertProps = {\n title?: string | ReactNode;\n content?: string | ReactNode;\n confirmText?: string | ReactNode;\n} & {\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: () => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nconst Alert = (props: AlertProps): Promise<void> => {\n const { title = \"\", content, confirmText = \"知道了\", ...rest } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-alert-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve();\n }}\n >\n {confirmText}\n </Button>\n );\n ReactDOM.render(\n <Dialog\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title: title as string,\n content: content as string,\n showCancel: false,\n confirmColor: \"#fe5e00\",\n confirmText: confirmText as string,\n ...rest,\n }).then(() => resolve());\n }\n });\n};\n\nexport default Alert;\n","import React, { createRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport DialogComponent, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type ConfirmProps = {\n title?: string;\n header?: string;\n content: string;\n cancelText?: string;\n confirmText?: string;\n} & {\n /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n cancelColor?: string;\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: (result: ConfirmPropsResult) => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nexport type ConfirmPropsResult = {\n /** 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭) */\n cancel: boolean;\n /** 为 true 时,表示用户点击了确定按钮 */\n confirm: boolean;\n /** 调用结果 */\n errMsg: string;\n};\nconst Comfirm = (props: ConfirmProps): Promise<ConfirmPropsResult> => {\n const {\n title = \"\",\n content,\n confirmText = \"确定\",\n cancelText = \"取消\",\n ...rest\n } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <div className=\"xh-confirm-footer\">\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-cancel-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: false, cancel: true });\n }}\n >\n {cancelText}\n </Button>\n <Button\n ghost\n type=\"primary\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-confirm-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: true, cancel: false });\n }}\n >\n {confirmText}\n </Button>\n </div>\n );\n ReactDOM.render(\n <DialogComponent\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title,\n content,\n confirmColor: \"#fe5e00\",\n cancelText,\n cancelColor: \"#666\",\n confirmText,\n ...rest,\n }).then(resolve);\n }\n });\n};\n\nexport default Comfirm;\n","import React, { FC, useState, useEffect, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n type?: NumberKeyboardType;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n title?: string;\n closeText?: string;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst NumberKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n showClose = true,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n title = \"安全键盘\",\n closeText = \"收起\",\n className,\n dataTrackId,\n } = props;\n const [input, setInput] = useState(value);\n const keys = getKeys();\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n function handleKeyPress(e, { type, value }: IKey): void {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (type === \"none\") return;\n\n let newInput = input;\n\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.length < maxLength) {\n newInput = input + value;\n }\n\n setInput(newInput);\n\n onChange && onChange(newInput);\n }\n\n function getKeys(): IKey[] {\n const keys: IKey[] = [];\n\n for (let i = 1; i <= 9; i++) {\n keys.push({ text: i, value: i, type: \"number\" });\n }\n\n keys.push(\n { text: \"\", value: \"\", type: \"none\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" }\n );\n\n return keys;\n }\n const keyboardcls = classNames(\"xh-number-keyboard\", className);\n\n return (\n <CSSTransition\n classNames=\"slide-up\"\n in={show}\n unmountOnExit\n timeout={200}\n data-track-id={dataTrackId}\n >\n <View className={keyboardcls}>\n <View className=\"xh-number-keyboard-header\">\n <View className=\"xh-number-keyboard-header-title\">{title}</View>\n {showClose && (\n <View\n className=\"xh-number-keyboard-header-close\"\n onClick={handleClose}\n >\n {closeText}\n </View>\n )}\n </View>\n <View className=\"xh-number-keyboard-body\">\n {keys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-number-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default NumberKeyboard;\n","import React, { FC, useMemo } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport Image from \"../Image\";\n\nimport \"./index.scss\";\n\nexport type ToastProps = {\n title: string;\n duration?: number;\n /** 图标\n * 可选值:\n * - 'success': 显示成功图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'error': 显示失败图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'loading': 显示加载图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'none': 不显示图标,此时 title 文本最多可显示两行 */\n icon?: \"success\" | \"error\" | \"loading\" | \"none\";\n /** 自定义图标的本地路径,image 的优先级高于 icon */\n image?: string;\n /** 是否显示透明蒙层,防止触摸穿透 */\n mask?: boolean;\n} & XHComponentCommonProps;\n\nconst ToastCom: FC<ToastProps> = props => {\n const { title, className = \"\", icon = \"none\", image = \"\" } = props;\n\n const toastcls = classNames(\"xh-toast\", className);\n\n // icon-success_toast\n // icon-alert_toast\n // icon-failure_toast\n // icon-loading_toast\n\n const classConfig = {\n success: \"icon-success_toast\",\n error: \"icon-failure_toast\",\n loading: \"icon-loading_toast\",\n none: \"\",\n };\n const cls = classNames(\"iconfont\", classConfig[icon]);\n const showIcon = useMemo(() => {\n if (image) return <Image src={image} width={24} height={24} />;\n if (icon) return <span className={cls}></span>;\n }, [icon, image]);\n\n const DialogMain = (\n <View className={toastcls}>\n <Mask mask=\"transparent\" />\n <CSSTransition in timeout={200} classNames=\"face\" unmountOnExit>\n <View className=\"xh-toast-content\">\n {showIcon}\n <View>{title}</View>\n </View>\n </CSSTransition>\n </View>\n );\n\n return ReactDOM.createPortal(DialogMain, document.body);\n};\n\nexport default ToastCom;\n","import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: ReactNode;\n cancelText?: string;\n confirmText?: string;\n showCancel?: boolean;\n visible: boolean;\n onConfirm?: () => void;\n onCancel?: () => void;\n onClose?: () => void;\n tranparent?: boolean;\n portrait?: boolean;\n fancy?: boolean;\n} & XHComponentCommonProps;\n\nexport type IDialogRef = {\n close: () => void;\n open: () => void;\n};\nconst DialogCom = forwardRef<IDialogRef, DialogProps>((props, fromRef) => {\n const {\n header,\n content,\n className = \"\",\n visible,\n showCancel = true,\n confirmText = \"确定\",\n cancelText = \"取消\",\n footer = false,\n onConfirm,\n onCancel,\n onClose,\n portrait = false,\n tranparent = false,\n fancy = false,\n } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close,\n open,\n }));\n\n const close = () => {\n onClose && onClose();\n setSelfVisible(false);\n };\n\n const open = () => {\n setSelfVisible(true);\n };\n\n const handleConfirm = () => {\n onConfirm && onConfirm();\n // close();\n };\n const handleCancel = () => {\n onCancel && onCancel();\n close();\n };\n\n useEffect(() => {\n if (!visible) {\n onClose && onClose();\n }\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog-ref\", className, {\n show: selfVisible,\n });\n\n const dialogFooter = (\n <View\n className={classNames(\"xh-dialog-ref-content-footer-buttons\", {\n portrait,\n fancy,\n })}\n >\n {showCancel && (\n <Button\n ghost\n size=\"full\"\n shape=\"rectangle\"\n preventTime={0}\n onClick={handleCancel}\n className=\"xh-dialog-ref-content-footer-buttons-cancel\"\n >\n {cancelText}\n </Button>\n )}\n <Button\n type=\"primary\"\n shape=\"rectangle\"\n size=\"full\"\n ghost={!fancy}\n className=\"xh-dialog-ref-content-footer-buttons-confirm\"\n onClick={handleConfirm}\n preventTime={0}\n >\n {confirmText}\n </Button>\n </View>\n );\n\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition in={selfVisible} timeout={200} classNames=\"scale\">\n <View className={classNames(\"xh-dialog-ref-content\", { tranparent })}>\n {header && (\n <View className=\"xh-dialog-ref-content-header\">{header}</View>\n )}\n <View className=\"xh-dialog-ref-content-content\">{content}</View>\n {footer || (\n <View className=\"xh-dialog-ref-content-footer\">{dialogFooter}</View>\n )}\n </View>\n </CSSTransition>\n </View>\n );\n return DialogMain;\n});\n\nexport default DialogCom;\n","import React, { PropsWithChildren, ReactNode } from \"react\";\n\nexport interface TabItemProps extends PropsWithChildren<{}> {\n title?: string;\n TabItemComponent?: ReactNode;\n children?: ReactNode;\n}\n\nconst TabItem = (props: TabItemProps) => {\n const { children, title, TabItemComponent } = props;\n\n return (\n <div className=\"xh-tabbar-item\">\n {TabItemComponent ? TabItemComponent : title}\n {children}\n </div>\n );\n};\n\nexport default TabItem;\n","import React, { FC, ReactElement, useEffect, useState, ReactNode } from \"react\";\nimport { createSelectorQuery } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Item from \"./TabItem\";\n\n/**\n * Tab切换\n *\n * @param children //子组件\n * @param animated //是否开启转场动画\n * @param selectIndex //默认选中第几个\n * @param lineColor //下划线颜色\n * @param titleActiveColor //标题选中态颜色\n * @param titleInctiveColor //标题默认态颜色\n * @param onChange //切换回调事件\n * @param content //item公共节点\n *\n */\n\nexport interface TabProps {\n children: ReactElement[];\n animated?: boolean;\n // initIndex?: number;\n lineColor?: string;\n titleActiveColor?: string;\n titleInctiveColor?: string;\n onChange?: (index: number) => void;\n content?: string | ReactNode;\n selectIndex: number;\n}\n\nexport interface TabsComponent<P = {}> extends FC<P> {\n Item: typeof Item;\n}\n\nconst XHTabs: TabsComponent<TabProps> = props => {\n const {\n children = [],\n animated = false,\n // initIndex = 0,\n lineColor = \"#F6AB00\",\n titleActiveColor = \"#333\",\n titleInctiveColor = \"#999\",\n onChange,\n content,\n selectIndex = 0,\n } = props;\n\n // const [selectIndex, setSelectIndex] = useState(initIndex);\n const [tabWdith, setTabWdith] = useState(0);\n const [tabContentHeight, setTabContentHeight] = useState(0);\n const [tabSlotHeight, setTabSlotHeight] = useState(0);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n const query = createSelectorQuery();\n query.selectAll(\".xh-tabbar-nav-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-slot\").boundingClientRect();\n\n query.exec(res => {\n if (!res[0][selectIndex]) return;\n const width: number = res[0][selectIndex].width;\n setTabWdith(width);\n\n if (!res[1][selectIndex]) return;\n setTabContentHeight(res[1][selectIndex].height);\n\n if (!res[2][selectIndex]) return;\n setTabSlotHeight(res[2][selectIndex].height);\n clearTimeout(timer);\n });\n }, 300);\n console.log(children.length);\n }, [selectIndex, children]);\n\n const handleClick = (index: number): void => {\n // setSelectIndex(index);\n const query = createSelectorQuery();\n query.selectAll(\".xh-tabbar-content-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-slot\").boundingClientRect();\n query.exec(res => {\n if (!res[0][index]) return;\n const height: number = res[0][index].height;\n setTabContentHeight(height);\n if (!res[1][index]) return;\n setTabSlotHeight(res[1][index].height);\n });\n\n onChange && onChange(index);\n };\n\n function renderLine(): ReactElement | null {\n const left: number = tabWdith / 2 + selectIndex * tabWdith;\n return (\n <div\n className={classNames(\"xh-tabbar-nav-line\", {\n \"xh-tabbar-nav-line-active\": animated,\n })}\n style={{\n background: `${lineColor}`,\n transform: `translateX(${left}px) translate(-50%, -50%)`,\n WebkitTransform: `translateX(${left}px) translate(-50%, -50%)`,\n }}\n />\n );\n }\n\n return (\n <View className=\"xh-tabbar\">\n <View className=\"xh-tabbar-nav\">\n {children.map((child, index) => (\n <View\n key={index}\n className=\"xh-tabbar-nav-item\"\n style={{\n color:\n selectIndex === index ? titleActiveColor : titleInctiveColor,\n }}\n onClick={() => handleClick(index)}\n >\n {child.props.TabItemComponent\n ? child.props.TabItemComponent\n : child.props.title}\n </View>\n ))}\n {renderLine()}\n </View>\n <View\n className=\"xh-tabbar-content\"\n style={{\n width: `${children.length * 100}%`,\n height:\n tabContentHeight + tabSlotHeight\n ? `${tabContentHeight + tabSlotHeight}px`\n : \"auto\",\n }}\n >\n {content && <View className=\"xh-tabbar-content-slot\">{content}</View>}\n {children.map((child, index) => (\n <View\n key={index}\n className={classNames(\"xh-tabbar-content-item\", {\n \"xh-tabbar-content-item-dispaly\":\n selectIndex !== index && !animated,\n \"xh-tabbar-content-item-active\": selectIndex === index,\n })}\n style={{\n transform: animated ? `translateX(-${selectIndex * 100}%)` : \"\",\n }}\n >\n {child.props.children}\n </View>\n ))}\n </View>\n </View>\n );\n};\n\nXHTabs.Item = Item;\n\nexport default XHTabs;\nexport const TabItem = Item;\n","import TabBarComponent, { TabProps } from \"./tabbar/Tabbar\";\nimport TabBarItem from \"./tabbar/TabItem\";\n\nimport \"./index.scss\";\n\nexport interface TabBarComponent<P = {}> extends React.FC<P> {\n Item: typeof TabBarItem;\n}\n\nconst TabBar = TabBarComponent as TabBarComponent<TabProps>;\n\nTabBar.Item = TabBarItem;\n\nexport default TabBar;\n","import React, { FC, PropsWithChildren } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport \"./index.scss\";\n\nexport interface AnimatedProps extends PropsWithChildren<{}> {\n in: boolean;\n appear?: boolean;\n timeout?: number;\n name?: string;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Animated: FC<AnimatedProps> = props => {\n const {\n children,\n timeout = 300,\n in: inProp,\n name,\n unmountOnExit = true,\n ...rest\n } = props;\n\n return (\n <CSSTransition\n unmountOnExit={unmountOnExit}\n classNames={name}\n in={inProp}\n timeout={timeout}\n {...rest}\n >\n {children}\n </CSSTransition>\n );\n};\n\nexport default Animated;\n","import React, { PropsWithChildren, FC } from \"react\";\nimport Animated from \"../Animated\";\n\nexport type SlideDirection = \"up\" | \"down\" | \"left\" | \"right\";\n\nexport interface SlideProps extends PropsWithChildren<{}> {\n in: boolean;\n timeout?: number;\n direction?: SlideDirection;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Slide: FC<SlideProps> = props => {\n const { children, in: inProp, timeout, direction = \"up\", ...rest } = props;\n\n return (\n <Animated\n appear\n in={inProp}\n name={`slide-${direction}`}\n timeout={timeout}\n {...rest}\n >\n {children}\n </Animated>\n );\n};\n\nexport default Slide;\n","import React, { PropsWithChildren, FC } from \"react\";\nimport Animated from \"../Animated\";\n\nexport interface FadeProps extends PropsWithChildren<{}> {\n in: boolean;\n timeout?: number;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Fade: FC<FadeProps> = props => {\n const { children, in: inProp, timeout, onExited, ...rest } = props;\n\n return (\n <Animated\n in={inProp}\n name=\"fade\"\n timeout={timeout}\n onExited={onExited}\n {...rest}\n >\n {children}\n </Animated>\n );\n};\n\nexport default Fade;\n","import React, { FC, PropsWithChildren, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport { Fade, Slide } from \"../Animated\";\nimport { SlideDirection } from \"../Animated/Slide\";\nimport Mask from \"../Mask\";\n\nimport \"./index.scss\";\n\nexport type PopupPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport interface PopupProps extends PropsWithChildren<{}> {\n visible: boolean;\n position?: PopupPosition;\n className?: string;\n onClose?: () => void;\n}\n\nconst positionMap = {\n top: \"down\",\n bottom: \"up\",\n left: \"right\",\n right: \"left\",\n};\n\nconst Popup: FC<PopupProps> = props => {\n const { visible, position = \"bottom\", children, onClose, className } = props;\n const direction = positionMap[position] as SlideDirection;\n const cls = classNames(\"xh-popup-content\", {\n \"xh-popup-content-left\": position === \"left\",\n \"xh-popup-content-right\": position === \"right\",\n \"xh-popup-content-top\": position === \"top\",\n \"xh-popup-content-bottom\": position === \"bottom\",\n });\n\n const preventSTH = (e: TouchEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n useEffect(() => {\n if (visible) {\n document.body.style.touchAction = \"none\";\n document.body.addEventListener(\"touchmove\", preventSTH);\n document.body.style.overflowY = \"hidden\";\n } else {\n document.body.style.touchAction = \"\";\n document.body.removeEventListener(\"touchmove\", preventSTH);\n document.body.style.overflowY = \"auto\";\n }\n\n return () => {\n document.body.style.touchAction = \"\";\n document.body.style.overflowY = \"auto\";\n document.body.removeEventListener(\"touchmove\", preventSTH);\n };\n }, [visible]);\n\n function handleClickOnMask(): void {\n onClose && onClose();\n }\n if (process.env.TARO_ENV !== \"h5\") {\n const minicls = classNames(\n \"xh-popup\",\n className,\n visible ? \"visible\" : \"hidden\"\n );\n return (\n <View className={minicls}>\n <Mask onClick={handleClickOnMask} />\n <View className={cls}>{children}</View>\n </View>\n );\n }\n return ReactDOM.createPortal(\n <Fade in={visible}>\n <div className={classNames(\"xh-popup\", className)}>\n <Mask onClick={handleClickOnMask} />\n <Slide direction={direction} in={visible}>\n <div className={cls}>{children}</div>\n </Slide>\n </div>\n </Fade>,\n document.body\n );\n};\n\nexport default Popup;\n","import React, {\n useState,\n useEffect,\n useRef,\n ForwardRefRenderFunction,\n useImperativeHandle,\n MouseEventHandler,\n} from \"react\";\nimport { View } from \"@tarojs/components\";\nimport { useTouch } from \"../../hooks/useTouch\";\nimport \"./index.scss\";\n\ninterface PickerObjectValue {\n text: string | number;\n value: string | number;\n [key: string]: any;\n}\nexport type PickerValue = string | PickerObjectValue;\n\ninterface PickerSlotProps<T extends PickerValue = PickerObjectValue> {\n defaultValue?: string | number;\n data: T[];\n mode?: \"normal\" | \"3D\";\n swipeDuration?: number | string;\n onConfirm?: (value: T, index: number) => void;\n onCancel?: MouseEventHandler;\n onClose?: MouseEventHandler;\n keyIndex: number;\n visible: boolean;\n}\n\nconst InternalPickerSlot: ForwardRefRenderFunction<\n { stopMomentum: () => void; moving: boolean },\n Partial<PickerSlotProps>\n> = (props, ref) => {\n const {\n keyIndex = 0,\n defaultValue,\n data = [],\n mode = \"normal\",\n swipeDuration = 1000,\n visible = false,\n onConfirm,\n } = props;\n\n const touch = useTouch();\n\n const DEFAULT_DURATION = 200;\n // 触发惯性滑动条件:\n // 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_TIME` 且 move\n // 距离大于 `MOMENTUM_DISTANCE` 时,执行惯性滑动\n const INERTIA_TIME = 300;\n const INERTIA_DISTANCE = 15;\n const [currIndex, setCurrIndex] = useState(1);\n const lineSpacing = useRef(48);\n\n const [touchTime, setTouchTime] = useState(0);\n const [touchDeg, setTouchDeg] = useState(\"0deg\");\n const rotation = 22;\n const moving = useRef(false);\n let timer: number | undefined;\n\n const listbox = useRef<any>(null);\n const rollerRef = useRef<any>(null);\n const pickerSlotRef = useRef<any>(null);\n\n const [startTime, setStartTime] = useState(0);\n const [startY, setStartY] = useState(0);\n\n const transformY = useRef(0);\n const [scrollDistance, setScrollDistance] = useState(0);\n\n const isHidden = (index: number) => {\n if (index >= currIndex + 8 || index <= currIndex - 8) {\n return true;\n }\n return false;\n };\n\n const setTransform = (\n translateY = 0,\n type: string,\n time = DEFAULT_DURATION,\n deg: string\n ) => {\n let nTime = time;\n if (type !== \"end\") {\n nTime = 0;\n }\n\n setTouchTime(nTime);\n setTouchDeg(deg);\n\n setScrollDistance(translateY);\n };\n\n const setMove = (move: number, type?: string, time?: number) => {\n let updateMove = move + transformY.current;\n if (type === \"end\") {\n // 限定滚动距离\n if (updateMove > 0) {\n updateMove = 0;\n }\n if (updateMove < -(data.length - 1) * lineSpacing.current) {\n updateMove = -(data.length - 1) * lineSpacing.current;\n }\n\n // 设置滚动距离为lineSpacing的倍数值\n const endMove =\n Math.round(updateMove / lineSpacing.current) * lineSpacing.current;\n const deg = `${\n (Math.abs(Math.round(endMove / lineSpacing.current)) + 1) * rotation\n }deg`;\n\n setTransform(endMove, type, time, deg);\n\n setCurrIndex(Math.abs(Math.round(endMove / lineSpacing.current)) + 1);\n } else {\n let deg = 0;\n const currentDeg = (-updateMove / lineSpacing.current + 1) * rotation;\n\n // picker 滚动的最大角度\n const maxDeg = (data.length + 1) * rotation;\n const minDeg = 0;\n\n deg = Math.min(Math.max(currentDeg, minDeg), maxDeg);\n\n if (minDeg < deg && deg < maxDeg) {\n setTransform(updateMove, \"\", undefined, `${deg}deg`);\n setCurrIndex(\n Math.abs(Math.round(updateMove / lineSpacing.current)) + 1\n );\n }\n }\n };\n\n const setChooseValue = (move: number) => {\n const index = Math.round(-move / lineSpacing.current);\n onConfirm && onConfirm(data[index], keyIndex);\n };\n\n // 开始滚动\n const touchStart = event => {\n touch.start(event);\n setStartY(touch.deltaY);\n setStartTime(Date.now());\n transformY.current = scrollDistance;\n };\n\n const touchMove = event => {\n touch.move(event);\n if (touch.isVertical()) {\n moving.current = true;\n preventDefault(event, true);\n }\n const move = touch.deltaY - startY;\n setMove(move);\n };\n\n const touchEnd = () => {\n if (!moving.current) return;\n const move = touch.deltaY - startY;\n const moveTime = Date.now() - startTime;\n // 区分是否为惯性滚动\n if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {\n // 惯性滚动\n const distance = momentum(move, moveTime);\n setMove(distance, \"end\", +swipeDuration);\n } else {\n setMove(move, \"end\");\n }\n\n setTimeout(() => {\n touch.reset();\n }, 0);\n };\n\n // 惯性滚动 距离\n const momentum = (distance: number, duration: number) => {\n let nDistance = distance;\n // 惯性滚动的速度\n const speed = Math.abs(nDistance / duration);\n // 惯性滚动的距离\n nDistance = (speed / 0.003) * (nDistance < 0 ? -1 : 1);\n return nDistance;\n };\n\n const modifyStatus = (type?: boolean, val?: string | number) => {\n const value = val || defaultValue;\n let index = -1;\n if (value) {\n data.forEach((item, idx) => {\n if (typeof item === \"object\" ? item.value === value : item === value) {\n index = idx;\n return true;\n }\n return false;\n });\n } else {\n data.forEach((item, i) => {\n if (\n typeof item === \"object\"\n ? item.value === defaultValue\n : item === defaultValue\n ) {\n index = i;\n }\n });\n }\n\n setCurrIndex(index === -1 ? 1 : index + 1);\n const move = index === -1 ? 0 : index * lineSpacing.current;\n type && setChooseValue(-move);\n setMove(-move);\n };\n\n // 惯性滚动结束\n const stopMomentum = () => {\n moving.current = false;\n setTouchTime(0);\n setChooseValue(scrollDistance);\n };\n // 阻止默认事件\n const preventDefault = (\n event: React.TouchEvent<HTMLElement>,\n isStopPropagation?: boolean\n ) => {\n /* istanbul ignore else */\n if (typeof event.cancelable !== \"boolean\" || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n event.stopPropagation();\n }\n };\n\n const getReference = async () => {\n // const refe = await getRectByTaro(listbox?.current)\n // lineSpacing.current = refe.height ? refe.height : 36\n // lineSpacing.current = 36\n modifyStatus(true);\n };\n\n const touchRollerStyle = () => {\n return {\n transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,\n transform: `rotate3d(1, 0, 0, ${touchDeg})`,\n };\n };\n const touchTileStyle = () => {\n return {\n transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,\n transform: `translate3d(0, ${scrollDistance}px, 0)`,\n };\n };\n\n useEffect(() => {\n setScrollDistance(0);\n transformY.current = 0;\n modifyStatus(false);\n return () => {\n clearTimeout(timer);\n };\n }, [data]);\n\n useEffect(() => {\n if (visible) {\n setTimeout(() => {\n getReference();\n }, 200);\n }\n }, [visible]);\n\n useImperativeHandle(ref, () => ({\n stopMomentum,\n moving: moving.current,\n }));\n\n return (\n <View\n className=\"xh-picker-list\"\n ref={pickerSlotRef}\n onTouchStart={touchStart}\n onTouchMove={touchMove}\n onTouchEnd={touchEnd}\n >\n <View\n className=\"xh-picker-roller\"\n ref={rollerRef}\n style={mode === \"3D\" ? touchRollerStyle() : touchTileStyle()}\n onTransitionEnd={stopMomentum}\n >\n {/* 3D 效果 */}\n {mode === \"3D\" &&\n data.map((item, index) => {\n return (\n <View\n className={`xh-picker-roller-item ${\n isHidden(index + 1) && \"nut-picker-roller-item-hidden\"\n }`}\n style={{\n transform: `rotate3d(1, 0, 0, ${\n -rotation * (index + 1)\n }deg) translate3d(0px, 0px, 104px)`,\n height: `${lineSpacing.current}px`,\n lineHeight: `${lineSpacing.current}px`,\n }}\n key={\n typeof item === \"string\"\n ? index\n : item.value\n ? item.value\n : index\n }\n >\n <React.Fragment>\n {typeof item === \"object\" ? item.text : item}\n </React.Fragment>\n </View>\n );\n })}\n {/* 平铺 */}\n {mode === \"normal\" &&\n data.map((item, index) => {\n return (\n <View\n className=\"xh-picker-roller-item-title\"\n key={\n typeof item === \"object\" ? item.value : item ? item : index\n }\n style={{\n height: `${lineSpacing.current}px`,\n lineHeight: `${lineSpacing.current}px`,\n }}\n >\n <React.Fragment>\n {typeof item === \"object\" ? item.text : item}\n </React.Fragment>\n </View>\n );\n })}\n </View>\n\n <View className=\"xh-picker-mask\" />\n <View className=\"xh-picker-indicator\" ref={listbox} />\n </View>\n );\n};\nconst PickerSlot = React.forwardRef<\n { stopMomentum: () => void; moving: boolean },\n Partial<PickerSlotProps>\n>(InternalPickerSlot);\nexport default PickerSlot;\n","import { useState } from \"react\";\n\nconst MIN_DISTANCE = 10;\n\ntype Direction = \"\" | \"vertical\" | \"horizontal\";\n\nfunction getDirection(x: number, y: number) {\n if (x > y && x > MIN_DISTANCE) {\n return \"horizontal\";\n }\n if (y > x && y > MIN_DISTANCE) {\n return \"vertical\";\n }\n return \"\";\n}\n\nexport function useTouch() {\n const [startX, SetStartX] = useState(0);\n const [startY, SetStartY] = useState(0);\n const [moveX, SetMoveX] = useState(0);\n const [moveY, SetMoveY] = useState(0);\n const [deltaX, SetDeltaX] = useState(0);\n const [deltaY, SetDeltaY] = useState(0);\n const [offsetX, SetOffsetX] = useState(0);\n const [offsetY, SetOffsetY] = useState(0);\n const [direction, SetDirection] = useState<Direction>(\"\");\n\n const isVertical = () => direction === \"vertical\";\n const isHorizontal = () => direction === \"horizontal\";\n\n const reset = () => {\n SetDeltaX(0);\n SetDeltaY(0);\n SetOffsetX(0);\n SetOffsetY(0);\n SetDirection(\"\");\n };\n\n const start = ((event: TouchEvent) => {\n reset();\n SetStartX(event.touches[0].clientX);\n SetStartY(event.touches[0].clientY);\n }) as EventListener;\n\n const move = ((event: TouchEvent) => {\n const touch = event.touches[0];\n const dX = touch.clientX - startX;\n const dY = touch.clientY - startY;\n SetDeltaX(dX);\n SetDeltaY(dY);\n SetMoveX(touch.clientX);\n SetMoveY(touch.clientY);\n SetOffsetX(Math.abs(dX));\n SetOffsetY(Math.abs(dY));\n if (!direction) {\n SetDirection(getDirection(offsetX, offsetY));\n }\n }) as EventListener;\n\n return {\n move,\n start,\n reset,\n startX,\n startY,\n moveX,\n moveY,\n deltaX,\n deltaY,\n offsetX,\n offsetY,\n direction,\n isVertical,\n isHorizontal,\n };\n}\n","import React, {\n useState,\n useEffect,\n useRef,\n RefObject,\n ForwardRefRenderFunction,\n ReactNode,\n} from \"react\";\nimport classNames from \"classnames\";\n\nimport Popup from \"../Popup\";\nimport PickerSlot from \"./PickerSlot\";\nimport useRefs from \"../../hooks/useRefs\";\n\nexport interface PickerOption {\n text: string | number;\n value: string | number;\n children?: PickerOption[];\n}\n\nexport type PickerValue = string | PickerOption;\nexport interface PickerProps<T extends PickerValue = PickerValue> {\n visible?: boolean;\n title?: ReactNode | string;\n data: (T | T[])[];\n defaultValueData?: (string | number)[];\n className?: string;\n style?: React.CSSProperties;\n mode?: \"normal\" | \"3D\";\n swipeDuration?: number | string;\n onConfirm?: (selectedValue: T[], index: number) => void;\n onCancel?: () => void;\n onClose?: () => void;\n onCloseUpdate?: (\n selectedValue: (string | number)[],\n list: PickerOption[],\n pickerRef: RefObject<HTMLDivElement>\n ) => void;\n onChange?: (\n index: number,\n value: (string | number)[],\n selectedOptions: PickerValue[]\n ) => void;\n}\n\nconst InternalPicker: ForwardRefRenderFunction<HTMLDivElement, PickerProps> = (\n props,\n ref\n) => {\n const {\n visible = false,\n title,\n data = [],\n defaultValueData,\n onConfirm,\n onClose,\n onCloseUpdate,\n onChange,\n className,\n style,\n mode,\n swipeDuration,\n ...rest\n } = props;\n\n const [chooseValueData, setchooseValueData] = useState<\n Array<string | number>\n >([]); // 选择的数据的 value 值, 每一条数据的 value 值\n const [columnIndex, setcolumnIndex] = useState<number>(0); // 选中列\n const pickerRef = useRef<any>(null);\n const [refs, setRefs] = useRefs();\n const [columnsList, setColumnsList] = useState<PickerOption[][]>([]); // 格式化后每一列的数据\n\n const isConfirmEvent = useRef(false);\n\n // 默认值修改\n useEffect(() => {\n if (\n defaultValueData &&\n defaultValueData.length !== 0 &&\n defaultValueData.toString() !== chooseValueData.toString()\n ) {\n const data = [...defaultValueData];\n setchooseValueData(data);\n setColumnsList(normalListData() as PickerOption[][]);\n }\n }, [defaultValueData]);\n\n // 选中值进行修改\n useEffect(() => {\n onChange && onChange(columnIndex, chooseValueData, selectedOptions());\n if (isConfirmEvent.current) {\n isConfirmEvent.current = false;\n onConfirm && onConfirm(selectedOptions(), columnIndex);\n }\n }, [chooseValueData]);\n\n // 列表格式修改\n useEffect(() => {\n init();\n }, [data]);\n\n const closeActionSheet: React.MouseEventHandler<HTMLSpanElement> = e => {\n e.stopPropagation();\n onClose && onClose();\n // onCloseUpdate &&\n // onCloseUpdate(chooseValueData, selectedOptions(), pickerRef);\n };\n // 点击确定\n const confirm: React.MouseEventHandler<HTMLSpanElement> = e => {\n e.stopPropagation();\n let movings = false;\n refs.forEach((_ref: any) => {\n if (_ref.moving) movings = true;\n _ref.stopMomentum();\n });\n\n if (movings) {\n isConfirmEvent.current = true;\n } else {\n onConfirm && onConfirm(selectedOptions(), columnIndex);\n }\n\n onClose && onClose();\n\n setTimeout(() => {\n isConfirmEvent.current = false;\n }, 0);\n };\n\n const selectedOptions = () => {\n const optins: PickerValue[] = [];\n columnsList.forEach((column: PickerValue[], index: number) => {\n let currOptions: Array<PickerValue> = [];\n currOptions = column.filter(\n item =>\n (typeof item === \"object\" ? item.value : item) ===\n chooseValueData[index]\n );\n if (currOptions[0]) {\n optins.push(currOptions[0]);\n } else {\n column[0] && optins.push(column[0]);\n }\n\n return column;\n });\n\n return optins;\n };\n\n // 选择每一列的数据\n const chooseItem = (option: PickerValue, columnIndex: number) => {\n if (option && Object.keys(option).length) {\n // 移动后是否与之前有差异\n if (\n chooseValueData[columnIndex] !==\n (typeof option === \"string\" ? option : option.value)\n ) {\n if (columnsType() === \"cascade\") {\n chooseValueData[columnIndex] =\n typeof option === \"object\" ? option.value : option || \"\";\n setchooseValueData([...chooseValueData]);\n\n let index = columnIndex;\n let cursor = option;\n while (\n typeof cursor === \"object\" &&\n cursor &&\n cursor.children &&\n cursor.children[0]\n ) {\n chooseValueData[index + 1] = cursor.children[0].value;\n setchooseValueData([...chooseValueData]);\n index++;\n cursor = cursor.children[0];\n }\n // 当前改变列的下一列 children 值为空\n if (typeof cursor === \"object\" && cursor && cursor.children) {\n chooseValueData[index + 1] = \"\";\n setchooseValueData([...chooseValueData]);\n }\n\n setColumnsList(normalListData() as PickerOption[][]);\n } else {\n setchooseValueData(data => {\n const cdata = [...data];\n cdata[columnIndex] =\n (typeof option === \"string\" ? option : option.value) || \"\";\n return cdata;\n });\n }\n setcolumnIndex(columnIndex);\n }\n }\n };\n // 传入的数据格式化\n const normalListData = () => {\n const type = columnsType();\n switch (type) {\n case \"multiple\":\n return data;\n case \"cascade\":\n // 级联数据处理\n return formatCascade(data as PickerOption[], chooseValueData);\n default:\n return [data];\n }\n };\n // 每一列的类型\n const columnsType = () => {\n const firstColumn = data[0];\n if (firstColumn) {\n if (Array.isArray(firstColumn)) {\n return \"multiple\";\n }\n if (typeof firstColumn === \"object\" && \"children\" in firstColumn) {\n return \"cascade\";\n }\n }\n return \"single\";\n };\n\n // 级联数据格式化\n const formatCascade = (\n columns: PickerOption[],\n defaultValues: (number | string)[]\n ) => {\n const formatted: PickerOption[][] = [];\n let cursor: PickerOption = {\n text: \"\",\n value: \"\",\n children: columns,\n };\n\n let columnIndex = 0;\n\n while (cursor && cursor.children) {\n const options: PickerOption[] = cursor.children;\n const value = defaultValues[columnIndex];\n let index = options.findIndex(columnItem => columnItem.value === value);\n if (index === -1) index = 0;\n cursor = cursor.children[index];\n\n columnIndex++;\n formatted.push(options);\n }\n\n return formatted;\n };\n\n const init = () => {\n const data: (string | number)[] = [];\n\n const normalData: PickerOption[][] = normalListData() as PickerOption[][];\n\n setColumnsList(normalData);\n\n normalData.length > 0 &&\n normalData.forEach(item => {\n const perItem = item[0];\n perItem &&\n data.push(typeof perItem === \"string\" ? perItem : perItem.value);\n });\n\n if (!defaultValueData && chooseValueData.length === 0) {\n setchooseValueData([...data]);\n }\n };\n\n const renderToolbar = () => {\n return (\n <div className=\"xh-picker-header\">\n <span\n className=\"xh-picker-header-button picker-cancel\"\n onClick={closeActionSheet}\n >\n 取消\n </span>\n <div className=\"xh-picker-header-title\">{title || \"\"}</div>\n <span\n className=\"xh-picker-header-button picker-confirm\"\n onClick={confirm}\n >\n 确定\n </span>\n </div>\n );\n };\n return (\n <Popup visible={visible}>\n <div\n className={classNames(\"xh-picker\", className)}\n style={style}\n ref={ref}\n {...rest}\n >\n {renderToolbar()}\n <div className=\"xh-picker-panel\" ref={pickerRef}>\n {columnsList?.map((item, index) => {\n return (\n <PickerSlot\n ref={setRefs(index)}\n defaultValue={chooseValueData?.[index]}\n data={item}\n mode={mode}\n onConfirm={chooseItem}\n swipeDuration={swipeDuration}\n key={index}\n keyIndex={index}\n />\n );\n })}\n </div>\n </div>\n </Popup>\n );\n};\n\nconst Picker = React.forwardRef<unknown, Partial<PickerProps>>(InternalPicker);\nexport default Picker;\n","import React from \"react\";\n\nexport default function useRefs() {\n const refs = React.useRef<HTMLDivElement[]>([]);\n\n const setRefs = React.useCallback(\n (index: number) => (el: HTMLDivElement) => {\n if (el) refs.current[index] = el;\n },\n []\n );\n\n const reset = React.useCallback(() => {\n refs.current = [];\n }, []);\n\n return [refs.current, setRefs as any, reset];\n}\n","import * as React from \"react\";\nimport { detectFlexGapSupported } from \"../utils\";\n\nexport default () => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n\n return flexible;\n};\n","import React from \"react\";\n\nexport type DirectionType = \"ltr\" | \"rtl\" | undefined;\n\nexport type SizeType = \"small\" | \"normal\" | \"large\" | undefined;\n\nexport interface ConfigConsumerProps {\n getPrefixCls: (suffixCls?: string) => string;\n direction?: DirectionType;\n space?: {\n size?: SizeType | number;\n };\n}\n\nexport const defaultGetPrefixCls = (suffixCls?: string) => {\n return suffixCls ? `xh-${suffixCls}` : \"xh\";\n};\n\nexport const ConfigContext = React.createContext<ConfigConsumerProps>({\n getPrefixCls: defaultGetPrefixCls,\n});\n","import * as React from \"react\";\nimport { SpaceContext } from \".\";\n\nexport interface ItemProps {\n className: string;\n children: React.ReactNode;\n index: number;\n direction?: \"horizontal\" | \"vertical\";\n marginDirection: \"marginLeft\" | \"marginRight\";\n split?: string | React.ReactNode;\n wrap?: boolean;\n}\n\nexport default function Item({\n className,\n direction,\n index,\n marginDirection,\n children,\n split,\n wrap,\n}: ItemProps) {\n const { horizontalSize, verticalSize, latestIndex, supportFlexGap } =\n React.useContext(SpaceContext);\n\n let style: React.CSSProperties = {};\n\n if (!supportFlexGap) {\n if (direction === \"vertical\") {\n if (index < latestIndex) {\n style = { marginBottom: horizontalSize / (split ? 2 : 1) };\n }\n } else {\n style = {\n ...(index < latestIndex && {\n [marginDirection]: horizontalSize / (split ? 2 : 1),\n }),\n ...(wrap && { paddingBottom: verticalSize }),\n };\n }\n }\n\n if (children === null || children === undefined) {\n return null;\n }\n\n return (\n <React.Fragment>\n <div className={className} style={style}>\n {children}\n </div>\n {index < latestIndex && split && (\n <span className={`${className}-split`} style={style}>\n {split}\n </span>\n )}\n </React.Fragment>\n );\n}\n","import React from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport useFlexGapSupport from \"@/hooks/useFlexGapSupport\";\nimport { toArray } from \"@/utils\";\nimport { ConfigContext, SizeType } from \"./config-provider\";\nimport Item from \"./Item\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport const SpaceConfigContext = ConfigContext;\nexport type SpaceProps = {\n direction?: \"horizontal\" | \"vertical\";\n align?: \"start\" | \"end\" | \"center\" | \"baseline\";\n size?: SizeType | [SizeType, SizeType];\n style?: React.CSSProperties;\n split?: React.ReactNode;\n wrap?: boolean;\n} & XHComponentCommonProps;\n\nexport const SpaceContext = React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false,\n});\n\nconst spaceSize = {\n small: 8,\n normal: 16,\n large: 24,\n};\n\nfunction getNumberSize(size: SizeType) {\n return typeof size === \"string\" ? spaceSize[size] : size || 0;\n}\n\nconst XHSpace: React.FC<SpaceProps> = props => {\n const {\n getPrefixCls,\n space,\n direction: directionConfig,\n } = React.useContext(ConfigContext);\n\n const {\n size = space?.size || \"small\",\n align,\n className,\n children,\n direction = \"horizontal\",\n split,\n style,\n wrap = false,\n ...otherProps\n } = props;\n\n const supportFlexGap = useFlexGapSupport();\n\n const [horizontalSize, verticalSize] = React.useMemo(\n () =>\n ((Array.isArray(size) ? size : [size, size]) as [SizeType, SizeType]).map(\n item => getNumberSize(item)\n ),\n [size]\n );\n\n const childNodes = toArray(children, { keepEmpty: true });\n\n const mergedAlign =\n align === undefined && direction === \"horizontal\" ? \"center\" : align;\n const prefixCls = getPrefixCls(\"space\");\n const cn = classNames(\n prefixCls,\n `${prefixCls}-${direction}`,\n {\n [`${prefixCls}-rtl`]: directionConfig === \"rtl\",\n [`${prefixCls}-align-${mergedAlign}`]: mergedAlign,\n },\n className\n );\n\n const itemClassName = `${prefixCls}-item`;\n\n const marginDirection =\n directionConfig === \"rtl\" ? \"marginLeft\" : \"marginRight\";\n\n // Calculate latest one\n let latestIndex = 0;\n const nodes = childNodes.map((child: any, i) => {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n\n const key = (child && child.key) || `${itemClassName}-${i}`;\n\n return (\n <Item\n className={itemClassName}\n key={key}\n direction={direction}\n index={i}\n marginDirection={marginDirection}\n split={split}\n wrap={wrap}\n >\n {child}\n </Item>\n );\n });\n\n const spaceContext = React.useMemo(\n () => ({ horizontalSize, verticalSize, latestIndex, supportFlexGap }),\n [horizontalSize, verticalSize, latestIndex, supportFlexGap]\n );\n\n if (childNodes.length === 0) {\n return null;\n }\n\n const gapStyle: React.CSSProperties = {};\n\n if (wrap) {\n gapStyle.flexWrap = \"wrap\";\n\n if (!supportFlexGap) {\n gapStyle.marginBottom = `-${verticalSize}px`;\n }\n }\n\n if (supportFlexGap) {\n gapStyle.columnGap = `${horizontalSize}px`;\n gapStyle.rowGap = `${verticalSize}px`;\n }\n\n return (\n <View\n className={cn}\n style={{\n ...gapStyle,\n ...style,\n }}\n {...otherProps}\n >\n <SpaceContext.Provider value={spaceContext}>\n {nodes}\n </SpaceContext.Provider>\n </View>\n );\n};\n\nexport default XHSpace;\n","/*!\n * css-vars-ponyfill\n * v2.4.8\n * https://jhildenbiddle.github.io/css-vars-ponyfill/\n * (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/*!\n * get-css-data\n * v2.1.0\n * https://github.com/jhildenbiddle/get-css-data\n * (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */ function getUrls(urls) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var settings = {\n mimeType: options.mimeType || null,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var urlArray = Array.isArray(urls) ? urls : [ urls ];\n var urlQueue = Array.apply(null, Array(urlArray.length)).map((function(x) {\n return null;\n }));\n function isValidCss(text) {\n var isString = typeof text === \"string\";\n var isHTML = isString && text.trim().charAt(0) === \"<\";\n return isString && !isHTML;\n }\n function onError(xhr, urlIndex) {\n settings.onError(xhr, urlArray[urlIndex], urlIndex);\n }\n function onSuccess(responseText, urlIndex) {\n var returnVal = settings.onSuccess(responseText, urlArray[urlIndex], urlIndex);\n responseText = returnVal === false ? \"\" : returnVal || responseText;\n urlQueue[urlIndex] = responseText;\n if (urlQueue.indexOf(null) === -1) {\n settings.onComplete(urlQueue);\n }\n }\n var parser = document.createElement(\"a\");\n urlArray.forEach((function(url, i) {\n parser.setAttribute(\"href\", url);\n parser.href = String(parser.href);\n var isIElte9 = Boolean(document.all && !window.atob);\n var isIElte9CORS = isIElte9 && parser.host.split(\":\")[0] !== location.host.split(\":\")[0];\n if (isIElte9CORS) {\n var isSameProtocol = parser.protocol === location.protocol;\n if (isSameProtocol) {\n var xdr = new XDomainRequest;\n xdr.open(\"GET\", url);\n xdr.timeout = 0;\n xdr.onprogress = Function.prototype;\n xdr.ontimeout = Function.prototype;\n xdr.onload = function() {\n var text = xdr.responseText;\n if (isValidCss(text)) {\n onSuccess(text, i);\n } else {\n onError(xdr, i);\n }\n };\n xdr.onerror = function(err) {\n onError(xdr, i);\n };\n setTimeout((function() {\n xdr.send();\n }), 0);\n } else {\n console.warn(\"Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (\".concat(url, \")\"));\n onError(null, i);\n }\n } else {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url);\n if (settings.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(settings.mimeType);\n }\n settings.onBeforeSend(xhr, url, i);\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n var text = xhr.responseText;\n if (xhr.status < 400 && isValidCss(text)) {\n onSuccess(text, i);\n } else if (xhr.status === 0 && isValidCss(text)) {\n onSuccess(text, i);\n } else {\n onError(xhr, i);\n }\n }\n };\n xhr.send();\n }\n }));\n}\n\n/**\n * Gets CSS data from <style> and <link> nodes (including @imports), then\n * returns data in order processed by DOM. Allows specifying nodes to\n * include/exclude and filtering CSS data using RegEx.\n *\n * @preserve\n * @param {object} [options] The options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes.\n * @param {string} [options.include] CSS selector matching <link> and <style>\n * nodes to include\n * @param {string} [options.exclude] CSS selector matching <link> and <style>\n * nodes to exclude\n * @param {object} [options.filter] Regular expression used to filter node CSS\n * data. Each block of CSS data is tested against the filter,\n * and only matching data is included.\n * @param {boolean} [options.skipDisabled=true] Determines if disabled\n * stylesheets will be skipped while collecting CSS data.\n * @param {boolean} [options.useCSSOM=false] Determines if CSS data will be\n * collected from a stylesheet's runtime values instead of its\n * text content. This is required to get accurate CSS data\n * when a stylesheet has been modified using the deleteRule()\n * or insertRule() methods because these modifications will\n * not be reflected in the stylesheet's text content.\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments.\n * @param {function} [options.onSuccess] Callback on each CSS node read. Passes\n * 1) CSS text, 2) source node reference, and 3) the source\n * URL as arguments.\n * @param {function} [options.onError] Callback on each error. Passes 1) the XHR\n * object for inspection, 2) soure node reference, and 3) the\n * source URL that failed (either a <link> href or an @import)\n * as arguments\n * @param {function} [options.onComplete] Callback after all nodes have been\n * processed. Passes 1) concatenated CSS text, 2) an array of\n * CSS text in DOM order, and 3) an array of nodes in DOM\n * order as arguments.\n *\n * @example\n *\n * getCssData({\n * rootElement : document,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '[href=\"skip.css\"]',\n * filter : /red/,\n * skipDisabled: true,\n * useCSSOM : false,\n * onBeforeSend(xhr, node, url) {\n * // ...\n * }\n * onSuccess(cssText, node, url) {\n * // ...\n * }\n * onError(xhr, node, url) {\n * // ...\n * },\n * onComplete(cssText, cssArray, nodeArray) {\n * // ...\n * }\n * });\n */ function getCssData(options) {\n var regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssImports: /(?:@import\\s*)(?:url\\(\\s*)?(?:['\"])([^'\"]*)(?:['\"])(?:\\s*\\))?(?:[^;]*;)/g\n };\n var settings = {\n rootElement: options.rootElement || document,\n include: options.include || 'style,link[rel=\"stylesheet\"]',\n exclude: options.exclude || null,\n filter: options.filter || null,\n skipDisabled: options.skipDisabled !== false,\n useCSSOM: options.useCSSOM || false,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var sourceNodes = Array.apply(null, settings.rootElement.querySelectorAll(settings.include)).filter((function(node) {\n return !matchesSelector(node, settings.exclude);\n }));\n var cssArray = Array.apply(null, Array(sourceNodes.length)).map((function(x) {\n return null;\n }));\n function handleComplete() {\n var isComplete = cssArray.indexOf(null) === -1;\n if (isComplete) {\n cssArray.reduce((function(skipIndices, value, i) {\n if (value === \"\") {\n skipIndices.push(i);\n }\n return skipIndices;\n }), []).reverse().forEach((function(skipIndex) {\n return [ sourceNodes, cssArray ].forEach((function(arr) {\n return arr.splice(skipIndex, 1);\n }));\n }));\n var cssText = cssArray.join(\"\");\n settings.onComplete(cssText, cssArray, sourceNodes);\n }\n }\n function handleSuccess(cssText, cssIndex, node, sourceUrl) {\n var returnVal = settings.onSuccess(cssText, node, sourceUrl);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n resolveImports(cssText, node, sourceUrl, (function(resolvedCssText, errorData) {\n if (cssArray[cssIndex] === null) {\n errorData.forEach((function(data) {\n return settings.onError(data.xhr, node, data.url);\n }));\n if (!settings.filter || settings.filter.test(resolvedCssText)) {\n cssArray[cssIndex] = resolvedCssText;\n } else {\n cssArray[cssIndex] = \"\";\n }\n handleComplete();\n }\n }));\n }\n function parseImportData(cssText, baseUrl) {\n var ignoreRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var importData = {};\n importData.rules = (cssText.replace(regex.cssComments, \"\").match(regex.cssImports) || []).filter((function(rule) {\n return ignoreRules.indexOf(rule) === -1;\n }));\n importData.urls = importData.rules.map((function(rule) {\n return rule.replace(regex.cssImports, \"$1\");\n }));\n importData.absoluteUrls = importData.urls.map((function(url) {\n return getFullUrl$1(url, baseUrl);\n }));\n importData.absoluteRules = importData.rules.map((function(rule, i) {\n var oldUrl = importData.urls[i];\n var newUrl = getFullUrl$1(importData.absoluteUrls[i], baseUrl);\n return rule.replace(oldUrl, newUrl);\n }));\n return importData;\n }\n function resolveImports(cssText, node, baseUrl, callbackFn) {\n var __errorData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var __errorRules = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var importData = parseImportData(cssText, baseUrl, __errorRules);\n if (importData.rules.length) {\n getUrls(importData.absoluteUrls, {\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal === false ? \"\" : returnVal || cssText;\n var responseImportData = parseImportData(cssText, url, __errorRules);\n responseImportData.rules.forEach((function(rule, i) {\n cssText = cssText.replace(rule, responseImportData.absoluteRules[i]);\n }));\n return cssText;\n },\n onError: function onError(xhr, url, urlIndex) {\n __errorData.push({\n xhr: xhr,\n url: url\n });\n __errorRules.push(importData.rules[urlIndex]);\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n },\n onComplete: function onComplete(responseArray) {\n responseArray.forEach((function(importText, i) {\n cssText = cssText.replace(importData.rules[i], importText);\n }));\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n }\n });\n } else {\n callbackFn(cssText, __errorData);\n }\n }\n if (sourceNodes.length) {\n sourceNodes.forEach((function(node, i) {\n var linkHref = node.getAttribute(\"href\");\n var linkRel = node.getAttribute(\"rel\");\n var isLink = node.nodeName.toLowerCase() === \"link\" && linkHref && linkRel && linkRel.toLowerCase().indexOf(\"stylesheet\") !== -1;\n var isSkip = settings.skipDisabled === false ? false : node.disabled;\n var isStyle = node.nodeName.toLowerCase() === \"style\";\n if (isLink && !isSkip) {\n var isURIScheme = linkHref.indexOf(\"data:text/css\") !== -1;\n if (isURIScheme) {\n var cssText = decodeURIComponent(linkHref.substring(linkHref.indexOf(\",\") + 1));\n if (settings.useCSSOM) {\n cssText = Array.apply(null, node.sheet.cssRules).map((function(rule) {\n return rule.cssText;\n })).join(\"\");\n }\n handleSuccess(cssText, i, node, location.href);\n } else {\n getUrls(linkHref, {\n mimeType: \"text/css\",\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var sourceUrl = getFullUrl$1(linkHref);\n handleSuccess(cssText, i, node, sourceUrl);\n },\n onError: function onError(xhr, url, urlIndex) {\n cssArray[i] = \"\";\n settings.onError(xhr, node, url);\n handleComplete();\n }\n });\n }\n } else if (isStyle && !isSkip) {\n var _cssText = node.textContent;\n if (settings.useCSSOM) {\n _cssText = Array.apply(null, node.sheet.cssRules).map((function(rule) {\n return rule.cssText;\n })).join(\"\");\n }\n handleSuccess(_cssText, i, node, location.href);\n } else {\n cssArray[i] = \"\";\n handleComplete();\n }\n }));\n } else {\n settings.onComplete(\"\", []);\n }\n}\n\nfunction getFullUrl$1(url, base) {\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base || document.baseURI || (document.querySelector(\"base\") || {}).href || location.href;\n a.href = url;\n return a.href;\n}\n\nfunction matchesSelector(elm, selector) {\n var matches = elm.matches || elm.matchesSelector || elm.webkitMatchesSelector || elm.mozMatchesSelector || elm.msMatchesSelector || elm.oMatchesSelector;\n return matches.call(elm, selector);\n}\n\nvar balancedMatch = balanced;\n\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\n\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ ai, bi ];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length) {\n result = [ left, right ];\n }\n }\n return result;\n}\n\nfunction parseCss(css) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n removeComments: false\n };\n var settings = _extends({}, defaults, options);\n var errors = [];\n function error(msg) {\n throw new Error(\"CSS parse error: \".concat(msg));\n }\n function match(re) {\n var m = re.exec(css);\n if (m) {\n css = css.slice(m[0].length);\n return m;\n }\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comment() {\n whitespace();\n if (css[0] !== \"/\" || css[1] !== \"*\") {\n return;\n }\n var i = 2;\n while (css[i] && (css[i] !== \"*\" || css[i + 1] !== \"/\")) {\n i++;\n }\n if (!css[i]) {\n return error(\"end of comment is missing\");\n }\n var str = css.slice(2, i);\n css = css.slice(i + 2);\n return {\n type: \"comment\",\n comment: str\n };\n }\n function comments() {\n var cmnts = [];\n var c;\n while (c = comment()) {\n cmnts.push(c);\n }\n return settings.removeComments ? [] : cmnts;\n }\n function selector() {\n whitespace();\n while (css[0] === \"}\") {\n error(\"extra closing bracket\");\n }\n var m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\n if (m) {\n var _selector = m[0].trim();\n var selectorItems;\n var hasComment = /\\/\\*/.test(_selector);\n if (hasComment) {\n _selector = _selector.replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, \"\");\n }\n var hasCommaInQuotes = /[\"']\\w*,\\w*[\"']/.test(_selector);\n if (hasCommaInQuotes) {\n _selector = _selector.replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (function(m) {\n return m.replace(/,/g, \"‌\");\n }));\n }\n var hasMultipleSelectors = /,/.test(_selector);\n if (hasMultipleSelectors) {\n selectorItems = _selector.split(/\\s*(?![^(]*\\)),\\s*/);\n } else {\n selectorItems = [ _selector ];\n }\n if (hasCommaInQuotes) {\n selectorItems = selectorItems.map((function(s) {\n return s.replace(/\\u200C/g, \",\");\n }));\n }\n return selectorItems;\n }\n }\n function declaration() {\n if (css[0] === \"@\") {\n return at_rule();\n }\n match(/^([;\\s]*)+/);\n var comment_regexp = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n var prop = match(/^(\\*?[-#/*\\\\\\w.]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!prop) {\n return;\n }\n prop = prop[0].trim();\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:\\/\\*.*?\\*\\/|'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\((\\s*'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^)]*?)\\s*\\)|[^};])+)/);\n var ret = {\n type: \"declaration\",\n property: prop.replace(comment_regexp, \"\"),\n value: val ? val[0].replace(comment_regexp, \"\").trim() : \"\"\n };\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n if (!open()) {\n return error(\"missing '{'\");\n }\n var d;\n var decls = comments();\n while (d = declaration()) {\n decls.push(d);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n whitespace();\n var vals = [];\n var m;\n while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (vals.length) {\n return {\n type: \"keyframe\",\n values: vals,\n declarations: declarations()\n };\n }\n }\n function at_keyframes() {\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error(\"@keyframes missing name\");\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while (frame = keyframe()) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return {\n type: \"keyframes\",\n name: name,\n vendor: vendor,\n keyframes: frames\n };\n }\n function at_page() {\n var m = match(/^@page */);\n if (m) {\n var sel = selector() || [];\n return {\n type: \"page\",\n selectors: sel,\n declarations: declarations()\n };\n }\n }\n function at_page_margin_box() {\n var m = match(/@(top|bottom|left|right)-(left|center|right|top|middle|bottom)-?(corner)?\\s*/);\n if (m) {\n var name = \"\".concat(m[1], \"-\").concat(m[2]) + (m[3] ? \"-\".concat(m[3]) : \"\");\n return {\n type: \"page-margin-box\",\n name: name,\n declarations: declarations()\n };\n }\n }\n function at_fontface() {\n var m = match(/^@font-face\\s*/);\n if (m) {\n return {\n type: \"font-face\",\n declarations: declarations()\n };\n }\n }\n function at_supports() {\n var m = match(/^@supports *([^{]+)/);\n if (m) {\n return {\n type: \"supports\",\n supports: m[1].trim(),\n rules: rules()\n };\n }\n }\n function at_host() {\n var m = match(/^@host\\s*/);\n if (m) {\n return {\n type: \"host\",\n rules: rules()\n };\n }\n }\n function at_media() {\n var m = match(/^@media([^{]+)*/);\n if (m) {\n return {\n type: \"media\",\n media: (m[1] || \"\").trim(),\n rules: rules()\n };\n }\n }\n function at_custom_m() {\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (m) {\n return {\n type: \"custom-media\",\n name: m[1].trim(),\n media: m[2].trim()\n };\n }\n }\n function at_document() {\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (m) {\n return {\n type: \"document\",\n document: m[2].trim(),\n vendor: m[1] ? m[1].trim() : null,\n rules: rules()\n };\n }\n }\n function at_x() {\n var m = match(/^@(import|charset|namespace)\\s*([^;]+);/);\n if (m) {\n return {\n type: m[1],\n name: m[2].trim()\n };\n }\n }\n function at_rule() {\n whitespace();\n if (css[0] === \"@\") {\n var ret = at_x() || at_fontface() || at_media() || at_keyframes() || at_supports() || at_document() || at_custom_m() || at_host() || at_page() || at_page_margin_box();\n if (ret && !settings.preserveStatic) {\n var hasVarFunc = false;\n if (ret.declarations) {\n hasVarFunc = ret.declarations.some((function(decl) {\n return /var\\(/.test(decl.value);\n }));\n } else {\n var arr = ret.keyframes || ret.rules || [];\n hasVarFunc = arr.some((function(obj) {\n return (obj.declarations || []).some((function(decl) {\n return /var\\(/.test(decl.value);\n }));\n }));\n }\n return hasVarFunc ? ret : {};\n }\n return ret;\n }\n }\n function rule() {\n if (!settings.preserveStatic) {\n var balancedMatch$1 = balancedMatch(\"{\", \"}\", css);\n if (balancedMatch$1) {\n var hasVarDecl = /:(?:root|host)(?![.:#(])/.test(balancedMatch$1.pre) && /--\\S*\\s*:/.test(balancedMatch$1.body);\n var hasVarFunc = /var\\(/.test(balancedMatch$1.body);\n if (!hasVarDecl && !hasVarFunc) {\n css = css.slice(balancedMatch$1.end + 1);\n return {};\n }\n }\n }\n var sel = selector() || [];\n var decls = settings.preserveStatic ? declarations() : declarations().filter((function(decl) {\n var hasVarDecl = sel.some((function(s) {\n return /:(?:root|host)(?![.:#(])/.test(s);\n })) && /^--\\S/.test(decl.property);\n var hasVarFunc = /var\\(/.test(decl.value);\n return hasVarDecl || hasVarFunc;\n }));\n if (!sel.length) {\n error(\"selector missing\");\n }\n return {\n type: \"rule\",\n selectors: sel,\n declarations: decls\n };\n }\n function rules(core) {\n if (!core && !open()) {\n return error(\"missing '{'\");\n }\n var node;\n var rules = comments();\n while (css.length && (core || css[0] !== \"}\") && (node = at_rule() || rule())) {\n if (node.type) {\n rules.push(node);\n }\n rules = rules.concat(comments());\n }\n if (!core && !close()) {\n return error(\"missing '}'\");\n }\n return rules;\n }\n return {\n type: \"stylesheet\",\n stylesheet: {\n rules: rules(true),\n errors: errors\n }\n };\n}\n\nfunction parseVars(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n parseHost: false,\n store: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n var reVarDeclSelectors = new RegExp(\":\".concat(settings.parseHost ? \"host\" : \"root\", \"$\"));\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n cssData.stylesheet.rules.forEach((function(rule) {\n if (rule.type !== \"rule\" || !rule.selectors.some((function(s) {\n return reVarDeclSelectors.test(s);\n }))) {\n return;\n }\n rule.declarations.forEach((function(decl, i) {\n var prop = decl.property;\n var value = decl.value;\n if (prop && prop.indexOf(\"--\") === 0) {\n settings.store[prop] = value;\n }\n }));\n }));\n return settings.store;\n}\n\nfunction stringifyCss(tree) {\n var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var renderMethods = {\n charset: function charset(node) {\n return \"@charset \" + node.name + \";\";\n },\n comment: function comment(node) {\n return node.comment.indexOf(\"__CSSVARSPONYFILL\") === 0 ? \"/*\" + node.comment + \"*/\" : \"\";\n },\n \"custom-media\": function customMedia(node) {\n return \"@custom-media \" + node.name + \" \" + node.media + \";\";\n },\n declaration: function declaration(node) {\n return node.property + \":\" + node.value + \";\";\n },\n document: function document(node) {\n return \"@\" + (node.vendor || \"\") + \"document \" + node.document + \"{\" + visit(node.rules) + \"}\";\n },\n \"font-face\": function fontFace(node) {\n return \"@font-face\" + \"{\" + visit(node.declarations) + \"}\";\n },\n host: function host(node) {\n return \"@host\" + \"{\" + visit(node.rules) + \"}\";\n },\n import: function _import(node) {\n return \"@import \" + node.name + \";\";\n },\n keyframe: function keyframe(node) {\n return node.values.join(\",\") + \"{\" + visit(node.declarations) + \"}\";\n },\n keyframes: function keyframes(node) {\n return \"@\" + (node.vendor || \"\") + \"keyframes \" + node.name + \"{\" + visit(node.keyframes) + \"}\";\n },\n media: function media(node) {\n return \"@media \" + node.media + \"{\" + visit(node.rules) + \"}\";\n },\n namespace: function namespace(node) {\n return \"@namespace \" + node.name + \";\";\n },\n page: function page(node) {\n return \"@page \" + (node.selectors.length ? node.selectors.join(\", \") : \"\") + \"{\" + visit(node.declarations) + \"}\";\n },\n \"page-margin-box\": function pageMarginBox(node) {\n return \"@\" + node.name + \"{\" + visit(node.declarations) + \"}\";\n },\n rule: function rule(node) {\n var decls = node.declarations;\n if (decls.length) {\n return node.selectors.join(\",\") + \"{\" + visit(decls) + \"}\";\n }\n },\n supports: function supports(node) {\n return \"@supports \" + node.supports + \"{\" + visit(node.rules) + \"}\";\n }\n };\n function visit(nodes) {\n var buf = \"\";\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (cb) {\n cb(n);\n }\n var txt = renderMethods[n.type](n);\n if (txt) {\n buf += txt;\n if (txt.length && n.selectors) {\n buf += delim;\n }\n }\n }\n return buf;\n }\n return visit(tree.stylesheet.rules);\n}\n\nfunction walkCss(node, fn) {\n node.rules.forEach((function(rule) {\n if (rule.rules) {\n walkCss(rule, fn);\n return;\n }\n if (rule.keyframes) {\n rule.keyframes.forEach((function(keyframe) {\n if (keyframe.type === \"keyframe\") {\n fn(keyframe.declarations, rule);\n }\n }));\n return;\n }\n if (!rule.declarations) {\n return;\n }\n fn(rule.declarations, node);\n }));\n}\n\nvar VAR_PROP_IDENTIFIER = \"--\";\n\nvar VAR_FUNC_IDENTIFIER = \"var\";\n\nfunction transformCss(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n preserveVars: false,\n variables: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n walkCss(cssData.stylesheet, (function(declarations, node) {\n for (var i = 0; i < declarations.length; i++) {\n var decl = declarations[i];\n var type = decl.type;\n var prop = decl.property;\n var value = decl.value;\n if (type !== \"declaration\") {\n continue;\n }\n if (!settings.preserveVars && prop && prop.indexOf(VAR_PROP_IDENTIFIER) === 0) {\n declarations.splice(i, 1);\n i--;\n continue;\n }\n if (value.indexOf(VAR_FUNC_IDENTIFIER + \"(\") !== -1) {\n var resolvedValue = resolveValue(value, settings);\n if (resolvedValue !== decl.value) {\n resolvedValue = fixNestedCalc(resolvedValue);\n if (!settings.preserveVars) {\n decl.value = resolvedValue;\n } else {\n declarations.splice(i, 0, {\n type: type,\n property: prop,\n value: resolvedValue\n });\n i++;\n }\n }\n }\n }\n }));\n return stringifyCss(cssData);\n}\n\nfunction fixNestedCalc(value) {\n var reCalcVal = /calc\\(([^)]+)\\)/g;\n (value.match(reCalcVal) || []).forEach((function(match) {\n var newVal = \"calc\".concat(match.split(\"calc\").join(\"\"));\n value = value.replace(match, newVal);\n }));\n return value;\n}\n\nfunction resolveValue(value) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var __recursiveFallback = arguments.length > 2 ? arguments[2] : undefined;\n if (value.indexOf(\"var(\") === -1) {\n return value;\n }\n var valueData = balancedMatch(\"(\", \")\", value);\n function resolveFunc(value) {\n var name = value.split(\",\")[0].replace(/[\\s\\n\\t]/g, \"\");\n var fallback = (value.match(/(?:\\s*,\\s*){1}(.*)?/) || [])[1];\n var match = Object.prototype.hasOwnProperty.call(settings.variables, name) ? String(settings.variables[name]) : undefined;\n var replacement = match || (fallback ? String(fallback) : undefined);\n var unresolvedFallback = __recursiveFallback || value;\n if (!match) {\n settings.onWarning('variable \"'.concat(name, '\" is undefined'));\n }\n if (replacement && replacement !== \"undefined\" && replacement.length > 0) {\n return resolveValue(replacement, settings, unresolvedFallback);\n } else {\n return \"var(\".concat(unresolvedFallback, \")\");\n }\n }\n if (!valueData) {\n if (value.indexOf(\"var(\") !== -1) {\n settings.onWarning('missing closing \")\" in the value \"'.concat(value, '\"'));\n }\n return value;\n } else if (valueData.pre.slice(-3) === \"var\") {\n var isEmptyVarFunc = valueData.body.trim().length === 0;\n if (isEmptyVarFunc) {\n settings.onWarning(\"var() must contain a non-whitespace string\");\n return value;\n } else {\n return valueData.pre.slice(0, -3) + resolveFunc(valueData.body) + resolveValue(valueData.post, settings);\n }\n } else {\n return valueData.pre + \"(\".concat(resolveValue(valueData.body, settings), \")\") + resolveValue(valueData.post, settings);\n }\n}\n\nvar isBrowser = typeof window !== \"undefined\";\n\nvar isNativeSupport = isBrowser && window.CSS && window.CSS.supports && window.CSS.supports(\"(--a: 0)\");\n\nvar counters = {\n group: 0,\n job: 0\n};\n\nvar defaults = {\n rootElement: isBrowser ? document : null,\n shadowDOM: false,\n include: \"style,link[rel=stylesheet]\",\n exclude: \"\",\n variables: {},\n onlyLegacy: true,\n preserveStatic: true,\n preserveVars: false,\n silent: false,\n updateDOM: true,\n updateURLs: true,\n watch: null,\n onBeforeSend: function onBeforeSend() {},\n onError: function onError() {},\n onWarning: function onWarning() {},\n onSuccess: function onSuccess() {},\n onComplete: function onComplete() {},\n onFinally: function onFinally() {}\n};\n\nvar regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssKeyframes: /@(?:-\\w*-)?keyframes/,\n cssMediaQueries: /@media[^{]+\\{([\\s\\S]+?})\\s*}/g,\n cssUrls: /url\\((?!['\"]?(?:data|http|\\/\\/):)['\"]?([^'\")]*)['\"]?\\)/g,\n cssVarDeclRules: /(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^}]*})/g,\n cssVarDecls: /(?:[\\s;]*)(-{2}\\w[\\w-]*)(?:\\s*:\\s*)([^;]*);/g,\n cssVarFunc: /var\\(\\s*--[\\w-]/,\n cssVars: /(?:(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^;]*;*\\s*)|(?:var\\(\\s*))(--[^:)]+)(?:\\s*[:)])/\n};\n\nvar variableStore = {\n dom: {},\n job: {},\n user: {}\n};\n\nvar cssVarsIsRunning = false;\n\nvar cssVarsObserver = null;\n\nvar cssVarsSrcNodeCount = 0;\n\nvar debounceTimer = null;\n\nvar isShadowDOMReady = false;\n\n/**\n * Fetches, parses, and transforms CSS custom properties from specified\n * <style> and <link> elements into static values, then appends a new <style>\n * element with static values to the DOM to provide CSS custom property\n * compatibility for legacy browsers. Also provides a single interface for\n * live updates of runtime values in both modern and legacy browsers.\n *\n * @preserve\n * @param {object} [options] Options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes\n * @param {boolean} [options.shadowDOM=false] Determines if shadow DOM <link>\n * and <style> nodes will be processed.\n * @param {string} [options.include=\"style,link[rel=stylesheet]\"] CSS selector\n * matching <link re=\"stylesheet\"> and <style> nodes to\n * process\n * @param {string} [options.exclude] CSS selector matching <link\n * rel=\"stylehseet\"> and <style> nodes to exclude from those\n * matches by options.include\n * @param {object} [options.variables] A map of custom property name/value\n * pairs. Property names can omit or include the leading\n * double-hyphen (—), and values specified will override\n * previous values\n * @param {boolean} [options.onlyLegacy=true] Determines if the ponyfill will\n * only generate legacy-compatible CSS in browsers that lack\n * native support (i.e., legacy browsers)\n * @param {boolean} [options.preserveStatic=true] Determines if CSS\n * declarations that do not reference a custom property will\n * be preserved in the transformed CSS\n * @param {boolean} [options.preserveVars=false] Determines if CSS custom\n * property declarations will be preserved in the transformed\n * CSS\n * @param {boolean} [options.silent=false] Determines if warning and error\n * messages will be displayed on the console\n * @param {boolean} [options.updateDOM=true] Determines if the ponyfill will\n * update the DOM after processing CSS custom properties\n * @param {boolean} [options.updateURLs=true] Determines if relative url()\n * paths will be converted to absolute urls in external CSS\n * @param {boolean} [options.watch=false] Determines if a MutationObserver will\n * be created that will execute the ponyfill when a <link> or\n * <style> DOM mutation is observed\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments\n * @param {function} [options.onError] Callback after a CSS parsing error has\n * occurred or an XHR request has failed. Passes 1) an error\n * message, and 2) source node reference, 3) xhr, and 4 url as\n * arguments.\n * @param {function} [options.onWarning] Callback after each CSS parsing warning\n * has occurred. Passes 1) a warning message as an argument.\n * @param {function} [options.onSuccess] Callback after CSS data has been\n * collected from each node and before CSS custom properties\n * have been transformed. Allows modifying the CSS data before\n * it is transformed by returning any string value (or false\n * to skip). Passes 1) CSS text, 2) source node reference, and\n * 3) the source URL as arguments.\n * @param {function} [options.onComplete] Callback after all CSS has been\n * processed, legacy-compatible CSS has been generated, and\n * (optionally) the DOM has been updated. Passes 1) a CSS\n * string with CSS variable values resolved, 2) an array of\n * output <style> node references that have been appended to\n * the DOM, 3) an object containing all custom properies names\n * and values, and 4) the ponyfill execution time in\n * milliseconds.\n * @param {function} [options.onFinally] Callback in modern and legacy browsers\n * after the ponyfill has finished all tasks. Passes 1) a\n * boolean indicating if the last ponyfill call resulted in a\n * style change, 2) a boolean indicating if the current\n * browser provides native support for CSS custom properties,\n * and 3) the ponyfill execution time in milliseconds.\n * @example\n *\n * cssVars({\n * rootElement : document,\n * shadowDOM : false,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '',\n * variables : {},\n * onlyLegacy : true,\n * preserveStatic: true,\n * preserveVars : false,\n * silent : false,\n * updateDOM : true,\n * updateURLs : true,\n * watch : false,\n * onBeforeSend(xhr, node, url) {},\n * onError(message, node, xhr, url) {},\n * onWarning(message) {},\n * onSuccess(cssText, node, url) {},\n * onComplete(cssText, styleNode, cssVariables, benchmark) {},\n * onFinally(hasChanged, hasNativeSupport, benchmark)\n * });\n */ function cssVars() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var msgPrefix = \"cssVars(): \";\n var settings = _extends({}, defaults, options);\n function handleError(message, sourceNode, xhr, url) {\n if (!settings.silent && window.console) {\n console.error(\"\".concat(msgPrefix).concat(message, \"\\n\"), sourceNode);\n }\n settings.onError(message, sourceNode, xhr, url);\n }\n function handleWarning(message) {\n if (!settings.silent && window.console) {\n console.warn(\"\".concat(msgPrefix).concat(message));\n }\n settings.onWarning(message);\n }\n function handleFinally(hasChanged) {\n settings.onFinally(Boolean(hasChanged), isNativeSupport, getTimeStamp() - settings.__benchmark);\n }\n if (!isBrowser) {\n return;\n }\n if (settings.watch) {\n settings.watch = defaults.watch;\n addMutationObserver(settings);\n cssVars(settings);\n return;\n } else if (settings.watch === false && cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n if (!settings.__benchmark) {\n if (cssVarsIsRunning === settings.rootElement) {\n cssVarsDebounced(options);\n return;\n }\n var srcNodes = [].slice.call(settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])'));\n settings.__benchmark = getTimeStamp();\n settings.exclude = [ cssVarsObserver ? '[data-cssvars]:not([data-cssvars=\"\"])' : '[data-cssvars=\"out\"]', \"link[disabled]:not([data-cssvars])\", settings.exclude ].filter((function(selector) {\n return selector;\n })).join(\",\");\n settings.variables = fixVarNames(settings.variables);\n srcNodes.forEach((function(srcNode) {\n var hasStyleCache = srcNode.nodeName.toLowerCase() === \"style\" && srcNode.__cssVars.text;\n var hasStyleChanged = hasStyleCache && srcNode.textContent !== srcNode.__cssVars.text;\n if (hasStyleCache && hasStyleChanged) {\n srcNode.sheet && (srcNode.sheet.disabled = false);\n srcNode.setAttribute(\"data-cssvars\", \"\");\n }\n }));\n if (!cssVarsObserver) {\n var outNodes = [].slice.call(settings.rootElement.querySelectorAll('[data-cssvars=\"out\"]'));\n outNodes.forEach((function(outNode) {\n var dataGroup = outNode.getAttribute(\"data-cssvars-group\");\n var srcNode = dataGroup ? settings.rootElement.querySelector('[data-cssvars=\"src\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) : null;\n if (!srcNode) {\n outNode.parentNode.removeChild(outNode);\n }\n }));\n if (cssVarsSrcNodeCount && srcNodes.length < cssVarsSrcNodeCount) {\n cssVarsSrcNodeCount = srcNodes.length;\n variableStore.dom = {};\n }\n }\n }\n if (document.readyState !== \"loading\") {\n if (isNativeSupport && settings.onlyLegacy) {\n var hasVarChange = false;\n if (settings.updateDOM) {\n var targetElm = settings.rootElement.host || (settings.rootElement === document ? document.documentElement : settings.rootElement);\n Object.keys(settings.variables).forEach((function(key) {\n var varValue = settings.variables[key];\n hasVarChange = hasVarChange || varValue !== getComputedStyle(targetElm).getPropertyValue(key);\n targetElm.style.setProperty(key, varValue);\n }));\n }\n handleFinally(hasVarChange);\n } else if (!isShadowDOMReady && (settings.shadowDOM || settings.rootElement.shadowRoot || settings.rootElement.host)) {\n getCssData({\n rootElement: defaults.rootElement,\n include: defaults.include,\n exclude: settings.exclude,\n skipDisabled: false,\n onSuccess: function onSuccess(cssText, node, url) {\n var isUserDisabled = (node.sheet || {}).disabled && !node.__cssVars;\n if (isUserDisabled) {\n return false;\n }\n cssText = cssText.replace(regex.cssComments, \"\").replace(regex.cssMediaQueries, \"\");\n cssText = (cssText.match(regex.cssVarDeclRules) || []).join(\"\");\n return cssText || false;\n },\n onComplete: function onComplete(cssText, cssArray, nodeArray) {\n parseVars(cssText, {\n store: variableStore.dom,\n onWarning: handleWarning\n });\n isShadowDOMReady = true;\n cssVars(settings);\n }\n });\n } else {\n cssVarsIsRunning = settings.rootElement;\n getCssData({\n rootElement: settings.rootElement,\n include: settings.include,\n exclude: settings.exclude,\n skipDisabled: false,\n onBeforeSend: settings.onBeforeSend,\n onError: function onError(xhr, node, url) {\n var responseUrl = xhr.responseURL || getFullUrl(url, location.href);\n var statusText = xhr.statusText ? \"(\".concat(xhr.statusText, \")\") : \"Unspecified Error\" + (xhr.status === 0 ? \" (possibly CORS related)\" : \"\");\n var errorMsg = \"CSS XHR Error: \".concat(responseUrl, \" \").concat(xhr.status, \" \").concat(statusText);\n handleError(errorMsg, node, xhr, responseUrl);\n },\n onSuccess: function onSuccess(cssText, node, url) {\n var isUserDisabled = (node.sheet || {}).disabled && !node.__cssVars;\n if (isUserDisabled) {\n return false;\n }\n var isLink = node.nodeName.toLowerCase() === \"link\";\n var isStyleImport = node.nodeName.toLowerCase() === \"style\" && cssText !== node.textContent;\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n if (settings.updateURLs && (isLink || isStyleImport)) {\n cssText = fixRelativeCssUrls(cssText, url);\n }\n return cssText;\n },\n onComplete: function onComplete(cssText, cssArray) {\n var nodeArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var currentVars = _extends({}, variableStore.dom, variableStore.user);\n var hasVarChange = false;\n variableStore.job = {};\n nodeArray.forEach((function(node, i) {\n var nodeCSS = cssArray[i];\n node.__cssVars = node.__cssVars || {};\n node.__cssVars.text = nodeCSS;\n if (regex.cssVars.test(nodeCSS)) {\n try {\n var cssTree = parseCss(nodeCSS, {\n preserveStatic: settings.preserveStatic,\n removeComments: true\n });\n parseVars(cssTree, {\n parseHost: Boolean(settings.rootElement.host),\n store: variableStore.dom,\n onWarning: handleWarning\n });\n node.__cssVars.tree = cssTree;\n } catch (err) {\n handleError(err.message, node);\n }\n }\n }));\n _extends(variableStore.job, variableStore.dom);\n if (settings.updateDOM) {\n _extends(variableStore.user, settings.variables);\n _extends(variableStore.job, variableStore.user);\n } else {\n _extends(variableStore.job, variableStore.user, settings.variables);\n _extends(currentVars, settings.variables);\n }\n hasVarChange = counters.job > 0 && Boolean(Object.keys(variableStore.job).length > Object.keys(currentVars).length || Boolean(Object.keys(currentVars).length && Object.keys(variableStore.job).some((function(key) {\n return variableStore.job[key] !== currentVars[key];\n }))));\n if (hasVarChange) {\n resetCssNodes(settings.rootElement);\n cssVars(settings);\n } else {\n var outCssArray = [];\n var outNodeArray = [];\n var hasKeyframesWithVars = false;\n if (settings.updateDOM) {\n counters.job++;\n }\n nodeArray.forEach((function(node, i) {\n var isSkip = !node.__cssVars.tree;\n if (node.__cssVars.tree) {\n try {\n transformCss(node.__cssVars.tree, _extends({}, settings, {\n variables: variableStore.job,\n onWarning: handleWarning\n }));\n var outCss = stringifyCss(node.__cssVars.tree);\n if (settings.updateDOM) {\n var nodeCSS = cssArray[i];\n var hasCSSVarFunc = regex.cssVarFunc.test(nodeCSS);\n if (!node.getAttribute(\"data-cssvars\")) {\n node.setAttribute(\"data-cssvars\", \"src\");\n }\n if (outCss.length && hasCSSVarFunc) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\") || ++counters.group;\n var outCssNoSpaces = outCss.replace(/\\s/g, \"\");\n var outNode = settings.rootElement.querySelector('[data-cssvars=\"out\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) || document.createElement(\"style\");\n hasKeyframesWithVars = hasKeyframesWithVars || regex.cssKeyframes.test(outCss);\n if (settings.preserveStatic) {\n node.sheet && (node.sheet.disabled = true);\n }\n if (!outNode.hasAttribute(\"data-cssvars\")) {\n outNode.setAttribute(\"data-cssvars\", \"out\");\n }\n if (outCssNoSpaces === node.textContent.replace(/\\s/g, \"\")) {\n isSkip = true;\n if (outNode && outNode.parentNode) {\n node.removeAttribute(\"data-cssvars-group\");\n outNode.parentNode.removeChild(outNode);\n }\n } else if (outCssNoSpaces !== outNode.textContent.replace(/\\s/g, \"\")) {\n [ node, outNode ].forEach((function(n) {\n n.setAttribute(\"data-cssvars-job\", counters.job);\n n.setAttribute(\"data-cssvars-group\", dataGroup);\n }));\n outNode.textContent = outCss;\n outCssArray.push(outCss);\n outNodeArray.push(outNode);\n if (!outNode.parentNode) {\n node.parentNode.insertBefore(outNode, node.nextSibling);\n }\n }\n }\n } else {\n if (node.textContent.replace(/\\s/g, \"\") !== outCss) {\n outCssArray.push(outCss);\n }\n }\n } catch (err) {\n handleError(err.message, node);\n }\n }\n if (isSkip) {\n node.setAttribute(\"data-cssvars\", \"skip\");\n }\n if (!node.hasAttribute(\"data-cssvars-job\")) {\n node.setAttribute(\"data-cssvars-job\", counters.job);\n }\n }));\n cssVarsSrcNodeCount = settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])').length;\n if (settings.shadowDOM) {\n var elms = [].concat(settings.rootElement).concat([].slice.call(settings.rootElement.querySelectorAll(\"*\")));\n for (var i = 0, elm; elm = elms[i]; ++i) {\n if (elm.shadowRoot && elm.shadowRoot.querySelector(\"style\")) {\n var shadowSettings = _extends({}, settings, {\n rootElement: elm.shadowRoot\n });\n cssVars(shadowSettings);\n }\n }\n }\n if (settings.updateDOM && hasKeyframesWithVars) {\n fixKeyframes(settings.rootElement);\n }\n cssVarsIsRunning = false;\n settings.onComplete(outCssArray.join(\"\"), outNodeArray, JSON.parse(JSON.stringify(variableStore.job)), getTimeStamp() - settings.__benchmark);\n handleFinally(outNodeArray.length);\n }\n }\n });\n }\n } else {\n document.addEventListener(\"DOMContentLoaded\", (function init(evt) {\n cssVars(options);\n document.removeEventListener(\"DOMContentLoaded\", init);\n }));\n }\n}\n\ncssVars.reset = function() {\n counters.job = 0;\n counters.group = 0;\n cssVarsIsRunning = false;\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsSrcNodeCount = 0;\n debounceTimer = null;\n isShadowDOMReady = false;\n for (var prop in variableStore) {\n variableStore[prop] = {};\n }\n};\n\nfunction addMutationObserver(settings) {\n function isDisabled(node) {\n var isDisabledAttr = isLink(node) && node.hasAttribute(\"disabled\");\n var isDisabledSheet = (node.sheet || {}).disabled;\n return isDisabledAttr || isDisabledSheet;\n }\n function isLink(node) {\n var isStylesheet = node.nodeName.toLowerCase() === \"link\" && (node.getAttribute(\"rel\") || \"\").indexOf(\"stylesheet\") !== -1;\n return isStylesheet;\n }\n function isStyle(node) {\n return node.nodeName.toLowerCase() === \"style\";\n }\n function isValidAttributeMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"attributes\" && isLink(mutation.target) && !isDisabled(mutation.target)) {\n var isEnabledMutation = mutation.attributeName === \"disabled\";\n var isHrefMutation = mutation.attributeName === \"href\";\n var isSkipNode = mutation.target.getAttribute(\"data-cssvars\") === \"skip\";\n var isSrcNode = mutation.target.getAttribute(\"data-cssvars\") === \"src\";\n if (isEnabledMutation) {\n isValid = !isSkipNode && !isSrcNode;\n } else if (isHrefMutation) {\n if (isSkipNode) {\n mutation.target.setAttribute(\"data-cssvars\", \"\");\n } else if (isSrcNode) {\n resetCssNodes(settings.rootElement, true);\n }\n isValid = true;\n }\n }\n return isValid;\n }\n function isValidStyleTextMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n var isStyleElm = isStyle(mutation.target);\n var isOutNode = mutation.target.getAttribute(\"data-cssvars\") === \"out\";\n isValid = isStyleElm && !isOutNode;\n }\n return isValid;\n }\n function isValidAddMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n isValid = [].slice.call(mutation.addedNodes).some((function(node) {\n var isElm = node.nodeType === 1;\n var hasAttr = isElm && node.hasAttribute(\"data-cssvars\");\n var isStyleWithVars = isStyle(node) && regex.cssVars.test(node.textContent);\n var isValid = !hasAttr && (isLink(node) || isStyleWithVars);\n return isValid && !isDisabled(node);\n }));\n }\n return isValid;\n }\n function isValidRemoveMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n isValid = [].slice.call(mutation.removedNodes).some((function(node) {\n var isElm = node.nodeType === 1;\n var isOutNode = isElm && node.getAttribute(\"data-cssvars\") === \"out\";\n var isSrcNode = isElm && node.getAttribute(\"data-cssvars\") === \"src\";\n var isValid = isSrcNode;\n if (isSrcNode || isOutNode) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\");\n var orphanNode = settings.rootElement.querySelector('[data-cssvars-group=\"'.concat(dataGroup, '\"]'));\n if (isSrcNode) {\n resetCssNodes(settings.rootElement, true);\n }\n if (orphanNode) {\n orphanNode.parentNode.removeChild(orphanNode);\n }\n }\n return isValid;\n }));\n }\n return isValid;\n }\n if (!window.MutationObserver) {\n return;\n }\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsObserver = new MutationObserver((function(mutations) {\n var hasValidMutation = mutations.some((function(mutation) {\n return isValidAttributeMutation(mutation) || isValidStyleTextMutation(mutation) || isValidAddMutation(mutation) || isValidRemoveMutation(mutation);\n }));\n if (hasValidMutation) {\n cssVars(settings);\n }\n }));\n cssVarsObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [ \"disabled\", \"href\" ],\n childList: true,\n subtree: true\n });\n}\n\nfunction cssVarsDebounced(settings) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout((function() {\n settings.__benchmark = null;\n cssVars(settings);\n }), delay);\n}\n\nfunction fixKeyframes(rootElement) {\n var animationNameProp = [ \"animation-name\", \"-moz-animation-name\", \"-webkit-animation-name\" ].filter((function(prop) {\n return getComputedStyle(document.body)[prop];\n }))[0];\n if (animationNameProp) {\n var allNodes = [].slice.call(rootElement.querySelectorAll(\"*\"));\n var keyframeNodes = [];\n var nameMarker = \"__CSSVARSPONYFILL-KEYFRAMES__\";\n for (var i = 0, len = allNodes.length; i < len; i++) {\n var node = allNodes[i];\n var animationName = getComputedStyle(node)[animationNameProp];\n if (animationName !== \"none\") {\n node.style[animationNameProp] += nameMarker;\n keyframeNodes.push(node);\n }\n }\n void document.body.offsetHeight;\n for (var _i = 0, _len = keyframeNodes.length; _i < _len; _i++) {\n var nodeStyle = keyframeNodes[_i].style;\n nodeStyle[animationNameProp] = nodeStyle[animationNameProp].replace(nameMarker, \"\");\n }\n }\n}\n\nfunction fixRelativeCssUrls(cssText, baseUrl) {\n var cssUrls = cssText.replace(regex.cssComments, \"\").match(regex.cssUrls) || [];\n cssUrls.forEach((function(cssUrl) {\n var oldUrl = cssUrl.replace(regex.cssUrls, \"$1\");\n var newUrl = getFullUrl(oldUrl, baseUrl);\n cssText = cssText.replace(cssUrl, cssUrl.replace(oldUrl, newUrl));\n }));\n return cssText;\n}\n\nfunction fixVarNames() {\n var varObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var reLeadingHyphens = /^-{2}/;\n return Object.keys(varObj).reduce((function(obj, value) {\n var key = reLeadingHyphens.test(value) ? value : \"--\".concat(value.replace(/^-+/, \"\"));\n obj[key] = varObj[value];\n return obj;\n }), {});\n}\n\nfunction getFullUrl(url) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base;\n a.href = url;\n return a.href;\n}\n\nfunction getTimeStamp() {\n return isBrowser && (window.performance || {}).now ? window.performance.now() : (new Date).getTime();\n}\n\nfunction resetCssNodes(rootElement) {\n var resetDOMVariableStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var resetNodes = [].slice.call(rootElement.querySelectorAll('[data-cssvars=\"skip\"],[data-cssvars=\"src\"]'));\n resetNodes.forEach((function(node) {\n return node.setAttribute(\"data-cssvars\", \"\");\n }));\n if (resetDOMVariableStore) {\n variableStore.dom = {};\n }\n}\n\nexport { cssVars as default };\n//# sourceMappingURL=css-vars-ponyfill.esm.js.map\n","import React, { createContext, PropsWithChildren } from \"react\";\nimport cssVars from \"css-vars-ponyfill\";\n\nexport type ThemeValue = {\n \"--color-primary\"?: string;\n \"--color-primary-dark\"?: string;\n \"--color-primary-reverse\"?: string;\n \"--color-disabled\"?: string;\n \"--color-warning\"?: string;\n \"--color-warning-light\"?: string;\n \"--background-color\"?: string;\n \"--body-background-color\"?: string;\n \"--font-color\"?: string;\n \"--font-color-secondary\"?: string;\n \"--font-color-tertiary\"?: string;\n \"--border-color\"?: string;\n \"--btn-color\"?: string;\n \"--btn-shadow-primary\"?: string;\n \"--mask-color\"?: string;\n \"--btn-color-disabled\"?: string;\n};\n\nexport type ThemeProviderProps = {\n value: ThemeValue & { [key: string]: string };\n scoped?: boolean;\n};\n\nconst createTheme = (theme: { [key: string]: string }) => {\n return createContext({ ...theme });\n};\n\nexport const ThemeContext = createTheme({});\n\nconst ThemeProvider: React.FC<PropsWithChildren<ThemeProviderProps>> = ({\n children,\n value,\n scoped = false,\n}) => {\n let clonedElement = children;\n if (!scoped) {\n Object.keys(value).forEach(key => {\n document.body.style.setProperty(key, value[key]);\n });\n } else {\n clonedElement = React.Children.map(children, (child, index) => {\n if (index === 0) {\n return React.cloneElement(child as any, {\n style: value,\n });\n } else {\n return child;\n }\n });\n }\n\n cssVars({\n variables: value as { [key: string]: string },\n });\n\n return (\n <ThemeContext.Provider value={value}>{clonedElement}</ThemeContext.Provider>\n );\n};\n\nexport default ThemeProvider;\n","import { useEffect, useState } from \"react\";\n\nexport default function (id, prefix?: string) {\n const [finalId, setId] = useState(id);\n useEffect(() => {\n setId(\n `${prefix}${(Math.random() * 1000)\n .toString()\n .replace(\".\", \"\")\n .slice(0, 20)}`\n );\n }, []);\n return finalId;\n}\n","import React, { ReactNode, useMemo } from \"react\";\nimport classNames from \"classnames\";\n\nimport CheckBox from \"..\";\n\nexport type CheckBoxItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type CheckBoxItem = Omit<CheckBoxItemType, \"checked\"> | string;\nexport type CheckboxGroupProps = {\n option: CheckBoxItem[];\n onChange?: (value: string[]) => void;\n defaultChecked?: string[] | string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n checkboxStyle?: React.CSSProperties;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n color?: string;\n size?: number;\n};\n\nconst CheckboxGroup: React.FC<CheckboxGroupProps> = props => {\n const {\n option,\n onChange,\n defaultChecked,\n padding,\n border,\n style,\n checkboxStyle,\n ...rest\n } = props;\n\n const getOpions = useMemo(() => {\n return option.map((item: CheckBoxItemType | string) => {\n let checkedItem =\n typeof defaultChecked === \"string\" ? [defaultChecked] : defaultChecked;\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: checkedItem?.includes(item),\n };\n } else {\n if (checkedItem?.includes(item.value)) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n // const [innerOption, setInnerOption] = useState(getOpions);\n\n // useEffect(() => {\n // setInnerOption(getOpions);\n // }, [defaultChecked, getOpions]);\n\n const handleChange = (checked, index) => {\n const newoption = [...getOpions];\n newoption[index].checked = checked;\n // setInnerOption(newoption);\n const newValue = newoption.filter(k => k.checked).map(item => item.value);\n\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-checkbox-group\", { padding }, { border });\n return (\n <div className={cls} style={style}>\n {getOpions.map((item, index) => {\n return (\n <CheckBox\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n checked={item.checked}\n key={index}\n style={checkboxStyle}\n onChange={checked => handleChange(checked, index)}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default CheckboxGroup;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHIcon =\n | \"prompt\"\n | \"score\"\n | \"info\"\n | \"failure\"\n | \"success\"\n | \"loading\"\n | \"back\"\n | \"notice\"\n | \"scan\"\n | \"light\"\n | \"faceScan\"\n | \"delete\"\n | \"radioFull\"\n | \"checkboxFull\"\n | \"checkedSquare\"\n | \"checked2\"\n | \"arrowTop\"\n | \"notice2\"\n | \"position\"\n | \"contacts\"\n | \"billFull\"\n | \"bill2\"\n | \"bill3\"\n | \"bill4\"\n | \"edit\"\n | \"editFull\"\n | \"camera\"\n | \"close\"\n | \"gift\"\n | \"message\"\n | \"user\"\n | \"wenhao\"\n | \"kefu\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\"\n | \"edit2\"\n | \"alipay\"\n | \"wechat\"\n | \"friendPay\"\n | \"pen\"\n | \"location\"\n | \"search\"\n | \"qa\"\n | \"thumbsUp\"\n | \"thumbsDown\"\n | \"thumbsUpFull\"\n | \"thumbsDownFull\"\n | \"waiting\"\n | \"scan2\"\n | \"safety\"\n | \"report\"\n | \"forbidden\"\n | \"unlock\"\n | (string & {});\n\nexport type XHIconProps = {\n icon: XHIcon;\n size?: number;\n color?: StandardLonghandProperties[\"color\"];\n style?: React.CSSProperties;\n onClick?: () => void;\n} & XHComponentCommonProps;\n\nconst Icon: React.FC<XHIconProps> = props => {\n const { icon = \"\", size = 0, className, color, style, ...rest } = props;\n\n const fixIcon = icon && `xh-icon-${icon}`;\n const iconCls = classNames(\"xh-icon\", fixIcon, className);\n\n const finalStyle: React.CSSProperties = {\n ...style,\n ...(size > 0 ? { fontSize: pxTransform(size) } : {}),\n color,\n };\n\n return <span className={iconCls} {...{ style: finalStyle }} {...rest} />;\n};\n\nexport default Icon;\n","import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\nimport Group from \"./Group\";\nimport \"./index.scss\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHCheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHCheckboxProps = {\n onChange?: (check: boolean, value: string) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst XHCheckbox: FC<XHCheckboxProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle,\n onChange,\n align,\n direction,\n justify,\n checked = false,\n disabled,\n value = \"\",\n style,\n size = 0,\n iconColor = \"#FFFFFF\",\n dataTrackId,\n } = props;\n\n const finalId = useGenerateId(id, \"xh-checkbox-id\");\n const [innerChecked, setInnerChecked] = useState(false);\n\n useEffect(() => {\n setInnerChecked(checked);\n }, [checked]);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value.length > 0;\n value = e.detail.value[0];\n }\n onChange && onChange(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (disabled) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value as string);\n };\n\n const cls = classNames(\"xh-checkbox\", className, align, direction, justify, {\n h5: process.env.TARO_ENV === \"h5\",\n });\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-checkbox-input\", {\n checked: innerChecked,\n disabled,\n })}\n >\n {\" \"}\n </View>\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n data-track-id={dataTrackId}\n type=\"checkbox\"\n id={finalId}\n name={name}\n className=\"xh-checkbox-input\"\n onChange={handleOnchange}\n value={value}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-checkbox-label\">{label}</span>\n </label>\n );\n};\n\nconst CheckBox = XHCheckbox as CompoundedComponent;\nCheckBox.Group = Group;\n\nexport default CheckBox;\n","import React, { useMemo, useState, ReactNode, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\n\nimport Radio from \"..\";\n\nexport type RadioItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type RadioItem = RadioItemType | string;\nexport type RadioGroupProps = {\n option: RadioItem[];\n onChange?: (value: string | number) => void;\n name: string;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n id?: string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n radioStyle?: React.CSSProperties;\n defaultChecked?: string | number;\n color?: string;\n inline?: boolean;\n size?: number;\n fancy?: boolean;\n checkedClass?: string;\n};\n\nconst RadioGroup: React.FC<RadioGroupProps> = props => {\n const {\n option,\n onChange,\n name,\n padding,\n border,\n radioStyle,\n defaultChecked,\n inline,\n style,\n checkedClass = \"\",\n ...rest\n } = props;\n\n let getOpions = useMemo(() => {\n return option?.map(item => {\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: defaultChecked === item,\n };\n } else {\n if (defaultChecked === item.value) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOptions, setInnerOptions] = useState(getOpions);\n\n useEffect(() => {\n setInnerOptions(getOpions);\n }, [getOpions]);\n\n const handleChange = idx => {\n let newoption = [...innerOptions];\n let newValue = \"\";\n for (let index = 0; index < newoption.length; index++) {\n if (index === idx) {\n newoption[index].checked = true;\n newValue = newoption[index].value;\n } else {\n newoption[index].checked = false;\n }\n }\n setInnerOptions(newoption);\n onChange?.(newValue);\n if (process.env.TARO_ENV !== \"h5\") {\n eventCenter.trigger(\"radioChange\", idx);\n }\n };\n\n const cls = classNames(\"xh-radio-group\", { padding }, { border }, { inline });\n\n return (\n <div className={cls} style={style}>\n {getOpions.map((item, index) => {\n return (\n <Radio\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n name={name}\n key={index}\n className={classNames(\"xh-radio-group-list\", {\n [checkedClass]: item.checked,\n })}\n circle\n onChange={() => handleChange(index)}\n checked={item.checked}\n style={radioStyle}\n index={index}\n group\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default RadioGroup;\n","import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\n\nimport Group from \"./Group\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\nimport \"./index.scss\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHRadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHRadioProps = {\n onChange?: (check: boolean, value: string | number) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n fancy?: boolean;\n index?: number;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n group?: boolean;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst XHRadio: FC<XHRadioProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle = true,\n onChange,\n align,\n direction,\n justify,\n checked,\n disabled,\n value,\n style,\n size = 0,\n fancy = false,\n index = 0,\n group = false,\n iconColor = \"#FFFFFF\",\n dataTrackId,\n } = props;\n\n const finalId = useGenerateId(id, \"xh-radio-id\");\n\n const [innerChecked, setInnerChecked] = useState(checked);\n\n const resetChecked = idx => {\n if (process.env.TARO_ENV !== \"h5\" && idx !== index) {\n setInnerChecked(false);\n }\n };\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\") {\n eventCenter.on(\"radioChange\", resetChecked);\n }\n\n return () => {\n eventCenter.off(\"radioChange\", resetChecked);\n };\n }, []);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value;\n\n value = e.detail.value;\n }\n\n onChange?.(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (innerChecked && group) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value || \"\");\n };\n\n const cls = classNames(\"xh-radio\", className, align, direction, justify);\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-radio-input\", {\n checked: innerChecked,\n })}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", circle && \"circle\", {\n fancy,\n })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"radio\"\n id={finalId}\n name={name}\n className=\"xh-radio-input\"\n onChange={handleOnchange}\n value={value}\n disabled={disabled}\n defaultChecked={checked}\n data-track-id={dataTrackId}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", { circle, fancy })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </label>\n );\n};\n\nconst Radio = XHRadio as CompoundedComponent;\nRadio.Group = Group;\n\nexport default Radio;\n","import React, { FC, ReactElement } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../../types\";\n\nimport { StepProps } from \"..\";\n\nconst classPrefix = `xh-steps`;\nconst stepClassPrefix = `xh-step`;\n\nconst defaultIcon = <span className={`${stepClassPrefix}-icon-dot`} />;\n\nexport type StepsProps = {\n current?: number;\n direction?: \"horizontal\" | \"vertical\";\n children?: React.ReactNode;\n style?: React.CSSProperties & {\n \"--line-to-next-color\"?: string;\n \"--color-primary\"?: string;\n };\n dashed?: boolean;\n} & XHComponentCommonProps;\n\nconst Steps: FC<StepsProps> = props => {\n const {\n direction = \"horizontal\",\n current = 0,\n style,\n className,\n dashed = false,\n } = props;\n const classString = classNames(\n classPrefix,\n `${classPrefix}-${direction}`,\n className\n );\n\n return (\n <View className={classString} style={style}>\n {React.Children.map(\n props.children,\n (child: ReactElement<StepProps>, index) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n const props = child.props;\n\n let status = props.status || \"wait\";\n if (index < current) {\n status = props.status || \"finish\";\n } else if (index === current) {\n status = props.status || \"process\";\n }\n\n const icon = props.icon ?? defaultIcon;\n\n return React.cloneElement(child, {\n status,\n icon,\n direction,\n dashed,\n });\n }\n )}\n </View>\n );\n};\n\nexport default Steps;\n","import React, { ReactNode, ForwardRefExoticComponent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport Steps from \"./Steps\";\nimport \"./index.scss\";\n\nexport type StepProps = {\n icon?: string | ReactNode;\n title: string | ReactNode;\n description?: string | ReactNode;\n direction?: \"horizontal\" | \"vertical\";\n status?: \"wait\" | \"process\" | \"finish\" | \"error\";\n fancy?: boolean;\n dashed?: boolean;\n style?: React.CSSProperties;\n prefix?: ReactNode;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst classPrefix = \"xh-step\";\n\nconst Step: React.FC<StepProps> = props => {\n const {\n title,\n description,\n icon,\n status = \"wait\",\n fancy,\n style,\n className,\n direction,\n prefix,\n dashed,\n dataTrackId,\n } = props;\n\n return (\n <View\n className={classNames(\n `${classPrefix}`,\n `${classPrefix}-status-${status}`,\n className\n )}\n data-track-id={dataTrackId}\n style={style}\n >\n {direction === \"vertical\" && prefix && (\n <View className={`${classPrefix}-prefix`}>{prefix}</View>\n )}\n <View className={classNames(`${classPrefix}-indicator`, { dashed })}>\n <View\n className={classNames(`${classPrefix}-icon-container`, { fancy })}\n >\n {icon}\n </View>\n </View>\n <View className={`${classPrefix}-content`}>\n <View className={`${classPrefix}-title`}>{title}</View>\n {!!description && (\n <View className={`${classPrefix}-description`}>{description}</View>\n )}\n </View>\n </View>\n );\n};\n\nexport type HybridComponent = ForwardRefExoticComponent<StepProps> & {\n Steps: typeof Steps;\n};\n\nconst XHStep = Step as HybridComponent;\nXHStep.Steps = Steps;\n\nexport default XHStep;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type BadgeProps = {\n content?: string;\n} & XHComponentCommonProps;\n\nconst Badge: React.FC<BadgeProps> = props => {\n const { content, children } = props;\n const cls = classNames(\"xh-badge\", classNames);\n\n return <View className={cls}>{!!children ? children : content}</View>;\n};\n\nexport default Badge;\n","import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n /**\n * 是否支持小数,小数保留小数点后两位,默认不支持\n */\n decimal?: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst XHAmountKeysWithDot: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"·\", value: \".\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n decimal,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n // 第一个字符不能是.\n if (value === \".\" && input === \"\") return;\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n // 支持小数点的情况下,如果第一个是0,自动填充.\n if (decimal && value === 0 && input === \"\") newInput = value + \".\";\n\n // 不能包含多个小数点\n if (value === \".\" && input.includes(\".\")) return;\n // 保留两位小数\n if (\n type === \"number\" &&\n input.indexOf(\".\") > -1 &&\n input.length - input.indexOf(\".\") === 3\n )\n return;\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const renderKeys = decimal ? XHAmountKeysWithDot : XHAmountKeys;\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {renderKeys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n","import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValue?: T;\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n defaultValue = \"\",\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n const [value, selectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue?.value\n );\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n const checkValue = typeof item === \"string\" ? item : item.value;\n selectedValue(checkValue);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent,\n {\n active:\n typeof item === \"string\"\n ? item === value\n : item.value === value,\n }\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n const innerShowClose = showClose || (mode === \"controlled\" && !showCancel);\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n >\n <Popup visible={innerVisible}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n {title && (\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {innerShowClose && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n )}\n <View\n className={classNames(\"xh-action-sheet-main-panel\", {\n noTitle: !title,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n className={classNames(\"xh-action-sheet-main-action\", {\n noMarinTop: mode !== \"controlled\" && innerShowClose,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : !innerShowClose ? (\n <View\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n ) : (\n <div></div>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n","import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\nimport classNames from \"classnames\";\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n needName?: boolean;\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Partial<Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">>,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n needName = true,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useMemo(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n if (needName) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n }\n\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n if (map.relationValue.filter(item => item === \"MATE\").length >= 2) {\n flag = false;\n }\n\n return flag;\n }, [formData, needName]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit);\n }, [formData, validateCanSubmit]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit,\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName || \"\";\n old[index].linkmanPhone = item.linkmanPhone || \"\";\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n [validateCanSubmit]\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n // const validStub: Record<\n // Exclude<keyof LinkManItem, \"relationType\">,\n // string[]\n // > = {\n // linkmanName: [],\n // linkmanPhone: [],\n // relationValue: [],\n // };\n\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === \"MATE\" &&\n currentItem.relationValue === \"MATE\"\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n };\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const name = inputRange(value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const phone = inputRange(value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass) {\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n }\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n {needName && (\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n value={item.linkmanName}\n type=\"text\"\n onInput={e => onNameChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n )}\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"number\"\n maxlength={11}\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n value={item.linkmanPhone}\n onInput={e => onPhoneChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n {showImportIcon && !needName && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n Promise.resolve().then(() => {\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n });\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n <View\n className={classNames(\n \"xh-linkman-main-input-main-input\",\n {\n placeholder: !item.relationValue,\n tt: process.env.TARO_ENV === \"tt\",\n }\n )}\n >\n {item.relationType || \"选择与联系人关系\"}\n </View>\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n","import React, { ReactNode } from \"react\";\nimport { Image, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nconst ImageMap = {\n success: \"https://s.xh1.cn/resources/images/public/success.png\",\n empty: \"https://s.xh1.cn/resources/images/public/empty.png\",\n fail: \"https://s.xh1.cn/resources/images/public/failure.png\",\n networkErr: \"https://s.xh1.cn/resources/images/public/error.png\",\n wait: \"https://s.xh1.cn/resources/images/public/ing.png\",\n submitted: \"https://s.xh1.cn/resources/images/public/success-info.png\",\n faceEmpty: \"https://s.xh1.cn/resources/images/public/faceEmpty.png\",\n};\n\nexport type ResultStatus = keyof typeof ImageMap;\n\nexport type ResultProps = {\n status: ResultStatus;\n title: ReactNode;\n desc?: ReactNode;\n slot?: ReactNode;\n action?: string;\n full?: boolean;\n onAction?: () => void;\n} & XHComponentCommonProps;\n\nconst Result: React.FC<ResultProps> = props => {\n const {\n className,\n status,\n title,\n desc,\n slot,\n action,\n onAction,\n full = true,\n } = props;\n\n const resultCls = classNames(\"xh-result\", className, { full });\n\n const renderImage = () => {\n if (process.env.TARO_ENV === \"h5\") {\n return <img src={ImageMap[status]} alt=\"\" className=\"xh-result-status\" />;\n } else {\n return <Image src={ImageMap[status]} className=\"xh-result-status\" />;\n }\n };\n\n const handleAction = () => {\n onAction?.();\n };\n\n return (\n <View className={resultCls}>\n {renderImage()}\n <View className=\"xh-result-title\">{title}</View>\n <View className=\"xh-result-desc\">{desc}</View>\n <View className=\"xh-result-slot\">{slot}</View>\n {action && (\n <View className={classNames(\"xh-result-action\", { hasSlot: slot })}>\n <Button onClick={handleAction} hollow size=\"full\">\n {action}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nexport default Result;\n","import React, { FC, useState, useEffect, MouseEvent, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { Button, View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport { replaceCharByIndex } from \"../../utils\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n onDelete: () => void;\n value: string;\n closeText?: string;\n activeIndex: number;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n activeIndex: number;\n}\n\nconst LICENSEPLATE_PROVINCES = [\n \"京\",\n \"津\",\n \"冀\",\n \"晋\",\n \"蒙\",\n \"辽\",\n \"吉\",\n \"黑\",\n \"沪\",\n \"苏\",\n \"浙\",\n \"皖\",\n \"闽\",\n \"赣\",\n \"鲁\",\n \"豫\",\n \"鄂\",\n \"湘\",\n \"粤\",\n \"桂\",\n \"琼\",\n \"渝\",\n \"川\",\n \"贵\",\n \"云\",\n \"藏\",\n \"陕\",\n \"甘\",\n \"青\",\n \"宁\",\n \"新\",\n \"港\",\n \"澳\",\n \"台\",\n \"使\",\n];\n\nconst LICENSEPLATE_NUMBERS = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\"];\n\nconst LICENSEPLATE_LETTERS = [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n];\n\nconst specialArea = [\"港\", \"澳\", \"学\", \"领\"];\nconst finalArea = [\"临\", \"澳\", \"学\", \"领\"];\n\nexport type TYPE_MODE = \"province\" | \"letter\" | \"mixed\";\n\nconst LicensePlateKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n showClose = true,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n closeText = \"完成\",\n onDelete,\n className,\n activeIndex,\n } = props;\n const [input, setInput] = useState(value);\n\n // 键盘的key\n const keys = useMemo(() => {\n if (activeIndex === 0) return LICENSEPLATE_PROVINCES;\n if (activeIndex === 6)\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS, ...specialArea];\n if (activeIndex === 7)\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS, ...finalArea];\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS];\n }, [activeIndex]);\n\n const title = useMemo(() => {\n if (activeIndex === 0) return \"选择省份\";\n if (activeIndex === 1) return \"选择字母\";\n return \"选择数字或字母\";\n }, [activeIndex]);\n\n const mode = useMemo<TYPE_MODE>(() => {\n if (activeIndex === 0) return \"province\";\n if (activeIndex === 1) return \"letter\";\n return \"mixed\";\n }, [activeIndex]);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n e.stopPropagation();\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n /**\n * 根据 activeIndex 拼凑新值,如果activeIndex小于当前的值的长度,就说明后面已经有值,这时候直接替换,否则拼接\n * @param key\n */\n function handleKeyPress(key: string): void {\n if (key === value[activeIndex]) return;\n if (process.env.TARO_ENV === \"h5\") {\n // e.stopImmediatePropagation();\n }\n let newInput = input;\n if (activeIndex < input.length) {\n newInput = replaceCharByIndex(input, activeIndex, key);\n } else {\n newInput = input + key;\n }\n\n setInput(newInput);\n\n onChange && onChange(newInput);\n }\n\n const handleDelete = () => {\n onDelete();\n };\n\n const keyboardcls = classNames(\"xh-license-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-license-keyboard-header\">\n <View className=\"xh-license-keyboard-header-title\">{title}</View>\n <View className=\"xh-license-keyboard-header-delete\"></View>\n {showClose && (\n <View\n className=\"xh-license-keyboard-header-close\"\n onClick={handleClose}\n >\n {closeText}\n </View>\n )}\n </View>\n <View className=\"xh-license-keyboard-body\">\n {keys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-license-keyboard-body-key\")}\n >\n {process.env.TARO_ENV === \"h5\" ? (\n <button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV\n )}\n disabled={mode === \"letter\" && index < 10}\n onClick={e => {\n e.stopPropagation();\n handleKeyPress(key);\n }}\n >\n {key}\n </button>\n ) : (\n <Button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV\n )}\n disabled={mode === \"letter\" && index < 10}\n onClick={e => {\n e.stopPropagation();\n if (mode === \"letter\" && index < 10) return;\n handleKeyPress(key);\n }}\n >\n {key}\n </Button>\n )}\n </View>\n ))}\n <View\n className={classNames(\"xh-license-keyboard-body-key\", \"delete\")}\n >\n {process.env.TARO_ENV === \"h5\" ? (\n <button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV,\n \"delete\"\n )}\n disabled={activeIndex === 0}\n onClick={e => {\n e.stopPropagation();\n handleDelete();\n }}\n ></button>\n ) : (\n <Button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV,\n \"delete\"\n )}\n disabled={activeIndex === 0}\n onClick={e => {\n e.stopPropagation();\n if (value.length === 0) return;\n console.log(\"delete\");\n handleDelete();\n }}\n ></Button>\n )}\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default LicensePlateKeyboard;\n","import React, {\n useImperativeHandle,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\nimport { isLicenseNo, replaceCharByIndex } from \"../../utils\";\n\nimport \"./index.scss\";\n\nexport type LicensePlateProps = {\n value: string;\n onChange: (index: string) => void;\n /**\n * 是否默认展示键盘\n */\n showKeyboard?: boolean;\n closeText?: string;\n label?: ReactNode;\n onFinish?: () => void;\n padding?: boolean;\n border?: boolean;\n autoScroll?: boolean;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nconst LENGTH = 8;\n\nexport type LicensePlateInputRef = {\n /**\n * 是否有效,组件会用大写字母(O) 来代替空位,如果要自己校验,那么就得判断有没有“O”来判断有没有空格\n */\n isValid: boolean;\n};\n\nconst LicensePlateInput = forwardRef<LicensePlateInputRef, LicensePlateProps>(\n (props, fromRef) => {\n const {\n value = \"\",\n onChange,\n className,\n showKeyboard = false,\n padding = false,\n border = false,\n onFinish,\n autoScroll = true,\n label,\n dataTrackId,\n ...rest\n } = props;\n\n const [activeIndex, setActiveIndex] = useState(value.length);\n\n const [show, setShowKeyboard] = useState(showKeyboard);\n\n const InputRef = useRef<HTMLDivElement>(null);\n\n /**\n * 空位用“O”代替(大写字母 O)\n * @param neVal 新值\n */\n const handleOnChage = neVal => {\n setActiveIndex(old => {\n if (neVal.replace(/O/g, \"\").length >= LENGTH) return old;\n return old + 1;\n });\n // if (neVal.length === LENGTH) {\n // onFinish?.();\n // setShowKeyboard(false);\n // }\n onChange(neVal);\n };\n\n const handleKeyClick = (index: number) => {\n if (index > value.length - 1) return;\n setActiveIndex(index);\n };\n\n useImperativeHandle(\n fromRef,\n () => ({\n isValid: isLicenseNo(value),\n }),\n [value]\n );\n\n function renderInputs(): ReactNode {\n const Inputs: any = [];\n\n for (let i = 0; i < LENGTH; i++) {\n const char = value[i];\n\n Inputs.push(\n <View\n key={i}\n className={classNames(\"xh-licensePlate-input-item\", {\n active: activeIndex === i,\n showNew: i === LENGTH - 1 && value.length !== LENGTH,\n })}\n onClick={() => handleKeyClick(i)}\n >\n {char === \"O\" ? \"\" : char}\n </View>\n );\n }\n\n return Inputs;\n }\n\n /**\n * 删除其中一位\n * 如果删除那一位后面有值就用“O”代替删除的那一位,否则直接删除\n * 只要当前value有值就把 index-1\n */\n const handleDelete = () => {\n const nextChar = value[activeIndex + 1];\n const replaceChar = nextChar ? \"O\" : \"\";\n const newValue = replaceCharByIndex(value, activeIndex, replaceChar);\n\n if (newValue.length !== 0) setActiveIndex(old => old - 1);\n onChange(newValue);\n };\n\n const handleClose = () => {\n setShowKeyboard(false);\n };\n\n useEffect(() => {\n if (\n show &&\n InputRef.current &&\n autoScroll &&\n process.env.TARO_ENV === \"h5\"\n ) {\n InputRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [show, autoScroll]);\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n setShowKeyboard(true);\n }\n const xhLicensePlateCls = classNames(\n \"xh-licensePlate\",\n className,\n { padding },\n { border }\n );\n\n return (\n <View className={xhLicensePlateCls} data-track-id={dataTrackId}>\n {label && <label className=\"xh-licensePlate-label\">{label}</label>}\n <View\n className=\"xh-licensePlate-input\"\n onClick={handlerClick}\n ref={InputRef}\n >\n {renderInputs()}\n </View>\n <Keyboard\n activeIndex={activeIndex}\n show={show}\n value={value}\n onChange={handleOnChage}\n onDelete={handleDelete}\n onClose={handleClose}\n {...rest}\n />\n </View>\n );\n }\n);\n\nexport default LicensePlateInput;\n","import React, {\n ReactNode,\n forwardRef,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput, { FocusHandler } from \"../FormInput\";\nimport { checkBankCard, creditCard } from \"../../utils\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type PhoneNumberInputProps = {\n showScan?: boolean;\n label?: string;\n /**\n * 只有在direction为column才生效\n */\n bankName?: ReactNode;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n} & XHComponentCommonProps;\n\nexport type BankCardNumberInputRef = { isValid: boolean; focus: () => void };\n\nconst BankCardNumberInput = forwardRef<\n BankCardNumberInputRef,\n PhoneNumberInputProps\n>((props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n bankName,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入银行卡号\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n } = props;\n\n const validateCardNumber = value => {\n const newVal = value.replace(/\\s/g, \"\");\n if (newVal.length < 16 || newVal.length > 19) return false;\n return checkBankCard(newVal);\n };\n\n const FormInput = useRef<FocusHandler>(null);\n\n const handleBlur = value => {\n console.log(\"blur\");\n onBlur?.();\n if (!validateCardNumber(value))\n onError?.(value === \"\" ? \"银行卡号不能为空\" : \"银行卡号格式不正确\");\n };\n\n const handleChange = value => {\n const formatValue = creditCard(value);\n onChange?.(formatValue);\n };\n\n const handleOnScan = () => {\n console.log(fromRef, \"fromRef...\");\n onScan?.();\n };\n\n useImperativeHandle(\n fromRef,\n () => {\n return {\n isValid: validateCardNumber(value),\n focus: () => {\n FormInput?.current?.focus();\n },\n };\n },\n [value]\n );\n\n return (\n <View className={classNames(\"xh-bankcard-number-input\", className)}>\n <XHFormInput\n padding\n ref={FormInput}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-bankcard-number-input-scan\"\n ></View>\n )\n }\n direction={direction}\n label={label}\n mainExtra={\n direction !== \"row\" && (\n <View className=\"xh-bankcard-number-input-name\">{bankName}</View>\n )\n }\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type=\"tel\"\n border={border}\n value={creditCard(value)}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-bankcard-number-input-slot\">{slot}</View>}\n </View>\n );\n});\n\nexport default BankCardNumberInput;\n","import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport \"./index.scss\";\nimport { verifyIdcard } from \"../../utils\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type IDNumberInputProps = {\n showScan?: boolean;\n label?: string;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n dataTrackId?: string;\n} & XHComponentCommonProps;\n\nexport type IDNumberInputRef = {\n isValid: boolean;\n focus: () => void;\n};\n\nconst BankCardNumberInput = forwardRef<IDNumberInputRef, IDNumberInputProps>(\n (props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入身份证\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n dataTrackId,\n } = props;\n\n const handleBlur = value => {\n onBlur?.();\n if (!verifyIdcard(value))\n onError?.(value === \"\" ? \"身份证号不能为空\" : \"请输入正确的身份证号\");\n };\n\n const handleChange = value => {\n const newValue = value.replace(/\\s/g, \"\");\n\n onChange?.(newValue);\n };\n\n const handleOnScan = () => {\n onScan?.();\n };\n\n useImperativeHandle(fromRef, () => {\n return {\n isValid: verifyIdcard(value.replace(/\\s/g, \"\")),\n focus: () => {\n if (typeof fromRef === \"object\") {\n fromRef?.current?.focus();\n }\n },\n };\n });\n\n return (\n <View className={classNames(\"xh-idnumber-input\", className)}>\n <XHFormInput\n padding\n ref={fromRef}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-idnumber-input-scan\"\n ></View>\n )\n }\n border={border}\n direction={direction}\n label={label}\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type={process.env.TARO_ENV === \"weapp\" ? \"idcard\" : \"text\"}\n value={value.replace(/\\s/g, \"\")}\n onBlur={handleBlur}\n onChange={handleChange}\n data-track-id={dataTrackId}\n />\n {slot && <View className=\"xh-idnumber-input-slot\">{slot}</View>}\n </View>\n );\n }\n);\n\nexport default BankCardNumberInput;\n","import { useEffect } from \"react\";\nimport useFirstMountState from \"./useFirstMountState\";\n\nexport default function useUpdateEffect(effect, deps) {\n const isFirstMount = useFirstMountState(); // 是否首次渲染\n\n useEffect(() => {\n if (!isFirstMount) {\n // 如果不是首次,则执行 effect 函数\n return effect();\n }\n }, deps);\n}\n","import { useRef } from \"react\";\n\nexport default function useFirstMountState(): boolean {\n const isFirst = useRef(true);\n\n if (isFirst.current) {\n isFirst.current = false;\n\n return true;\n }\n\n return isFirst.current;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\n/* eslint-disable accessor-pairs */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\nimport { CanvasContext } from \"@tarojs/taro\";\n\nexport default class WxCanvas {\n private ctx: CanvasContext;\n\n private chart: any;\n\n private canvasNode: any;\n\n private event: {};\n\n constructor(ctx: CanvasContext, isNew: boolean, canvasNode?: any) {\n this.ctx = ctx;\n this.chart = null;\n if (isNew) {\n this.canvasNode = canvasNode;\n } else {\n this._initStyle(ctx);\n }\n\n this._initEvent();\n }\n\n getContext(contextType) {\n if (contextType === \"2d\") {\n return this.ctx;\n }\n }\n\n setChart(chart) {\n this.chart = chart;\n }\n\n attachEvent() {\n // noop\n }\n\n addEventListener() {\n // noop\n }\n\n removeEventListener() {\n // noop\n }\n\n detachEvent() {\n // noop\n }\n\n _initCanvas(zrender, ctx) {\n zrender.util.getContext = function () {\n return ctx;\n };\n\n zrender.util.$override(\"measureText\", function (text, font) {\n ctx.font = font || \"12px sans-serif\";\n return ctx.measureText(text);\n });\n }\n\n _initStyle(ctx) {\n let styles = [\n \"fillStyle\",\n \"strokeStyle\",\n \"globalAlpha\",\n \"textAlign\",\n \"textBaseAlign\",\n \"shadow\",\n \"lineWidth\",\n \"lineCap\",\n \"lineJoin\",\n \"lineDash\",\n \"miterLimit\",\n \"fontSize\",\n ];\n\n styles.forEach(style => {\n Object.defineProperty(ctx, style, {\n set: value => {\n if (\n (style !== \"fillStyle\" && style !== \"strokeStyle\") ||\n (value !== \"none\" && value !== null)\n ) {\n ctx[\"set\" + style.charAt(0).toUpperCase() + style.slice(1)](value);\n }\n },\n });\n });\n\n ctx.createRadialGradient = function () {\n return ctx.createCircularGradient.apply(ctx, arguments);\n };\n }\n\n _initEvent() {\n this.event = {};\n const eventNames = [\n {\n wxName: \"touchStart\",\n ecName: \"mousedown\",\n },\n {\n wxName: \"touchMove\",\n ecName: \"mousemove\",\n },\n {\n wxName: \"touchEnd\",\n ecName: \"mouseup\",\n },\n {\n wxName: \"touchEnd\",\n ecName: \"click\",\n },\n ];\n\n eventNames.forEach(name => {\n this.event[name.wxName] = e => {\n const touch = e.touches[0];\n if (this.chart) {\n this.chart.getZr()?.handler?.dispatch(name.ecName, {\n zrX: name.wxName === \"tap\" ? touch.clientX : touch.x,\n zrY: name.wxName === \"tap\" ? touch.clientY : touch.y,\n });\n }\n };\n });\n }\n\n set width(w) {\n if (this.canvasNode) this.canvasNode.width = w;\n }\n\n set height(h) {\n if (this.canvasNode) this.canvasNode.height = h;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n get width() {\n if (this.canvasNode) return this.canvasNode.width;\n return 0;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n get height() {\n if (this.canvasNode) return this.canvasNode.height;\n return 0;\n }\n}\n","export function wrapTouch(event) {\n for (let i = 0; i < event.touches.length; ++i) {\n const touch = event.touches[i];\n touch.offsetX = touch.x;\n touch.offsetY = touch.y;\n }\n return event;\n}\n\nexport function touchStart({ chart, event }) {\n if (chart && event.touches.length > 0) {\n const touch = event.touches[0];\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mousedown\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"mousemove\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"start\");\n }\n}\n\nexport function touchMove({ chart, event }) {\n if (chart && event.touches.length > 0) {\n const touch = event.touches[0];\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mousedown\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"mousemove\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"start\");\n }\n}\n\nexport function touchEnd({ chart, event }) {\n if (chart) {\n const touch = event.changedTouches ? event.changedTouches[0] : {};\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mouseup\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"click\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"end\");\n }\n}\n","import Taro, { useReady } from \"@tarojs/taro\";\nimport { Canvas, View } from \"@tarojs/components\";\nimport React, {\n useRef,\n useState,\n useMemo,\n memo,\n useEffect,\n CSSProperties,\n ForwardRefRenderFunction,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport {\n isString,\n isFunction,\n isEqual,\n pick,\n uniqueId,\n tripleDefer,\n compareVersion,\n} from \"@/utils\";\nimport usePrevious from \"@/hooks/usePrevious\";\nimport useUnMount from \"@/hooks/useUnMount\";\nimport useUpdateEffect from \"@/hooks/useUpdateEffect\";\nimport WxCanvas from \"./weapp/wx-canvas\";\nimport { touchEnd, touchMove, touchStart } from \"./weapp/wx-touch\";\nimport {\n EChartsProps,\n InitEchart,\n EChartsInstance,\n EchartsHandle,\n} from \"./types\";\n\nexport type {\n EChartsProps,\n EChartOption,\n EChartsInstance,\n EChartsLoadingOption,\n EchartsHandle,\n} from \"./types\";\n\n// 只兼容H5&微信小程序\nconst Echarts: ForwardRefRenderFunction<EchartsHandle, EChartsProps> = (\n { echarts, isPage = true, canvasId: pCanvasId, ...props },\n ref\n) => {\n const canvasRef = useRef<HTMLDivElement | HTMLCanvasElement | null>();\n const chartRef = useRef<EChartsInstance>();\n const [isInitialResize, setIsInitialResize] = useState<boolean>(true);\n const prevProps = usePrevious<EChartsProps>(props);\n const canvasId = useMemo(() => pCanvasId || uniqueId(\"canvas_\"), [pCanvasId]);\n const canvasProps = useMemo(\n () => [\n \"disableScroll\",\n \"disableScroll\",\n \"onTouchCancel\",\n \"onLongTap\",\n \"onError\",\n \"nativeProps\",\n \"className\",\n \"key\",\n \"hidden\",\n \"animation\",\n ],\n []\n );\n const canvasStyle = useMemo(\n () =>\n ({\n width: \"100%\",\n height: \"300px\",\n ...(props.style as CSSProperties),\n } as CSSProperties),\n [props.style]\n );\n /**\n * 获取小程序渲染层的节点要在 onReady 生命周期,等同于 useReady hooks\n * 访问小程序渲染层的 DOM 节点。\n */\n useReady(() => {\n // 顶层页面级别才触发useReady 【注意Popup 、Dialog 等弹出层 都不是页面级别】\n if (Taro.getEnv() === Taro.ENV_TYPE.WEAPP && isPage) {\n Taro.nextTick(() => {\n initChart();\n });\n }\n });\n\n useEffect(() => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB || !isPage) {\n tripleDefer(() => {\n Taro.nextTick(() => {\n initChart();\n });\n });\n }\n }, []);\n\n useUnMount(() => {\n dispose();\n });\n\n useUpdateEffect(() => {\n if (\n !isEqual(prevProps?.theme, props.theme) ||\n !isEqual(prevProps?.opts, props.opts) ||\n !isEqual(prevProps?.onEvents, props.onEvents)\n ) {\n dispose();\n initChart(); // re-render\n return;\n }\n\n // update\n const pickKeys = [\n \"option\",\n \"notMerge\",\n \"lazyUpdate\",\n \"showLoading\",\n \"loadingOption\",\n ];\n if (!isEqual(pick(props, pickKeys), pick(prevProps, pickKeys))) {\n updateEChartsOption();\n }\n\n /**\n * resize: style 、className\n */\n if (\n !isEqual(prevProps?.style, props.style) ||\n !isEqual(prevProps?.className, props.className)\n ) {\n resize(canvasRef.current);\n }\n }, [props]);\n\n // 大小变化\n const resize = canvas => {\n const echartsInstance = echarts.getInstanceByDom(canvas);\n // 调整大小不应在第一次渲染时发生,因为它会取消初始 echarts 动画\n if (!isInitialResize) {\n try {\n echartsInstance.resize({\n width: \"auto\",\n height: \"auto\",\n });\n } catch (e) {\n console.warn(e);\n }\n }\n setIsInitialResize(false);\n };\n\n const initEchartsInstance = async ({\n width,\n height,\n devicePixelRatio,\n }: InitEchart) => {\n const { theme, opts } = props;\n return new Promise((resolve, reject) => {\n if (canvasRef.current) {\n chartRef.current = echarts.init(canvasRef.current, theme, {\n width,\n height,\n devicePixelRatio,\n ...opts,\n });\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB) {\n /**\n * echart同一个dom下多次动态渲染值,防止值、事件重复互相影响\n * 每次init之后,先dispose释放下资源,再重新init\n */\n const echartsInstance = echarts.getInstanceByDom(canvasRef.current);\n echartsInstance.on(\"finished\", () => {\n echarts.dispose(canvasRef.current);\n // 获取渲染后的width、height\n const newOpts = {\n width,\n height,\n devicePixelRatio,\n ...opts,\n };\n chartRef.current = echarts.init(canvasRef.current, theme, newOpts);\n resolve(chartRef.current);\n });\n } else {\n resolve(chartRef.current);\n }\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject();\n }\n });\n };\n\n const updateEChartsOption = () => {\n /**\n * 官方文档:https://echarts.apache.org/zh/api.html#echartsInstance.setOption\n */\n const {\n option,\n notMerge = true, // 不跟之前设置的option合并,保证每次渲染都是最新的option\n lazyUpdate = false, // 设置完 option 后是否不立即更新图表,默认为 false,即同步立即更新。如果为 true,则会在下一个 animation frame 中,才更新图表\n showLoading,\n loadingOption = null,\n } = props;\n // 1. 获取echarts实例\n const echartInstance = echarts.getInstanceByDom(canvasRef.current);\n if (echartInstance) {\n // 2. 设置option\n echartInstance.setOption(option, notMerge, lazyUpdate);\n // 3. 显示加载动画效果\n if (showLoading) echartInstance.showLoading(loadingOption);\n else echartInstance.hideLoading();\n }\n\n return echartInstance;\n };\n\n // 绑定事件\n const bindEvents = (instance, events) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n function bindEvent(eventName, func) {\n if (isString(eventName) && isFunction(func)) {\n instance.on(eventName, param => {\n func(param, instance);\n });\n }\n }\n\n for (const eventName in events) {\n if (Object.prototype.hasOwnProperty.call(events, eventName)) {\n bindEvent(eventName, events[eventName]);\n }\n }\n };\n\n // 渲染图表\n const renderEcharts = async ({\n width,\n height,\n devicePixelRatio,\n }: InitEchart) => {\n const { onEvents, onChartReady } = props;\n // 1. 初始化图表\n await initEchartsInstance({\n width,\n height,\n devicePixelRatio,\n });\n // 2. 更新echarts实例\n const echartsInstance = updateEChartsOption();\n // 3. 绑定事件\n bindEvents(echartsInstance, onEvents || {});\n // 4. 图表渲染完成\n if (isFunction(onChartReady)) onChartReady?.(echartsInstance);\n\n // 5. resize\n if (canvasRef.current) {\n resize(canvasRef.current);\n }\n };\n\n // 销毁echarts实例\n const dispose = () => {\n if (chartRef.current) {\n echarts?.dispose(chartRef.current);\n }\n };\n\n // 初始化微信小程序图表\n const initWexinChart = () => {\n const query = Taro.createSelectorQuery();\n query\n .select(`#${canvasId}`)\n .fields({\n node: true,\n size: true,\n })\n .exec(res => {\n const [result] = res;\n if (result) {\n const { node, width, height } = result || {};\n const canvasNode = node;\n const canvasDpr = Taro.getSystemInfoSync().pixelRatio;\n const ctx = canvasNode.getContext(\"2d\");\n const canvas = new WxCanvas(ctx, true, canvasNode);\n echarts?.setCanvasCreator(() => {\n return canvas;\n });\n canvasRef.current = canvas as any;\n renderEcharts({\n width,\n height,\n devicePixelRatio: canvasDpr,\n });\n }\n });\n };\n\n // 初始化图表\n const initChart = () => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB && canvasRef.current) {\n const width =\n props.style?.width ||\n canvasRef.current?.clientWidth ||\n window.innerWidth;\n const height =\n props.style?.height || canvasRef.current?.clientHeight || 300;\n renderEcharts({\n width,\n height,\n devicePixelRatio: window.devicePixelRatio,\n });\n } else {\n const version = Taro.getSystemInfoSync().SDKVersion || \"\";\n const canUseNewCanvas = compareVersion(version, \"2.9.0\") >= 0;\n if (canUseNewCanvas) {\n // console.log('微信基础库版本大于2.9.0,开始使用<canvas type=\"2d\"/>');\n // 2.9.0 可以使用 <canvas type=\"2d\"></canvas>\n initWexinChart();\n } else {\n console.error(\n `当前基础库为${version}, 微信基础库版本过低,需大于等于 2.9.0`\n );\n }\n }\n };\n\n useImperativeHandle(ref, () => ({ chartRef, canvasRef }));\n\n // container component\n const renderContainerComponent = useMemo(() => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEAPP) {\n return (\n // eslint-disable-next-line react/react-in-jsx-scope\n <Canvas\n ref={canvasRef}\n canvasId={canvasId}\n id={canvasId}\n style={canvasStyle}\n type=\"2d\"\n onTouchEnd={event => touchEnd({ chart: chartRef.current, event })}\n onTouchMove={event => touchMove({ chart: chartRef.current, event })}\n onTouchStart={event => touchStart({ chart: chartRef.current, event })}\n {...pick(props, canvasProps)}\n />\n );\n }\n // eslint-disable-next-line react/react-in-jsx-scope\n return (\n <View\n className=\"xh-echarts\"\n ref={canvasRef}\n id={canvasId}\n style={canvasStyle}\n />\n );\n }, [props, canvasProps, canvasId]);\n\n return renderContainerComponent;\n};\n\nexport default memo(forwardRef(Echarts));\n","import { useEffect } from \"react\";\n\nexport default function useUnMount(fn: () => void) {\n useEffect(() => fn, []);\n}\n","import { useEffect, useRef } from \"react\";\n\nexport default function usePrevious<T = unknown>(value) {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","import React, { CSSProperties, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n style?: CSSProperties & {\n \"--loading-border-color\"?: StandardLonghandProperties[\"color\"];\n \"--loading-border-width\"?: string;\n };\n size?: number;\n} & XHComponentCommonProps;\n\nconst Activityindicator: FC<LoadingProps> = ({\n className,\n style,\n size = 36,\n ...rest\n}) => {\n const cls = classNames(\"xh-activity-indicator\", className);\n\n let finalStyle = {\n ...style,\n ...rest,\n };\n if (size !== 36) {\n finalStyle = {\n ...finalStyle,\n width: pxTransform(size),\n height: pxTransform(size),\n };\n }\n\n return (\n <View className={cls} style={finalStyle}>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n </View>\n );\n};\n\nexport default Activityindicator;\n","import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: ReactNode;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n showBottom?: boolean;\n title?: ReactNode;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n showBottom = true,\n title = false,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n {title && <View className=\"xh-amount-input-title\">{title}</View>}\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">&yen;</View>\n <View className=\"xh-amount-input-top-amount\" onClick={handlerClick}>\n <View className=\"xh-amount-input-top-amount-num\">\n <View className=\"xh-amount-input-top-amount-num-key\">&nbsp;</View>\n {renderInputs()}\n <View\n className={classNames(\"xh-amount-input-top-amount-num-cursor\", {\n focus,\n })}\n ></View>\n </View>\n <View\n className=\"xh-amount-input-top-amount-shortcut\"\n onClick={loanOnekey}\n >\n {typeof shortcut === \"string\" ? (\n <View className=\"xh-amount-input-top-amount-shortcut-text\">\n {shortcut}\n </View>\n ) : (\n shortcut\n )}\n </View>\n </View>\n {errTip && <View className=\"xh-amount-input-top-error\">{errTip}</View>}\n </View>\n {slot && <View className=\"xh-amount-input-slot\">{slot}</View>}\n {showBottom && (\n <View className=\"xh-amount-input-bottom\">\n <View className=\"xh-amount-input-bottom-range\">\n 单笔可借:\n <View className=\"xh-amount-input-bottom-range-number\">\n {minAmount}-{maxAmount}元\n </View>\n </View>\n {showUpgrade && (\n <View className=\"xh-amount-input-bottom-tip\">\n 额度不满意?\n <View\n className=\"xh-amount-input-bottom-tip-update\"\n onClick={handleUpgrade}\n >\n 立即提额\n </View>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nexport default AmountInput;\n","import React, { FC } from \"react\";\nimport classNames from \"classnames\";\n\nimport Image from \"../../../src/components/Image\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type XHListProps = {\n code: string;\n size?: number;\n} & XHComponentCommonProps;\n\nconst BANKCARD_URL =\n \"https://s.xh1.cn/resources/images/bank/logo-2.0.0/placeholder.png\";\n\nconst XHBankIcon: FC<XHListProps> = props => {\n const { code, className, size } = props;\n\n const cls = classNames(\"xh-bank-icon\", className);\n\n return (\n <Image\n src={BANKCARD_URL.replace(\"placeholder\", code)}\n alt={code}\n width={size}\n height={size}\n className={cls}\n />\n );\n};\nexport default XHBankIcon;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n paddingHorizontal?: boolean;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n paddingHorizontal = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n { paddingHorizontal },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={cellcls} onClick={handleClick}>\n {icon && <View className=\"xh-cell-icon\">{icon}</View>}\n <View className={mainCls}>\n {content && <View className=\"xh-cell-main-content\">{content}</View>}\n {contentDescription && (\n <View className=\"xh-cell-main-description\">{contentDescription}</View>\n )}\n </View>\n <View className=\"xh-cell-description\" style={{ color: descriptionColor }}>\n {description ? (\n <View>{description}</View>\n ) : (\n <View className=\"xh-cell-description-placeholder\">{placeholder}</View>\n )}\n <Text className=\"xh-cell-description-sub\">{subDescription}</Text>\n </View>\n <View className=\"xh-cell-value\">\n <View className=\"xh-cell-value-info\" style={{ color: valueColor }}>\n {value}\n </View>\n <View className=\"xh-cell-value-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-cell-value-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHCell;\n","import React, { PropsWithChildren, ReactNode, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\ntype OptionType =\n | {\n label?: string;\n value?: string;\n disabled?: boolean;\n [key: string]: any;\n }\n | string;\n\ninterface CheckboxProps<T>\n extends PropsWithChildren<{}>,\n XHComponentCommonProps {\n option: T[];\n fill?: boolean;\n label?: ReactNode;\n onChange: (item: T) => void;\n defaultValue?: T;\n style?: React.CSSProperties;\n border?: boolean;\n /**\n * paddingHorizontal 横向间距\n */\n paddingHorizontal?: boolean;\n dataTrackId?: string;\n}\n\nconst CheckboxButton = <T extends OptionType = string>(\n props: CheckboxProps<T>\n) => {\n const {\n option,\n onChange,\n defaultValue = \"\",\n label,\n fill = false,\n className,\n style,\n border = true,\n paddingHorizontal = true,\n dataTrackId,\n } = props;\n const [selectedValue, setSelectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue.value\n );\n\n const clickHandle = (item: T) => {\n setSelectedValue(typeof item === \"string\" ? item : item.value);\n onChange(item);\n };\n\n return (\n <View\n data-track-id={dataTrackId}\n className={classNames(\"xh-checkbox-button\", className, {\n border,\n paddingHorizontal,\n })}\n style={style}\n >\n {label && <View className=\"xh-checkbox-button-label\">{label}</View>}\n <View className=\"xh-checkbox-button-options\">\n {option.map((item, index) => {\n return (\n <View\n key={index}\n className={classNames(\"xh-checkbox-button-options-item\", {\n active:\n typeof item === \"string\"\n ? item === selectedValue\n : item.value === selectedValue,\n fill,\n })}\n onClick={() => {\n clickHandle(item);\n }}\n >\n <p className=\"xh-checkbox-button-options-item-label\">\n {typeof item === \"string\" ? item : item.label}\n </p>\n </View>\n );\n })}\n </View>\n </View>\n );\n};\n\nexport default CheckboxButton;\n","import React, { ReactNode, useMemo, useRef, useState } from \"react\";\nimport List from \"@/components/List\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport type { XHListProps } from \"../List\";\n\nimport \"./index.scss\";\n\nexport type CollapseProps = {\n summary?: string | ReactNode;\n open?: boolean;\n style?: React.CSSProperties;\n onToggle?: (open: boolean) => void;\n} & XHListProps;\n\nconst Collapse: React.FC<CollapseProps> = props => {\n const {\n summary = \"\",\n children,\n open = false,\n arrow,\n className,\n style,\n onToggle,\n ...rest\n } = props;\n const detailRef = useRef<HTMLDivElement>(null);\n const [innerOpen, setInneropen] = useState(open);\n const handleOnchange = () => {\n setInneropen(old => !old);\n };\n\n const detailStyle = useMemo(() => {\n const style: React.CSSProperties = { height: 0 };\n if (innerOpen)\n style.height =\n process.env.TARO_ENV === \"h5\"\n ? `${detailRef.current?.scrollHeight}px`\n : \"auto\";\n process.env.TARO_ENV === \"h5\" &&\n innerOpen &&\n detailRef.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n inline: \"nearest\",\n });\n onToggle?.(innerOpen);\n return style;\n }, [innerOpen]);\n\n return (\n <View className={classNames(\"xh-collapse\", className)} style={style}>\n <View\n className={classNames(\"xh-collapse-summary\", { open: innerOpen })}\n onClick={handleOnchange}\n >\n {summary || <List {...rest} arrow />}\n </View>\n <View\n className={classNames(\"xh-collapse-detail\")}\n ref={detailRef}\n style={detailStyle}\n >\n {children}\n </View>\n </View>\n );\n};\n\nexport default Collapse;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\n\nexport type CountdownProps = {\n expireDate: string | number;\n overTimeCb?: () => void; // 倒计时结束的回调\n customStyle?: boolean;\n isPause?: boolean; // 倒计时是否暂停\n onTimeChange?: (distance: number) => void;\n};\n\nconst Countdown: React.FC<CountdownProps> = props => {\n const {\n expireDate,\n overTimeCb,\n customStyle = false,\n isPause = false,\n onTimeChange,\n } = props;\n const [hour, setHour] = useState(\"\");\n const [min, setMin] = useState(\"\");\n const [sec, setSec] = useState(\"\");\n const [showTime, setShowTime] = useState(false);\n const timer = useRef<any>(null);\n\n let counttime: number = 0;\n\n const countdown = () => {\n let h;\n let m;\n let s;\n\n const endTime: number = new Date(expireDate).getTime();\n let nowTime = Date.now();\n const distance = endTime - nowTime;\n /** 剩余时间 */\n onTimeChange && onTimeChange(distance);\n\n counttime = Math.floor(distance / 1000);\n\n /** 截止时间过期,不展示倒计时 */\n if (counttime <= 0) {\n setShowTime(false);\n clearInterval(timer.current);\n overTimeCb?.();\n return;\n }\n setShowTime(true);\n\n // 秒\n s = counttime % 60;\n s = s < 10 ? \"0\" + s : s;\n setSec(s);\n // 分\n m = Math.floor((counttime / 60) % 60);\n m = m < 10 ? \"0\" + m : m;\n setMin(m);\n // 小时\n h = Math.floor(counttime / 60 / 60);\n h = h < 10 ? \"0\" + h : h;\n setHour(h);\n };\n\n useEffect(() => {\n // 调用setInterval()方法:间隔指定的毫秒数不停地执行\n clearInterval(timer.current);\n if (expireDate && !isPause) {\n timer.current = setInterval(() => {\n countdown();\n }, 1000);\n }\n return () => {\n clearInterval(timer.current);\n };\n }, [expireDate, isPause]);\n\n return (\n <React.Fragment>\n {showTime &&\n (customStyle ? (\n <React.Fragment>\n {hour}:{min}:{sec}\n </React.Fragment>\n ) : (\n <View className=\"xh-countdown\">\n <View className=\"xh-countdown-time\">{hour}</View>\n <View className=\"xh-countdown-dot\">:</View>\n <View className=\"xh-countdown-time\">{min}</View>\n <View className=\"xh-countdown-dot\">:</View>\n <View className=\"xh-countdown-time\">{sec}</View>\n </View>\n ))}\n </React.Fragment>\n );\n};\nexport default Countdown;\n","import React, { ReactNode, useEffect, useRef, useState, useMemo } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@tarojs/taro\";\nimport { Property } from \"csstype\";\nimport Icon from \"../Icon\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type RemindProps = {\n content: string[] | ReactNode[];\n internal?: number; // 轮播间隔,毫秒\n duration?: number; // 动画时长,毫秒\n icon?: ReactNode | boolean; // 支持传入 ReactNode 或布尔值控制默认图标\n itemHeight?: number; // 单个轮播项的高度,px,默认为 72\n bgColor?: Property.BackgroundColor;\n} & XHComponentCommonProps;\n\nconst Notice: React.FC<RemindProps> = props => {\n const {\n content: originalContent,\n internal = 3000,\n duration = 500,\n icon = false,\n itemHeight = 72, // 使用默认值 72\n className,\n } = props;\n\n // 使用 useMemo 缓存扩展内容数组,用于无缝轮播\n const content = useMemo(() => {\n return originalContent.length > 0\n ? [...originalContent, originalContent[0]]\n : [];\n }, [originalContent]);\n\n const internalRef = useRef<any>(null);\n const timeoutRef = useRef<any>(null);\n const [currentIndex, setCurrentIndex] = useState(0);\n const [transitionDuration, setTransitionDuration] = useState(duration);\n\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (internalRef.current) clearInterval(internalRef.current);\n\n internalRef.current = setInterval(() => {\n setCurrentIndex(prevIndex => {\n const nextIndex = prevIndex + 1;\n // 正常轮播到下一项,如果下一项是副本,会在下面的 useEffect 中处理瞬移\n return nextIndex;\n });\n }, internal);\n\n return () => {\n internalRef.current && clearInterval(internalRef.current);\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [content.length, internal]); // 依赖 content.length 和 internal\n\n // 处理到达副本项后的瞬移\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (currentIndex === content.length - 1 && transitionDuration !== 0) {\n // 当准备轮播到最后一个(副本前一个)时,设置一个延时,在动画即将完成时瞬间跳跃\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(0); // 关闭动画\n setCurrentIndex(0); // 瞬移到第一个\n }, duration); // 延时等于动画时长,等待动画完成再跳\n } else if (currentIndex === 0 && transitionDuration === 0) {\n // 当已经瞬移回第一个后,在一个极短的延迟后恢复动画时长\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(duration); // 恢复动画\n }, 50); // 极短延迟,确保样式已应用\n }\n\n return () => {\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [currentIndex, content.length, duration, transitionDuration]);\n\n const cls = classNames(\"xh-notice\", className);\n\n return (\n <View className={cls}>\n {typeof icon === \"boolean\" && icon ? (\n <Icon icon=\"notice\" color=\"#7384F6\" size={32} />\n ) : (\n icon\n )}\n <div\n className=\"xh-notice-main\"\n style={{\n transform: `translateY(${pxTransform(-currentIndex * itemHeight)})`, // 使用 itemHeight\n transitionDuration: `${transitionDuration}ms`,\n transitionTimingFunction: \"ease-in-out\", // 可以根据需要调整缓动函数\n }}\n >\n {content.map((item, index) => (\n // key 使用 index 在这里是安全的,因为我们只是通过 index 来计算 transform\n // 即使内容相同,每个 View 元素在逻辑上是不同的轮播项(包括副本)\n <View className=\"xh-notice-main-marquee\" key={index}>\n {item}\n </View>\n ))}\n </div>\n </View>\n );\n};\n\nexport default Notice;\n","import React, { FC, ReactNode } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classname from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\nimport Loading, { LoadingProps } from \"../Loading\";\nimport NavBar from \"../NavBar\";\n\nexport interface PageProps extends XHComponentCommonProps {\n loading?: boolean;\n mask?: LoadingProps[\"mask\"];\n tip?: ReactNode;\n loadingColor?: string;\n /**\n * @supported 小程序\n * @default false\n */\n customNavBar?: boolean;\n onBack?: () => void;\n title?: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n navBarBorder?: boolean;\n}\n\nconst Page: FC<PageProps> = props => {\n const {\n children,\n loading = false,\n className = \"\",\n mask = \"normal\",\n tip = \"加载中\",\n loadingColor = \"#FFF\",\n customNavBar = false,\n title = \"\",\n ...rest\n } = props;\n\n const classObj = classname(\"xh-page\", className, {\n flex: process.env.TARO_ENV !== \"h5\" && customNavBar,\n });\n\n return (\n <View className={classObj}>\n {process.env.TARO_ENV !== \"h5\" && customNavBar && (\n <NavBar title={title} {...rest} />\n )}\n {loading && (\n <View className=\"loading-wrapper\">\n <Loading mask={mask} tip={tip} color={loadingColor} />\n </View>\n )}\n {customNavBar && process.env.TARO_ENV !== \"h5\" ? (\n <View className=\"xh-page-content\">{children}</View>\n ) : (\n children\n )}\n </View>\n );\n};\n\nexport default Page;\n","import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type PasswordInputProps = {\n value: string;\n length: number;\n mask?: boolean;\n onFocus?: (e) => void;\n} & XHComponentCommonProps;\n\nconst PasswordInput: FC<PasswordInputProps> = (props) => {\n const { value, length, mask = true, onFocus, className } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [];\n\n for (let i = 0; i < length; i++) {\n const char = value[i];\n\n Inputs.push(\n <View key={i} className=\"xh-password-input-item\">\n {mask ? (\n <View className={classNames({ \"xh-password-input-mask\": char })} />\n ) : (\n char\n )}\n </View>\n );\n }\n\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const xhpasswordcls = classNames(\"xh-password-input\", className);\n\n return (\n <View className={xhpasswordcls}>\n <View className=\"xh-password-input-list\" onClick={handlerClick}>\n {renderInputs()}\n </View>\n </View>\n );\n};\n\nexport default PasswordInput;\n","import React, {\n useState,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport classNames from \"classnames\";\nimport Picker from \"./Picker\";\nimport type { PickerValue, PickerProps, PickerOption } from \"./Picker\";\nimport \"./index.scss\";\n\nexport type PickerDataType = PickerValue;\nexport type PickerDataOptionType = PickerOption;\nexport interface PickerFieldProps<T extends PickerValue>\n extends PropsWithChildren<PickerProps> {\n title?: ReactNode | string;\n data: T[] | T[][];\n className?: string;\n onConfirm?: (value: T[], index: number) => void;\n}\n\nconst PickerField = <T extends PickerValue>(\n props: PickerFieldProps<T>\n): ReactElement => {\n const { className, children, onCancel, ...rest } = props;\n const [visible, setVisible] = useState(false);\n\n function handleClick(): void {\n if (rest.data.length <= 0) return;\n setVisible(true);\n }\n\n function handleClose(): void {\n setVisible(false);\n onCancel?.();\n }\n\n return (\n <div\n className={classNames(\"xh-picker-field\", className)}\n onClick={handleClick}\n >\n {children}\n <Picker\n visible={visible}\n onCancel={handleClose}\n onClose={handleClose}\n {...rest}\n />\n </div>\n );\n};\n\nexport default PickerField;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@tarojs/taro\";\nimport type { StandardLonghandProperties } from \"csstype\";\n\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type ProgressProps = {\n percent: number;\n showPercent?: boolean;\n doneColor?: string;\n percentColor?: string;\n height?: number;\n /**\n * @description 百分比,不要百分号\n */\n dots?: number[];\n /**\n * 苗条模式\n */\n solid?: boolean;\n backgroundColor?: StandardLonghandProperties[\"color\"];\n} & XHComponentCommonProps;\n\nconst Progress: React.FC<ProgressProps> = props => {\n const {\n percent = 88,\n className,\n showPercent = false,\n doneColor = \"\",\n percentColor = \"\",\n height = 28,\n dots = [],\n solid = false,\n backgroundColor = \"\",\n } = props;\n const progresslcs = classNames(\"xh-progress\", className, {\n dots: dots.length > 0,\n });\n\n const showPercentcls = classNames(\n \"progress-bar\",\n { dots: dots.length > 0 },\n { solid },\n { h5: process.env.TARO_ENV === \"h5\" }\n );\n const showbarPercentcls = classNames(\"progress-bar-percent\", { solid });\n return (\n <View\n className={progresslcs}\n style={{\n height: height && pxTransform(height),\n }}\n >\n <View\n className={classNames(\"progress\", { solid })}\n style={{ backgroundColor }}\n >\n {dots.length > 0 ? (\n <React.Fragment>\n {dots.map(item => (\n <View\n style={{\n width: `${item}%`,\n }}\n key={item}\n data-progress={item}\n className={showPercentcls}\n >\n {process.env.TARO_ENV !== \"h5\" && (\n <View className=\"progress-bar-text\">{item}%</View>\n )}\n </View>\n ))}\n <View className=\"progress-cover\" style={{ width: `${percent}%` }} />\n </React.Fragment>\n ) : (\n <View\n style={{\n width: `${percent}%`,\n backgroundColor: doneColor,\n color: percentColor,\n }}\n className={showPercentcls}\n >\n {showPercent && (\n <View className={showbarPercentcls}>{`${percent}%`}</View>\n )}\n </View>\n )}\n </View>\n </View>\n );\n};\n\nexport default Progress;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type ProgressProps = {\n percent: number;\n // showPercent?: boolean;\n doneColor?: string;\n size?: number;\n backgroundColor?: string;\n maskColor?: string;\n style?: React.CSSProperties;\n text?: React.ReactNode;\n} & XHComponentCommonProps;\n\nconst Progress: React.FC<ProgressProps> = props => {\n const {\n percent = 88,\n className,\n // showPercent = false,\n doneColor = \"#DDD\",\n backgroundColor = \"rgba(0,0,0, 0.25)\",\n maskColor = \"#FFF\",\n size,\n style,\n text,\n } = props;\n const progresslcs = classNames(\"xh-progress-circle\", className);\n\n const finalSize: React.CSSProperties = size\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {};\n\n const done = percent === 100;\n\n const finalStyle = {\n ...finalSize,\n \"--percent\": `${percent / 100}turn`,\n \"--doneColor\": doneColor,\n \"--backgroundColor\": backgroundColor,\n \"--maskContent\": \"percent\",\n \"--maskColor\": maskColor,\n ...style,\n };\n\n return (\n <View className={progresslcs} style={finalStyle}>\n {text ? (\n <View className=\"xh-progress-circle-text\">{text}</View>\n ) : done ? (\n <View className=\"xh-progress-circle-done\"></View>\n ) : null}\n </View>\n );\n};\n\nexport default Progress;\n","import React, { useState } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\n\nimport \"./index.scss\";\n\ntype RankProps = {\n defalutScore?: number;\n onChange: (rank: number) => void;\n max?: number;\n size?: number;\n tip?: string;\n style?: React.CSSProperties & {\n \"--color-primary\": string;\n };\n};\n\nconst Rank: React.FC<RankProps> = props => {\n const {\n defalutScore = -1,\n onChange,\n max = 5,\n size = 0,\n tip = \"轻点星形以评分\",\n style = {},\n } = props;\n const [score, setScore] = useState(defalutScore);\n\n const selectRank = (index: number) => {\n setScore(index);\n onChange?.(index + 1);\n };\n\n return (\n <View\n className={classNames(\"xh-rank\")}\n style={size ? { fontSize: pxTransform(size), ...style } : { ...style }}\n >\n <View className=\"xh-rank-tip\">{tip}</View>\n <View className=\"xh-rank-star\">\n {Array(max)\n .fill(1)\n .map((_item, index) => (\n <View\n key={index}\n className={classNames(\"xh-rank-star-active\", {\n active: index <= score,\n })}\n onClick={() => selectRank(index)}\n ></View>\n ))}\n </View>\n </View>\n );\n};\n\nexport default Rank;\n","import { View } from \"@tarojs/components\";\nimport React, { ReactNode, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type SwitchProps = {\n checked?: boolean;\n checkedText?: ReactNode;\n uncheckedText?: ReactNode;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nconst Switch: React.FC<SwitchProps> = props => {\n const {\n checked = false,\n checkedText = \"\",\n uncheckedText = \"\",\n onChange,\n className,\n disabled,\n } = props;\n\n const [innerChecked, setInnerChecked] = useState(checked);\n\n const handleCheckedChange = () => {\n if (disabled) return;\n setInnerChecked(old => {\n onChange?.(!old);\n return !old;\n });\n };\n\n const checkedInner = useMemo(() => {\n if (innerChecked) return checkedText;\n return uncheckedText;\n }, [innerChecked, checkedText, uncheckedText]);\n\n return (\n <View\n className={classNames(\n \"xh-switch\",\n { checked: innerChecked },\n { disabled },\n className\n )}\n onClick={handleCheckedChange}\n >\n <View className=\"xh-switch-control\"></View>\n <View className=\"xh-switch-inner\">{checkedInner}</View>\n </View>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showToast } from \"@tarojs/taro\";\nimport ToastComponent, { ToastProps } from \"./Toast\";\nimport \"./index.scss\";\n\nasync function Toast(\n message: string | number,\n duration?: number\n): Promise<void>;\nasync function Toast(props: ToastProps): Promise<void>;\nasync function Toast(\n arg: string | number | ToastProps,\n ...rest\n): Promise<void> {\n let defalutParam = {\n title: \"\",\n duration: 3000,\n mask: true,\n };\n if (typeof arg === \"string\" || typeof arg === \"number\") {\n defalutParam.title = `${arg}`;\n if (rest.length) {\n defalutParam.duration = rest[0];\n }\n } else {\n defalutParam = {\n ...defalutParam,\n ...arg,\n };\n }\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const timer = setTimeout(() => {\n ReactDOM.unmountComponentAtNode(div);\n clearTimeout(timer);\n resolve();\n }, defalutParam.duration);\n const { title, ...other } = defalutParam;\n ReactDOM.render(<ToastComponent title={title} {...other} />, div);\n } else {\n showToast({\n icon: \"none\",\n ...defalutParam,\n }).then(res => {\n if (res.errMsg === \"showToast:ok\") {\n const timer = setTimeout(() => {\n clearTimeout(timer);\n resolve();\n }, defalutParam.duration);\n }\n });\n }\n });\n}\n\nexport default Toast;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__read","o","m","r","ar","error","__spreadArray","to","from","pack","l","Array","slice","concat","SuppressedError","flexGapSupported","DotJump","props","style","_a","space","React","className","createElement","height","viewBox","verticalAlign","stroke","strokeWidth","fill","fillRule","transform","map","key","x","width","rx","attributeName","dur","begin","repeatCount","values","keyTimes","XhButton","disabled","_b","type","_c","size","_d","shape","children","htmlType","formType","text","openType","lang","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","appParameter","onGetUserInfo","onGetPhoneNumber","onOpenSetting","onError","onContact","onClick","_e","preventTime","loading","loadingStyle","loadingSpace","_f","ghost","_g","hollow","_h","dataTrackId","state","useState","taroEnv","setTaroEnv","useEffect","getEnv","useTaroEnv","_j","preventClick","setPreventClick","timer","useRef","classObj","classNames","default","primary","secondary","warn","quare","round","rectangle","normal","small","full","webutton","handleClick","nativeEvent","stopImmediatePropagation","preventDefault","current","setTimeout","clearTimeout","weButton","Button","undefined","Mask","closeOnClickMask","mask","cls","View","Loading","tip","hasTip","isMiniProgramIos","process","env","TARO_ENV","getSystemInfoSync","platform","NavBar","leftIcon","rightIcon","title","onBack","navBarBorder","navBarHeight","statusBar","buttonRight","navInfo","setNavinfo","getMenuButtonBoundingClientRect","top_1","top","right","statusBarHeight","screenWidth","useCustomNavBar","wrapStyle","paddingTop","backStyle","left","NavBarCls","h5","border","hidden","navigateBack","Text","isAndroid","inputRange","val","replace","pxTransform","designWidth","Math","ceil","parseInt","toArray","option","ret","Children","forEach","child","object","keepEmpty","isArray","$$typeof","for","creditCard","cardNum","newCardNum","verifyIdcard","idcard","substr","test","S","charAt","toUpperCase","isFunction","isEqual","keysX","keys","keysY","keysX_1","__values","keysX_1_1","pick","obj","idCounter","replaceCharByIndex","str","index","substring","XHImage","src","rest","defaultSize","setDefaultSize","getImageInfo","success","res","errMsg","useMemo","computedSize","imgCls","Image","CountdownButton","forwardRef","fromRef","timeout","ingText","onEnd","intervalRef","time","setTime","setDisabled","reset","clearInterval","useImperativeHandle","counter","beginning","buttonText","now","Date","nowStamp","setInterval","overTimeStamp","leftTime","max","floor","classnames","promise","catch","FormInput","formRef","onChange","maxlength","placeholder","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","readonly","withArrow","direction","mainExtra","padding","align","password","handleChange","inputValue","target","handleBlur","inputRef","focus","wrapperCls","column","dangerouslySetInnerHTML","__html","Input","ref","onInput","maxLength","XHList","description","icon","extra","extraIcon","arrow","outline","condensed","descriptionColor","extraColor","_k","ellipsis","_l","listcls","mainCls","color","_extends","bind","source","_objectWithoutPropertiesLoose","excluded","sourceKeys","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","b","c","d","h","k","q","w","z","a","u","A","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","exports","isAsyncMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","module","require$$0","require$$1","propIsEnumerable","toObject","objectAssign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","join","test3","split","letter","err","shouldUseNative","symbols","has","Function","printWarning","ReactPropTypesSecret","loggedTypeFailures","message","Error","checkPropTypes","typeSpecs","location","componentName","getStack","typeSpecName","ex","stack","resetWarningCache","emptyFunctionThatReturnsNull","emptyFunction","emptyFunctionWithReset","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","ReactIs","instanceOf","expectedClass","expectedClassName","node","isNode","objectOf","propType","oneOf","expectedValues","validate","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shapeTypes","invalidValidatorError","exact","allKeys","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","console","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","entries","entry","RegExp","isSymbol","PropTypes","shim","getShim","require$$2","replaceClassName","origClass","classToRemove","config","timeoutsShape","enter","exit","appear","classNamesShape","active","enterDone","enterActive","exitDone","exitActive","TransitionGroupContext","createContext","Transition","_React$Component","context","_this","initialStatus","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","_ref","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","setState","_this2","appearing","_ref2","nodeRef","ReactDOM","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","render","_this$props","childProps","Provider","cloneElement","only","Component","noop","contextType","propTypes","ownerDocument","defaultView","pt","_len","args","_key","defaultProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition$1","_addClass","classes","classList","add","contains","baseVal","hasClass","setAttribute","removeClass","remove","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","scrollTop","_this$appliedClasses$","base","CSSTransition$1","DialogCom","header","content","footer","visible","selfVisible","setSelfVisible","close","dialogcls","microApp","dialogContent","headless","DialogMain","createPortal","document","Dialog","DialogComponent","alert","confirmText","div_1","dialogRef","createRef","alertFooter","unmountComponentAtNode","showModal","showCancel","confirmColor","confirm","cancelText","cancelColor","ToastCom","image","toastcls","none","showIcon","onConfirm","onCancel","onClose","portrait","tranparent","fancy","open","show","dialogFooter","TabItem","TabItemComponent","XHTabs","animated","lineColor","titleActiveColor","titleInctiveColor","selectIndex","tabWdith","setTabWdith","tabContentHeight","setTabContentHeight","tabSlotHeight","setTabSlotHeight","query","createSelectorQuery","selectAll","boundingClientRect","exec","background","WebkitTransform","Item","TabBar","TabBarComponent","TabBarItem","Animated","inProp","Slide","Fade","positionMap","bottom","Popup","position","preventSTH","stopPropagation","handleClickOnMask","touchAction","addEventListener","overflowY","removeEventListener","minicls","PickerSlot","keyIndex","defaultValue","mode","swipeDuration","touch","startX","SetStartX","startY","SetStartY","moveX","SetMoveX","moveY","SetMoveY","deltaX","SetDeltaX","deltaY","SetDeltaY","offsetX","SetOffsetX","offsetY","SetOffsetY","SetDirection","move","touches","dX","clientX","dY","clientY","abs","getDirection","start","isVertical","isHorizontal","useTouch","currIndex","setCurrIndex","lineSpacing","touchTime","setTouchTime","touchDeg","setTouchDeg","moving","listbox","rollerRef","pickerSlotRef","startTime","setStartTime","setStartY","transformY","scrollDistance","setScrollDistance","isHidden","setTransform","translateY","deg","nTime","setMove","updateMove","endMove","currentDeg","maxDeg","min","setChooseValue","momentum","distance","duration","nDistance","modifyStatus","item","idx","stopMomentum","isStopPropagation","cancelable","onTouchStart","onTouchMove","onTouchEnd","moveTime","transition","lineHeight","Picker","defaultValueData","onCloseUpdate","chooseValueData","setchooseValueData","columnIndex","setcolumnIndex","pickerRef","refs","setRefs","useCallback","el","useRefs","columnsList","setColumnsList","isConfirmEvent","toString","data_1","normalListData","selectedOptions","init","closeActionSheet","movings","optins","currOptions","filter","chooseItem","columnsType","cursor","cdata","formatCascade","firstColumn","columns","defaultValues","formatted","options","findIndex","columnItem","normalData","perItem","useFlexGapSupport","flexible","setFlexible","flex","display","flexDirection","rowGap","appendChild","scrollHeight","removeChild","detectFlexGapSupported","ConfigContext","getPrefixCls","suffixCls","marginDirection","wrap","useContext","SpaceContext","horizontalSize","verticalSize","latestIndex","marginBottom","paddingBottom","supportFlexGap","spaceSize","large","XHSpace","directionConfig","otherProps","getNumberSize","childNodes","mergedAlign","prefixCls","cn","itemClassName","nodes","spaceContext","gapStyle","flexWrap","columnGap","getUrls","urls","settings","mimeType","onBeforeSend","onSuccess","onComplete","urlArray","urlQueue","isValidCss","isString","isHTML","trim","xhr","urlIndex","responseText","returnVal","parser","url","href","Boolean","all","window","atob","host","protocol","xdr","XDomainRequest","onprogress","ontimeout","onload","onerror","send","XMLHttpRequest","overrideMimeType","onreadystatechange","readyState","getCssData","regex","rootElement","include","exclude","skipDisabled","useCSSOM","sourceNodes","querySelectorAll","elm","selector","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","cssArray","handleComplete","reduce","skipIndices","reverse","skipIndex","arr","splice","cssText","handleSuccess","cssIndex","sourceUrl","resolveImports","resolvedCssText","errorData","parseImportData","baseUrl","ignoreRules","importData","rules","match","rule","absoluteUrls","getFullUrl$1","absoluteRules","oldUrl","newUrl","callbackFn","__errorData","__errorRules","responseImportData","responseArray","importText","linkHref","getAttribute","linkRel","isLink","nodeName","toLowerCase","isSkip","isStyle","decodeURIComponent","sheet","cssRules","_cssText","textContent","implementation","createHTMLDocument","head","baseURI","querySelector","balancedMatch","balanced","maybeMatch","range","end","pre","post","reg","begs","beg","ai","bi","parseCss","css","defaults","preserveStatic","removeComments","errors","msg","re","whitespace","comment","comments","cmnts","selectorItems","_selector","hasCommaInQuotes","declaration","at_rule","comment_regexp","prop","property","declarations","decls","keyframe","vals","at_keyframes","vendor","frame","frames","keyframes","at_page","selectors","at_page_margin_box","at_fontface","at_supports","supports","at_host","at_media","media","at_custom_m","at_document","at_x","hasVarFunc","some","decl","balancedMatch$1","hasVarDecl","sel","core","stylesheet","parseVars","cssData","parseHost","store","onWarning","reVarDeclSelectors","stringifyCss","tree","delim","cb","renderMethods","charset","visit","import","namespace","page","buf","txt","walkCss","fn","transformCss","preserveVars","variables","VAR_FUNC_IDENTIFIER","resolvedValue","resolveValue","fixNestedCalc","newVal","__recursiveFallback","valueData","resolveFunc","fallback","replacement","unresolvedFallback","isEmptyVarFunc","isBrowser","isNativeSupport","CSS","counters","group","job","shadowDOM","onlyLegacy","silent","updateDOM","updateURLs","watch","onFinally","cssComments","cssKeyframes","cssMediaQueries","cssUrls","cssVarDeclRules","cssVarDecls","cssVarFunc","cssVars","variableStore","dom","user","cssVarsIsRunning","cssVarsObserver","cssVarsSrcNodeCount","debounceTimer","isShadowDOMReady","handleError","sourceNode","handleWarning","handleFinally","hasChanged","getTimeStamp","__benchmark","addMutationObserver","disconnect","cssVarsDebounced","srcNodes","fixVarNames","srcNode","hasStyleCache","__cssVars","hasStyleChanged","outNodes","outNode","dataGroup","parentNode","hasVarChange","targetElm","documentElement","varValue","getComputedStyle","getPropertyValue","setProperty","shadowRoot","nodeArray","responseUrl","responseURL","getFullUrl","statusText","isStyleImport","fixRelativeCssUrls","currentVars","nodeCSS","cssTree","resetCssNodes","outCssArray","outNodeArray","hasKeyframesWithVars","outCss","hasCSSVarFunc","outCssNoSpaces","hasAttribute","removeAttribute","insertBefore","nextSibling","elms","shadowSettings","fixKeyframes","parse","evt","isDisabled","isDisabledAttr","isDisabledSheet","MutationObserver","mutations","mutation","isValid","isEnabledMutation","isHrefMutation","isSkipNode","isSrcNode","isValidAttributeMutation","isStyleElm","isOutNode","isValidStyleTextMutation","addedNodes","hasAttr","nodeType","isStyleWithVars","isValidAddMutation","removedNodes","isElm","orphanNode","isValidRemoveMutation","observe","attributes","attributeFilter","childList","subtree","delay","animationNameProp","allNodes","keyframeNodes","nameMarker","len","offsetHeight","_i","nodeStyle","cssUrl","varObj","reLeadingHyphens","performance","getTime","resetDOMVariableStore","resetNodes","theme","ThemeContext","useGenerateId","id","prefix","finalId","setId","random","Icon","fixIcon","iconCls","finalStyle","fontSize","CheckBox","circle","justify","checked","iconColor","innerChecked","setInnerChecked","htmlFor","finalchecked","detail","defaultChecked","Group","checkboxStyle","getOpions","checkedItem","includes","newoption","newValue","Radio","resetChecked","eventCenter","on","off","radioStyle","inline","checkedClass","innerOptions","setInnerOptions","trigger","defaultIcon","XHStep","dashed","Steps","classString","Badge","XHAmountKeys","XHAmountKeysWithDot","ActionSheet","submitText","renderItem","ItemWrapper","onSubmit","showClose","justifyContent","innerVisible","setInnerVisible","selectedValue","handleCancel","handleSubmit","itemRender","checkValue","handleConfirm","innerShowClose","noTitle","noMarinTop","LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","defaultShowImportIcon","navigator","userAgent","XHAddLinMan","linkManNum","relations","onGetContacts","showImportIcon","onCheckRelation","onInputChange","needName","formData","setFormData","errMessage","setErrMessage","relationValue","validatePhone","phone","validateForm","validateCanSubmit","finalData","flag","canSubmit","setContacts","old","onFormBlur","validateDuplicate","currentIndex","currentItem","length_1","pass","onNameChange","onPhoneChange","onFormFocus","num","onFocus","tt","ImageMap","empty","fail","networkErr","wait","submitted","faceEmpty","LICENSEPLATE_PROVINCES","LICENSEPLATE_NUMBERS","LICENSEPLATE_LETTERS","specialArea","finalArea","LicensePlateKeyboard","closeOnClickSpace","closeText","onDelete","activeIndex","input","setInput","handleClose","handleKeyPress","newInput","handleDelete","keyboardcls","LicensePlateInput","showKeyboard","onFinish","autoScroll","setActiveIndex","setShowKeyboard","InputRef","scrollIntoView","behavior","xhLicensePlateCls","Inputs","char","showNew","LENGTH","handleKeyClick","renderInputs","Keyboard","neVal","nextChar","BankCardNumberInput","showScan","bankName","readOnly","onScan","slot","validateCardNumber","cardNo","tmp","total","gw","checkBankCard","XHFormInput","formatValue","useUpdateEffect","effect","deps","isFirst","isFirstMount","WxCanvas","ctx","isNew","canvasNode","chart","_initStyle","_initEvent","getContext","setChart","attachEvent","detachEvent","_initCanvas","zrender","util","$override","font","measureText","defineProperty","set","createRadialGradient","createCircularGradient","wxName","ecName","getZr","dispatch","zrX","zrY","get","wrapTouch","memo","echarts","isPage","pCanvasId","canvasId","canvasRef","chartRef","isInitialResize","setIsInitialResize","usePrevious","uniqueId","canvasProps","canvasStyle","useReady","Taro","ENV_TYPE","WEAPP","nextTick","initChart","WEB","dispose","opts","onEvents","pickKeys","updateEChartsOption","resize","canvas","echartsInstance","getInstanceByDom","initEchartsInstance","devicePixelRatio","newOpts","notMerge","lazyUpdate","showLoading","loadingOption","echartInstance","setOption","hideLoading","renderEcharts","onChartReady","instance","events","bindEvent","eventName","param","bindEvents","clientWidth","innerWidth","clientHeight","ver1","ver2","v1","v2","num1","num2","compareVersion","SDKVersion","select","fields","canvasDpr","pixelRatio","canvas_1","setCanvasCreator","renderContainerComponent","Canvas","changedTouches","processGesture","touchEnd","touchMove","touchStart","clonedElement","shortcut","errTip","onUpgrade","minAmount","maxAmount","showUpgrade","loanOnekey","showBottom","Number","MAX_SAFE_INTEGER","recommend","decimal","renderKeys","Space","marginLeft","amount","handleOnRecommand","delete","code","alt","paddingHorizontal","valueColor","contentDescription","subDescription","alignItems","cellcls","setSelectedValue","clickHandle","summary","onToggle","detailRef","innerOpen","setInneropen","detailStyle","block","List","expireDate","overTimeCb","customStyle","isPause","onTimeChange","hour","setHour","setMin","sec","setSec","showTime","setShowTime","counttime","countdown","originalContent","internal","itemHeight","internalRef","timeoutRef","setCurrentIndex","transitionDuration","setTransitionDuration","prevIndex","transitionTimingFunction","getKeys","loadingColor","customNavBar","classname","xhpasswordcls","setVisible","percent","showPercent","doneColor","percentColor","dots","solid","backgroundColor","progresslcs","showPercentcls","showbarPercentcls","maskColor","finalSize","defalutScore","score","setScore","_item","selectRank","desc","action","onAction","resultCls","hasSlot","checkedText","uncheckedText","checkedInner","arg","defalutParam","timer_1","other","ToastComponent","showToast","timer_2"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/hooks/index.tsx","../src/utils/index.ts","../src/components/Button/DotJump.tsx","../src/components/Button/index.tsx","../src/components/Mask/index.tsx","../src/components/Loading/index.tsx","../src/components/NavBar/index.tsx","../src/hooks/useCustomNavbar.tsx","../src/components/Image/index.tsx","../src/components/Captcha/index.tsx","../src/components/FormInput/index.tsx","../src/components/List/index.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/PropTypes.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../src/components/DialogComponent/index.tsx","../src/components/Dialog/index.tsx","../src/components/Dialog/Alert/index.tsx","../src/components/Dialog/Confirm/index.tsx","../src/components/NumberKeyboard/index.tsx","../src/components/Toast/Toast.tsx","../src/components/DialogRef/index.tsx","../src/components/Tabbar/tabbar/TabItem.tsx","../src/components/Tabbar/tabbar/Tabbar.tsx","../src/components/Tabbar/index.tsx","../src/components/Animated/Animated.tsx","../src/components/Animated/Slide/index.tsx","../src/components/Animated/Fade/index.tsx","../src/components/Popup/index.tsx","../src/components/Picker/PickerSlot.tsx","../src/hooks/useTouch.ts","../src/components/Picker/Picker.tsx","../src/hooks/useRefs.ts","../src/hooks/useFlexGapSupport.ts","../src/components/Space/config-provider.ts","../src/components/Space/Item.tsx","../src/components/Space/index.tsx","../node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js","../src/components/ThemeProvider/index.tsx","../src/hooks/useGenerateId.tsx","../src/components/Checkbox/Group/index.tsx","../src/components/Icon/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Radio/Group/index.tsx","../src/components/Radio/index.tsx","../src/components/Step/Steps/index.tsx","../src/components/Step/index.tsx","../src/components/Badge/index.tsx","../src/components/AmountKeyboard/index.tsx","../src/components/ActionSheet/index.tsx","../src/components/LinkMan/index.tsx","../src/components/Result/index.tsx","../src/components/LicensePlateInput/Keyboard.tsx","../src/components/LicensePlateInput/index.tsx","../src/components/BankCardNumberInput/index.tsx","../src/components/IDNumberInput/index.tsx","../src/hooks/useUpdateEffect.ts","../src/hooks/useFirstMountState.ts","../src/components/Echarts/weapp/wx-canvas.ts","../src/components/Echarts/weapp/wx-touch.ts","../src/components/Echarts/index.tsx","../src/hooks/useUnMount.ts","../src/hooks/usePrevious.ts","../src/components/ActivityIndicator/index.tsx","../src/components/AmountInput/index.tsx","../src/components/BankIcon/index.tsx","../src/components/Cell/index.tsx","../src/components/CheckboxButton/index.tsx","../src/components/Collapse/index.tsx","../src/components/Countdown/index.tsx","../src/components/Notice/index.tsx","../src/components/Page/index.tsx","../src/components/PasswordInput/index.tsx","../src/components/Picker/index.tsx","../src/components/Progress/index.tsx","../src/components/ProgressCircle/index.tsx","../src/components/Rank/index.tsx","../src/components/Switch/index.tsx","../src/components/Toast/index.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { useEffect, useState } from \"react\";\nimport { getEnv } from \"@tarojs/taro\";\n\nexport const useTaroEnv = () => {\n const [taroEnv, setTaroEnv] = useState(\"\");\n useEffect(() => {\n setTaroEnv(getEnv());\n }, []);\n\n return taroEnv;\n};\n\nexport const useAsyncEffect = async (fn, deps) => {\n useEffect(() => {\n fn().catch(err => {\n console.log(err);\n });\n }, [deps]);\n};\n","/**\n * 禁止输入emoji表情\n * @param {string} val - 输入内容\n * @returns {boolean} - 校验结果 返回 true || false\n */\nimport React from \"react\";\n\nexport const inputRange = (val: string): string => {\n let iconRule1 =\n /[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030/gi;\n return val.replace(iconRule1, \"\");\n};\n\n// function Handler(fn) {\n// this.handler = fn;\n// this.next = null;\n// }\n\n// Handler.prototype.setNext = function setNext(h) {\n// this.next = h;\n// return h;\n// };\n\n// Handler.prototype.passRequest = function () {\n// const ret = this.handler.apply(this, arguments);\n// // 提前结束\n// if (!ret) {\n// return ret;\n// }\n\n// // 向后传递\n// if (this.next) {\n// return this.next.passRequest.apply(this.next, arguments);\n// }\n// return ret;\n// };\n\n// export class ChainHander {\n// public hander: (s: string) => boolean\n// public next\n// constructor(fn: (str: string) => boolean) {\n// this.hander = fn\n// }\n// public setNext(callback): () => boolean {\n// this.next = callback\n// return callback\n// }\n// public checkPass(...arg) {\n// const result = this.hander.apply(this, arg)\n// if (!result) {\n// return result\n// }\n\n// if (this.next != null) {\n// return this.next.checkPass.apply(this.next, arg)\n// }\n\n// return result\n// }\n// }\n\nexport const throtte = (fn: Function, delay: number = 1500) => {\n let timer: NodeJS.Timer;\n let canCall = true;\n return function (arg) {\n if (canCall) {\n canCall = false;\n fn(arg);\n }\n timer = setTimeout(() => {\n canCall = true;\n clearTimeout(timer);\n }, delay);\n };\n};\n\nexport const debounce = (fn: (...arg: any) => any, delay: number = 1500) => {\n let timer: NodeJS.Timeout | null = null;\n return function () {\n const context = this;\n const arg = arguments;\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n fn.apply(context, arg);\n }, delay);\n };\n};\n\nexport function pxTransform(size: number, designWidth = 750): string {\n if (!size) return process.env.TARO_ENV === \"h5\" ? \"0rem\" : \"0rpx\";\n const deviceRatio = {\n 640: 2.34 / 2,\n 750: 1,\n 828: 1.81 / 2,\n };\n if (process.env.TARO_ENV === \"h5\")\n return (\n Math.ceil(\n (((parseInt(`${size}`, 10) / 40) * 640) / designWidth) * 10000\n ) /\n 10000 +\n \"rem\"\n );\n return `${size / deviceRatio[designWidth]}rpx`;\n}\n\nlet flexGapSupported: boolean | undefined;\nexport const detectFlexGapSupported = () => {\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n\n const flex = document.createElement(\"div\");\n flex.style.display = \"flex\";\n flex.style.flexDirection = \"column\";\n flex.style.rowGap = \"1px\";\n\n flex.appendChild(document.createElement(\"div\"));\n flex.appendChild(document.createElement(\"div\"));\n\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1;\n document.body.removeChild(flex);\n\n return flexGapSupported;\n};\n\nexport interface Option {\n keepEmpty?: boolean;\n}\n\nexport function toArray(\n children: React.ReactNode,\n option: Option = {}\n): React.ReactElement[] {\n let ret: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child: any | any[]) => {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n\n return ret;\n}\n\nfunction isFragment(object) {\n return (\n object.$$typeof === Symbol.for(\"react.element\") &&\n object.type === Symbol.for(\"react.fragment\")\n );\n}\n\n// 获取 校验银行卡\nexport const checkBankCard = (cardNo: string) => {\n if (!cardNo) return false;\n let tmp = true;\n let total = 0;\n for (let i = cardNo.length; i > 0; i--) {\n let num = +cardNo.substring(i, i - 1);\n if (((tmp = !tmp), tmp)) num = num * 2;\n const gw = num % 10;\n total += gw + (num - gw) / 10;\n }\n return total % 10 === 0;\n};\n\n/**\n * 格式化银行卡号\n *\n * @export\n * @param {string} cardNum 6217002712347888987\n * @param {boolean} mask 是否掩码\n * @returns {string} 6217 0027 1234 7888 987\n */\nexport function creditCard(cardNum: string, mask?: boolean): string {\n const newCardNum = cardNum\n .replace(/[^\\d]/g, \"\")\n .replace(/(\\d{4})(?=\\d)/g, \"$1 \");\n\n return mask ? newCardNum.replace(/\\s(\\d{4})(?!\\d)/g, \" ****\") : newCardNum;\n}\n\n/**\n * 校验身份证号是否符合规范\n *\n * @export\n * @param {string} idcard\n * @returns {boolean} true 符合 | false 不符合\n */\nexport function verifyIdcard(idcard: string): boolean {\n if (!idcard) return false;\n let regex1 =\n /^[1-9][0-7]\\d{4}((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))\\d{3}(\\d|X|x)?$/;\n /* 身份号码位数及格式检验 */\n switch (idcard.length) {\n case 15:\n if (\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0 ||\n ((parseInt(idcard.substr(6, 2)) + 1900) % 100 === 0 &&\n (parseInt(idcard.substr(6, 2)) + 1900) % 4 === 0)\n ) {\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n }\n // eslint-disable-next-line\n let regex2 =\n /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; // 测试出生日期的合法性\n if (regex2.test(idcard)) {\n return true;\n }\n return false;\n\n case 18:\n if (regex1.test(idcard)) {\n let S =\n (parseInt(idcard.charAt(0)) + parseInt(idcard.charAt(10))) * 7 +\n (parseInt(idcard.charAt(1)) + parseInt(idcard.charAt(11))) * 9 +\n (parseInt(idcard.charAt(2)) + parseInt(idcard.charAt(12))) * 10 +\n (parseInt(idcard.charAt(3)) + parseInt(idcard.charAt(13))) * 5 +\n (parseInt(idcard.charAt(4)) + parseInt(idcard.charAt(14))) * 8 +\n (parseInt(idcard.charAt(5)) + parseInt(idcard.charAt(15))) * 4 +\n (parseInt(idcard.charAt(6)) + parseInt(idcard.charAt(16))) * 2 +\n parseInt(idcard.charAt(7)) * 1 +\n parseInt(idcard.charAt(8)) * 6 +\n parseInt(idcard.charAt(9)) * 3;\n let Y = S % 11;\n let M = \"F\";\n let JYM = \"10X98765432\";\n M = JYM.substr(Y, 1);\n /* 判断校验位 */\n if (M === idcard.charAt(17).toUpperCase()) {\n return true;\n }\n return false;\n }\n break;\n default:\n return false;\n }\n\n return false;\n}\n\nexport function tripleDefer(func: () => void): void {\n setTimeout(() => setTimeout(() => setTimeout(() => func())));\n}\n\nexport function isString(v) {\n return typeof v === \"string\";\n}\n\nexport function isFunction(v) {\n return typeof v === \"function\";\n}\n\nexport function isEqual(x, y) {\n if (x === y) {\n return true;\n } else if (\n typeof x === \"object\" &&\n x !== null &&\n typeof y === \"object\" &&\n y !== null\n ) {\n const keysX = Object.keys(x);\n const keysY = Object.keys(y);\n if (keysX.length !== keysY.length) {\n return false;\n }\n for (const key of keysX) {\n if (!isEqual(x[key], y[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\nexport function pick(obj: any, keys) {\n const r = {};\n keys.forEach(key => {\n r[key] = obj[key];\n });\n return r;\n}\n\nconst idCounter = {};\nexport function uniqueId(prefix = \"$unique$\") {\n if (!idCounter[prefix]) {\n idCounter[prefix] = 0;\n }\n\n const id = ++idCounter[prefix];\n if (prefix === \"$unique$\") {\n return `${id}`;\n }\n\n return `${prefix}${id}`;\n}\n\n/**\n * 版本号比较进阶版\n * @param {string} ver1 5.19.1 前一个版本\n * @param {string} ver2 5.18.3 后一个版本\n * @returns {number} 1: 前一个版本 大于 后一个版本\n * -1: 前一个版本 小于 后一个版本\n * 0: 前一个版本 等于 后一个版本\n */\nexport function compareVersion(ver1: string, ver2: string): number {\n let v1 = ver1.split(\".\");\n let v2 = ver2.split(\".\");\n const len = Math.max(v1.length, v2.length);\n\n // 调整两个版本号位数相同\n while (v1.length < len) {\n v1.push(\"0\");\n }\n while (v2.length < len) {\n v2.push(\"0\");\n }\n\n // 循环判断每位数的大小\n for (let i = 0; i < len; i++) {\n const num1 = parseInt(v1[i]);\n const num2 = parseInt(v2[i]);\n\n if (num1 > num2) {\n //前一个版本 大于 后一个版本\n return 1;\n } else if (num1 < num2) {\n //前一个版本 小于 后一个版本\n return -1;\n }\n }\n\n return 0;\n}\n\nexport const replaceCharByIndex = (\n str: string,\n index: number,\n replace: string\n) => {\n return str.substring(0, index) + replace + str.substring(index + 1);\n};\n\n/**\n * 车牌号正则校验\n *\n * @export\n * @param {string} str 车牌号\n * @returns {boolean} false | true\n */\nexport const isLicenseNo = (str: string): boolean => {\n let xreg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\n let creg =\n /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\n if (str.length === 7) {\n return creg.test(str);\n } else if (str.length === 8) {\n return xreg.test(str);\n }\n return false;\n};\n","import React from \"react\";\n\nexport type DotJumpProps = {\n style?: React.CSSProperties;\n space?: number;\n};\n\nconst DotJump: React.FC<DotJumpProps> = props => {\n const { style, space = 20 } = props;\n return (\n <div className=\"xh-dot-loading\" style={style}>\n <svg\n height=\"1em\"\n viewBox=\"0 0 100 40\"\n style={{ verticalAlign: \"-0.125em\" }}\n >\n <g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(-100.000000, -71.000000)\">\n <g transform=\"translate(95.000000, 71.000000)\">\n <g transform=\"translate(5.000000, 0.000000)\">\n {[0, 1, 2].map(i => (\n <rect\n key={i}\n fill=\"currentColor\"\n x={20 + i * space}\n y=\"16\"\n width=\"8\"\n height=\"8\"\n rx=\"2\"\n >\n <animate\n attributeName=\"y\"\n from=\"16\"\n to=\"16\"\n dur=\"2s\"\n begin={`${i * 0.2}s`}\n repeatCount=\"indefinite\"\n values=\"16; 6; 26; 16; 16\"\n keyTimes=\"0; 0.1; 0.3; 0.4; 1\"\n />\n </rect>\n ))}\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n );\n};\n\nexport default DotJump;\n","import React, {\n FC,\n MouseEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Button } from \"@tarojs/components\";\nimport { ButtonProps } from \"@tarojs/components/types/Button\";\nimport {\n ITouchEvent,\n TouchEventFunction,\n} from \"@tarojs/components/types/common\";\n\nimport { useTaroEnv } from \"../../hooks\";\nimport \"./index.scss\";\nimport DotJump from \"./DotJump\";\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport type XhButtonProps = {\n htmlType?: \"button\" | \"submit\" | \"reset\";\n type?: ButtonType;\n size?: ButtonSize;\n shape?: ButtonShape;\n disabled?: boolean;\n className?: string;\n styleName?: string;\n text?: string;\n preventTime?: number;\n onClick?: (e: ITouchEvent | MouseEvent) => void;\n style?: React.CSSProperties;\n loading?: boolean;\n loadingStyle?: React.CSSProperties;\n loadingSpace?: number;\n ghost?: boolean;\n /**\n * 镂空\n */\n hollow?: boolean;\n} & Omit<ButtonProps, \"type\" | \"size\">;\n\nconst XhButton: FC<XhButtonProps> = props => {\n const {\n disabled = false,\n type = \"default\",\n size = \"normal\",\n shape = \"round\",\n children,\n className,\n htmlType,\n formType,\n text,\n openType,\n lang,\n sessionFrom,\n sendMessageTitle,\n sendMessagePath,\n sendMessageImg,\n showMessageCard,\n appParameter,\n onGetUserInfo,\n onGetPhoneNumber,\n onOpenSetting,\n onError,\n onContact,\n onClick,\n preventTime = 2500,\n style,\n loading,\n loadingStyle,\n loadingSpace,\n ghost = false,\n hollow = false,\n } = props;\n const state = useTaroEnv();\n const [preventClick, setPreventClick] = useState(false);\n const timer = useRef<NodeJS.Timeout | undefined>();\n const classObj = classNames(\n \"xh-button\",\n {\n default: type === \"default\",\n primary: type === \"primary\",\n secondary: type === \"secondary\",\n ghost: ghost,\n hollow: hollow,\n warn: type === \"warn\",\n quare: shape === \"square\",\n round: shape === \"round\",\n rectangle: shape === \"rectangle\",\n normal: size === \"normal\",\n small: size === \"mini\",\n full: size === \"full\",\n disabled: disabled,\n webutton: state === \"WEAPP\",\n },\n className\n );\n\n const handleClick: MouseEventHandler & TouchEventFunction = e => {\n state === \"WEB\" && e.nativeEvent.stopImmediatePropagation();\n e.preventDefault();\n\n if (preventClick && preventTime !== 0) {\n console.log(\"重复点击\");\n return;\n }\n if (preventTime !== 0) {\n timer.current = setTimeout(() => {\n setPreventClick(false);\n clearTimeout(timer.current);\n }, preventTime);\n }\n if (preventTime !== 0) setPreventClick(true);\n console.log(\"正常点击\");\n onClick && onClick(e);\n };\n\n useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n\n const weButton = (\n <Button\n className={classObj}\n formType={formType}\n openType={openType}\n lang={lang}\n type={type as ButtonProps[\"type\"]}\n sessionFrom={sessionFrom}\n sendMessageTitle={sendMessageTitle}\n sendMessagePath={sendMessagePath}\n sendMessageImg={sendMessageImg}\n showMessageCard={showMessageCard}\n appParameter={appParameter}\n onGetUserInfo={onGetUserInfo}\n onGetPhoneNumber={onGetPhoneNumber}\n onOpenSetting={onOpenSetting}\n onError={onError}\n onContact={onContact}\n onClick={handleClick}\n disabled={disabled}\n style={style}\n loading={loading}\n >\n {children}\n </Button>\n );\n\n if (state !== \"WEB\") {\n return weButton;\n }\n\n return (\n // eslint-disable-next-line react/button-has-type\n <button\n className={classObj}\n disabled={disabled}\n type={htmlType}\n onClick={disabled ? undefined : handleClick}\n style={style}\n >\n {children || text}\n {loading && <DotJump style={loadingStyle} space={loadingSpace} />}\n </button>\n );\n};\n\nexport default XhButton;\n","import React, { FC, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type MaskProps = {\n closeOnClickMask?: boolean;\n onClick?: (e: MouseEvent) => void;\n mask?: \"transparent\" | \"normal\";\n} & XHComponentCommonProps;\n\nconst Mask: FC<MaskProps> = props => {\n const { closeOnClickMask = true, onClick, mask } = props;\n\n const cls = classNames(\"xh-mask\", {\n \"xh-mask-normal\": mask === \"normal\",\n \"xh-mask-transparent\": mask === \"transparent\",\n });\n\n function handleClick(e: any): void {\n closeOnClickMask && onClick && onClick(e);\n }\n\n return <View className={cls} onClick={handleClick} />;\n};\n\nexport default Mask;\n","import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport Mask, { MaskProps } from \"../Mask\";\n// import Activityindicator from \"../ActivityIndicator\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n mask?: MaskProps[\"mask\"];\n color?: string;\n tip?: string | ReactNode;\n size?: number;\n} & XHComponentCommonProps;\n\nconst Loading: FC<LoadingProps> = ({\n mask,\n className,\n tip = \"加载中\",\n // color = \"#FFF\",\n // size = 60,\n}) => {\n const cls = classNames(\"xh-loading\", className);\n\n return (\n <View className={cls}>\n <Mask mask={mask} />\n <View className={classNames(\"xh-loading-main\", { hasTip: tip })}>\n {/* <Activityindicator\n size={size}\n style={{\n \"--loading-border-color\": color,\n \"--loading-border-width\": \"3px\",\n }}\n /> */}\n <View className=\"xh-loading-main-gif\"></View>\n {/* <Image src={require('../../assets/images/loading.gif')} className=\"xh-loading-main-gif\" /> */}\n\n {/* <View className=\"xh-loading-main-spinner\">\n {[...Array(12).keys()].map((index) => (\n <View\n className={classNames(\n \"xh-loading-main-spinner-circle\",\n `is-circle${index + 1}`\n )}\n key={`spinner${index}`}\n >\n <View\n className=\"dot-rotate\"\n style={{ backgroundColor: color }}\n ></View>\n </View>\n ))}\n </View> */}\n {tip && <View className=\"xh-loading-main-tip\">{tip}</View>}\n </View>\n </View>\n );\n};\n\nexport default Loading;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { navigateBack, getSystemInfoSync } from \"@tarojs/taro\";\nimport useCustomNavBar from \"@/hooks/useCustomNavbar\";\n\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type NavBarProps = {\n title: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n navBarBorder?: boolean;\n onBack?: () => void;\n} & XHComponentCommonProps;\n\n// 小程序中判断设备系统\nconst isMiniProgramIos =\n process.env.TARO_ENV !== \"h5\"\n ? getSystemInfoSync().platform === \"ios\"\n : false;\nconst NavBar: FC<NavBarProps> = props => {\n const {\n leftIcon = true,\n rightIcon = false,\n title,\n onBack,\n navBarBorder = false,\n className,\n } = props;\n\n const { navBarHeight, statusBar, buttonRight } = useCustomNavBar();\n\n function goBackPage() {\n onBack ? onBack() : navigateBack();\n }\n\n const wrapStyle =\n process.env.TARO_ENV === \"h5\"\n ? {}\n : {\n height: `${navBarHeight}px`,\n paddingTop: `${statusBar}px`,\n };\n\n const backStyle =\n process.env.TARO_ENV === \"h5\"\n ? {}\n : {\n left: `${buttonRight}px`,\n };\n\n const NavBarCls = classNames(\"xh-nav-bar\", className, {\n h5: process.env.TARO_ENV === \"h5\",\n border: navBarBorder,\n });\n\n return (\n <View className={NavBarCls} style={wrapStyle}>\n <View\n className={classNames(\"xh-nav-bar-back\", { hidden: !leftIcon })}\n style={backStyle}\n onClick={goBackPage}\n ></View>\n <Text\n className={classNames(\"xh-nav-bar-title\", {\n isAndroid: !isMiniProgramIos,\n })}\n >\n {title}\n </Text>\n {process.env.TARO_ENV === \"h5\" && rightIcon && (\n <View className=\"xh-nav-bar-right\">{rightIcon}</View>\n )}\n <View />\n </View>\n );\n};\n\nexport default NavBar;\n","import { useEffect, useState } from \"react\";\nimport {\n getMenuButtonBoundingClientRect,\n getSystemInfoSync,\n} from \"@tarojs/taro\";\n\nconst useCustomNavBar = () => {\n const [navInfo, setNavinfo] = useState({\n navBarHeight: 0,\n statusBar: 0,\n buttonRight: 0,\n });\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\") {\n const { top, height, right } = getMenuButtonBoundingClientRect();\n\n const { statusBarHeight = 0, screenWidth } = getSystemInfoSync();\n\n const navBarHeight = height + (top - statusBarHeight) * 2;\n\n setNavinfo({\n navBarHeight,\n statusBar: statusBarHeight,\n buttonRight: screenWidth - right,\n });\n }\n }, []);\n\n return navInfo;\n};\n\nexport default useCustomNavBar;\n","import React, { FC, useEffect, useMemo, useState } from \"react\";\nimport { Image } from \"@tarojs/components\";\nimport { getImageInfo } from \"@tarojs/taro\";\nimport classNames from \"classnames\";\n\nimport { pxTransform } from \"../../utils/index\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type ImageProps = {\n width?: number;\n height?: number;\n src: string;\n alt?: string;\n style?: React.CSSProperties;\n} & XHComponentCommonProps;\n\nconst XHImage: FC<ImageProps> = props => {\n const { width = 0, height = 0, src, className, ...rest } = props;\n const [defaultSize, setDefaultSize] = useState<{\n width?: number;\n height?: number;\n }>({});\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\" && !className) {\n getImageInfo({\n src,\n success: res => {\n if (res.errMsg === \"getImageInfo:ok\") {\n console.log(res);\n setDefaultSize({ width: res.width, height: res.height });\n }\n },\n });\n }\n }, []);\n\n const size = useMemo(() => {\n let computedSize: { width?: string | number; height?: string | number } =\n defaultSize || {};\n if (width) {\n computedSize.width = `${pxTransform(width)}`;\n }\n if (height) {\n computedSize.height = `${pxTransform(height)}`;\n }\n\n return computedSize;\n }, [width, height, defaultSize]);\n\n const imgCls = classNames(\"xh-image\", className);\n\n return process.env.TARO_ENV !== \"h5\" ? (\n <Image src={src} style={{ ...size, ...rest }} className={imgCls} />\n ) : (\n <img src={src} style={size} className={imgCls} {...rest} />\n );\n};\n\nexport default XHImage;\n","import React, {\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n forwardRef,\n Ref,\n useMemo,\n} from \"react\";\nimport classnames from \"classnames\";\n\nimport Button, { XhButtonProps } from \"../Button\";\n\nimport \"./index.scss\";\n\nexport type refMe = {\n reset: () => void;\n begin: () => void;\n beginning: boolean;\n};\n\nexport type ButtonType = \"default\" | \"secondary\" | \"primary\" | \"warn\";\n\nexport type ButtonShape = \"square\" | \"round\" | \"rectangle\";\n\nexport type ButtonSize = \"default\" | \"mini\" | \"full\";\n\nexport interface CaptchaProps extends XhButtonProps {\n timeout?: number;\n className?: string;\n styleName?: string;\n text?: string;\n onClick: () => Promise<boolean>;\n ref: Ref<refMe>;\n timeingTemp?: string;\n ingText?: string;\n onEnd?: () => void;\n}\n\nexport type CaptchaRef = refMe;\n\nconst CountdownButton = forwardRef<\n refMe,\n Omit<CaptchaProps, \"businessId\" | \"onGetRealnameAuthInfo\" | \"onLaunchapp\">\n>((props, fromRef) => {\n const {\n timeout = 59,\n text = \"获取验证码\",\n onClick,\n className,\n ingText = \"s重新获取\",\n onEnd,\n shape = \"square\",\n ...rest\n } = props;\n const intervalRef = useRef<NodeJS.Timeout | null>();\n const [time, setTime] = useState(0);\n const [disabled, setDisabled] = useState(false);\n\n const reset = (): void => {\n intervalRef.current && clearInterval(intervalRef.current);\n setTime(0);\n setDisabled(false);\n };\n\n useImperativeHandle(\n fromRef,\n () => ({\n reset,\n begin: counter,\n beginning: disabled,\n }),\n [disabled]\n );\n\n useEffect(() => {\n intervalRef.current && clearInterval(intervalRef.current);\n return () => {\n intervalRef.current && clearInterval(intervalRef.current);\n };\n }, []);\n\n // 倒计时\n const buttonText = useMemo((): string | number => {\n if (time) {\n return `${time}${ingText}`;\n }\n return text;\n }, [time, text, ingText]);\n\n const counter = () => {\n const now = Date.now();\n let nowStamp = now;\n\n setDisabled(true);\n\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n }\n\n setTime(timeout);\n\n intervalRef.current = setInterval(() => {\n nowStamp = Date.now();\n const overTimeStamp = now + timeout * 1000 + 100;\n const leftTime = Math.max(\n Math.floor((overTimeStamp - nowStamp) / 1000),\n 0\n );\n\n if (leftTime === 0) {\n intervalRef.current && clearInterval(intervalRef.current);\n setDisabled(false);\n onEnd && onEnd();\n }\n\n setTime(leftTime);\n }, 1000);\n };\n\n const handleClick = (): any => {\n const promise = onClick();\n if (promise && promise.then) {\n promise.then(counter).catch(() => {\n console.log(\"callback reject....\");\n setDisabled(false);\n });\n }\n };\n\n return (\n <Button\n {...props}\n className={classnames(\"xh-captcha\", className)}\n disabled={disabled}\n onClick={handleClick}\n type=\"secondary\"\n shape={shape}\n {...rest}\n >\n {buttonText}\n </Button>\n );\n});\nexport default CountdownButton;\n","import React, {\n ReactNode,\n useRef,\n useImperativeHandle,\n forwardRef,\n} from \"react\";\nimport {\n Input,\n View,\n Text,\n InputProps,\n CommonEventFunction,\n} from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { inputRange } from \"../../utils/index\";\n\nimport \"./index.scss\";\n\nexport type HTMLFormType =\n | \"tel\"\n | \"text\"\n | \"number\"\n | \"password\"\n | \"idcard\"\n | \"digit\"\n | \"safe-password\"\n | \"nickname\";\n\nexport type FormInputProps = {\n onChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n /** 当键盘输入时,触发input事件,event.detail = {value, cursor, keyCode},处理函数可以直接 return 一个字符串,将替换输入框的内容。\n * @supported weapp, h5, rn\n */\n onInput?: CommonEventFunction<InputProps.inputEventDetail>;\n\n /** 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度\n * @supported weapp, h5, rn\n */\n onFocus?: CommonEventFunction<InputProps.inputForceEventDetail>;\n\n /** 输入框失去焦点时触发\n *\n * event.detail = {value: value}\n * @supported weapp, h5, rn\n */\n value?: string;\n maxlength?: number;\n placeholder?: string;\n type?: HTMLFormType;\n pattern?: string;\n RightComponent?: ReactNode;\n label?: string;\n labelHtml?: string;\n LeftComponent?: ReactNode;\n LeftIcon?: ReactNode;\n name?: string;\n readonly?: boolean;\n withArrow?: boolean;\n direction?: \"row\" | \"column\";\n border?: boolean;\n mainExtra?: ReactNode;\n padding?: boolean;\n focus?: boolean;\n /** 设置键盘右下角按钮的文字\n * @default done\n * @supported weapp, rn\n */\n confirmType?: \"send\" | \"search\" | \"next\" | \"go\" | \"done\";\n /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上\n * @supported h5\n */\n nativeProps?: Record<string, unknown>;\n className?: string;\n disabled?: boolean;\n align?: \"left\" | \"right\"; // 文本对齐方式\n};\n\nexport type FocusHandler = { focus: () => void };\n\nconst FormInput = forwardRef<FocusHandler, FormInputProps>((props, formRef) => {\n const {\n onChange,\n maxlength,\n value,\n type,\n placeholder,\n label,\n labelHtml,\n RightComponent,\n onBlur,\n pattern,\n LeftComponent,\n LeftIcon,\n name,\n readonly = false,\n withArrow = false,\n direction = \"row\",\n border = true,\n mainExtra,\n padding = false,\n className,\n disabled = false,\n align = \"left\",\n ...rest\n } = props;\n\n const password = type === \"password\";\n\n function handleChange(e): any {\n let inputValue = inputRange(e.target.value);\n e.target.value = inputValue;\n onChange && onChange(inputValue);\n }\n\n function handleBlur(e): any {\n let inputValue = inputRange(e.target.value);\n onBlur && onBlur(inputValue);\n }\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(formRef, () => ({\n focus() {\n inputRef.current?.focus();\n },\n }));\n\n const wrapperCls = classNames(\n \"xh-form-input\",\n {\n column: direction === \"column\",\n border,\n padding,\n },\n className\n );\n\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View className={wrapperCls}>\n <View className=\"xh-form-input-main\">\n <View className=\"xh-form-input-main-left\">\n {label && (\n <View className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <View className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </View>\n )}\n </View>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <View>{LeftComponent}</View>\n </View>\n <View className=\"xh-form-input-main-center\">\n {readonly ? (\n <Text\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </Text>\n ) : (\n <Input\n {...rest}\n password={password}\n ref={inputRef}\n className={classNames(\n \"xh-form-input-main-center-native\",\n align\n )}\n maxlength={maxlength}\n name={name}\n disabled={disabled}\n placeholder={placeholder}\n type={type as InputProps[\"type\"]}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </View>\n {mainExtra && (\n <View className=\"xh-form-input-main-extra\">{mainExtra}</View>\n )}\n </View>\n <View className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <View className=\"arrow\" />}\n </View>\n </View>\n );\n }\n\n return (\n <div className={wrapperCls}>\n <div className=\"xh-form-input-main\">\n <div className=\"xh-form-input-main-left\">\n {label && (\n <label className=\"xh-form-input-main-left-label\">\n {label}\n {LeftIcon && (\n <div className=\"xh-form-input-main-left-label-icon\">\n {LeftIcon}\n </div>\n )}\n </label>\n )}\n {labelHtml && (\n <label\n dangerouslySetInnerHTML={{ __html: labelHtml }}\n className=\"label\"\n />\n )}\n <div>{LeftComponent}</div>\n </div>\n <div className=\"xh-form-input-main-center\">\n {readonly ? (\n <p\n className={classNames(\n \"xh-form-input-main-center-readonly\",\n {\n \"xh-form-input-main-placeholder\": !value,\n },\n align\n )}\n >\n {value || placeholder}\n </p>\n ) : (\n <input\n ref={inputRef}\n className={classNames(\"xh-form-input-main-center-native\", align)}\n maxLength={maxlength}\n name={name}\n disabled={disabled}\n pattern={pattern}\n placeholder={placeholder}\n type={type}\n value={value}\n onBlur={handleBlur}\n onInput={handleChange}\n />\n )}\n </div>\n {mainExtra && (\n <div className=\"xh-form-input-main-extra\">{mainExtra}</div>\n )}\n </div>\n <div className=\"xh-form-input-right\">\n {RightComponent}\n {withArrow && <span className=\"arrow\" />}\n </div>\n </div>\n );\n});\nexport default FormInput;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHListProps = {\n title?: string;\n description?: string | ReactNode;\n icon?: ReactNode;\n extra?: string | ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n condensed?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: string;\n extraColor?: string;\n ellipsis?: boolean;\n padding?: boolean;\n} & XHComponentCommonProps;\n\nconst XHList: FC<XHListProps> = props => {\n const {\n title = \"\",\n description = \"\",\n icon,\n extra = \"\",\n extraIcon = \"\",\n arrow,\n border = true,\n onClick,\n className,\n outline = true,\n condensed = false,\n descriptionColor = \"\",\n extraColor = \"\",\n ellipsis = true,\n padding = false,\n } = props;\n\n const listcls = classNames(\n \"xh-list\",\n { border },\n { outline },\n { condensed },\n { padding },\n className\n );\n\n const mainCls = classNames(\"xh-list-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={listcls} onClick={handleClick}>\n {icon && <View className=\"xh-list-icon\">{icon}</View>}\n <View className={mainCls}>\n {title && <Text className=\"xh-list-main-title\">{title}</Text>}\n <Text\n className=\"xh-list-main-description\"\n style={{ color: descriptionColor }}\n >\n {description}\n </Text>\n </View>\n <View className=\"xh-list-extra\">\n <View className=\"xh-list-extra-info\" style={{ color: extraColor }}>\n {extra}\n </View>\n <View className=\"xh-list-extra-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-list-extra-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHList;\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: string | ReactNode;\n visible: boolean;\n} & XHComponentCommonProps;\n\nexport type DialogRef = {\n close: () => void;\n};\nconst DialogCom = forwardRef<DialogRef, DialogProps>((props, fromRef) => {\n const { header, content, footer, className = \"\", visible } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close: () => {\n console.log(\"closes\");\n setSelfVisible(false);\n },\n }));\n\n useEffect(() => {\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog\", className, {\n microApp: process.env.TARO_ENV !== \"h5\",\n });\n\n const dialogContent = classNames(\"xh-dialog-content-content\", {\n headless: !header,\n });\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition\n in={selfVisible}\n timeout={200}\n classNames=\"scale\"\n unmountOnExit\n >\n <View className=\"xh-dialog-content\">\n {header && <View className=\"xh-dialog-content-header\">{header}</View>}\n <View className={dialogContent}>{content}</View>\n <View className=\"xh-dialog-content-footer\">{footer}</View>\n </View>\n </CSSTransition>\n </View>\n );\n\n return ReactDOM.createPortal(DialogMain, document.body);\n});\n\nexport default DialogCom;\n","import { ForwardRefExoticComponent, RefObject } from \"react\";\nimport DialogComponent, { DialogRef, DialogProps } from \"../DialogComponent\";\nimport Alert, { AlertProps } from \"./Alert\";\nimport Confirm, { ConfirmProps, ConfirmPropsResult } from \"./Confirm\";\n\nexport interface DialogComponent<P = {}> extends ForwardRefExoticComponent<P> {\n ref: RefObject<DialogRef>;\n alert: (options: AlertProps) => Promise<void>;\n confirm: (options: ConfirmProps) => Promise<ConfirmPropsResult>;\n}\n\nconst Dialog = DialogComponent as DialogComponent<DialogProps>;\nDialog.alert = Alert;\nDialog.confirm = Confirm;\n\nexport default Dialog;\n","import React, { createRef, ReactNode } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport Dialog, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../../../src/components/Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type AlertProps = {\n title?: string | ReactNode;\n content?: string | ReactNode;\n confirmText?: string | ReactNode;\n} & {\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: () => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nconst Alert = (props: AlertProps): Promise<void> => {\n const { title = \"\", content, confirmText = \"知道了\", ...rest } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-alert-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve();\n }}\n >\n {confirmText}\n </Button>\n );\n ReactDOM.render(\n <Dialog\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title: title as string,\n content: content as string,\n showCancel: false,\n confirmColor: \"#fe5e00\",\n confirmText: confirmText as string,\n ...rest,\n }).then(() => resolve());\n }\n });\n};\n\nexport default Alert;\n","import React, { createRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showModal } from \"@tarojs/taro\";\nimport DialogComponent, { DialogRef } from \"../../DialogComponent\";\nimport Button from \"../../Button\";\nimport { XHComponentCommonProps } from \"../../../types\";\n\nexport type ConfirmProps = {\n title?: string;\n header?: string;\n content: string;\n cancelText?: string;\n confirmText?: string;\n} & {\n /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n cancelColor?: string;\n /** 取消按钮的文字,最多 4 个字符 */\n cancelText?: string;\n /** 接口调用结束的回调函数(调用成功、失败都会执行) */\n complete?: (res: TaroGeneral.CallbackResult) => void;\n /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */\n confirmColor?: string;\n /** 确认按钮的文字,最多 4 个字符 */\n confirmText?: string;\n /** 提示的内容 */\n content?: string;\n /** 接口调用失败的回调函数 */\n fail?: (res: TaroGeneral.CallbackResult) => void;\n /** 接口调用成功的回调函数 */\n success?: (result: ConfirmPropsResult) => void;\n /** 提示的标题 */\n title?: string;\n} & XHComponentCommonProps;\n\nexport type ConfirmPropsResult = {\n /** 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭) */\n cancel: boolean;\n /** 为 true 时,表示用户点击了确定按钮 */\n confirm: boolean;\n /** 调用结果 */\n errMsg: string;\n};\nconst Comfirm = (props: ConfirmProps): Promise<ConfirmPropsResult> => {\n const {\n title = \"\",\n content,\n confirmText = \"确定\",\n cancelText = \"取消\",\n ...rest\n } = props;\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const dialogRef = createRef<DialogRef>();\n const alertFooter = (\n <div className=\"xh-confirm-footer\">\n <Button\n ghost\n type=\"default\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-cancel-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: false, cancel: true });\n }}\n >\n {cancelText}\n </Button>\n <Button\n ghost\n type=\"primary\"\n shape=\"rectangle\"\n className=\"xh-confirm-footer-button xh-confirm-footer-confirm-button\"\n onClick={() => {\n ReactDOM.unmountComponentAtNode(div);\n resolve({ errMsg: \"ok\", confirm: true, cancel: false });\n }}\n >\n {confirmText}\n </Button>\n </div>\n );\n ReactDOM.render(\n <DialogComponent\n header={title}\n footer={alertFooter}\n content={content}\n visible\n ref={dialogRef}\n {...rest}\n />,\n div\n );\n } else {\n showModal({\n title,\n content,\n confirmColor: \"#fe5e00\",\n cancelText,\n cancelColor: \"#666\",\n confirmText,\n ...rest,\n }).then(resolve);\n }\n });\n};\n\nexport default Comfirm;\n","import React, { FC, useState, useEffect, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n type?: NumberKeyboardType;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n title?: string;\n closeText?: string;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst NumberKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n showClose = true,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n title = \"安全键盘\",\n closeText = \"收起\",\n className,\n } = props;\n const [input, setInput] = useState(value);\n const keys = getKeys();\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n function handleKeyPress(e, { type, value }: IKey): void {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (type === \"none\") return;\n\n let newInput = input;\n\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.length < maxLength) {\n newInput = input + value;\n }\n\n setInput(newInput);\n\n onChange && onChange(newInput);\n }\n\n function getKeys(): IKey[] {\n const keys: IKey[] = [];\n\n for (let i = 1; i <= 9; i++) {\n keys.push({ text: i, value: i, type: \"number\" });\n }\n\n keys.push(\n { text: \"\", value: \"\", type: \"none\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" }\n );\n\n return keys;\n }\n const keyboardcls = classNames(\"xh-number-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-number-keyboard-header\">\n <View className=\"xh-number-keyboard-header-title\">{title}</View>\n {showClose && (\n <View\n className=\"xh-number-keyboard-header-close\"\n onClick={handleClose}\n >\n {closeText}\n </View>\n )}\n </View>\n <View className=\"xh-number-keyboard-body\">\n {keys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-number-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default NumberKeyboard;\n","import React, { FC, useMemo } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport Image from \"../Image\";\n\nimport \"./index.scss\";\n\nexport type ToastProps = {\n title: string;\n duration?: number;\n /** 图标\n * 可选值:\n * - 'success': 显示成功图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'error': 显示失败图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'loading': 显示加载图标,此时 title 文本最多显示 7 个汉字长度;\n * - 'none': 不显示图标,此时 title 文本最多可显示两行 */\n icon?: \"success\" | \"error\" | \"loading\" | \"none\";\n /** 自定义图标的本地路径,image 的优先级高于 icon */\n image?: string;\n /** 是否显示透明蒙层,防止触摸穿透 */\n mask?: boolean;\n} & XHComponentCommonProps;\n\nconst ToastCom: FC<ToastProps> = props => {\n const { title, className = \"\", icon = \"none\", image = \"\" } = props;\n\n const toastcls = classNames(\"xh-toast\", className);\n\n // icon-success_toast\n // icon-alert_toast\n // icon-failure_toast\n // icon-loading_toast\n\n const classConfig = {\n success: \"icon-success_toast\",\n error: \"icon-failure_toast\",\n loading: \"icon-loading_toast\",\n none: \"\",\n };\n const cls = classNames(\"iconfont\", classConfig[icon]);\n const showIcon = useMemo(() => {\n if (image) return <Image src={image} width={24} height={24} />;\n if (icon) return <span className={cls}></span>;\n }, [icon, image]);\n\n const DialogMain = (\n <View className={toastcls}>\n <Mask mask=\"transparent\" />\n <CSSTransition in timeout={200} classNames=\"face\" unmountOnExit>\n <View className=\"xh-toast-content\">\n {showIcon}\n <View>{title}</View>\n </View>\n </CSSTransition>\n </View>\n );\n\n return ReactDOM.createPortal(DialogMain, document.body);\n};\n\nexport default ToastCom;\n","import React, {\n ReactNode,\n useState,\n useImperativeHandle,\n forwardRef,\n useEffect,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { CSSTransition } from \"react-transition-group\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Mask from \"../Mask\";\nimport \"./index.scss\";\n\nexport type DialogProps = {\n header?: string | ReactNode;\n content: string | ReactNode;\n footer?: ReactNode;\n cancelText?: string;\n confirmText?: string;\n showCancel?: boolean;\n visible: boolean;\n onConfirm?: () => void;\n onCancel?: () => void;\n onClose?: () => void;\n tranparent?: boolean;\n portrait?: boolean;\n fancy?: boolean;\n} & XHComponentCommonProps;\n\nexport type IDialogRef = {\n close: () => void;\n open: () => void;\n};\nconst DialogCom = forwardRef<IDialogRef, DialogProps>((props, fromRef) => {\n const {\n header,\n content,\n className = \"\",\n visible,\n showCancel = true,\n confirmText = \"确定\",\n cancelText = \"取消\",\n footer = false,\n onConfirm,\n onCancel,\n onClose,\n portrait = false,\n tranparent = false,\n fancy = false,\n } = props;\n const [selfVisible, setSelfVisible] = useState(false);\n\n useImperativeHandle(fromRef, () => ({\n close,\n open,\n }));\n\n const close = () => {\n onClose && onClose();\n setSelfVisible(false);\n };\n\n const open = () => {\n setSelfVisible(true);\n };\n\n const handleConfirm = () => {\n onConfirm && onConfirm();\n // close();\n };\n const handleCancel = () => {\n onCancel && onCancel();\n close();\n };\n\n useEffect(() => {\n if (!visible) {\n onClose && onClose();\n }\n setSelfVisible(visible);\n }, [visible]);\n\n const dialogcls = classNames(\"xh-dialog-ref\", className, {\n show: selfVisible,\n });\n\n const dialogFooter = (\n <View\n className={classNames(\"xh-dialog-ref-content-footer-buttons\", {\n portrait,\n fancy,\n })}\n >\n {showCancel && (\n <Button\n ghost\n size=\"full\"\n shape=\"rectangle\"\n preventTime={0}\n onClick={handleCancel}\n className=\"xh-dialog-ref-content-footer-buttons-cancel\"\n >\n {cancelText}\n </Button>\n )}\n <Button\n type=\"primary\"\n shape=\"rectangle\"\n size=\"full\"\n ghost={!fancy}\n className=\"xh-dialog-ref-content-footer-buttons-confirm\"\n onClick={handleConfirm}\n preventTime={0}\n >\n {confirmText}\n </Button>\n </View>\n );\n\n const DialogMain = (\n <View className={dialogcls}>\n <Mask />\n <CSSTransition in={selfVisible} timeout={200} classNames=\"scale\">\n <View className={classNames(\"xh-dialog-ref-content\", { tranparent })}>\n {header && (\n <View className=\"xh-dialog-ref-content-header\">{header}</View>\n )}\n <View className=\"xh-dialog-ref-content-content\">{content}</View>\n {footer || (\n <View className=\"xh-dialog-ref-content-footer\">{dialogFooter}</View>\n )}\n </View>\n </CSSTransition>\n </View>\n );\n return DialogMain;\n});\n\nexport default DialogCom;\n","import React, { PropsWithChildren, ReactNode } from \"react\";\n\nexport interface TabItemProps extends PropsWithChildren<{}> {\n title?: string;\n TabItemComponent?: ReactNode;\n children?: ReactNode;\n}\n\nconst TabItem = (props: TabItemProps) => {\n const { children, title, TabItemComponent } = props;\n\n return (\n <div className=\"xh-tabbar-item\">\n {TabItemComponent ? TabItemComponent : title}\n {children}\n </div>\n );\n};\n\nexport default TabItem;\n","import React, {\n FC,\n ReactElement,\n useEffect,\n useState,\n ReactNode,\n useRef,\n} from \"react\";\nimport { createSelectorQuery } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Item from \"./TabItem\";\n\n/**\n * Tab切换\n *\n * @param children //子组件\n * @param animated //是否开启转场动画\n * @param selectIndex //默认选中第几个\n * @param lineColor //下划线颜色\n * @param titleActiveColor //标题选中态颜色\n * @param titleInctiveColor //标题默认态颜色\n * @param onChange //切换回调事件\n * @param content //item公共节点\n *\n */\n\nexport interface TabProps {\n children: ReactElement[];\n animated?: boolean;\n // initIndex?: number;\n lineColor?: string;\n titleActiveColor?: string;\n titleInctiveColor?: string;\n onChange?: (index: number) => void;\n content?: string | ReactNode;\n selectIndex: number;\n}\n\nexport interface TabsComponent<P = {}> extends FC<P> {\n Item: typeof Item;\n}\n\nconst XHTabs: TabsComponent<TabProps> = props => {\n const {\n children = [],\n animated = false,\n // initIndex = 0,\n lineColor = \"#F6AB00\",\n titleActiveColor = \"#333\",\n titleInctiveColor = \"#999\",\n onChange,\n content,\n selectIndex = 0,\n } = props;\n\n // const [selectIndex, setSelectIndex] = useState(initIndex);\n const [tabWdith, setTabWdith] = useState(0);\n const [tabContentHeight, setTabContentHeight] = useState(0);\n const [tabSlotHeight, setTabSlotHeight] = useState(0);\n\n const itemNavRef = useRef<(HTMLLIElement | null)[]>([]);\n const itemContentRef = useRef<(HTMLDivElement | null)[]>([]);\n const itemSlotRef = useRef<(HTMLDivElement | null)[]>([]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (process.env.TARO_ENV === \"h5\") {\n const el = itemNavRef.current[selectIndex];\n if (el) {\n const rect = el.getBoundingClientRect();\n console.log(\"el\", rect);\n setTabWdith(rect.width);\n }\n const elSlot = itemSlotRef.current[0];\n if (elSlot) {\n const rect = elSlot.getBoundingClientRect();\n console.log(\"elSlot\", rect);\n setTabSlotHeight(rect.height);\n }\n\n const elitem = itemContentRef.current[selectIndex];\n if (elitem) {\n const rect = elitem.getBoundingClientRect();\n console.log(\"elitem\", rect);\n setTabContentHeight(rect.height);\n }\n clearTimeout(timer);\n return;\n }\n\n const query = createSelectorQuery();\n query.selectAll(\".xh-tabbar-nav-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-slot\").boundingClientRect();\n\n query.exec(res => {\n if (!res[0][selectIndex]) return;\n const width: number = res[0][selectIndex].width;\n setTabWdith(width);\n\n if (!res[1][selectIndex]) return;\n setTabContentHeight(res[1][selectIndex].height);\n\n if (!res[2][selectIndex]) return;\n setTabSlotHeight(res[2][selectIndex].height);\n clearTimeout(timer);\n });\n }, 300);\n console.log(children.length);\n }, [selectIndex, children]);\n\n const handleClick = (index: number): void => {\n // setSelectIndex(index);\n const query = createSelectorQuery();\n query.selectAll(\".xh-tabbar-content-item\").boundingClientRect();\n query.selectAll(\".xh-tabbar-content-slot\").boundingClientRect();\n query.exec(res => {\n if (!res[0][index]) return;\n const height: number = res[0][index].height;\n setTabContentHeight(height);\n if (!res[1][index]) return;\n setTabSlotHeight(res[1][index].height);\n });\n\n onChange && onChange(index);\n };\n\n function renderLine(): ReactElement | null {\n const left: number = tabWdith / 2 + selectIndex * tabWdith;\n return (\n <div\n className={classNames(\"xh-tabbar-nav-line\", {\n \"xh-tabbar-nav-line-active\": animated,\n })}\n style={{\n background: `${lineColor}`,\n transform: `translateX(${left}px) translate(-50%, -50%)`,\n WebkitTransform: `translateX(${left}px) translate(-50%, -50%)`,\n }}\n />\n );\n }\n\n return (\n <View className=\"xh-tabbar\">\n <View className=\"xh-tabbar-nav\">\n {children.map((child, index) => (\n <View\n key={index}\n ref={el => (itemNavRef.current[index] = el)}\n className=\"xh-tabbar-nav-item\"\n style={{\n color:\n selectIndex === index ? titleActiveColor : titleInctiveColor,\n }}\n onClick={() => handleClick(index)}\n >\n {child.props.TabItemComponent\n ? child.props.TabItemComponent\n : child.props.title}\n </View>\n ))}\n {renderLine()}\n </View>\n <View\n className=\"xh-tabbar-content\"\n style={{\n width: `${children.length * 100}%`,\n height:\n tabContentHeight + tabSlotHeight\n ? `${tabContentHeight + tabSlotHeight}px`\n : \"auto\",\n }}\n >\n {content && (\n <View className=\"xh-tabbar-content-slot\" ref={itemSlotRef}>\n {content}\n </View>\n )}\n {children.map((child, index) => (\n <View\n key={index}\n ref={el => (itemContentRef.current[index] = el)}\n className={classNames(\"xh-tabbar-content-item\", {\n \"xh-tabbar-content-item-dispaly\":\n selectIndex !== index && !animated,\n \"xh-tabbar-content-item-active\": selectIndex === index,\n })}\n style={{\n transform: animated ? `translateX(-${selectIndex * 100}%)` : \"\",\n }}\n >\n {child.props.children}\n </View>\n ))}\n </View>\n </View>\n );\n};\n\nXHTabs.Item = Item;\n\nexport default XHTabs;\nexport const TabItem = Item;\n","import TabBarComponent, { TabProps } from \"./tabbar/Tabbar\";\nimport TabBarItem from \"./tabbar/TabItem\";\n\nimport \"./index.scss\";\n\nexport interface TabBarComponent<P = {}> extends React.FC<P> {\n Item: typeof TabBarItem;\n}\n\nconst TabBar = TabBarComponent as TabBarComponent<TabProps>;\n\nTabBar.Item = TabBarItem;\n\nexport default TabBar;\n","import React, { FC, PropsWithChildren } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport \"./index.scss\";\n\nexport interface AnimatedProps extends PropsWithChildren<{}> {\n in: boolean;\n appear?: boolean;\n timeout?: number;\n name?: string;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Animated: FC<AnimatedProps> = props => {\n const {\n children,\n timeout = 300,\n in: inProp,\n name,\n unmountOnExit = true,\n ...rest\n } = props;\n\n return (\n <CSSTransition\n unmountOnExit={unmountOnExit}\n classNames={name}\n in={inProp}\n timeout={timeout}\n {...rest}\n >\n {children}\n </CSSTransition>\n );\n};\n\nexport default Animated;\n","import React, { PropsWithChildren, FC } from \"react\";\nimport Animated from \"../Animated\";\n\nexport type SlideDirection = \"up\" | \"down\" | \"left\" | \"right\";\n\nexport interface SlideProps extends PropsWithChildren<{}> {\n in: boolean;\n timeout?: number;\n direction?: SlideDirection;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Slide: FC<SlideProps> = props => {\n const { children, in: inProp, timeout, direction = \"up\", ...rest } = props;\n\n return (\n <Animated\n appear\n in={inProp}\n name={`slide-${direction}`}\n timeout={timeout}\n {...rest}\n >\n {children}\n </Animated>\n );\n};\n\nexport default Slide;\n","import React, { PropsWithChildren, FC } from \"react\";\nimport Animated from \"../Animated\";\n\nexport interface FadeProps extends PropsWithChildren<{}> {\n in: boolean;\n timeout?: number;\n onExited?: () => void;\n unmountOnExit?: boolean;\n}\n\nconst Fade: FC<FadeProps> = props => {\n const { children, in: inProp, timeout, onExited, ...rest } = props;\n\n return (\n <Animated\n in={inProp}\n name=\"fade\"\n timeout={timeout}\n onExited={onExited}\n {...rest}\n >\n {children}\n </Animated>\n );\n};\n\nexport default Fade;\n","import React, { FC, PropsWithChildren, useEffect } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport { Fade, Slide } from \"../Animated\";\nimport { SlideDirection } from \"../Animated/Slide\";\nimport Mask from \"../Mask\";\n\nimport \"./index.scss\";\n\nexport type PopupPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport interface PopupProps extends PropsWithChildren<{}> {\n visible: boolean;\n position?: PopupPosition;\n className?: string;\n onClose?: () => void;\n}\n\nconst positionMap = {\n top: \"down\",\n bottom: \"up\",\n left: \"right\",\n right: \"left\",\n};\n\nconst Popup: FC<PopupProps> = props => {\n const { visible, position = \"bottom\", children, onClose, className } = props;\n const direction = positionMap[position] as SlideDirection;\n const cls = classNames(\"xh-popup-content\", {\n \"xh-popup-content-left\": position === \"left\",\n \"xh-popup-content-right\": position === \"right\",\n \"xh-popup-content-top\": position === \"top\",\n \"xh-popup-content-bottom\": position === \"bottom\",\n });\n\n const preventSTH = (e: TouchEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n useEffect(() => {\n if (visible) {\n document.body.style.touchAction = \"none\";\n document.body.addEventListener(\"touchmove\", preventSTH);\n document.body.style.overflowY = \"hidden\";\n } else {\n document.body.style.touchAction = \"\";\n document.body.removeEventListener(\"touchmove\", preventSTH);\n document.body.style.overflowY = \"auto\";\n }\n\n return () => {\n document.body.style.touchAction = \"\";\n document.body.style.overflowY = \"auto\";\n document.body.removeEventListener(\"touchmove\", preventSTH);\n };\n }, [visible]);\n\n function handleClickOnMask(): void {\n onClose && onClose();\n }\n if (process.env.TARO_ENV !== \"h5\") {\n const minicls = classNames(\n \"xh-popup\",\n className,\n visible ? \"visible\" : \"hidden\"\n );\n return (\n <View className={minicls}>\n <Mask onClick={handleClickOnMask} />\n <View className={cls}>{children}</View>\n </View>\n );\n }\n return ReactDOM.createPortal(\n <Fade in={visible}>\n <div className={classNames(\"xh-popup\", className)}>\n <Mask onClick={handleClickOnMask} />\n <Slide direction={direction} in={visible}>\n <div className={cls}>{children}</div>\n </Slide>\n </div>\n </Fade>,\n document.body\n );\n};\n\nexport default Popup;\n","import React, {\n useState,\n useEffect,\n useRef,\n ForwardRefRenderFunction,\n useImperativeHandle,\n MouseEventHandler,\n} from \"react\";\nimport { View } from \"@tarojs/components\";\nimport { useTouch } from \"../../hooks/useTouch\";\nimport \"./index.scss\";\n\ninterface PickerObjectValue {\n text: string | number;\n value: string | number;\n [key: string]: any;\n}\nexport type PickerValue = string | PickerObjectValue;\n\ninterface PickerSlotProps<T extends PickerValue = PickerObjectValue> {\n defaultValue?: string | number;\n data: T[];\n mode?: \"normal\" | \"3D\";\n swipeDuration?: number | string;\n onConfirm?: (value: T, index: number) => void;\n onCancel?: MouseEventHandler;\n onClose?: MouseEventHandler;\n keyIndex: number;\n visible: boolean;\n}\n\nconst InternalPickerSlot: ForwardRefRenderFunction<\n { stopMomentum: () => void; moving: boolean },\n Partial<PickerSlotProps>\n> = (props, ref) => {\n const {\n keyIndex = 0,\n defaultValue,\n data = [],\n mode = \"normal\",\n swipeDuration = 1000,\n visible = false,\n onConfirm,\n } = props;\n\n const touch = useTouch();\n\n const DEFAULT_DURATION = 200;\n // 触发惯性滑动条件:\n // 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_TIME` 且 move\n // 距离大于 `MOMENTUM_DISTANCE` 时,执行惯性滑动\n const INERTIA_TIME = 300;\n const INERTIA_DISTANCE = 15;\n const [currIndex, setCurrIndex] = useState(1);\n const lineSpacing = useRef(48);\n\n const [touchTime, setTouchTime] = useState(0);\n const [touchDeg, setTouchDeg] = useState(\"0deg\");\n const rotation = 22;\n const moving = useRef(false);\n let timer: number | undefined;\n\n const listbox = useRef<any>(null);\n const rollerRef = useRef<any>(null);\n const pickerSlotRef = useRef<any>(null);\n\n const [startTime, setStartTime] = useState(0);\n const [startY, setStartY] = useState(0);\n\n const transformY = useRef(0);\n const [scrollDistance, setScrollDistance] = useState(0);\n\n const isHidden = (index: number) => {\n if (index >= currIndex + 8 || index <= currIndex - 8) {\n return true;\n }\n return false;\n };\n\n const setTransform = (\n translateY = 0,\n type: string,\n time = DEFAULT_DURATION,\n deg: string\n ) => {\n let nTime = time;\n if (type !== \"end\") {\n nTime = 0;\n }\n\n setTouchTime(nTime);\n setTouchDeg(deg);\n\n setScrollDistance(translateY);\n };\n\n const setMove = (move: number, type?: string, time?: number) => {\n let updateMove = move + transformY.current;\n if (type === \"end\") {\n // 限定滚动距离\n if (updateMove > 0) {\n updateMove = 0;\n }\n if (updateMove < -(data.length - 1) * lineSpacing.current) {\n updateMove = -(data.length - 1) * lineSpacing.current;\n }\n\n // 设置滚动距离为lineSpacing的倍数值\n const endMove =\n Math.round(updateMove / lineSpacing.current) * lineSpacing.current;\n const deg = `${\n (Math.abs(Math.round(endMove / lineSpacing.current)) + 1) * rotation\n }deg`;\n\n setTransform(endMove, type, time, deg);\n\n setCurrIndex(Math.abs(Math.round(endMove / lineSpacing.current)) + 1);\n } else {\n let deg = 0;\n const currentDeg = (-updateMove / lineSpacing.current + 1) * rotation;\n\n // picker 滚动的最大角度\n const maxDeg = (data.length + 1) * rotation;\n const minDeg = 0;\n\n deg = Math.min(Math.max(currentDeg, minDeg), maxDeg);\n\n if (minDeg < deg && deg < maxDeg) {\n setTransform(updateMove, \"\", undefined, `${deg}deg`);\n setCurrIndex(\n Math.abs(Math.round(updateMove / lineSpacing.current)) + 1\n );\n }\n }\n };\n\n const setChooseValue = (move: number) => {\n const index = Math.round(-move / lineSpacing.current);\n onConfirm && onConfirm(data[index], keyIndex);\n };\n\n // 开始滚动\n const touchStart = event => {\n touch.start(event);\n setStartY(touch.deltaY);\n setStartTime(Date.now());\n transformY.current = scrollDistance;\n };\n\n const touchMove = event => {\n touch.move(event);\n if (touch.isVertical()) {\n moving.current = true;\n preventDefault(event, true);\n }\n const move = touch.deltaY - startY;\n setMove(move);\n };\n\n const touchEnd = () => {\n if (!moving.current) return;\n const move = touch.deltaY - startY;\n const moveTime = Date.now() - startTime;\n // 区分是否为惯性滚动\n if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {\n // 惯性滚动\n const distance = momentum(move, moveTime);\n setMove(distance, \"end\", +swipeDuration);\n } else {\n setMove(move, \"end\");\n }\n\n setTimeout(() => {\n touch.reset();\n }, 0);\n };\n\n // 惯性滚动 距离\n const momentum = (distance: number, duration: number) => {\n let nDistance = distance;\n // 惯性滚动的速度\n const speed = Math.abs(nDistance / duration);\n // 惯性滚动的距离\n nDistance = (speed / 0.003) * (nDistance < 0 ? -1 : 1);\n return nDistance;\n };\n\n const modifyStatus = (type?: boolean, val?: string | number) => {\n const value = val || defaultValue;\n let index = -1;\n if (value) {\n data.forEach((item, idx) => {\n if (typeof item === \"object\" ? item.value === value : item === value) {\n index = idx;\n return true;\n }\n return false;\n });\n } else {\n data.forEach((item, i) => {\n if (\n typeof item === \"object\"\n ? item.value === defaultValue\n : item === defaultValue\n ) {\n index = i;\n }\n });\n }\n\n setCurrIndex(index === -1 ? 1 : index + 1);\n const move = index === -1 ? 0 : index * lineSpacing.current;\n type && setChooseValue(-move);\n setMove(-move);\n };\n\n // 惯性滚动结束\n const stopMomentum = () => {\n moving.current = false;\n setTouchTime(0);\n setChooseValue(scrollDistance);\n };\n // 阻止默认事件\n const preventDefault = (\n event: React.TouchEvent<HTMLElement>,\n isStopPropagation?: boolean\n ) => {\n /* istanbul ignore else */\n if (typeof event.cancelable !== \"boolean\" || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n event.stopPropagation();\n }\n };\n\n const getReference = async () => {\n // const refe = await getRectByTaro(listbox?.current)\n // lineSpacing.current = refe.height ? refe.height : 36\n // lineSpacing.current = 36\n modifyStatus(true);\n };\n\n const touchRollerStyle = () => {\n return {\n transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,\n transform: `rotate3d(1, 0, 0, ${touchDeg})`,\n };\n };\n const touchTileStyle = () => {\n return {\n transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,\n transform: `translate3d(0, ${scrollDistance}px, 0)`,\n };\n };\n\n useEffect(() => {\n setScrollDistance(0);\n transformY.current = 0;\n modifyStatus(false);\n return () => {\n clearTimeout(timer);\n };\n }, [data]);\n\n useEffect(() => {\n if (visible) {\n setTimeout(() => {\n getReference();\n }, 200);\n }\n }, [visible]);\n\n useImperativeHandle(ref, () => ({\n stopMomentum,\n moving: moving.current,\n }));\n\n return (\n <View\n className=\"xh-picker-list\"\n ref={pickerSlotRef}\n onTouchStart={touchStart}\n onTouchMove={touchMove}\n onTouchEnd={touchEnd}\n >\n <View\n className=\"xh-picker-roller\"\n ref={rollerRef}\n style={mode === \"3D\" ? touchRollerStyle() : touchTileStyle()}\n onTransitionEnd={stopMomentum}\n >\n {/* 3D 效果 */}\n {mode === \"3D\" &&\n data.map((item, index) => {\n return (\n <View\n className={`xh-picker-roller-item ${\n isHidden(index + 1) && \"nut-picker-roller-item-hidden\"\n }`}\n style={{\n transform: `rotate3d(1, 0, 0, ${\n -rotation * (index + 1)\n }deg) translate3d(0px, 0px, 104px)`,\n height: `${lineSpacing.current}px`,\n lineHeight: `${lineSpacing.current}px`,\n }}\n key={\n typeof item === \"string\"\n ? index\n : item.value\n ? item.value\n : index\n }\n >\n <React.Fragment>\n {typeof item === \"object\" ? item.text : item}\n </React.Fragment>\n </View>\n );\n })}\n {/* 平铺 */}\n {mode === \"normal\" &&\n data.map((item, index) => {\n return (\n <View\n className=\"xh-picker-roller-item-title\"\n key={\n typeof item === \"object\" ? item.value : item ? item : index\n }\n style={{\n height: `${lineSpacing.current}px`,\n lineHeight: `${lineSpacing.current}px`,\n }}\n >\n <React.Fragment>\n {typeof item === \"object\" ? item.text : item}\n </React.Fragment>\n </View>\n );\n })}\n </View>\n\n <View className=\"xh-picker-mask\" />\n <View className=\"xh-picker-indicator\" ref={listbox} />\n </View>\n );\n};\nconst PickerSlot = React.forwardRef<\n { stopMomentum: () => void; moving: boolean },\n Partial<PickerSlotProps>\n>(InternalPickerSlot);\nexport default PickerSlot;\n","import { useState } from \"react\";\n\nconst MIN_DISTANCE = 10;\n\ntype Direction = \"\" | \"vertical\" | \"horizontal\";\n\nfunction getDirection(x: number, y: number) {\n if (x > y && x > MIN_DISTANCE) {\n return \"horizontal\";\n }\n if (y > x && y > MIN_DISTANCE) {\n return \"vertical\";\n }\n return \"\";\n}\n\nexport function useTouch() {\n const [startX, SetStartX] = useState(0);\n const [startY, SetStartY] = useState(0);\n const [moveX, SetMoveX] = useState(0);\n const [moveY, SetMoveY] = useState(0);\n const [deltaX, SetDeltaX] = useState(0);\n const [deltaY, SetDeltaY] = useState(0);\n const [offsetX, SetOffsetX] = useState(0);\n const [offsetY, SetOffsetY] = useState(0);\n const [direction, SetDirection] = useState<Direction>(\"\");\n\n const isVertical = () => direction === \"vertical\";\n const isHorizontal = () => direction === \"horizontal\";\n\n const reset = () => {\n SetDeltaX(0);\n SetDeltaY(0);\n SetOffsetX(0);\n SetOffsetY(0);\n SetDirection(\"\");\n };\n\n const start = ((event: TouchEvent) => {\n reset();\n SetStartX(event.touches[0].clientX);\n SetStartY(event.touches[0].clientY);\n }) as EventListener;\n\n const move = ((event: TouchEvent) => {\n const touch = event.touches[0];\n const dX = touch.clientX - startX;\n const dY = touch.clientY - startY;\n SetDeltaX(dX);\n SetDeltaY(dY);\n SetMoveX(touch.clientX);\n SetMoveY(touch.clientY);\n SetOffsetX(Math.abs(dX));\n SetOffsetY(Math.abs(dY));\n if (!direction) {\n SetDirection(getDirection(offsetX, offsetY));\n }\n }) as EventListener;\n\n return {\n move,\n start,\n reset,\n startX,\n startY,\n moveX,\n moveY,\n deltaX,\n deltaY,\n offsetX,\n offsetY,\n direction,\n isVertical,\n isHorizontal,\n };\n}\n","import React, {\n useState,\n useEffect,\n useRef,\n RefObject,\n ForwardRefRenderFunction,\n ReactNode,\n} from \"react\";\nimport classNames from \"classnames\";\n\nimport Popup from \"../Popup\";\nimport PickerSlot from \"./PickerSlot\";\nimport useRefs from \"../../hooks/useRefs\";\n\nexport interface PickerOption {\n text: string | number;\n value: string | number;\n children?: PickerOption[];\n}\n\nexport type PickerValue = string | PickerOption;\nexport interface PickerProps<T extends PickerValue = PickerValue> {\n visible?: boolean;\n title?: ReactNode | string;\n data: (T | T[])[];\n defaultValueData?: (string | number)[];\n className?: string;\n style?: React.CSSProperties;\n mode?: \"normal\" | \"3D\";\n swipeDuration?: number | string;\n onConfirm?: (selectedValue: T[], index: number) => void;\n onCancel?: () => void;\n onClose?: () => void;\n onCloseUpdate?: (\n selectedValue: (string | number)[],\n list: PickerOption[],\n pickerRef: RefObject<HTMLDivElement>\n ) => void;\n onChange?: (\n index: number,\n value: (string | number)[],\n selectedOptions: PickerValue[]\n ) => void;\n}\n\nconst InternalPicker: ForwardRefRenderFunction<HTMLDivElement, PickerProps> = (\n props,\n ref\n) => {\n const {\n visible = false,\n title,\n data = [],\n defaultValueData,\n onConfirm,\n onClose,\n onCloseUpdate,\n onChange,\n className,\n style,\n mode,\n swipeDuration,\n ...rest\n } = props;\n\n const [chooseValueData, setchooseValueData] = useState<\n Array<string | number>\n >([]); // 选择的数据的 value 值, 每一条数据的 value 值\n const [columnIndex, setcolumnIndex] = useState<number>(0); // 选中列\n const pickerRef = useRef<any>(null);\n const [refs, setRefs] = useRefs();\n const [columnsList, setColumnsList] = useState<PickerOption[][]>([]); // 格式化后每一列的数据\n\n const isConfirmEvent = useRef(false);\n\n // 默认值修改\n useEffect(() => {\n if (\n defaultValueData &&\n defaultValueData.length !== 0 &&\n defaultValueData.toString() !== chooseValueData.toString()\n ) {\n const data = [...defaultValueData];\n setchooseValueData(data);\n setColumnsList(normalListData() as PickerOption[][]);\n }\n }, [defaultValueData]);\n\n // 选中值进行修改\n useEffect(() => {\n onChange && onChange(columnIndex, chooseValueData, selectedOptions());\n if (isConfirmEvent.current) {\n isConfirmEvent.current = false;\n onConfirm && onConfirm(selectedOptions(), columnIndex);\n }\n }, [chooseValueData]);\n\n // 列表格式修改\n useEffect(() => {\n init();\n }, [data]);\n\n const closeActionSheet: React.MouseEventHandler<HTMLSpanElement> = e => {\n e.stopPropagation();\n onClose && onClose();\n // onCloseUpdate &&\n // onCloseUpdate(chooseValueData, selectedOptions(), pickerRef);\n };\n // 点击确定\n const confirm: React.MouseEventHandler<HTMLSpanElement> = e => {\n e.stopPropagation();\n let movings = false;\n refs.forEach((_ref: any) => {\n if (_ref.moving) movings = true;\n _ref.stopMomentum();\n });\n\n if (movings) {\n isConfirmEvent.current = true;\n } else {\n onConfirm && onConfirm(selectedOptions(), columnIndex);\n }\n\n onClose && onClose();\n\n setTimeout(() => {\n isConfirmEvent.current = false;\n }, 0);\n };\n\n const selectedOptions = () => {\n const optins: PickerValue[] = [];\n columnsList.forEach((column: PickerValue[], index: number) => {\n let currOptions: Array<PickerValue> = [];\n currOptions = column.filter(\n item =>\n (typeof item === \"object\" ? item.value : item) ===\n chooseValueData[index]\n );\n if (currOptions[0]) {\n optins.push(currOptions[0]);\n } else {\n column[0] && optins.push(column[0]);\n }\n\n return column;\n });\n\n return optins;\n };\n\n // 选择每一列的数据\n const chooseItem = (option: PickerValue, columnIndex: number) => {\n if (option && Object.keys(option).length) {\n // 移动后是否与之前有差异\n if (\n chooseValueData[columnIndex] !==\n (typeof option === \"string\" ? option : option.value)\n ) {\n if (columnsType() === \"cascade\") {\n chooseValueData[columnIndex] =\n typeof option === \"object\" ? option.value : option || \"\";\n setchooseValueData([...chooseValueData]);\n\n let index = columnIndex;\n let cursor = option;\n while (\n typeof cursor === \"object\" &&\n cursor &&\n cursor.children &&\n cursor.children[0]\n ) {\n chooseValueData[index + 1] = cursor.children[0].value;\n setchooseValueData([...chooseValueData]);\n index++;\n cursor = cursor.children[0];\n }\n // 当前改变列的下一列 children 值为空\n if (typeof cursor === \"object\" && cursor && cursor.children) {\n chooseValueData[index + 1] = \"\";\n setchooseValueData([...chooseValueData]);\n }\n\n setColumnsList(normalListData() as PickerOption[][]);\n } else {\n setchooseValueData(data => {\n const cdata = [...data];\n cdata[columnIndex] =\n (typeof option === \"string\" ? option : option.value) || \"\";\n return cdata;\n });\n }\n setcolumnIndex(columnIndex);\n }\n }\n };\n // 传入的数据格式化\n const normalListData = () => {\n const type = columnsType();\n switch (type) {\n case \"multiple\":\n return data;\n case \"cascade\":\n // 级联数据处理\n return formatCascade(data as PickerOption[], chooseValueData);\n default:\n return [data];\n }\n };\n // 每一列的类型\n const columnsType = () => {\n const firstColumn = data[0];\n if (firstColumn) {\n if (Array.isArray(firstColumn)) {\n return \"multiple\";\n }\n if (typeof firstColumn === \"object\" && \"children\" in firstColumn) {\n return \"cascade\";\n }\n }\n return \"single\";\n };\n\n // 级联数据格式化\n const formatCascade = (\n columns: PickerOption[],\n defaultValues: (number | string)[]\n ) => {\n const formatted: PickerOption[][] = [];\n let cursor: PickerOption = {\n text: \"\",\n value: \"\",\n children: columns,\n };\n\n let columnIndex = 0;\n\n while (cursor && cursor.children) {\n const options: PickerOption[] = cursor.children;\n const value = defaultValues[columnIndex];\n let index = options.findIndex(columnItem => columnItem.value === value);\n if (index === -1) index = 0;\n cursor = cursor.children[index];\n\n columnIndex++;\n formatted.push(options);\n }\n\n return formatted;\n };\n\n const init = () => {\n const data: (string | number)[] = [];\n\n const normalData: PickerOption[][] = normalListData() as PickerOption[][];\n\n setColumnsList(normalData);\n\n normalData.length > 0 &&\n normalData.forEach(item => {\n const perItem = item[0];\n perItem &&\n data.push(typeof perItem === \"string\" ? perItem : perItem.value);\n });\n\n if (!defaultValueData && chooseValueData.length === 0) {\n setchooseValueData([...data]);\n }\n };\n\n const renderToolbar = () => {\n return (\n <div className=\"xh-picker-header\">\n <span\n className=\"xh-picker-header-button picker-cancel\"\n onClick={closeActionSheet}\n >\n 取消\n </span>\n <div className=\"xh-picker-header-title\">{title || \"\"}</div>\n <span\n className=\"xh-picker-header-button picker-confirm\"\n onClick={confirm}\n >\n 确定\n </span>\n </div>\n );\n };\n return (\n <Popup visible={visible}>\n <div\n className={classNames(\"xh-picker\", className)}\n style={style}\n ref={ref}\n {...rest}\n >\n {renderToolbar()}\n <div className=\"xh-picker-panel\" ref={pickerRef}>\n {columnsList?.map((item, index) => {\n return (\n <PickerSlot\n ref={setRefs(index)}\n defaultValue={chooseValueData?.[index]}\n data={item}\n mode={mode}\n onConfirm={chooseItem}\n swipeDuration={swipeDuration}\n key={index}\n keyIndex={index}\n />\n );\n })}\n </div>\n </div>\n </Popup>\n );\n};\n\nconst Picker = React.forwardRef<unknown, Partial<PickerProps>>(InternalPicker);\nexport default Picker;\n","import React from \"react\";\n\nexport default function useRefs() {\n const refs = React.useRef<HTMLDivElement[]>([]);\n\n const setRefs = React.useCallback(\n (index: number) => (el: HTMLDivElement) => {\n if (el) refs.current[index] = el;\n },\n []\n );\n\n const reset = React.useCallback(() => {\n refs.current = [];\n }, []);\n\n return [refs.current, setRefs as any, reset];\n}\n","import * as React from \"react\";\nimport { detectFlexGapSupported } from \"../utils\";\n\nexport default () => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n\n return flexible;\n};\n","import React from \"react\";\n\nexport type DirectionType = \"ltr\" | \"rtl\" | undefined;\n\nexport type SizeType = \"small\" | \"normal\" | \"large\" | undefined;\n\nexport interface ConfigConsumerProps {\n getPrefixCls: (suffixCls?: string) => string;\n direction?: DirectionType;\n space?: {\n size?: SizeType | number;\n };\n}\n\nexport const defaultGetPrefixCls = (suffixCls?: string) => {\n return suffixCls ? `xh-${suffixCls}` : \"xh\";\n};\n\nexport const ConfigContext = React.createContext<ConfigConsumerProps>({\n getPrefixCls: defaultGetPrefixCls,\n});\n","import * as React from \"react\";\nimport { SpaceContext } from \".\";\n\nexport interface ItemProps {\n className: string;\n children: React.ReactNode;\n index: number;\n direction?: \"horizontal\" | \"vertical\";\n marginDirection: \"marginLeft\" | \"marginRight\";\n split?: string | React.ReactNode;\n wrap?: boolean;\n}\n\nexport default function Item({\n className,\n direction,\n index,\n marginDirection,\n children,\n split,\n wrap,\n}: ItemProps) {\n const { horizontalSize, verticalSize, latestIndex, supportFlexGap } =\n React.useContext(SpaceContext);\n\n let style: React.CSSProperties = {};\n\n if (!supportFlexGap) {\n if (direction === \"vertical\") {\n if (index < latestIndex) {\n style = { marginBottom: horizontalSize / (split ? 2 : 1) };\n }\n } else {\n style = {\n ...(index < latestIndex && {\n [marginDirection]: horizontalSize / (split ? 2 : 1),\n }),\n ...(wrap && { paddingBottom: verticalSize }),\n };\n }\n }\n\n if (children === null || children === undefined) {\n return null;\n }\n\n return (\n <React.Fragment>\n <div className={className} style={style}>\n {children}\n </div>\n {index < latestIndex && split && (\n <span className={`${className}-split`} style={style}>\n {split}\n </span>\n )}\n </React.Fragment>\n );\n}\n","import React from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport useFlexGapSupport from \"@/hooks/useFlexGapSupport\";\nimport { toArray } from \"@/utils\";\nimport { ConfigContext, SizeType } from \"./config-provider\";\nimport Item from \"./Item\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport const SpaceConfigContext = ConfigContext;\nexport type SpaceProps = {\n direction?: \"horizontal\" | \"vertical\";\n align?: \"start\" | \"end\" | \"center\" | \"baseline\";\n size?: SizeType | [SizeType, SizeType];\n style?: React.CSSProperties;\n split?: React.ReactNode;\n wrap?: boolean;\n} & XHComponentCommonProps;\n\nexport const SpaceContext = React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false,\n});\n\nconst spaceSize = {\n small: 8,\n normal: 16,\n large: 24,\n};\n\nfunction getNumberSize(size: SizeType) {\n return typeof size === \"string\" ? spaceSize[size] : size || 0;\n}\n\nconst XHSpace: React.FC<SpaceProps> = props => {\n const {\n getPrefixCls,\n space,\n direction: directionConfig,\n } = React.useContext(ConfigContext);\n\n const {\n size = space?.size || \"small\",\n align,\n className,\n children,\n direction = \"horizontal\",\n split,\n style,\n wrap = false,\n ...otherProps\n } = props;\n\n const supportFlexGap = useFlexGapSupport();\n\n const [horizontalSize, verticalSize] = React.useMemo(\n () =>\n ((Array.isArray(size) ? size : [size, size]) as [SizeType, SizeType]).map(\n item => getNumberSize(item)\n ),\n [size]\n );\n\n const childNodes = toArray(children, { keepEmpty: true });\n\n const mergedAlign =\n align === undefined && direction === \"horizontal\" ? \"center\" : align;\n const prefixCls = getPrefixCls(\"space\");\n const cn = classNames(\n prefixCls,\n `${prefixCls}-${direction}`,\n {\n [`${prefixCls}-rtl`]: directionConfig === \"rtl\",\n [`${prefixCls}-align-${mergedAlign}`]: mergedAlign,\n },\n className\n );\n\n const itemClassName = `${prefixCls}-item`;\n\n const marginDirection =\n directionConfig === \"rtl\" ? \"marginLeft\" : \"marginRight\";\n\n // Calculate latest one\n let latestIndex = 0;\n const nodes = childNodes.map((child: any, i) => {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n\n const key = (child && child.key) || `${itemClassName}-${i}`;\n\n return (\n <Item\n className={itemClassName}\n key={key}\n direction={direction}\n index={i}\n marginDirection={marginDirection}\n split={split}\n wrap={wrap}\n >\n {child}\n </Item>\n );\n });\n\n const spaceContext = React.useMemo(\n () => ({ horizontalSize, verticalSize, latestIndex, supportFlexGap }),\n [horizontalSize, verticalSize, latestIndex, supportFlexGap]\n );\n\n if (childNodes.length === 0) {\n return null;\n }\n\n const gapStyle: React.CSSProperties = {};\n\n if (wrap) {\n gapStyle.flexWrap = \"wrap\";\n\n if (!supportFlexGap) {\n gapStyle.marginBottom = `-${verticalSize}px`;\n }\n }\n\n if (supportFlexGap) {\n gapStyle.columnGap = `${horizontalSize}px`;\n gapStyle.rowGap = `${verticalSize}px`;\n }\n\n return (\n <View\n className={cn}\n style={{\n ...gapStyle,\n ...style,\n }}\n {...otherProps}\n >\n <SpaceContext.Provider value={spaceContext}>\n {nodes}\n </SpaceContext.Provider>\n </View>\n );\n};\n\nexport default XHSpace;\n","/*!\n * css-vars-ponyfill\n * v2.4.8\n * https://jhildenbiddle.github.io/css-vars-ponyfill/\n * (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/*!\n * get-css-data\n * v2.1.0\n * https://github.com/jhildenbiddle/get-css-data\n * (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */ function getUrls(urls) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var settings = {\n mimeType: options.mimeType || null,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var urlArray = Array.isArray(urls) ? urls : [ urls ];\n var urlQueue = Array.apply(null, Array(urlArray.length)).map((function(x) {\n return null;\n }));\n function isValidCss(text) {\n var isString = typeof text === \"string\";\n var isHTML = isString && text.trim().charAt(0) === \"<\";\n return isString && !isHTML;\n }\n function onError(xhr, urlIndex) {\n settings.onError(xhr, urlArray[urlIndex], urlIndex);\n }\n function onSuccess(responseText, urlIndex) {\n var returnVal = settings.onSuccess(responseText, urlArray[urlIndex], urlIndex);\n responseText = returnVal === false ? \"\" : returnVal || responseText;\n urlQueue[urlIndex] = responseText;\n if (urlQueue.indexOf(null) === -1) {\n settings.onComplete(urlQueue);\n }\n }\n var parser = document.createElement(\"a\");\n urlArray.forEach((function(url, i) {\n parser.setAttribute(\"href\", url);\n parser.href = String(parser.href);\n var isIElte9 = Boolean(document.all && !window.atob);\n var isIElte9CORS = isIElte9 && parser.host.split(\":\")[0] !== location.host.split(\":\")[0];\n if (isIElte9CORS) {\n var isSameProtocol = parser.protocol === location.protocol;\n if (isSameProtocol) {\n var xdr = new XDomainRequest;\n xdr.open(\"GET\", url);\n xdr.timeout = 0;\n xdr.onprogress = Function.prototype;\n xdr.ontimeout = Function.prototype;\n xdr.onload = function() {\n var text = xdr.responseText;\n if (isValidCss(text)) {\n onSuccess(text, i);\n } else {\n onError(xdr, i);\n }\n };\n xdr.onerror = function(err) {\n onError(xdr, i);\n };\n setTimeout((function() {\n xdr.send();\n }), 0);\n } else {\n console.warn(\"Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (\".concat(url, \")\"));\n onError(null, i);\n }\n } else {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url);\n if (settings.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(settings.mimeType);\n }\n settings.onBeforeSend(xhr, url, i);\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n var text = xhr.responseText;\n if (xhr.status < 400 && isValidCss(text)) {\n onSuccess(text, i);\n } else if (xhr.status === 0 && isValidCss(text)) {\n onSuccess(text, i);\n } else {\n onError(xhr, i);\n }\n }\n };\n xhr.send();\n }\n }));\n}\n\n/**\n * Gets CSS data from <style> and <link> nodes (including @imports), then\n * returns data in order processed by DOM. Allows specifying nodes to\n * include/exclude and filtering CSS data using RegEx.\n *\n * @preserve\n * @param {object} [options] The options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes.\n * @param {string} [options.include] CSS selector matching <link> and <style>\n * nodes to include\n * @param {string} [options.exclude] CSS selector matching <link> and <style>\n * nodes to exclude\n * @param {object} [options.filter] Regular expression used to filter node CSS\n * data. Each block of CSS data is tested against the filter,\n * and only matching data is included.\n * @param {boolean} [options.skipDisabled=true] Determines if disabled\n * stylesheets will be skipped while collecting CSS data.\n * @param {boolean} [options.useCSSOM=false] Determines if CSS data will be\n * collected from a stylesheet's runtime values instead of its\n * text content. This is required to get accurate CSS data\n * when a stylesheet has been modified using the deleteRule()\n * or insertRule() methods because these modifications will\n * not be reflected in the stylesheet's text content.\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments.\n * @param {function} [options.onSuccess] Callback on each CSS node read. Passes\n * 1) CSS text, 2) source node reference, and 3) the source\n * URL as arguments.\n * @param {function} [options.onError] Callback on each error. Passes 1) the XHR\n * object for inspection, 2) soure node reference, and 3) the\n * source URL that failed (either a <link> href or an @import)\n * as arguments\n * @param {function} [options.onComplete] Callback after all nodes have been\n * processed. Passes 1) concatenated CSS text, 2) an array of\n * CSS text in DOM order, and 3) an array of nodes in DOM\n * order as arguments.\n *\n * @example\n *\n * getCssData({\n * rootElement : document,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '[href=\"skip.css\"]',\n * filter : /red/,\n * skipDisabled: true,\n * useCSSOM : false,\n * onBeforeSend(xhr, node, url) {\n * // ...\n * }\n * onSuccess(cssText, node, url) {\n * // ...\n * }\n * onError(xhr, node, url) {\n * // ...\n * },\n * onComplete(cssText, cssArray, nodeArray) {\n * // ...\n * }\n * });\n */ function getCssData(options) {\n var regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssImports: /(?:@import\\s*)(?:url\\(\\s*)?(?:['\"])([^'\"]*)(?:['\"])(?:\\s*\\))?(?:[^;]*;)/g\n };\n var settings = {\n rootElement: options.rootElement || document,\n include: options.include || 'style,link[rel=\"stylesheet\"]',\n exclude: options.exclude || null,\n filter: options.filter || null,\n skipDisabled: options.skipDisabled !== false,\n useCSSOM: options.useCSSOM || false,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var sourceNodes = Array.apply(null, settings.rootElement.querySelectorAll(settings.include)).filter((function(node) {\n return !matchesSelector(node, settings.exclude);\n }));\n var cssArray = Array.apply(null, Array(sourceNodes.length)).map((function(x) {\n return null;\n }));\n function handleComplete() {\n var isComplete = cssArray.indexOf(null) === -1;\n if (isComplete) {\n cssArray.reduce((function(skipIndices, value, i) {\n if (value === \"\") {\n skipIndices.push(i);\n }\n return skipIndices;\n }), []).reverse().forEach((function(skipIndex) {\n return [ sourceNodes, cssArray ].forEach((function(arr) {\n return arr.splice(skipIndex, 1);\n }));\n }));\n var cssText = cssArray.join(\"\");\n settings.onComplete(cssText, cssArray, sourceNodes);\n }\n }\n function handleSuccess(cssText, cssIndex, node, sourceUrl) {\n var returnVal = settings.onSuccess(cssText, node, sourceUrl);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n resolveImports(cssText, node, sourceUrl, (function(resolvedCssText, errorData) {\n if (cssArray[cssIndex] === null) {\n errorData.forEach((function(data) {\n return settings.onError(data.xhr, node, data.url);\n }));\n if (!settings.filter || settings.filter.test(resolvedCssText)) {\n cssArray[cssIndex] = resolvedCssText;\n } else {\n cssArray[cssIndex] = \"\";\n }\n handleComplete();\n }\n }));\n }\n function parseImportData(cssText, baseUrl) {\n var ignoreRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var importData = {};\n importData.rules = (cssText.replace(regex.cssComments, \"\").match(regex.cssImports) || []).filter((function(rule) {\n return ignoreRules.indexOf(rule) === -1;\n }));\n importData.urls = importData.rules.map((function(rule) {\n return rule.replace(regex.cssImports, \"$1\");\n }));\n importData.absoluteUrls = importData.urls.map((function(url) {\n return getFullUrl$1(url, baseUrl);\n }));\n importData.absoluteRules = importData.rules.map((function(rule, i) {\n var oldUrl = importData.urls[i];\n var newUrl = getFullUrl$1(importData.absoluteUrls[i], baseUrl);\n return rule.replace(oldUrl, newUrl);\n }));\n return importData;\n }\n function resolveImports(cssText, node, baseUrl, callbackFn) {\n var __errorData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var __errorRules = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var importData = parseImportData(cssText, baseUrl, __errorRules);\n if (importData.rules.length) {\n getUrls(importData.absoluteUrls, {\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal === false ? \"\" : returnVal || cssText;\n var responseImportData = parseImportData(cssText, url, __errorRules);\n responseImportData.rules.forEach((function(rule, i) {\n cssText = cssText.replace(rule, responseImportData.absoluteRules[i]);\n }));\n return cssText;\n },\n onError: function onError(xhr, url, urlIndex) {\n __errorData.push({\n xhr: xhr,\n url: url\n });\n __errorRules.push(importData.rules[urlIndex]);\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n },\n onComplete: function onComplete(responseArray) {\n responseArray.forEach((function(importText, i) {\n cssText = cssText.replace(importData.rules[i], importText);\n }));\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n }\n });\n } else {\n callbackFn(cssText, __errorData);\n }\n }\n if (sourceNodes.length) {\n sourceNodes.forEach((function(node, i) {\n var linkHref = node.getAttribute(\"href\");\n var linkRel = node.getAttribute(\"rel\");\n var isLink = node.nodeName.toLowerCase() === \"link\" && linkHref && linkRel && linkRel.toLowerCase().indexOf(\"stylesheet\") !== -1;\n var isSkip = settings.skipDisabled === false ? false : node.disabled;\n var isStyle = node.nodeName.toLowerCase() === \"style\";\n if (isLink && !isSkip) {\n var isURIScheme = linkHref.indexOf(\"data:text/css\") !== -1;\n if (isURIScheme) {\n var cssText = decodeURIComponent(linkHref.substring(linkHref.indexOf(\",\") + 1));\n if (settings.useCSSOM) {\n cssText = Array.apply(null, node.sheet.cssRules).map((function(rule) {\n return rule.cssText;\n })).join(\"\");\n }\n handleSuccess(cssText, i, node, location.href);\n } else {\n getUrls(linkHref, {\n mimeType: \"text/css\",\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var sourceUrl = getFullUrl$1(linkHref);\n handleSuccess(cssText, i, node, sourceUrl);\n },\n onError: function onError(xhr, url, urlIndex) {\n cssArray[i] = \"\";\n settings.onError(xhr, node, url);\n handleComplete();\n }\n });\n }\n } else if (isStyle && !isSkip) {\n var _cssText = node.textContent;\n if (settings.useCSSOM) {\n _cssText = Array.apply(null, node.sheet.cssRules).map((function(rule) {\n return rule.cssText;\n })).join(\"\");\n }\n handleSuccess(_cssText, i, node, location.href);\n } else {\n cssArray[i] = \"\";\n handleComplete();\n }\n }));\n } else {\n settings.onComplete(\"\", []);\n }\n}\n\nfunction getFullUrl$1(url, base) {\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base || document.baseURI || (document.querySelector(\"base\") || {}).href || location.href;\n a.href = url;\n return a.href;\n}\n\nfunction matchesSelector(elm, selector) {\n var matches = elm.matches || elm.matchesSelector || elm.webkitMatchesSelector || elm.mozMatchesSelector || elm.msMatchesSelector || elm.oMatchesSelector;\n return matches.call(elm, selector);\n}\n\nvar balancedMatch = balanced;\n\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\n\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ ai, bi ];\n }\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length) {\n result = [ left, right ];\n }\n }\n return result;\n}\n\nfunction parseCss(css) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n removeComments: false\n };\n var settings = _extends({}, defaults, options);\n var errors = [];\n function error(msg) {\n throw new Error(\"CSS parse error: \".concat(msg));\n }\n function match(re) {\n var m = re.exec(css);\n if (m) {\n css = css.slice(m[0].length);\n return m;\n }\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comment() {\n whitespace();\n if (css[0] !== \"/\" || css[1] !== \"*\") {\n return;\n }\n var i = 2;\n while (css[i] && (css[i] !== \"*\" || css[i + 1] !== \"/\")) {\n i++;\n }\n if (!css[i]) {\n return error(\"end of comment is missing\");\n }\n var str = css.slice(2, i);\n css = css.slice(i + 2);\n return {\n type: \"comment\",\n comment: str\n };\n }\n function comments() {\n var cmnts = [];\n var c;\n while (c = comment()) {\n cmnts.push(c);\n }\n return settings.removeComments ? [] : cmnts;\n }\n function selector() {\n whitespace();\n while (css[0] === \"}\") {\n error(\"extra closing bracket\");\n }\n var m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\n if (m) {\n var _selector = m[0].trim();\n var selectorItems;\n var hasComment = /\\/\\*/.test(_selector);\n if (hasComment) {\n _selector = _selector.replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, \"\");\n }\n var hasCommaInQuotes = /[\"']\\w*,\\w*[\"']/.test(_selector);\n if (hasCommaInQuotes) {\n _selector = _selector.replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (function(m) {\n return m.replace(/,/g, \"‌\");\n }));\n }\n var hasMultipleSelectors = /,/.test(_selector);\n if (hasMultipleSelectors) {\n selectorItems = _selector.split(/\\s*(?![^(]*\\)),\\s*/);\n } else {\n selectorItems = [ _selector ];\n }\n if (hasCommaInQuotes) {\n selectorItems = selectorItems.map((function(s) {\n return s.replace(/\\u200C/g, \",\");\n }));\n }\n return selectorItems;\n }\n }\n function declaration() {\n if (css[0] === \"@\") {\n return at_rule();\n }\n match(/^([;\\s]*)+/);\n var comment_regexp = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n var prop = match(/^(\\*?[-#/*\\\\\\w.]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!prop) {\n return;\n }\n prop = prop[0].trim();\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:\\/\\*.*?\\*\\/|'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\((\\s*'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^)]*?)\\s*\\)|[^};])+)/);\n var ret = {\n type: \"declaration\",\n property: prop.replace(comment_regexp, \"\"),\n value: val ? val[0].replace(comment_regexp, \"\").trim() : \"\"\n };\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n if (!open()) {\n return error(\"missing '{'\");\n }\n var d;\n var decls = comments();\n while (d = declaration()) {\n decls.push(d);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n whitespace();\n var vals = [];\n var m;\n while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (vals.length) {\n return {\n type: \"keyframe\",\n values: vals,\n declarations: declarations()\n };\n }\n }\n function at_keyframes() {\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error(\"@keyframes missing name\");\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while (frame = keyframe()) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return {\n type: \"keyframes\",\n name: name,\n vendor: vendor,\n keyframes: frames\n };\n }\n function at_page() {\n var m = match(/^@page */);\n if (m) {\n var sel = selector() || [];\n return {\n type: \"page\",\n selectors: sel,\n declarations: declarations()\n };\n }\n }\n function at_page_margin_box() {\n var m = match(/@(top|bottom|left|right)-(left|center|right|top|middle|bottom)-?(corner)?\\s*/);\n if (m) {\n var name = \"\".concat(m[1], \"-\").concat(m[2]) + (m[3] ? \"-\".concat(m[3]) : \"\");\n return {\n type: \"page-margin-box\",\n name: name,\n declarations: declarations()\n };\n }\n }\n function at_fontface() {\n var m = match(/^@font-face\\s*/);\n if (m) {\n return {\n type: \"font-face\",\n declarations: declarations()\n };\n }\n }\n function at_supports() {\n var m = match(/^@supports *([^{]+)/);\n if (m) {\n return {\n type: \"supports\",\n supports: m[1].trim(),\n rules: rules()\n };\n }\n }\n function at_host() {\n var m = match(/^@host\\s*/);\n if (m) {\n return {\n type: \"host\",\n rules: rules()\n };\n }\n }\n function at_media() {\n var m = match(/^@media([^{]+)*/);\n if (m) {\n return {\n type: \"media\",\n media: (m[1] || \"\").trim(),\n rules: rules()\n };\n }\n }\n function at_custom_m() {\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (m) {\n return {\n type: \"custom-media\",\n name: m[1].trim(),\n media: m[2].trim()\n };\n }\n }\n function at_document() {\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (m) {\n return {\n type: \"document\",\n document: m[2].trim(),\n vendor: m[1] ? m[1].trim() : null,\n rules: rules()\n };\n }\n }\n function at_x() {\n var m = match(/^@(import|charset|namespace)\\s*([^;]+);/);\n if (m) {\n return {\n type: m[1],\n name: m[2].trim()\n };\n }\n }\n function at_rule() {\n whitespace();\n if (css[0] === \"@\") {\n var ret = at_x() || at_fontface() || at_media() || at_keyframes() || at_supports() || at_document() || at_custom_m() || at_host() || at_page() || at_page_margin_box();\n if (ret && !settings.preserveStatic) {\n var hasVarFunc = false;\n if (ret.declarations) {\n hasVarFunc = ret.declarations.some((function(decl) {\n return /var\\(/.test(decl.value);\n }));\n } else {\n var arr = ret.keyframes || ret.rules || [];\n hasVarFunc = arr.some((function(obj) {\n return (obj.declarations || []).some((function(decl) {\n return /var\\(/.test(decl.value);\n }));\n }));\n }\n return hasVarFunc ? ret : {};\n }\n return ret;\n }\n }\n function rule() {\n if (!settings.preserveStatic) {\n var balancedMatch$1 = balancedMatch(\"{\", \"}\", css);\n if (balancedMatch$1) {\n var hasVarDecl = /:(?:root|host)(?![.:#(])/.test(balancedMatch$1.pre) && /--\\S*\\s*:/.test(balancedMatch$1.body);\n var hasVarFunc = /var\\(/.test(balancedMatch$1.body);\n if (!hasVarDecl && !hasVarFunc) {\n css = css.slice(balancedMatch$1.end + 1);\n return {};\n }\n }\n }\n var sel = selector() || [];\n var decls = settings.preserveStatic ? declarations() : declarations().filter((function(decl) {\n var hasVarDecl = sel.some((function(s) {\n return /:(?:root|host)(?![.:#(])/.test(s);\n })) && /^--\\S/.test(decl.property);\n var hasVarFunc = /var\\(/.test(decl.value);\n return hasVarDecl || hasVarFunc;\n }));\n if (!sel.length) {\n error(\"selector missing\");\n }\n return {\n type: \"rule\",\n selectors: sel,\n declarations: decls\n };\n }\n function rules(core) {\n if (!core && !open()) {\n return error(\"missing '{'\");\n }\n var node;\n var rules = comments();\n while (css.length && (core || css[0] !== \"}\") && (node = at_rule() || rule())) {\n if (node.type) {\n rules.push(node);\n }\n rules = rules.concat(comments());\n }\n if (!core && !close()) {\n return error(\"missing '}'\");\n }\n return rules;\n }\n return {\n type: \"stylesheet\",\n stylesheet: {\n rules: rules(true),\n errors: errors\n }\n };\n}\n\nfunction parseVars(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n parseHost: false,\n store: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n var reVarDeclSelectors = new RegExp(\":\".concat(settings.parseHost ? \"host\" : \"root\", \"$\"));\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n cssData.stylesheet.rules.forEach((function(rule) {\n if (rule.type !== \"rule\" || !rule.selectors.some((function(s) {\n return reVarDeclSelectors.test(s);\n }))) {\n return;\n }\n rule.declarations.forEach((function(decl, i) {\n var prop = decl.property;\n var value = decl.value;\n if (prop && prop.indexOf(\"--\") === 0) {\n settings.store[prop] = value;\n }\n }));\n }));\n return settings.store;\n}\n\nfunction stringifyCss(tree) {\n var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var renderMethods = {\n charset: function charset(node) {\n return \"@charset \" + node.name + \";\";\n },\n comment: function comment(node) {\n return node.comment.indexOf(\"__CSSVARSPONYFILL\") === 0 ? \"/*\" + node.comment + \"*/\" : \"\";\n },\n \"custom-media\": function customMedia(node) {\n return \"@custom-media \" + node.name + \" \" + node.media + \";\";\n },\n declaration: function declaration(node) {\n return node.property + \":\" + node.value + \";\";\n },\n document: function document(node) {\n return \"@\" + (node.vendor || \"\") + \"document \" + node.document + \"{\" + visit(node.rules) + \"}\";\n },\n \"font-face\": function fontFace(node) {\n return \"@font-face\" + \"{\" + visit(node.declarations) + \"}\";\n },\n host: function host(node) {\n return \"@host\" + \"{\" + visit(node.rules) + \"}\";\n },\n import: function _import(node) {\n return \"@import \" + node.name + \";\";\n },\n keyframe: function keyframe(node) {\n return node.values.join(\",\") + \"{\" + visit(node.declarations) + \"}\";\n },\n keyframes: function keyframes(node) {\n return \"@\" + (node.vendor || \"\") + \"keyframes \" + node.name + \"{\" + visit(node.keyframes) + \"}\";\n },\n media: function media(node) {\n return \"@media \" + node.media + \"{\" + visit(node.rules) + \"}\";\n },\n namespace: function namespace(node) {\n return \"@namespace \" + node.name + \";\";\n },\n page: function page(node) {\n return \"@page \" + (node.selectors.length ? node.selectors.join(\", \") : \"\") + \"{\" + visit(node.declarations) + \"}\";\n },\n \"page-margin-box\": function pageMarginBox(node) {\n return \"@\" + node.name + \"{\" + visit(node.declarations) + \"}\";\n },\n rule: function rule(node) {\n var decls = node.declarations;\n if (decls.length) {\n return node.selectors.join(\",\") + \"{\" + visit(decls) + \"}\";\n }\n },\n supports: function supports(node) {\n return \"@supports \" + node.supports + \"{\" + visit(node.rules) + \"}\";\n }\n };\n function visit(nodes) {\n var buf = \"\";\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (cb) {\n cb(n);\n }\n var txt = renderMethods[n.type](n);\n if (txt) {\n buf += txt;\n if (txt.length && n.selectors) {\n buf += delim;\n }\n }\n }\n return buf;\n }\n return visit(tree.stylesheet.rules);\n}\n\nfunction walkCss(node, fn) {\n node.rules.forEach((function(rule) {\n if (rule.rules) {\n walkCss(rule, fn);\n return;\n }\n if (rule.keyframes) {\n rule.keyframes.forEach((function(keyframe) {\n if (keyframe.type === \"keyframe\") {\n fn(keyframe.declarations, rule);\n }\n }));\n return;\n }\n if (!rule.declarations) {\n return;\n }\n fn(rule.declarations, node);\n }));\n}\n\nvar VAR_PROP_IDENTIFIER = \"--\";\n\nvar VAR_FUNC_IDENTIFIER = \"var\";\n\nfunction transformCss(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n preserveVars: false,\n variables: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n walkCss(cssData.stylesheet, (function(declarations, node) {\n for (var i = 0; i < declarations.length; i++) {\n var decl = declarations[i];\n var type = decl.type;\n var prop = decl.property;\n var value = decl.value;\n if (type !== \"declaration\") {\n continue;\n }\n if (!settings.preserveVars && prop && prop.indexOf(VAR_PROP_IDENTIFIER) === 0) {\n declarations.splice(i, 1);\n i--;\n continue;\n }\n if (value.indexOf(VAR_FUNC_IDENTIFIER + \"(\") !== -1) {\n var resolvedValue = resolveValue(value, settings);\n if (resolvedValue !== decl.value) {\n resolvedValue = fixNestedCalc(resolvedValue);\n if (!settings.preserveVars) {\n decl.value = resolvedValue;\n } else {\n declarations.splice(i, 0, {\n type: type,\n property: prop,\n value: resolvedValue\n });\n i++;\n }\n }\n }\n }\n }));\n return stringifyCss(cssData);\n}\n\nfunction fixNestedCalc(value) {\n var reCalcVal = /calc\\(([^)]+)\\)/g;\n (value.match(reCalcVal) || []).forEach((function(match) {\n var newVal = \"calc\".concat(match.split(\"calc\").join(\"\"));\n value = value.replace(match, newVal);\n }));\n return value;\n}\n\nfunction resolveValue(value) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var __recursiveFallback = arguments.length > 2 ? arguments[2] : undefined;\n if (value.indexOf(\"var(\") === -1) {\n return value;\n }\n var valueData = balancedMatch(\"(\", \")\", value);\n function resolveFunc(value) {\n var name = value.split(\",\")[0].replace(/[\\s\\n\\t]/g, \"\");\n var fallback = (value.match(/(?:\\s*,\\s*){1}(.*)?/) || [])[1];\n var match = Object.prototype.hasOwnProperty.call(settings.variables, name) ? String(settings.variables[name]) : undefined;\n var replacement = match || (fallback ? String(fallback) : undefined);\n var unresolvedFallback = __recursiveFallback || value;\n if (!match) {\n settings.onWarning('variable \"'.concat(name, '\" is undefined'));\n }\n if (replacement && replacement !== \"undefined\" && replacement.length > 0) {\n return resolveValue(replacement, settings, unresolvedFallback);\n } else {\n return \"var(\".concat(unresolvedFallback, \")\");\n }\n }\n if (!valueData) {\n if (value.indexOf(\"var(\") !== -1) {\n settings.onWarning('missing closing \")\" in the value \"'.concat(value, '\"'));\n }\n return value;\n } else if (valueData.pre.slice(-3) === \"var\") {\n var isEmptyVarFunc = valueData.body.trim().length === 0;\n if (isEmptyVarFunc) {\n settings.onWarning(\"var() must contain a non-whitespace string\");\n return value;\n } else {\n return valueData.pre.slice(0, -3) + resolveFunc(valueData.body) + resolveValue(valueData.post, settings);\n }\n } else {\n return valueData.pre + \"(\".concat(resolveValue(valueData.body, settings), \")\") + resolveValue(valueData.post, settings);\n }\n}\n\nvar isBrowser = typeof window !== \"undefined\";\n\nvar isNativeSupport = isBrowser && window.CSS && window.CSS.supports && window.CSS.supports(\"(--a: 0)\");\n\nvar counters = {\n group: 0,\n job: 0\n};\n\nvar defaults = {\n rootElement: isBrowser ? document : null,\n shadowDOM: false,\n include: \"style,link[rel=stylesheet]\",\n exclude: \"\",\n variables: {},\n onlyLegacy: true,\n preserveStatic: true,\n preserveVars: false,\n silent: false,\n updateDOM: true,\n updateURLs: true,\n watch: null,\n onBeforeSend: function onBeforeSend() {},\n onError: function onError() {},\n onWarning: function onWarning() {},\n onSuccess: function onSuccess() {},\n onComplete: function onComplete() {},\n onFinally: function onFinally() {}\n};\n\nvar regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssKeyframes: /@(?:-\\w*-)?keyframes/,\n cssMediaQueries: /@media[^{]+\\{([\\s\\S]+?})\\s*}/g,\n cssUrls: /url\\((?!['\"]?(?:data|http|\\/\\/):)['\"]?([^'\")]*)['\"]?\\)/g,\n cssVarDeclRules: /(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^}]*})/g,\n cssVarDecls: /(?:[\\s;]*)(-{2}\\w[\\w-]*)(?:\\s*:\\s*)([^;]*);/g,\n cssVarFunc: /var\\(\\s*--[\\w-]/,\n cssVars: /(?:(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^;]*;*\\s*)|(?:var\\(\\s*))(--[^:)]+)(?:\\s*[:)])/\n};\n\nvar variableStore = {\n dom: {},\n job: {},\n user: {}\n};\n\nvar cssVarsIsRunning = false;\n\nvar cssVarsObserver = null;\n\nvar cssVarsSrcNodeCount = 0;\n\nvar debounceTimer = null;\n\nvar isShadowDOMReady = false;\n\n/**\n * Fetches, parses, and transforms CSS custom properties from specified\n * <style> and <link> elements into static values, then appends a new <style>\n * element with static values to the DOM to provide CSS custom property\n * compatibility for legacy browsers. Also provides a single interface for\n * live updates of runtime values in both modern and legacy browsers.\n *\n * @preserve\n * @param {object} [options] Options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes\n * @param {boolean} [options.shadowDOM=false] Determines if shadow DOM <link>\n * and <style> nodes will be processed.\n * @param {string} [options.include=\"style,link[rel=stylesheet]\"] CSS selector\n * matching <link re=\"stylesheet\"> and <style> nodes to\n * process\n * @param {string} [options.exclude] CSS selector matching <link\n * rel=\"stylehseet\"> and <style> nodes to exclude from those\n * matches by options.include\n * @param {object} [options.variables] A map of custom property name/value\n * pairs. Property names can omit or include the leading\n * double-hyphen (—), and values specified will override\n * previous values\n * @param {boolean} [options.onlyLegacy=true] Determines if the ponyfill will\n * only generate legacy-compatible CSS in browsers that lack\n * native support (i.e., legacy browsers)\n * @param {boolean} [options.preserveStatic=true] Determines if CSS\n * declarations that do not reference a custom property will\n * be preserved in the transformed CSS\n * @param {boolean} [options.preserveVars=false] Determines if CSS custom\n * property declarations will be preserved in the transformed\n * CSS\n * @param {boolean} [options.silent=false] Determines if warning and error\n * messages will be displayed on the console\n * @param {boolean} [options.updateDOM=true] Determines if the ponyfill will\n * update the DOM after processing CSS custom properties\n * @param {boolean} [options.updateURLs=true] Determines if relative url()\n * paths will be converted to absolute urls in external CSS\n * @param {boolean} [options.watch=false] Determines if a MutationObserver will\n * be created that will execute the ponyfill when a <link> or\n * <style> DOM mutation is observed\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments\n * @param {function} [options.onError] Callback after a CSS parsing error has\n * occurred or an XHR request has failed. Passes 1) an error\n * message, and 2) source node reference, 3) xhr, and 4 url as\n * arguments.\n * @param {function} [options.onWarning] Callback after each CSS parsing warning\n * has occurred. Passes 1) a warning message as an argument.\n * @param {function} [options.onSuccess] Callback after CSS data has been\n * collected from each node and before CSS custom properties\n * have been transformed. Allows modifying the CSS data before\n * it is transformed by returning any string value (or false\n * to skip). Passes 1) CSS text, 2) source node reference, and\n * 3) the source URL as arguments.\n * @param {function} [options.onComplete] Callback after all CSS has been\n * processed, legacy-compatible CSS has been generated, and\n * (optionally) the DOM has been updated. Passes 1) a CSS\n * string with CSS variable values resolved, 2) an array of\n * output <style> node references that have been appended to\n * the DOM, 3) an object containing all custom properies names\n * and values, and 4) the ponyfill execution time in\n * milliseconds.\n * @param {function} [options.onFinally] Callback in modern and legacy browsers\n * after the ponyfill has finished all tasks. Passes 1) a\n * boolean indicating if the last ponyfill call resulted in a\n * style change, 2) a boolean indicating if the current\n * browser provides native support for CSS custom properties,\n * and 3) the ponyfill execution time in milliseconds.\n * @example\n *\n * cssVars({\n * rootElement : document,\n * shadowDOM : false,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '',\n * variables : {},\n * onlyLegacy : true,\n * preserveStatic: true,\n * preserveVars : false,\n * silent : false,\n * updateDOM : true,\n * updateURLs : true,\n * watch : false,\n * onBeforeSend(xhr, node, url) {},\n * onError(message, node, xhr, url) {},\n * onWarning(message) {},\n * onSuccess(cssText, node, url) {},\n * onComplete(cssText, styleNode, cssVariables, benchmark) {},\n * onFinally(hasChanged, hasNativeSupport, benchmark)\n * });\n */ function cssVars() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var msgPrefix = \"cssVars(): \";\n var settings = _extends({}, defaults, options);\n function handleError(message, sourceNode, xhr, url) {\n if (!settings.silent && window.console) {\n console.error(\"\".concat(msgPrefix).concat(message, \"\\n\"), sourceNode);\n }\n settings.onError(message, sourceNode, xhr, url);\n }\n function handleWarning(message) {\n if (!settings.silent && window.console) {\n console.warn(\"\".concat(msgPrefix).concat(message));\n }\n settings.onWarning(message);\n }\n function handleFinally(hasChanged) {\n settings.onFinally(Boolean(hasChanged), isNativeSupport, getTimeStamp() - settings.__benchmark);\n }\n if (!isBrowser) {\n return;\n }\n if (settings.watch) {\n settings.watch = defaults.watch;\n addMutationObserver(settings);\n cssVars(settings);\n return;\n } else if (settings.watch === false && cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n if (!settings.__benchmark) {\n if (cssVarsIsRunning === settings.rootElement) {\n cssVarsDebounced(options);\n return;\n }\n var srcNodes = [].slice.call(settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])'));\n settings.__benchmark = getTimeStamp();\n settings.exclude = [ cssVarsObserver ? '[data-cssvars]:not([data-cssvars=\"\"])' : '[data-cssvars=\"out\"]', \"link[disabled]:not([data-cssvars])\", settings.exclude ].filter((function(selector) {\n return selector;\n })).join(\",\");\n settings.variables = fixVarNames(settings.variables);\n srcNodes.forEach((function(srcNode) {\n var hasStyleCache = srcNode.nodeName.toLowerCase() === \"style\" && srcNode.__cssVars.text;\n var hasStyleChanged = hasStyleCache && srcNode.textContent !== srcNode.__cssVars.text;\n if (hasStyleCache && hasStyleChanged) {\n srcNode.sheet && (srcNode.sheet.disabled = false);\n srcNode.setAttribute(\"data-cssvars\", \"\");\n }\n }));\n if (!cssVarsObserver) {\n var outNodes = [].slice.call(settings.rootElement.querySelectorAll('[data-cssvars=\"out\"]'));\n outNodes.forEach((function(outNode) {\n var dataGroup = outNode.getAttribute(\"data-cssvars-group\");\n var srcNode = dataGroup ? settings.rootElement.querySelector('[data-cssvars=\"src\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) : null;\n if (!srcNode) {\n outNode.parentNode.removeChild(outNode);\n }\n }));\n if (cssVarsSrcNodeCount && srcNodes.length < cssVarsSrcNodeCount) {\n cssVarsSrcNodeCount = srcNodes.length;\n variableStore.dom = {};\n }\n }\n }\n if (document.readyState !== \"loading\") {\n if (isNativeSupport && settings.onlyLegacy) {\n var hasVarChange = false;\n if (settings.updateDOM) {\n var targetElm = settings.rootElement.host || (settings.rootElement === document ? document.documentElement : settings.rootElement);\n Object.keys(settings.variables).forEach((function(key) {\n var varValue = settings.variables[key];\n hasVarChange = hasVarChange || varValue !== getComputedStyle(targetElm).getPropertyValue(key);\n targetElm.style.setProperty(key, varValue);\n }));\n }\n handleFinally(hasVarChange);\n } else if (!isShadowDOMReady && (settings.shadowDOM || settings.rootElement.shadowRoot || settings.rootElement.host)) {\n getCssData({\n rootElement: defaults.rootElement,\n include: defaults.include,\n exclude: settings.exclude,\n skipDisabled: false,\n onSuccess: function onSuccess(cssText, node, url) {\n var isUserDisabled = (node.sheet || {}).disabled && !node.__cssVars;\n if (isUserDisabled) {\n return false;\n }\n cssText = cssText.replace(regex.cssComments, \"\").replace(regex.cssMediaQueries, \"\");\n cssText = (cssText.match(regex.cssVarDeclRules) || []).join(\"\");\n return cssText || false;\n },\n onComplete: function onComplete(cssText, cssArray, nodeArray) {\n parseVars(cssText, {\n store: variableStore.dom,\n onWarning: handleWarning\n });\n isShadowDOMReady = true;\n cssVars(settings);\n }\n });\n } else {\n cssVarsIsRunning = settings.rootElement;\n getCssData({\n rootElement: settings.rootElement,\n include: settings.include,\n exclude: settings.exclude,\n skipDisabled: false,\n onBeforeSend: settings.onBeforeSend,\n onError: function onError(xhr, node, url) {\n var responseUrl = xhr.responseURL || getFullUrl(url, location.href);\n var statusText = xhr.statusText ? \"(\".concat(xhr.statusText, \")\") : \"Unspecified Error\" + (xhr.status === 0 ? \" (possibly CORS related)\" : \"\");\n var errorMsg = \"CSS XHR Error: \".concat(responseUrl, \" \").concat(xhr.status, \" \").concat(statusText);\n handleError(errorMsg, node, xhr, responseUrl);\n },\n onSuccess: function onSuccess(cssText, node, url) {\n var isUserDisabled = (node.sheet || {}).disabled && !node.__cssVars;\n if (isUserDisabled) {\n return false;\n }\n var isLink = node.nodeName.toLowerCase() === \"link\";\n var isStyleImport = node.nodeName.toLowerCase() === \"style\" && cssText !== node.textContent;\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n if (settings.updateURLs && (isLink || isStyleImport)) {\n cssText = fixRelativeCssUrls(cssText, url);\n }\n return cssText;\n },\n onComplete: function onComplete(cssText, cssArray) {\n var nodeArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var currentVars = _extends({}, variableStore.dom, variableStore.user);\n var hasVarChange = false;\n variableStore.job = {};\n nodeArray.forEach((function(node, i) {\n var nodeCSS = cssArray[i];\n node.__cssVars = node.__cssVars || {};\n node.__cssVars.text = nodeCSS;\n if (regex.cssVars.test(nodeCSS)) {\n try {\n var cssTree = parseCss(nodeCSS, {\n preserveStatic: settings.preserveStatic,\n removeComments: true\n });\n parseVars(cssTree, {\n parseHost: Boolean(settings.rootElement.host),\n store: variableStore.dom,\n onWarning: handleWarning\n });\n node.__cssVars.tree = cssTree;\n } catch (err) {\n handleError(err.message, node);\n }\n }\n }));\n _extends(variableStore.job, variableStore.dom);\n if (settings.updateDOM) {\n _extends(variableStore.user, settings.variables);\n _extends(variableStore.job, variableStore.user);\n } else {\n _extends(variableStore.job, variableStore.user, settings.variables);\n _extends(currentVars, settings.variables);\n }\n hasVarChange = counters.job > 0 && Boolean(Object.keys(variableStore.job).length > Object.keys(currentVars).length || Boolean(Object.keys(currentVars).length && Object.keys(variableStore.job).some((function(key) {\n return variableStore.job[key] !== currentVars[key];\n }))));\n if (hasVarChange) {\n resetCssNodes(settings.rootElement);\n cssVars(settings);\n } else {\n var outCssArray = [];\n var outNodeArray = [];\n var hasKeyframesWithVars = false;\n if (settings.updateDOM) {\n counters.job++;\n }\n nodeArray.forEach((function(node, i) {\n var isSkip = !node.__cssVars.tree;\n if (node.__cssVars.tree) {\n try {\n transformCss(node.__cssVars.tree, _extends({}, settings, {\n variables: variableStore.job,\n onWarning: handleWarning\n }));\n var outCss = stringifyCss(node.__cssVars.tree);\n if (settings.updateDOM) {\n var nodeCSS = cssArray[i];\n var hasCSSVarFunc = regex.cssVarFunc.test(nodeCSS);\n if (!node.getAttribute(\"data-cssvars\")) {\n node.setAttribute(\"data-cssvars\", \"src\");\n }\n if (outCss.length && hasCSSVarFunc) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\") || ++counters.group;\n var outCssNoSpaces = outCss.replace(/\\s/g, \"\");\n var outNode = settings.rootElement.querySelector('[data-cssvars=\"out\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) || document.createElement(\"style\");\n hasKeyframesWithVars = hasKeyframesWithVars || regex.cssKeyframes.test(outCss);\n if (settings.preserveStatic) {\n node.sheet && (node.sheet.disabled = true);\n }\n if (!outNode.hasAttribute(\"data-cssvars\")) {\n outNode.setAttribute(\"data-cssvars\", \"out\");\n }\n if (outCssNoSpaces === node.textContent.replace(/\\s/g, \"\")) {\n isSkip = true;\n if (outNode && outNode.parentNode) {\n node.removeAttribute(\"data-cssvars-group\");\n outNode.parentNode.removeChild(outNode);\n }\n } else if (outCssNoSpaces !== outNode.textContent.replace(/\\s/g, \"\")) {\n [ node, outNode ].forEach((function(n) {\n n.setAttribute(\"data-cssvars-job\", counters.job);\n n.setAttribute(\"data-cssvars-group\", dataGroup);\n }));\n outNode.textContent = outCss;\n outCssArray.push(outCss);\n outNodeArray.push(outNode);\n if (!outNode.parentNode) {\n node.parentNode.insertBefore(outNode, node.nextSibling);\n }\n }\n }\n } else {\n if (node.textContent.replace(/\\s/g, \"\") !== outCss) {\n outCssArray.push(outCss);\n }\n }\n } catch (err) {\n handleError(err.message, node);\n }\n }\n if (isSkip) {\n node.setAttribute(\"data-cssvars\", \"skip\");\n }\n if (!node.hasAttribute(\"data-cssvars-job\")) {\n node.setAttribute(\"data-cssvars-job\", counters.job);\n }\n }));\n cssVarsSrcNodeCount = settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])').length;\n if (settings.shadowDOM) {\n var elms = [].concat(settings.rootElement).concat([].slice.call(settings.rootElement.querySelectorAll(\"*\")));\n for (var i = 0, elm; elm = elms[i]; ++i) {\n if (elm.shadowRoot && elm.shadowRoot.querySelector(\"style\")) {\n var shadowSettings = _extends({}, settings, {\n rootElement: elm.shadowRoot\n });\n cssVars(shadowSettings);\n }\n }\n }\n if (settings.updateDOM && hasKeyframesWithVars) {\n fixKeyframes(settings.rootElement);\n }\n cssVarsIsRunning = false;\n settings.onComplete(outCssArray.join(\"\"), outNodeArray, JSON.parse(JSON.stringify(variableStore.job)), getTimeStamp() - settings.__benchmark);\n handleFinally(outNodeArray.length);\n }\n }\n });\n }\n } else {\n document.addEventListener(\"DOMContentLoaded\", (function init(evt) {\n cssVars(options);\n document.removeEventListener(\"DOMContentLoaded\", init);\n }));\n }\n}\n\ncssVars.reset = function() {\n counters.job = 0;\n counters.group = 0;\n cssVarsIsRunning = false;\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsSrcNodeCount = 0;\n debounceTimer = null;\n isShadowDOMReady = false;\n for (var prop in variableStore) {\n variableStore[prop] = {};\n }\n};\n\nfunction addMutationObserver(settings) {\n function isDisabled(node) {\n var isDisabledAttr = isLink(node) && node.hasAttribute(\"disabled\");\n var isDisabledSheet = (node.sheet || {}).disabled;\n return isDisabledAttr || isDisabledSheet;\n }\n function isLink(node) {\n var isStylesheet = node.nodeName.toLowerCase() === \"link\" && (node.getAttribute(\"rel\") || \"\").indexOf(\"stylesheet\") !== -1;\n return isStylesheet;\n }\n function isStyle(node) {\n return node.nodeName.toLowerCase() === \"style\";\n }\n function isValidAttributeMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"attributes\" && isLink(mutation.target) && !isDisabled(mutation.target)) {\n var isEnabledMutation = mutation.attributeName === \"disabled\";\n var isHrefMutation = mutation.attributeName === \"href\";\n var isSkipNode = mutation.target.getAttribute(\"data-cssvars\") === \"skip\";\n var isSrcNode = mutation.target.getAttribute(\"data-cssvars\") === \"src\";\n if (isEnabledMutation) {\n isValid = !isSkipNode && !isSrcNode;\n } else if (isHrefMutation) {\n if (isSkipNode) {\n mutation.target.setAttribute(\"data-cssvars\", \"\");\n } else if (isSrcNode) {\n resetCssNodes(settings.rootElement, true);\n }\n isValid = true;\n }\n }\n return isValid;\n }\n function isValidStyleTextMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n var isStyleElm = isStyle(mutation.target);\n var isOutNode = mutation.target.getAttribute(\"data-cssvars\") === \"out\";\n isValid = isStyleElm && !isOutNode;\n }\n return isValid;\n }\n function isValidAddMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n isValid = [].slice.call(mutation.addedNodes).some((function(node) {\n var isElm = node.nodeType === 1;\n var hasAttr = isElm && node.hasAttribute(\"data-cssvars\");\n var isStyleWithVars = isStyle(node) && regex.cssVars.test(node.textContent);\n var isValid = !hasAttr && (isLink(node) || isStyleWithVars);\n return isValid && !isDisabled(node);\n }));\n }\n return isValid;\n }\n function isValidRemoveMutation(mutation) {\n var isValid = false;\n if (mutation.type === \"childList\") {\n isValid = [].slice.call(mutation.removedNodes).some((function(node) {\n var isElm = node.nodeType === 1;\n var isOutNode = isElm && node.getAttribute(\"data-cssvars\") === \"out\";\n var isSrcNode = isElm && node.getAttribute(\"data-cssvars\") === \"src\";\n var isValid = isSrcNode;\n if (isSrcNode || isOutNode) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\");\n var orphanNode = settings.rootElement.querySelector('[data-cssvars-group=\"'.concat(dataGroup, '\"]'));\n if (isSrcNode) {\n resetCssNodes(settings.rootElement, true);\n }\n if (orphanNode) {\n orphanNode.parentNode.removeChild(orphanNode);\n }\n }\n return isValid;\n }));\n }\n return isValid;\n }\n if (!window.MutationObserver) {\n return;\n }\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsObserver = new MutationObserver((function(mutations) {\n var hasValidMutation = mutations.some((function(mutation) {\n return isValidAttributeMutation(mutation) || isValidStyleTextMutation(mutation) || isValidAddMutation(mutation) || isValidRemoveMutation(mutation);\n }));\n if (hasValidMutation) {\n cssVars(settings);\n }\n }));\n cssVarsObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [ \"disabled\", \"href\" ],\n childList: true,\n subtree: true\n });\n}\n\nfunction cssVarsDebounced(settings) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout((function() {\n settings.__benchmark = null;\n cssVars(settings);\n }), delay);\n}\n\nfunction fixKeyframes(rootElement) {\n var animationNameProp = [ \"animation-name\", \"-moz-animation-name\", \"-webkit-animation-name\" ].filter((function(prop) {\n return getComputedStyle(document.body)[prop];\n }))[0];\n if (animationNameProp) {\n var allNodes = [].slice.call(rootElement.querySelectorAll(\"*\"));\n var keyframeNodes = [];\n var nameMarker = \"__CSSVARSPONYFILL-KEYFRAMES__\";\n for (var i = 0, len = allNodes.length; i < len; i++) {\n var node = allNodes[i];\n var animationName = getComputedStyle(node)[animationNameProp];\n if (animationName !== \"none\") {\n node.style[animationNameProp] += nameMarker;\n keyframeNodes.push(node);\n }\n }\n void document.body.offsetHeight;\n for (var _i = 0, _len = keyframeNodes.length; _i < _len; _i++) {\n var nodeStyle = keyframeNodes[_i].style;\n nodeStyle[animationNameProp] = nodeStyle[animationNameProp].replace(nameMarker, \"\");\n }\n }\n}\n\nfunction fixRelativeCssUrls(cssText, baseUrl) {\n var cssUrls = cssText.replace(regex.cssComments, \"\").match(regex.cssUrls) || [];\n cssUrls.forEach((function(cssUrl) {\n var oldUrl = cssUrl.replace(regex.cssUrls, \"$1\");\n var newUrl = getFullUrl(oldUrl, baseUrl);\n cssText = cssText.replace(cssUrl, cssUrl.replace(oldUrl, newUrl));\n }));\n return cssText;\n}\n\nfunction fixVarNames() {\n var varObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var reLeadingHyphens = /^-{2}/;\n return Object.keys(varObj).reduce((function(obj, value) {\n var key = reLeadingHyphens.test(value) ? value : \"--\".concat(value.replace(/^-+/, \"\"));\n obj[key] = varObj[value];\n return obj;\n }), {});\n}\n\nfunction getFullUrl(url) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base;\n a.href = url;\n return a.href;\n}\n\nfunction getTimeStamp() {\n return isBrowser && (window.performance || {}).now ? window.performance.now() : (new Date).getTime();\n}\n\nfunction resetCssNodes(rootElement) {\n var resetDOMVariableStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var resetNodes = [].slice.call(rootElement.querySelectorAll('[data-cssvars=\"skip\"],[data-cssvars=\"src\"]'));\n resetNodes.forEach((function(node) {\n return node.setAttribute(\"data-cssvars\", \"\");\n }));\n if (resetDOMVariableStore) {\n variableStore.dom = {};\n }\n}\n\nexport { cssVars as default };\n//# sourceMappingURL=css-vars-ponyfill.esm.js.map\n","import React, { createContext, PropsWithChildren } from \"react\";\nimport cssVars from \"css-vars-ponyfill\";\n\nexport type ThemeValue = {\n \"--color-primary\"?: string;\n \"--color-primary-dark\"?: string;\n \"--color-primary-reverse\"?: string;\n \"--color-disabled\"?: string;\n \"--color-warning\"?: string;\n \"--color-warning-light\"?: string;\n \"--background-color\"?: string;\n \"--body-background-color\"?: string;\n \"--font-color\"?: string;\n \"--font-color-secondary\"?: string;\n \"--font-color-tertiary\"?: string;\n \"--border-color\"?: string;\n \"--btn-color\"?: string;\n \"--btn-shadow-primary\"?: string;\n \"--mask-color\"?: string;\n \"--btn-color-disabled\"?: string;\n};\n\nexport type ThemeProviderProps = {\n value: ThemeValue & { [key: string]: string };\n scoped?: boolean;\n};\n\nconst createTheme = (theme: { [key: string]: string }) => {\n return createContext({ ...theme });\n};\n\nexport const ThemeContext = createTheme({});\n\nconst ThemeProvider: React.FC<PropsWithChildren<ThemeProviderProps>> = ({\n children,\n value,\n scoped = false,\n}) => {\n let clonedElement = children;\n if (!scoped) {\n Object.keys(value).forEach(key => {\n document.body.style.setProperty(key, value[key]);\n });\n } else {\n clonedElement = React.Children.map(children, (child, index) => {\n if (index === 0) {\n return React.cloneElement(child as any, {\n style: value,\n });\n } else {\n return child;\n }\n });\n }\n\n cssVars({\n variables: value as { [key: string]: string },\n });\n\n return (\n <ThemeContext.Provider value={value}>{clonedElement}</ThemeContext.Provider>\n );\n};\n\nexport default ThemeProvider;\n","import { useEffect, useState } from \"react\";\n\nexport default function (id, prefix?: string) {\n const [finalId, setId] = useState(id);\n useEffect(() => {\n setId(\n `${prefix}${(Math.random() * 1000)\n .toString()\n .replace(\".\", \"\")\n .slice(0, 20)}`\n );\n }, []);\n return finalId;\n}\n","import React, { ReactNode, useMemo } from \"react\";\nimport classNames from \"classnames\";\n\nimport CheckBox from \"..\";\n\nexport type CheckBoxItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type CheckBoxItem = Omit<CheckBoxItemType, \"checked\"> | string;\nexport type CheckboxGroupProps = {\n option: CheckBoxItem[];\n onChange?: (value: string[]) => void;\n defaultChecked?: string[] | string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n checkboxStyle?: React.CSSProperties;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n color?: string;\n size?: number;\n};\n\nconst CheckboxGroup: React.FC<CheckboxGroupProps> = props => {\n const {\n option,\n onChange,\n defaultChecked,\n padding,\n border,\n style,\n checkboxStyle,\n ...rest\n } = props;\n\n const getOpions = useMemo(() => {\n return option.map((item: CheckBoxItemType | string) => {\n let checkedItem =\n typeof defaultChecked === \"string\" ? [defaultChecked] : defaultChecked;\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: checkedItem?.includes(item),\n };\n } else {\n if (checkedItem?.includes(item.value)) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n // const [innerOption, setInnerOption] = useState(getOpions);\n\n // useEffect(() => {\n // setInnerOption(getOpions);\n // }, [defaultChecked, getOpions]);\n\n const handleChange = (checked, index) => {\n const newoption = [...getOpions];\n newoption[index].checked = checked;\n // setInnerOption(newoption);\n const newValue = newoption.filter(k => k.checked).map(item => item.value);\n\n onChange?.(newValue);\n };\n\n const cls = classNames(\"xh-checkbox-group\", { padding }, { border });\n return (\n <div className={cls} style={style}>\n {getOpions.map((item, index) => {\n return (\n <CheckBox\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n checked={item.checked}\n key={index}\n style={checkboxStyle}\n onChange={checked => handleChange(checked, index)}\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default CheckboxGroup;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHIcon =\n | \"prompt\"\n | \"score\"\n | \"info\"\n | \"failure\"\n | \"success\"\n | \"loading\"\n | \"back\"\n | \"notice\"\n | \"scan\"\n | \"light\"\n | \"faceScan\"\n | \"delete\"\n | \"radioFull\"\n | \"checkboxFull\"\n | \"checkedSquare\"\n | \"checked2\"\n | \"arrowTop\"\n | \"notice2\"\n | \"position\"\n | \"contacts\"\n | \"billFull\"\n | \"bill2\"\n | \"bill3\"\n | \"bill4\"\n | \"edit\"\n | \"editFull\"\n | \"camera\"\n | \"close\"\n | \"gift\"\n | \"message\"\n | \"user\"\n | \"wenhao\"\n | \"kefu\"\n | \"play\"\n | \"arrowLeft\"\n | \"arrowRight\"\n | \"keyboardClose\"\n | \"add\"\n | \"tongxunlu\"\n | \"zhuyi\"\n | \"duigou\"\n | \"edit2\"\n | \"alipay\"\n | \"wechat\"\n | \"friendPay\"\n | \"pen\"\n | \"location\"\n | \"search\"\n | \"qa\"\n | \"thumbsUp\"\n | \"thumbsDown\"\n | \"thumbsUpFull\"\n | \"thumbsDownFull\"\n | \"waiting\"\n | \"scan2\"\n | \"safety\"\n | \"report\"\n | \"forbidden\"\n | \"unlock\"\n | (string & {});\n\nexport type XHIconProps = {\n icon: XHIcon;\n size?: number;\n color?: StandardLonghandProperties[\"color\"];\n style?: React.CSSProperties;\n onClick?: () => void;\n} & XHComponentCommonProps;\n\nconst Icon: React.FC<XHIconProps> = props => {\n const { icon = \"\", size = 0, className, color, style, ...rest } = props;\n\n const fixIcon = icon && `xh-icon-${icon}`;\n const iconCls = classNames(\"xh-icon\", fixIcon, className);\n\n const finalStyle: React.CSSProperties = {\n ...style,\n ...(size > 0 ? { fontSize: pxTransform(size) } : {}),\n color,\n };\n\n return <span className={iconCls} {...{ style: finalStyle }} {...rest} />;\n};\n\nexport default Icon;\n","import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\nimport Group from \"./Group\";\nimport \"./index.scss\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHCheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHCheckboxProps = {\n onChange?: (check: boolean, value: string) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n} & XHComponentCommonProps;\n\nconst XHCheckbox: FC<XHCheckboxProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle,\n onChange,\n align,\n direction,\n justify,\n checked = false,\n disabled,\n value = \"\",\n style,\n size = 0,\n iconColor = \"#FFFFFF\",\n } = props;\n\n const finalId = useGenerateId(id, \"xh-checkbox-id\");\n const [innerChecked, setInnerChecked] = useState(false);\n\n useEffect(() => {\n setInnerChecked(checked);\n }, [checked]);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value.length > 0;\n value = e.detail.value[0];\n }\n onChange && onChange(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (disabled) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value as string);\n };\n\n const cls = classNames(\"xh-checkbox\", className, align, direction, justify, {\n h5: process.env.TARO_ENV === \"h5\",\n });\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-checkbox-input\", {\n checked: innerChecked,\n disabled,\n })}\n >\n {\" \"}\n </View>\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"checkbox\"\n id={finalId}\n name={name}\n className=\"xh-checkbox-input\"\n onChange={handleOnchange}\n value={value}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-checkbox-input-fake\", circle && \"circle\")}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-checkbox-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-checkbox-label\">{label}</span>\n </label>\n );\n};\n\nconst CheckBox = XHCheckbox as CompoundedComponent;\nCheckBox.Group = Group;\n\nexport default CheckBox;\n","import React, { useMemo, useState, ReactNode, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\n\nimport Radio from \"..\";\n\nexport type RadioItemType = {\n label: string | ReactNode;\n value: string;\n disabled?: boolean;\n checked?: boolean;\n};\nexport type RadioItem = RadioItemType | string;\nexport type RadioGroupProps = {\n option: RadioItem[];\n onChange?: (value: string | number) => void;\n name: string;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n id?: string;\n padding?: true;\n border?: boolean;\n style?: React.CSSProperties;\n radioStyle?: React.CSSProperties;\n defaultChecked?: string | number;\n color?: string;\n inline?: boolean;\n size?: number;\n fancy?: boolean;\n checkedClass?: string;\n};\n\nconst RadioGroup: React.FC<RadioGroupProps> = props => {\n const {\n option,\n onChange,\n name,\n padding,\n border,\n radioStyle,\n defaultChecked,\n inline,\n style,\n checkedClass = \"\",\n ...rest\n } = props;\n\n let getOpions = useMemo(() => {\n return option?.map(item => {\n if (typeof item === \"string\") {\n return {\n label: item,\n value: item,\n checked: defaultChecked === item,\n };\n } else {\n if (defaultChecked === item.value) {\n item.checked = true;\n }\n return item;\n }\n });\n }, [option, defaultChecked]);\n\n const [innerOptions, setInnerOptions] = useState(getOpions);\n\n useEffect(() => {\n setInnerOptions(getOpions);\n }, [getOpions]);\n\n const handleChange = idx => {\n let newoption = [...innerOptions];\n let newValue = \"\";\n for (let index = 0; index < newoption.length; index++) {\n if (index === idx) {\n newoption[index].checked = true;\n newValue = newoption[index].value;\n } else {\n newoption[index].checked = false;\n }\n }\n setInnerOptions(newoption);\n onChange?.(newValue);\n if (process.env.TARO_ENV !== \"h5\") {\n eventCenter.trigger(\"radioChange\", idx);\n }\n };\n\n const cls = classNames(\"xh-radio-group\", { padding }, { border }, { inline });\n\n return (\n <div className={cls} style={style}>\n {getOpions.map((item, index) => {\n return (\n <Radio\n label={item.label}\n value={item.value}\n disabled={item.disabled}\n name={name}\n key={index}\n className={classNames(\"xh-radio-group-list\", {\n [checkedClass]: item.checked,\n })}\n circle\n onChange={() => handleChange(index)}\n checked={item.checked}\n style={radioStyle}\n index={index}\n group\n {...rest}\n />\n );\n })}\n </div>\n );\n};\n\nexport default RadioGroup;\n","import React, { FC, ReactNode, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { eventCenter } from \"@tarojs/taro\";\nimport { View } from \"@tarojs/components\";\nimport useGenerateId from \"@/hooks/useGenerateId\";\nimport { pxTransform } from \"@/utils\";\n\nimport Group from \"./Group\";\nimport type { XHComponentCommonProps } from \"../../types\";\nimport Icon from \"../Icon\";\n\nimport \"./index.scss\";\n\ntype CompoundedComponent = React.ForwardRefExoticComponent<\n XHRadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof Group;\n};\n\nexport type XHRadioProps = {\n onChange?: (check: boolean, value: string | number) => void;\n checked?: boolean;\n name?: string;\n label: string | ReactNode;\n size?: number;\n circle?: boolean;\n align?: \"center\" | \"end\";\n direction?: \"rtl\";\n justify?: \"around\" | \"between\";\n value?: string | number;\n id?: string;\n disabled?: boolean;\n style?: React.CSSProperties;\n fancy?: boolean;\n index?: number;\n /**\n * 抖音不支持属性选择器\n * @description 主要为抖音支持颜色\n */\n color?: string;\n group?: boolean;\n /**\n * 选中状态下打勾icon的颜色\n */\n iconColor?: string;\n} & XHComponentCommonProps;\n\nconst XHRadio: FC<XHRadioProps> = props => {\n const {\n className,\n name,\n label,\n id,\n circle = true,\n onChange,\n align,\n direction,\n justify,\n checked,\n disabled,\n value,\n style,\n size = 0,\n fancy = false,\n index = 0,\n group = false,\n iconColor = \"#FFFFFF\",\n } = props;\n\n const finalId = useGenerateId(id, \"xh-radio-id\");\n\n const [innerChecked, setInnerChecked] = useState(checked);\n\n const resetChecked = idx => {\n if (process.env.TARO_ENV !== \"h5\" && idx !== index) {\n setInnerChecked(false);\n }\n };\n\n useEffect(() => {\n if (process.env.TARO_ENV !== \"h5\") {\n eventCenter.on(\"radioChange\", resetChecked);\n }\n\n return () => {\n eventCenter.off(\"radioChange\", resetChecked);\n };\n }, []);\n\n const handleOnchange = e => {\n let finalchecked = checked || false;\n let value = \"\";\n\n if (process.env.TARO_ENV === \"h5\") {\n finalchecked = e.target.checked;\n value = e.target.value;\n } else {\n finalchecked = e.detail.value;\n\n value = e.detail.value;\n }\n\n onChange?.(finalchecked, value);\n };\n\n const handleFakeChange = () => {\n if (innerChecked && group) return;\n setInnerChecked(!innerChecked);\n onChange?.(!innerChecked, value || \"\");\n };\n\n const cls = classNames(\"xh-radio\", className, align, direction, justify);\n if (process.env.TARO_ENV !== \"h5\") {\n return (\n <View onClick={handleFakeChange} className={cls} style={style}>\n <View\n className={classNames(\"xh-radio-input\", {\n checked: innerChecked,\n })}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", circle && \"circle\", {\n fancy,\n })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </View>\n );\n }\n\n return (\n <label htmlFor={finalId} className={cls} style={style}>\n <input\n type=\"radio\"\n id={finalId}\n name={name}\n className=\"xh-radio-input\"\n onChange={handleOnchange}\n value={value}\n disabled={disabled}\n defaultChecked={checked}\n />\n <span\n style={\n size > 0\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {}\n }\n className={classNames(\"xh-radio-input-fake\", { circle, fancy })}\n >\n <Icon\n icon=\"duigou\"\n className=\"xh-radio-input-fake-icon\"\n color={iconColor}\n size={size ? size * 0.55 : 18}\n />\n </span>\n <span className=\"xh-radio-label\">{label}</span>\n </label>\n );\n};\n\nconst Radio = XHRadio as CompoundedComponent;\nRadio.Group = Group;\n\nexport default Radio;\n","import React, { FC, ReactElement } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../../types\";\n\nimport { StepProps } from \"..\";\n\nconst classPrefix = `xh-steps`;\nconst stepClassPrefix = `xh-step`;\n\nconst defaultIcon = <span className={`${stepClassPrefix}-icon-dot`} />;\n\nexport type StepsProps = {\n current?: number;\n direction?: \"horizontal\" | \"vertical\";\n children?: React.ReactNode;\n style?: React.CSSProperties & {\n \"--line-to-next-color\"?: string;\n \"--color-primary\"?: string;\n };\n dashed?: boolean;\n} & XHComponentCommonProps;\n\nconst Steps: FC<StepsProps> = props => {\n const {\n direction = \"horizontal\",\n current = 0,\n style,\n className,\n dashed = false,\n } = props;\n const classString = classNames(\n classPrefix,\n `${classPrefix}-${direction}`,\n className\n );\n\n return (\n <View className={classString} style={style}>\n {React.Children.map(\n props.children,\n (child: ReactElement<StepProps>, index) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n const props = child.props;\n\n let status = props.status || \"wait\";\n if (index < current) {\n status = props.status || \"finish\";\n } else if (index === current) {\n status = props.status || \"process\";\n }\n\n const icon = props.icon ?? defaultIcon;\n\n return React.cloneElement(child, {\n status,\n icon,\n direction,\n dashed,\n });\n }\n )}\n </View>\n );\n};\n\nexport default Steps;\n","import React, { ReactNode, ForwardRefExoticComponent } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport Steps from \"./Steps\";\nimport \"./index.scss\";\n\nexport type StepProps = {\n icon?: string | ReactNode;\n title: string | ReactNode;\n description?: string | ReactNode;\n direction?: \"horizontal\" | \"vertical\";\n status?: \"wait\" | \"process\" | \"finish\" | \"error\";\n fancy?: boolean;\n dashed?: boolean;\n style?: React.CSSProperties;\n prefix?: ReactNode;\n} & XHComponentCommonProps;\n\nconst classPrefix = \"xh-step\";\n\nconst Step: React.FC<StepProps> = props => {\n const {\n title,\n description,\n icon,\n status = \"wait\",\n fancy,\n style,\n className,\n direction,\n prefix,\n dashed,\n } = props;\n\n return (\n <View\n className={classNames(\n `${classPrefix}`,\n `${classPrefix}-status-${status}`,\n className\n )}\n style={style}\n >\n {direction === \"vertical\" && prefix && (\n <View className={`${classPrefix}-prefix`}>{prefix}</View>\n )}\n <View className={classNames(`${classPrefix}-indicator`, { dashed })}>\n <View\n className={classNames(`${classPrefix}-icon-container`, { fancy })}\n >\n {icon}\n </View>\n </View>\n <View className={`${classPrefix}-content`}>\n <View className={`${classPrefix}-title`}>{title}</View>\n {!!description && (\n <View className={`${classPrefix}-description`}>{description}</View>\n )}\n </View>\n </View>\n );\n};\n\nexport type HybridComponent = ForwardRefExoticComponent<StepProps> & {\n Steps: typeof Steps;\n};\n\nconst XHStep = Step as HybridComponent;\nXHStep.Steps = Steps;\n\nexport default XHStep;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type BadgeProps = {\n content?: string;\n} & XHComponentCommonProps;\n\nconst Badge: React.FC<BadgeProps> = props => {\n const { content, children } = props;\n const cls = classNames(\"xh-badge\", classNames);\n\n return <View className={cls}>{!!children ? children : content}</View>;\n};\n\nexport default Badge;\n","import React, {\n FC,\n useState,\n useEffect,\n MouseEvent,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\n\nimport Badge from \"../Badge\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Space from \"../Space\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n /**\n * 是否支持小数,小数保留小数点后两位,默认不支持\n */\n decimal?: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n value: string;\n header?: ReactNode;\n /**\n *\n * @param value 输入值\n * @param recommend 是否是点击推荐金额触发\n * @returns void\n */\n onConfirm?: (value: string, recommend?: boolean) => void;\n recommend?: Array<number | string>;\n tip?: ReactNode;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\" | \"close\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n}\n\nconst XHAmountKeys: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"00\", value: \"00\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst XHAmountKeysWithDot: IKey[] = [\n { text: 1, value: 1, type: \"number\" },\n { text: 2, value: 2, type: \"number\" },\n { text: 3, value: 3, type: \"number\" },\n { text: \"\", value: \"\", type: \"delete\" },\n { text: 4, value: 4, type: \"number\" },\n { text: 5, value: 5, type: \"number\" },\n { text: 6, value: 6, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: 7, value: 7, type: \"number\" },\n { text: 8, value: 8, type: \"number\" },\n { text: 9, value: 9, type: \"number\" },\n { text: \"\", value: \"\", type: \"none\" },\n { text: \"·\", value: \".\", type: \"number\" },\n { text: 0, value: 0, type: \"number\" },\n { text: \"\", value: \"\", type: \"close\" },\n { text: \"\", value: \"\", type: \"none\" },\n];\n\nconst AmountKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n maxLength = Number.MAX_SAFE_INTEGER,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n className,\n onConfirm,\n recommend = [],\n header,\n disabled = false,\n tip,\n decimal,\n } = props;\n const [input, setInput] = useState(value);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n const handleOnRecommand = (e: ITouchEvent, amount: number | string) => {\n e.stopPropagation();\n onConfirm?.(`${amount}`, true);\n };\n\n const handleKeyPress = useCallback(\n (e, { type, value }: IKey): void => {\n if (process.env.TARO_ENV === \"h5\") {\n e.stopImmediatePropagation();\n }\n if (disabled) return;\n if (type === \"none\") return;\n // 第一个字符不能是.\n if (value === \".\" && input === \"\") return;\n if (type === \"close\") {\n handleClose(e);\n return;\n }\n let newInput = input;\n if (type === \"delete\") {\n newInput = input.slice(0, input.length - 1);\n } else if (newInput.replace(/^0+/g, \"\").length < maxLength) {\n newInput = input + value;\n }\n // 支持小数点的情况下,如果第一个是0,自动填充.\n if (decimal && value === 0 && input === \"\") newInput = value + \".\";\n\n // 不能包含多个小数点\n if (value === \".\" && input.includes(\".\")) return;\n // 保留两位小数\n if (\n type === \"number\" &&\n input.indexOf(\".\") > -1 &&\n input.length - input.indexOf(\".\") === 3\n )\n return;\n\n // 前后两个值相等就不触发onchange\n if (newInput === input) return;\n setInput(newInput);\n onChange?.(newInput);\n },\n [input, disabled]\n );\n\n const renderKeys = decimal ? XHAmountKeysWithDot : XHAmountKeys;\n\n const handleConfirm = (e: ITouchEvent) => {\n e.stopPropagation();\n onConfirm?.(input);\n };\n const keyboardcls = classNames(\"xh-amount-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-amount-keyboard-header\">\n <View className=\"xh-amount-keyboard-header-wrapper\">\n {header ||\n (recommend.length > 0 && (\n <View className=\"xh-amount-keyboard-header-wrapper-text\">\n 猜您想借{\" \"}\n <Space style={{ marginLeft: pxTransform(24) }}>\n {recommend?.map((amount, index) => (\n <View\n key={index}\n onClick={e => handleOnRecommand(e, amount)}\n >\n <Badge content={`¥${amount}`} key={index} />\n </View>\n ))}\n </Space>\n </View>\n ))}\n {tip}\n </View>\n </View>\n <View className=\"xh-amount-keyboard-body\">\n {renderKeys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-amount-keyboard-body-key\", {\n none: key.type === \"none\",\n delete: key.type === \"delete\",\n close: key.type === \"close\",\n })}\n onClick={e => {\n handleKeyPress(e, key);\n }}\n >\n {key.text}\n </View>\n ))}\n <View\n className=\"xh-amount-keyboard-body-key confirm-fake\"\n onClick={handleConfirm}\n >\n 确定\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default AmountKeyboard;\n","import React, { useState, ReactNode, ReactElement, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport Popup from \"../Popup\";\nimport \"./index.scss\";\n\nexport interface ActionSheetOption {\n text: ReactNode;\n value: string | number;\n [key: string]: any;\n}\n\nexport type ActionValue = string | ActionSheetOption;\nexport interface ActionProps<T extends ActionValue = ActionValue> {\n visible?: boolean;\n title?: ReactNode;\n data: T[];\n defaultValue?: T;\n className?: string;\n style?: React.CSSProperties;\n onConfirm?: (selectedValue: T, index: number) => void;\n onCancel?: (bottom?: boolean) => void;\n onClose?: () => void;\n onClick?: (flag: boolean) => void;\n children?: ReactNode;\n description?: ReactNode;\n /**\n * @summary controlled模式下,组件为受控组件,需要外部来显示和隐藏\n * @description submit 模式下会显示提交按钮,可以自定义,也可以显示取消按钮但是得传进来一个Toggle事件用来显示隐藏\n */\n mode?: \"controlled\";\n cancelText?: ReactNode;\n /**\n * submit模式下,默认不展示取消按钮,可以设置\n */\n showCancel?: boolean;\n submitText?: string;\n renderItem?: (item: T, index: number) => ReactNode;\n ItemWrapper?: React.FC<{}>;\n onSubmit?: () => void;\n justifyContent?: \"start\" | \"end\";\n /**\n * 显示右上角的关闭、默认只有不显示下面的取消的时候才出现\n */\n showClose?: boolean;\n inline?: boolean;\n}\n\nconst ActionSheet = <T extends ActionValue>(\n props: ActionProps<T>\n): ReactElement => {\n const {\n visible = false,\n title,\n description,\n data = [],\n onConfirm,\n onCancel,\n className,\n children,\n style,\n mode,\n submitText = \"提交\",\n cancelText = \"取消\",\n showCancel = false,\n renderItem,\n ItemWrapper,\n onSubmit,\n onClick,\n showClose = false,\n justifyContent = \"center\",\n inline = false,\n defaultValue = \"\",\n } = props;\n\n const [innerVisible, setInnerVisible] = useState(visible);\n const [value, selectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue?.value\n );\n\n const handleCancel = (bottom?: boolean) => {\n onCancel?.(bottom);\n onClick?.(false);\n setInnerVisible(false);\n };\n\n useEffect(() => {\n setInnerVisible(visible);\n }, [visible]);\n\n const handleClick = () => {\n if (onClick) {\n onClick(!visible);\n return;\n }\n if (data.length <= 0) return;\n setInnerVisible(true);\n };\n\n const handleConfirm = (item: T, index: number) => {\n onConfirm?.(item, index);\n setInnerVisible(false);\n const checkValue = typeof item === \"string\" ? item : item.value;\n selectedValue(checkValue);\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const submitButton = () => {\n return (\n <View>\n <View\n className=\"xh-action-sheet-main-action-submit\"\n onClick={handleSubmit}\n >\n {submitText}\n </View>\n {showCancel && (\n <View\n className=\"xh-action-sheet-main-action-cancel mode\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n )}\n </View>\n );\n };\n\n const itemRender = () =>\n data.map((item, index) => {\n return renderItem ? (\n renderItem(item, index)\n ) : (\n <View\n className={classNames(\n \"xh-action-sheet-main-panel-item\",\n justifyContent,\n {\n active:\n typeof item === \"string\"\n ? item === value\n : item.value === value,\n }\n )}\n key={index}\n onClick={() => {\n handleConfirm(item, index);\n }}\n >\n {typeof item === \"string\" ? item : item.text}\n </View>\n );\n });\n\n const innerShowClose = showClose || (mode === \"controlled\" && !showCancel);\n\n return (\n <View\n className={classNames(\"xh-action-sheet\", { inline })}\n onClick={handleClick}\n >\n <Popup visible={innerVisible}>\n <View\n className={classNames(\"xh-action-sheet-main\", className, mode)}\n style={style}\n >\n {title && (\n <View className=\"xh-action-sheet-main-header\">\n <View className=\"xh-action-sheet-main-header-title\">{title}</View>\n <View className=\"xh-action-sheet-main-header-desc\">\n {description}\n </View>\n {innerShowClose && (\n <View\n className=\"xh-action-sheet-main-header-close\"\n onClick={() => handleCancel()}\n ></View>\n )}\n </View>\n )}\n <View\n className={classNames(\"xh-action-sheet-main-panel\", {\n noTitle: !title,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {ItemWrapper ? (\n <ItemWrapper>{itemRender()}</ItemWrapper>\n ) : (\n <React.Fragment>{itemRender()}</React.Fragment>\n )}\n </View>\n <View\n className={classNames(\"xh-action-sheet-main-action\", {\n noMarinTop: mode !== \"controlled\" && innerShowClose,\n })}\n onClick={e => process.env.TARO_ENV !== \"h5\" && e.stopPropagation()}\n >\n {mode === \"controlled\" ? (\n submitButton()\n ) : !innerShowClose ? (\n <View\n className=\"xh-action-sheet-main-action-cancel\"\n onClick={() => handleCancel(true)}\n >\n {cancelText}\n </View>\n ) : (\n <div></div>\n )}\n </View>\n </View>\n </Popup>\n {children}\n </View>\n );\n};\n\nexport default ActionSheet;\n","import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\nimport classNames from \"classnames\";\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n needName?: boolean;\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Partial<Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">>,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n needName = true,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useMemo(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n if (needName) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n }\n\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n if (map.relationValue.filter(item => item === \"MATE\").length >= 2) {\n flag = false;\n }\n\n return flag;\n }, [formData, needName]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit);\n }, [formData, validateCanSubmit]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit,\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName || \"\";\n old[index].linkmanPhone = item.linkmanPhone || \"\";\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n [validateCanSubmit]\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n // const validStub: Record<\n // Exclude<keyof LinkManItem, \"relationType\">,\n // string[]\n // > = {\n // linkmanName: [],\n // linkmanPhone: [],\n // relationValue: [],\n // };\n\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === \"MATE\" &&\n currentItem.relationValue === \"MATE\"\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n };\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const name = inputRange(value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const phone = inputRange(value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass) {\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n }\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n {needName && (\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n value={item.linkmanName}\n type=\"text\"\n onInput={e => onNameChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n )}\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"number\"\n maxlength={11}\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n value={item.linkmanPhone}\n onInput={e => onPhoneChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n {showImportIcon && !needName && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n Promise.resolve().then(() => {\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n });\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n <View\n className={classNames(\n \"xh-linkman-main-input-main-input\",\n {\n placeholder: !item.relationValue,\n tt: process.env.TARO_ENV === \"tt\",\n }\n )}\n >\n {item.relationType || \"选择与联系人关系\"}\n </View>\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n","import React, { ReactNode } from \"react\";\nimport { Image, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nconst ImageMap = {\n success: \"https://s.xh1.cn/resources/images/public/success.png\",\n empty: \"https://s.xh1.cn/resources/images/public/empty.png\",\n fail: \"https://s.xh1.cn/resources/images/public/failure.png\",\n networkErr: \"https://s.xh1.cn/resources/images/public/error.png\",\n wait: \"https://s.xh1.cn/resources/images/public/ing.png\",\n submitted: \"https://s.xh1.cn/resources/images/public/success-info.png\",\n faceEmpty: \"https://s.xh1.cn/resources/images/public/faceEmpty.png\",\n};\n\nexport type ResultStatus = keyof typeof ImageMap;\n\nexport type ResultProps = {\n status: ResultStatus;\n title: ReactNode;\n desc?: ReactNode;\n slot?: ReactNode;\n action?: string;\n full?: boolean;\n onAction?: () => void;\n} & XHComponentCommonProps;\n\nconst Result: React.FC<ResultProps> = props => {\n const {\n className,\n status,\n title,\n desc,\n slot,\n action,\n onAction,\n full = true,\n } = props;\n\n const resultCls = classNames(\"xh-result\", className, { full });\n\n const renderImage = () => {\n if (process.env.TARO_ENV === \"h5\") {\n return <img src={ImageMap[status]} alt=\"\" className=\"xh-result-status\" />;\n } else {\n return <Image src={ImageMap[status]} className=\"xh-result-status\" />;\n }\n };\n\n const handleAction = () => {\n onAction?.();\n };\n\n return (\n <View className={resultCls}>\n {renderImage()}\n <View className=\"xh-result-title\">{title}</View>\n <View className=\"xh-result-desc\">{desc}</View>\n <View className=\"xh-result-slot\">{slot}</View>\n {action && (\n <View className={classNames(\"xh-result-action\", { hasSlot: slot })}>\n <Button onClick={handleAction} hollow size=\"full\">\n {action}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nexport default Result;\n","import React, { FC, useState, useEffect, MouseEvent, useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { Button, View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport { replaceCharByIndex } from \"../../utils\";\n\nexport type NumberKeyboardType = \"default\" | \"custom\";\n\nexport type NumberKeyboardProps = {\n show: boolean;\n showClose?: boolean;\n closeOnClickSpace?: boolean;\n maxLength?: number;\n onBlur?: (e: MouseEvent | Event) => void;\n onClose?: (e: MouseEvent | Event) => void;\n onChange?: (value: string) => void;\n onDelete: () => void;\n value: string;\n closeText?: string;\n activeIndex: number;\n} & XHComponentCommonProps;\n\nexport type KeyType = \"number\" | \"delete\" | \"string\" | \"none\";\n\nexport interface IKey {\n text: number | string;\n value: number | string;\n type: KeyType;\n activeIndex: number;\n}\n\nconst LICENSEPLATE_PROVINCES = [\n \"京\",\n \"津\",\n \"冀\",\n \"晋\",\n \"蒙\",\n \"辽\",\n \"吉\",\n \"黑\",\n \"沪\",\n \"苏\",\n \"浙\",\n \"皖\",\n \"闽\",\n \"赣\",\n \"鲁\",\n \"豫\",\n \"鄂\",\n \"湘\",\n \"粤\",\n \"桂\",\n \"琼\",\n \"渝\",\n \"川\",\n \"贵\",\n \"云\",\n \"藏\",\n \"陕\",\n \"甘\",\n \"青\",\n \"宁\",\n \"新\",\n \"港\",\n \"澳\",\n \"台\",\n \"使\",\n];\n\nconst LICENSEPLATE_NUMBERS = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\"];\n\nconst LICENSEPLATE_LETTERS = [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n];\n\nconst specialArea = [\"港\", \"澳\", \"学\", \"领\"];\nconst finalArea = [\"临\", \"澳\", \"学\", \"领\"];\n\nexport type TYPE_MODE = \"province\" | \"letter\" | \"mixed\";\n\nconst LicensePlateKeyboard: FC<NumberKeyboardProps> = props => {\n const {\n onBlur,\n show,\n showClose = true,\n closeOnClickSpace = true,\n onClose,\n onChange,\n value,\n closeText = \"完成\",\n onDelete,\n className,\n activeIndex,\n } = props;\n const [input, setInput] = useState(value);\n\n // 键盘的key\n const keys = useMemo(() => {\n if (activeIndex === 0) return LICENSEPLATE_PROVINCES;\n if (activeIndex === 6)\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS, ...specialArea];\n if (activeIndex === 7)\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS, ...finalArea];\n return [...LICENSEPLATE_NUMBERS, ...LICENSEPLATE_LETTERS];\n }, [activeIndex]);\n\n const title = useMemo(() => {\n if (activeIndex === 0) return \"选择省份\";\n if (activeIndex === 1) return \"选择字母\";\n return \"选择数字或字母\";\n }, [activeIndex]);\n\n const mode = useMemo<TYPE_MODE>(() => {\n if (activeIndex === 0) return \"province\";\n if (activeIndex === 1) return \"letter\";\n return \"mixed\";\n }, [activeIndex]);\n\n useEffect(() => {\n if (closeOnClickSpace) {\n document.addEventListener(\"click\", handleClose);\n }\n\n return () => {\n document.removeEventListener(\"click\", handleClose);\n };\n }, []);\n\n useEffect(() => {\n setInput(value);\n }, [value]);\n\n function handleClose(e): void {\n e.stopPropagation();\n onClose && onClose(e);\n onBlur && onBlur(e);\n }\n\n /**\n * 根据 activeIndex 拼凑新值,如果activeIndex小于当前的值的长度,就说明后面已经有值,这时候直接替换,否则拼接\n * @param key\n */\n function handleKeyPress(key: string): void {\n if (key === value[activeIndex]) return;\n if (process.env.TARO_ENV === \"h5\") {\n // e.stopImmediatePropagation();\n }\n let newInput = input;\n if (activeIndex < input.length) {\n newInput = replaceCharByIndex(input, activeIndex, key);\n } else {\n newInput = input + key;\n }\n\n setInput(newInput);\n\n onChange && onChange(newInput);\n }\n\n const handleDelete = () => {\n onDelete();\n };\n\n const keyboardcls = classNames(\"xh-license-keyboard\", className);\n\n return (\n <CSSTransition classNames=\"slide-up\" in={show} unmountOnExit timeout={200}>\n <View className={keyboardcls}>\n <View className=\"xh-license-keyboard-header\">\n <View className=\"xh-license-keyboard-header-title\">{title}</View>\n <View className=\"xh-license-keyboard-header-delete\"></View>\n {showClose && (\n <View\n className=\"xh-license-keyboard-header-close\"\n onClick={handleClose}\n >\n {closeText}\n </View>\n )}\n </View>\n <View className=\"xh-license-keyboard-body\">\n {keys.map((key, index) => (\n <View\n key={index}\n className={classNames(\"xh-license-keyboard-body-key\")}\n >\n {process.env.TARO_ENV === \"h5\" ? (\n <button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV\n )}\n disabled={mode === \"letter\" && index < 10}\n onClick={e => {\n e.stopPropagation();\n handleKeyPress(key);\n }}\n >\n {key}\n </button>\n ) : (\n <Button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV\n )}\n disabled={mode === \"letter\" && index < 10}\n onClick={e => {\n e.stopPropagation();\n if (mode === \"letter\" && index < 10) return;\n handleKeyPress(key);\n }}\n >\n {key}\n </Button>\n )}\n </View>\n ))}\n <View\n className={classNames(\"xh-license-keyboard-body-key\", \"delete\")}\n >\n {process.env.TARO_ENV === \"h5\" ? (\n <button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV,\n \"delete\"\n )}\n disabled={activeIndex === 0}\n onClick={e => {\n e.stopPropagation();\n handleDelete();\n }}\n ></button>\n ) : (\n <Button\n className={classNames(\n \"xh-license-keyboard-body-key-item\",\n process.env.TARO_ENV,\n \"delete\"\n )}\n disabled={activeIndex === 0}\n onClick={e => {\n e.stopPropagation();\n if (value.length === 0) return;\n console.log(\"delete\");\n handleDelete();\n }}\n ></Button>\n )}\n </View>\n </View>\n </View>\n </CSSTransition>\n );\n};\n\nexport default LicensePlateKeyboard;\n","import React, {\n useImperativeHandle,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport Keyboard from \"./Keyboard\";\nimport { isLicenseNo, replaceCharByIndex } from \"../../utils\";\n\nimport \"./index.scss\";\n\nexport type LicensePlateProps = {\n value: string;\n onChange: (index: string) => void;\n /**\n * 是否默认展示键盘\n */\n showKeyboard?: boolean;\n closeText?: string;\n label?: ReactNode;\n onFinish?: () => void;\n padding?: boolean;\n border?: boolean;\n autoScroll?: boolean;\n} & XHComponentCommonProps;\n\nconst LENGTH = 8;\n\nexport type LicensePlateInputRef = {\n /**\n * 是否有效,组件会用大写字母(O) 来代替空位,如果要自己校验,那么就得判断有没有“O”来判断有没有空格\n */\n isValid: boolean;\n};\n\nconst LicensePlateInput = forwardRef<LicensePlateInputRef, LicensePlateProps>(\n (props, fromRef) => {\n const {\n value = \"\",\n onChange,\n className,\n showKeyboard = false,\n padding = false,\n border = false,\n onFinish,\n autoScroll = true,\n label,\n ...rest\n } = props;\n\n const [activeIndex, setActiveIndex] = useState(value.length);\n\n const [show, setShowKeyboard] = useState(showKeyboard);\n\n const InputRef = useRef<HTMLDivElement>(null);\n\n /**\n * 空位用“O”代替(大写字母 O)\n * @param neVal 新值\n */\n const handleOnChage = neVal => {\n setActiveIndex(old => {\n if (neVal.replace(/O/g, \"\").length >= LENGTH) return old;\n return old + 1;\n });\n // if (neVal.length === LENGTH) {\n // onFinish?.();\n // setShowKeyboard(false);\n // }\n onChange(neVal);\n };\n\n const handleKeyClick = (index: number) => {\n if (index > value.length - 1) return;\n setActiveIndex(index);\n };\n\n useImperativeHandle(\n fromRef,\n () => ({\n isValid: isLicenseNo(value),\n }),\n [value]\n );\n\n function renderInputs(): ReactNode {\n const Inputs: any = [];\n\n for (let i = 0; i < LENGTH; i++) {\n const char = value[i];\n\n Inputs.push(\n <View\n key={i}\n className={classNames(\"xh-licensePlate-input-item\", {\n active: activeIndex === i,\n showNew: i === LENGTH - 1 && value.length !== LENGTH,\n })}\n onClick={() => handleKeyClick(i)}\n >\n {char === \"O\" ? \"\" : char}\n </View>\n );\n }\n\n return Inputs;\n }\n\n /**\n * 删除其中一位\n * 如果删除那一位后面有值就用“O”代替删除的那一位,否则直接删除\n * 只要当前value有值就把 index-1\n */\n const handleDelete = () => {\n const nextChar = value[activeIndex + 1];\n const replaceChar = nextChar ? \"O\" : \"\";\n const newValue = replaceCharByIndex(value, activeIndex, replaceChar);\n\n if (newValue.length !== 0) setActiveIndex(old => old - 1);\n onChange(newValue);\n };\n\n const handleClose = () => {\n setShowKeyboard(false);\n };\n\n useEffect(() => {\n if (\n show &&\n InputRef.current &&\n autoScroll &&\n process.env.TARO_ENV === \"h5\"\n ) {\n InputRef.current.scrollIntoView({ behavior: \"smooth\" });\n }\n }, [show, autoScroll]);\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n setShowKeyboard(true);\n }\n const xhLicensePlateCls = classNames(\n \"xh-licensePlate\",\n className,\n { padding },\n { border }\n );\n\n return (\n <View className={xhLicensePlateCls}>\n {label && <label className=\"xh-licensePlate-label\">{label}</label>}\n <View\n className=\"xh-licensePlate-input\"\n onClick={handlerClick}\n ref={InputRef}\n >\n {renderInputs()}\n </View>\n <Keyboard\n activeIndex={activeIndex}\n show={show}\n value={value}\n onChange={handleOnChage}\n onDelete={handleDelete}\n onClose={handleClose}\n {...rest}\n />\n </View>\n );\n }\n);\n\nexport default LicensePlateInput;\n","import React, {\n ReactNode,\n forwardRef,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput, { FocusHandler } from \"../FormInput\";\nimport { checkBankCard, creditCard } from \"../../utils\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type PhoneNumberInputProps = {\n showScan?: boolean;\n label?: string;\n /**\n * 只有在direction为column才生效\n */\n bankName?: ReactNode;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n} & XHComponentCommonProps;\n\nexport type BankCardNumberInputRef = { isValid: boolean; focus: () => void };\n\nconst BankCardNumberInput = forwardRef<\n BankCardNumberInputRef,\n PhoneNumberInputProps\n>((props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n bankName,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入银行卡号\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n } = props;\n\n const validateCardNumber = value => {\n const newVal = value.replace(/\\s/g, \"\");\n if (newVal.length < 16 || newVal.length > 19) return false;\n return checkBankCard(newVal);\n };\n\n const FormInput = useRef<FocusHandler>(null);\n\n const handleBlur = value => {\n console.log(\"blur\");\n onBlur?.();\n if (!validateCardNumber(value))\n onError?.(value === \"\" ? \"银行卡号不能为空\" : \"银行卡号格式不正确\");\n };\n\n const handleChange = value => {\n const formatValue = creditCard(value);\n onChange?.(formatValue);\n };\n\n const handleOnScan = () => {\n console.log(fromRef, \"fromRef...\");\n onScan?.();\n };\n\n useImperativeHandle(\n fromRef,\n () => {\n return {\n isValid: validateCardNumber(value),\n focus: () => {\n FormInput?.current?.focus();\n },\n };\n },\n [value]\n );\n\n return (\n <View className={classNames(\"xh-bankcard-number-input\", className)}>\n <XHFormInput\n padding\n ref={FormInput}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-bankcard-number-input-scan\"\n ></View>\n )\n }\n direction={direction}\n label={label}\n mainExtra={\n direction !== \"row\" && (\n <View className=\"xh-bankcard-number-input-name\">{bankName}</View>\n )\n }\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type=\"tel\"\n border={border}\n value={creditCard(value)}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-bankcard-number-input-slot\">{slot}</View>}\n </View>\n );\n});\n\nexport default BankCardNumberInput;\n","import React, { ReactNode, forwardRef, useImperativeHandle } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\n\nimport XHFormInput from \"../FormInput\";\nimport \"./index.scss\";\nimport { verifyIdcard } from \"../../utils\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type IDNumberInputProps = {\n showScan?: boolean;\n label?: string;\n onChange?: (value: string) => void;\n value: string;\n placeholder?: string;\n readOnly?: boolean;\n disabled?: boolean;\n direction?: \"column\" | \"row\";\n onScan?: () => void;\n onError?: (msg: string) => void;\n maxlength?: number;\n slot?: ReactNode;\n border?: boolean;\n onBlur?: () => void;\n} & XHComponentCommonProps;\n\nexport type IDNumberInputRef = {\n isValid: boolean;\n focus: () => void;\n};\n\nconst BankCardNumberInput = forwardRef<IDNumberInputRef, IDNumberInputProps>(\n (props, fromRef) => {\n const {\n showScan = false,\n label,\n value,\n readOnly,\n direction = \"column\",\n onScan,\n placeholder = \"请输入身份证\",\n onError,\n onChange,\n maxlength = 23,\n slot,\n className,\n border,\n onBlur,\n } = props;\n\n const handleBlur = value => {\n onBlur?.();\n if (!verifyIdcard(value))\n onError?.(value === \"\" ? \"身份证号不能为空\" : \"请输入正确的身份证号\");\n };\n\n const handleChange = value => {\n const newValue = value.replace(/\\s/g, \"\");\n\n onChange?.(newValue);\n };\n\n const handleOnScan = () => {\n onScan?.();\n };\n\n useImperativeHandle(fromRef, () => {\n return {\n isValid: verifyIdcard(value.replace(/\\s/g, \"\")),\n focus: () => {\n if (typeof fromRef === \"object\") {\n fromRef?.current?.focus();\n }\n },\n };\n });\n\n return (\n <View className={classNames(\"xh-idnumber-input\", className)}>\n <XHFormInput\n padding\n ref={fromRef}\n RightComponent={\n showScan && (\n <View\n onClick={handleOnScan}\n className=\"xh-idnumber-input-scan\"\n ></View>\n )\n }\n border={border}\n direction={direction}\n label={label}\n maxlength={maxlength}\n placeholder={placeholder}\n readonly={readOnly}\n type={process.env.TARO_ENV === \"weapp\" ? \"idcard\" : \"text\"}\n value={value.replace(/\\s/g, \"\")}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n {slot && <View className=\"xh-idnumber-input-slot\">{slot}</View>}\n </View>\n );\n }\n);\n\nexport default BankCardNumberInput;\n","import { useEffect } from \"react\";\nimport useFirstMountState from \"./useFirstMountState\";\n\nexport default function useUpdateEffect(effect, deps) {\n const isFirstMount = useFirstMountState(); // 是否首次渲染\n\n useEffect(() => {\n if (!isFirstMount) {\n // 如果不是首次,则执行 effect 函数\n return effect();\n }\n }, deps);\n}\n","import { useRef } from \"react\";\n\nexport default function useFirstMountState(): boolean {\n const isFirst = useRef(true);\n\n if (isFirst.current) {\n isFirst.current = false;\n\n return true;\n }\n\n return isFirst.current;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\n/* eslint-disable accessor-pairs */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\nimport { CanvasContext } from \"@tarojs/taro\";\n\nexport default class WxCanvas {\n private ctx: CanvasContext;\n\n private chart: any;\n\n private canvasNode: any;\n\n private event: {};\n\n constructor(ctx: CanvasContext, isNew: boolean, canvasNode?: any) {\n this.ctx = ctx;\n this.chart = null;\n if (isNew) {\n this.canvasNode = canvasNode;\n } else {\n this._initStyle(ctx);\n }\n\n this._initEvent();\n }\n\n getContext(contextType) {\n if (contextType === \"2d\") {\n return this.ctx;\n }\n }\n\n setChart(chart) {\n this.chart = chart;\n }\n\n attachEvent() {\n // noop\n }\n\n addEventListener() {\n // noop\n }\n\n removeEventListener() {\n // noop\n }\n\n detachEvent() {\n // noop\n }\n\n _initCanvas(zrender, ctx) {\n zrender.util.getContext = function () {\n return ctx;\n };\n\n zrender.util.$override(\"measureText\", function (text, font) {\n ctx.font = font || \"12px sans-serif\";\n return ctx.measureText(text);\n });\n }\n\n _initStyle(ctx) {\n let styles = [\n \"fillStyle\",\n \"strokeStyle\",\n \"globalAlpha\",\n \"textAlign\",\n \"textBaseAlign\",\n \"shadow\",\n \"lineWidth\",\n \"lineCap\",\n \"lineJoin\",\n \"lineDash\",\n \"miterLimit\",\n \"fontSize\",\n ];\n\n styles.forEach(style => {\n Object.defineProperty(ctx, style, {\n set: value => {\n if (\n (style !== \"fillStyle\" && style !== \"strokeStyle\") ||\n (value !== \"none\" && value !== null)\n ) {\n ctx[\"set\" + style.charAt(0).toUpperCase() + style.slice(1)](value);\n }\n },\n });\n });\n\n ctx.createRadialGradient = function () {\n return ctx.createCircularGradient.apply(ctx, arguments);\n };\n }\n\n _initEvent() {\n this.event = {};\n const eventNames = [\n {\n wxName: \"touchStart\",\n ecName: \"mousedown\",\n },\n {\n wxName: \"touchMove\",\n ecName: \"mousemove\",\n },\n {\n wxName: \"touchEnd\",\n ecName: \"mouseup\",\n },\n {\n wxName: \"touchEnd\",\n ecName: \"click\",\n },\n ];\n\n eventNames.forEach(name => {\n this.event[name.wxName] = e => {\n const touch = e.touches[0];\n if (this.chart) {\n this.chart.getZr()?.handler?.dispatch(name.ecName, {\n zrX: name.wxName === \"tap\" ? touch.clientX : touch.x,\n zrY: name.wxName === \"tap\" ? touch.clientY : touch.y,\n });\n }\n };\n });\n }\n\n set width(w) {\n if (this.canvasNode) this.canvasNode.width = w;\n }\n\n set height(h) {\n if (this.canvasNode) this.canvasNode.height = h;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n get width() {\n if (this.canvasNode) return this.canvasNode.width;\n return 0;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n get height() {\n if (this.canvasNode) return this.canvasNode.height;\n return 0;\n }\n}\n","export function wrapTouch(event) {\n for (let i = 0; i < event.touches.length; ++i) {\n const touch = event.touches[i];\n touch.offsetX = touch.x;\n touch.offsetY = touch.y;\n }\n return event;\n}\n\nexport function touchStart({ chart, event }) {\n if (chart && event.touches.length > 0) {\n const touch = event.touches[0];\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mousedown\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"mousemove\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"start\");\n }\n}\n\nexport function touchMove({ chart, event }) {\n if (chart && event.touches.length > 0) {\n const touch = event.touches[0];\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mousedown\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"mousemove\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"start\");\n }\n}\n\nexport function touchEnd({ chart, event }) {\n if (chart) {\n const touch = event.changedTouches ? event.changedTouches[0] : {};\n const handler = chart.getZr()?.handler;\n handler?.dispatch(\"mouseup\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.dispatch(\"click\", {\n zrX: touch.x,\n zrY: touch.y,\n preventDefault: () => {},\n stopImmediatePropagation: () => {},\n stopPropagation: () => {},\n });\n handler?.processGesture(wrapTouch(event), \"end\");\n }\n}\n","import Taro, { useReady } from \"@tarojs/taro\";\nimport { Canvas, View } from \"@tarojs/components\";\nimport React, {\n useRef,\n useState,\n useMemo,\n memo,\n useEffect,\n CSSProperties,\n ForwardRefRenderFunction,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport {\n isString,\n isFunction,\n isEqual,\n pick,\n uniqueId,\n tripleDefer,\n compareVersion,\n} from \"@/utils\";\nimport usePrevious from \"@/hooks/usePrevious\";\nimport useUnMount from \"@/hooks/useUnMount\";\nimport useUpdateEffect from \"@/hooks/useUpdateEffect\";\nimport WxCanvas from \"./weapp/wx-canvas\";\nimport { touchEnd, touchMove, touchStart } from \"./weapp/wx-touch\";\nimport {\n EChartsProps,\n InitEchart,\n EChartsInstance,\n EchartsHandle,\n} from \"./types\";\n\nexport type {\n EChartsProps,\n EChartOption,\n EChartsInstance,\n EChartsLoadingOption,\n EchartsHandle,\n} from \"./types\";\n\n// 只兼容H5&微信小程序\nconst Echarts: ForwardRefRenderFunction<EchartsHandle, EChartsProps> = (\n { echarts, isPage = true, canvasId: pCanvasId, ...props },\n ref\n) => {\n const canvasRef = useRef<HTMLDivElement | HTMLCanvasElement | null>();\n const chartRef = useRef<EChartsInstance>();\n const [isInitialResize, setIsInitialResize] = useState<boolean>(true);\n const prevProps = usePrevious<EChartsProps>(props);\n const canvasId = useMemo(() => pCanvasId || uniqueId(\"canvas_\"), [pCanvasId]);\n const canvasProps = useMemo(\n () => [\n \"disableScroll\",\n \"disableScroll\",\n \"onTouchCancel\",\n \"onLongTap\",\n \"onError\",\n \"nativeProps\",\n \"className\",\n \"key\",\n \"hidden\",\n \"animation\",\n ],\n []\n );\n const canvasStyle = useMemo(\n () =>\n ({\n width: \"100%\",\n height: \"300px\",\n ...(props.style as CSSProperties),\n } as CSSProperties),\n [props.style]\n );\n /**\n * 获取小程序渲染层的节点要在 onReady 生命周期,等同于 useReady hooks\n * 访问小程序渲染层的 DOM 节点。\n */\n useReady(() => {\n // 顶层页面级别才触发useReady 【注意Popup 、Dialog 等弹出层 都不是页面级别】\n if (Taro.getEnv() === Taro.ENV_TYPE.WEAPP && isPage) {\n Taro.nextTick(() => {\n initChart();\n });\n }\n });\n\n useEffect(() => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB || !isPage) {\n tripleDefer(() => {\n Taro.nextTick(() => {\n initChart();\n });\n });\n }\n }, []);\n\n useUnMount(() => {\n dispose();\n });\n\n useUpdateEffect(() => {\n if (\n !isEqual(prevProps?.theme, props.theme) ||\n !isEqual(prevProps?.opts, props.opts) ||\n !isEqual(prevProps?.onEvents, props.onEvents)\n ) {\n dispose();\n initChart(); // re-render\n return;\n }\n\n // update\n const pickKeys = [\n \"option\",\n \"notMerge\",\n \"lazyUpdate\",\n \"showLoading\",\n \"loadingOption\",\n ];\n if (!isEqual(pick(props, pickKeys), pick(prevProps, pickKeys))) {\n updateEChartsOption();\n }\n\n /**\n * resize: style 、className\n */\n if (\n !isEqual(prevProps?.style, props.style) ||\n !isEqual(prevProps?.className, props.className)\n ) {\n resize(canvasRef.current);\n }\n }, [props]);\n\n // 大小变化\n const resize = canvas => {\n const echartsInstance = echarts.getInstanceByDom(canvas);\n // 调整大小不应在第一次渲染时发生,因为它会取消初始 echarts 动画\n if (!isInitialResize) {\n try {\n echartsInstance.resize({\n width: \"auto\",\n height: \"auto\",\n });\n } catch (e) {\n console.warn(e);\n }\n }\n setIsInitialResize(false);\n };\n\n const initEchartsInstance = async ({\n width,\n height,\n devicePixelRatio,\n }: InitEchart) => {\n const { theme, opts } = props;\n return new Promise((resolve, reject) => {\n if (canvasRef.current) {\n chartRef.current = echarts.init(canvasRef.current, theme, {\n width,\n height,\n devicePixelRatio,\n ...opts,\n });\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB) {\n /**\n * echart同一个dom下多次动态渲染值,防止值、事件重复互相影响\n * 每次init之后,先dispose释放下资源,再重新init\n */\n const echartsInstance = echarts.getInstanceByDom(canvasRef.current);\n echartsInstance.on(\"finished\", () => {\n echarts.dispose(canvasRef.current);\n // 获取渲染后的width、height\n const newOpts = {\n width,\n height,\n devicePixelRatio,\n ...opts,\n };\n chartRef.current = echarts.init(canvasRef.current, theme, newOpts);\n resolve(chartRef.current);\n });\n } else {\n resolve(chartRef.current);\n }\n } else {\n // eslint-disable-next-line prefer-promise-reject-errors\n reject();\n }\n });\n };\n\n const updateEChartsOption = () => {\n /**\n * 官方文档:https://echarts.apache.org/zh/api.html#echartsInstance.setOption\n */\n const {\n option,\n notMerge = true, // 不跟之前设置的option合并,保证每次渲染都是最新的option\n lazyUpdate = false, // 设置完 option 后是否不立即更新图表,默认为 false,即同步立即更新。如果为 true,则会在下一个 animation frame 中,才更新图表\n showLoading,\n loadingOption = null,\n } = props;\n // 1. 获取echarts实例\n const echartInstance = echarts.getInstanceByDom(canvasRef.current);\n if (echartInstance) {\n // 2. 设置option\n echartInstance.setOption(option, notMerge, lazyUpdate);\n // 3. 显示加载动画效果\n if (showLoading) echartInstance.showLoading(loadingOption);\n else echartInstance.hideLoading();\n }\n\n return echartInstance;\n };\n\n // 绑定事件\n const bindEvents = (instance, events) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n function bindEvent(eventName, func) {\n if (isString(eventName) && isFunction(func)) {\n instance.on(eventName, param => {\n func(param, instance);\n });\n }\n }\n\n for (const eventName in events) {\n if (Object.prototype.hasOwnProperty.call(events, eventName)) {\n bindEvent(eventName, events[eventName]);\n }\n }\n };\n\n // 渲染图表\n const renderEcharts = async ({\n width,\n height,\n devicePixelRatio,\n }: InitEchart) => {\n const { onEvents, onChartReady } = props;\n // 1. 初始化图表\n await initEchartsInstance({\n width,\n height,\n devicePixelRatio,\n });\n // 2. 更新echarts实例\n const echartsInstance = updateEChartsOption();\n // 3. 绑定事件\n bindEvents(echartsInstance, onEvents || {});\n // 4. 图表渲染完成\n if (isFunction(onChartReady)) onChartReady?.(echartsInstance);\n\n // 5. resize\n if (canvasRef.current) {\n resize(canvasRef.current);\n }\n };\n\n // 销毁echarts实例\n const dispose = () => {\n if (chartRef.current) {\n echarts?.dispose(chartRef.current);\n }\n };\n\n // 初始化微信小程序图表\n const initWexinChart = () => {\n const query = Taro.createSelectorQuery();\n query\n .select(`#${canvasId}`)\n .fields({\n node: true,\n size: true,\n })\n .exec(res => {\n const [result] = res;\n if (result) {\n const { node, width, height } = result || {};\n const canvasNode = node;\n const canvasDpr = Taro.getSystemInfoSync().pixelRatio;\n const ctx = canvasNode.getContext(\"2d\");\n const canvas = new WxCanvas(ctx, true, canvasNode);\n echarts?.setCanvasCreator(() => {\n return canvas;\n });\n canvasRef.current = canvas as any;\n renderEcharts({\n width,\n height,\n devicePixelRatio: canvasDpr,\n });\n }\n });\n };\n\n // 初始化图表\n const initChart = () => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEB && canvasRef.current) {\n const width =\n props.style?.width ||\n canvasRef.current?.clientWidth ||\n window.innerWidth;\n const height =\n props.style?.height || canvasRef.current?.clientHeight || 300;\n renderEcharts({\n width,\n height,\n devicePixelRatio: window.devicePixelRatio,\n });\n } else {\n const version = Taro.getSystemInfoSync().SDKVersion || \"\";\n const canUseNewCanvas = compareVersion(version, \"2.9.0\") >= 0;\n if (canUseNewCanvas) {\n // console.log('微信基础库版本大于2.9.0,开始使用<canvas type=\"2d\"/>');\n // 2.9.0 可以使用 <canvas type=\"2d\"></canvas>\n initWexinChart();\n } else {\n console.error(\n `当前基础库为${version}, 微信基础库版本过低,需大于等于 2.9.0`\n );\n }\n }\n };\n\n useImperativeHandle(ref, () => ({ chartRef, canvasRef }));\n\n // container component\n const renderContainerComponent = useMemo(() => {\n if (Taro.getEnv() === Taro.ENV_TYPE.WEAPP) {\n return (\n // eslint-disable-next-line react/react-in-jsx-scope\n <Canvas\n ref={canvasRef}\n canvasId={canvasId}\n id={canvasId}\n style={canvasStyle}\n type=\"2d\"\n onTouchEnd={event => touchEnd({ chart: chartRef.current, event })}\n onTouchMove={event => touchMove({ chart: chartRef.current, event })}\n onTouchStart={event => touchStart({ chart: chartRef.current, event })}\n {...pick(props, canvasProps)}\n />\n );\n }\n // eslint-disable-next-line react/react-in-jsx-scope\n return (\n <View\n className=\"xh-echarts\"\n ref={canvasRef}\n id={canvasId}\n style={canvasStyle}\n />\n );\n }, [props, canvasProps, canvasId]);\n\n return renderContainerComponent;\n};\n\nexport default memo(forwardRef(Echarts));\n","import { useEffect } from \"react\";\n\nexport default function useUnMount(fn: () => void) {\n useEffect(() => fn, []);\n}\n","import { useEffect, useRef } from \"react\";\n\nexport default function usePrevious<T = unknown>(value) {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","import React, { CSSProperties, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport type { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type LoadingProps = {\n style?: CSSProperties & {\n \"--loading-border-color\"?: StandardLonghandProperties[\"color\"];\n \"--loading-border-width\"?: string;\n };\n size?: number;\n} & XHComponentCommonProps;\n\nconst Activityindicator: FC<LoadingProps> = ({\n className,\n style,\n size = 36,\n ...rest\n}) => {\n const cls = classNames(\"xh-activity-indicator\", className);\n\n let finalStyle = {\n ...style,\n ...rest,\n };\n if (size !== 36) {\n finalStyle = {\n ...finalStyle,\n width: pxTransform(size),\n height: pxTransform(size),\n };\n }\n\n return (\n <View className={cls} style={finalStyle}>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n <View className=\"xh-activity-indicator-main\"></View>\n </View>\n );\n};\n\nexport default Activityindicator;\n","import React, { ReactNode } from \"react\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type AmountInputProps = {\n space?: number;\n value: string;\n maxlength: number;\n onFocus?: (e) => void;\n unit?: string;\n slot?: ReactNode;\n shortcut?: ReactNode;\n errTip?: string;\n maxAmount?: number | string;\n minAmount?: number | string;\n showUpgrade?: boolean;\n onUpgrade?: () => void;\n loanOnekey?: () => void;\n placeholder?: string;\n focus?: boolean;\n /** 借款步长 */\n step?: number;\n showBottom?: boolean;\n title?: ReactNode;\n} & XHComponentCommonProps;\n\nconst AmountInput: React.FC<AmountInputProps> = props => {\n const {\n value,\n maxlength = value.length,\n onFocus,\n className,\n focus = false,\n shortcut = \"借全部\",\n step = 100,\n errTip = \"\",\n onUpgrade,\n minAmount,\n maxAmount,\n showUpgrade = false,\n loanOnekey = () => {},\n placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`,\n slot,\n showBottom = true,\n title = false,\n } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [\"\"];\n\n if (value === \"\")\n return (\n <View className=\"xh-amount-input-top-amount-num-placeholder\">\n {placeholder}\n </View>\n );\n for (let i = 0; i < maxlength; i++) {\n const char = value[i];\n Inputs.push(\n <View key={i} className=\"xh-amount-input-top-amount-num-key\">\n {char}\n </View>\n );\n }\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const cls = classNames(\"xh-amount-input\", className);\n\n const handleUpgrade = (e: ITouchEvent) => {\n e.stopPropagation();\n onUpgrade?.();\n };\n\n return (\n <View className={cls}>\n {title && <View className=\"xh-amount-input-title\">{title}</View>}\n <View className=\"xh-amount-input-top\">\n <View className=\"xh-amount-input-top-unit\">&yen;</View>\n <View className=\"xh-amount-input-top-amount\" onClick={handlerClick}>\n <View className=\"xh-amount-input-top-amount-num\">\n <View className=\"xh-amount-input-top-amount-num-key\">&nbsp;</View>\n {renderInputs()}\n <View\n className={classNames(\"xh-amount-input-top-amount-num-cursor\", {\n focus,\n })}\n ></View>\n </View>\n <View\n className=\"xh-amount-input-top-amount-shortcut\"\n onClick={loanOnekey}\n >\n {typeof shortcut === \"string\" ? (\n <View className=\"xh-amount-input-top-amount-shortcut-text\">\n {shortcut}\n </View>\n ) : (\n shortcut\n )}\n </View>\n </View>\n {errTip && <View className=\"xh-amount-input-top-error\">{errTip}</View>}\n </View>\n {slot && <View className=\"xh-amount-input-slot\">{slot}</View>}\n {showBottom && (\n <View className=\"xh-amount-input-bottom\">\n <View className=\"xh-amount-input-bottom-range\">\n 单笔可借:\n <View className=\"xh-amount-input-bottom-range-number\">\n {minAmount}-{maxAmount}元\n </View>\n </View>\n {showUpgrade && (\n <View className=\"xh-amount-input-bottom-tip\">\n 额度不满意?\n <View\n className=\"xh-amount-input-bottom-tip-update\"\n onClick={handleUpgrade}\n >\n 立即提额\n </View>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nexport default AmountInput;\n","import React, { FC } from \"react\";\nimport classNames from \"classnames\";\n\nimport Image from \"../../../src/components/Image\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type XHListProps = {\n code: string;\n size?: number;\n} & XHComponentCommonProps;\n\nconst BANKCARD_URL =\n \"https://s.xh1.cn/resources/images/bank/logo-2.0.0/placeholder.png\";\n\nconst XHBankIcon: FC<XHListProps> = props => {\n const { code, className, size } = props;\n\n const cls = classNames(\"xh-bank-icon\", className);\n\n return (\n <Image\n src={BANKCARD_URL.replace(\"placeholder\", code)}\n alt={code}\n width={size}\n height={size}\n className={cls}\n />\n );\n};\nexport default XHBankIcon;\n","import React, { FC, ReactNode } from \"react\";\nimport { View, Text, ITouchEvent } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { StandardLonghandProperties } from \"csstype\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type XHCellProps = {\n content?: ReactNode;\n contentDescription?: ReactNode;\n description?: ReactNode;\n subDescription?: ReactNode;\n paddingHorizontal?: boolean;\n icon?: ReactNode;\n value?: ReactNode;\n extraIcon?: ReactNode;\n border?: boolean;\n arrow?: boolean;\n outline?: boolean;\n onClick?: (e: ITouchEvent) => void;\n descriptionColor?: StandardLonghandProperties[\"color\"];\n valueColor?: StandardLonghandProperties[\"color\"];\n ellipsis?: boolean;\n placeholder?: string;\n alignItems?: \"start\" | \"center\" | \"end\";\n /**\n * @description 是否是次级列表\n */\n secondary?: boolean;\n} & XHComponentCommonProps;\n\nconst XHCell: FC<XHCellProps> = props => {\n const {\n icon,\n value,\n extraIcon,\n arrow,\n border = true,\n paddingHorizontal = true,\n onClick,\n className,\n outline = true,\n descriptionColor = \"\",\n valueColor,\n ellipsis = true,\n content,\n contentDescription,\n description,\n subDescription,\n secondary,\n alignItems = icon ? \"start\" : \"center\",\n placeholder = \"\",\n } = props;\n\n const cellcls = classNames(\n \"xh-cell\",\n { border },\n { secondary },\n { outline },\n { paddingHorizontal },\n alignItems,\n className\n );\n\n const mainCls = classNames(\"xh-cell-main\", {\n ellipsis,\n });\n\n const handleClick = (e: ITouchEvent) => {\n onClick && onClick(e);\n };\n\n return (\n <View className={cellcls} onClick={handleClick}>\n {icon && <View className=\"xh-cell-icon\">{icon}</View>}\n <View className={mainCls}>\n {content && <View className=\"xh-cell-main-content\">{content}</View>}\n {contentDescription && (\n <View className=\"xh-cell-main-description\">{contentDescription}</View>\n )}\n </View>\n <View className=\"xh-cell-description\" style={{ color: descriptionColor }}>\n {description ? (\n <View>{description}</View>\n ) : (\n <View className=\"xh-cell-description-placeholder\">{placeholder}</View>\n )}\n <Text className=\"xh-cell-description-sub\">{subDescription}</Text>\n </View>\n <View className=\"xh-cell-value\">\n <View className=\"xh-cell-value-info\" style={{ color: valueColor }}>\n {value}\n </View>\n <View className=\"xh-cell-value-icon\">\n {extraIcon\n ? extraIcon\n : arrow && <View className=\"xh-cell-value-icon-arrow\" />}\n </View>\n </View>\n </View>\n );\n};\nexport default XHCell;\n","import React, { PropsWithChildren, ReactNode, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport type { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\ntype OptionType =\n | {\n label?: string;\n value?: string;\n disabled?: boolean;\n [key: string]: any;\n }\n | string;\n\ninterface CheckboxProps<T>\n extends PropsWithChildren<{}>,\n XHComponentCommonProps {\n option: T[];\n fill?: boolean;\n label?: ReactNode;\n onChange: (item: T) => void;\n defaultValue?: T;\n style?: React.CSSProperties;\n border?: boolean;\n /**\n * paddingHorizontal 横向间距\n */\n paddingHorizontal?: boolean;\n}\n\nconst CheckboxButton = <T extends OptionType = string>(\n props: CheckboxProps<T>\n) => {\n const {\n option,\n onChange,\n defaultValue = \"\",\n label,\n fill = false,\n className,\n style,\n border = true,\n paddingHorizontal = true,\n } = props;\n const [selectedValue, setSelectedValue] = useState(\n typeof defaultValue === \"string\" ? defaultValue : defaultValue.value\n );\n\n const clickHandle = (item: T) => {\n setSelectedValue(typeof item === \"string\" ? item : item.value);\n onChange(item);\n };\n\n return (\n <View\n className={classNames(\"xh-checkbox-button\", className, {\n border,\n paddingHorizontal,\n })}\n style={style}\n >\n {label && <View className=\"xh-checkbox-button-label\">{label}</View>}\n <View className=\"xh-checkbox-button-options\">\n {option.map((item, index) => {\n return (\n <View\n key={index}\n className={classNames(\"xh-checkbox-button-options-item\", {\n active:\n typeof item === \"string\"\n ? item === selectedValue\n : item.value === selectedValue,\n fill,\n })}\n onClick={() => {\n clickHandle(item);\n }}\n >\n <p className=\"xh-checkbox-button-options-item-label\">\n {typeof item === \"string\" ? item : item.label}\n </p>\n </View>\n );\n })}\n </View>\n </View>\n );\n};\n\nexport default CheckboxButton;\n","import React, { ReactNode, useMemo, useRef, useState } from \"react\";\nimport List from \"@/components/List\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport type { XHListProps } from \"../List\";\n\nimport \"./index.scss\";\n\nexport type CollapseProps = {\n summary?: string | ReactNode;\n open?: boolean;\n style?: React.CSSProperties;\n onToggle?: (open: boolean) => void;\n} & XHListProps;\n\nconst Collapse: React.FC<CollapseProps> = props => {\n const {\n summary = \"\",\n children,\n open = false,\n arrow,\n className,\n style,\n onToggle,\n ...rest\n } = props;\n const detailRef = useRef<HTMLDivElement>(null);\n const [innerOpen, setInneropen] = useState(open);\n const handleOnchange = () => {\n setInneropen(old => !old);\n };\n\n const detailStyle = useMemo(() => {\n const style: React.CSSProperties = { height: 0 };\n if (innerOpen)\n style.height =\n process.env.TARO_ENV === \"h5\"\n ? `${detailRef.current?.scrollHeight}px`\n : \"auto\";\n process.env.TARO_ENV === \"h5\" &&\n innerOpen &&\n detailRef.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n inline: \"nearest\",\n });\n onToggle?.(innerOpen);\n return style;\n }, [innerOpen]);\n\n return (\n <View className={classNames(\"xh-collapse\", className)} style={style}>\n <View\n className={classNames(\"xh-collapse-summary\", { open: innerOpen })}\n onClick={handleOnchange}\n >\n {summary || <List {...rest} arrow />}\n </View>\n <View\n className={classNames(\"xh-collapse-detail\")}\n ref={detailRef}\n style={detailStyle}\n >\n {children}\n </View>\n </View>\n );\n};\n\nexport default Collapse;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { View } from \"@tarojs/components\";\n\nimport \"./index.scss\";\n\nexport type CountdownProps = {\n expireDate: string | number;\n overTimeCb?: () => void; // 倒计时结束的回调\n customStyle?: boolean;\n isPause?: boolean; // 倒计时是否暂停\n onTimeChange?: (distance: number) => void;\n};\n\nconst Countdown: React.FC<CountdownProps> = props => {\n const {\n expireDate,\n overTimeCb,\n customStyle = false,\n isPause = false,\n onTimeChange,\n } = props;\n const [hour, setHour] = useState(\"\");\n const [min, setMin] = useState(\"\");\n const [sec, setSec] = useState(\"\");\n const [showTime, setShowTime] = useState(false);\n const timer = useRef<any>(null);\n\n let counttime: number = 0;\n\n const countdown = () => {\n let h;\n let m;\n let s;\n\n const endTime: number = new Date(expireDate).getTime();\n let nowTime = Date.now();\n const distance = endTime - nowTime;\n /** 剩余时间 */\n onTimeChange && onTimeChange(distance);\n\n counttime = Math.floor(distance / 1000);\n\n /** 截止时间过期,不展示倒计时 */\n if (counttime <= 0) {\n setShowTime(false);\n clearInterval(timer.current);\n overTimeCb?.();\n return;\n }\n setShowTime(true);\n\n // 秒\n s = counttime % 60;\n s = s < 10 ? \"0\" + s : s;\n setSec(s);\n // 分\n m = Math.floor((counttime / 60) % 60);\n m = m < 10 ? \"0\" + m : m;\n setMin(m);\n // 小时\n h = Math.floor(counttime / 60 / 60);\n h = h < 10 ? \"0\" + h : h;\n setHour(h);\n };\n\n useEffect(() => {\n // 调用setInterval()方法:间隔指定的毫秒数不停地执行\n clearInterval(timer.current);\n if (expireDate && !isPause) {\n timer.current = setInterval(() => {\n countdown();\n }, 1000);\n }\n return () => {\n clearInterval(timer.current);\n };\n }, [expireDate, isPause]);\n\n return (\n <React.Fragment>\n {showTime &&\n (customStyle ? (\n <React.Fragment>\n {hour}:{min}:{sec}\n </React.Fragment>\n ) : (\n <View className=\"xh-countdown\">\n <View className=\"xh-countdown-time\">{hour}</View>\n <View className=\"xh-countdown-dot\">:</View>\n <View className=\"xh-countdown-time\">{min}</View>\n <View className=\"xh-countdown-dot\">:</View>\n <View className=\"xh-countdown-time\">{sec}</View>\n </View>\n ))}\n </React.Fragment>\n );\n};\nexport default Countdown;\n","import React, { ReactNode, useEffect, useRef, useState, useMemo } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@tarojs/taro\";\nimport { Property } from \"csstype\";\nimport Icon from \"../Icon\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type RemindProps = {\n content: string[] | ReactNode[];\n internal?: number; // 轮播间隔,毫秒\n duration?: number; // 动画时长,毫秒\n icon?: ReactNode | boolean; // 支持传入 ReactNode 或布尔值控制默认图标\n itemHeight?: number; // 单个轮播项的高度,px,默认为 72\n bgColor?: Property.BackgroundColor;\n} & XHComponentCommonProps;\n\nconst Notice: React.FC<RemindProps> = props => {\n const {\n content: originalContent,\n internal = 3000,\n duration = 500,\n icon = false,\n itemHeight = 72, // 使用默认值 72\n className,\n } = props;\n\n // 使用 useMemo 缓存扩展内容数组,用于无缝轮播\n const content = useMemo(() => {\n return originalContent.length > 0\n ? [...originalContent, originalContent[0]]\n : [];\n }, [originalContent]);\n\n const internalRef = useRef<any>(null);\n const timeoutRef = useRef<any>(null);\n const [currentIndex, setCurrentIndex] = useState(0);\n const [transitionDuration, setTransitionDuration] = useState(duration);\n\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (internalRef.current) clearInterval(internalRef.current);\n\n internalRef.current = setInterval(() => {\n setCurrentIndex(prevIndex => {\n const nextIndex = prevIndex + 1;\n // 正常轮播到下一项,如果下一项是副本,会在下面的 useEffect 中处理瞬移\n return nextIndex;\n });\n }, internal);\n\n return () => {\n internalRef.current && clearInterval(internalRef.current);\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [content.length, internal]); // 依赖 content.length 和 internal\n\n // 处理到达副本项后的瞬移\n useEffect(() => {\n if (content.length <= 1) return; // 内容少于等于一项无需轮播\n\n if (currentIndex === content.length - 1 && transitionDuration !== 0) {\n // 当准备轮播到最后一个(副本前一个)时,设置一个延时,在动画即将完成时瞬间跳跃\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(0); // 关闭动画\n setCurrentIndex(0); // 瞬移到第一个\n }, duration); // 延时等于动画时长,等待动画完成再跳\n } else if (currentIndex === 0 && transitionDuration === 0) {\n // 当已经瞬移回第一个后,在一个极短的延迟后恢复动画时长\n timeoutRef.current = setTimeout(() => {\n setTransitionDuration(duration); // 恢复动画\n }, 50); // 极短延迟,确保样式已应用\n }\n\n return () => {\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, [currentIndex, content.length, duration, transitionDuration]);\n\n const cls = classNames(\"xh-notice\", className);\n\n return (\n <View className={cls}>\n {typeof icon === \"boolean\" && icon ? (\n <Icon icon=\"notice\" color=\"#7384F6\" size={32} />\n ) : (\n icon\n )}\n <div\n className=\"xh-notice-main\"\n style={{\n transform: `translateY(${pxTransform(-currentIndex * itemHeight)})`, // 使用 itemHeight\n transitionDuration: `${transitionDuration}ms`,\n transitionTimingFunction: \"ease-in-out\", // 可以根据需要调整缓动函数\n }}\n >\n {content.map((item, index) => (\n // key 使用 index 在这里是安全的,因为我们只是通过 index 来计算 transform\n // 即使内容相同,每个 View 元素在逻辑上是不同的轮播项(包括副本)\n <View className=\"xh-notice-main-marquee\" key={index}>\n {item}\n </View>\n ))}\n </div>\n </View>\n );\n};\n\nexport default Notice;\n","import React, { FC, ReactNode } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classname from \"classnames\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\nimport Loading, { LoadingProps } from \"../Loading\";\nimport NavBar from \"../NavBar\";\n\nexport interface PageProps extends XHComponentCommonProps {\n loading?: boolean;\n mask?: LoadingProps[\"mask\"];\n tip?: ReactNode;\n loadingColor?: string;\n /**\n * @supported 小程序\n * @default false\n */\n customNavBar?: boolean;\n onBack?: () => void;\n title?: string;\n leftIcon?: boolean;\n rightIcon?: ReactNode;\n navBarBorder?: boolean;\n}\n\nconst Page: FC<PageProps> = props => {\n const {\n children,\n loading = false,\n className = \"\",\n mask = \"normal\",\n tip = \"加载中\",\n loadingColor = \"#FFF\",\n customNavBar = false,\n title = \"\",\n ...rest\n } = props;\n\n const classObj = classname(\"xh-page\", className, {\n flex: process.env.TARO_ENV !== \"h5\" && customNavBar,\n });\n\n return (\n <View className={classObj}>\n {process.env.TARO_ENV !== \"h5\" && customNavBar && (\n <NavBar title={title} {...rest} />\n )}\n {loading && (\n <View className=\"loading-wrapper\">\n <Loading mask={mask} tip={tip} color={loadingColor} />\n </View>\n )}\n {customNavBar && process.env.TARO_ENV !== \"h5\" ? (\n <View className=\"xh-page-content\">{children}</View>\n ) : (\n children\n )}\n </View>\n );\n};\n\nexport default Page;\n","import React, { FC, ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { ITouchEvent, View } from \"@tarojs/components\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type PasswordInputProps = {\n value: string;\n length: number;\n mask?: boolean;\n onFocus?: (e) => void;\n} & XHComponentCommonProps;\n\nconst PasswordInput: FC<PasswordInputProps> = (props) => {\n const { value, length, mask = true, onFocus, className } = props;\n\n function renderInputs(): ReactNode {\n const Inputs: any = [];\n\n for (let i = 0; i < length; i++) {\n const char = value[i];\n\n Inputs.push(\n <View key={i} className=\"xh-password-input-item\">\n {mask ? (\n <View className={classNames({ \"xh-password-input-mask\": char })} />\n ) : (\n char\n )}\n </View>\n );\n }\n\n return Inputs;\n }\n\n function handlerClick(e: ITouchEvent): void {\n e.stopPropagation();\n onFocus && onFocus(e);\n }\n const xhpasswordcls = classNames(\"xh-password-input\", className);\n\n return (\n <View className={xhpasswordcls}>\n <View className=\"xh-password-input-list\" onClick={handlerClick}>\n {renderInputs()}\n </View>\n </View>\n );\n};\n\nexport default PasswordInput;\n","import React, {\n useState,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport classNames from \"classnames\";\nimport Picker from \"./Picker\";\nimport type { PickerValue, PickerProps, PickerOption } from \"./Picker\";\nimport \"./index.scss\";\n\nexport type PickerDataType = PickerValue;\nexport type PickerDataOptionType = PickerOption;\nexport interface PickerFieldProps<T extends PickerValue>\n extends PropsWithChildren<PickerProps> {\n title?: ReactNode | string;\n data: T[] | T[][];\n className?: string;\n onConfirm?: (value: T[], index: number) => void;\n}\n\nconst PickerField = <T extends PickerValue>(\n props: PickerFieldProps<T>\n): ReactElement => {\n const { className, children, onCancel, ...rest } = props;\n const [visible, setVisible] = useState(false);\n\n function handleClick(): void {\n if (rest.data.length <= 0) return;\n setVisible(true);\n }\n\n function handleClose(): void {\n setVisible(false);\n onCancel?.();\n }\n\n return (\n <div\n className={classNames(\"xh-picker-field\", className)}\n onClick={handleClick}\n >\n {children}\n <Picker\n visible={visible}\n onCancel={handleClose}\n onClose={handleClose}\n {...rest}\n />\n </div>\n );\n};\n\nexport default PickerField;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@tarojs/taro\";\nimport type { StandardLonghandProperties } from \"csstype\";\n\nimport { XHComponentCommonProps } from \"../../types\";\n\nimport \"./index.scss\";\n\nexport type ProgressProps = {\n percent: number;\n showPercent?: boolean;\n doneColor?: string;\n percentColor?: string;\n height?: number;\n /**\n * @description 百分比,不要百分号\n */\n dots?: number[];\n /**\n * 苗条模式\n */\n solid?: boolean;\n backgroundColor?: StandardLonghandProperties[\"color\"];\n} & XHComponentCommonProps;\n\nconst Progress: React.FC<ProgressProps> = props => {\n const {\n percent = 88,\n className,\n showPercent = false,\n doneColor = \"\",\n percentColor = \"\",\n height = 28,\n dots = [],\n solid = false,\n backgroundColor = \"\",\n } = props;\n const progresslcs = classNames(\"xh-progress\", className, {\n dots: dots.length > 0,\n });\n\n const showPercentcls = classNames(\n \"progress-bar\",\n { dots: dots.length > 0 },\n { solid },\n { h5: process.env.TARO_ENV === \"h5\" }\n );\n const showbarPercentcls = classNames(\"progress-bar-percent\", { solid });\n return (\n <View\n className={progresslcs}\n style={{\n height: height && pxTransform(height),\n }}\n >\n <View\n className={classNames(\"progress\", { solid })}\n style={{ backgroundColor }}\n >\n {dots.length > 0 ? (\n <React.Fragment>\n {dots.map(item => (\n <View\n style={{\n width: `${item}%`,\n }}\n key={item}\n data-progress={item}\n className={showPercentcls}\n >\n {process.env.TARO_ENV !== \"h5\" && (\n <View className=\"progress-bar-text\">{item}%</View>\n )}\n </View>\n ))}\n <View className=\"progress-cover\" style={{ width: `${percent}%` }} />\n </React.Fragment>\n ) : (\n <View\n style={{\n width: `${percent}%`,\n backgroundColor: doneColor,\n color: percentColor,\n }}\n className={showPercentcls}\n >\n {showPercent && (\n <View className={showbarPercentcls}>{`${percent}%`}</View>\n )}\n </View>\n )}\n </View>\n </View>\n );\n};\n\nexport default Progress;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { View } from \"@tarojs/components\";\nimport { pxTransform } from \"@/utils\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nexport type ProgressProps = {\n percent: number;\n // showPercent?: boolean;\n doneColor?: string;\n size?: number;\n backgroundColor?: string;\n maskColor?: string;\n style?: React.CSSProperties;\n text?: React.ReactNode;\n} & XHComponentCommonProps;\n\nconst Progress: React.FC<ProgressProps> = props => {\n const {\n percent = 88,\n className,\n // showPercent = false,\n doneColor = \"#DDD\",\n backgroundColor = \"rgba(0,0,0, 0.25)\",\n maskColor = \"#FFF\",\n size,\n style,\n text,\n } = props;\n const progresslcs = classNames(\"xh-progress-circle\", className);\n\n const finalSize: React.CSSProperties = size\n ? {\n width: pxTransform(size),\n height: pxTransform(size),\n }\n : {};\n\n const done = percent === 100;\n\n const finalStyle = {\n ...finalSize,\n \"--percent\": `${percent / 100}turn`,\n \"--doneColor\": doneColor,\n \"--backgroundColor\": backgroundColor,\n \"--maskContent\": \"percent\",\n \"--maskColor\": maskColor,\n ...style,\n };\n\n return (\n <View className={progresslcs} style={finalStyle}>\n {text ? (\n <View className=\"xh-progress-circle-text\">{text}</View>\n ) : done ? (\n <View className=\"xh-progress-circle-done\"></View>\n ) : null}\n </View>\n );\n};\n\nexport default Progress;\n","import React, { useState } from \"react\";\nimport { View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport { pxTransform } from \"@/utils\";\n\nimport \"./index.scss\";\n\ntype RankProps = {\n defalutScore?: number;\n onChange: (rank: number) => void;\n max?: number;\n size?: number;\n tip?: string;\n style?: React.CSSProperties & {\n \"--color-primary\": string;\n };\n};\n\nconst Rank: React.FC<RankProps> = props => {\n const {\n defalutScore = -1,\n onChange,\n max = 5,\n size = 0,\n tip = \"轻点星形以评分\",\n style = {},\n } = props;\n const [score, setScore] = useState(defalutScore);\n\n const selectRank = (index: number) => {\n setScore(index);\n onChange?.(index + 1);\n };\n\n return (\n <View\n className={classNames(\"xh-rank\")}\n style={size ? { fontSize: pxTransform(size), ...style } : { ...style }}\n >\n <View className=\"xh-rank-tip\">{tip}</View>\n <View className=\"xh-rank-star\">\n {Array(max)\n .fill(1)\n .map((_item, index) => (\n <View\n key={index}\n className={classNames(\"xh-rank-star-active\", {\n active: index <= score,\n })}\n onClick={() => selectRank(index)}\n ></View>\n ))}\n </View>\n </View>\n );\n};\n\nexport default Rank;\n","import { View } from \"@tarojs/components\";\nimport React, { ReactNode, useMemo, useState } from \"react\";\nimport classNames from \"classnames\";\n\nimport \"./index.scss\";\nimport { XHComponentCommonProps } from \"../../types\";\n\nexport type SwitchProps = {\n checked?: boolean;\n checkedText?: ReactNode;\n uncheckedText?: ReactNode;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n} & XHComponentCommonProps;\n\nconst Switch: React.FC<SwitchProps> = props => {\n const {\n checked = false,\n checkedText = \"\",\n uncheckedText = \"\",\n onChange,\n className,\n disabled,\n } = props;\n\n const [innerChecked, setInnerChecked] = useState(checked);\n\n const handleCheckedChange = () => {\n if (disabled) return;\n setInnerChecked(old => {\n onChange?.(!old);\n return !old;\n });\n };\n\n const checkedInner = useMemo(() => {\n if (innerChecked) return checkedText;\n return uncheckedText;\n }, [innerChecked, checkedText, uncheckedText]);\n\n return (\n <View\n className={classNames(\n \"xh-switch\",\n { checked: innerChecked },\n { disabled },\n className\n )}\n onClick={handleCheckedChange}\n >\n <View className=\"xh-switch-control\"></View>\n <View className=\"xh-switch-inner\">{checkedInner}</View>\n </View>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { showToast } from \"@tarojs/taro\";\nimport ToastComponent, { ToastProps } from \"./Toast\";\nimport \"./index.scss\";\n\nasync function Toast(\n message: string | number,\n duration?: number\n): Promise<void>;\nasync function Toast(props: ToastProps): Promise<void>;\nasync function Toast(\n arg: string | number | ToastProps,\n ...rest\n): Promise<void> {\n let defalutParam = {\n title: \"\",\n duration: 3000,\n mask: true,\n };\n if (typeof arg === \"string\" || typeof arg === \"number\") {\n defalutParam.title = `${arg}`;\n if (rest.length) {\n defalutParam.duration = rest[0];\n }\n } else {\n defalutParam = {\n ...defalutParam,\n ...arg,\n };\n }\n return new Promise(resolve => {\n if (process.env.TARO_ENV === \"h5\") {\n const div = document.createElement(\"div\");\n\n const timer = setTimeout(() => {\n ReactDOM.unmountComponentAtNode(div);\n clearTimeout(timer);\n resolve();\n }, defalutParam.duration);\n const { title, ...other } = defalutParam;\n ReactDOM.render(<ToastComponent title={title} {...other} />, div);\n } else {\n showToast({\n icon: \"none\",\n ...defalutParam,\n }).then(res => {\n if (res.errMsg === \"showToast:ok\") {\n const timer = setTimeout(() => {\n clearTimeout(timer);\n resolve();\n }, defalutParam.duration);\n }\n });\n }\n });\n}\n\nexport default Toast;\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__read","o","m","r","ar","error","__spreadArray","to","from","pack","l","Array","slice","concat","SuppressedError","flexGapSupported","DotJump","props","style","_a","space","React","className","createElement","height","viewBox","verticalAlign","stroke","strokeWidth","fill","fillRule","transform","map","key","x","width","rx","attributeName","dur","begin","repeatCount","values","keyTimes","XhButton","disabled","_b","type","_c","size","_d","shape","children","htmlType","formType","text","openType","lang","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","appParameter","onGetUserInfo","onGetPhoneNumber","onOpenSetting","onError","onContact","onClick","_e","preventTime","loading","loadingStyle","loadingSpace","_f","ghost","_g","hollow","state","useState","taroEnv","setTaroEnv","useEffect","getEnv","useTaroEnv","_h","preventClick","setPreventClick","timer","useRef","classObj","classNames","default","primary","secondary","warn","quare","round","rectangle","normal","small","full","webutton","handleClick","nativeEvent","stopImmediatePropagation","preventDefault","current","setTimeout","clearTimeout","weButton","Button","undefined","Mask","closeOnClickMask","mask","cls","View","Loading","tip","hasTip","isMiniProgramIos","process","env","TARO_ENV","getSystemInfoSync","platform","NavBar","leftIcon","rightIcon","title","onBack","navBarBorder","navBarHeight","statusBar","buttonRight","navInfo","setNavinfo","getMenuButtonBoundingClientRect","top_1","top","right","statusBarHeight","screenWidth","useCustomNavBar","wrapStyle","paddingTop","backStyle","left","NavBarCls","h5","border","hidden","navigateBack","Text","isAndroid","inputRange","val","replace","pxTransform","designWidth","Math","ceil","parseInt","toArray","option","ret","Children","forEach","child","object","keepEmpty","isArray","$$typeof","for","creditCard","cardNum","newCardNum","verifyIdcard","idcard","substr","test","S","charAt","toUpperCase","isFunction","isEqual","keysX","keys","keysY","keysX_1","__values","keysX_1_1","pick","obj","idCounter","replaceCharByIndex","str","index","substring","XHImage","src","rest","defaultSize","setDefaultSize","getImageInfo","success","res","errMsg","useMemo","computedSize","imgCls","Image","CountdownButton","forwardRef","fromRef","timeout","ingText","onEnd","intervalRef","time","setTime","setDisabled","reset","clearInterval","useImperativeHandle","counter","beginning","buttonText","now","Date","nowStamp","setInterval","overTimeStamp","leftTime","max","floor","classnames","promise","catch","FormInput","formRef","onChange","maxlength","placeholder","labelHtml","RightComponent","onBlur","pattern","LeftComponent","LeftIcon","name","readonly","withArrow","direction","mainExtra","padding","align","password","handleChange","inputValue","target","handleBlur","inputRef","focus","wrapperCls","column","dangerouslySetInnerHTML","__html","Input","ref","onInput","maxLength","XHList","description","icon","extra","extraIcon","arrow","outline","condensed","descriptionColor","_j","extraColor","_k","ellipsis","_l","listcls","mainCls","color","_extends","bind","source","_objectWithoutPropertiesLoose","excluded","sourceKeys","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","b","c","d","h","k","q","w","z","a","u","A","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","exports","isAsyncMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","module","require$$0","require$$1","propIsEnumerable","toObject","objectAssign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","join","test3","split","letter","err","shouldUseNative","symbols","has","Function","printWarning","ReactPropTypesSecret","loggedTypeFailures","message","Error","checkPropTypes","typeSpecs","location","componentName","getStack","typeSpecName","ex","stack","resetWarningCache","emptyFunctionThatReturnsNull","emptyFunction","emptyFunctionWithReset","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","ReactIs","instanceOf","expectedClass","expectedClassName","node","isNode","objectOf","propType","oneOf","expectedValues","validate","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shapeTypes","invalidValidatorError","exact","allKeys","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","console","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","entries","entry","RegExp","isSymbol","PropTypes","shim","getShim","require$$2","replaceClassName","origClass","classToRemove","config","timeoutsShape","enter","exit","appear","classNamesShape","active","enterDone","enterActive","exitDone","exitActive","TransitionGroupContext","createContext","Transition","_React$Component","context","_this","initialStatus","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","getDerivedStateFromProps","_ref","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","setState","_this2","appearing","_ref2","nodeRef","ReactDOM","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","render","_this$props","childProps","Provider","cloneElement","only","Component","noop","contextType","propTypes","ownerDocument","defaultView","pt","_len","args","_key","defaultProps","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition$1","_addClass","classes","classList","add","contains","baseVal","hasClass","setAttribute","removeClass","remove","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","scrollTop","_this$appliedClasses$","base","CSSTransition$1","DialogCom","header","content","footer","visible","selfVisible","setSelfVisible","close","dialogcls","microApp","dialogContent","headless","DialogMain","createPortal","document","Dialog","DialogComponent","alert","confirmText","div_1","dialogRef","createRef","alertFooter","unmountComponentAtNode","showModal","showCancel","confirmColor","confirm","cancelText","cancelColor","ToastCom","image","toastcls","none","showIcon","onConfirm","onCancel","onClose","portrait","tranparent","fancy","open","show","dialogFooter","TabItem","TabItemComponent","XHTabs","animated","lineColor","titleActiveColor","titleInctiveColor","selectIndex","tabWdith","setTabWdith","tabContentHeight","setTabContentHeight","tabSlotHeight","setTabSlotHeight","itemNavRef","itemContentRef","itemSlotRef","query","createSelectorQuery","selectAll","boundingClientRect","exec","el","rect","getBoundingClientRect","elSlot","elitem","background","WebkitTransform","Item","TabBar","TabBarComponent","TabBarItem","Animated","inProp","Slide","Fade","positionMap","bottom","Popup","position","preventSTH","stopPropagation","handleClickOnMask","touchAction","addEventListener","overflowY","removeEventListener","minicls","PickerSlot","keyIndex","defaultValue","mode","swipeDuration","touch","startX","SetStartX","startY","SetStartY","moveX","SetMoveX","moveY","SetMoveY","deltaX","SetDeltaX","deltaY","SetDeltaY","offsetX","SetOffsetX","offsetY","SetOffsetY","SetDirection","move","touches","dX","clientX","dY","clientY","abs","getDirection","start","isVertical","isHorizontal","useTouch","currIndex","setCurrIndex","lineSpacing","touchTime","setTouchTime","touchDeg","setTouchDeg","moving","listbox","rollerRef","pickerSlotRef","startTime","setStartTime","setStartY","transformY","scrollDistance","setScrollDistance","isHidden","setTransform","translateY","deg","nTime","setMove","updateMove","endMove","currentDeg","maxDeg","min","setChooseValue","momentum","distance","duration","nDistance","modifyStatus","item","idx","stopMomentum","isStopPropagation","cancelable","onTouchStart","onTouchMove","onTouchEnd","moveTime","transition","lineHeight","Picker","defaultValueData","onCloseUpdate","chooseValueData","setchooseValueData","columnIndex","setcolumnIndex","pickerRef","refs","setRefs","useCallback","useRefs","columnsList","setColumnsList","isConfirmEvent","toString","data_1","normalListData","selectedOptions","init","closeActionSheet","movings","optins","currOptions","filter","chooseItem","columnsType","cursor","cdata","formatCascade","firstColumn","columns","defaultValues","formatted","options","findIndex","columnItem","normalData","perItem","useFlexGapSupport","flexible","setFlexible","flex","display","flexDirection","rowGap","appendChild","scrollHeight","removeChild","detectFlexGapSupported","ConfigContext","getPrefixCls","suffixCls","marginDirection","wrap","useContext","SpaceContext","horizontalSize","verticalSize","latestIndex","marginBottom","paddingBottom","supportFlexGap","spaceSize","large","XHSpace","directionConfig","otherProps","getNumberSize","childNodes","mergedAlign","prefixCls","cn","itemClassName","nodes","spaceContext","gapStyle","flexWrap","columnGap","getUrls","urls","settings","mimeType","onBeforeSend","onSuccess","onComplete","urlArray","urlQueue","isValidCss","isString","isHTML","trim","xhr","urlIndex","responseText","returnVal","parser","url","href","Boolean","all","window","atob","host","protocol","xdr","XDomainRequest","onprogress","ontimeout","onload","onerror","send","XMLHttpRequest","overrideMimeType","onreadystatechange","readyState","getCssData","regex","rootElement","include","exclude","skipDisabled","useCSSOM","sourceNodes","querySelectorAll","elm","selector","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","cssArray","handleComplete","reduce","skipIndices","reverse","skipIndex","arr","splice","cssText","handleSuccess","cssIndex","sourceUrl","resolveImports","resolvedCssText","errorData","parseImportData","baseUrl","ignoreRules","importData","rules","match","rule","absoluteUrls","getFullUrl$1","absoluteRules","oldUrl","newUrl","callbackFn","__errorData","__errorRules","responseImportData","responseArray","importText","linkHref","getAttribute","linkRel","isLink","nodeName","toLowerCase","isSkip","isStyle","decodeURIComponent","sheet","cssRules","_cssText","textContent","implementation","createHTMLDocument","head","baseURI","querySelector","balancedMatch","balanced","maybeMatch","range","end","pre","post","reg","begs","beg","ai","bi","parseCss","css","defaults","preserveStatic","removeComments","errors","msg","re","whitespace","comment","comments","cmnts","selectorItems","_selector","hasCommaInQuotes","declaration","at_rule","comment_regexp","prop","property","declarations","decls","keyframe","vals","at_keyframes","vendor","frame","frames","keyframes","at_page","selectors","at_page_margin_box","at_fontface","at_supports","supports","at_host","at_media","media","at_custom_m","at_document","at_x","hasVarFunc","some","decl","balancedMatch$1","hasVarDecl","sel","core","stylesheet","parseVars","cssData","parseHost","store","onWarning","reVarDeclSelectors","stringifyCss","tree","delim","cb","renderMethods","charset","visit","import","namespace","page","buf","txt","walkCss","fn","transformCss","preserveVars","variables","VAR_FUNC_IDENTIFIER","resolvedValue","resolveValue","fixNestedCalc","newVal","__recursiveFallback","valueData","resolveFunc","fallback","replacement","unresolvedFallback","isEmptyVarFunc","isBrowser","isNativeSupport","CSS","counters","group","job","shadowDOM","onlyLegacy","silent","updateDOM","updateURLs","watch","onFinally","cssComments","cssKeyframes","cssMediaQueries","cssUrls","cssVarDeclRules","cssVarDecls","cssVarFunc","cssVars","variableStore","dom","user","cssVarsIsRunning","cssVarsObserver","cssVarsSrcNodeCount","debounceTimer","isShadowDOMReady","handleError","sourceNode","handleWarning","handleFinally","hasChanged","getTimeStamp","__benchmark","addMutationObserver","disconnect","cssVarsDebounced","srcNodes","fixVarNames","srcNode","hasStyleCache","__cssVars","hasStyleChanged","outNodes","outNode","dataGroup","parentNode","hasVarChange","targetElm","documentElement","varValue","getComputedStyle","getPropertyValue","setProperty","shadowRoot","nodeArray","responseUrl","responseURL","getFullUrl","statusText","isStyleImport","fixRelativeCssUrls","currentVars","nodeCSS","cssTree","resetCssNodes","outCssArray","outNodeArray","hasKeyframesWithVars","outCss","hasCSSVarFunc","outCssNoSpaces","hasAttribute","removeAttribute","insertBefore","nextSibling","elms","shadowSettings","fixKeyframes","parse","evt","isDisabled","isDisabledAttr","isDisabledSheet","MutationObserver","mutations","mutation","isValid","isEnabledMutation","isHrefMutation","isSkipNode","isSrcNode","isValidAttributeMutation","isStyleElm","isOutNode","isValidStyleTextMutation","addedNodes","hasAttr","nodeType","isStyleWithVars","isValidAddMutation","removedNodes","isElm","orphanNode","isValidRemoveMutation","observe","attributes","attributeFilter","childList","subtree","delay","animationNameProp","allNodes","keyframeNodes","nameMarker","len","offsetHeight","_i","nodeStyle","cssUrl","varObj","reLeadingHyphens","performance","getTime","resetDOMVariableStore","resetNodes","theme","ThemeContext","useGenerateId","id","prefix","finalId","setId","random","Icon","fixIcon","iconCls","finalStyle","fontSize","CheckBox","circle","justify","checked","iconColor","innerChecked","setInnerChecked","htmlFor","finalchecked","detail","defaultChecked","Group","checkboxStyle","getOpions","checkedItem","includes","newoption","newValue","Radio","resetChecked","eventCenter","on","off","radioStyle","inline","checkedClass","innerOptions","setInnerOptions","trigger","defaultIcon","XHStep","dashed","Steps","classString","Badge","XHAmountKeys","XHAmountKeysWithDot","ActionSheet","submitText","renderItem","ItemWrapper","onSubmit","showClose","justifyContent","innerVisible","setInnerVisible","selectedValue","handleCancel","handleSubmit","itemRender","checkValue","handleConfirm","innerShowClose","noTitle","noMarinTop","LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","defaultShowImportIcon","navigator","userAgent","XHAddLinMan","linkManNum","relations","onGetContacts","showImportIcon","onCheckRelation","onInputChange","needName","formData","setFormData","errMessage","setErrMessage","relationValue","validatePhone","phone","validateForm","validateCanSubmit","finalData","flag","canSubmit","setContacts","old","onFormBlur","validateDuplicate","currentIndex","currentItem","length_1","pass","onNameChange","onPhoneChange","onFormFocus","num","onFocus","tt","ImageMap","empty","fail","networkErr","wait","submitted","faceEmpty","LICENSEPLATE_PROVINCES","LICENSEPLATE_NUMBERS","LICENSEPLATE_LETTERS","specialArea","finalArea","LicensePlateKeyboard","closeOnClickSpace","closeText","onDelete","activeIndex","input","setInput","handleClose","handleKeyPress","newInput","handleDelete","keyboardcls","LicensePlateInput","showKeyboard","onFinish","autoScroll","setActiveIndex","setShowKeyboard","InputRef","scrollIntoView","behavior","xhLicensePlateCls","Inputs","char","showNew","LENGTH","handleKeyClick","renderInputs","Keyboard","neVal","nextChar","BankCardNumberInput","showScan","bankName","readOnly","onScan","slot","validateCardNumber","cardNo","tmp","total","gw","checkBankCard","XHFormInput","formatValue","useUpdateEffect","effect","deps","isFirst","isFirstMount","WxCanvas","ctx","isNew","canvasNode","chart","_initStyle","_initEvent","getContext","setChart","attachEvent","detachEvent","_initCanvas","zrender","util","$override","font","measureText","defineProperty","set","createRadialGradient","createCircularGradient","wxName","ecName","getZr","dispatch","zrX","zrY","get","wrapTouch","memo","echarts","isPage","pCanvasId","canvasId","canvasRef","chartRef","isInitialResize","setIsInitialResize","usePrevious","uniqueId","canvasProps","canvasStyle","useReady","Taro","ENV_TYPE","WEAPP","nextTick","initChart","WEB","dispose","opts","onEvents","pickKeys","updateEChartsOption","resize","canvas","echartsInstance","getInstanceByDom","initEchartsInstance","devicePixelRatio","newOpts","notMerge","lazyUpdate","showLoading","loadingOption","echartInstance","setOption","hideLoading","renderEcharts","onChartReady","instance","events","bindEvent","eventName","param","bindEvents","clientWidth","innerWidth","clientHeight","ver1","ver2","v1","v2","num1","num2","compareVersion","SDKVersion","select","fields","canvasDpr","pixelRatio","canvas_1","setCanvasCreator","renderContainerComponent","Canvas","changedTouches","processGesture","touchEnd","touchMove","touchStart","clonedElement","shortcut","errTip","onUpgrade","minAmount","maxAmount","showUpgrade","loanOnekey","showBottom","Number","MAX_SAFE_INTEGER","recommend","decimal","renderKeys","Space","marginLeft","amount","handleOnRecommand","delete","code","alt","paddingHorizontal","valueColor","contentDescription","subDescription","alignItems","cellcls","setSelectedValue","clickHandle","summary","onToggle","detailRef","innerOpen","setInneropen","detailStyle","block","List","expireDate","overTimeCb","customStyle","isPause","onTimeChange","hour","setHour","setMin","sec","setSec","showTime","setShowTime","counttime","countdown","originalContent","internal","itemHeight","internalRef","timeoutRef","setCurrentIndex","transitionDuration","setTransitionDuration","prevIndex","transitionTimingFunction","getKeys","loadingColor","customNavBar","classname","xhpasswordcls","setVisible","percent","showPercent","doneColor","percentColor","dots","solid","backgroundColor","progresslcs","showPercentcls","showbarPercentcls","maskColor","finalSize","defalutScore","score","setScore","_item","selectRank","desc","action","onAction","resultCls","hasSlot","checkedText","uncheckedText","checkedInner","arg","defalutParam","timer_1","other","ToastComponent","showToast","timer_2"],"mappings":"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"}