From 5aeec23280c120bd8a28454775e42fa3384bf6f0 Mon Sep 17 00:00:00 2001 From: qiqiboy Date: Wed, 24 Jul 2019 20:56:27 +0800 Subject: [PATCH] fix(Form): fix Form not update sometimes --- dist/react-formutil.cjs.development.js | 27 +++++++++++++++++++--- dist/react-formutil.cjs.development.js.map | 2 +- dist/react-formutil.cjs.production.js | 2 +- dist/react-formutil.esm.development.js | 27 +++++++++++++++++++--- dist/react-formutil.esm.development.js.map | 2 +- dist/react-formutil.esm.production.js | 2 +- dist/react-formutil.umd.development.js | 27 +++++++++++++++++++--- dist/react-formutil.umd.development.js.map | 2 +- dist/react-formutil.umd.production.js | 2 +- package.json | 2 +- src/Form.js | 6 ++--- src/utils.js | 21 +++++++++++++++++ 12 files changed, 103 insertions(+), 19 deletions(-) diff --git a/dist/react-formutil.cjs.development.js b/dist/react-formutil.cjs.development.js index 86f68dc..a59fca8 100644 --- a/dist/react-formutil.cjs.development.js +++ b/dist/react-formutil.cjs.development.js @@ -388,6 +388,27 @@ function parsePath() { return target; } } +function pathExist(scope, path) { + var pathWords = path.split(PATH_REGEXP).map(function (s) { + return s.trim(); + }).filter(function (item) { + return item !== ''; + }); + + for (var index = 0, len = pathWords.length; index < len; index++) { + var word = executeWord(pathWords[index]); + + if (word in scope) { + if (index + 1 === len) { + return { + data: scope[word] + }; + } + + scope = scope[word]; + } + } +} function createRef(ref, value) { if (ref) { if (isFunction(ref)) { @@ -738,10 +759,10 @@ function (_Component) { var $parsedTree = _this.$$deepParseObject($stateTree); objectEach(_this.$$registers, function (handler, name) { - var data = name in $stateTree ? $stateTree[name] : parsePath($parsedTree, name); + var pathData; - if (!isUndefined(data) || force) { - var $newState = processer(data, handler); + if (force || (pathData = pathExist($parsedTree, name))) { + var $newState = processer(pathData && pathData.data, handler); if ($newState) { var $prevValue = _this.$formutil.$weakParams[name]; diff --git a/dist/react-formutil.cjs.development.js.map b/dist/react-formutil.cjs.development.js.map index 4fe18a0..9a6b2e0 100644 --- a/dist/react-formutil.cjs.development.js.map +++ b/dist/react-formutil.cjs.development.js.map @@ -1 +1 @@ -{"version":3,"file":"react-formutil.cjs.development.js","sources":["../src/context.js","../src/utils.js","../src/Form.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in
should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n const data = name in $stateTree ? $stateTree[name] : utils.parsePath($parsedTree, name);\n\n if (!utils.isUndefined(data) || force) {\n const $newState = processer(data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","data","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","React","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-formutil.cjs.development.js","sources":["../src/context.js","../src/utils.js","../src/Form.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function pathExist(scope, path) {\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (word in scope) {\n if (index + 1 === len) {\n return {\n data: scope[word]\n };\n }\n\n scope = scope[word];\n }\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n let pathData;\n\n if (force || (pathData = utils.pathExist($parsedTree, name))) {\n const $newState = processer(pathData && pathData.data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","pathExist","data","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","pathData","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","React","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-formutil.cjs.production.js b/dist/react-formutil.cjs.production.js index e9090c7..650cb6c 100644 --- a/dist/react-formutil.cjs.production.js +++ b/dist/react-formutil.cjs.production.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:true});function e(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var t=require("react");var r=e(t);var n=require("react-is");var i=e(require("warning"));var a=e(require("hoist-non-react-statics"));var u=e(require("react-fast-compare"));function o(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function s(e,t){for(var r=0;r=0)continue;r[i]=e[i]}return r}function h(e,t){if(e==null)return{};var r=p(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function m(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function g(e,t){if(t&&(typeof t==="object"||typeof t==="function")){return t}return m(e)}function y(e,t){return w(e)||F(e,t)||P()}function b(e){return V(e)||C(e)||k()}function V(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?r-1:0),i=1;i-1}var q=function e(t){try{var r=new Function("origin","global","return typeof ".concat(t," === 'number' || (typeof ").concat(t," !== 'undefined' && !(origin in global)) ? ").concat(t," : origin"));return r(t,j)}catch(e){return t}};function B(){for(var e=arguments.length,t=new Array(e),r=0;r=0?[]:{}:l[p];break;default:l[p]=u;break}}}}catch(e){i(false,"The name '%s' of Field seems is not a legal expression.",a)}if(t.length>2){return n}}function Y(e,t){if(e){if(D(e)){e(t)}else if("current"in e){e.current=t}}}var Q=function e(t,r){for(var n=0,i=t.length;n2&&arguments[2]!==undefined?arguments[2]:{};return t.reduce(function(){r.apply(void 0,arguments);return arguments.length<=0?undefined:arguments[0]},n)};var W=undefined;function J(e,t,r){z(e,function(t,r){if(t===W){delete e[r]}else if(T(t)||Array.isArray(t)){J(t,r,e)}});if(r&&Object.keys(e).every(function(t){return e[t]===W})){r[t]=W;J(r)}}var X=function e(t,r){if(!x(B(t,r))){B(t,r,W);J(t)}};var Z="FORM_VALIDATE_RESULT";var ee,te;if(typeof requestAnimationFrame==="function"){ee=requestAnimationFrame;te=cancelAnimationFrame}else{ee=setTimeout;te=clearTimeout}var re=function(e){c(n,e);function n(e){var t;o(this,n);t=g(this,d(n).call(this,e));t.$$formPending=void 0;t.$$formValidatePromise=void 0;t.$$registers={};t.$$deepRegisters={};t.$$regDuplications={};t.$$duplicateTimer=void 0;t.$$checkDuplication=function(){var e=m(t),r=e.$$regDuplications;var n;z(r,function(e,t){var a=y(e,2),u=a[0],o=a[1];i(u.$$reserved,"The Field with a name '".concat(t,"' has been registered!"));o.$$reset(u.$getState());n=delete r[t]});if(n){t.$render()}};t.$$register=function(e,r,n){t.$$unregister(n,r);if(e){var i=t.$$getRegister(e);if(i){te(t.$$duplicateTimer);t.$$regDuplications[e]=[i,r];t.$$duplicateTimer=ee(t.$$checkDuplication)}else{t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value});X(t.$$defaultValues,e)}t.$$registers[r.$name=e]=r;t.createDeepRegisters();t.$render()}};t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=y(t.$$regDuplications[e],2),a=i[0],u=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:u.$getState().$value,$prevValue:a.$getState().$value});delete t.$$regDuplications[e]}else if(t.$$registers[e]===r){if(n){r.$$reserved=true}else{delete t.$$registers[e];t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value});X(t.$$defaultValues,e)}}t.createDeepRegisters();t.$render()}};t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(U(D(r)?r(t.props)||{}:r));t.$$defaultStates=t.$$deepParseObject(U(D(n)?n(t.props)||{}:n))};t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}};t.$$triggerChangeTimer=void 0;t.$$fieldChangedQueue=[];t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=b(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={};var n={};var i=t.$$registers;var a=false;e.forEach(function(e){if(!(e.name in i)){delete e.$newValue}if(e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var u=t.$$getRegister(e.name);if(u){u.$$triggerChange(e)}}"$newValue"in e&&B(r,e.name,e.$newValue);"$prevValue"in e&&B(n,e.name,e.$prevValue);a=true}});if(a){if(D(t.props.$validator)){t.$$formValidate()}if(D(t.props.$onFormChange)){t.props.$onFormChange(t.$formutil,r,n)}}}};t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)};t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||B(t.$$deepRegisters,e);if(r){return r}}};t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n=t.props.$validator;var i;var a;var u;var o;var s=n(t.$formutil.$params,t.formtutil);var l=function t(n){return r(I(e,I(u,n)))};if(A(s)){if(!t.$$formPending){t.$$formPending=true;t.$render()}a=function e(t){return i=t(l)};o=s.then(function(){return void 0},function(e){return e}).then(function(e){if(i){return i}t.$shouldCancelPrevAsyncValidate=null;t.$$formPending=false;return t.$$setFormErrors(e,l)})}else{if(t.$$formPending){t.$$formPending=false}o=t.$$setFormErrors(s,l)}if(t.$shouldCancelPrevAsyncValidate){t.$shouldCancelPrevAsyncValidate(function(e){u=e;return o})}t.$shouldCancelPrevAsyncValidate=a})};t.$$setFormErrors=function(e,r){if(e&&(e instanceof Error||typeof e!=="object")){i(false,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field.");return t.$render(r)}return t.$$setStates(e||{},function(e,t){var r=t.$getState(),n=r.$error,i=n===void 0?{}:n;if(e){return{$error:f({},i,$({},Z,e))}}if(i[Z]){delete i[Z];return{$error:i}}return},r,true)};t.$getField=function(e){var r=t.$$getRegister(e);i(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted."));i(e,"You should pass a name of the mounted Field to $getField().");if(r){return r.$new()}};t.$$onChange=function(e,r,n){return t.$setStates($({},e,r),n)};t.$$setStates=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=arguments.length>1?arguments[1]:undefined;var n=arguments.length>2?arguments[2]:undefined;var i=arguments.length>3?arguments[3]:undefined;var a=t.$$deepParseObject(e);z(t.$$registers,function(n,u){var o=u in e?e[u]:B(a,u);if(!x(o)||i){var s=r(o,n);if(s){var l=t.$formutil.$weakParams[u];var $=n.$$merge(s),f=$.$value;n.$$detectChange(s);if("$value"in s||"$viewValue"in s){var c=Q(t.$$fieldChangedQueue,function(e){return e.name===u});if(c){if(!("$prevValue"in c)){c.$prevValue=c.$newValue}c.$newValue=f}else{t.$$fieldChangedQueue.push({name:u,$newValue:f,$prevValue:l})}}}}});return t.$render(n)};t.$render=function(e){return new Promise(function(r){return t.forceUpdate(function(){return r(I(e,t.$formutil))})})};t.$validates=function(){var e;for(var r=arguments.length,n=new Array(r),i=0;i1&&arguments[1]!==undefined?arguments[1]:{};z(t,function(e,t){return B(r,t,e)});return r}},{key:"componentDidMount",value:function e(){Y(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function e(t){var r=this;Y(this.props.$ref,this.$formutil);te(this.$$triggerChangeTimer);this.$$triggerChangeTimer=ee(function(){r.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function e(){Y(this.props.$ref,null)}},{key:"_render",value:function e(){var r=this.$formutil;var n=this.props,i=n.children,a=n.render,u=n.component;if(u){return t.createElement(u,{$formutil:r})}if(D(a)){return a(r)}if(D(i)){return i(r)}return t.Children.map(i,function(e){return e&&R(e.type)?t.cloneElement(e,{$formutil:r}):e})}},{key:"render",value:function e(){var t=this;var n=this.props.$processer;var i=Object.keys(this.$$registers).map(function(e){return{path:e,$state:t.$$registers[e].$getState()}});var a=K(i,function(e,t){var r=t.path,i=t.$state;if(n){n(i,r)}if("$value"in i&&(i.$dirty||!x(i.$value))){e[r]=i.$value}});var u=K(i,function(e,t){var r=t.path,n=t.$state;return r in a&&B(e,r,a[r])});var o=i.some(function(e){var t=e.$state;return t.$invalid});var s=i.some(function(e){var t=e.$state;return t.$dirty});var l=i.some(function(e){var t=e.$state;return t.$touched});var $=i.some(function(e){var t=e.$state;return t.$focused});var c=this.$$formPending||i.some(function(e){var t=e.$state;return t.$pending});var d=this.$formutil={$$registers:f({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:K(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n)}),$params:f({},this.$$defaultValues,u),$errors:K(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){B(e,r,n.$error)}}),$dirts:K(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$dirty)}),$touches:K(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$touched)}),$focuses:K(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$focused)}),$pendings:K(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$pending)}),$weakStates:K(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:a,$weakErrors:K(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){e[r]=n.$error}}),$weakDirts:K(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:K(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:K(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:K(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function e(t){if(t){var r=d.$getField(t);return r&&r.$getFirstError()}for(var n in d.$weakErrors){var i=d.$weakErrors[n];for(var a in i){return i[a]instanceof Error?i[a].message:i[a]}}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function e(){return t.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!o,$invalid:o,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:$,$pending:c};return r.createElement(E.Provider,{value:this.getFormContext()},this._render())}}]);return n}(t.Component);re.displayName="React.Formutil.Form";re.defaultProps={$defaultValues:{},$defaultStates:{}};function ne(e){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=t.forwardRef(function(t,i){var a=Object.assign({},t);var u=t.component,o=h(t,["component"]);["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){if(e in a){if(e==="$defaultStates"||e==="$defaultValues"){o[e]=f({},n[e],a[e])}delete a[e]}});return r.createElement(re,Object.assign({},n,o,{render:function t(n){return r.createElement(e,Object.assign({},a,{$formutil:n,ref:i}))}}))});i.displayName="React.Formutil.withForm."+(e.displayName||e.name||"Anonymous");return a(i,e)}var ie=H(ne);var ae=0;var ue={$valid:true,$invalid:false,$dirty:false,$pristine:true,$touched:false,$untouched:true,$focused:false,$pending:false,$error:{}};function oe(e){return e!==true}function se(e,t,r){i(!x(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}var le="React.Formutil.Field";function $e(){return ae++}function fe(e,r){var n=r.children,i=r.render,a=r.component;if(a){return t.createElement(a,{$fieldutil:e})}if(D(i)){return i(e)}if(D(n)){return n(e)}return t.Children.map(n,function(r){return r&&R(r.type)?t.cloneElement(r,{$fieldutil:e}):r})}function ce(e,t){var r={$$FIELD_UUID:e.$$FIELD_UUID,$$reset:o,$$merge:b,$$detectChange:i,$$triggerChange:a,$onValidate:u,$new:function t(){return e.$fieldutil},$picker:s,$getState:s,$getComponent:function e(){return t},$reset:function t(r,n){return e.$setState(o(r),n)},$getFirstError:y,$validate:l,$setState:e.$setState,$render:$,$setValue:c,$setTouched:d,$setDirty:v,$setFocused:p,$setValidity:m,$setError:h,$setPending:g};var n;function i(e){if("$value"in e||"$viewValue"in e){l()}}function a(t){var r=t.$newValue,n=t.$prevValue;var i=e.props.$onFieldChange;if(D(i)){i(r,n,e.$formContext.$formutil)}}function u(e){n.then(e);return n}function o(t){var r;var n=e.props,i=e.$formContext;if(i.$$getDefault){var a=n.name;var u=i.$$getDefault(),o=u.$$defaultStates,s=u.$$defaultValues;if(a&&s){var l=B(s,a);r=B(o,a)||{};if(!x(l)){r.$value=l}}}var $=n.$defaultValue,c=n.$defaultState;return b(f({},ue,D(c)?c(n):c,{$value:D($)?$(n):"$defaultValue"in n?$:""},r,t))}function s(){return f({},e.$state)}function l(t){return n=new Promise(function(r){var n=e.props,i=e.$formContext;var a=f({},n.$validators,n.$asyncValidators);var u=e.$state,o=u.$value,s=u.$pending,l=Object.assign({},u.$error);var $=i.$formutil;var c={};var d=false;var v;var p;var y;var b;delete l[Z];var V=Object.keys(a).reduce(function(t,r){delete l[r];if(!d&&n[r]!=null){var i=a[r](o,n[r],f({},n,{$formutil:$,$fieldutil:e.$fieldutil,$validError:c}));if(A(i)){t.push(i["catch"](function(e){if(!v){m(r,e||r)}}))}else if(oe(i)){c[r]=i||r;se(i,r,n.name);if(n.$validateLazy){d=true}}}return t},[]);var w=function e(n){return r(I(t,I(y,n)))};if(V.length){if(!s){g(true)}p=function e(t){return v=t(w)};V.push(h(f({},l,c)));b=Promise.all(V).then(function(){if(v){return v}e.$shouldCancelPrevAsyncValidate=null;return g(false,w)})}else{if(s){g(false)}b=h(f({},l,c),w)}if(e.$shouldCancelPrevAsyncValidate){e.$shouldCancelPrevAsyncValidate(function(e){y=e;return b})}e.$shouldCancelPrevAsyncValidate=p})}function $(t,r){return e.$setState({$viewValue:t,$dirty:true},r)}function c(t,r){return e.$setState({$value:t},r)}function d(t,r){return e.$setState({$touched:t},r)}function v(t,r){return e.$setState({$dirty:t},r)}function p(t,r){return e.$setState({$focused:t},r)}function h(t,r){return e.$setState({$error:t},r)}function m(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var n=arguments.length>2?arguments[2]:undefined;var i=Object.assign({},e.$state.$error);if(oe(r)){i[t]=r||t;se(r,t,e.props.name)}else{delete i[t]}return h(i,n)}function g(t,r){return e.$setState({$pending:t},r)}function y(){var t=e.$state.$error,r=t===void 0?{}:t;for(var n in r){return r[n]instanceof Error?r[n].message:r[n]}}function b(t){var r=Object.assign({},t);if("$error"in r){if(!r.$error){r.$error={}}r.$valid=Object.keys(r.$error).length===0}var n=e.props,i=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){var u=function e(t){return r.$viewValue=t};r.$value=i?i(r.$viewValue,u):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){var o=function e(t){return r.$value=t};r.$viewValue=a?a(r.$value,o):r.$value}if("$valid"in r){r.$invalid=!r.$valid}else if("$invalid"in r){r.$dirty=!r.$invalid}if("$dirty"in r){r.$pristine=!r.$dirty}else if("$pristine"in r){r.$dirty=!r.$pristine}if("$touched"in r){r.$untouched=!r.$touched}else if("$untouched"in r){r.$touched=!r.$untouched}e.$state=f({},e.$state,r);return s()}return r}var de=function(e){c(t,e);function t(){var e;var r;o(this,t);for(var n=arguments.length,i=new Array(n),a=0;a with the name '".concat(t,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));i(t,"You should assign a name to , otherwise it will be isolated!");if(r.$$register){r.$$register(t,this.$fieldHandler)}this.$prevValue=this.$state.$value;Y(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){if(this.$formContext.$$unregister){this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount)}this.isMounting=false;Y(this.props.$ref,null)}},{key:"componentDidUpdate",value:function e(t){var r=this.props.name;if(r!==t.name){if(this.$formContext.$$register){this.$formContext.$$register(r,this.$fieldHandler,t.name)}}Y(this.props.$ref,this.$fieldutil);if(this.$state.$value!==this.$prevValue){if(!(r in(this.$formContext.$$registers||{}))){this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue})}this.$prevValue=this.$state.$value}}},{key:"_render",value:function e(){var t=this.$fieldutil=f({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil});return fe(t,this.props)}},{key:"render",value:function e(){var t=this;var n=!this.$formContext;return r.createElement(E.Consumer,null,function(e){t.$formContext=e;if(!t.$fieldHandler){t.$fieldHandler=ce(t,t)}t.$registered=(e.$$registers||{})[t.$fieldHandler.$name]||t.$fieldHandler;if(n){t.$fieldHandler.$$reset();t.$fieldHandler.$validate()}return t._render()})}}]);return t}(t.Component);de.displayName=le;function ve(e){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=t.forwardRef(function(t,i){var a=Object.assign({},t);var u=t.component,o=h(t,["component"]);["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(f({},n.$validators,n.$asyncValidators,a.$validators,a.$asyncValidators))).forEach(function(e){if(e in a){if(e==="$validators"||e==="$asyncValidators"||e==="$defaultState"){o[e]=f({},n[e],a[e])}delete a[e]}});return r.createElement(de,Object.assign({},n,o,{render:function t(n){return r.createElement(e,Object.assign({},a,{$fieldutil:n,ref:i}))}}))});i.displayName="React.Formutil.withField."+(e.displayName||e.name||"Anonymous");return a(i,e)}var pe=H(ve);var he=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"render",value:function e(){var t=this;var n=this.props,i=n.$fieldutil,a=n.value,u=n.onChange,o=n.onFocus,s=n.onBlur,l=n.checked,$=n.unchecked,f=h(n,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]);var c=this.props.type;var d={value:"compositionValue"in this?this.compositionValue:a,onCompositionEnd:function e(r){t.composition=false;delete t.compositionValue;d.onChange(r)},onCompositionStart:function e(){return t.composition=true},onChange:function e(r){var n=r.target.value;if(t.composition){t.compositionValue=n;t.forceUpdate()}else{u(n,r)}},onFocus:o,onBlur:s};var v="input";switch(c){case"select":v=c;d.onChange=function(e){var t=e.target;var r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;u(r,e)};delete f.type;break;case"textarea":v=c;delete f.type;break;case"checkbox":case"radio":d={checked:a===l,onChange:function e(t){u(t.target.checked?l:$,t)},onFocus:o,onBlur:s};break;default:break}return r.createElement(v,Object.assign({},f,d))}}]);return t}(t.Component);he.displayName="React.Formutil.EasyField.Native";he.defaultProps={value:"",type:"text",checked:true,unchecked:false};var me=t.createContext({}),ge=me.Provider,ye=me.Consumer;var be=function(e){c(n,e);function n(){o(this,n);return g(this,d(n).apply(this,arguments))}l(n,[{key:"getGroupContext",value:function e(){return this.props}},{key:"_render",value:function e(){var n=this.props,i=n.className,a=n.groupNode,u=n.children;var o={GroupOption:Ve,Field:we};var s=D(u)?u(o):t.Children.map(u,function(e){return t.cloneElement(e,o)});if(a===null){return s}return r.createElement(a,{className:i},s)}},{key:"render",value:function e(){return r.createElement(ge,{value:this.getGroupContext()},this._render())}}]);return n}(t.Component);be.displayName="React.Formutil.EasyField.Group";be.defaultProps={type:"checkbox",groupNode:"div"};var Ve=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"componentDidMount",value:function e(){i("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function e(){var t=this.props,n=t.$value,i=t.onChange,a=t.onFocus,u=t.onBlur,o=h(t,["$value","onChange","onFocus","onBlur"]);return r.createElement(ye,null,function(e){var t=e.type,s=e.name;var l=t==="radio"?{checked:e.value===n,onChange:function t(r){e.onChange(n,r);i&&i(r)}}:t==="checkbox"?{checked:e.value.indexOf(n)>-1,onChange:function t(r){e.onChange(r.target.checked?e.value.concat(n):e.value.filter(function(e){return e!==n}),r);i&&i(r)}}:{value:e.value,onChange:function t(r){e.onChange(r);i&&i(r)}};return r.createElement("input",Object.assign({name:s},o,l,{type:t,onFocus:function t(r){e.onFocus(r);a&&a(r)},onBlur:function t(r){e.onBlur(r);u&&u(r)}}))})}}]);return t}(t.Component);Ve.displayName="React.Formutil.EasyField.Group.Option";var we=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"componentDidMount",value:function e(){i(false,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function e(){return r.createElement(Ve,this.props)}}]);return t}(t.Component);we.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Ce=r.Frament||"div";var Fe=function(e){c(t,e);function t(e){var r;o(this,t);r=g(this,d(t).call(this,e));r.id=0;r.latestValue=r.props.value;r.$formutil=void 0;r.FieldValidators={required:function e(t){return t!==null}};r.$onFormChange=function(e){e.$onValidates(function(e){var t=e.$invalid,n=e.$params;if(t){if(r.props.value.length){r.props.onChange(r.latestValue=[])}}else if(!u(r.props.value,n.list)){r.props.onChange(r.latestValue=n.list)}})};r.swap=function(e,t,n){return r.$setState(function(r){var n=r.items;var i=[n[e],n[t]];n[t]=i[0];n[e]=i[1];return n},n)};r.insert=function(){var e,t,n;for(var i=arguments.length,a=new Array(i),u=0;u=t}],["max",function(e,t){return _(e)||e*1<=t}],["min",function(e,t){return _(e)||e*1>=t}],["pattern",function(e,t){return _(e)||t.test(e)}],["enum",function(e,t){return _(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=y(t,2),n=r[0],i=r[1];e[n]=function e(t,r,a){var u=a.validMessage,o=u===void 0?{}:u;return i.apply(void 0,arguments)||o[n]||"Error input: ".concat(n)};return e},{});var Ee="React.Formutil.EasyField";var Oe={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function e(t){return typeof t==="string"?t.trim():t}};function Se(e,t,r){var n;var i=t.valuePropName,a=t.changePropName,u=t.focusPropName,o=t.blurPropName,s=t.passUtil;var l=function e(t){return t&&t.target?t.target[i]:t};var c=f({},r,(n={},$(n,i,e.$viewValue),$(n,a,function(){for(var r=arguments.length,n=new Array(r),i=0;i=16.8, Please upgrade your reactjs.")}var e=r.useContext;var t=e(E);return t}function Ne(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!r.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var n=r.useState,a=r.useLayoutEffect,u=r.useRef;var o;if(e){if(typeof e==="string"){o=e;t.name=o}else{t=e;o=t.name}}var s=Ae();var l=u({}).current;var $=u([]);var c;l.$formContext=s;l.props=t;l.$setState=h;var d=n(function(){l.$$FIELD_UUID=$e();l.$fieldHandler=c=ce(l);var e=l.$fieldHandler.$$reset();l.$fieldHandler.$validate();return e}),v=y(d,2),p=v[1];if(!c){c=(s.$$registers||{})[l.$fieldHandler.$name]||l.$fieldHandler}a(function(){var e=l.$state;if(l.isMounting){if(!(o in(s.$$registers||{}))){var t=l.$prevValue;c.$$triggerChange({$newValue:e.$value,$prevValue:t})}}l.$prevValue=e.$value},[l.$state.$value]);a(function(){l.isMounting=true;i(!o||s.$formutil,"You should enusre that the useField() with the name '".concat(o,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));i(o,"You should pass a name argument to useField(), otherwise it will be isolated!");return function(){l.isMounting=false;Y(t.$ref,null)}},[]);a(function(){if(s.$$register){s.$$register(o,l.$fieldHandler)}return function(){if(s.$$unregister){s.$$unregister(o,l.$fieldHandler,!l.isMounting&&t.$reserveOnUnmount)}}},[o]);a(function(){Y(t.$ref,l.$fieldutil)});a(function(){if($.current.length>0){var e=b($.current);$.current.length=0;while(e.length){e.pop()(l.$fieldutil)}}});function h(e,t){return new Promise(function(r){var n=function e(){return r(I(t,l.$fieldutil))};if(l.isMounting){if(o in(s.$$registers||{})){s.$$onChange(o,e,n)}else{p(c.$$merge(e));c.$$detectChange(e);$.current.push(n)}}else{c.$$merge(e);n()}})}return l.$fieldutil=f({$name:o},c.$getState(),c,{$$formutil:s.$formutil})}function Te(){var e=Ae(),t=e.$formutil;return t}function Re(e){e=f({},Oe,e,{children:null});var t=je(e),r=t.fieldProps,n=t.childProps;var i=Ne(r);return Se(i,r,n)}exports.EasyField=De;exports.Field=de;exports.Form=re;exports.connect=_e;exports.useField=Ne;exports.useForm=Te;exports.useHandler=Re;exports.withField=pe;exports.withForm=ie; +"use strict";Object.defineProperty(exports,"__esModule",{value:true});function e(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var t=require("react");var r=e(t);var n=require("react-is");var i=e(require("warning"));var a=e(require("hoist-non-react-statics"));var u=e(require("react-fast-compare"));function o(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function s(e,t){for(var r=0;r=0)continue;r[i]=e[i]}return r}function h(e,t){if(e==null)return{};var r=p(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function m(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function g(e,t){if(t&&(typeof t==="object"||typeof t==="function")){return t}return m(e)}function y(e,t){return w(e)||F(e,t)||P()}function b(e){return V(e)||C(e)||k()}function V(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?r-1:0),i=1;i-1}var q=function e(t){try{var r=new Function("origin","global","return typeof ".concat(t," === 'number' || (typeof ").concat(t," !== 'undefined' && !(origin in global)) ? ").concat(t," : origin"));return r(t,j)}catch(e){return t}};function B(){for(var e=arguments.length,t=new Array(e),r=0;r=0?[]:{}:l[p];break;default:l[p]=u;break}}}}catch(e){i(false,"The name '%s' of Field seems is not a legal expression.",a)}if(t.length>2){return n}}function Y(e,t){var r=t.split(S).map(function(e){return e.trim()}).filter(function(e){return e!==""});for(var n=0,i=r.length;n2&&arguments[2]!==undefined?arguments[2]:{};return t.reduce(function(){r.apply(void 0,arguments);return arguments.length<=0?undefined:arguments[0]},n)};var J=undefined;function X(e,t,r){K(e,function(t,r){if(t===J){delete e[r]}else if(T(t)||Array.isArray(t)){X(t,r,e)}});if(r&&Object.keys(e).every(function(t){return e[t]===J})){r[t]=J;X(r)}}var Z=function e(t,r){if(!x(B(t,r))){B(t,r,J);X(t)}};var ee="FORM_VALIDATE_RESULT";var te,re;if(typeof requestAnimationFrame==="function"){te=requestAnimationFrame;re=cancelAnimationFrame}else{te=setTimeout;re=clearTimeout}var ne=function(e){c(n,e);function n(e){var t;o(this,n);t=g(this,d(n).call(this,e));t.$$formPending=void 0;t.$$formValidatePromise=void 0;t.$$registers={};t.$$deepRegisters={};t.$$regDuplications={};t.$$duplicateTimer=void 0;t.$$checkDuplication=function(){var e=m(t),r=e.$$regDuplications;var n;K(r,function(e,t){var a=y(e,2),u=a[0],o=a[1];i(u.$$reserved,"The Field with a name '".concat(t,"' has been registered!"));o.$$reset(u.$getState());n=delete r[t]});if(n){t.$render()}};t.$$register=function(e,r,n){t.$$unregister(n,r);if(e){var i=t.$$getRegister(e);if(i){re(t.$$duplicateTimer);t.$$regDuplications[e]=[i,r];t.$$duplicateTimer=te(t.$$checkDuplication)}else{t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value});Z(t.$$defaultValues,e)}t.$$registers[r.$name=e]=r;t.createDeepRegisters();t.$render()}};t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=y(t.$$regDuplications[e],2),a=i[0],u=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:u.$getState().$value,$prevValue:a.$getState().$value});delete t.$$regDuplications[e]}else if(t.$$registers[e]===r){if(n){r.$$reserved=true}else{delete t.$$registers[e];t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value});Z(t.$$defaultValues,e)}}t.createDeepRegisters();t.$render()}};t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(U(D(r)?r(t.props)||{}:r));t.$$defaultStates=t.$$deepParseObject(U(D(n)?n(t.props)||{}:n))};t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}};t.$$triggerChangeTimer=void 0;t.$$fieldChangedQueue=[];t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=b(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={};var n={};var i=t.$$registers;var a=false;e.forEach(function(e){if(!(e.name in i)){delete e.$newValue}if(e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var u=t.$$getRegister(e.name);if(u){u.$$triggerChange(e)}}"$newValue"in e&&B(r,e.name,e.$newValue);"$prevValue"in e&&B(n,e.name,e.$prevValue);a=true}});if(a){if(D(t.props.$validator)){t.$$formValidate()}if(D(t.props.$onFormChange)){t.props.$onFormChange(t.$formutil,r,n)}}}};t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)};t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||B(t.$$deepRegisters,e);if(r){return r}}};t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n=t.props.$validator;var i;var a;var u;var o;var s=n(t.$formutil.$params,t.formtutil);var l=function t(n){return r(I(e,I(u,n)))};if(A(s)){if(!t.$$formPending){t.$$formPending=true;t.$render()}a=function e(t){return i=t(l)};o=s.then(function(){return void 0},function(e){return e}).then(function(e){if(i){return i}t.$shouldCancelPrevAsyncValidate=null;t.$$formPending=false;return t.$$setFormErrors(e,l)})}else{if(t.$$formPending){t.$$formPending=false}o=t.$$setFormErrors(s,l)}if(t.$shouldCancelPrevAsyncValidate){t.$shouldCancelPrevAsyncValidate(function(e){u=e;return o})}t.$shouldCancelPrevAsyncValidate=a})};t.$$setFormErrors=function(e,r){if(e&&(e instanceof Error||typeof e!=="object")){i(false,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field.");return t.$render(r)}return t.$$setStates(e||{},function(e,t){var r=t.$getState(),n=r.$error,i=n===void 0?{}:n;if(e){return{$error:f({},i,$({},ee,e))}}if(i[ee]){delete i[ee];return{$error:i}}return},r,true)};t.$getField=function(e){var r=t.$$getRegister(e);i(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted."));i(e,"You should pass a name of the mounted Field to $getField().");if(r){return r.$new()}};t.$$onChange=function(e,r,n){return t.$setStates($({},e,r),n)};t.$$setStates=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=arguments.length>1?arguments[1]:undefined;var n=arguments.length>2?arguments[2]:undefined;var i=arguments.length>3?arguments[3]:undefined;var a=t.$$deepParseObject(e);K(t.$$registers,function(e,n){var u;if(i||(u=Y(a,n))){var o=r(u&&u.data,e);if(o){var s=t.$formutil.$weakParams[n];var l=e.$$merge(o),$=l.$value;e.$$detectChange(o);if("$value"in o||"$viewValue"in o){var f=G(t.$$fieldChangedQueue,function(e){return e.name===n});if(f){if(!("$prevValue"in f)){f.$prevValue=f.$newValue}f.$newValue=$}else{t.$$fieldChangedQueue.push({name:n,$newValue:$,$prevValue:s})}}}}});return t.$render(n)};t.$render=function(e){return new Promise(function(r){return t.forceUpdate(function(){return r(I(e,t.$formutil))})})};t.$validates=function(){var e;for(var r=arguments.length,n=new Array(r),i=0;i1&&arguments[1]!==undefined?arguments[1]:{};K(t,function(e,t){return B(r,t,e)});return r}},{key:"componentDidMount",value:function e(){Q(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function e(t){var r=this;Q(this.props.$ref,this.$formutil);re(this.$$triggerChangeTimer);this.$$triggerChangeTimer=te(function(){r.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function e(){Q(this.props.$ref,null)}},{key:"_render",value:function e(){var r=this.$formutil;var n=this.props,i=n.children,a=n.render,u=n.component;if(u){return t.createElement(u,{$formutil:r})}if(D(a)){return a(r)}if(D(i)){return i(r)}return t.Children.map(i,function(e){return e&&R(e.type)?t.cloneElement(e,{$formutil:r}):e})}},{key:"render",value:function e(){var t=this;var n=this.props.$processer;var i=Object.keys(this.$$registers).map(function(e){return{path:e,$state:t.$$registers[e].$getState()}});var a=W(i,function(e,t){var r=t.path,i=t.$state;if(n){n(i,r)}if("$value"in i&&(i.$dirty||!x(i.$value))){e[r]=i.$value}});var u=W(i,function(e,t){var r=t.path,n=t.$state;return r in a&&B(e,r,a[r])});var o=i.some(function(e){var t=e.$state;return t.$invalid});var s=i.some(function(e){var t=e.$state;return t.$dirty});var l=i.some(function(e){var t=e.$state;return t.$touched});var $=i.some(function(e){var t=e.$state;return t.$focused});var c=this.$$formPending||i.some(function(e){var t=e.$state;return t.$pending});var d=this.$formutil={$$registers:f({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:W(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n)}),$params:f({},this.$$defaultValues,u),$errors:W(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){B(e,r,n.$error)}}),$dirts:W(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$dirty)}),$touches:W(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$touched)}),$focuses:W(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$focused)}),$pendings:W(i,function(e,t){var r=t.path,n=t.$state;return B(e,r,n.$pending)}),$weakStates:W(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:a,$weakErrors:W(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){e[r]=n.$error}}),$weakDirts:W(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:W(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:W(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:W(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function e(t){if(t){var r=d.$getField(t);return r&&r.$getFirstError()}for(var n in d.$weakErrors){var i=d.$weakErrors[n];for(var a in i){return i[a]instanceof Error?i[a].message:i[a]}}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function e(){return t.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!o,$invalid:o,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:$,$pending:c};return r.createElement(E.Provider,{value:this.getFormContext()},this._render())}}]);return n}(t.Component);ne.displayName="React.Formutil.Form";ne.defaultProps={$defaultValues:{},$defaultStates:{}};function ie(e){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=t.forwardRef(function(t,i){var a=Object.assign({},t);var u=t.component,o=h(t,["component"]);["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){if(e in a){if(e==="$defaultStates"||e==="$defaultValues"){o[e]=f({},n[e],a[e])}delete a[e]}});return r.createElement(ne,Object.assign({},n,o,{render:function t(n){return r.createElement(e,Object.assign({},a,{$formutil:n,ref:i}))}}))});i.displayName="React.Formutil.withForm."+(e.displayName||e.name||"Anonymous");return a(i,e)}var ae=H(ie);var ue=0;var oe={$valid:true,$invalid:false,$dirty:false,$pristine:true,$touched:false,$untouched:true,$focused:false,$pending:false,$error:{}};function se(e){return e!==true}function le(e,t,r){i(!x(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}var $e="React.Formutil.Field";function fe(){return ue++}function ce(e,r){var n=r.children,i=r.render,a=r.component;if(a){return t.createElement(a,{$fieldutil:e})}if(D(i)){return i(e)}if(D(n)){return n(e)}return t.Children.map(n,function(r){return r&&R(r.type)?t.cloneElement(r,{$fieldutil:e}):r})}function de(e,t){var r={$$FIELD_UUID:e.$$FIELD_UUID,$$reset:o,$$merge:b,$$detectChange:i,$$triggerChange:a,$onValidate:u,$new:function t(){return e.$fieldutil},$picker:s,$getState:s,$getComponent:function e(){return t},$reset:function t(r,n){return e.$setState(o(r),n)},$getFirstError:y,$validate:l,$setState:e.$setState,$render:$,$setValue:c,$setTouched:d,$setDirty:v,$setFocused:p,$setValidity:m,$setError:h,$setPending:g};var n;function i(e){if("$value"in e||"$viewValue"in e){l()}}function a(t){var r=t.$newValue,n=t.$prevValue;var i=e.props.$onFieldChange;if(D(i)){i(r,n,e.$formContext.$formutil)}}function u(e){n.then(e);return n}function o(t){var r;var n=e.props,i=e.$formContext;if(i.$$getDefault){var a=n.name;var u=i.$$getDefault(),o=u.$$defaultStates,s=u.$$defaultValues;if(a&&s){var l=B(s,a);r=B(o,a)||{};if(!x(l)){r.$value=l}}}var $=n.$defaultValue,c=n.$defaultState;return b(f({},oe,D(c)?c(n):c,{$value:D($)?$(n):"$defaultValue"in n?$:""},r,t))}function s(){return f({},e.$state)}function l(t){return n=new Promise(function(r){var n=e.props,i=e.$formContext;var a=f({},n.$validators,n.$asyncValidators);var u=e.$state,o=u.$value,s=u.$pending,l=Object.assign({},u.$error);var $=i.$formutil;var c={};var d=false;var v;var p;var y;var b;delete l[ee];var V=Object.keys(a).reduce(function(t,r){delete l[r];if(!d&&n[r]!=null){var i=a[r](o,n[r],f({},n,{$formutil:$,$fieldutil:e.$fieldutil,$validError:c}));if(A(i)){t.push(i["catch"](function(e){if(!v){m(r,e||r)}}))}else if(se(i)){c[r]=i||r;le(i,r,n.name);if(n.$validateLazy){d=true}}}return t},[]);var w=function e(n){return r(I(t,I(y,n)))};if(V.length){if(!s){g(true)}p=function e(t){return v=t(w)};V.push(h(f({},l,c)));b=Promise.all(V).then(function(){if(v){return v}e.$shouldCancelPrevAsyncValidate=null;return g(false,w)})}else{if(s){g(false)}b=h(f({},l,c),w)}if(e.$shouldCancelPrevAsyncValidate){e.$shouldCancelPrevAsyncValidate(function(e){y=e;return b})}e.$shouldCancelPrevAsyncValidate=p})}function $(t,r){return e.$setState({$viewValue:t,$dirty:true},r)}function c(t,r){return e.$setState({$value:t},r)}function d(t,r){return e.$setState({$touched:t},r)}function v(t,r){return e.$setState({$dirty:t},r)}function p(t,r){return e.$setState({$focused:t},r)}function h(t,r){return e.$setState({$error:t},r)}function m(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var n=arguments.length>2?arguments[2]:undefined;var i=Object.assign({},e.$state.$error);if(se(r)){i[t]=r||t;le(r,t,e.props.name)}else{delete i[t]}return h(i,n)}function g(t,r){return e.$setState({$pending:t},r)}function y(){var t=e.$state.$error,r=t===void 0?{}:t;for(var n in r){return r[n]instanceof Error?r[n].message:r[n]}}function b(t){var r=Object.assign({},t);if("$error"in r){if(!r.$error){r.$error={}}r.$valid=Object.keys(r.$error).length===0}var n=e.props,i=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){var u=function e(t){return r.$viewValue=t};r.$value=i?i(r.$viewValue,u):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){var o=function e(t){return r.$value=t};r.$viewValue=a?a(r.$value,o):r.$value}if("$valid"in r){r.$invalid=!r.$valid}else if("$invalid"in r){r.$dirty=!r.$invalid}if("$dirty"in r){r.$pristine=!r.$dirty}else if("$pristine"in r){r.$dirty=!r.$pristine}if("$touched"in r){r.$untouched=!r.$touched}else if("$untouched"in r){r.$touched=!r.$untouched}e.$state=f({},e.$state,r);return s()}return r}var ve=function(e){c(t,e);function t(){var e;var r;o(this,t);for(var n=arguments.length,i=new Array(n),a=0;a with the name '".concat(t,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));i(t,"You should assign a name to , otherwise it will be isolated!");if(r.$$register){r.$$register(t,this.$fieldHandler)}this.$prevValue=this.$state.$value;Q(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){if(this.$formContext.$$unregister){this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount)}this.isMounting=false;Q(this.props.$ref,null)}},{key:"componentDidUpdate",value:function e(t){var r=this.props.name;if(r!==t.name){if(this.$formContext.$$register){this.$formContext.$$register(r,this.$fieldHandler,t.name)}}Q(this.props.$ref,this.$fieldutil);if(this.$state.$value!==this.$prevValue){if(!(r in(this.$formContext.$$registers||{}))){this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue})}this.$prevValue=this.$state.$value}}},{key:"_render",value:function e(){var t=this.$fieldutil=f({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil});return ce(t,this.props)}},{key:"render",value:function e(){var t=this;var n=!this.$formContext;return r.createElement(E.Consumer,null,function(e){t.$formContext=e;if(!t.$fieldHandler){t.$fieldHandler=de(t,t)}t.$registered=(e.$$registers||{})[t.$fieldHandler.$name]||t.$fieldHandler;if(n){t.$fieldHandler.$$reset();t.$fieldHandler.$validate()}return t._render()})}}]);return t}(t.Component);ve.displayName=$e;function pe(e){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=t.forwardRef(function(t,i){var a=Object.assign({},t);var u=t.component,o=h(t,["component"]);["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(f({},n.$validators,n.$asyncValidators,a.$validators,a.$asyncValidators))).forEach(function(e){if(e in a){if(e==="$validators"||e==="$asyncValidators"||e==="$defaultState"){o[e]=f({},n[e],a[e])}delete a[e]}});return r.createElement(ve,Object.assign({},n,o,{render:function t(n){return r.createElement(e,Object.assign({},a,{$fieldutil:n,ref:i}))}}))});i.displayName="React.Formutil.withField."+(e.displayName||e.name||"Anonymous");return a(i,e)}var he=H(pe);var me=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"render",value:function e(){var t=this;var n=this.props,i=n.$fieldutil,a=n.value,u=n.onChange,o=n.onFocus,s=n.onBlur,l=n.checked,$=n.unchecked,f=h(n,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]);var c=this.props.type;var d={value:"compositionValue"in this?this.compositionValue:a,onCompositionEnd:function e(r){t.composition=false;delete t.compositionValue;d.onChange(r)},onCompositionStart:function e(){return t.composition=true},onChange:function e(r){var n=r.target.value;if(t.composition){t.compositionValue=n;t.forceUpdate()}else{u(n,r)}},onFocus:o,onBlur:s};var v="input";switch(c){case"select":v=c;d.onChange=function(e){var t=e.target;var r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;u(r,e)};delete f.type;break;case"textarea":v=c;delete f.type;break;case"checkbox":case"radio":d={checked:a===l,onChange:function e(t){u(t.target.checked?l:$,t)},onFocus:o,onBlur:s};break;default:break}return r.createElement(v,Object.assign({},f,d))}}]);return t}(t.Component);me.displayName="React.Formutil.EasyField.Native";me.defaultProps={value:"",type:"text",checked:true,unchecked:false};var ge=t.createContext({}),ye=ge.Provider,be=ge.Consumer;var Ve=function(e){c(n,e);function n(){o(this,n);return g(this,d(n).apply(this,arguments))}l(n,[{key:"getGroupContext",value:function e(){return this.props}},{key:"_render",value:function e(){var n=this.props,i=n.className,a=n.groupNode,u=n.children;var o={GroupOption:we,Field:Ce};var s=D(u)?u(o):t.Children.map(u,function(e){return t.cloneElement(e,o)});if(a===null){return s}return r.createElement(a,{className:i},s)}},{key:"render",value:function e(){return r.createElement(ye,{value:this.getGroupContext()},this._render())}}]);return n}(t.Component);Ve.displayName="React.Formutil.EasyField.Group";Ve.defaultProps={type:"checkbox",groupNode:"div"};var we=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"componentDidMount",value:function e(){i("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function e(){var t=this.props,n=t.$value,i=t.onChange,a=t.onFocus,u=t.onBlur,o=h(t,["$value","onChange","onFocus","onBlur"]);return r.createElement(be,null,function(e){var t=e.type,s=e.name;var l=t==="radio"?{checked:e.value===n,onChange:function t(r){e.onChange(n,r);i&&i(r)}}:t==="checkbox"?{checked:e.value.indexOf(n)>-1,onChange:function t(r){e.onChange(r.target.checked?e.value.concat(n):e.value.filter(function(e){return e!==n}),r);i&&i(r)}}:{value:e.value,onChange:function t(r){e.onChange(r);i&&i(r)}};return r.createElement("input",Object.assign({name:s},o,l,{type:t,onFocus:function t(r){e.onFocus(r);a&&a(r)},onBlur:function t(r){e.onBlur(r);u&&u(r)}}))})}}]);return t}(t.Component);we.displayName="React.Formutil.EasyField.Group.Option";var Ce=function(e){c(t,e);function t(){o(this,t);return g(this,d(t).apply(this,arguments))}l(t,[{key:"componentDidMount",value:function e(){i(false,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function e(){return r.createElement(we,this.props)}}]);return t}(t.Component);Ce.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Fe=r.Frament||"div";var ke=function(e){c(t,e);function t(e){var r;o(this,t);r=g(this,d(t).call(this,e));r.id=0;r.latestValue=r.props.value;r.$formutil=void 0;r.FieldValidators={required:function e(t){return t!==null}};r.$onFormChange=function(e){e.$onValidates(function(e){var t=e.$invalid,n=e.$params;if(t){if(r.props.value.length){r.props.onChange(r.latestValue=[])}}else if(!u(r.props.value,n.list)){r.props.onChange(r.latestValue=n.list)}})};r.swap=function(e,t,n){return r.$setState(function(r){var n=r.items;var i=[n[e],n[t]];n[t]=i[0];n[e]=i[1];return n},n)};r.insert=function(){var e,t,n;for(var i=arguments.length,a=new Array(i),u=0;u=t}],["max",function(e,t){return _(e)||e*1<=t}],["min",function(e,t){return _(e)||e*1>=t}],["pattern",function(e,t){return _(e)||t.test(e)}],["enum",function(e,t){return _(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=y(t,2),n=r[0],i=r[1];e[n]=function e(t,r,a){var u=a.validMessage,o=u===void 0?{}:u;return i.apply(void 0,arguments)||o[n]||"Error input: ".concat(n)};return e},{});var Oe="React.Formutil.EasyField";var Se={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function e(t){return typeof t==="string"?t.trim():t}};function je(e,t,r){var n;var i=t.valuePropName,a=t.changePropName,u=t.focusPropName,o=t.blurPropName,s=t.passUtil;var l=function e(t){return t&&t.target?t.target[i]:t};var c=f({},r,(n={},$(n,i,e.$viewValue),$(n,a,function(){for(var r=arguments.length,n=new Array(r),i=0;i=16.8, Please upgrade your reactjs.")}var e=r.useContext;var t=e(E);return t}function Te(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!r.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var n=r.useState,a=r.useLayoutEffect,u=r.useRef;var o;if(e){if(typeof e==="string"){o=e;t.name=o}else{t=e;o=t.name}}var s=Ne();var l=u({}).current;var $=u([]);var c;l.$formContext=s;l.props=t;l.$setState=h;var d=n(function(){l.$$FIELD_UUID=fe();l.$fieldHandler=c=de(l);var e=l.$fieldHandler.$$reset();l.$fieldHandler.$validate();return e}),v=y(d,2),p=v[1];if(!c){c=(s.$$registers||{})[l.$fieldHandler.$name]||l.$fieldHandler}a(function(){var e=l.$state;if(l.isMounting){if(!(o in(s.$$registers||{}))){var t=l.$prevValue;c.$$triggerChange({$newValue:e.$value,$prevValue:t})}}l.$prevValue=e.$value},[l.$state.$value]);a(function(){l.isMounting=true;i(!o||s.$formutil,"You should enusre that the useField() with the name '".concat(o,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));i(o,"You should pass a name argument to useField(), otherwise it will be isolated!");return function(){l.isMounting=false;Q(t.$ref,null)}},[]);a(function(){if(s.$$register){s.$$register(o,l.$fieldHandler)}return function(){if(s.$$unregister){s.$$unregister(o,l.$fieldHandler,!l.isMounting&&t.$reserveOnUnmount)}}},[o]);a(function(){Q(t.$ref,l.$fieldutil)});a(function(){if($.current.length>0){var e=b($.current);$.current.length=0;while(e.length){e.pop()(l.$fieldutil)}}});function h(e,t){return new Promise(function(r){var n=function e(){return r(I(t,l.$fieldutil))};if(l.isMounting){if(o in(s.$$registers||{})){s.$$onChange(o,e,n)}else{p(c.$$merge(e));c.$$detectChange(e);$.current.push(n)}}else{c.$$merge(e);n()}})}return l.$fieldutil=f({$name:o},c.$getState(),c,{$$formutil:s.$formutil})}function Re(){var e=Ne(),t=e.$formutil;return t}function Ue(e){e=f({},Se,e,{children:null});var t=xe(e),r=t.fieldProps,n=t.childProps;var i=Te(r);return je(i,r,n)}exports.EasyField=_e;exports.Field=ve;exports.Form=ne;exports.connect=Ae;exports.useField=Te;exports.useForm=Re;exports.useHandler=Ue;exports.withField=he;exports.withForm=ae; diff --git a/dist/react-formutil.esm.development.js b/dist/react-formutil.esm.development.js index 9f48a91..dde809d 100644 --- a/dist/react-formutil.esm.development.js +++ b/dist/react-formutil.esm.development.js @@ -381,6 +381,27 @@ function parsePath() { return target; } } +function pathExist(scope, path) { + var pathWords = path.split(PATH_REGEXP).map(function (s) { + return s.trim(); + }).filter(function (item) { + return item !== ''; + }); + + for (var index = 0, len = pathWords.length; index < len; index++) { + var word = executeWord(pathWords[index]); + + if (word in scope) { + if (index + 1 === len) { + return { + data: scope[word] + }; + } + + scope = scope[word]; + } + } +} function createRef(ref, value) { if (ref) { if (isFunction(ref)) { @@ -731,10 +752,10 @@ function (_Component) { var $parsedTree = _this.$$deepParseObject($stateTree); objectEach(_this.$$registers, function (handler, name) { - var data = name in $stateTree ? $stateTree[name] : parsePath($parsedTree, name); + var pathData; - if (!isUndefined(data) || force) { - var $newState = processer(data, handler); + if (force || (pathData = pathExist($parsedTree, name))) { + var $newState = processer(pathData && pathData.data, handler); if ($newState) { var $prevValue = _this.$formutil.$weakParams[name]; diff --git a/dist/react-formutil.esm.development.js.map b/dist/react-formutil.esm.development.js.map index 0ab9b09..35dd35d 100644 --- a/dist/react-formutil.esm.development.js.map +++ b/dist/react-formutil.esm.development.js.map @@ -1 +1 @@ -{"version":3,"file":"react-formutil.esm.development.js","sources":["../src/context.js","../src/utils.js","../src/Form.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n const data = name in $stateTree ? $stateTree[name] : utils.parsePath($parsedTree, name);\n\n if (!utils.isUndefined(data) || force) {\n const $newState = processer(data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","data","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","React","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kBAAeA,aAAa,CAAC,EAAD,CAA5B;;ACCA,IAAMC,YAAY,GAAGC,MAAM,CAACC,cAAP,CAAsB,EAAtB,CAArB;AACA,IAAMC,WAAW,GAAG,qCAApB;AACA,IAAMC,IAAI,GAAGC,WAAW,CAACC,MAAD,CAAX,GAAsBC,MAAtB,GAA+BD,MAA5C;AAEA,AAAO,SAASD,WAAT,CAAqBG,GAArB,EAA0B;SACtB,OAAOA,GAAP,KAAe,WAAtB;;AAGJ,AAAO,SAASC,UAAT,CAAoBD,GAApB,EAAyB;SACrB,OAAOA,GAAP,KAAe,UAAtB;;AAGJ,AAAO,SAASE,OAAT,CAAiBF,GAAjB,EAAsB;SAClBH,WAAW,CAACG,GAAD,CAAX,IAAoBA,GAAG,KAAK,IAA5B,IAAoCA,GAAG,GAAG,EAAN,KAAa,EAAxD;;AAGJ,AAAO,SAASG,SAAT,CAAmBC,OAAnB,EAA4B;SACxB,CAAC,CAACA,OAAF,IAAaH,UAAU,CAACG,OAAO,CAACC,IAAT,CAA9B;;AAGJ,AAAO,SAASC,QAAT,CAAkBC,GAAlB,EAAuB;SACnBd,MAAM,CAACe,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BH,GAA/B,MAAwC,iBAA/C;;AAGJ,AAAO,SAASI,UAAT,CAAoBJ,GAApB,EAAyB;MACxB,CAACD,QAAQ,CAACC,GAAD,CAAb,EAAoB,OAAO,KAAP;MAChB,SAASd,MAAM,CAACC,cAAP,CAAsBa,GAAtB,CAAb,EAAyC,OAAO,IAAP;MACrC,CAACN,UAAU,CAACM,GAAG,CAACK,WAAL,CAAf,EAAkC,OAAO,KAAP;SAE3BL,GAAG,CAACK,WAAJ,CAAgBJ,SAAhB,KAA8BhB,YAArC;;AAGJ,AAAO,SAASqB,WAAT,CAAqBN,GAArB,EAA0B;SACtBO,kBAAkB,CAACP,GAAD,CAAlB,IAA2B,OAAOA,GAAP,KAAe,QAAjD;;AAGJ,AAAO,SAASQ,sBAAT,CAAgCC,KAAhC,EAAuCC,QAAvC,EAAiDC,aAAjD,EAAgE;MAC/DF,KAAK,CAACC,QAAD,CAAL,IAAmB,CAACJ,WAAW,CAACG,KAAK,CAACC,QAAD,CAAN,CAAnC,EAAsD;WAC3C,IAAIE,KAAJ,iDACsCD,aADtC,gDAAP;;;;AAOR,AAAO,SAASE,SAAT,CAAmBb,GAAnB,EAAwB;MACvBc,KAAK,CAACC,OAAN,CAAcf,GAAd,CAAJ,EAAwB;QACdgB,MAAM,GAAG,EAAf;;SAEK,IAAIC,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAGlB,GAAG,CAACmB,MAAxB,EAAgCF,CAAC,GAAGC,CAApC,EAAuCD,CAAC,EAAxC,EAA4C;MACxCD,MAAM,CAACC,CAAD,CAAN,GAAYJ,SAAS,CAACb,GAAG,CAACiB,CAAD,CAAJ,CAArB;;;WAGGD,MAAP;GAPJ,MAQO,IAAIZ,UAAU,CAACJ,GAAD,CAAd,EAAqB;QAClBgB,OAAM,GAAG,EAAf;;SAEK,IAAIC,EAAT,IAAcjB,GAAd,EAAmB;MACfgB,OAAM,CAACC,EAAD,CAAN,GAAYJ,SAAS,CAACb,GAAG,CAACiB,EAAD,CAAJ,CAArB;;;WAGGD,OAAP;;;SAGGhB,GAAP;;AAGJ,AAAO,IAAMoB,WAAW,GAAG,SAAdA,WAAc,CAASC,QAAT,EAA4B;oCAANC,IAAM;IAANA,IAAM;;;MAC/C5B,UAAU,CAAC2B,QAAD,CAAd,EAA0B;IACtBA,QAAQ,MAAR,SAAYC,IAAZ;;;SAGGA,IAAI,CAAC,CAAD,CAAX;CALG;AAQP,AAAO,SAASC,SAAT,CAAmBC,OAAnB,EAA4B;SACxB,YAAkB;uCAANF,IAAM;MAANA,IAAM;;;QACjBhB,WAAW,CAACgB,IAAI,CAAC,CAAD,CAAL,CAAf,EAA0B;aACfE,OAAO,MAAP,SAAWF,IAAX,CAAP;;;WAGG,UAASG,gBAAT,EAA2B;aACvBD,OAAO,CAACC,gBAAD,EAAmBH,IAAI,CAAC,CAAD,CAAvB,CAAd;KADJ;GALJ;;AAWJ,IAAMI,WAAW,GAAG,CAAC,WAAD,EAAc,WAAd,EAA2B,KAA3B,EAAkC,KAAlC,EAAyC,UAAzC,EAAqD,SAArD,EAAgE,MAAhE,CAApB;AACA,AAAO,SAASC,WAAT,CAAqBC,IAArB,EAA2B;SACvBF,WAAW,CAACG,OAAZ,CAAoBD,IAAI,CAACE,WAAL,EAApB,IAA0C,CAAC,CAAlD;;;;AAIJ,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAASC,IAAT,EAAe;MAC3B;QACMC,IAAI,GAAG,IAAIC,QAAJ,CACT,QADS,EAET,QAFS,0BAGQF,IAHR,sCAGwCA,IAHxC,wDAG0FA,IAH1F,eAAb;WAKOC,IAAI,CAACD,IAAD,EAAO3C,IAAP,CAAX;GANJ,CAOE,OAAO8C,GAAP,EAAY;WACHH,IAAP;;CATR;;;;;;;;;;;;AAsBA,AAAO,SAASI,SAAT,GAA4B;qCAANd,IAAM;IAANA,IAAM;;;MACxBe,MADwB,GACDf,IADC;MAChBgB,IADgB,GACDhB,IADC;MACViB,KADU,GACDjB,IADC;EAG/BkB,OAAO,CAAC,OAAOF,IAAP,KAAgB,QAAjB,iCAAmDG,IAAI,CAACC,SAAL,CAAeJ,IAAf,CAAnD,wCAAP;MAEMK,WAAW,GAAG,CAACL,IAAI,CAACM,KAAL,CAAWxD,WAAX,KAA2B,EAA5B,EAAgCyD,GAAhC,CAAoC,UAAAC,CAAC;WAAIA,CAAC,CAACC,OAAF,CAAU,KAAV,EAAiB,EAAjB,CAAJ;GAArC,CAApB;MACMC,SAAS,GAAGV,IAAI,CACjBW,KADa,CACP7D,WADO,EAEbyD,GAFa,CAET,UAAAC,CAAC;WAAIA,CAAC,CAACI,IAAF,EAAJ;GAFQ,EAGbC,MAHa,CAGN,UAAAC,IAAI;WAAIA,IAAI,KAAK,EAAb;GAHE,CAAlB;MAIIC,KAAK,GAAGhB,MAAZ;;MAEI;QACIf,IAAI,CAACH,MAAL,GAAc,CAAlB,EAAqB;WACZ,IAAImC,KAAK,GAAG,CAAZ,EAAeC,GAAG,GAAGP,SAAS,CAAC7B,MAApC,EAA4CmC,KAAK,GAAGC,GAApD,EAAyDD,KAAK,EAA9D,EAAkE;YACxDtB,IAAI,GAAGD,WAAW,CAACiB,SAAS,CAACM,KAAD,CAAV,CAAxB;;YAEIA,KAAK,GAAG,CAAR,KAAcC,GAAlB,EAAuB;iBACZF,KAAK,CAACrB,IAAD,CAAZ;;;YAGA1C,WAAW,CAAC+D,KAAK,CAACrB,IAAD,CAAN,CAAf,EAA8B;;;;QAI9BqB,KAAK,GAAGA,KAAK,CAACrB,IAAD,CAAb;;KAZR,MAcO;WACE,IAAIsB,MAAK,GAAG,CAAZ,EAAenC,MAAM,GAAG6B,SAAS,CAAC7B,MAAvC,EAA+CmC,MAAK,GAAGnC,MAAvD,EAA+DmC,MAAK,EAApE,EAAwE;YAC9DtB,KAAI,GAAGD,WAAW,CAACiB,SAAS,CAACM,MAAD,CAAV,CAAxB;;YACME,QAAQ,GAAGR,SAAS,CAACM,MAAK,GAAG,CAAT,CAA1B;YACMG,MAAM,GAAGd,WAAW,CAACW,MAAD,CAA1B;;YAEIhE,WAAW,CAACkE,QAAD,CAAf,EAA2B;UACvBH,KAAK,CAACrB,KAAD,CAAL,GAAcO,KAAd;;;;gBAIIkB,MAAR;eACS,IAAL;eACK,GAAL;YACIJ,KAAK,GAAG/D,WAAW,CAAC+D,KAAK,CAACrB,KAAD,CAAN,CAAX,GAA4BqB,KAAK,CAACrB,KAAD,CAAL,GAAc,EAA1C,GAAgDqB,KAAK,CAACrB,KAAD,CAA7D;;;eAGC,IAAL;eACK,GAAL;gBACU0B,WAAW,GAAG3B,WAAW,CAACyB,QAAD,CAA/B;YAEAH,KAAK,GAAG/D,WAAW,CAAC+D,KAAK,CAACrB,KAAD,CAAN,CAAX,GACDqB,KAAK,CAACrB,KAAD,CAAL,GAAc,OAAO0B,WAAP,KAAuB,QAAvB,IAAmCA,WAAW,IAAI,CAAlD,GAAsD,EAAtD,GAA2D,EADxE,GAEFL,KAAK,CAACrB,KAAD,CAFX;;;;YAMAqB,KAAK,CAACrB,KAAD,CAAL,GAAcO,KAAd;;;;;GA1CpB,CA+CE,OAAOoB,KAAP,EAAc;IACZnB,OAAO,CAAC,KAAD,6DAAmEF,IAAnE,CAAP;;;MAGAhB,IAAI,CAACH,MAAL,GAAc,CAAlB,EAAqB;WACVkB,MAAP;;;AAIR,AAAO,SAASuB,SAAT,CAAmBC,GAAnB,EAAwBtB,KAAxB,EAA+B;MAC9BsB,GAAJ,EAAS;QACDnE,UAAU,CAACmE,GAAD,CAAd,EAAqB;MACjBA,GAAG,CAACtB,KAAD,CAAH;KADJ,MAEO,IAAI,aAAasB,GAAjB,EAAsB;MACzBA,GAAG,CAACC,OAAJ,GAAcvB,KAAd;;;;AAKZ,AAAO,IAAMwB,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD,EAAQC,OAAR,EAAoB;OACpC,IAAIhD,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAG8C,KAAK,CAAC7C,MAA1B,EAAkCF,CAAC,GAAGC,CAAtC,EAAyCD,CAAC,EAA1C,EAA8C;QACtCgD,OAAO,CAACD,KAAK,CAAC/C,CAAD,CAAN,CAAP,KAAsB,IAA1B,EAAgC;aACrB+C,KAAK,CAAC/C,CAAD,CAAZ;;;CAHL;AAQP,AAAO,IAAMiD,SAAS,GAAG,SAAZA,SAAY,CAAClE,GAAD,EAAMmE,OAAN;SACrBjF,MAAM,CAACkF,IAAP,CAAYpE,GAAZ,EAAiBqE,MAAjB,CAAwB,UAACrD,MAAD,EAASsD,GAAT,EAAiB;IACrCtD,MAAM,CAACsD,GAAD,CAAN,GAAcH,OAAO,CAACnE,GAAG,CAACsE,GAAD,CAAJ,EAAWA,GAAX,EAAgBtE,GAAhB,CAArB;WACOgB,MAAP;GAFJ,EAGG,EAHH,CADqB;CAAlB;AAMP,AAAO,IAAMuD,UAAU,GAAG,SAAbA,UAAa,CAACvE,GAAD,EAAMmE,OAAN;SAAkBjF,MAAM,CAACkF,IAAP,CAAYpE,GAAZ,EAAiBwE,OAAjB,CAAyB,UAAAF,GAAG;WAAIH,OAAO,CAACnE,GAAG,CAACsE,GAAD,CAAJ,EAAWA,GAAX,EAAgBtE,GAAhB,CAAX;GAA5B,CAAlB;CAAnB;AAEP,AAAO,IAAMyE,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD,EAAMP,OAAN;MAAenE,GAAf,uEAAqB,EAArB;SACpB0E,GAAG,CAACL,MAAJ,CAAW,YAAa;IACpBF,OAAO,MAAP;;GADJ,EAIGnE,GAJH,CADoB;CAAjB;AAOP,IAAM2E,WAAW,GAAGC,SAApB;AACA,AAAO,SAASC,KAAT,CAAe7E,GAAf,EAAoB8E,IAApB,EAA0BC,IAA1B,EAAgC;EACnCR,UAAU,CAACvE,GAAD,EAAM,UAACuC,KAAD,EAAQ+B,GAAR,EAAgB;QACxB/B,KAAK,KAAKoC,WAAd,EAA2B;aAChB3E,GAAG,CAACsE,GAAD,CAAV;KADJ,MAEO,IAAIlE,UAAU,CAACmC,KAAD,CAAV,IAAqBzB,KAAK,CAACC,OAAN,CAAcwB,KAAd,CAAzB,EAA+C;MAClDsC,KAAK,CAACtC,KAAD,EAAQ+B,GAAR,EAAatE,GAAb,CAAL;;GAJE,CAAV;;MAQI+E,IAAI,IAAI7F,MAAM,CAACkF,IAAP,CAAYpE,GAAZ,EAAiBgF,KAAjB,CAAuB,UAAAV,GAAG;WAAItE,GAAG,CAACsE,GAAD,CAAH,KAAaK,WAAjB;GAA1B,CAAZ,EAAqE;IACjEI,IAAI,CAACD,IAAD,CAAJ,GAAaH,WAAb;IACAE,KAAK,CAACE,IAAD,CAAL;;;AAGR,AAAO,IAAME,WAAW,GAAG,SAAdA,WAAc,CAACjF,GAAD,EAAMkF,IAAN,EAAe;MAClC,CAAC5F,WAAW,CAAC8C,SAAS,CAACpC,GAAD,EAAMkF,IAAN,CAAV,CAAhB,EAAwC;IACpC9C,SAAS,CAACpC,GAAD,EAAMkF,IAAN,EAAYP,WAAZ,CAAT;IAEAE,KAAK,CAAC7E,GAAD,CAAL;;CAJD;;ACpOA,IAAMmF,oBAAoB,GAAG,sBAA7B;AAEP,IAAIC,YAAJ,EAAkBC,WAAlB;;AAEA,IAAI,OAAOC,qBAAP,KAAiC,UAArC,EAAiD;EAC7CF,YAAY,GAAGE,qBAAf;EACAD,WAAW,GAAGE,oBAAd;CAFJ,MAGO;EACHH,YAAY,GAAGI,UAAf;EACAH,WAAW,GAAGI,YAAd;;;IAGEC;;;;;gBAuCUjF,KAAZ,EAAmB;;;;;8EACTA,KAAN;UAPJkF,aAMmB;UALnBC,qBAKmB;UAHnBC,WAGmB,GAHL,EAGK;UAFnBC,eAEmB,GAFD,EAEC;UAiBnBC,iBAjBmB,GAiBC,EAjBD;UAkBnBC,gBAlBmB;;UAmBnBC,kBAnBmB,GAmBE,YAAM;;UACfF,iBADe,yBACfA,iBADe;;UAEnBG,MAAJ;MAEAC,UAAA,CAAiBJ,iBAAjB,EAAoC,gBAA6Bb,IAA7B,EAAsC;;YAApCkB,cAAoC;YAApBC,QAAoB;;QACtE7D,OAAO,CAAC4D,cAAc,CAACE,UAAhB,mCAAsDpB,IAAtD,4BAAP;QAEAmB,QAAQ,CAACE,OAAT,CAAiBH,cAAc,CAACI,SAAf,EAAjB;QAEAN,MAAM,GAAG,OAAOH,iBAAiB,CAACb,IAAD,CAAjC;OALJ;;UAQIgB,MAAJ,EAAY;cACHO,OAAL;;KAhCW;;UAuCnBC,UAvCmB,GAuCN,UAACxB,IAAD,EAAOmB,QAAP,EAAiBM,QAAjB,EAA8B;YAClCC,YAAL,CAAkBD,QAAlB,EAA4BN,QAA5B;;UAEInB,IAAJ,EAAU;YACAkB,cAAc,GAAG,MAAKS,aAAL,CAAmB3B,IAAnB,CAAvB;;YAEIkB,cAAJ,EAAoB;UAChBf,WAAW,CAAC,MAAKW,gBAAN,CAAX;gBAEKD,iBAAL,CAAuBb,IAAvB,IAA+B,CAACkB,cAAD,EAAiBC,QAAjB,CAA/B;gBACKL,gBAAL,GAAwBZ,YAAY,CAAC,MAAKa,kBAAN,CAApC;SAJJ,MAKO;gBACEa,mBAAL,CAAyBC,IAAzB,CAA8B;YAC1B7B,IAAI,EAAJA,IAD0B;YAE1B8B,SAAS,EAAEX,QAAQ,CAACG,SAAT,GAAqBS;WAFpC;;UAKAd,WAAA,CAAkB,MAAKe,eAAvB,EAAwChC,IAAxC;;;cAGCW,WAAL,CAAkBQ,QAAQ,CAACc,KAAT,GAAiBjC,IAAnC,IAA4CmB,QAA5C;;cAEKe,mBAAL;;cACKX,OAAL;;KA9DW;;UAkEnBG,YAlEmB,GAkEJ,UAAC1B,IAAD,EAAOmB,QAAP,EAAiBC,UAAjB,EAAgC;UACvCpB,IAAJ,EAAU;YACFA,IAAI,IAAI,MAAKa,iBAAjB,EAAoC;qDACG,MAAKA,iBAAL,CAAuBb,IAAvB,CADH;cACzBkB,cADyB;cACTC,SADS;;gBAG3BS,mBAAL,CAAyBC,IAAzB,CAA8B;YAC1B7B,IAAI,EAAJA,IAD0B;YAE1B8B,SAAS,EAAEX,SAAQ,CAACG,SAAT,GAAqBS,MAFN;YAG1BI,UAAU,EAAEjB,cAAc,CAACI,SAAf,GAA2BS;WAH3C;;iBAMO,MAAKlB,iBAAL,CAAuBb,IAAvB,CAAP;SATJ,MAUO,IAAI,MAAKW,WAAL,CAAiBX,IAAjB,MAA2BmB,QAA/B,EAAyC;cACxCC,UAAJ,EAAgB;YACZD,QAAQ,CAACC,UAAT,GAAsB,IAAtB;WADJ,MAEO;mBACI,MAAKT,WAAL,CAAiBX,IAAjB,CAAP;;kBAEK4B,mBAAL,CAAyBC,IAAzB,CAA8B;cAC1B7B,IAAI,EAAJA,IAD0B;cAE1BmC,UAAU,EAAEhB,QAAQ,CAACG,SAAT,GAAqBS;aAFrC;;YAKAd,WAAA,CAAkB,MAAKe,eAAvB,EAAwChC,IAAxC;;;;cAIHkC,mBAAL;;cACKX,OAAL;;KA9FW;;UAkGnBa,mBAlGmB,GAkGG,YAAM;wBACmB,MAAK7G,KADxB;UAChB8G,cADgB,eAChBA,cADgB;UACAC,cADA,eACAA,cADA;YAGnBN,eAAL,GAAuB,MAAKO,iBAAL,CACnBtB,SAAA,CAAgBA,UAAA,CAAiBoB,cAAjB,IAAmCA,cAAc,CAAC,MAAK9G,KAAN,CAAd,IAA8B,EAAjE,GAAsE8G,cAAtF,CADmB,CAAvB;YAGKG,eAAL,GAAuB,MAAKD,iBAAL,CACnBtB,SAAA,CAAgBA,UAAA,CAAiBqB,cAAjB,IAAmCA,cAAc,CAAC,MAAK/G,KAAN,CAAd,IAA8B,EAAjE,GAAsE+G,cAAtF,CADmB,CAAvB;KAxGe;;UA6GnBG,YA7GmB,GA6GJ;aAAO;QAClBD,eAAe,EAAE,MAAKA,eADJ;QAElBR,eAAe,EAAE,MAAKA;OAFX;KA7GI;;UAwHnBU,oBAxHmB;UAyHnBd,mBAzHmB,GAyHG,EAzHH;;UA0HnBe,mBA1HmB,GA0HG,YAAM;UACpB,MAAKf,mBAAL,CAAyB3F,MAA7B,EAAqC;YAC3B2F,mBAAmB,sBAAO,MAAKA,mBAAZ,CAAzB;;cAEKA,mBAAL,CAAyB3F,MAAzB,GAAkC,CAAlC;YAEM2G,UAAU,GAAG,EAAnB;YACMC,WAAW,GAAG,EAApB;YACMlC,WAAW,GAAG,MAAKA,WAAzB;YACImC,cAAc,GAAG,KAArB;QAEAlB,mBAAmB,CAACtC,OAApB,CAA4B,UAAApB,IAAI,EAAI;cAC5B,EAAEA,IAAI,CAAC8B,IAAL,IAAaW,WAAf,CAAJ,EAAiC;mBACtBzC,IAAI,CAAC4D,SAAZ;;;cAGA5D,IAAI,CAAC4D,SAAL,KAAmB5D,IAAI,CAACiE,UAA5B,EAAwC;gBAChC,eAAejE,IAAf,IAAuB,gBAAgBA,IAA3C,EAAiD;kBACvCiD,QAAQ,GAAG,MAAKQ,aAAL,CAAmBzD,IAAI,CAAC8B,IAAxB,CAAjB;;kBAEImB,QAAJ,EAAc;gBACVA,QAAQ,CAAC4B,eAAT,CAAyB7E,IAAzB;;;;2BAIOA,IAAf,IAAuB+C,SAAA,CAAgB2B,UAAhB,EAA4B1E,IAAI,CAAC8B,IAAjC,EAAuC9B,IAAI,CAAC4D,SAA5C,CAAvB;4BACgB5D,IAAhB,IAAwB+C,SAAA,CAAgB4B,WAAhB,EAA6B3E,IAAI,CAAC8B,IAAlC,EAAwC9B,IAAI,CAACiE,UAA7C,CAAxB;YAEAW,cAAc,GAAG,IAAjB;;SAjBR;;YAqBIA,cAAJ,EAAoB;cACZ7B,UAAA,CAAiB,MAAK1F,KAAL,CAAWyH,UAA5B,CAAJ,EAA6C;kBACpCC,cAAL;;;cAGAhC,UAAA,CAAiB,MAAK1F,KAAL,CAAW2H,aAA5B,CAAJ,EAAgD;kBACvC3H,KAAL,CAAW2H,aAAX,CAAyB,MAAKC,SAA9B,EAAyCP,UAAzC,EAAqDC,WAArD;;;;KAhKG;;UAsKnBX,mBAtKmB,GAsKG;aAAO,MAAKtB,eAAL,GAAuB,MAAK2B,iBAAL,CAAuB,MAAK5B,WAA5B,CAA9B;KAtKH;;UAwKnBgB,aAxKmB,GAwKH,UAAA3B,IAAI,EAAI;UAChBA,IAAJ,EAAU;YACAoD,KAAK,GAAG,MAAKzC,WAAL,CAAiBX,IAAjB,KAA0BiB,SAAA,CAAgB,MAAKL,eAArB,EAAsCZ,IAAtC,CAAxC;;YAEIoD,KAAJ,EAAW;iBACAA,KAAP;;;KA7KO;;UAkLnBH,cAlLmB,GAkLF,UAAA9G,QAAQ;aACpB,MAAKuE,qBAAL,GAA6B,IAAI2C,OAAJ,CAAY,UAAAC,OAAO,EAAI;YACzCN,UADyC,GAC1B,MAAKzH,KADqB,CACzCyH,UADyC;YAG7CO,kBAAJ;YACIC,8BAAJ;YACIC,YAAJ;YACIC,UAAJ;YAEMC,MAAM,GAAGX,UAAU,CAAC,MAAKG,SAAL,CAAeS,OAAhB,EAAyB,MAAKC,SAA9B,CAAzB;;YACMC,YAAY,GAAG,SAAfA,YAAe,CAAAX,SAAS;iBAC1BG,OAAO,CAACrC,WAAA,CAAkB9E,QAAlB,EAA4B8E,WAAA,CAAkBwC,YAAlB,EAAgCN,SAAhC,CAA5B,CAAD,CADmB;SAA9B;;YAGIlC,SAAA,CAAgB0C,MAAhB,CAAJ,EAA6B;cACrB,CAAC,MAAKlD,aAAV,EAAyB;kBAChBA,aAAL,GAAqB,IAArB;;kBAEKc,OAAL;;;UAGJiC,8BAA8B,GAAG,wCAAAO,WAAW;mBAAKR,kBAAkB,GAAGQ,WAAW,CAACD,YAAD,CAArC;WAA5C;;UAEAJ,UAAU,GAAGC,MAAM,CACd/I,IADQ,CACH;mBAAM,KAAK,CAAX;WADG,EACW,UAAAoJ,MAAM;mBAAIA,MAAJ;WADjB,EAERpJ,IAFQ,CAEH,UAAAoJ,MAAM,EAAI;gBACRT,kBAAJ,EAAwB;qBACbA,kBAAP;;;kBAGCC,8BAAL,GAAsC,IAAtC;kBAEK/C,aAAL,GAAqB,KAArB;mBAEO,MAAKwD,eAAL,CAAqBD,MAArB,EAA6BF,YAA7B,CAAP;WAXK,CAAb;SATJ,MAsBO;cACC,MAAKrD,aAAT,EAAwB;kBACfA,aAAL,GAAqB,KAArB;;;UAGJiD,UAAU,GAAG,MAAKO,eAAL,CAAqBN,MAArB,EAA6BG,YAA7B,CAAb;;;YAGA,MAAKN,8BAAT,EAAyC;gBAChCA,8BAAL,CAAoC,UAAArH,QAAQ,EAAI;YAC5CsH,YAAY,GAAGtH,QAAf;mBAEOuH,UAAP;WAHJ;;;cAOCF,8BAAL,GAAsCA,8BAAtC;OAlD0B,CADT;KAlLN;;UAwOnBS,eAxOmB,GAwOD,UAACC,YAAD,EAAe/H,QAAf,EAA4B;UACtC+H,YAAY,KAAKA,YAAY,YAAYxI,KAAxB,IAAiC,OAAOwI,YAAP,KAAwB,QAA9D,CAAhB,EAAyF;QACrF5G,OAAO,CACH,KADG,iIAAP;eAKO,MAAKiE,OAAL,CAAapF,QAAb,CAAP;;;aAGG,MAAKgI,WAAL,CACHD,YAAY,IAAI,EADb,EAEH,UAACP,MAAD,EAAS1E,OAAT,EAAqB;iCACOA,OAAO,CAACqC,SAAR,EADP;uDACT8C,MADS;YACTA,MADS,sCACA,EADA;;YAGbT,MAAJ,EAAY;iBACD;YACHS,MAAM,oBACCA,MADD,sBAEDnE,oBAFC,EAEsB0D,MAFtB;WADV;;;YAQAS,MAAM,CAACnE,oBAAD,CAAV,EAAkC;iBACvBmE,MAAM,CAACnE,oBAAD,CAAb;iBAEO;YACHmE,MAAM,EAANA;WADJ;;;;OAjBL,EAwBHjI,QAxBG,EAyBH,IAzBG,CAAP;KAlPe;;UA+QnBkI,SA/QmB,GA+QP,UAAArE,IAAI,EAAI;UACVoD,KAAK,GAAG,MAAKzB,aAAL,CAAmB3B,IAAnB,CAAd;;MAEA1C,OAAO,CAAC,CAAC0C,IAAD,IAASoD,KAAV,uBAA+BpD,IAA/B,qEAAP;MACA1C,OAAO,CAAC0C,IAAD,gEAAP;;UAEIoD,KAAJ,EAAW;eACAA,KAAK,CAACkB,IAAN,EAAP;;KAtRW;;UA0RnBC,UA1RmB,GA0RN,UAACvE,IAAD,EAAOwE,MAAP,EAAerI,QAAf;aACT,MAAKsI,UAAL,qBAESzE,IAFT,EAEgBwE,MAFhB,GAIIrI,QAJJ,CADS;KA1RM;;UAkSnBgI,WAlSmB,GAkSL,YAAiD;UAAhDO,UAAgD,uEAAnC,EAAmC;UAA/BC,SAA+B;UAApBxI,QAAoB;UAAVyI,KAAU;;UACrDC,WAAW,GAAG,MAAKtC,iBAAL,CAAuBmC,UAAvB,CAApB;;MAEAzD,UAAA,CAAiB,MAAKN,WAAtB,EAAmC,UAAC1B,OAAD,EAAUe,IAAV,EAAmB;YAC5C8E,IAAI,GAAG9E,IAAI,IAAI0E,UAAR,GAAqBA,UAAU,CAAC1E,IAAD,CAA/B,GAAwCiB,SAAA,CAAgB4D,WAAhB,EAA6B7E,IAA7B,CAArD;;YAEI,CAACiB,WAAA,CAAkB6D,IAAlB,CAAD,IAA4BF,KAAhC,EAAuC;cAC7BG,SAAS,GAAGJ,SAAS,CAACG,IAAD,EAAO7F,OAAP,CAA3B;;cAEI8F,SAAJ,EAAe;gBACL5C,UAAU,GAAG,MAAKgB,SAAL,CAAe6B,WAAf,CAA2BhF,IAA3B,CAAnB;;mCAC8Bf,OAAO,CAACgG,OAAR,CAAgBF,SAAhB,CAFnB;gBAEKjD,SAFL,oBAEHC,MAFG;;YAIX9C,OAAO,CAACiG,cAAR,CAAuBH,SAAvB;;gBAEI,YAAYA,SAAZ,IAAyB,gBAAgBA,SAA7C,EAAwD;kBAC9CI,QAAQ,GAAGlE,SAAA,CAAgB,MAAKW,mBAArB,EAA0C,UAAA1D,IAAI;uBAAIA,IAAI,CAAC8B,IAAL,KAAcA,IAAlB;eAA9C,CAAjB;;kBAEImF,QAAJ,EAAc;oBACN,EAAE,gBAAgBA,QAAlB,CAAJ,EAAiC;kBAC7BA,QAAQ,CAAChD,UAAT,GAAsBgD,QAAQ,CAACrD,SAA/B;;;gBAGJqD,QAAQ,CAACrD,SAAT,GAAqBA,SAArB;eALJ,MAMO;sBACEF,mBAAL,CAAyBC,IAAzB,CAA8B;kBAC1B7B,IAAI,EAAJA,IAD0B;kBAE1B8B,SAAS,EAATA,SAF0B;kBAG1BK,UAAU,EAAVA;iBAHJ;;;;;OAtBpB;aAiCO,MAAKZ,OAAL,CAAapF,QAAb,CAAP;KAtUe;;UA4VnBoF,OA5VmB,GA4VT,UAAApF,QAAQ;aACd,IAAIkH,OAAJ,CAAY,UAAAC,OAAO;eAAI,MAAK8B,WAAL,CAAiB;iBAAM9B,OAAO,CAACrC,WAAA,CAAkB9E,QAAlB,EAA4B,MAAKgH,SAAjC,CAAD,CAAb;SAAjB,CAAJ;OAAnB,CADc;KA5VC;;UA+VnBkC,UA/VmB,GA+VN,YAAa;UAClBlJ,QAAJ;;wCADaC,IAAS;QAATA,IAAS;;;UAGlB6E,UAAA,CAAiB7E,IAAI,CAACA,IAAI,CAACH,MAAL,GAAc,CAAf,CAArB,CAAJ,EAA6C;QACzCE,QAAQ,GAAGC,IAAI,CAACkJ,GAAL,EAAX;;;UAGAlJ,IAAI,CAACH,MAAT,EAAiB;YACPsJ,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;UACrBA,KAAK,CAAClG,OAAN,CAAc,UAAAU,IAAI,EAAI;gBACdpE,KAAK,CAACC,OAAN,CAAcmE,IAAd,CAAJ,EAAyB;cACrBuF,OAAO,CAACvF,IAAD,CAAP;aADJ,MAEO;kBACGf,OAAO,GAAG,MAAKoF,SAAL,CAAerE,IAAf,CAAhB;;kBAEIf,OAAJ,EAAa;gBACTA,OAAO,CAACwG,SAAR;;;WAPZ;SADJ;;QAcAF,OAAO,CAACnJ,IAAD,CAAP;OAfJ,MAgBO;QACH6E,UAAA,CAAiB,MAAKN,WAAtB,EAAmC,UAAA1B,OAAO;iBAAIA,OAAO,CAACwG,SAAR,EAAJ;SAA1C;;YAEIxE,UAAA,CAAiB,MAAK1F,KAAL,CAAWyH,UAA5B,CAAJ,EAA6C;gBACpCC,cAAL;;;;aAID,MAAKyC,YAAL,CAAkBvJ,QAAlB,CAAP;KA9Xe;;UAiYnBuJ,YAjYmB,GAiYJ,UAAAvJ,QAAQ,EAAI;UACjBwJ,qBAAqB,GAAG3L,MAAM,CAACkF,IAAP,CAAY,MAAKyB,WAAjB,EAA8BhD,GAA9B,CAAkC,UAAAqC,IAAI;eAAI,MAAKW,WAAL,CAAiBX,IAAjB,EAAuB4F,WAAvB,EAAJ;OAAtC,CAA9B;MAEAD,qBAAqB,CAAC9D,IAAtB,CAA2B,MAAKnB,qBAAhC;aAEO2C,OAAO,CAACwC,GAAR,CAAYF,qBAAZ,EAAmC/K,IAAnC,CAAwC;eAAMqG,WAAA,CAAkB9E,QAAlB,EAA4B,MAAKgH,SAAjC,CAAN;OAAxC,CAAP;KAtYe;;UAyYnBsC,SAzYmB,GAyYP,UAACzF,IAAD,EAAO7D,QAAP,EAAoB;UACtB8C,OAAO,GAAG,MAAKoF,SAAL,CAAerE,IAAf,CAAhB;;UAEIf,OAAJ,EAAa;eACFA,OAAO,CAACwG,SAAR,CAAkBtJ,QAAlB,CAAP;;;aAGG8E,WAAA,CAAkB9E,QAAlB,CAAP;KAhZe;;UAmZnB2J,MAnZmB,GAmZV,UAACpB,UAAD,EAAavI,QAAb,EAA0B;YAC1BiG,mBAAL;;UAEInB,UAAA,CAAiByD,UAAjB,CAAJ,EAAkC;QAC9BvI,QAAQ,GAAGuI,UAAX;QACAA,UAAU,GAAG,EAAb;;;aAGG,MAAKP,WAAL,CAAiBO,UAAjB,EAA6B,UAACF,MAAD,EAASvF,OAAT;eAAqBA,OAAO,CAACoC,OAAR,CAAgBmD,MAAhB,CAArB;OAA7B,EAA2ErI,QAA3E,EAAqF,IAArF,CAAP;KA3Ze;;UA8ZnBsI,UA9ZmB,GA8ZN,UAACC,UAAD,EAAavI,QAAb;aAA0B,MAAKgI,WAAL,CAAiBO,UAAjB,EAA6B,UAAAF,MAAM;eAAIA,MAAJ;OAAnC,EAA+CrI,QAA/C,CAA1B;KA9ZM;;UAganB4J,UAhamB,GAgaN,UAACC,UAAD,EAAa7J,QAAb,EAA0B;YAC9BoG,iBAAL,CAAuBtB,SAAA,CAAgB+E,UAAhB,CAAvB,EAAoD,MAAKhE,eAAzD;;MAEAf,KAAA,CAAY,MAAKe,eAAjB;aAEO,MAAKmC,WAAL,CAAiB6B,UAAjB,EAA6B,UAAAjE,MAAM;eAAK;UAAEA,MAAM,EAANA;SAAP;OAAnC,EAAqD5F,QAArD,CAAP;KArae;;UAwanB8J,WAxamB,GAwaL,UAACC,YAAD,EAAe/J,QAAf;aAA4B,MAAKgI,WAAL,CAAiB+B,YAAjB,EAA+B,UAAAC,QAAQ;eAAK;UAAEA,QAAQ,EAARA;SAAP;OAAvC,EAA2DhK,QAA3D,CAA5B;KAxaK;;UAyanBiK,SAzamB,GAyaP,UAACC,UAAD,EAAalK,QAAb;aAA0B,MAAKgI,WAAL,CAAiBkC,UAAjB,EAA6B,UAAAC,MAAM;eAAK;UAAEA,MAAM,EAANA;SAAP;OAAnC,EAAqDnK,QAArD,CAA1B;KAzaO;;UA0anBoK,WA1amB,GA0aL,UAACC,YAAD,EAAerK,QAAf;aAA4B,MAAKgI,WAAL,CAAiBqC,YAAjB,EAA+B,UAAAC,QAAQ;eAAK;UAAEA,QAAQ,EAARA;SAAP;OAAvC,EAA2DtK,QAA3D,CAA5B;KA1aK;;UA2anBuK,YA3amB,GA2aJ,UAACC,YAAD,EAAexK,QAAf;aAA4B,MAAKgI,WAAL,CAAiBwC,YAAjB,EAA+B,UAAAC,QAAQ;eAAK;UAAEA,QAAQ,EAARA;SAAP;OAAvC,EAA2DzK,QAA3D,CAA5B;KA3aI;;UA4anB0K,UA5amB,GA4aN,UAACC,UAAD,EAAa3K,QAAb;aAA0B,MAAKgI,WAAL,CAAiB2C,UAAjB,EAA6B,UAAA1C,MAAM;eAAK;UAAEA,MAAM,EAANA;SAAP;OAAnC,EAAqDjI,QAArD,CAA1B;KA5aM;;UA8anB4K,WA9amB,GA8aL,UAACvC,MAAD,EAASrI,QAAT;aAAsB,MAAKsI,UAAL,CAAgBxD,SAAA,CAAgB,MAAKN,WAArB,EAAkC;eAAM6D,MAAN;OAAlC,CAAhB,EAAiErI,QAAjE,CAAtB;KA9aK;;UA+anB6K,WA/amB,GA+aL,UAACV,MAAD,EAASnK,QAAT;aACV,MAAK4K,WAAL,CACI;QACIT,MAAM,EAANA;OAFR,EAIInK,QAJJ,CADU;KA/aK;;UAubnB8K,aAvbmB,GAubH,UAACR,QAAD,EAAWtK,QAAX;aACZ,MAAK4K,WAAL,CACI;QACIN,QAAQ,EAARA;OAFR,EAIItK,QAJJ,CADY;KAvbG;;UA+bnB+K,aA/bmB,GA+bH,UAACf,QAAD,EAAWhK,QAAX;aACZ,MAAK4K,WAAL,CACI;QACIZ,QAAQ,EAARA;OAFR,EAIIhK,QAJJ,CADY;KA/bG;;UAucnBgL,aAvcmB,GAucH,UAACP,QAAD,EAAWzK,QAAX;aACZ,MAAK4K,WAAL,CACI;QACIH,QAAQ,EAARA;OAFR,EAIIzK,QAJJ,CADY;KAvcG;;UA+cnBiL,WA/cmB,GA+cL,UAAChD,MAAD,EAASjI,QAAT;aACV,MAAK4K,WAAL,CACI;QACI3C,MAAM,EAANA;OAFR,EAIIjI,QAJJ,CADU;KA/cK;;UAGViG,mBAAL;;;;;;;qCAGa;aACN;QACHzB,WAAW,EAAE,KAAKA,WADf;QAEHa,UAAU,EAAE,KAAKA,UAFd;QAGHE,YAAY,EAAE,KAAKA,YAHhB;QAIH6C,UAAU,EAAE,KAAKA,UAJd;QAKH9B,YAAY,EAAE,KAAKA,YALhB;QAMHU,SAAS,EAAE,KAAKA;OANpB;;;;sCA2GckE,YAA0B;UAAdC,OAAc,uEAAJ,EAAI;MACxCrG,UAAA,CAAiBoG,UAAjB,EAA6B,UAACvC,IAAD,EAAO9E,IAAP;eAAgBiB,SAAA,CAAgBqG,OAAhB,EAAyBtH,IAAzB,EAA+B8E,IAA/B,CAAhB;OAA7B;aAEOwC,OAAP;;;;wCAoNgB;MAChBrG,SAAA,CAAgB,KAAK1F,KAAL,CAAWgM,IAA3B,EAAiC,KAAKpE,SAAtC;;;;uCAGeqE,WAAW;;;MAC1BvG,SAAA,CAAgB,KAAK1F,KAAL,CAAWgM,IAA3B,EAAiC,KAAKpE,SAAtC;MAEAhD,WAAW,CAAC,KAAKuC,oBAAN,CAAX,CAH0B;;WAMrBA,oBAAL,GAA4BxC,YAAY,CAAC,YAAM;QAC3C,MAAI,CAACyC,mBAAL;OADoC,CAAxC;;;;2CAKmB;MACnB1B,SAAA,CAAgB,KAAK1F,KAAL,CAAWgM,IAA3B,EAAiC,IAAjC;;;;8BA8HM;UACApE,SAAS,GAAG,KAAKA,SAAvB;yBACsC,KAAK5H,KAFrC;UAEAkM,QAFA,gBAEAA,QAFA;UAEUC,MAFV,gBAEUA,MAFV;UAEkBC,SAFlB,gBAEkBA,SAFlB;;UAIFA,SAAJ,EAAe;eACJC,aAAa,CAACD,SAAD,EAAY;UAAExE,SAAS,EAATA;SAAd,CAApB;;;UAGAlC,UAAA,CAAiByG,MAAjB,CAAJ,EAA8B;eACnBA,MAAM,CAACvE,SAAD,CAAb;;;UAGAlC,UAAA,CAAiBwG,QAAjB,CAAJ,EAAgC;eACrBA,QAAQ,CAACtE,SAAD,CAAf;;;aAGG0E,QAAQ,CAAClK,GAAT,CAAa8J,QAAb,EAAuB,UAAAK,KAAK;eAC/BA,KAAK,IAAI7G,WAAA,CAAkB6G,KAAK,CAACC,IAAxB,CAAT,GACMC,YAAY,CAACF,KAAD,EAAQ;UAChB3E,SAAS,EAATA;SADQ,CADlB,GAIM2E,KALyB;OAA5B,CAAP;;;;6BASK;;;UACGG,UADH,GACkB,KAAK1M,KADvB,CACG0M,UADH;UAECC,WAAW,GAAGlO,MAAM,CAACkF,IAAP,CAAY,KAAKyB,WAAjB,EAA8BhD,GAA9B,CAAkC,UAAAP,IAAI;eAAK;UAC3DA,IAAI,EAAJA,IAD2D;UAE3DoH,MAAM,EAAE,MAAI,CAAC7D,WAAL,CAAiBvD,IAAjB,EAAuBkE,SAAvB;SAF8C;OAAtC,CAApB;UAKM0D,WAAW,GAAG/D,QAAA,CAAeiH,WAAf,EAA4B,UAACtE,OAAD,SAA+B;YAAnBxG,IAAmB,SAAnBA,IAAmB;YAAboH,MAAa,SAAbA,MAAa;;YACvEyD,UAAJ,EAAgB;UACZA,UAAU,CAACzD,MAAD,EAASpH,IAAT,CAAV;;;YAGA,YAAYoH,MAAZ,KAAuBA,MAAM,CAAC8B,MAAP,IAAiB,CAACrF,WAAA,CAAkBuD,MAAM,CAACzC,MAAzB,CAAzC,CAAJ,EAAgF;UAC5E6B,OAAO,CAACxG,IAAD,CAAP,GAAgBoH,MAAM,CAACzC,MAAvB;;OANY,CAApB;UAUMoG,WAAW,GAAGlH,QAAA,CAChBiH,WADgB,EAEhB,UAACtE,OAAD;YAAYxG,IAAZ,SAAYA,IAAZ;YAAkBoH,MAAlB,SAAkBA,MAAlB;eAA+BpH,IAAI,IAAI4H,WAAR,IAAuB/D,SAAA,CAAgB2C,OAAhB,EAAyBxG,IAAzB,EAA+B4H,WAAW,CAAC5H,IAAD,CAA1C,CAAtD;OAFgB,CAApB;UAKMgL,QAAQ,GAAGF,WAAW,CAACG,IAAZ,CAAiB;YAAG7D,MAAH,SAAGA,MAAH;eAAgBA,MAAM,CAAC4D,QAAvB;OAAjB,CAAjB;UACM9B,MAAM,GAAG4B,WAAW,CAACG,IAAZ,CAAiB;YAAG7D,MAAH,SAAGA,MAAH;eAAgBA,MAAM,CAAC8B,MAAvB;OAAjB,CAAf;UACMG,QAAQ,GAAGyB,WAAW,CAACG,IAAZ,CAAiB;YAAG7D,MAAH,SAAGA,MAAH;eAAgBA,MAAM,CAACiC,QAAvB;OAAjB,CAAjB;UACMN,QAAQ,GAAG+B,WAAW,CAACG,IAAZ,CAAiB;YAAG7D,MAAH,SAAGA,MAAH;eAAgBA,MAAM,CAAC2B,QAAvB;OAAjB,CAAjB;UACMS,QAAQ,GAAG,KAAKnG,aAAL,IAAsByH,WAAW,CAACG,IAAZ,CAAiB;YAAG7D,MAAH,SAAGA,MAAH;eAAgBA,MAAM,CAACoC,QAAvB;OAAjB,CAAvC;UAEMzD,SAAS,GAAI,KAAKA,SAAL,GAAiB;QAChCxC,WAAW,oBAAO,KAAKA,WAAZ,CADqB;QAEhCC,eAAe,EAAE,KAAKA,eAFU;QAGhC0H,OAAO,EAAErH,QAAA,CAAeiH,WAAf,EAA4B,UAACI,OAAD;cAAYlL,IAAZ,UAAYA,IAAZ;cAAkBoH,MAAlB,UAAkBA,MAAlB;iBAA+BvD,SAAA,CAAgBqH,OAAhB,EAAyBlL,IAAzB,EAA+BoH,MAA/B,CAA/B;SAA5B,CAHuB;QAIhCZ,OAAO,oBACA,KAAK5B,eADL,EAEAmG,WAFA,CAJyB;QAQhCI,OAAO,EAAEtH,QAAA,CAAeiH,WAAf,EAA4B,UAACK,OAAD,UAA+B;cAAnBnL,IAAmB,UAAnBA,IAAmB;cAAboH,MAAa,UAAbA,MAAa;;cAC5DA,MAAM,CAAC4D,QAAX,EAAqB;YACjBnH,SAAA,CAAgBsH,OAAhB,EAAyBnL,IAAzB,EAA+BoH,MAAM,CAACJ,MAAtC;;SAFC,CARuB;QAahCoE,MAAM,EAAEvH,QAAA,CAAeiH,WAAf,EAA4B,UAACM,MAAD;cAAWpL,IAAX,UAAWA,IAAX;cAAiBoH,MAAjB,UAAiBA,MAAjB;iBAChCvD,SAAA,CAAgBuH,MAAhB,EAAwBpL,IAAxB,EAA8BoH,MAAM,CAAC8B,MAArC,CADgC;SAA5B,CAbwB;QAgBhCmC,QAAQ,EAAExH,QAAA,CAAeiH,WAAf,EAA4B,UAACO,QAAD;cAAarL,IAAb,UAAaA,IAAb;cAAmBoH,MAAnB,UAAmBA,MAAnB;iBAClCvD,SAAA,CAAgBwH,QAAhB,EAA0BrL,IAA1B,EAAgCoH,MAAM,CAACiC,QAAvC,CADkC;SAA5B,CAhBsB;QAmBhCiC,QAAQ,EAAEzH,QAAA,CAAeiH,WAAf,EAA4B,UAACQ,QAAD;cAAatL,IAAb,UAAaA,IAAb;cAAmBoH,MAAnB,UAAmBA,MAAnB;iBAClCvD,SAAA,CAAgByH,QAAhB,EAA0BtL,IAA1B,EAAgCoH,MAAM,CAAC2B,QAAvC,CADkC;SAA5B,CAnBsB;QAsBhCwC,SAAS,EAAE1H,QAAA,CAAeiH,WAAf,EAA4B,UAACS,SAAD;cAAcvL,IAAd,UAAcA,IAAd;cAAoBoH,MAApB,UAAoBA,MAApB;iBACnCvD,SAAA,CAAgB0H,SAAhB,EAA2BvL,IAA3B,EAAiCoH,MAAM,CAACoC,QAAxC,CADmC;SAA5B,CAtBqB;QA0BhCgC,WAAW,EAAE3H,QAAA,CAAeiH,WAAf,EAA4B,UAACI,OAAD;cAAYlL,IAAZ,UAAYA,IAAZ;cAAkBoH,MAAlB,UAAkBA,MAAlB;iBAAgC8D,OAAO,CAAClL,IAAD,CAAP,GAAgBoH,MAAhD;SAA5B,CA1BmB;QA2BhCQ,WAAW,EAAXA,WA3BgC;QA4BhC6D,WAAW,EAAE5H,QAAA,CAAeiH,WAAf,EAA4B,UAACK,OAAD,UAA+B;cAAnBnL,IAAmB,UAAnBA,IAAmB;cAAboH,MAAa,UAAbA,MAAa;;cAChEA,MAAM,CAAC4D,QAAX,EAAqB;YACjBG,OAAO,CAACnL,IAAD,CAAP,GAAgBoH,MAAM,CAACJ,MAAvB;;SAFK,CA5BmB;QAiChC0E,UAAU,EAAE7H,QAAA,CAAeiH,WAAf,EAA4B,UAACM,MAAD;cAAWpL,IAAX,UAAWA,IAAX;cAAiBoH,MAAjB,UAAiBA,MAAjB;iBAA+BgE,MAAM,CAACpL,IAAD,CAAN,GAAeoH,MAAM,CAAC8B,MAArD;SAA5B,CAjCoB;QAkChCyC,YAAY,EAAE9H,QAAA,CACViH,WADU,EAEV,UAACO,QAAD;cAAarL,IAAb,UAAaA,IAAb;cAAmBoH,MAAnB,UAAmBA,MAAnB;iBAAiCiE,QAAQ,CAACrL,IAAD,CAAR,GAAiBoH,MAAM,CAACiC,QAAzD;SAFU,CAlCkB;QAsChCuC,YAAY,EAAE/H,QAAA,CACViH,WADU,EAEV,UAACQ,QAAD;cAAatL,IAAb,UAAaA,IAAb;cAAmBoH,MAAnB,UAAmBA,MAAnB;iBAAiCkE,QAAQ,CAACtL,IAAD,CAAR,GAAiBoH,MAAM,CAAC2B,QAAzD;SAFU,CAtCkB;QA0ChC8C,aAAa,EAAEhI,QAAA,CACXiH,WADW,EAEX,UAACe,aAAD;cAAkB7L,IAAlB,UAAkBA,IAAlB;cAAwBoH,MAAxB,UAAwBA,MAAxB;iBAAsCyE,aAAa,CAAC7L,IAAD,CAAb,GAAsBoH,MAAM,CAACoC,QAAnE;SAFW,CA1CiB;QA+ChCsC,cA/CgC,0BA+CjBlJ,IA/CiB,EA+CX;cACbA,IAAJ,EAAU;gBACAmJ,UAAU,GAAGhG,SAAS,CAACkB,SAAV,CAAoBrE,IAApB,CAAnB;mBAEOmJ,UAAU,IAAIA,UAAU,CAACD,cAAX,EAArB;;;eAGC,IAAIlJ,KAAT,IAAiBmD,SAAS,CAAC0F,WAA3B,EAAwC;gBAC9BO,WAAW,GAAGjG,SAAS,CAAC0F,WAAV,CAAsB7I,KAAtB,CAApB;;iBAEK,IAAIZ,GAAT,IAAgBgK,WAAhB,EAA6B;qBAClBA,WAAW,CAAChK,GAAD,CAAX,YAA4B1D,KAA5B,GAAoC0N,WAAW,CAAChK,GAAD,CAAX,CAAiBiK,OAArD,GAA+DD,WAAW,CAAChK,GAAD,CAAjF;;;SA1DoB;QA+DhCmC,OAAO,EAAE,KAAKA,OA/DkB;QAiEhC8C,SAAS,EAAE,KAAKA,SAjEgB;QAkEhCqB,YAAY,EAAE,KAAKA,YAlEa;;QAqEhCpB,IAAI,EAAE;iBAAM,MAAI,CAACnB,SAAX;SArE0B;QAuEhCsB,UAAU,EAAE,KAAKA,UAvEe;QAwEhCsB,UAAU,EAAE,KAAKA,UAxEe;QAyEhCc,UAAU,EAAE,KAAKA,UAzEe;QA0EhCN,WAAW,EAAE,KAAKA,WA1Ec;QA2EhCH,SAAS,EAAE,KAAKA,SA3EgB;QA4EhCH,WAAW,EAAE,KAAKA,WA5Ec;QA8EhCc,WAAW,EAAE,KAAKA,WA9Ec;QA+EhCE,aAAa,EAAE,KAAKA,aA/EY;QAgFhCD,WAAW,EAAE,KAAKA,WAhFc;QAiFhCE,aAAa,EAAE,KAAKA,aAjFY;QAmFhCpB,MAAM,EAAE,KAAKA,MAnFmB;QAoFhCT,UAAU,EAAE,KAAKA,UApFe;QAqFhCI,SAAS,EAAE,KAAKA,SArFgB;QAuFhC6D,MAAM,EAAE,CAAClB,QAvFuB;QAwFhCA,QAAQ,EAARA,QAxFgC;QAyFhC9B,MAAM,EAANA,MAzFgC;QA0FhCiD,SAAS,EAAE,CAACjD,MA1FoB;QA2FhCG,QAAQ,EAARA,QA3FgC;QA4FhC+C,UAAU,EAAE,CAAC/C,QA5FmB;QA6FhCN,QAAQ,EAARA,QA7FgC;QA8FhCS,QAAQ,EAARA;OA9FJ;aAiGO,oBAAC,WAAD,CAAa,QAAb;QAAsB,KAAK,EAAE,KAAK6C,cAAL;SAAwB,KAAKC,OAAL,EAArD,CAAP;;;;;EAppBWC;;AAAbnJ,KACKoJ,cAAc;AADnBpJ,KAGKqJ,YAAY;EACfnC,MAAM,EAAEoC,SAAS,CAACC,IADH;EAEfpC,SAAS,EAAE1G,sBAFI;EAGfwG,QAHe,oBAGNlM,KAHM,EAGU;QACjByO,EAAE,GAAGF,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACC,IAAX,EAAiBD,SAAS,CAACI,IAA3B,CAApB,CAAT;;QAEI,CAAC3O,KAAK,CAACmM,MAAP,IAAiB,CAACnM,KAAK,CAACoM,SAA5B,EAAuC;MACnCqC,EAAE,GAAGA,EAAE,CAACG,UAAR;;;uCAJW/N,IAAM;MAANA,IAAM;;;WAOd4N,EAAE,MAAF,UAAGzO,KAAH,SAAaa,IAAb,EAAP;GAVW;EAYfiG,cAAc,EAAEyH,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACM,MAAX,EAAmBN,SAAS,CAACC,IAA7B,CAApB,CAZD;EAafzH,cAAc,EAAEwH,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACM,MAAX,EAAmBN,SAAS,CAACC,IAA7B,CAApB,CAbD;EAcf7G,aAAa,EAAE4G,SAAS,CAACC,IAdV;EAef/G,UAAU,EAAE8G,SAAS,CAACC,IAfP;EAgBf9B,UAAU,EAAE6B,SAAS,CAACC,IAhBP;EAiBfxC,IAAI,EAAEuC,SAAS,CAACG,SAAV,CAAoB,CACtBH,SAAS,CAACC,IADY,EAEtBD,SAAS,CAACO,KAAV,CAAgB;IACZzL,OAAO,EAAEkL,SAAS,CAACQ;GADvB,CAFsB,CAApB;;AApBR9J,KA4BK+J,eAAe;EAClBlI,cAAc,EAAE,EADE;EAElBC,cAAc,EAAE;;;AC3CxB,SAASkI,QAAT,CAAkBjO,gBAAlB,EAAiD;MAAbkO,MAAa,uEAAJ,EAAI;MACvCC,YAAY,GAAGC,UAAU,CAAC,UAACpP,KAAD,EAAQoD,GAAR,EAAgB;QACjCiM,MADiC,qBACtBrP,KADsB;;QAEpCoM,SAFoC,GAERpM,KAFQ,CAEpCoM,SAFoC;QAEtBkD,SAFsB,4BAERtP,KAFQ;;KAI3C,gBAAD,EAAmB,gBAAnB,EAAqC,eAArC,EAAsD,YAAtD,EAAoE,YAApE,EAAkF,MAAlF,EAA0F+D,OAA1F,CAAkG,UAAA5C,IAAI,EAAI;UAClGA,IAAI,IAAIkO,MAAZ,EAAoB;YACZlO,IAAI,KAAK,gBAAT,IAA6BA,IAAI,KAAK,gBAA1C,EAA4D;UACxDmO,SAAS,CAACnO,IAAD,CAAT,qBAAuB+N,MAAM,CAAC/N,IAAD,CAA7B,EAAwCkO,MAAM,CAAClO,IAAD,CAA9C;;;eAEGkO,MAAM,CAAClO,IAAD,CAAb;;KALR;WAUI,oBAAC,IAAD,oBACQ+N,MADR,EAEQI,SAFR;MAGI,MAAM,EAAE,gBAAA1H,SAAS;eAAI,oBAAC,gBAAD,oBAAsByH,MAAtB;UAA8B,SAAS,EAAEzH,SAAzC;UAAoD,GAAG,EAAExE;WAA7D;;OAJzB;GAb2B,CAA/B;EAsBA+L,YAAY,CAACd,WAAb,GACI,8BAA8BrN,gBAAgB,CAACqN,WAAjB,IAAgCrN,gBAAgB,CAACyD,IAAjD,IAAyD,WAAvF,CADJ;SAGO8K,YAAY,CAACJ,YAAD,EAAenO,gBAAf,CAAnB;;;AAGJ,iBAAeF,SAAS,CAACmO,QAAD,CAAxB;;AC5BA,IAAIO,UAAU,GAAG,CAAjB;AACA,IAAMC,UAAU,GAAG;EACf1B,MAAM,EAAE,IADO;EAEflB,QAAQ,EAAE,KAFK;EAIf9B,MAAM,EAAE,KAJO;EAKfiD,SAAS,EAAE,IALI;EAOf9C,QAAQ,EAAE,KAPK;EAQf+C,UAAU,EAAE,IARG;EAUfrD,QAAQ,EAAE,KAVK;EAYfS,QAAQ,EAAE,KAZK;EAcfxC,MAAM,EAAE;CAdZ;;AAiBA,SAAS6G,OAAT,CAAiBtH,MAAjB,EAAyB;;;IACqBA,MAAM,KAAK;;;;AAGzD,SAASuH,sBAAT,CAAgCvH,MAAhC,EAAwCvE,GAAxC,EAA6CY,IAA7C,EAAmD;EAC/C1C,OAAO,CACH,CAAC2D,WAAA,CAAkB0C,MAAlB,CADE,qEAEyD3D,IAAI,IAC5DA,IAAI,GAAG,IAHR,SAGeZ,GAHf,uCAAP;;;AAOJ,AAAO,IAAMyK,SAAS,GAClB,CACM;EACI7J,IAAI,EAAE8J,SAAS,CAACqB,MADpB;EAGIC,aAAa,EAAEtB,SAAS,CAACQ,GAH7B;EAIIe,aAAa,EAAEvB,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACM,MAAX,EAAmBN,SAAS,CAACC,IAA7B,CAApB,CAJnB;EAKIuB,cAAc,EAAExB,SAAS,CAACC,IAL9B;EAMIwB,WAAW,EAAEzB,SAAS,CAACM,MAN3B;EAOIoB,gBAAgB,EAAE1B,SAAS,CAACM,MAPhC;EAQIqB,aAAa,EAAE3B,SAAS,CAAC4B,IAR7B;EASIC,iBAAiB,EAAE7B,SAAS,CAAC4B,IATjC;EAUInE,IAAI,EAAEuC,SAAS,CAACG,SAAV,CAAoB,CACtBH,SAAS,CAACC,IADY,EAEtBD,SAAS,CAACO,KAAV,CAAgB;IACZzL,OAAO,EAAEkL,SAAS,CAACQ;GADvB,CAFsB,CAApB,CAVV;EAgBIsB,OAAO,EAAE9B,SAAS,CAACC,IAhBvB;EAiBI8B,UAAU,EAAE/B,SAAS,CAACC,IAjB1B;EAmBIrC,MAAM,EAAEoC,SAAS,CAACC,IAnBtB;EAoBIpC,SAAS,EAAE1G,sBApBf;EAqBIwG,QArBJ,oBAqBalM,KArBb,EAqB6B;QACjByO,EAAE,GAAGF,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACC,IAAX,EAAiBD,SAAS,CAACI,IAA3B,CAApB,CAAT;;QAEI,CAAC3O,KAAK,CAACmM,MAAP,IAAiB,CAACnM,KAAK,CAACoM,SAAxB,IAAqCpM,KAAK,CAACkM,QAAN,KAAmB,IAA5D,EAAkE;MAC9DuC,EAAE,GAAGA,EAAE,CAACG,UAAR;;;sCAJW/N,IAAM;MAANA,IAAM;;;WAOd4N,EAAE,MAAF,UAAGzO,KAAH,SAAaa,IAAb,EAAP;;CA7Bd,CADG;AAmCP,AAAO,IAAMwN,WAAW,GAAG,sBAApB;AAEP,AAAO,SAASkC,cAAT,GAA0B;SACtBf,UAAU,EAAjB;;AAGJ,AAAO,SAASgB,WAAT,CAAqB5C,UAArB,EAAiC5N,KAAjC,EAAwC;MACrCkM,QADqC,GACLlM,KADK,CACrCkM,QADqC;MAC3BC,MAD2B,GACLnM,KADK,CAC3BmM,MAD2B;MACnBC,SADmB,GACLpM,KADK,CACnBoM,SADmB;;MAGvCA,SAAJ,EAAe;WACJC,aAAa,CAACD,SAAD,EAAY;MAAEwB,UAAU,EAAVA;KAAd,CAApB;;;MAGAlI,UAAA,CAAiByG,MAAjB,CAAJ,EAA8B;WACnBA,MAAM,CAACyB,UAAD,CAAb;;;MAGAlI,UAAA,CAAiBwG,QAAjB,CAAJ,EAAgC;WACrBA,QAAQ,CAAC0B,UAAD,CAAf;;;SAGGtB,QAAQ,CAAClK,GAAT,CAAa8J,QAAb,EAAuB,UAAAK,KAAK;WAC/BA,KAAK,IAAI7G,WAAA,CAAkB6G,KAAK,CAACC,IAAxB,CAAT,GACMC,YAAY,CAACF,KAAD,EAAQ;MAChBqB,UAAU,EAAVA;KADQ,CADlB,GAIMrB,KALyB;GAA5B,CAAP;;AASJ,AAAO,SAASkE,aAAT,CAAuBC,KAAvB,EAA8BC,KAA9B,EAAqC;MAClCC,aAAa,GAAG;IAClBC,YAAY,EAAEH,KAAK,CAACG,YADF;IAGlB/K,OAAO,EAAPA,OAHkB;IAIlB4D,OAAO,EAAPA,OAJkB;IAKlBC,cAAc,EAAdA,cALkB;IAMlBnC,eAAe,EAAfA,eANkB;IAOlB6C,WAAW,EAAXA,WAPkB;IASlBtB,IATkB,kBASX;aACI2H,KAAK,CAAC9C,UAAb;KAVc;IAYlBkD,OAAO,EAAE/K,SAZS;IAalBA,SAAS,EAATA,SAbkB;;IAelBgL,aAfkB,2BAeF;aACLJ,KAAP;KAhBc;IAmBlBpG,MAnBkB,kBAmBXtB,MAnBW,EAmBHrI,QAnBG,EAmBO;aACd8P,KAAK,CAACM,SAAN,CAAgBlL,OAAO,CAACmD,MAAD,CAAvB,EAAiCrI,QAAjC,CAAP;KApBc;IAsBlB+M,cAAc,EAAdA,cAtBkB;IAuBlBzD,SAAS,EAATA,SAvBkB;IAwBlB8G,SAAS,EAAEN,KAAK,CAACM,SAxBC;IAyBlBhL,OAAO,EAAPA,OAzBkB;IA0BlBiL,SAAS,EAATA,SA1BkB;IA2BlBC,WAAW,EAAXA,WA3BkB;IA4BlBC,SAAS,EAATA,SA5BkB;IA6BlBC,WAAW,EAAXA,WA7BkB;IA8BlBC,YAAY,EAAZA,YA9BkB;IA+BlBC,SAAS,EAATA,SA/BkB;IAgClBC,WAAW,EAAXA;GAhCJ;MAmCIC,iBAAJ;;WAES7H,cAAT,CAAwBH,SAAxB,EAAmC;QAC3B,YAAYA,SAAZ,IAAyB,gBAAgBA,SAA7C,EAAwD;MACpDU,SAAS;;;;WAIR1C,eAAT,OAAoD;QAAzBjB,SAAyB,QAAzBA,SAAyB;QAAdK,UAAc,QAAdA,UAAc;QACxCmJ,cADwC,GACrBW,KAAK,CAAC1Q,KADe,CACxC+P,cADwC;;QAG5CrK,UAAA,CAAiBqK,cAAjB,CAAJ,EAAsC;MAClCA,cAAc,CAACxJ,SAAD,EAAYK,UAAZ,EAAwB8J,KAAK,CAACe,YAAN,CAAmB7J,SAA3C,CAAd;;;;WAICyC,WAAT,CAAqBzJ,QAArB,EAA+B;IAC3B4Q,iBAAiB,CAACnS,IAAlB,CAAuBuB,QAAvB;WAEO4Q,iBAAP;;;WAGK1L,OAAT,CAAiB0D,SAAjB,EAA4B;QACpBkI,aAAJ;QAEQ1R,KAHgB,GAGQ0Q,KAHR,CAGhB1Q,KAHgB;QAGTyR,YAHS,GAGQf,KAHR,CAGTe,YAHS;;QAKpBA,YAAY,CAACvK,YAAjB,EAA+B;UACrBR,KAAK,GAAG1G,KAAK,CAACyE,IAApB;;kCAC6CgN,YAAY,CAACvK,YAAb,EAFlB;UAEnBD,eAFmB,yBAEnBA,eAFmB;UAEFR,eAFE,yBAEFA,eAFE;;UAIvBC,KAAK,IAAID,eAAb,EAA8B;YACpBkL,aAAa,GAAGjM,SAAA,CAAgBe,eAAhB,EAAiCC,KAAjC,CAAtB;QAEAgL,aAAa,GAAGhM,SAAA,CAAgBuB,eAAhB,EAAiCP,KAAjC,KAA2C,EAA3D;;YAEI,CAAChB,WAAA,CAAkBiM,aAAlB,CAAL,EAAuC;UACnCD,aAAa,CAAClL,MAAd,GAAuBmL,aAAvB;;;;;QAKJ9B,aApBgB,GAoBiB7P,KApBjB,CAoBhB6P,aApBgB;QAoBDC,aApBC,GAoBiB9P,KApBjB,CAoBD8P,aApBC;WAsBjBpG,OAAO,mBACP+F,UADO,EAEN/J,UAAA,CAAiBoK,aAAjB,IAAkCA,aAAa,CAAC9P,KAAD,CAA/C,GAAyD8P,aAFnD;;MAGVtJ,MAAM,EAAEd,UAAA,CAAiBmK,aAAjB,IACFA,aAAa,CAAC7P,KAAD,CADX,GAEF,mBAAmBA,KAAnB,GACA6P,aADA,GAEA;OACH6B,aARO,EASPlI,SATO,EAAd;;;WAaKzD,SAAT,GAAqB;6BACL2K,KAAK,CAACzH,MAAlB;;;WAGKiB,SAAT,CAAmBtJ,QAAnB,EAA6B;WACjB4Q,iBAAiB,GAAG,IAAI1J,OAAJ,CAAY,UAAAC,OAAO,EAAI;UACvC/H,KADuC,GACf0Q,KADe,CACvC1Q,KADuC;UAChCyR,YADgC,GACff,KADe,CAChCe,YADgC;;UAEzCzB,WAAW,qBAAQhQ,KAAK,CAACgQ,WAAd,EAA8BhQ,KAAK,CAACiQ,gBAApC,CAAjB;;0BAKIS,KAAK,CAACzH,MAPqC;UAI3CzC,MAJ2C,iBAI3CA,MAJ2C;UAK3C6E,QAL2C,iBAK3CA,QAL2C;UAM9BuG,SAN8B,mCAM3C/I,MAN2C;UAQvCjB,SARuC,GAQzB6J,YARyB,CAQvC7J,SARuC;UASzCiK,WAAW,GAAG,EAApB;UACIC,iBAAiB,GAAG,KAAxB;UACI9J,kBAAJ;UACIC,8BAAJ;UACIC,YAAJ;UACIC,UAAJ;aAEOyJ,SAAS,CAAClN,oBAAD,CAAhB;UAEMqN,iBAAiB,GAAGtT,MAAM,CAACkF,IAAP,CAAYqM,WAAZ,EAAyBpM,MAAzB,CAAgC,UAACoO,QAAD,EAAWnO,GAAX,EAAmB;eAClE+N,SAAS,CAAC/N,GAAD,CAAhB;;YAEI,CAACiO,iBAAD,IAAsB9R,KAAK,CAAC6D,GAAD,CAAL,IAAc,IAAxC,EAA8C;cACpCuE,MAAM,GAAG4H,WAAW,CAACnM,GAAD,CAAX,CAAiB2C,MAAjB,EAAyBxG,KAAK,CAAC6D,GAAD,CAA9B,oBACR7D,KADQ;YAEX4H,SAAS,EAATA,SAFW;YAGXgG,UAAU,EAAE8C,KAAK,CAAC9C,UAHP;YAIXiE,WAAW,EAAXA;aAJJ;;cAOInM,SAAA,CAAgB0C,MAAhB,CAAJ,EAA6B;YACzB4J,QAAQ,CAAC1L,IAAT;YAEI8B,MAAM,SAAN,CAAa,UAAAK,MAAM,EAAI;kBACf,CAACT,kBAAL,EAAyB;gBACrBqJ,YAAY,CAACxN,GAAD,EAAM4E,MAAM,IAAI5E,GAAhB,CAAZ;;aAFR,CAFJ;WADJ,MASO,IAAI6L,OAAO,CAACtH,MAAD,CAAX,EAAqB;YACxByJ,WAAW,CAAChO,GAAD,CAAX,GAAmBuE,MAAM,IAAIvE,GAA7B;YAEA8L,sBAAsB,CAACvH,MAAD,EAASvE,GAAT,EAAc7D,KAAK,CAACyE,IAApB,CAAtB;;gBAEIzE,KAAK,CAACkQ,aAAV,EAAyB;cACrB4B,iBAAiB,GAAG,IAApB;;;;;eAKLE,QAAP;OA/BsB,EAgCvB,EAhCuB,CAA1B;;UAiCMzJ,YAAY,GAAG,SAAfA,YAAe,CAAAqF,UAAU;eAC3B7F,OAAO,CAACrC,WAAA,CAAkB9E,QAAlB,EAA4B8E,WAAA,CAAkBwC,YAAlB,EAAgC0F,UAAhC,CAA5B,CAAD,CADoB;OAA/B;;UAGImE,iBAAiB,CAACrR,MAAtB,EAA8B;YACtB,CAAC2K,QAAL,EAAe;UACXkG,WAAW,CAAC,IAAD,CAAX;;;QAGJtJ,8BAA8B,GAAG,wCAAAO,WAAW;iBAAKR,kBAAkB,GAAGQ,WAAW,CAACD,YAAD,CAArC;SAA5C;;QAEAwJ,iBAAiB,CAACzL,IAAlB,CACIgL,SAAS,mBACFM,SADE,EAEFC,WAFE,EADb;QAOA1J,UAAU,GAAGL,OAAO,CAACwC,GAAR,CAAYyH,iBAAZ,EAA+B1S,IAA/B,CAAoC,YAAM;cAC/C2I,kBAAJ,EAAwB;mBACbA,kBAAP;;;UAGJ0I,KAAK,CAACzI,8BAAN,GAAuC,IAAvC;iBAEOsJ,WAAW,CAAC,KAAD,EAAQhJ,YAAR,CAAlB;SAPS,CAAb;OAdJ,MAuBO;YACC8C,QAAJ,EAAc;UACVkG,WAAW,CAAC,KAAD,CAAX;;;QAGJpJ,UAAU,GAAGmJ,SAAS,mBAEXM,SAFW,EAGXC,WAHW,GAKlBtJ,YALkB,CAAtB;;;UASAmI,KAAK,CAACzI,8BAAV,EAA0C;QACtCyI,KAAK,CAACzI,8BAAN,CAAqC,UAAArH,QAAQ,EAAI;UAC7CsH,YAAY,GAAGtH,QAAf;iBAEOuH,UAAP;SAHJ;;;MAOJuI,KAAK,CAACzI,8BAAN,GAAuCA,8BAAvC;KAnGwB,CAA5B;;;WAuGKjC,OAAT,CAAiBiM,UAAjB,EAA6BrR,QAA7B,EAAuC;WAC5B8P,KAAK,CAACM,SAAN,CACH;MACIiB,UAAU,EAAVA,UADJ;MAEIlH,MAAM,EAAE;KAHT,EAKHnK,QALG,CAAP;;;WASKqQ,SAAT,CAAmBzK,MAAnB,EAA2B5F,QAA3B,EAAqC;WAC1B8P,KAAK,CAACM,SAAN,CACH;MACIxK,MAAM,EAANA;KAFD,EAIH5F,QAJG,CAAP;;;WAQKsQ,WAAT,CAAqBhG,QAArB,EAA+BtK,QAA/B,EAAyC;WAC9B8P,KAAK,CAACM,SAAN,CACH;MACI9F,QAAQ,EAARA;KAFD,EAIHtK,QAJG,CAAP;;;WAQKuQ,SAAT,CAAmBpG,MAAnB,EAA2BnK,QAA3B,EAAqC;WAC1B8P,KAAK,CAACM,SAAN,CACH;MACIjG,MAAM,EAANA;KAFD,EAIHnK,QAJG,CAAP;;;WAQKwQ,WAAT,CAAqBxG,QAArB,EAA+BhK,QAA/B,EAAyC;WAC9B8P,KAAK,CAACM,SAAN,CACH;MACIpG,QAAQ,EAARA;KAFD,EAIHhK,QAJG,CAAP;;;WAQK0Q,SAAT,CAAmBzI,MAAnB,EAA2BjI,QAA3B,EAAqC;WAC1B8P,KAAK,CAACM,SAAN,CACH;MACInI,MAAM,EAANA;KAFD,EAIHjI,QAJG,CAAP;;;WAQKyQ,YAAT,CAAsBxN,GAAtB,EAAoD;QAAzBuE,MAAyB,uEAAhB,IAAgB;QAAVxH,QAAU;QAE/BgR,SAF+B,qBAG5ClB,KAAK,CAACzH,MAHsC,CAE5CJ,MAF4C;;QAK5C6G,OAAO,CAACtH,MAAD,CAAX,EAAqB;MACjBwJ,SAAS,CAAC/N,GAAD,CAAT,GAAiBuE,MAAM,IAAIvE,GAA3B;MAEA8L,sBAAsB,CAACvH,MAAD,EAASvE,GAAT,EAAc6M,KAAK,CAAC1Q,KAAN,CAAYyE,IAA1B,CAAtB;KAHJ,MAIO;aACImN,SAAS,CAAC/N,GAAD,CAAhB;;;WAGGyN,SAAS,CAACM,SAAD,EAAYhR,QAAZ,CAAhB;;;WAGK2Q,WAAT,CAAqBlG,QAArB,EAA+BzK,QAA/B,EAAyC;WAC9B8P,KAAK,CAACM,SAAN,CACH;MACI3F,QAAQ,EAARA;KAFD,EAIHzK,QAJG,CAAP;;;WAQK+M,cAAT,GAA0B;+BACE+C,KAAK,CAACzH,MADR,CACdJ,MADc;QACdA,MADc,qCACL,EADK;;SAGjB,IAAIpE,IAAT,IAAiBoE,MAAjB,EAAyB;aACdA,MAAM,CAACpE,IAAD,CAAN,YAAwBtE,KAAxB,GAAgC0I,MAAM,CAACpE,IAAD,CAAN,CAAaqJ,OAA7C,GAAuDjF,MAAM,CAACpE,IAAD,CAApE;;;;WAICiF,OAAT,QAAmC;QAAbF,SAAa;;QAC3B,YAAYA,SAAhB,EAA2B;UACnB,CAACA,SAAS,CAACX,MAAf,EAAuB;QACnBW,SAAS,CAACX,MAAV,GAAmB,EAAnB;;;MAGJW,SAAS,CAACuE,MAAV,GAAmBtP,MAAM,CAACkF,IAAP,CAAY6F,SAAS,CAACX,MAAtB,EAA8BnI,MAA9B,KAAyC,CAA5D;KAN2B;;;uBAUCgQ,KAAK,CAAC1Q,KAVP;QAUvBqQ,OAVuB,gBAUvBA,OAVuB;QAUdC,UAVc,gBAUdA,UAVc;;QAY3B,gBAAgB9G,SAAhB,IAA6B,EAAE,YAAYA,SAAd,CAAjC,EAA2D;UACjD0I,aAAa,GAAG,SAAhBA,aAAgB,CAAA1L,MAAM;eAAKgD,SAAS,CAACyI,UAAV,GAAuBzL,MAA5B;OAA5B;;MAEAgD,SAAS,CAAChD,MAAV,GAAmB6J,OAAO,GAAGA,OAAO,CAAC7G,SAAS,CAACyI,UAAX,EAAuBC,aAAvB,CAAV,GAAkD1I,SAAS,CAACyI,UAAtF;KAHJ,MAIO,IAAI,YAAYzI,SAAZ,IAAyB,EAAE,gBAAgBA,SAAlB,CAA7B,EAA2D;UACxD2I,cAAc,GAAG,SAAjBA,cAAiB,CAAA3L,MAAM;eAAKgD,SAAS,CAAChD,MAAV,GAAmBA,MAAxB;OAA7B;;MAEAgD,SAAS,CAACyI,UAAV,GAAuB3B,UAAU,GAAGA,UAAU,CAAC9G,SAAS,CAAChD,MAAX,EAAmB2L,cAAnB,CAAb,GAAkD3I,SAAS,CAAChD,MAA7F;KAnB2B;;;QAuB3B,YAAYgD,SAAhB,EAA2B;MACvBA,SAAS,CAACqD,QAAV,GAAqB,CAACrD,SAAS,CAACuE,MAAhC;KADJ,MAEO,IAAI,cAAcvE,SAAlB,EAA6B;MAChCA,SAAS,CAACuB,MAAV,GAAmB,CAACvB,SAAS,CAACqD,QAA9B;KA1B2B;;;QA8B3B,YAAYrD,SAAhB,EAA2B;MACvBA,SAAS,CAACwE,SAAV,GAAsB,CAACxE,SAAS,CAACuB,MAAjC;KADJ,MAEO,IAAI,eAAevB,SAAnB,EAA8B;MACjCA,SAAS,CAACuB,MAAV,GAAmB,CAACvB,SAAS,CAACwE,SAA9B;KAjC2B;;;QAqC3B,cAAcxE,SAAlB,EAA6B;MACzBA,SAAS,CAACyE,UAAV,GAAuB,CAACzE,SAAS,CAAC0B,QAAlC;KADJ,MAEO,IAAI,gBAAgB1B,SAApB,EAA+B;MAClCA,SAAS,CAAC0B,QAAV,GAAqB,CAAC1B,SAAS,CAACyE,UAAhC;;;IAGJyC,KAAK,CAACzH,MAAN,qBAAoByH,KAAK,CAACzH,MAA1B,EAAqCO,SAArC;WAEOzD,SAAS,EAAhB;;;SAGG6K,aAAP;;;IChbEwB;;;;;;;;;;;;;;;;;UAIFvB,eAAeN,cAAc;UAG7BkB;UAEAxI;;UA2DA+H,YAAY,UAACxH,SAAD,EAAY5I,QAAZ;aACR,IAAIkH,OAAJ,CAAY,UAAAC,OAAO,EAAI;YACbsK,OAAO,GAAG,SAAVA,OAAU;iBAAMtK,OAAO,CAACpH,WAAW,CAACC,QAAD,EAAW,MAAKgN,UAAhB,CAAZ,CAAb;SAAhB;;YAEI,MAAK0E,UAAT,EAAqB;cACX5L,KAAK,GAAG,MAAK1G,KAAL,CAAWyE,IAAzB;;cAEIiC,KAAK,KAAK,MAAK+K,YAAL,CAAkBrM,WAAlB,IAAiC,EAAtC,CAAT,EAAoD;kBAC3CqM,YAAL,CAAkBzI,UAAlB,CAA6BtC,KAA7B,EAAoC8C,SAApC,EAA+C6I,OAA/C;WADJ,MAEO;kBACEE,WAAL,CAAiB7I,OAAjB,CAAyBF,SAAzB;;kBAEK+I,WAAL,CAAiB5I,cAAjB,CAAgCH,SAAhC;;kBAEKK,WAAL,CAAiBwI,OAAjB;;SAVR,MAYO;gBACEE,WAAL,CAAiB7I,OAAjB,CAAyBF,SAAzB;;UACA6I,OAAO;;OAjBf,CADQ;;;;;;;;wCAzDQ;WACXC,UAAL,GAAkB,IAAlB;UAGmB5L,KAJH,GAMZ,IANY,CAIZ1G,KAJY,CAIHyE,IAJG;UAKZgN,YALY,GAMZ,IANY,CAKZA,YALY;MAQhB1P,OAAO,CACH,CAAC2E,KAAD,IAAU+K,YAAY,CAAC7J,SADpB,gEAEoDlB,KAFpD,gGAAP;MAKA3E,OAAO,CAAC2E,KAAD,0EAAP;;UAEI+K,YAAY,CAACxL,UAAjB,EAA6B;QACzBwL,YAAY,CAACxL,UAAb,CAAwBS,KAAxB,EAA+B,KAAKkK,aAApC;;;WAGChK,UAAL,GAAkB,KAAKqC,MAAL,CAAYzC,MAA9B;MAEArD,SAAS,CAAC,KAAKnD,KAAL,CAAWgM,IAAZ,EAAkB,KAAK4B,UAAvB,CAAT;;;;2CAGmB;UACf,KAAK6D,YAAL,CAAkBtL,YAAtB,EAAoC;aAC3BsL,YAAL,CAAkBtL,YAAlB,CAA+B,KAAKnG,KAAL,CAAWyE,IAA1C,EAAgD,KAAKmM,aAArD,EAAoE,KAAK5Q,KAAL,CAAWoQ,iBAA/E;;;WAGCkC,UAAL,GAAkB,KAAlB;MAEAnP,SAAS,CAAC,KAAKnD,KAAL,CAAWgM,IAAZ,EAAkB,IAAlB,CAAT;;;;uCAGeC,WAAW;UACpBvF,KAAK,GAAG,KAAK1G,KAAL,CAAWyE,IAAzB;;UAEIiC,KAAK,KAAKuF,SAAS,CAACxH,IAAxB,EAA8B;YACtB,KAAKgN,YAAL,CAAkBxL,UAAtB,EAAkC;eACzBwL,YAAL,CAAkBxL,UAAlB,CAA6BS,KAA7B,EAAoC,KAAKkK,aAAzC,EAAwD3E,SAAS,CAACxH,IAAlE;;;;MAIRtB,SAAS,CAAC,KAAKnD,KAAL,CAAWgM,IAAZ,EAAkB,KAAK4B,UAAvB,CAAT;;UAEI,KAAK3E,MAAL,CAAYzC,MAAZ,KAAuB,KAAKI,UAAhC,EAA4C;YACpC,EAAEF,KAAK,KAAK,KAAK+K,YAAL,CAAkBrM,WAAlB,IAAiC,EAAtC,CAAP,CAAJ,EAAuD;eAC9CmN,WAAL,CAAiB/K,eAAjB,CAAiC;YAC7BjB,SAAS,EAAE,KAAK0C,MAAL,CAAYzC,MADM;YAE7BI,UAAU,EAAE,KAAKA;WAFrB;;;aAMCA,UAAL,GAAkB,KAAKqC,MAAL,CAAYzC,MAA9B;;;;;8BA0BE;UACAoH,UAAU,GAAI,KAAKA,UAAL;QAChBlH,KAAK,EAAE,KAAK1G,KAAL,CAAWyE;SACf,KAAK8N,WAAL,CAAiBxM,SAAjB,EAFa,EAGb,KAAKwM,WAHQ;QAIhBC,UAAU,EAAE,KAAKf,YAAL,CAAkB7J;QAJlC;;aAOO4I,WAAW,CAAC5C,UAAD,EAAa,KAAK5N,KAAlB,CAAlB;;;;6BAGK;;;UACCyS,aAAa,GAAG,CAAC,KAAKhB,YAA5B;aAGI,oBAAC,WAAD,CAAa,QAAb,QACK,UAAAiB,OAAO,EAAI;QACR,MAAI,CAACjB,YAAL,GAAoBiB,OAApB;;YAEI,CAAC,MAAI,CAAC9B,aAAV,EAAyB;UACrB,MAAI,CAACA,aAAL,GAAqBH,aAAa,CAAC,MAAD,EAAO,MAAP,CAAlC;;;QAGJ,MAAI,CAAC8B,WAAL,GAAmB,CAACG,OAAO,CAACtN,WAAR,IAAuB,EAAxB,EAA4B,MAAI,CAACwL,aAAL,CAAmBlK,KAA/C,KAAyD,MAAI,CAACkK,aAAjF;;YAEI6B,aAAJ,EAAmB;UACf,MAAI,CAAC7B,aAAL,CAAmB9K,OAAnB;;UACA,MAAI,CAAC8K,aAAL,CAAmB1G,SAAnB;;;eAGG,MAAI,CAACiE,OAAL,EAAP;OAfR,CADJ;;;;;EAxGYC;;AAAdgE,MACK/D,cAAcA;AADnB+D,MAEK9D,YAAYA;;ACHvB,SAASqE,SAAT,CAAmB3R,gBAAnB,EAAkD;MAAbkO,MAAa,uEAAJ,EAAI;MACxC0D,aAAa,GAAGxD,UAAU,CAAC,UAACpP,KAAD,EAAQoD,GAAR,EAAgB;QAClCiM,MADkC,qBACvBrP,KADuB;;QAErCoM,SAFqC,GAERpM,KAFQ,CAErCoM,SAFqC;QAEvByG,UAFuB,4BAER7S,KAFQ;;KAKzC,aADJ,EAEI,kBAFJ,EAGI,eAHJ,EAII,mBAJJ,EAKI,eALJ,EAMI,eANJ,EAOI,gBAPJ,EAQI,SARJ,EASI,YATJ,EAUI,MAVJ,EAWI,MAXJ,EAaK8S,MAbL,CAcQrU,MAAM,CAACkF,IAAP,mBACOuL,MAAM,CAACc,WADd,EAEOd,MAAM,CAACe,gBAFd,EAGOZ,MAAM,CAACW,WAHd,EAIOX,MAAM,CAACY,gBAJd,EAdR,EAqBKlM,OArBL,CAqBa,UAAA5C,IAAI,EAAI;UACTA,IAAI,IAAIkO,MAAZ,EAAoB;YACZlO,IAAI,KAAK,aAAT,IAA0BA,IAAI,KAAK,kBAAnC,IAAyDA,IAAI,KAAK,eAAtE,EAAuF;UACnF0R,UAAU,CAAC1R,IAAD,CAAV,qBAAwB+N,MAAM,CAAC/N,IAAD,CAA9B,EAAyCkO,MAAM,CAAClO,IAAD,CAA/C;;;eAEGkO,MAAM,CAAClO,IAAD,CAAb;;KA1BZ;WA+BI,oBAAC,KAAD,oBACQ+N,MADR,EAEQ2D,UAFR;MAGI,MAAM,EAAE,gBAAAjF,UAAU;eAAI,oBAAC,gBAAD,oBAAsByB,MAAtB;UAA8B,UAAU,EAAEzB,UAA1C;UAAsD,GAAG,EAAExK;WAA/D;;OAJ1B;GAlC4B,CAAhC;EA2CAwP,aAAa,CAACvE,WAAd,GACI,+BAA+BrN,gBAAgB,CAACqN,WAAjB,IAAgCrN,gBAAgB,CAACyD,IAAjD,IAAyD,WAAxF,CADJ;SAGO8K,YAAY,CAACqD,aAAD,EAAgB5R,gBAAhB,CAAnB;;;AAGJ,kBAAeF,SAAS,CAAC6R,SAAD,CAAxB;;ICpDMI;;;;;;;;;;;;;6BAuBO;;;wBAC8F,KAAK/S,KADnG;UACG4N,UADH,eACGA,UADH;UACsBoF,SADtB,eACelR,KADf;UACiCmR,SADjC,eACiCA,QADjC;UAC2CC,OAD3C,eAC2CA,OAD3C;UACoDC,MADpD,eACoDA,MADpD;UAC4DC,OAD5D,eAC4DA,OAD5D;UACqEC,SADrE,eACqEA,SADrE;UACmFhE,MADnF;;UAECiE,QAAQ,GAAG,KAAKtT,KAAL,CAAWwM,IAA5B;UAEI+G,SAAS,GAAG;QACZzR,KAAK,EAAE,sBAAsB,IAAtB,GAA6B,KAAK0R,gBAAlC,GAAqDR,SADhD;QAEZS,gBAAgB,EAAE,0BAAAC,EAAE,EAAI;UACpB,KAAI,CAACC,WAAL,GAAmB,KAAnB;iBACO,KAAI,CAACH,gBAAZ;UACAD,SAAS,CAACN,QAAV,CAAmBS,EAAnB;SALQ;QAOZE,kBAAkB,EAAE;iBAAO,KAAI,CAACD,WAAL,GAAmB,IAA1B;SAPR;QAQZV,QAAQ,EAAE,kBAAAS,EAAE,EAAI;cACJ5R,KADI,GACM4R,EAAE,CAAC9R,MADT,CACJE,KADI;;cAGR,KAAI,CAAC6R,WAAT,EAAsB;YAClB,KAAI,CAACH,gBAAL,GAAwB1R,KAAxB;;YACA,KAAI,CAAC+H,WAAL;WAFJ,MAGO;YACHoJ,SAAQ,CAACnR,KAAD,EAAQ4R,EAAR,CAAR;;SAfI;QAkBZR,OAAO,EAAPA,OAlBY;QAmBZC,MAAM,EAANA;OAnBJ;UAqBIU,OAAO,GAAG,OAAd;;cAEQP,QAAR;aACS,QAAL;UACIO,OAAO,GAAGP,QAAV;;UACAC,SAAS,CAACN,QAAV,GAAqB,UAAAS,EAAE,EAAI;gBACjB/E,IAAI,GAAG+E,EAAE,CAAC9R,MAAhB;gBACME,KAAK,GAAG6M,IAAI,CAACmF,QAAL,GACR,GAAGC,KAAH,CACKrU,IADL,CACUiP,IAAI,CAACqF,OADf,EAEKtR,MAFL,CAEY,UAAAuR,MAAM;qBAAIA,MAAM,CAACC,QAAX;aAFlB,EAGK9R,GAHL,CAGS,UAAA6R,MAAM;qBAAIA,MAAM,CAACnS,KAAX;aAHf,CADQ,GAKR6M,IAAI,CAAC7M,KALX;;YAOAmR,SAAQ,CAACnR,KAAD,EAAQ4R,EAAR,CAAR;WATJ;;iBAYOrE,MAAM,CAAC7C,IAAd;;;aAGC,UAAL;UACIqH,OAAO,GAAGP,QAAV;iBACOjE,MAAM,CAAC7C,IAAd;;;aAGC,UAAL;aACK,OAAL;UACI+G,SAAS,GAAG;YACRH,OAAO,EAAEJ,SAAS,KAAKI,OADf;YAERH,QAAQ,EAAE,kBAAAS,EAAE,EAAI;cACZT,SAAQ,CAACS,EAAE,CAAC9R,MAAH,CAAUwR,OAAV,GAAoBA,OAApB,GAA8BC,SAA/B,EAA0CK,EAA1C,CAAR;aAHI;YAKRR,OAAO,EAAPA,OALQ;YAMRC,MAAM,EAANA;WANJ;;;;;;;aAcD,oBAAC,OAAD,oBAAa9D,MAAb,EAAyBkE,SAAzB,EAAP;;;;;EAzFsBnF;;AAAxB2E,gBACK1E,cAAc;AADnB0E,gBAGKzE,YAAY;EACf2E,QAAQ,EAAE1E,SAAS,CAACC,IADL;EAEf0E,OAAO,EAAE3E,SAAS,CAACC,IAFJ;EAGf2E,MAAM,EAAE5E,SAAS,CAACC,IAHH;EAKf1M,KAAK,EAAEyM,SAAS,CAACQ,GALF;EAMftK,IAAI,EAAE8J,SAAS,CAACqB,MAND;EAOfpD,IAAI,EAAE+B,SAAS,CAACqB,MAPD;EASfwD,OAAO,EAAE7E,SAAS,CAACQ,GATJ;EAUfoF,SAAS,EAAE5F,SAAS,CAACQ;;AAbvBgE,gBAgBK/D,eAAe;EAClBlN,KAAK,EAAE,EADW;EAElB0K,IAAI,EAAE,MAFY;EAGlB4G,OAAO,EAAE,IAHS;EAIlBC,SAAS,EAAE;;;AClBnB;;qBAC+B9U,aAAa,CAAC,EAAD;IAApC6V,0BAAAA;IAAUC,0BAAAA;;IAEZC;;;;;;;;;;;;;sCAoBgB;aACP,KAAKtU,KAAZ;;;;8BAGM;wBAC8C,KAAKA,KADnD;UACEuU,SADF,eACEA,SADF;UACwBV,OADxB,eACaW,SADb;UACiCtI,QADjC,eACiCA,QADjC;UAGAuI,gBAAgB,GAAG;QACrBC,WAAW,EAAEC,oBADQ;QAErBvC,KAAK,EAAEwC;OAFX;UAKMC,UAAU,GAAG5V,UAAU,CAACiN,QAAD,CAAV,GACbA,QAAQ,CAACuI,gBAAD,CADK,GAEbnI,QAAQ,CAAClK,GAAT,CAAa8J,QAAb,EAAuB,UAAAK,KAAK;eAAIE,YAAY,CAACF,KAAD,EAAQkI,gBAAR,CAAhB;OAA5B,CAFN;;UAIIZ,OAAO,KAAK,IAAhB,EAAsB;eACXgB,UAAP;;;aAGG,oBAAC,OAAD;QAAS,SAAS,EAAEN;SAAYM,UAAhC,CAAP;;;;6BAGK;aACE,oBAAC,QAAD;QAAU,KAAK,EAAE,KAAKC,eAAL;SAAyB,KAAK3G,OAAL,EAA1C,CAAP;;;;;EA5CqBC;;AAAvBkG,eACKjG,cAAc;AADnBiG,eAGKhG,YAAY;EACf2E,QAAQ,EAAE1E,SAAS,CAACC,IADL;EAEf0E,OAAO,EAAE3E,SAAS,CAACC,IAFJ;EAGf2E,MAAM,EAAE5E,SAAS,CAACC,IAHH;EAKf1M,KAAK,EAAEyM,SAAS,CAACQ,GALF;EAMftK,IAAI,EAAE8J,SAAS,CAACqB,MAND;EAOfpD,IAAI,EAAE+B,SAAS,CAACqB,MAAV,CAAiBhB,UAPR;EAQf4F,SAAS,EAAEjG,SAAS,CAACQ,GARN;EASf7C,QAAQ,EAAEqC,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACC,IAAX,EAAiBD,SAAS,CAACwG,OAA3B,CAApB,EAAyDnG;;AAZrE0F,eAeKtF,eAAe;EAClBxC,IAAI,EAAE,UADY;EAElBgI,SAAS,EAAE;;;IA+BbG;;;;;;;;;;;;;wCAOkB;MAChB5S,OAAO,CAAC,YAAY,KAAK/B,KAAlB,iDAAP;;;;6BAGK;yBACoD,KAAKA,KADzD;UACGwG,MADH,gBACGA,MADH;UACWyM,SADX,gBACWA,QADX;UACqBC,QADrB,gBACqBA,OADrB;UAC8BC,OAD9B,gBAC8BA,MAD9B;UACyC9D,MADzC;;aAID,oBAAC,QAAD,QACK,UAAA2F,YAAY,EAAI;YACLxI,IADK,GACUwI,YADV,CACLxI,IADK;YACC/H,IADD,GACUuQ,YADV,CACCvQ,IADD;YAGPwQ,SAAS,GACXzI,IAAI,KAAK,OAAT,GACM;UACI4G,OAAO,EAAE4B,YAAY,CAAClT,KAAb,KAAuB0E,MADpC;UAEIyM,QAAQ,EAAE,kBAAAS,EAAE,EAAI;YACZsB,YAAY,CAAC/B,QAAb,CAAsBzM,MAAtB,EAA8BkN,EAA9B;YAEAT,SAAQ,IAAIA,SAAQ,CAACS,EAAD,CAApB;;SANd,GASMlH,IAAI,KAAK,UAAT,GACA;UACI4G,OAAO,EAAE4B,YAAY,CAAClT,KAAb,CAAmBV,OAAnB,CAA2BoF,MAA3B,IAAqC,CAAC,CADnD;UAEIyM,QAAQ,EAAE,kBAAAS,EAAE,EAAI;YACZsB,YAAY,CAAC/B,QAAb,CACIS,EAAE,CAAC9R,MAAH,CAAUwR,OAAV,GACM4B,YAAY,CAAClT,KAAb,CAAmBgR,MAAnB,CAA0BtM,MAA1B,CADN,GAEMwO,YAAY,CAAClT,KAAb,CAAmBY,MAAnB,CAA0B,UAAAZ,KAAK;qBAAIA,KAAK,KAAK0E,MAAd;aAA/B,CAHV,EAIIkN,EAJJ;YAOAT,SAAQ,IAAIA,SAAQ,CAACS,EAAD,CAApB;;SAXR,GAcA;UACI5R,KAAK,EAAEkT,YAAY,CAAClT,KADxB;UAEImR,QAAQ,EAAE,kBAAAS,EAAE,EAAI;YACZsB,YAAY,CAAC/B,QAAb,CAAsBS,EAAtB;YAEAT,SAAQ,IAAIA,SAAQ,CAACS,EAAD,CAApB;;SA7BlB;eAkCI;UACI,IAAI,EAAEjP;WACF4K,MAFR,EAGQ4F,SAHR;UAII,IAAI,EAAEzI,IAJV;UAKI,OAAO,EAAE,iBAAAkH,EAAE,EAAI;YACXsB,YAAY,CAAC9B,OAAb,CAAqBQ,EAArB;YACAR,QAAO,IAAIA,QAAO,CAACQ,EAAD,CAAlB;WAPR;UASI,MAAM,EAAE,gBAAAA,EAAE,EAAI;YACVsB,YAAY,CAAC7B,MAAb,CAAoBO,EAApB;YACAP,OAAM,IAAIA,OAAM,CAACO,EAAD,CAAhB;;WAZZ;OArCR,CADJ;;;;;EAd2BtF;;AAA7BuG,qBACKtG,cAAc;AADnBsG,qBAGKrG,YAAY;EACf9H,MAAM,EAAE+H,SAAS,CAACQ,GAAV,CAAcH;;;IAsExBgG;;;;;;;;;;;;;wCAGkB;MAChB7S,OAAO,CACH,KADG,kHAAP;;;;6BAMK;aACE,oBAAC,oBAAD,EAA0B,KAAK/B,KAA/B,CAAP;;;;;EAXqCoO;;AAAvCwG,+BACKvG,cAAc;;AC5HzB,IAAM6G,OAAO,GAAGC,KAAK,CAACC,OAAN,IAAiB,KAAjC;;IAEMC;;;;;yBAgBUrV,KAAZ,EAAmB;;;;;uFACTA,KAAN;UALJsV,EAImB,GAJd,CAIc;UAHnBC,WAGmB,GAHL,MAAKvV,KAAL,CAAW8B,KAGN;UAFnB8F,SAEmB;UA2BnB4N,eA3BmB,GA2BD;MACdC,QADc,oBACL3T,KADK,EACE;eACLA,KAAK,KAAK,IAAjB;;KA7BW;;UAiCnB6F,aAjCmB,GAiCH,UAAAC,SAAS,EAAI;MACzBA,SAAS,CAACuC,YAAV,CAAuB,UAAAvC,SAAS,EAAI;YACxBiF,QADwB,GACFjF,SADE,CACxBiF,QADwB;YACdxE,OADc,GACFT,SADE,CACdS,OADc;;YAG5BwE,QAAJ,EAAc;cACN,MAAK7M,KAAL,CAAW8B,KAAX,CAAiBpB,MAArB,EAA6B;kBACpBV,KAAL,CAAWiT,QAAX,CAAqB,MAAKsC,WAAL,GAAmB,EAAxC;;SAFR,MAIO,IAAI,CAACG,OAAO,CAAC,MAAK1V,KAAL,CAAW8B,KAAZ,EAAmBuG,OAAO,CAACsN,IAA3B,CAAZ,EAA8C;gBAC5C3V,KAAL,CAAWiT,QAAX,CAAqB,MAAKsC,WAAL,GAAmBlN,OAAO,CAACsN,IAAhD;;OARR;KAlCe;;UA+CnBC,IA/CmB,GA+CZ,UAACC,CAAD,EAAIC,CAAJ,EAAOlV,QAAP;aACH,MAAKoQ,SAAL,CAAe,gBAAe;YAAZ+E,KAAY,QAAZA,KAAY;oBACH,CAACA,KAAK,CAACF,CAAD,CAAN,EAAWE,KAAK,CAACD,CAAD,CAAhB,CADG;QACzBC,KAAK,CAACD,CAAD,CADoB;QACfC,KAAK,CAACF,CAAD,CADU;eAGnBE,KAAP;OAHJ,EAIGnV,QAJH,CADG;KA/CY;;UAsDnBoV,MAtDmB,GAsDV,YAAa;UACdH,CAAJ,EAAOI,MAAP,EAAerV,QAAf;;wCADSC,IAAS;QAATA,IAAS;;;MAGlBA,IAAI,CAACkD,OAAL,CAAa,UAAA/E,GAAG,EAAI;YACZC,UAAU,CAACD,GAAD,CAAd,EAAqB;UACjB4B,QAAQ,GAAG5B,GAAX;SADJ,MAEO,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;UAChC6W,CAAC,GAAG7W,GAAJ;SADG,MAEA,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;UAChCiX,MAAM,GAAGjX,GAAT;;OANR;aAUO,MAAKgS,SAAL,CAAe,iBAAe;YAAZ+E,KAAY,SAAZA,KAAY;;YAC7BlX,WAAW,CAACgX,CAAD,CAAf,EAAoB;UAChBE,KAAK,CAACzP,IAAN,CAAW,MAAK4P,KAAL,CAAWD,MAAX,CAAX;SADJ,MAEO;UACHF,KAAK,CAACI,MAAN,CAAaN,CAAb,EAAgB,CAAhB,EAAmB,MAAKK,KAAL,CAAWD,MAAX,CAAnB;;;eAGG;UAAEF,KAAK,EAALA;SAAT;OAPG,EAQJnV,QARI,CAAP;KAnEe;;UA8EnBwV,MA9EmB,GA8EV,YAAa;UACdP,CAAJ,EAAOjV,QAAP;;yCADSC,IAAS;QAATA,IAAS;;;MAGlBA,IAAI,CAACkD,OAAL,CAAa,UAAA/E,GAAG,EAAI;YACZC,UAAU,CAACD,GAAD,CAAd,EAAqB;UACjB4B,QAAQ,GAAG5B,GAAX;SADJ,MAEO,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;UAChC6W,CAAC,GAAG7W,GAAJ;;OAJR;aAQO,MAAKgS,SAAL,CAAe,iBAAe;YAAZ+E,KAAY,SAAZA,KAAY;;YAC7BlX,WAAW,CAACgX,CAAD,CAAf,EAAoB;UAChBE,KAAK,CAAChM,GAAN;SADJ,MAEO;UACHgM,KAAK,CAACI,MAAN,CAAaN,CAAb,EAAgB,CAAhB;;;YAGA,CAACE,KAAK,CAACrV,MAAX,EAAmB;UACfqV,KAAK,GAAG,CAAC,MAAKG,KAAL,EAAD,CAAR;;;eAGG;UAAEH,KAAK,EAALA;SAAT;OAXG,EAYJnV,QAZI,CAAP;KAzFe;;UAwGnBoQ,SAxGmB,GAwGP,UAACqF,OAAD,EAAUzV,QAAV;aACR,IAAIkH,OAAJ,CAAY,UAAAC,OAAO;eACf,MAAKuO,QAAL,CAAcD,OAAd,EAAuB;iBACnB,MAAKzO,SAAL,CAAeuC,YAAf,CAA4B,UAAAvC,SAAS;mBAAIG,OAAO,CAACpH,WAAW,CAACC,QAAD,EAAWgH,SAAX,CAAZ,CAAX;WAArC,CADmB;SAAvB,CADe;OAAnB,CADQ;KAxGO;;UAGV2O,KAAL,GAAa;MACTR,KAAK,EAAE/V,KAAK,CAAC8B,KAAN,CAAYpB,MAAZ,GAAqBV,KAAK,CAAC8B,KAAN,CAAYM,GAAZ,CAAgB;eAAM,MAAK8T,KAAL,EAAN;OAAhB,CAArB,GAA2D,CAAC,MAAKA,KAAL,EAAD,CADzD;MAETM,OAAO,EAAE;KAFb;;;;;;uCAMevK,WAAW;;;UACtB,KAAKjM,KAAL,CAAW8B,KAAX,KAAqB,KAAKyT,WAA9B,EAA2C;aAClCe,QAAL,CAAc;UACVP,KAAK,EAAE,KAAK/V,KAAL,CAAW8B,KAAX,CAAiBpB,MAAjB,GAA0B,KAAKV,KAAL,CAAW8B,KAAX,CAAiBM,GAAjB,CAAqB;mBAAM,MAAI,CAAC8T,KAAL,EAAN;WAArB,CAA1B,GAAqE,CAAC,KAAKA,KAAL,EAAD,CADlE;UAEVM,OAAO,EAAE,KAAKD,KAAL,CAAWC,OAAX,GAAqB;SAFlC;aAKKjB,WAAL,GAAmB,KAAKvV,KAAL,CAAW8B,KAA9B;;;;;0BAIFmU,QAAQ;aACH;QACHX,EAAE,EAAE,KAAKA,EAAL,EADD;QAEHW,MAAM,EAANA;OAFJ;;;;6BA0FK;;;wBACwC,KAAKjW,KAD7C;UACGkM,SADH,eACGA,QADH;UACagH,OADb,eACaA,OADb;UACsBC,MADtB,eACsBA,MADtB;UAC8BrR,KAD9B,eAC8BA,KAD9B;;UAGD,CAAC7C,UAAU,CAACiN,SAAD,CAAf,EAA2B;eAChB,IAAP;;;UAGEuK,SAAS,GAAG;QACdC,OAAO,EAAE,KAAKH,KAAL,CAAWR,KAAX,CAAiBrV,MADZ;QAEdiW,OAAO,EAAE,KAAKX,MAFA;QAGdY,OAAO,EAAE,KAAKR,MAHA;QAIdS,KAAK,EAAE,KAAKjB,IAJE;QAKdkB,KAAK,EAAE,eAACb,MAAD,EAASrV,QAAT;iBAAsB,MAAI,CAACoV,MAAL,CAAYC,MAAZ,EAAoBrV,QAApB,CAAtB;SALO;QAMdmW,IAAI,EAAE,cAAAnW,QAAQ;iBAAI,MAAI,CAACwV,MAAL,CAAYxV,QAAZ,CAAJ;SANA;QAOdoW,MAAM,EAAE,gBAAApW,QAAQ;iBAAI,MAAI,CAACwV,MAAL,CAAY,CAAZ,EAAexV,QAAf,CAAJ;SAPF;QAQdqW,QAAQ,EAAE,kBAAChB,MAAD,EAASrV,QAAT;iBAAsB,MAAI,CAACoV,MAAL,CAAY,CAAZ,EAAeC,MAAf,EAAuBrV,QAAvB,CAAtB;SARI;QASdsS,OAAO,EAAPA,OATc;QAUdC,MAAM,EAANA;OAVJ;aAcI,oBAAC,IAAD;QACI,GAAG,EAAE,KAAKoD,KAAL,CAAWC,OADpB;QAEI,cAAc,EAAE;UACZb,IAAI,EAAE7T;SAHd;QAKI,aAAa,EAAE,KAAK6F,aALxB;QAMI,QAAQ,EAAE,kBAAAC,SAAS,EAAI;UACnB,MAAI,CAACA,SAAL,GAAiBA,SAAjB;iBAGI,oBAAC,OAAD,QACK,MAAI,CAAC2O,KAAL,CAAWR,KAAX,CAAiB3T,GAAjB,CAAqB,iBAAiBS,KAAjB;gBAAGyS,EAAH,SAAGA,EAAH;gBAAOW,MAAP,SAAOA,MAAP;mBAClB,oBAAC,KAAD;cACI,GAAG,EAAEX,EADT;cAEI,QAAQ,MAFZ;cAGI,aAAa,EAAEW,MAAM,IAAI,IAH7B;cAII,WAAW,EAAE,MAAI,CAACT,eAJtB;cAKI,IAAI,iBAAU3S,KAAV,MALR;cAMI,QAAQ,EAAE,kBAAA+K,UAAU,EAAI;uBAEhB,oBAAC,IAAD;kBACI,cAAc,EAAEA,UAAU,CAACpH,MAAX,IAAqB,EADzC;kBAEI,aAAa,EAAE,uBAAAoB,SAAS;2BACpBA,SAAS,CAACuC,YAAV,CAAuB,UAAAvC,SAAS,EAAI;0BACxBiF,QADwB,GACFjF,SADE,CACxBiF,QADwB;0BACdxE,OADc,GACFT,SADE,CACdS,OADc;;0BAG5BwE,QAAJ,EAAc;4BACNe,UAAU,CAACqE,UAAX,KAA0B,IAA9B,EAAoC;0BAChCrE,UAAU,CAAC5H,OAAX,CAAmB,IAAnB;;uBAFR,MAIO,IAAI,CAAC0P,OAAO,CAAC9H,UAAU,CAACqE,UAAZ,EAAwB5J,OAAxB,CAAZ,EAA8C;wBACjDuF,UAAU,CAAC5H,OAAX,CAAmBqC,OAAnB;;qBARR,CADoB;mBAF5B;kBAeI,QAAQ,EAAE,kBAAA6O,cAAc;2BACpBhL,SAAQ,mBAEGuK,SAFH,EAGGS,cAHH;sBAIAC,MAAM,EAAEtU,KAJR;sBAKAuU,OAAO,EAAE;+BAAMvU,KAAK,KAAK,MAAI,CAAC0T,KAAL,CAAWR,KAAX,CAAiBrV,MAAjB,GAA0B,CAA1C;uBALT;sBAMA2W,QAAQ,EAAE;+BAAMxU,KAAK,KAAK,CAAhB;;wBAEd+E,SARI,CADY;;kBAhBhC;;cARU;WAArB,CADL,CADJ;;QAVZ;;;;;EAnJoBwG;;AAAtBiH,cACKhH,cAAc;AADnBgH,cAGK/G,YAAY;EACf2E,QAAQ,EAAE1E,SAAS,CAACC,IADL;EAEf0E,OAAO,EAAE3E,SAAS,CAACC,IAFJ;EAGf2E,MAAM,EAAE5E,SAAS,CAACC,IAHH;EAIf1M,KAAK,EAAEyM,SAAS,CAAChL,KAJF;EAMf2I,QAAQ,EAAEqC,SAAS,CAACC,IAAV,CAAeI;;;ACX1B,IAAM0I,IAAI,GAAG,UAAb;AACP,AAAO,IAAMC,iBAAiB,GAAG,CAC7B,CACI,UADJ,EAEI,UAAC/Q,MAAD,EAASgR,KAAT;MAAkBC,QAAlB,QAAkBA,QAAlB;0BAA4BrE,OAA5B;MAA4BA,OAA5B,6BAAsC,IAAtC;SACIqE,QAAQ,KAAK,SAAb,GAAyBjR,MAAM,KAAK4M,OAApC,GAA8C,CAAClU,OAAO,CAACsH,MAAD,CAD1D;CAFJ,CAD6B,EAM7B,CAAC,WAAD,EAAc,UAACA,MAAD,EAAS1D,GAAT;SAAiB5D,OAAO,CAACsH,MAAD,CAAP,IAAmBA,MAAM,CAAC9F,MAAP,IAAiBoC,GAArD;CAAd,CAN6B,EAO7B,CAAC,WAAD,EAAc,UAAC0D,MAAD,EAAS1D,GAAT;SAAiB5D,OAAO,CAACsH,MAAD,CAAP,IAAmBA,MAAM,CAAC9F,MAAP,IAAiBoC,GAArD;CAAd,CAP6B,EAQ7B,CAAC,KAAD,EAAQ,UAAC0D,MAAD,EAASkR,KAAT;SAAmBxY,OAAO,CAACsH,MAAD,CAAP,IAAmBA,MAAM,GAAG,CAAT,IAAckR,KAApD;CAAR,CAR6B,EAS7B,CAAC,KAAD,EAAQ,UAAClR,MAAD,EAASkR,KAAT;SAAmBxY,OAAO,CAACsH,MAAD,CAAP,IAAmBA,MAAM,GAAG,CAAT,IAAckR,KAApD;CAAR,CAT6B,EAU7B,CAAC,SAAD,EAAY,UAAClR,MAAD,EAASmR,MAAT;SAAoBzY,OAAO,CAACsH,MAAD,CAAP,IAAmBmR,MAAM,CAACC,IAAP,CAAYpR,MAAZ,CAAvC;CAAZ,CAV6B,EAW7B,CAAC,MAAD,EAAS,UAACA,MAAD,EAASqR,WAAT;SAAyB3Y,OAAO,CAACsH,MAAD,CAAP,IAAmBqR,WAAW,CAACzW,OAAZ,CAAoBoF,MAApB,IAA8B,CAAC,CAA3E;CAAT,CAX6B,EAY7B,CAAC,SAAD,EAAY,UAACA,MAAD,EAASsR,OAAT,EAAkB9X,KAAlB;SAA4B8X,OAAO,CAACtR,MAAD,EAASxG,KAAT,CAAnC;CAAZ,CAZ6B,EAa/B4D,MAb+B,CAaxB,UAACoM,WAAD,EAAcrN,IAAd,EAAuB;6BACCA,IADD;MACrBoV,QADqB;MACXC,QADW;;EAE5BhI,WAAW,CAAC+H,QAAD,CAAX,GAAwB,SAASE,SAAT,CAAmBzR,MAAnB,EAA2B0R,SAA3B,SAA6D;mCAArBC,YAAqB;QAArBA,YAAqB,mCAAN,EAAM;WAC1EH,QAAQ,MAAR,SAAYI,SAAZ,KAA0BD,YAAY,CAACJ,QAAD,CAAtC,2BAAoEA,QAApE,CAAP;GADJ;;SAGO/H,WAAP;CAlB6B,EAmB9B,EAnB8B,CAA1B;AAqBP,AAAO,IAAM1B,WAAS,GAClB,CACM;EACI9B,IAAI,EAAE+B,SAAS,CAACqB,MADpB;EAEI1D,QAAQ,EAAEqC,SAAS,CAACG,SAAV,CAAoB,CAACH,SAAS,CAACC,IAAX,EAAiBD,SAAS,CAACI,IAA3B,CAApB,CAFd;EAGIvC,SAAS,EAAErM,sBAHf;EAIIoM,MAAM,EAAEoC,SAAS,CAACC,IAJtB;EAMI6J,YAAY,EAAE9J,SAAS,CAACQ,GAN5B;EAOIoJ,YAAY,EAAE5J,SAAS,CAACM,MAP5B;EASIyJ,aAAa,EAAE/J,SAAS,CAACqB,MAT7B;EAUI2I,cAAc,EAAEhK,SAAS,CAACqB,MAV9B;EAWI4I,aAAa,EAAEjK,SAAS,CAACqB,MAX7B;EAYI6I,YAAY,EAAElK,SAAS,CAACqB,MAZ5B;EAcI8I,QAAQ,EAAEnK,SAAS,CAACqB;CAf9B,CADG;AAoBP,AAAO,IAAMvB,aAAW,GAAG,0BAApB;AAEP,AAAO,IAAMW,YAAY,GAAG;EACxBmJ,YAAY,EAAE,EADU;EAExBG,aAAa,EAAE,OAFS;EAGxBC,cAAc,EAAE,UAHQ;EAIxBC,aAAa,EAAE,SAJS;EAKxBC,YAAY,EAAE,QALU;EAMxBpI,OAAO,EAAE,iBAAAvO,KAAK;WAAK,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACW,IAAN,EAA5B,GAA2CX,KAAhD;;CANX;AASP,AAAO,SAAS2O,eAAT,CAAuB7C,UAAvB,EAAmCiF,UAAnC,EAA+C8F,UAA/C,EAA2D;;;MACtDL,aADsD,GACmBzF,UADnB,CACtDyF,aADsD;MACvCC,cADuC,GACmB1F,UADnB,CACvC0F,cADuC;MACvBC,aADuB,GACmB3F,UADnB,CACvB2F,aADuB;MACRC,YADQ,GACmB5F,UADnB,CACR4F,YADQ;MACMC,QADN,GACmB7F,UADnB,CACM6F,QADN;;MAGxDE,mBAAmB,GAAG,SAAtBA,mBAAsB,CAASlF,EAAT,EAAa;WAC9BA,EAAE,IAAIA,EAAE,CAAC9R,MAAT,GAAkB8R,EAAE,CAAC9R,MAAH,CAAU0W,aAAV,CAAlB,GAA6C5E,EAApD;GADJ;;MAIMmF,YAAY,qBACXF,UADW,wDAGbL,aAHa,EAGG1K,UAAU,CAACqE,UAHd,mCAIbsG,cAJa,EAII,YAAa;sCAAT1X,IAAS;MAATA,IAAS;;;QACvBiB,KAAK,GAAGjB,IAAI,CAAC,CAAD,CAAhB;QACI6S,EAAE,GAAG7S,IAAI,CAACA,IAAI,CAACH,MAAL,GAAc,CAAf,CAAb;;QAEI,CAACgT,EAAD,IAAO,CAACA,EAAE,CAAC9R,MAAf,EAAuB;MACnB8R,EAAE,GAAG7S,IAAL;KADJ,MAEO;MACH6S,EAAE,GAAG,CAACA,EAAD,CAAL;;;QAGET,QAAQ,GAAGJ,UAAU,CAAC0F,cAAD,CAA3B;IACAtF,QAAQ,IAAIA,QAAQ,MAAR,4BAAYS,EAAZ,EAAZ;QAEMoF,QAAQ,GAAGF,mBAAmB,CAAC9W,KAAD,CAApC;IACA8L,UAAU,CAAC5H,OAAX,CAAmB8S,QAAnB;GAlBU,mCAoBbN,aApBa,EAoBG,YAAa;QACpBtF,OAAO,GAAGL,UAAU,CAAC2F,aAAD,CAA1B;IACAtF,OAAO,IAAIA,OAAO,MAAP,mBAAX;IAEAtF,UAAU,CAACwD,WAAX,CAAuB,IAAvB;GAxBU,mCA0BbqH,YA1Ba,EA0BE,YAAa;QACnBtF,MAAM,GAAGN,UAAU,CAAC4F,YAAD,CAAzB;IACAtF,MAAM,IAAIA,MAAM,MAAN,mBAAV;;QAEIvF,UAAU,CAACK,UAAf,EAA2B;MACvBL,UAAU,CAACsD,WAAX,CAAuB,IAAvB;;;IAGJtD,UAAU,CAACwD,WAAX,CAAuB,KAAvB;GAlCU,mBAAlB;;MAsCIsH,QAAJ,EAAc;IACVG,YAAY,CAACH,QAAQ,KAAK,IAAb,GAAoB,YAApB,GAAmCA,QAApC,CAAZ,GAA4D9K,UAA5D;;;SAGGiL,YAAP;;AAGJ,AAAO,SAASE,UAAT,CAAoB/Y,KAApB,EAA2B;MAE1BkM,QAF0B,GAO1BlM,KAP0B,CAE1BkM,QAF0B;MAG1BE,SAH0B,GAO1BpM,KAP0B,CAG1BoM,SAH0B;MAI1BD,MAJ0B,GAO1BnM,KAP0B,CAI1BmM,MAJ0B;MAMvB0G,UANuB,4BAO1B7S,KAP0B;;MAW1ByE,IAX0B,GAqC1BoO,UArC0B,CAW1BpO,IAX0B;MAY1B+H,IAZ0B,GAqC1BqG,UArC0B,CAY1BrG,IAZ0B;MAa1B6L,YAb0B,GAqC1BxF,UArC0B,CAa1BwF,YAb0B;MAc1BC,aAd0B,GAqC1BzF,UArC0B,CAc1ByF,aAd0B;MAe1BC,cAf0B,GAqC1B1F,UArC0B,CAe1B0F,cAf0B;MAgB1BC,aAhB0B,GAqC1B3F,UArC0B,CAgB1B2F,aAhB0B;MAiB1BC,YAjB0B,GAqC1B5F,UArC0B,CAiB1B4F,YAjB0B;MAkB1BN,YAlB0B,GAqC1BtF,UArC0B,CAkB1BsF,YAlB0B;MAmB1B/E,OAnB0B,GAqC1BP,UArC0B,CAmB1BO,OAnB0B;MAoB1BC,SApB0B,GAqC1BR,UArC0B,CAoB1BQ,SApB0B;MAqB1BoE,QArB0B,GAqC1B5E,UArC0B,CAqB1B4E,QArB0B;MAsB1BiB,QAtB0B,GAqC1B7F,UArC0B,CAsB1B6F,QAtB0B;MAyB1B7I,aAzB0B,GAqC1BgD,UArC0B,CAyB1BhD,aAzB0B;MA0B1BC,aA1B0B,GAqC1B+C,UArC0B,CA0B1B/C,aA1B0B;MA2B1BC,cA3B0B,GAqC1B8C,UArC0B,CA2B1B9C,cA3B0B;MA4B1BC,WA5B0B,GAqC1B6C,UArC0B,CA4B1B7C,WA5B0B;MA6B1BC,gBA7B0B,GAqC1B4C,UArC0B,CA6B1B5C,gBA7B0B;MA8B1BC,aA9B0B,GAqC1B2C,UArC0B,CA8B1B3C,aA9B0B;MA+B1BE,iBA/B0B,GAqC1ByC,UArC0B,CA+B1BzC,iBA/B0B;MAgC1BC,OAhC0B,GAqC1BwC,UArC0B,CAgC1BxC,OAhC0B;MAiC1BC,UAjC0B,GAqC1BuC,UArC0B,CAiC1BvC,UAjC0B;MAkC1BtE,IAlC0B,GAqC1B6G,UArC0B,CAkC1B7G,IAlC0B;MAoCvB2M,UApCuB,4BAqC1B9F,UArC0B;;MAuCxBmG,WAAW,GAAG;IAChB9M,QAAQ,EAARA,QADgB;IAEhBE,SAAS,EAATA,SAFgB;IAGhBD,MAAM,EAANA;GAHJ;MAMM8M,QAAQ,GAAG,CAACpa,WAAW,CAAC2N,IAAD,CAAZ,IAAuB3N,WAAW,CAACqN,QAAD,CAAX,IAAyBrN,WAAW,CAACuN,SAAD,CAApC,IAAmDvN,WAAW,CAACsN,MAAD,CAAtG;EAEA1N,MAAM,CAACkF,IAAP,mBACQkP,UAAU,CAAC7C,WAAX,qBACGuH,iBADH,EAEG1E,UAAU,CAAC7C,WAFd,CADR,EAKO6C,UAAU,CAAC5C,gBALlB,GAMGlM,OANH,CAMW,UAAA5C,IAAI,EAAI;QACXA,IAAI,IAAIwX,UAAZ,EAAwB;UAChB,CAACM,QAAD,IAAa,CAAC/X,WAAW,CAACC,IAAD,CAA7B,EAAqC;eAC1BwX,UAAU,CAACxX,IAAD,CAAjB;;;GATZ;;MAcI8X,QAAJ,EAAc;iBAC6B,CAACzM,IAAI,IAAI,EAAT,EAAahK,KAAb,CAAmB,GAAnB,CAD7B;;;QACH8Q,QADG,yBACQ,MADR;QACgB4F,SADhB;;IAGVF,WAAW,CAAC5M,SAAZ,GAAwBkH,QAAQ,KAAK,OAAb,GAAuB6F,cAAvB,GAA+B7F,QAAQ,KAAK,MAAb,GAAsB8F,aAAtB,GAA6BC,eAApF,CAHU;;QAMN5U,IAAJ,EAAU;MACNkU,UAAU,CAAClU,IAAX,GAAkBA,IAAlB;;;QAGA+H,IAAJ,EAAU;MACNmM,UAAU,CAACnM,IAAX,GAAkB8G,QAAlB;;;QAGApH,QAAJ,EAAc;MACVyM,UAAU,CAACzM,QAAX,GAAsBA,QAAtB;;;YAGIoH,QAAR;WACS,QAAL;WACK,UAAL;YACQtT,KAAK,CAAC8T,QAAV,EAAoB;UAChBjB,UAAU,CAACyE,IAAD,CAAV,GAAmB,OAAnB;;;;;WAIH,OAAL;YACQ4B,SAAS,KAAK,UAAlB,EAA8B;UAC1BrG,UAAU,CAACyE,IAAD,CAAV,GAAmB,OAAnB;;;QAGJqB,UAAU,CAACnM,IAAX,GAAkB0M,SAAlB;;;WAGC,UAAL;WACK,OAAL;QACIrG,UAAU,CAACyE,IAAD,CAAV,GAAmB,SAAnB;;;WAGC,MAAL;QACIzE,UAAU,CAACyE,IAAD,CAAV,GAAmB,OAAnB;;;;;;;;MAQR,EAAE,mBAAmBzE,UAArB,KAAoC,kBAAkB7S,KAA1D,EAAiE;IAC7D6S,UAAU,CAAChD,aAAX,GAA2BwI,YAA3B;;;MAGA,EAAE,mBAAmBxF,UAArB,KAAoCyE,IAAI,IAAIzE,UAAhD,EAA4D;QACpDwF,aAAJ;;YAEQxF,UAAU,CAACyE,IAAD,CAAlB;WACS,SAAL;oCACkCzE,UADlC,CACYQ,SADZ;YACYA,UADZ,sCACwB,KADxB;;QAGIgF,aAAY,GAAGhF,UAAf;;;WAGC,OAAL;QACIgF,aAAY,GAAG,EAAf;;;WAGC,QAAL;QACIA,aAAY,GAAG,EAAf;;;WAGC,QAAL;QACIA,aAAY,GAAG,CAAf;;;WAGC,OAAL;;;;;IAKJxF,UAAU,CAAChD,aAAX,GAA2BwI,aAA3B;;;SAGG;IACHxF,UAAU,EAAVA,UADG;IAEH8F,UAAU,EAAVA,UAFG;IAGHK,WAAW,EAAXA;GAHJ;;AAOJ,AAAO,SAASxI,aAAT,CAAqBqI,YAArB,EAAmC7Y,KAAnC,EAA0C;MACvCoM,SADuC,GACPpM,KADO,CACvCoM,SADuC;MAC5BD,MAD4B,GACPnM,KADO,CAC5BmM,MAD4B;MACpBD,QADoB,GACPlM,KADO,CACpBkM,QADoB;;MAGzCE,SAAJ,EAAe;WACJC,aAAa,CAACD,SAAD,EAAYyM,YAAZ,CAApB;;;MAGA5Z,UAAU,CAACkN,MAAD,CAAd,EAAwB;WACbA,MAAM,CAAC0M,YAAD,CAAb;;;MAGA5Z,UAAU,CAACiN,QAAD,CAAd,EAA0B;WACfA,QAAQ,CAAC2M,YAAD,CAAf;;;SAGGvM,QAAQ,CAAClK,GAAT,CAAa8J,QAAb,EAAuB,UAAAK,KAAK;WAAIE,YAAY,CAACF,KAAD,EAAQsM,YAAR,CAAhB;GAA5B,CAAP;;;ACjRJ;;;;;;;;IAOMS;;;;;;;;;;;;;6BAKO;wBAC2CP,UAAU,CAAC,KAAK/Y,KAAN,CADrD;UACG6S,UADH,eACGA,UADH;UACe8F,UADf,eACeA,UADf;UAC2BK,WAD3B,eAC2BA,WAD3B;;aAID,oBAAC,KAAD,oBACQnG,UADR;QAEI,QAAQ,EAAE,kBAAAjF,UAAU;iBAAI4C,aAAW,CAACC,eAAa,CAAC7C,UAAD,EAAaiF,UAAb,EAAyB8F,UAAzB,CAAd,EAAoDK,WAApD,CAAf;;SAH5B;;;;;EARgB5K;;AAAlBkL,UACKjL,cAAcA;AADnBiL,UAEKhL,YAAYA;AAFjBgL,UAGKtK,eAAeA;;ACV1B,SAASuK,OAAT,CAAiBvY,gBAAjB,EAAmC;MACzBwY,OAAO,GAAGpK,UAAU,CAAC,UAACpP,KAAD,EAAQoD,GAAR,EAAgB;WAEnC,oBAAC,WAAD,CAAa,QAAb,QACK,UAAAsP,OAAO;aAAI,oBAAC,gBAAD,oBAAsB1S,KAAtB;QAA6B,SAAS,EAAE0S,OAAO,CAAC9K,SAAhD;QAA2D,GAAG,EAAExE;SAApE;KADZ,CADJ;GADsB,CAA1B;EAQAoW,OAAO,CAACnL,WAAR,GACI,6BAA6BrN,gBAAgB,CAACqN,WAAjB,IAAgCrN,gBAAgB,CAACyD,IAAjD,IAAyD,WAAtF,CADJ;SAGO8K,YAAY,CAACiK,OAAD,EAAUxY,gBAAV,CAAnB;;;ACbJ,SAASyY,cAAT,GAA0B;MAClB,CAACtE,KAAK,CAACuE,QAAX,EAAqB;UACX,IAAIvZ,KAAJ,6DAAN;;;MAGIwZ,UALc,GAKCxE,KALD,CAKdwE,UALc;MAMhBlI,YAAY,GAAGkI,UAAU,CAACC,WAAD,CAA/B;SAEOnI,YAAP;;;ACLJ;;;;;;;;;;AASA,SAASoI,QAAT,CAAkBpV,IAAlB,EAAoC;MAAZzE,KAAY,uEAAJ,EAAI;;MAC5B,CAACmV,KAAK,CAACuE,QAAX,EAAqB;UACX,IAAIvZ,KAAJ,6DAAN;;;MAGIuZ,QALwB,GAKcvE,KALd,CAKxBuE,QALwB;MAKdI,eALc,GAKc3E,KALd,CAKd2E,eALc;MAKGC,MALH,GAKc5E,KALd,CAKG4E,MALH;MAO5BrT,KAAJ;;MAEIjC,IAAJ,EAAU;QACF,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC1BiC,KAAK,GAAGjC,IAAR;MAEAzE,KAAK,CAACyE,IAAN,GAAaiC,KAAb;KAHJ,MAIO;MACH1G,KAAK,GAAGyE,IAAR;MAEAiC,KAAK,GAAG1G,KAAK,CAACyE,IAAd;;;;MAIFgN,YAAY,GAAGgI,cAAc,EAAnC;;;MAEM/I,KAAK,GAAGqJ,MAAM,CAAC,EAAD,CAAN,CAAW1W,OAAzB;;;MAEM2W,WAAW,GAAGD,MAAM,CAAC,EAAD,CAA1B;MAEIxH,WAAJ;EAEA7B,KAAK,CAACe,YAAN,GAAqBA,YAArB;EACAf,KAAK,CAAC1Q,KAAN,GAAcA,KAAd;EACA0Q,KAAK,CAACM,SAAN,GAAkBA,SAAlB,CA/BgC;;kBAiCX0I,QAAQ,CAAC,YAAM;IAChChJ,KAAK,CAACG,YAAN,GAAqBN,cAAc,EAAnC;IACAG,KAAK,CAACE,aAAN,GAAsB2B,WAAW,GAAG9B,aAAa,CAACC,KAAD,CAAjD;QAEMzH,MAAM,GAAGyH,KAAK,CAACE,aAAN,CAAoB9K,OAApB,EAAf;IAEA4K,KAAK,CAACE,aAAN,CAAoB1G,SAApB;WAEOjB,MAAP;GARyB,CAjCG;;MAiCvBqN,QAjCuB;;MA4C5B,CAAC/D,WAAL,EAAkB;IACdA,WAAW,GAAG,CAACd,YAAY,CAACrM,WAAb,IAA4B,EAA7B,EAAiCsL,KAAK,CAACE,aAAN,CAAoBlK,KAArD,KAA+DgK,KAAK,CAACE,aAAnF;;;EAGJkJ,eAAe,CAAC,YAAM;QACV7Q,MADU,GACCyH,KADD,CACVzH,MADU;;QAGdyH,KAAK,CAAC4B,UAAV,EAAsB;UACd,EAAE5L,KAAK,KAAK+K,YAAY,CAACrM,WAAb,IAA4B,EAAjC,CAAP,CAAJ,EAAkD;YACtCwB,UADsC,GACvB8J,KADuB,CACtC9J,UADsC;QAG9C2L,WAAW,CAAC/K,eAAZ,CAA4B;UACxBjB,SAAS,EAAE0C,MAAM,CAACzC,MADM;UAExBI,UAAU,EAAVA;SAFJ;;;;IAOR8J,KAAK,CAAC9J,UAAN,GAAmBqC,MAAM,CAACzC,MAA1B;GAdW,EAeZ,CAACkK,KAAK,CAACzH,MAAN,CAAazC,MAAd,CAfY,CAAf;EAiBAsT,eAAe,CAAC,YAAM;IAClBpJ,KAAK,CAAC4B,UAAN,GAAmB,IAAnB;IAEAvQ,OAAO,CACH,CAAC2E,KAAD,IAAU+K,YAAY,CAAC7J,SADpB,iEAEqDlB,KAFrD,gGAAP;IAKA3E,OAAO,CAAC2E,KAAD,kFAAP;WAEO,YAAM;MACTgK,KAAK,CAAC4B,UAAN,GAAmB,KAAnB;MAEAnP,SAAS,CAACnD,KAAK,CAACgM,IAAP,EAAa,IAAb,CAAT;KAHJ;GAVW,EAeZ,EAfY,CAAf;EAiBA8N,eAAe,CAAC,YAAM;QACdrI,YAAY,CAACxL,UAAjB,EAA6B;MACzBwL,YAAY,CAACxL,UAAb,CAAwBS,KAAxB,EAA+BgK,KAAK,CAACE,aAArC;;;WAGG,YAAM;UACLa,YAAY,CAACtL,YAAjB,EAA+B;QAC3BsL,YAAY,CAACtL,YAAb,CAA0BO,KAA1B,EAAiCgK,KAAK,CAACE,aAAvC,EAAsD,CAACF,KAAK,CAAC4B,UAAP,IAAqBtS,KAAK,CAACoQ,iBAAjF;;KAFR;GALW,EAUZ,CAAC1J,KAAD,CAVY,CAAf,CAlFgC;;EA+FhCoT,eAAe,CAAC,YAAM;IAClB3W,SAAS,CAACnD,KAAK,CAACgM,IAAP,EAAa0E,KAAK,CAAC9C,UAAnB,CAAT;GADW,CAAf;EAIAkM,eAAe,CAAC,YAAM;QACdE,WAAW,CAAC3W,OAAZ,CAAoB3C,MAApB,GAA6B,CAAjC,EAAoC;UAC1BuZ,aAAa,sBAAOD,WAAW,CAAC3W,OAAnB,CAAnB;;MAEA2W,WAAW,CAAC3W,OAAZ,CAAoB3C,MAApB,GAA6B,CAA7B;;aAEOuZ,aAAa,CAACvZ,MAArB,EAA6B;QACzBuZ,aAAa,CAAClQ,GAAd,GAAoB2G,KAAK,CAAC9C,UAA1B;;;GAPG,CAAf;;WAYSoD,SAAT,CAAmBxH,SAAnB,EAA8B5I,QAA9B,EAAwC;WAC7B,IAAIkH,OAAJ,CAAY,UAAAC,OAAO,EAAI;UACpBsK,OAAO,GAAG,SAAVA,OAAU;eAAMtK,OAAO,CAACpH,WAAW,CAACC,QAAD,EAAW8P,KAAK,CAAC9C,UAAjB,CAAZ,CAAb;OAAhB;;UAEI8C,KAAK,CAAC4B,UAAV,EAAsB;YACd5L,KAAK,KAAK+K,YAAY,CAACrM,WAAb,IAA4B,EAAjC,CAAT,EAA+C;UAC3CqM,YAAY,CAACzI,UAAb,CAAwBtC,KAAxB,EAA+B8C,SAA/B,EAA0C6I,OAA1C;SADJ,MAEO;UACHiE,QAAQ,CAAC/D,WAAW,CAAC7I,OAAZ,CAAoBF,SAApB,CAAD,CAAR;UAEA+I,WAAW,CAAC5I,cAAZ,CAA2BH,SAA3B;UAEAwQ,WAAW,CAAC3W,OAAZ,CAAoBiD,IAApB,CAAyB+L,OAAzB;;OARR,MAUO;QACHE,WAAW,CAAC7I,OAAZ,CAAoBF,SAApB;QACA6I,OAAO;;KAfR,CAAP;;;SAoBI3B,KAAK,CAAC9C,UAAN;IACJlH,KAAK,EAALA;KACG6L,WAAW,CAACxM,SAAZ,EAFC,EAGDwM,WAHC;IAIJC,UAAU,EAAEf,YAAY,CAAC7J;IAJ7B;;;ACjJJ,SAASsS,OAAT,GAAmB;wBACOT,cAAc,EADrB;MACP7R,SADO,mBACPA,SADO;;SAGRA,SAAP;;;ACFJ,SAASuS,UAAT,CAAoBna,KAApB,EAA2B;EACvBA,KAAK,qBAAQgP,YAAR,EAAyBhP,KAAzB;IAAgCkM,QAAQ,EAAE;IAA/C;;oBAEmC6M,UAAU,CAAC/Y,KAAD,CAHtB;MAGf6S,UAHe,eAGfA,UAHe;MAGH8F,UAHG,eAGHA,UAHG;;MAIjB/K,UAAU,GAAGiM,QAAQ,CAAChH,UAAD,CAA3B;SAEOpC,eAAa,CAAC7C,UAAD,EAAaiF,UAAb,EAAyB8F,UAAzB,CAApB;;;;;"} \ No newline at end of file +{"version":3,"file":"react-formutil.esm.development.js","sources":["../src/context.js","../src/utils.js","../src/Form.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function pathExist(scope, path) {\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (word in scope) {\n if (index + 1 === len) {\n return {\n data: scope[word]\n };\n }\n\n scope = scope[word];\n }\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n let pathData;\n\n if (force || (pathData = utils.pathExist($parsedTree, name))) {\n const $newState = processer(pathData && pathData.data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","pathExist","data","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","pathData","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","React","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-formutil.esm.production.js b/dist/react-formutil.esm.production.js index a5bc36b..da4ad9b 100644 --- a/dist/react-formutil.esm.production.js +++ b/dist/react-formutil.esm.production.js @@ -1 +1 @@ -import e,{createContext as t,createElement as r,Children as n,cloneElement as i,Component as a,forwardRef as u}from"react";import{isValidElementType as o}from"react-is";import s from"warning";import l from"hoist-non-react-statics";import $ from"react-fast-compare";function f(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function c(e,t){for(var r=0;r=0)continue;r[i]=e[i]}return r}function b(e,t){if(e==null)return{};var r=y(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function V(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function w(e,t){if(t&&(typeof t==="object"||typeof t==="function")){return t}return V(e)}function F(e,t){return P(e)||O(e,t)||j()}function k(e){return C(e)||S(e)||E()}function C(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?r-1:0),i=1;i-1}var z=function e(t){try{var r=new Function("origin","global","return typeof ".concat(t," === 'number' || (typeof ").concat(t," !== 'undefined' && !(origin in global)) ? ").concat(t," : origin"));return r(t,N)}catch(e){return t}};function q(){for(var e=arguments.length,t=new Array(e),r=0;r=0?[]:{}:l[h];break;default:l[h]=a;break}}}}catch(e){s(false,"The name '%s' of Field seems is not a legal expression.",i)}if(t.length>2){return n}}function K(e,t){if(e){if(T(e)){e(t)}else if("current"in e){e.current=t}}}var W=function e(t,r){for(var n=0,i=t.length;n2&&arguments[2]!==undefined?arguments[2]:{};return t.reduce(function(){r.apply(void 0,arguments);return arguments.length<=0?undefined:arguments[0]},n)};var ee=undefined;function te(e,t,r){X(e,function(t,r){if(t===ee){delete e[r]}else if(H(t)||Array.isArray(t)){te(t,r,e)}});if(r&&Object.keys(e).every(function(t){return e[t]===ee})){r[t]=ee;te(r)}}var re=function e(t,r){if(!_(q(t,r))){q(t,r,ee);te(t)}};var ne="FORM_VALIDATE_RESULT";var ie,ae;if(typeof requestAnimationFrame==="function"){ie=requestAnimationFrame;ae=cancelAnimationFrame}else{ie=setTimeout;ae=clearTimeout}var ue=function(t){p(a,t);function a(e){var t;f(this,a);t=w(this,m(a).call(this,e));t.$$formPending=void 0;t.$$formValidatePromise=void 0;t.$$registers={};t.$$deepRegisters={};t.$$regDuplications={};t.$$duplicateTimer=void 0;t.$$checkDuplication=function(){var e=V(t),r=e.$$regDuplications;var n;X(r,function(e,t){var i=F(e,2),a=i[0],u=i[1];s(a.$$reserved,"The Field with a name '".concat(t,"' has been registered!"));u.$$reset(a.$getState());n=delete r[t]});if(n){t.$render()}};t.$$register=function(e,r,n){t.$$unregister(n,r);if(e){var i=t.$$getRegister(e);if(i){ae(t.$$duplicateTimer);t.$$regDuplications[e]=[i,r];t.$$duplicateTimer=ie(t.$$checkDuplication)}else{t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value});re(t.$$defaultValues,e)}t.$$registers[r.$name=e]=r;t.createDeepRegisters();t.$render()}};t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=F(t.$$regDuplications[e],2),a=i[0],u=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:u.$getState().$value,$prevValue:a.$getState().$value});delete t.$$regDuplications[e]}else if(t.$$registers[e]===r){if(n){r.$$reserved=true}else{delete t.$$registers[e];t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value});re(t.$$defaultValues,e)}}t.createDeepRegisters();t.$render()}};t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(L(T(r)?r(t.props)||{}:r));t.$$defaultStates=t.$$deepParseObject(L(T(n)?n(t.props)||{}:n))};t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}};t.$$triggerChangeTimer=void 0;t.$$fieldChangedQueue=[];t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=k(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={};var n={};var i=t.$$registers;var a=false;e.forEach(function(e){if(!(e.name in i)){delete e.$newValue}if(e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var u=t.$$getRegister(e.name);if(u){u.$$triggerChange(e)}}"$newValue"in e&&q(r,e.name,e.$newValue);"$prevValue"in e&&q(n,e.name,e.$prevValue);a=true}});if(a){if(T(t.props.$validator)){t.$$formValidate()}if(T(t.props.$onFormChange)){t.props.$onFormChange(t.$formutil,r,n)}}}};t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)};t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||q(t.$$deepRegisters,e);if(r){return r}}};t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n=t.props.$validator;var i;var a;var u;var o;var s=n(t.$formutil.$params,t.formtutil);var l=function t(n){return r(B(e,B(u,n)))};if(U(s)){if(!t.$$formPending){t.$$formPending=true;t.$render()}a=function e(t){return i=t(l)};o=s.then(function(){return void 0},function(e){return e}).then(function(e){if(i){return i}t.$shouldCancelPrevAsyncValidate=null;t.$$formPending=false;return t.$$setFormErrors(e,l)})}else{if(t.$$formPending){t.$$formPending=false}o=t.$$setFormErrors(s,l)}if(t.$shouldCancelPrevAsyncValidate){t.$shouldCancelPrevAsyncValidate(function(e){u=e;return o})}t.$shouldCancelPrevAsyncValidate=a})};t.$$setFormErrors=function(e,r){if(e&&(e instanceof Error||typeof e!=="object")){s(false,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field.");return t.$render(r)}return t.$$setStates(e||{},function(e,t){var r=t.$getState(),n=r.$error,i=n===void 0?{}:n;if(e){return{$error:h({},i,v({},ne,e))}}if(i[ne]){delete i[ne];return{$error:i}}return},r,true)};t.$getField=function(e){var r=t.$$getRegister(e);s(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted."));s(e,"You should pass a name of the mounted Field to $getField().");if(r){return r.$new()}};t.$$onChange=function(e,r,n){return t.$setStates(v({},e,r),n)};t.$$setStates=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=arguments.length>1?arguments[1]:undefined;var n=arguments.length>2?arguments[2]:undefined;var i=arguments.length>3?arguments[3]:undefined;var a=t.$$deepParseObject(e);X(t.$$registers,function(n,u){var o=u in e?e[u]:q(a,u);if(!_(o)||i){var s=r(o,n);if(s){var l=t.$formutil.$weakParams[u];var $=n.$$merge(s),f=$.$value;n.$$detectChange(s);if("$value"in s||"$viewValue"in s){var c=W(t.$$fieldChangedQueue,function(e){return e.name===u});if(c){if(!("$prevValue"in c)){c.$prevValue=c.$newValue}c.$newValue=f}else{t.$$fieldChangedQueue.push({name:u,$newValue:f,$prevValue:l})}}}}});return t.$render(n)};t.$render=function(e){return new Promise(function(r){return t.forceUpdate(function(){return r(B(e,t.$formutil))})})};t.$validates=function(){var e;for(var r=arguments.length,n=new Array(r),i=0;i1&&arguments[1]!==undefined?arguments[1]:{};X(t,function(e,t){return q(r,t,e)});return r}},{key:"componentDidMount",value:function e(){K(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function e(t){var r=this;K(this.props.$ref,this.$formutil);ae(this.$$triggerChangeTimer);this.$$triggerChangeTimer=ie(function(){r.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function e(){K(this.props.$ref,null)}},{key:"_render",value:function e(){var t=this.$formutil;var a=this.props,u=a.children,o=a.render,s=a.component;if(s){return r(s,{$formutil:t})}if(T(o)){return o(t)}if(T(u)){return u(t)}return n.map(u,function(e){return e&&M(e.type)?i(e,{$formutil:t}):e})}},{key:"render",value:function t(){var r=this;var n=this.props.$processer;var i=Object.keys(this.$$registers).map(function(e){return{path:e,$state:r.$$registers[e].$getState()}});var a=Z(i,function(e,t){var r=t.path,i=t.$state;if(n){n(i,r)}if("$value"in i&&(i.$dirty||!_(i.$value))){e[r]=i.$value}});var u=Z(i,function(e,t){var r=t.path,n=t.$state;return r in a&&q(e,r,a[r])});var o=i.some(function(e){var t=e.$state;return t.$invalid});var s=i.some(function(e){var t=e.$state;return t.$dirty});var l=i.some(function(e){var t=e.$state;return t.$touched});var $=i.some(function(e){var t=e.$state;return t.$focused});var f=this.$$formPending||i.some(function(e){var t=e.$state;return t.$pending});var c=this.$formutil={$$registers:h({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:Z(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n)}),$params:h({},this.$$defaultValues,u),$errors:Z(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){q(e,r,n.$error)}}),$dirts:Z(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$dirty)}),$touches:Z(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$touched)}),$focuses:Z(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$focused)}),$pendings:Z(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$pending)}),$weakStates:Z(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:a,$weakErrors:Z(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){e[r]=n.$error}}),$weakDirts:Z(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:Z(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:Z(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:Z(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function e(t){if(t){var r=c.$getField(t);return r&&r.$getFirstError()}for(var n in c.$weakErrors){var i=c.$weakErrors[n];for(var a in i){return i[a]instanceof Error?i[a].message:i[a]}}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function e(){return r.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!o,$invalid:o,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:$,$pending:f};return e.createElement(x.Provider,{value:this.getFormContext()},this._render())}}]);return a}(a);ue.displayName="React.Formutil.Form";ue.defaultProps={$defaultValues:{},$defaultStates:{}};function oe(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=u(function(n,i){var a=Object.assign({},n);var u=n.component,o=b(n,["component"]);["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){if(e in a){if(e==="$defaultStates"||e==="$defaultValues"){o[e]=h({},r[e],a[e])}delete a[e]}});return e.createElement(ue,Object.assign({},r,o,{render:function r(n){return e.createElement(t,Object.assign({},a,{$formutil:n,ref:i}))}}))});n.displayName="React.Formutil.withForm."+(t.displayName||t.name||"Anonymous");return l(n,t)}var se=Y(oe);var le=0;var $e={$valid:true,$invalid:false,$dirty:false,$pristine:true,$touched:false,$untouched:true,$focused:false,$pending:false,$error:{}};function fe(e){return e!==true}function ce(e,t,r){s(!_(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}var de="React.Formutil.Field";function ve(){return le++}function he(e,t){var a=t.children,u=t.render,o=t.component;if(o){return r(o,{$fieldutil:e})}if(T(u)){return u(e)}if(T(a)){return a(e)}return n.map(a,function(t){return t&&M(t.type)?i(t,{$fieldutil:e}):t})}function pe(e,t){var r={$$FIELD_UUID:e.$$FIELD_UUID,$$reset:o,$$merge:b,$$detectChange:i,$$triggerChange:a,$onValidate:u,$new:function t(){return e.$fieldutil},$picker:s,$getState:s,$getComponent:function e(){return t},$reset:function t(r,n){return e.$setState(o(r),n)},$getFirstError:y,$validate:l,$setState:e.$setState,$render:$,$setValue:f,$setTouched:c,$setDirty:d,$setFocused:v,$setValidity:m,$setError:p,$setPending:g};var n;function i(e){if("$value"in e||"$viewValue"in e){l()}}function a(t){var r=t.$newValue,n=t.$prevValue;var i=e.props.$onFieldChange;if(T(i)){i(r,n,e.$formContext.$formutil)}}function u(e){n.then(e);return n}function o(t){var r;var n=e.props,i=e.$formContext;if(i.$$getDefault){var a=n.name;var u=i.$$getDefault(),o=u.$$defaultStates,s=u.$$defaultValues;if(a&&s){var l=q(s,a);r=q(o,a)||{};if(!_(l)){r.$value=l}}}var $=n.$defaultValue,f=n.$defaultState;return b(h({},$e,T(f)?f(n):f,{$value:T($)?$(n):"$defaultValue"in n?$:""},r,t))}function s(){return h({},e.$state)}function l(t){return n=new Promise(function(r){var n=e.props,i=e.$formContext;var a=h({},n.$validators,n.$asyncValidators);var u=e.$state,o=u.$value,s=u.$pending,l=Object.assign({},u.$error);var $=i.$formutil;var f={};var c=false;var d;var v;var y;var b;delete l[ne];var V=Object.keys(a).reduce(function(t,r){delete l[r];if(!c&&n[r]!=null){var i=a[r](o,n[r],h({},n,{$formutil:$,$fieldutil:e.$fieldutil,$validError:f}));if(U(i)){t.push(i["catch"](function(e){if(!d){m(r,e||r)}}))}else if(fe(i)){f[r]=i||r;ce(i,r,n.name);if(n.$validateLazy){c=true}}}return t},[]);var w=function e(n){return r(B(t,B(y,n)))};if(V.length){if(!s){g(true)}v=function e(t){return d=t(w)};V.push(p(h({},l,f)));b=Promise.all(V).then(function(){if(d){return d}e.$shouldCancelPrevAsyncValidate=null;return g(false,w)})}else{if(s){g(false)}b=p(h({},l,f),w)}if(e.$shouldCancelPrevAsyncValidate){e.$shouldCancelPrevAsyncValidate(function(e){y=e;return b})}e.$shouldCancelPrevAsyncValidate=v})}function $(t,r){return e.$setState({$viewValue:t,$dirty:true},r)}function f(t,r){return e.$setState({$value:t},r)}function c(t,r){return e.$setState({$touched:t},r)}function d(t,r){return e.$setState({$dirty:t},r)}function v(t,r){return e.$setState({$focused:t},r)}function p(t,r){return e.$setState({$error:t},r)}function m(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var n=arguments.length>2?arguments[2]:undefined;var i=Object.assign({},e.$state.$error);if(fe(r)){i[t]=r||t;ce(r,t,e.props.name)}else{delete i[t]}return p(i,n)}function g(t,r){return e.$setState({$pending:t},r)}function y(){var t=e.$state.$error,r=t===void 0?{}:t;for(var n in r){return r[n]instanceof Error?r[n].message:r[n]}}function b(t){var r=Object.assign({},t);if("$error"in r){if(!r.$error){r.$error={}}r.$valid=Object.keys(r.$error).length===0}var n=e.props,i=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){var u=function e(t){return r.$viewValue=t};r.$value=i?i(r.$viewValue,u):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){var o=function e(t){return r.$value=t};r.$viewValue=a?a(r.$value,o):r.$value}if("$valid"in r){r.$invalid=!r.$valid}else if("$invalid"in r){r.$dirty=!r.$invalid}if("$dirty"in r){r.$pristine=!r.$dirty}else if("$pristine"in r){r.$dirty=!r.$pristine}if("$touched"in r){r.$untouched=!r.$touched}else if("$untouched"in r){r.$touched=!r.$untouched}e.$state=h({},e.$state,r);return s()}return r}var me=function(t){p(r,t);function r(){var e;var t;f(this,r);for(var n=arguments.length,i=new Array(n),a=0;a with the name '".concat(t,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));s(t,"You should assign a name to , otherwise it will be isolated!");if(r.$$register){r.$$register(t,this.$fieldHandler)}this.$prevValue=this.$state.$value;K(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){if(this.$formContext.$$unregister){this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount)}this.isMounting=false;K(this.props.$ref,null)}},{key:"componentDidUpdate",value:function e(t){var r=this.props.name;if(r!==t.name){if(this.$formContext.$$register){this.$formContext.$$register(r,this.$fieldHandler,t.name)}}K(this.props.$ref,this.$fieldutil);if(this.$state.$value!==this.$prevValue){if(!(r in(this.$formContext.$$registers||{}))){this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue})}this.$prevValue=this.$state.$value}}},{key:"_render",value:function e(){var t=this.$fieldutil=h({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil});return he(t,this.props)}},{key:"render",value:function t(){var r=this;var n=!this.$formContext;return e.createElement(x.Consumer,null,function(e){r.$formContext=e;if(!r.$fieldHandler){r.$fieldHandler=pe(r,r)}r.$registered=(e.$$registers||{})[r.$fieldHandler.$name]||r.$fieldHandler;if(n){r.$fieldHandler.$$reset();r.$fieldHandler.$validate()}return r._render()})}}]);return r}(a);me.displayName=de;function ge(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=u(function(n,i){var a=Object.assign({},n);var u=n.component,o=b(n,["component"]);["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(h({},r.$validators,r.$asyncValidators,a.$validators,a.$asyncValidators))).forEach(function(e){if(e in a){if(e==="$validators"||e==="$asyncValidators"||e==="$defaultState"){o[e]=h({},r[e],a[e])}delete a[e]}});return e.createElement(me,Object.assign({},r,o,{render:function r(n){return e.createElement(t,Object.assign({},a,{$fieldutil:n,ref:i}))}}))});n.displayName="React.Formutil.withField."+(t.displayName||t.name||"Anonymous");return l(n,t)}var ye=Y(ge);var be=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"render",value:function t(){var r=this;var n=this.props,i=n.$fieldutil,a=n.value,u=n.onChange,o=n.onFocus,s=n.onBlur,l=n.checked,$=n.unchecked,f=b(n,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]);var c=this.props.type;var d={value:"compositionValue"in this?this.compositionValue:a,onCompositionEnd:function e(t){r.composition=false;delete r.compositionValue;d.onChange(t)},onCompositionStart:function e(){return r.composition=true},onChange:function e(t){var n=t.target.value;if(r.composition){r.compositionValue=n;r.forceUpdate()}else{u(n,t)}},onFocus:o,onBlur:s};var v="input";switch(c){case"select":v=c;d.onChange=function(e){var t=e.target;var r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;u(r,e)};delete f.type;break;case"textarea":v=c;delete f.type;break;case"checkbox":case"radio":d={checked:a===l,onChange:function e(t){u(t.target.checked?l:$,t)},onFocus:o,onBlur:s};break;default:break}return e.createElement(v,Object.assign({},f,d))}}]);return r}(a);be.displayName="React.Formutil.EasyField.Native";be.defaultProps={value:"",type:"text",checked:true,unchecked:false};var Ve=t({}),we=Ve.Provider,Fe=Ve.Consumer;var ke=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"getGroupContext",value:function e(){return this.props}},{key:"_render",value:function t(){var r=this.props,a=r.className,u=r.groupNode,o=r.children;var s={GroupOption:Ce,Field:Pe};var l=T(o)?o(s):n.map(o,function(e){return i(e,s)});if(u===null){return l}return e.createElement(u,{className:a},l)}},{key:"render",value:function t(){return e.createElement(we,{value:this.getGroupContext()},this._render())}}]);return r}(a);ke.displayName="React.Formutil.EasyField.Group";ke.defaultProps={type:"checkbox",groupNode:"div"};var Ce=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"componentDidMount",value:function e(){s("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function t(){var r=this.props,n=r.$value,i=r.onChange,a=r.onFocus,u=r.onBlur,o=b(r,["$value","onChange","onFocus","onBlur"]);return e.createElement(Fe,null,function(t){var r=t.type,s=t.name;var l=r==="radio"?{checked:t.value===n,onChange:function e(r){t.onChange(n,r);i&&i(r)}}:r==="checkbox"?{checked:t.value.indexOf(n)>-1,onChange:function e(r){t.onChange(r.target.checked?t.value.concat(n):t.value.filter(function(e){return e!==n}),r);i&&i(r)}}:{value:t.value,onChange:function e(r){t.onChange(r);i&&i(r)}};return e.createElement("input",Object.assign({name:s},o,l,{type:r,onFocus:function e(r){t.onFocus(r);a&&a(r)},onBlur:function e(r){t.onBlur(r);u&&u(r)}}))})}}]);return r}(a);Ce.displayName="React.Formutil.EasyField.Group.Option";var Pe=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"componentDidMount",value:function e(){s(false,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function t(){return e.createElement(Ce,this.props)}}]);return r}(a);Pe.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Se=e.Frament||"div";var Oe=function(t){p(r,t);function r(e){var t;f(this,r);t=w(this,m(r).call(this,e));t.id=0;t.latestValue=t.props.value;t.$formutil=void 0;t.FieldValidators={required:function e(t){return t!==null}};t.$onFormChange=function(e){e.$onValidates(function(e){var r=e.$invalid,n=e.$params;if(r){if(t.props.value.length){t.props.onChange(t.latestValue=[])}}else if(!$(t.props.value,n.list)){t.props.onChange(t.latestValue=n.list)}})};t.swap=function(e,r,n){return t.$setState(function(t){var n=t.items;var i=[n[e],n[r]];n[r]=i[0];n[e]=i[1];return n},n)};t.insert=function(){var e,r,n;for(var i=arguments.length,a=new Array(i),u=0;u=t}],["max",function(e,t){return R(e)||e*1<=t}],["min",function(e,t){return R(e)||e*1>=t}],["pattern",function(e,t){return R(e)||t.test(e)}],["enum",function(e,t){return R(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=F(t,2),n=r[0],i=r[1];e[n]=function e(t,r,a){var u=a.validMessage,o=u===void 0?{}:u;return i.apply(void 0,arguments)||o[n]||"Error input: ".concat(n)};return e},{});var xe="React.Formutil.EasyField";var De={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function e(t){return typeof t==="string"?t.trim():t}};function Ae(e,t,r){var n;var i=t.valuePropName,a=t.changePropName,u=t.focusPropName,o=t.blurPropName,s=t.passUtil;var l=function e(t){return t&&t.target?t.target[i]:t};var $=h({},r,(n={},v(n,i,e.$viewValue),v(n,a,function(){for(var r=arguments.length,n=new Array(r),i=0;i=16.8, Please upgrade your reactjs.")}var t=e.useContext;var r=t(x);return r}function Ie(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!e.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var n=e.useState,i=e.useLayoutEffect,a=e.useRef;var u;if(t){if(typeof t==="string"){u=t;r.name=u}else{r=t;u=r.name}}var o=Ue();var l=a({}).current;var $=a([]);var f;l.$formContext=o;l.props=r;l.$setState=p;var c=n(function(){l.$$FIELD_UUID=ve();l.$fieldHandler=f=pe(l);var e=l.$fieldHandler.$$reset();l.$fieldHandler.$validate();return e}),d=F(c,2),v=d[1];if(!f){f=(o.$$registers||{})[l.$fieldHandler.$name]||l.$fieldHandler}i(function(){var e=l.$state;if(l.isMounting){if(!(u in(o.$$registers||{}))){var t=l.$prevValue;f.$$triggerChange({$newValue:e.$value,$prevValue:t})}}l.$prevValue=e.$value},[l.$state.$value]);i(function(){l.isMounting=true;s(!u||o.$formutil,"You should enusre that the useField() with the name '".concat(u,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));s(u,"You should pass a name argument to useField(), otherwise it will be isolated!");return function(){l.isMounting=false;K(r.$ref,null)}},[]);i(function(){if(o.$$register){o.$$register(u,l.$fieldHandler)}return function(){if(o.$$unregister){o.$$unregister(u,l.$fieldHandler,!l.isMounting&&r.$reserveOnUnmount)}}},[u]);i(function(){K(r.$ref,l.$fieldutil)});i(function(){if($.current.length>0){var e=k($.current);$.current.length=0;while(e.length){e.pop()(l.$fieldutil)}}});function p(e,t){return new Promise(function(r){var n=function e(){return r(B(t,l.$fieldutil))};if(l.isMounting){if(u in(o.$$registers||{})){o.$$onChange(u,e,n)}else{v(f.$$merge(e));f.$$detectChange(e);$.current.push(n)}}else{f.$$merge(e);n()}})}return l.$fieldutil=h({$name:u},f.$getState(),f,{$$formutil:o.$formutil})}function He(){var e=Ue(),t=e.$formutil;return t}function Me(e){e=h({},De,e,{children:null});var t=Ne(e),r=t.fieldProps,n=t.childProps;var i=Ie(r);return Ae(i,r,n)}export{Te as EasyField,me as Field,ue as Form,Re as connect,Ie as useField,He as useForm,Me as useHandler,ye as withField,se as withForm}; +import e,{createContext as t,createElement as r,Children as n,cloneElement as i,Component as a,forwardRef as u}from"react";import{isValidElementType as o}from"react-is";import s from"warning";import l from"hoist-non-react-statics";import $ from"react-fast-compare";function f(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function c(e,t){for(var r=0;r=0)continue;r[i]=e[i]}return r}function b(e,t){if(e==null)return{};var r=y(e,t);var n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function V(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function w(e,t){if(t&&(typeof t==="object"||typeof t==="function")){return t}return V(e)}function F(e,t){return P(e)||O(e,t)||j()}function k(e){return C(e)||S(e)||E()}function C(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?r-1:0),i=1;i-1}var z=function e(t){try{var r=new Function("origin","global","return typeof ".concat(t," === 'number' || (typeof ").concat(t," !== 'undefined' && !(origin in global)) ? ").concat(t," : origin"));return r(t,N)}catch(e){return t}};function q(){for(var e=arguments.length,t=new Array(e),r=0;r=0?[]:{}:l[h];break;default:l[h]=a;break}}}}catch(e){s(false,"The name '%s' of Field seems is not a legal expression.",i)}if(t.length>2){return n}}function K(e,t){var r=t.split(A).map(function(e){return e.trim()}).filter(function(e){return e!==""});for(var n=0,i=r.length;n2&&arguments[2]!==undefined?arguments[2]:{};return t.reduce(function(){r.apply(void 0,arguments);return arguments.length<=0?undefined:arguments[0]},n)};var te=undefined;function re(e,t,r){Z(e,function(t,r){if(t===te){delete e[r]}else if(H(t)||Array.isArray(t)){re(t,r,e)}});if(r&&Object.keys(e).every(function(t){return e[t]===te})){r[t]=te;re(r)}}var ne=function e(t,r){if(!_(q(t,r))){q(t,r,te);re(t)}};var ie="FORM_VALIDATE_RESULT";var ae,ue;if(typeof requestAnimationFrame==="function"){ae=requestAnimationFrame;ue=cancelAnimationFrame}else{ae=setTimeout;ue=clearTimeout}var oe=function(t){p(a,t);function a(e){var t;f(this,a);t=w(this,m(a).call(this,e));t.$$formPending=void 0;t.$$formValidatePromise=void 0;t.$$registers={};t.$$deepRegisters={};t.$$regDuplications={};t.$$duplicateTimer=void 0;t.$$checkDuplication=function(){var e=V(t),r=e.$$regDuplications;var n;Z(r,function(e,t){var i=F(e,2),a=i[0],u=i[1];s(a.$$reserved,"The Field with a name '".concat(t,"' has been registered!"));u.$$reset(a.$getState());n=delete r[t]});if(n){t.$render()}};t.$$register=function(e,r,n){t.$$unregister(n,r);if(e){var i=t.$$getRegister(e);if(i){ue(t.$$duplicateTimer);t.$$regDuplications[e]=[i,r];t.$$duplicateTimer=ae(t.$$checkDuplication)}else{t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value});ne(t.$$defaultValues,e)}t.$$registers[r.$name=e]=r;t.createDeepRegisters();t.$render()}};t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=F(t.$$regDuplications[e],2),a=i[0],u=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:u.$getState().$value,$prevValue:a.$getState().$value});delete t.$$regDuplications[e]}else if(t.$$registers[e]===r){if(n){r.$$reserved=true}else{delete t.$$registers[e];t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value});ne(t.$$defaultValues,e)}}t.createDeepRegisters();t.$render()}};t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(L(T(r)?r(t.props)||{}:r));t.$$defaultStates=t.$$deepParseObject(L(T(n)?n(t.props)||{}:n))};t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}};t.$$triggerChangeTimer=void 0;t.$$fieldChangedQueue=[];t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=k(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={};var n={};var i=t.$$registers;var a=false;e.forEach(function(e){if(!(e.name in i)){delete e.$newValue}if(e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var u=t.$$getRegister(e.name);if(u){u.$$triggerChange(e)}}"$newValue"in e&&q(r,e.name,e.$newValue);"$prevValue"in e&&q(n,e.name,e.$prevValue);a=true}});if(a){if(T(t.props.$validator)){t.$$formValidate()}if(T(t.props.$onFormChange)){t.props.$onFormChange(t.$formutil,r,n)}}}};t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)};t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||q(t.$$deepRegisters,e);if(r){return r}}};t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n=t.props.$validator;var i;var a;var u;var o;var s=n(t.$formutil.$params,t.formtutil);var l=function t(n){return r(B(e,B(u,n)))};if(U(s)){if(!t.$$formPending){t.$$formPending=true;t.$render()}a=function e(t){return i=t(l)};o=s.then(function(){return void 0},function(e){return e}).then(function(e){if(i){return i}t.$shouldCancelPrevAsyncValidate=null;t.$$formPending=false;return t.$$setFormErrors(e,l)})}else{if(t.$$formPending){t.$$formPending=false}o=t.$$setFormErrors(s,l)}if(t.$shouldCancelPrevAsyncValidate){t.$shouldCancelPrevAsyncValidate(function(e){u=e;return o})}t.$shouldCancelPrevAsyncValidate=a})};t.$$setFormErrors=function(e,r){if(e&&(e instanceof Error||typeof e!=="object")){s(false,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field.");return t.$render(r)}return t.$$setStates(e||{},function(e,t){var r=t.$getState(),n=r.$error,i=n===void 0?{}:n;if(e){return{$error:h({},i,v({},ie,e))}}if(i[ie]){delete i[ie];return{$error:i}}return},r,true)};t.$getField=function(e){var r=t.$$getRegister(e);s(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted."));s(e,"You should pass a name of the mounted Field to $getField().");if(r){return r.$new()}};t.$$onChange=function(e,r,n){return t.$setStates(v({},e,r),n)};t.$$setStates=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var r=arguments.length>1?arguments[1]:undefined;var n=arguments.length>2?arguments[2]:undefined;var i=arguments.length>3?arguments[3]:undefined;var a=t.$$deepParseObject(e);Z(t.$$registers,function(e,n){var u;if(i||(u=K(a,n))){var o=r(u&&u.data,e);if(o){var s=t.$formutil.$weakParams[n];var l=e.$$merge(o),$=l.$value;e.$$detectChange(o);if("$value"in o||"$viewValue"in o){var f=J(t.$$fieldChangedQueue,function(e){return e.name===n});if(f){if(!("$prevValue"in f)){f.$prevValue=f.$newValue}f.$newValue=$}else{t.$$fieldChangedQueue.push({name:n,$newValue:$,$prevValue:s})}}}}});return t.$render(n)};t.$render=function(e){return new Promise(function(r){return t.forceUpdate(function(){return r(B(e,t.$formutil))})})};t.$validates=function(){var e;for(var r=arguments.length,n=new Array(r),i=0;i1&&arguments[1]!==undefined?arguments[1]:{};Z(t,function(e,t){return q(r,t,e)});return r}},{key:"componentDidMount",value:function e(){W(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function e(t){var r=this;W(this.props.$ref,this.$formutil);ue(this.$$triggerChangeTimer);this.$$triggerChangeTimer=ae(function(){r.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function e(){W(this.props.$ref,null)}},{key:"_render",value:function e(){var t=this.$formutil;var a=this.props,u=a.children,o=a.render,s=a.component;if(s){return r(s,{$formutil:t})}if(T(o)){return o(t)}if(T(u)){return u(t)}return n.map(u,function(e){return e&&M(e.type)?i(e,{$formutil:t}):e})}},{key:"render",value:function t(){var r=this;var n=this.props.$processer;var i=Object.keys(this.$$registers).map(function(e){return{path:e,$state:r.$$registers[e].$getState()}});var a=ee(i,function(e,t){var r=t.path,i=t.$state;if(n){n(i,r)}if("$value"in i&&(i.$dirty||!_(i.$value))){e[r]=i.$value}});var u=ee(i,function(e,t){var r=t.path,n=t.$state;return r in a&&q(e,r,a[r])});var o=i.some(function(e){var t=e.$state;return t.$invalid});var s=i.some(function(e){var t=e.$state;return t.$dirty});var l=i.some(function(e){var t=e.$state;return t.$touched});var $=i.some(function(e){var t=e.$state;return t.$focused});var f=this.$$formPending||i.some(function(e){var t=e.$state;return t.$pending});var c=this.$formutil={$$registers:h({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:ee(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n)}),$params:h({},this.$$defaultValues,u),$errors:ee(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){q(e,r,n.$error)}}),$dirts:ee(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$dirty)}),$touches:ee(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$touched)}),$focuses:ee(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$focused)}),$pendings:ee(i,function(e,t){var r=t.path,n=t.$state;return q(e,r,n.$pending)}),$weakStates:ee(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:a,$weakErrors:ee(i,function(e,t){var r=t.path,n=t.$state;if(n.$invalid){e[r]=n.$error}}),$weakDirts:ee(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:ee(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:ee(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:ee(i,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function e(t){if(t){var r=c.$getField(t);return r&&r.$getFirstError()}for(var n in c.$weakErrors){var i=c.$weakErrors[n];for(var a in i){return i[a]instanceof Error?i[a].message:i[a]}}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function e(){return r.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!o,$invalid:o,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:$,$pending:f};return e.createElement(x.Provider,{value:this.getFormContext()},this._render())}}]);return a}(a);oe.displayName="React.Formutil.Form";oe.defaultProps={$defaultValues:{},$defaultStates:{}};function se(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=u(function(n,i){var a=Object.assign({},n);var u=n.component,o=b(n,["component"]);["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){if(e in a){if(e==="$defaultStates"||e==="$defaultValues"){o[e]=h({},r[e],a[e])}delete a[e]}});return e.createElement(oe,Object.assign({},r,o,{render:function r(n){return e.createElement(t,Object.assign({},a,{$formutil:n,ref:i}))}}))});n.displayName="React.Formutil.withForm."+(t.displayName||t.name||"Anonymous");return l(n,t)}var le=Y(se);var $e=0;var fe={$valid:true,$invalid:false,$dirty:false,$pristine:true,$touched:false,$untouched:true,$focused:false,$pending:false,$error:{}};function ce(e){return e!==true}function de(e,t,r){s(!_(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}var ve="React.Formutil.Field";function he(){return $e++}function pe(e,t){var a=t.children,u=t.render,o=t.component;if(o){return r(o,{$fieldutil:e})}if(T(u)){return u(e)}if(T(a)){return a(e)}return n.map(a,function(t){return t&&M(t.type)?i(t,{$fieldutil:e}):t})}function me(e,t){var r={$$FIELD_UUID:e.$$FIELD_UUID,$$reset:o,$$merge:b,$$detectChange:i,$$triggerChange:a,$onValidate:u,$new:function t(){return e.$fieldutil},$picker:s,$getState:s,$getComponent:function e(){return t},$reset:function t(r,n){return e.$setState(o(r),n)},$getFirstError:y,$validate:l,$setState:e.$setState,$render:$,$setValue:f,$setTouched:c,$setDirty:d,$setFocused:v,$setValidity:m,$setError:p,$setPending:g};var n;function i(e){if("$value"in e||"$viewValue"in e){l()}}function a(t){var r=t.$newValue,n=t.$prevValue;var i=e.props.$onFieldChange;if(T(i)){i(r,n,e.$formContext.$formutil)}}function u(e){n.then(e);return n}function o(t){var r;var n=e.props,i=e.$formContext;if(i.$$getDefault){var a=n.name;var u=i.$$getDefault(),o=u.$$defaultStates,s=u.$$defaultValues;if(a&&s){var l=q(s,a);r=q(o,a)||{};if(!_(l)){r.$value=l}}}var $=n.$defaultValue,f=n.$defaultState;return b(h({},fe,T(f)?f(n):f,{$value:T($)?$(n):"$defaultValue"in n?$:""},r,t))}function s(){return h({},e.$state)}function l(t){return n=new Promise(function(r){var n=e.props,i=e.$formContext;var a=h({},n.$validators,n.$asyncValidators);var u=e.$state,o=u.$value,s=u.$pending,l=Object.assign({},u.$error);var $=i.$formutil;var f={};var c=false;var d;var v;var y;var b;delete l[ie];var V=Object.keys(a).reduce(function(t,r){delete l[r];if(!c&&n[r]!=null){var i=a[r](o,n[r],h({},n,{$formutil:$,$fieldutil:e.$fieldutil,$validError:f}));if(U(i)){t.push(i["catch"](function(e){if(!d){m(r,e||r)}}))}else if(ce(i)){f[r]=i||r;de(i,r,n.name);if(n.$validateLazy){c=true}}}return t},[]);var w=function e(n){return r(B(t,B(y,n)))};if(V.length){if(!s){g(true)}v=function e(t){return d=t(w)};V.push(p(h({},l,f)));b=Promise.all(V).then(function(){if(d){return d}e.$shouldCancelPrevAsyncValidate=null;return g(false,w)})}else{if(s){g(false)}b=p(h({},l,f),w)}if(e.$shouldCancelPrevAsyncValidate){e.$shouldCancelPrevAsyncValidate(function(e){y=e;return b})}e.$shouldCancelPrevAsyncValidate=v})}function $(t,r){return e.$setState({$viewValue:t,$dirty:true},r)}function f(t,r){return e.$setState({$value:t},r)}function c(t,r){return e.$setState({$touched:t},r)}function d(t,r){return e.$setState({$dirty:t},r)}function v(t,r){return e.$setState({$focused:t},r)}function p(t,r){return e.$setState({$error:t},r)}function m(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var n=arguments.length>2?arguments[2]:undefined;var i=Object.assign({},e.$state.$error);if(ce(r)){i[t]=r||t;de(r,t,e.props.name)}else{delete i[t]}return p(i,n)}function g(t,r){return e.$setState({$pending:t},r)}function y(){var t=e.$state.$error,r=t===void 0?{}:t;for(var n in r){return r[n]instanceof Error?r[n].message:r[n]}}function b(t){var r=Object.assign({},t);if("$error"in r){if(!r.$error){r.$error={}}r.$valid=Object.keys(r.$error).length===0}var n=e.props,i=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){var u=function e(t){return r.$viewValue=t};r.$value=i?i(r.$viewValue,u):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){var o=function e(t){return r.$value=t};r.$viewValue=a?a(r.$value,o):r.$value}if("$valid"in r){r.$invalid=!r.$valid}else if("$invalid"in r){r.$dirty=!r.$invalid}if("$dirty"in r){r.$pristine=!r.$dirty}else if("$pristine"in r){r.$dirty=!r.$pristine}if("$touched"in r){r.$untouched=!r.$touched}else if("$untouched"in r){r.$touched=!r.$untouched}e.$state=h({},e.$state,r);return s()}return r}var ge=function(t){p(r,t);function r(){var e;var t;f(this,r);for(var n=arguments.length,i=new Array(n),a=0;a with the name '".concat(t,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));s(t,"You should assign a name to , otherwise it will be isolated!");if(r.$$register){r.$$register(t,this.$fieldHandler)}this.$prevValue=this.$state.$value;W(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function e(){if(this.$formContext.$$unregister){this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount)}this.isMounting=false;W(this.props.$ref,null)}},{key:"componentDidUpdate",value:function e(t){var r=this.props.name;if(r!==t.name){if(this.$formContext.$$register){this.$formContext.$$register(r,this.$fieldHandler,t.name)}}W(this.props.$ref,this.$fieldutil);if(this.$state.$value!==this.$prevValue){if(!(r in(this.$formContext.$$registers||{}))){this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue})}this.$prevValue=this.$state.$value}}},{key:"_render",value:function e(){var t=this.$fieldutil=h({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil});return pe(t,this.props)}},{key:"render",value:function t(){var r=this;var n=!this.$formContext;return e.createElement(x.Consumer,null,function(e){r.$formContext=e;if(!r.$fieldHandler){r.$fieldHandler=me(r,r)}r.$registered=(e.$$registers||{})[r.$fieldHandler.$name]||r.$fieldHandler;if(n){r.$fieldHandler.$$reset();r.$fieldHandler.$validate()}return r._render()})}}]);return r}(a);ge.displayName=ve;function ye(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=u(function(n,i){var a=Object.assign({},n);var u=n.component,o=b(n,["component"]);["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(h({},r.$validators,r.$asyncValidators,a.$validators,a.$asyncValidators))).forEach(function(e){if(e in a){if(e==="$validators"||e==="$asyncValidators"||e==="$defaultState"){o[e]=h({},r[e],a[e])}delete a[e]}});return e.createElement(ge,Object.assign({},r,o,{render:function r(n){return e.createElement(t,Object.assign({},a,{$fieldutil:n,ref:i}))}}))});n.displayName="React.Formutil.withField."+(t.displayName||t.name||"Anonymous");return l(n,t)}var be=Y(ye);var Ve=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"render",value:function t(){var r=this;var n=this.props,i=n.$fieldutil,a=n.value,u=n.onChange,o=n.onFocus,s=n.onBlur,l=n.checked,$=n.unchecked,f=b(n,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]);var c=this.props.type;var d={value:"compositionValue"in this?this.compositionValue:a,onCompositionEnd:function e(t){r.composition=false;delete r.compositionValue;d.onChange(t)},onCompositionStart:function e(){return r.composition=true},onChange:function e(t){var n=t.target.value;if(r.composition){r.compositionValue=n;r.forceUpdate()}else{u(n,t)}},onFocus:o,onBlur:s};var v="input";switch(c){case"select":v=c;d.onChange=function(e){var t=e.target;var r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;u(r,e)};delete f.type;break;case"textarea":v=c;delete f.type;break;case"checkbox":case"radio":d={checked:a===l,onChange:function e(t){u(t.target.checked?l:$,t)},onFocus:o,onBlur:s};break;default:break}return e.createElement(v,Object.assign({},f,d))}}]);return r}(a);Ve.displayName="React.Formutil.EasyField.Native";Ve.defaultProps={value:"",type:"text",checked:true,unchecked:false};var we=t({}),Fe=we.Provider,ke=we.Consumer;var Ce=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"getGroupContext",value:function e(){return this.props}},{key:"_render",value:function t(){var r=this.props,a=r.className,u=r.groupNode,o=r.children;var s={GroupOption:Pe,Field:Se};var l=T(o)?o(s):n.map(o,function(e){return i(e,s)});if(u===null){return l}return e.createElement(u,{className:a},l)}},{key:"render",value:function t(){return e.createElement(Fe,{value:this.getGroupContext()},this._render())}}]);return r}(a);Ce.displayName="React.Formutil.EasyField.Group";Ce.defaultProps={type:"checkbox",groupNode:"div"};var Pe=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"componentDidMount",value:function e(){s("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function t(){var r=this.props,n=r.$value,i=r.onChange,a=r.onFocus,u=r.onBlur,o=b(r,["$value","onChange","onFocus","onBlur"]);return e.createElement(ke,null,function(t){var r=t.type,s=t.name;var l=r==="radio"?{checked:t.value===n,onChange:function e(r){t.onChange(n,r);i&&i(r)}}:r==="checkbox"?{checked:t.value.indexOf(n)>-1,onChange:function e(r){t.onChange(r.target.checked?t.value.concat(n):t.value.filter(function(e){return e!==n}),r);i&&i(r)}}:{value:t.value,onChange:function e(r){t.onChange(r);i&&i(r)}};return e.createElement("input",Object.assign({name:s},o,l,{type:r,onFocus:function e(r){t.onFocus(r);a&&a(r)},onBlur:function e(r){t.onBlur(r);u&&u(r)}}))})}}]);return r}(a);Pe.displayName="React.Formutil.EasyField.Group.Option";var Se=function(t){p(r,t);function r(){f(this,r);return w(this,m(r).apply(this,arguments))}d(r,[{key:"componentDidMount",value:function e(){s(false,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function t(){return e.createElement(Pe,this.props)}}]);return r}(a);Se.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Oe=e.Frament||"div";var Ee=function(t){p(r,t);function r(e){var t;f(this,r);t=w(this,m(r).call(this,e));t.id=0;t.latestValue=t.props.value;t.$formutil=void 0;t.FieldValidators={required:function e(t){return t!==null}};t.$onFormChange=function(e){e.$onValidates(function(e){var r=e.$invalid,n=e.$params;if(r){if(t.props.value.length){t.props.onChange(t.latestValue=[])}}else if(!$(t.props.value,n.list)){t.props.onChange(t.latestValue=n.list)}})};t.swap=function(e,r,n){return t.$setState(function(t){var n=t.items;var i=[n[e],n[r]];n[r]=i[0];n[e]=i[1];return n},n)};t.insert=function(){var e,r,n;for(var i=arguments.length,a=new Array(i),u=0;u=t}],["max",function(e,t){return R(e)||e*1<=t}],["min",function(e,t){return R(e)||e*1>=t}],["pattern",function(e,t){return R(e)||t.test(e)}],["enum",function(e,t){return R(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=F(t,2),n=r[0],i=r[1];e[n]=function e(t,r,a){var u=a.validMessage,o=u===void 0?{}:u;return i.apply(void 0,arguments)||o[n]||"Error input: ".concat(n)};return e},{});var De="React.Formutil.EasyField";var Ae={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function e(t){return typeof t==="string"?t.trim():t}};function Ne(e,t,r){var n;var i=t.valuePropName,a=t.changePropName,u=t.focusPropName,o=t.blurPropName,s=t.passUtil;var l=function e(t){return t&&t.target?t.target[i]:t};var $=h({},r,(n={},v(n,i,e.$viewValue),v(n,a,function(){for(var r=arguments.length,n=new Array(r),i=0;i=16.8, Please upgrade your reactjs.")}var t=e.useContext;var r=t(x);return r}function He(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!e.useState){throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.")}var n=e.useState,i=e.useLayoutEffect,a=e.useRef;var u;if(t){if(typeof t==="string"){u=t;r.name=u}else{r=t;u=r.name}}var o=Ie();var l=a({}).current;var $=a([]);var f;l.$formContext=o;l.props=r;l.$setState=p;var c=n(function(){l.$$FIELD_UUID=he();l.$fieldHandler=f=me(l);var e=l.$fieldHandler.$$reset();l.$fieldHandler.$validate();return e}),d=F(c,2),v=d[1];if(!f){f=(o.$$registers||{})[l.$fieldHandler.$name]||l.$fieldHandler}i(function(){var e=l.$state;if(l.isMounting){if(!(u in(o.$$registers||{}))){var t=l.$prevValue;f.$$triggerChange({$newValue:e.$value,$prevValue:t})}}l.$prevValue=e.$value},[l.$state.$value]);i(function(){l.isMounting=true;s(!u||o.$formutil,"You should enusre that the useField() with the name '".concat(u,"' must be used underneath a component or withForm() HOC, otherwise it's isolated."));s(u,"You should pass a name argument to useField(), otherwise it will be isolated!");return function(){l.isMounting=false;W(r.$ref,null)}},[]);i(function(){if(o.$$register){o.$$register(u,l.$fieldHandler)}return function(){if(o.$$unregister){o.$$unregister(u,l.$fieldHandler,!l.isMounting&&r.$reserveOnUnmount)}}},[u]);i(function(){W(r.$ref,l.$fieldutil)});i(function(){if($.current.length>0){var e=k($.current);$.current.length=0;while(e.length){e.pop()(l.$fieldutil)}}});function p(e,t){return new Promise(function(r){var n=function e(){return r(B(t,l.$fieldutil))};if(l.isMounting){if(u in(o.$$registers||{})){o.$$onChange(u,e,n)}else{v(f.$$merge(e));f.$$detectChange(e);$.current.push(n)}}else{f.$$merge(e);n()}})}return l.$fieldutil=h({$name:u},f.$getState(),f,{$$formutil:o.$formutil})}function Me(){var e=Ie(),t=e.$formutil;return t}function Le(e){e=h({},Ae,e,{children:null});var t=_e(e),r=t.fieldProps,n=t.childProps;var i=He(r);return Ne(i,r,n)}export{Re as EasyField,ge as Field,oe as Form,Ue as connect,He as useField,Me as useForm,Le as useHandler,be as withField,le as withForm}; diff --git a/dist/react-formutil.umd.development.js b/dist/react-formutil.umd.development.js index 73d1c19..bf225d4 100644 --- a/dist/react-formutil.umd.development.js +++ b/dist/react-formutil.umd.development.js @@ -700,6 +700,27 @@ return target; } } + function pathExist(scope, path) { + var pathWords = path.split(PATH_REGEXP).map(function (s) { + return s.trim(); + }).filter(function (item) { + return item !== ''; + }); + + for (var index = 0, len = pathWords.length; index < len; index++) { + var word = executeWord(pathWords[index]); + + if (word in scope) { + if (index + 1 === len) { + return { + data: scope[word] + }; + } + + scope = scope[word]; + } + } + } function createRef(ref, value) { if (ref) { if (isFunction(ref)) { @@ -1050,10 +1071,10 @@ var $parsedTree = _this.$$deepParseObject($stateTree); objectEach(_this.$$registers, function (handler, name) { - var data = name in $stateTree ? $stateTree[name] : parsePath($parsedTree, name); + var pathData; - if (!isUndefined(data) || force) { - var $newState = processer(data, handler); + if (force || (pathData = pathExist($parsedTree, name))) { + var $newState = processer(pathData && pathData.data, handler); if ($newState) { var $prevValue = _this.$formutil.$weakParams[name]; diff --git a/dist/react-formutil.umd.development.js.map b/dist/react-formutil.umd.development.js.map index 1e6b22c..ad60e91 100644 --- a/dist/react-formutil.umd.development.js.map +++ b/dist/react-formutil.umd.development.js.map @@ -1 +1 @@ -{"version":3,"file":"react-formutil.umd.development.js","sources":["../src/context.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/warning/warning.js","../src/utils.js","../src/Form.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../node_modules/react-fast-compare/index.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","/** @license React v16.8.6\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\nObject.defineProperty(exports, '__esModule', { value: true });\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;\n\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;\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_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // 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 || 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);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\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 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_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\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;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, '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 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.typeOf = typeOf;\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.isValidElementType = isValidElementType;\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;\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","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\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 warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n const data = name in $stateTree ? $stateTree[name] : utils.parsePath($parsedTree, name);\n\n if (!utils.isUndefined(data) || force) {\n const $newState = processer(data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","require$$0","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","data","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","React","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","ReactIs","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"react-formutil.umd.development.js","sources":["../src/context.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/warning/warning.js","../src/utils.js","../src/Form.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../src/withForm.js","../src/fieldHelper.js","../src/Field.js","../src/withField.js","../src/EasyField/Native.js","../src/EasyField/Group.js","../node_modules/react-fast-compare/index.js","../src/EasyField/List.js","../src/EasyField/easyFieldHandler.js","../src/EasyField/index.js","../src/connect.js","../src/hooks/useFormContext.js","../src/hooks/useField.js","../src/hooks/useForm.js","../src/hooks/useHandler.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext({});\n","/** @license React v16.8.6\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\nObject.defineProperty(exports, '__esModule', { value: true });\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;\n\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;\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_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // 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 || 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);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\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 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_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\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;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, '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 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.typeOf = typeOf;\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.isValidElementType = isValidElementType;\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;\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","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\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 warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import { isValidElementType } from 'react-is';\nimport warning from 'warning';\n\nconst OBJECT_PROTO = Object.getPrototypeOf({});\nconst PATH_REGEXP = /\\s*(?:\\]\\s*\\.|\\]\\s*\\[|\\.|\\[|\\])\\s*/g;\nconst Root = isUndefined(window) ? global : window;\n\nexport function isUndefined(arg) {\n return typeof arg === 'undefined';\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isEmpty(arg) {\n return isUndefined(arg) || arg === null || arg + '' === '';\n}\n\nexport function isPromise(promise) {\n return !!promise && isFunction(promise.then);\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isPlainObj(obj) {\n if (!isObject(obj)) return false;\n if (null === Object.getPrototypeOf(obj)) return true;\n if (!isFunction(obj.constructor)) return false;\n\n return obj.constructor.prototype === OBJECT_PROTO;\n}\n\nexport function isComponent(obj) {\n return isValidElementType(obj) && typeof obj !== 'string';\n}\n\nexport function checkComponentPropType(props, propName, componentName) {\n if (props[propName] && !isComponent(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to '${componentName}': the prop is not a valid React component`\n );\n }\n}\n\n// quick clone deeply\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n const newObj = [];\n\n for (let i = 0, j = obj.length; i < j; i++) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n } else if (isPlainObj(obj)) {\n const newObj = {};\n\n for (let i in obj) {\n newObj[i] = deepClone(obj[i]);\n }\n\n return newObj;\n }\n\n return obj;\n}\n\nexport const runCallback = function(callback, ...args) {\n if (isFunction(callback)) {\n callback(...args);\n }\n\n return args[0];\n};\n\nexport function createHOC(withHOC) {\n return function(...args) {\n if (isComponent(args[0])) {\n return withHOC(...args);\n }\n\n return function(WrappedComponent) {\n return withHOC(WrappedComponent, args[0]);\n };\n };\n}\n\nconst VALID_PROPS = ['minlength', 'maxlength', 'max', 'min', 'required', 'pattern', 'step'];\nexport function isValidProp(prop) {\n return VALID_PROPS.indexOf(prop.toLowerCase()) > -1;\n}\n\n/* eslint-disable */\nconst executeWord = function(word) {\n try {\n const exec = new Function(\n 'origin',\n 'global',\n `return typeof ${word} === 'number' || (typeof ${word} !== 'undefined' && !(origin in global)) ? ${word} : origin`\n );\n return exec(word, Root);\n } catch (err) {\n return word;\n }\n};\n\n/**\n * @desc 解析表达式中赋值深路径对象\n *\n * @param {object} target 要赋值的对象\n * @param {string} path 赋值路径,eg:list[0].title\n * @param {any} [value] 要赋过去的值,如过不传,则返回解析路径后的值\n *\n * 使用示例:parsePath({}, 'list[0].authors[1].name', 'Lucy');\n */\nexport function parsePath(...args) {\n const [target, path, value] = args;\n\n warning(typeof path === 'string', `The second parameter(${JSON.stringify(path)}) of parsePath() must be a string.`);\n\n const pathSymbols = (path.match(PATH_REGEXP) || []).map(s => s.replace(/\\s/g, ''));\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n let scope = target;\n\n try {\n if (args.length < 3) {\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (index + 1 === len) {\n return scope[word];\n }\n\n if (isUndefined(scope[word])) {\n break;\n }\n\n scope = scope[word];\n }\n } else {\n for (let index = 0, length = pathWords.length; index < length; index++) {\n const word = executeWord(pathWords[index]);\n const nextWord = pathWords[index + 1];\n const symbol = pathSymbols[index];\n\n if (isUndefined(nextWord)) {\n scope[word] = value;\n break;\n }\n\n switch (symbol) {\n case '].':\n case '.':\n scope = isUndefined(scope[word]) ? (scope[word] = {}) : scope[word];\n break;\n\n case '][':\n case '[':\n const nextVarWord = executeWord(nextWord);\n\n scope = isUndefined(scope[word])\n ? (scope[word] = typeof nextVarWord === 'number' && nextVarWord >= 0 ? [] : {})\n : scope[word];\n break;\n\n default:\n scope[word] = value;\n break;\n }\n }\n }\n } catch (error) {\n warning(false, `The name '%s' of Field seems is not a legal expression.`, path);\n }\n\n if (args.length > 2) {\n return target;\n }\n}\n\nexport function pathExist(scope, path) {\n const pathWords = path\n .split(PATH_REGEXP)\n .map(s => s.trim())\n .filter(item => item !== '');\n\n for (let index = 0, len = pathWords.length; index < len; index++) {\n const word = executeWord(pathWords[index]);\n\n if (word in scope) {\n if (index + 1 === len) {\n return {\n data: scope[word]\n };\n }\n\n scope = scope[word];\n }\n }\n}\n\nexport function createRef(ref, value) {\n if (ref) {\n if (isFunction(ref)) {\n ref(value);\n } else if ('current' in ref) {\n ref.current = value;\n }\n }\n}\n\nexport const arrayFind = (array, process) => {\n for (let i = 0, j = array.length; i < j; i++) {\n if (process(array[i]) === true) {\n return array[i];\n }\n }\n};\n\nexport const objectMap = (obj, handler) =>\n Object.keys(obj).reduce((newObj, key) => {\n newObj[key] = handler(obj[key], key, obj);\n return newObj;\n }, {});\n\nexport const objectEach = (obj, handler) => Object.keys(obj).forEach(key => handler(obj[key], key, obj));\n\nexport const toObject = (arr, handler, obj = {}) =>\n arr.reduce((...args) => {\n handler(...args);\n\n return args[0];\n }, obj);\n\nconst TODO_DELETE = undefined;\nexport function CLEAR(obj, pkey, pobj) {\n objectEach(obj, (value, key) => {\n if (value === TODO_DELETE) {\n delete obj[key];\n } else if (isPlainObj(value) || Array.isArray(value)) {\n CLEAR(value, key, obj);\n }\n });\n\n if (pobj && Object.keys(obj).every(key => obj[key] === TODO_DELETE)) {\n pobj[pkey] = TODO_DELETE;\n CLEAR(pobj);\n }\n}\nexport const objectClear = (obj, name) => {\n if (!isUndefined(parsePath(obj, name))) {\n parsePath(obj, name, TODO_DELETE);\n\n CLEAR(obj);\n }\n};\n","import React, { Component, Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport FormContext from './context';\nimport * as utils from './utils';\nimport warning from 'warning';\n\nexport const FORM_VALIDATE_RESULT = 'FORM_VALIDATE_RESULT';\n\nlet requestFrame, cancelFrame;\n\nif (typeof requestAnimationFrame === 'function') {\n requestFrame = requestAnimationFrame;\n cancelFrame = cancelAnimationFrame;\n} else {\n requestFrame = setTimeout;\n cancelFrame = clearTimeout;\n}\n\nclass Form extends Component {\n static displayName = 'React.Formutil.Form';\n\n static propTypes = {\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n },\n $defaultValues: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $defaultStates: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFormChange: PropTypes.func,\n $validator: PropTypes.func,\n $processer: PropTypes.func,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ])\n };\n\n static defaultProps = {\n $defaultValues: {},\n $defaultStates: {}\n };\n\n $$formPending;\n $$formValidatePromise;\n\n $$registers = {};\n $$deepRegisters = {};\n\n constructor(props) {\n super(props);\n\n this.$$defaultInitialize();\n }\n\n getFormContext() {\n return {\n $$registers: this.$$registers,\n $$register: this.$$register,\n $$unregister: this.$$unregister,\n $$onChange: this.$$onChange,\n $$getDefault: this.$$getDefault,\n $formutil: this.$formutil\n };\n }\n\n $$regDuplications = {};\n $$duplicateTimer;\n $$checkDuplication = () => {\n const { $$regDuplications } = this;\n let hasDup;\n\n utils.objectEach($$regDuplications, ([$curRegistered, $handler], name) => {\n warning($curRegistered.$$reserved, `The Field with a name '${name}' has been registered!`);\n\n $handler.$$reset($curRegistered.$getState());\n\n hasDup = delete $$regDuplications[name];\n });\n\n if (hasDup) {\n this.$render();\n }\n };\n\n /*\n * @desc 注册或者替换(preName)Field\n */\n $$register = (name, $handler, prevName) => {\n this.$$unregister(prevName, $handler);\n\n if (name) {\n const $curRegistered = this.$$getRegister(name);\n\n if ($curRegistered) {\n cancelFrame(this.$$duplicateTimer);\n\n this.$$regDuplications[name] = [$curRegistered, $handler];\n this.$$duplicateTimer = requestFrame(this.$$checkDuplication);\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n\n this.$$registers[($handler.$name = name)] = $handler;\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$unregister = (name, $handler, $$reserved) => {\n if (name) {\n if (name in this.$$regDuplications) {\n const [$curRegistered, $handler] = this.$$regDuplications[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $newValue: $handler.$getState().$value,\n $prevValue: $curRegistered.$getState().$value\n });\n\n delete this.$$regDuplications[name];\n } else if (this.$$registers[name] === $handler) {\n if ($$reserved) {\n $handler.$$reserved = true;\n } else {\n delete this.$$registers[name];\n\n this.$$fieldChangedQueue.push({\n name,\n $prevValue: $handler.$getState().$value\n });\n\n utils.objectClear(this.$$defaultValues, name);\n }\n }\n\n this.createDeepRegisters();\n this.$render();\n }\n };\n\n $$defaultInitialize = () => {\n const { $defaultValues, $defaultStates } = this.props;\n\n this.$$defaultValues = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultValues) ? $defaultValues(this.props) || {} : $defaultValues)\n );\n this.$$defaultStates = this.$$deepParseObject(\n utils.deepClone(utils.isFunction($defaultStates) ? $defaultStates(this.props) || {} : $defaultStates)\n );\n };\n\n $$getDefault = () => ({\n $$defaultStates: this.$$defaultStates,\n $$defaultValues: this.$$defaultValues\n });\n\n $$deepParseObject(mayWeakObj, deepObj = {}) {\n utils.objectEach(mayWeakObj, (data, name) => utils.parsePath(deepObj, name, data));\n\n return deepObj;\n }\n\n $$triggerChangeTimer;\n $$fieldChangedQueue = [];\n $$triggerFormChange = () => {\n if (this.$$fieldChangedQueue.length) {\n const $$fieldChangedQueue = [...this.$$fieldChangedQueue];\n\n this.$$fieldChangedQueue.length = 0;\n\n const $newValues = {};\n const $prevValues = {};\n const $$registers = this.$$registers;\n let hasFormChanged = false;\n\n $$fieldChangedQueue.forEach(item => {\n if (!(item.name in $$registers)) {\n delete item.$newValue;\n }\n\n if (item.$newValue !== item.$prevValue) {\n if ('$newValue' in item && '$prevValue' in item) {\n const $handler = this.$$getRegister(item.name);\n\n if ($handler) {\n $handler.$$triggerChange(item);\n }\n }\n\n '$newValue' in item && utils.parsePath($newValues, item.name, item.$newValue);\n '$prevValue' in item && utils.parsePath($prevValues, item.name, item.$prevValue);\n\n hasFormChanged = true;\n }\n });\n\n if (hasFormChanged) {\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n\n if (utils.isFunction(this.props.$onFormChange)) {\n this.props.$onFormChange(this.$formutil, $newValues, $prevValues);\n }\n }\n }\n };\n\n createDeepRegisters = () => (this.$$deepRegisters = this.$$deepParseObject(this.$$registers));\n\n $$getRegister = name => {\n if (name) {\n const field = this.$$registers[name] || utils.parsePath(this.$$deepRegisters, name);\n\n if (field) {\n return field;\n }\n }\n };\n\n $$formValidate = callback =>\n (this.$$formValidatePromise = new Promise(resolve => {\n const { $validator } = this.props;\n\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n const result = $validator(this.$formutil.$params, this.formtutil);\n const execCallback = $formutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $formutil)));\n\n if (utils.isPromise(result)) {\n if (!this.$$formPending) {\n this.$$formPending = true;\n\n this.$render();\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n validation = result\n .then(() => void 0, reason => reason)\n .then(reason => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n this.$shouldCancelPrevAsyncValidate = null;\n\n this.$$formPending = false;\n\n return this.$$setFormErrors(reason, execCallback);\n });\n } else {\n if (this.$$formPending) {\n this.$$formPending = false;\n }\n\n validation = this.$$setFormErrors(result, execCallback);\n }\n\n if (this.$shouldCancelPrevAsyncValidate) {\n this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n\n $$setFormErrors = (validResults, callback) => {\n if (validResults && (validResults instanceof Error || typeof validResults !== 'object')) {\n warning(\n false,\n `The result of $validator in should always return None(null,undefined) or an object contains error message of Field.`\n );\n\n return this.$render(callback);\n }\n\n return this.$$setStates(\n validResults || {},\n (result, handler) => {\n const { $error = {} } = handler.$getState();\n\n if (result) {\n return {\n $error: {\n ...$error,\n [FORM_VALIDATE_RESULT]: result\n }\n };\n }\n\n if ($error[FORM_VALIDATE_RESULT]) {\n delete $error[FORM_VALIDATE_RESULT];\n\n return {\n $error\n };\n }\n\n return;\n },\n callback,\n true\n );\n };\n\n $getField = name => {\n const field = this.$$getRegister(name);\n\n warning(!name || field, `$getField('${name}') fail to find the matched Field. Maybe it has been unmounted.`);\n warning(name, `You should pass a name of the mounted Field to $getField().`);\n\n if (field) {\n return field.$new();\n }\n };\n\n $$onChange = (name, $state, callback) =>\n this.$setStates(\n {\n [name]: $state\n },\n callback\n );\n\n $$setStates = ($stateTree = {}, processer, callback, force) => {\n const $parsedTree = this.$$deepParseObject($stateTree);\n\n utils.objectEach(this.$$registers, (handler, name) => {\n let pathData;\n\n if (force || (pathData = utils.pathExist($parsedTree, name))) {\n const $newState = processer(pathData && pathData.data, handler);\n\n if ($newState) {\n const $prevValue = this.$formutil.$weakParams[name];\n const { $value: $newValue } = handler.$$merge($newState);\n\n handler.$$detectChange($newState);\n\n if ('$value' in $newState || '$viewValue' in $newState) {\n const findItem = utils.arrayFind(this.$$fieldChangedQueue, item => item.name === name);\n\n if (findItem) {\n if (!('$prevValue' in findItem)) {\n findItem.$prevValue = findItem.$newValue;\n }\n\n findItem.$newValue = $newValue;\n } else {\n this.$$fieldChangedQueue.push({\n name,\n $newValue,\n $prevValue\n });\n }\n }\n }\n }\n });\n\n return this.$render(callback);\n };\n\n componentDidMount() {\n utils.createRef(this.props.$ref, this.$formutil);\n }\n\n componentDidUpdate(prevProps) {\n utils.createRef(this.props.$ref, this.$formutil);\n\n cancelFrame(this.$$triggerChangeTimer);\n\n // ensure this calls to access the newest $formutil\n this.$$triggerChangeTimer = requestFrame(() => {\n this.$$triggerFormChange();\n });\n }\n\n componentWillUnmount() {\n utils.createRef(this.props.$ref, null);\n }\n\n $render = callback =>\n new Promise(resolve => this.forceUpdate(() => resolve(utils.runCallback(callback, this.$formutil))));\n\n $validates = (...args) => {\n let callback;\n\n if (utils.isFunction(args[args.length - 1])) {\n callback = args.pop();\n }\n\n if (args.length) {\n const flatter = names => {\n names.forEach(name => {\n if (Array.isArray(name)) {\n flatter(name);\n } else {\n const handler = this.$getField(name);\n\n if (handler) {\n handler.$validate();\n }\n }\n });\n };\n\n flatter(args);\n } else {\n utils.objectEach(this.$$registers, handler => handler.$validate());\n\n if (utils.isFunction(this.props.$validator)) {\n this.$$formValidate();\n }\n }\n\n return this.$onValidates(callback);\n };\n\n $onValidates = callback => {\n const filedValidatePromises = Object.keys(this.$$registers).map(name => this.$$registers[name].$onValidate());\n\n filedValidatePromises.push(this.$$formValidatePromise);\n\n return Promise.all(filedValidatePromises).then(() => utils.runCallback(callback, this.$formutil));\n };\n\n $validate = (name, callback) => {\n const handler = this.$getField(name);\n\n if (handler) {\n return handler.$validate(callback);\n }\n\n return utils.runCallback(callback);\n };\n\n $reset = ($stateTree, callback) => {\n this.$$defaultInitialize();\n\n if (utils.isFunction($stateTree)) {\n callback = $stateTree;\n $stateTree = {};\n }\n\n return this.$$setStates($stateTree, ($state, handler) => handler.$$reset($state), callback, true);\n };\n\n $setStates = ($stateTree, callback) => this.$$setStates($stateTree, $state => $state, callback);\n\n $setValues = ($valueTree, callback) => {\n this.$$deepParseObject(utils.deepClone($valueTree), this.$$defaultValues);\n\n utils.CLEAR(this.$$defaultValues);\n\n return this.$$setStates($valueTree, $value => ({ $value }), callback);\n };\n\n $setFocuses = ($focusedTree, callback) => this.$$setStates($focusedTree, $focused => ({ $focused }), callback);\n $setDirts = ($dirtyTree, callback) => this.$$setStates($dirtyTree, $dirty => ({ $dirty }), callback);\n $setTouches = ($touchedTree, callback) => this.$$setStates($touchedTree, $touched => ({ $touched }), callback);\n $setPendings = ($pendingTree, callback) => this.$$setStates($pendingTree, $pending => ({ $pending }), callback);\n $setErrors = ($errorTree, callback) => this.$$setStates($errorTree, $error => ({ $error }), callback);\n\n $batchState = ($state, callback) => this.$setStates(utils.objectMap(this.$$registers, () => $state), callback);\n $batchDirty = ($dirty, callback) =>\n this.$batchState(\n {\n $dirty\n },\n callback\n );\n\n $batchTouched = ($touched, callback) =>\n this.$batchState(\n {\n $touched\n },\n callback\n );\n\n $batchFocused = ($focused, callback) =>\n this.$batchState(\n {\n $focused\n },\n callback\n );\n\n $batchPending = ($pending, callback) =>\n this.$batchState(\n {\n $pending\n },\n callback\n );\n\n $batchError = ($error, callback) =>\n this.$batchState(\n {\n $error\n },\n callback\n );\n\n _render() {\n const $formutil = this.$formutil;\n let { children, render, component } = this.props;\n\n if (component) {\n return createElement(component, { $formutil });\n }\n\n if (utils.isFunction(render)) {\n return render($formutil);\n }\n\n if (utils.isFunction(children)) {\n return children($formutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $formutil\n })\n : child\n );\n }\n\n render() {\n const { $processer } = this.props;\n const $stateArray = Object.keys(this.$$registers).map(path => ({\n path,\n $state: this.$$registers[path].$getState()\n }));\n\n const $weakParams = utils.toObject($stateArray, ($params, { path, $state }) => {\n if ($processer) {\n $processer($state, path);\n }\n\n if ('$value' in $state && ($state.$dirty || !utils.isUndefined($state.$value))) {\n $params[path] = $state.$value;\n }\n });\n\n const $pureParams = utils.toObject(\n $stateArray,\n ($params, { path, $state }) => path in $weakParams && utils.parsePath($params, path, $weakParams[path])\n );\n\n const $invalid = $stateArray.some(({ $state }) => $state.$invalid);\n const $dirty = $stateArray.some(({ $state }) => $state.$dirty);\n const $touched = $stateArray.some(({ $state }) => $state.$touched);\n const $focused = $stateArray.some(({ $state }) => $state.$focused);\n const $pending = this.$$formPending || $stateArray.some(({ $state }) => $state.$pending);\n\n const $formutil = (this.$formutil = {\n $$registers: { ...this.$$registers },\n $$deepRegisters: this.$$deepRegisters,\n $states: utils.toObject($stateArray, ($states, { path, $state }) => utils.parsePath($states, path, $state)),\n $params: {\n ...this.$$defaultValues,\n ...$pureParams\n },\n $errors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n utils.parsePath($errors, path, $state.$error);\n }\n }),\n $dirts: utils.toObject($stateArray, ($dirts, { path, $state }) =>\n utils.parsePath($dirts, path, $state.$dirty)\n ),\n $touches: utils.toObject($stateArray, ($touches, { path, $state }) =>\n utils.parsePath($touches, path, $state.$touched)\n ),\n $focuses: utils.toObject($stateArray, ($focuses, { path, $state }) =>\n utils.parsePath($focuses, path, $state.$focused)\n ),\n $pendings: utils.toObject($stateArray, ($pendings, { path, $state }) =>\n utils.parsePath($pendings, path, $state.$pending)\n ),\n\n $weakStates: utils.toObject($stateArray, ($states, { path, $state }) => ($states[path] = $state)),\n $weakParams,\n $weakErrors: utils.toObject($stateArray, ($errors, { path, $state }) => {\n if ($state.$invalid) {\n $errors[path] = $state.$error;\n }\n }),\n $weakDirts: utils.toObject($stateArray, ($dirts, { path, $state }) => ($dirts[path] = $state.$dirty)),\n $weakTouches: utils.toObject(\n $stateArray,\n ($touches, { path, $state }) => ($touches[path] = $state.$touched)\n ),\n $weakFocuses: utils.toObject(\n $stateArray,\n ($focuses, { path, $state }) => ($focuses[path] = $state.$focused)\n ),\n $weakPendings: utils.toObject(\n $stateArray,\n ($weakPendings, { path, $state }) => ($weakPendings[path] = $state.$pending)\n ),\n\n $getFirstError(name) {\n if (name) {\n const $fieldutil = $formutil.$getField(name);\n\n return $fieldutil && $fieldutil.$getFirstError();\n }\n\n for (let name in $formutil.$weakErrors) {\n const $fieldError = $formutil.$weakErrors[name];\n\n for (let key in $fieldError) {\n return $fieldError[key] instanceof Error ? $fieldError[key].message : $fieldError[key];\n }\n }\n },\n\n $render: this.$render,\n\n $getField: this.$getField,\n $onValidates: this.$onValidates,\n\n // get the newest $formutil\n $new: () => this.$formutil,\n\n $setStates: this.$setStates,\n $setValues: this.$setValues,\n $setErrors: this.$setErrors,\n $setTouches: this.$setTouches,\n $setDirts: this.$setDirts,\n $setFocuses: this.$setFocuses,\n\n $batchState: this.$batchState,\n $batchTouched: this.$batchTouched,\n $batchDirty: this.$batchDirty,\n $batchFocused: this.$batchFocused,\n\n $reset: this.$reset,\n $validates: this.$validates,\n $validate: this.$validate,\n\n $valid: !$invalid,\n $invalid,\n $dirty,\n $pristine: !$dirty,\n $touched,\n $untouched: !$touched,\n $focused,\n $pending\n });\n\n return {this._render()};\n }\n}\n\nexport default Form;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React, { forwardRef } from 'react';\nimport Form from './Form';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withForm(WrappedComponent, config = {}) {\n const FormEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...formProps } = props;\n\n ['$defaultStates', '$defaultValues', '$onFormChange', '$validator', '$processer', '$ref'].forEach(prop => {\n if (prop in others) {\n if (prop === '$defaultStates' || prop === '$defaultValues') {\n formProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FormEnhanced.displayName =\n 'React.Formutil.withForm.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FormEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withForm);\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport * as utils from './utils';\nimport warning from 'warning';\nimport { FORM_VALIDATE_RESULT } from './Form';\n\nlet FIELD_UUID = 0;\nconst $baseState = {\n $valid: true,\n $invalid: false,\n\n $dirty: false,\n $pristine: true,\n\n $touched: false,\n $untouched: true,\n\n $focused: false,\n\n $pending: false,\n\n $error: {}\n};\n\nfunction isError(result) {\n return /*!utils.isUndefined(result) && */ result !== true;\n}\n\nfunction warningValidatorReturn(result, key, name) {\n warning(\n !utils.isUndefined(result),\n `You should return a string or Error when the validation('${name &&\n name + ': '}${key}') failed, otherwise return true.`\n );\n}\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n name: PropTypes.string,\n\n $defaultValue: PropTypes.any,\n $defaultState: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n $onFieldChange: PropTypes.func,\n $validators: PropTypes.object,\n $asyncValidators: PropTypes.object,\n $validateLazy: PropTypes.bool,\n $reserveOnUnmount: PropTypes.bool,\n $ref: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any\n })\n ]),\n $parser: PropTypes.func,\n $formatter: PropTypes.func,\n\n render: PropTypes.func,\n component: utils.checkComponentPropType,\n children(props, ...args) {\n let pt = PropTypes.oneOfType([PropTypes.func, PropTypes.node]);\n\n if (!props.render && !props.component && props.children !== null) {\n pt = pt.isRequired;\n }\n\n return pt(props, ...args);\n }\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.Field';\n\nexport function GET_FIELD_UUID() {\n return FIELD_UUID++;\n}\n\nexport function renderField($fieldutil, props) {\n let { children, render, component } = props;\n\n if (component) {\n return createElement(component, { $fieldutil });\n }\n\n if (utils.isFunction(render)) {\n return render($fieldutil);\n }\n\n if (utils.isFunction(children)) {\n return children($fieldutil);\n }\n\n return Children.map(children, child =>\n child && utils.isComponent(child.type)\n ? cloneElement(child, {\n $fieldutil\n })\n : child\n );\n}\n\nexport function createHandler($this, owner) {\n const $fieldHandler = {\n $$FIELD_UUID: $this.$$FIELD_UUID,\n\n $$reset,\n $$merge,\n $$detectChange,\n $$triggerChange,\n $onValidate,\n\n $new() {\n return $this.$fieldutil;\n },\n $picker: $getState,\n $getState,\n // not support in Hooks\n $getComponent() {\n return owner;\n },\n\n $reset($state, callback) {\n return $this.$setState($$reset($state), callback);\n },\n $getFirstError,\n $validate,\n $setState: $this.$setState,\n $render,\n $setValue,\n $setTouched,\n $setDirty,\n $setFocused,\n $setValidity,\n $setError,\n $setPending\n };\n\n let $$validatePromise;\n\n function $$detectChange($newState) {\n if ('$value' in $newState || '$viewValue' in $newState) {\n $validate();\n }\n }\n\n function $$triggerChange({ $newValue, $prevValue }) {\n const { $onFieldChange } = $this.props;\n\n if (utils.isFunction($onFieldChange)) {\n $onFieldChange($newValue, $prevValue, $this.$formContext.$formutil);\n }\n }\n\n function $onValidate(callback) {\n $$validatePromise.then(callback);\n\n return $$validatePromise;\n }\n\n function $$reset($newState) {\n let $initialState;\n\n const { props, $formContext } = $this;\n\n if ($formContext.$$getDefault) {\n const $name = props.name;\n const { $$defaultStates, $$defaultValues } = $formContext.$$getDefault();\n\n if ($name && $$defaultValues) {\n const $initialValue = utils.parsePath($$defaultValues, $name);\n\n $initialState = utils.parsePath($$defaultStates, $name) || {};\n\n if (!utils.isUndefined($initialValue)) {\n $initialState.$value = $initialValue;\n }\n }\n }\n\n const { $defaultValue, $defaultState } = props;\n\n return $$merge({\n ...$baseState, // the base state\n ...(utils.isFunction($defaultState) ? $defaultState(props) : $defaultState), // self default state\n $value: utils.isFunction($defaultValue)\n ? $defaultValue(props)\n : '$defaultValue' in props\n ? $defaultValue\n : '',\n ...$initialState, // the default state from Form\n ...$newState\n });\n }\n\n function $getState() {\n return { ...$this.$state };\n }\n\n function $validate(callback) {\n return ($$validatePromise = new Promise(resolve => {\n const { props, $formContext } = $this;\n const $validators = { ...props.$validators, ...props.$asyncValidators };\n const {\n $value,\n $pending,\n $error: { ...$newError }\n } = $this.$state;\n const { $formutil } = $formContext;\n const $validError = {};\n let $skipRestValidate = false;\n let $breakAsyncHandler;\n let $shouldCancelPrevAsyncValidate;\n let prevCallback;\n let validation;\n\n delete $newError[FORM_VALIDATE_RESULT];\n\n const $validatePromises = Object.keys($validators).reduce((promises, key) => {\n delete $newError[key];\n\n if (!$skipRestValidate && props[key] != null) {\n const result = $validators[key]($value, props[key], {\n ...props,\n $formutil,\n $fieldutil: $this.$fieldutil,\n $validError\n });\n\n if (utils.isPromise(result)) {\n promises.push(\n // @ts-ignore\n result.catch(reason => {\n if (!$breakAsyncHandler) {\n $setValidity(key, reason || key);\n }\n })\n );\n } else if (isError(result)) {\n $validError[key] = result || key;\n\n warningValidatorReturn(result, key, props.name);\n\n if (props.$validateLazy) {\n $skipRestValidate = true;\n }\n }\n }\n\n return promises;\n }, []);\n const execCallback = $fieldutil =>\n resolve(utils.runCallback(callback, utils.runCallback(prevCallback, $fieldutil)));\n\n if ($validatePromises.length) {\n if (!$pending) {\n $setPending(true);\n }\n\n $shouldCancelPrevAsyncValidate = setCallback => ($breakAsyncHandler = setCallback(execCallback));\n\n $validatePromises.push(\n $setError({\n ...$newError,\n ...$validError\n })\n );\n\n validation = Promise.all($validatePromises).then(() => {\n if ($breakAsyncHandler) {\n return $breakAsyncHandler;\n }\n\n $this.$shouldCancelPrevAsyncValidate = null;\n\n return $setPending(false, execCallback);\n });\n } else {\n if ($pending) {\n $setPending(false);\n }\n\n validation = $setError(\n {\n ...$newError,\n ...$validError\n },\n execCallback\n );\n }\n\n if ($this.$shouldCancelPrevAsyncValidate) {\n $this.$shouldCancelPrevAsyncValidate(callback => {\n prevCallback = callback;\n\n return validation;\n });\n }\n\n $this.$shouldCancelPrevAsyncValidate = $shouldCancelPrevAsyncValidate;\n }));\n }\n\n function $render($viewValue, callback) {\n return $this.$setState(\n {\n $viewValue,\n $dirty: true\n },\n callback\n );\n }\n\n function $setValue($value, callback) {\n return $this.$setState(\n {\n $value\n },\n callback\n );\n }\n\n function $setTouched($touched, callback) {\n return $this.$setState(\n {\n $touched\n },\n callback\n );\n }\n\n function $setDirty($dirty, callback) {\n return $this.$setState(\n {\n $dirty\n },\n callback\n );\n }\n\n function $setFocused($focused, callback) {\n return $this.$setState(\n {\n $focused\n },\n callback\n );\n }\n\n function $setError($error, callback) {\n return $this.$setState(\n {\n $error\n },\n callback\n );\n }\n\n function $setValidity(key, result = true, callback) {\n const {\n $error: { ...$newError }\n } = $this.$state;\n\n if (isError(result)) {\n $newError[key] = result || key;\n\n warningValidatorReturn(result, key, $this.props.name);\n } else {\n delete $newError[key];\n }\n\n return $setError($newError, callback);\n }\n\n function $setPending($pending, callback) {\n return $this.$setState(\n {\n $pending\n },\n callback\n );\n }\n\n function $getFirstError() {\n const { $error = {} } = $this.$state;\n\n for (let name in $error) {\n return $error[name] instanceof Error ? $error[name].message : $error[name];\n }\n }\n\n function $$merge({ ...$newState }) {\n if ('$error' in $newState) {\n if (!$newState.$error) {\n $newState.$error = {};\n }\n\n $newState.$valid = Object.keys($newState.$error).length === 0;\n }\n\n // process $value\n const { $parser, $formatter } = $this.props;\n\n if ('$viewValue' in $newState && !('$value' in $newState)) {\n const $setViewValue = $value => ($newState.$viewValue = $value);\n\n $newState.$value = $parser ? $parser($newState.$viewValue, $setViewValue) : $newState.$viewValue;\n } else if ('$value' in $newState && !('$viewValue' in $newState)) {\n const $setModelValue = $value => ($newState.$value = $value);\n\n $newState.$viewValue = $formatter ? $formatter($newState.$value, $setModelValue) : $newState.$value;\n }\n\n // process $valid/$invalid\n if ('$valid' in $newState) {\n $newState.$invalid = !$newState.$valid;\n } else if ('$invalid' in $newState) {\n $newState.$dirty = !$newState.$invalid;\n }\n\n // process $dirty/$pristine\n if ('$dirty' in $newState) {\n $newState.$pristine = !$newState.$dirty;\n } else if ('$pristine' in $newState) {\n $newState.$dirty = !$newState.$pristine;\n }\n\n // process $touched/$untouched\n if ('$touched' in $newState) {\n $newState.$untouched = !$newState.$touched;\n } else if ('$untouched' in $newState) {\n $newState.$touched = !$newState.$untouched;\n }\n\n $this.$state = { ...$this.$state, ...$newState };\n\n return $getState();\n }\n\n return $fieldHandler;\n}\n","import React, { Component } from 'react';\nimport { createHandler, GET_FIELD_UUID, propTypes, displayName, renderField } from './fieldHelper';\nimport FormContext from './context';\nimport warning from 'warning';\nimport { runCallback, createRef } from './utils';\n\nclass Field extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n\n $$FIELD_UUID = GET_FIELD_UUID();\n\n /** @type { any } */\n $formContext;\n /** @type { any } */\n $state;\n\n componentDidMount() {\n this.isMounting = true;\n\n const {\n props: { name: $name },\n $formContext\n } = this;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should assign a name to , otherwise it will be isolated!`);\n\n if ($formContext.$$register) {\n $formContext.$$register($name, this.$fieldHandler);\n }\n\n this.$prevValue = this.$state.$value;\n\n createRef(this.props.$ref, this.$fieldutil);\n }\n\n componentWillUnmount() {\n if (this.$formContext.$$unregister) {\n this.$formContext.$$unregister(this.props.name, this.$fieldHandler, this.props.$reserveOnUnmount);\n }\n\n this.isMounting = false;\n\n createRef(this.props.$ref, null);\n }\n\n componentDidUpdate(prevProps) {\n const $name = this.props.name;\n\n if ($name !== prevProps.name) {\n if (this.$formContext.$$register) {\n this.$formContext.$$register($name, this.$fieldHandler, prevProps.name);\n }\n }\n\n createRef(this.props.$ref, this.$fieldutil);\n\n if (this.$state.$value !== this.$prevValue) {\n if (!($name in (this.$formContext.$$registers || {}))) {\n this.$registered.$$triggerChange({\n $newValue: this.$state.$value,\n $prevValue: this.$prevValue\n });\n }\n\n this.$prevValue = this.$state.$value;\n }\n }\n\n $setState = ($newState, callback) =>\n new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, this.$fieldutil));\n\n if (this.isMounting) {\n const $name = this.props.name;\n\n if ($name in (this.$formContext.$$registers || {})) {\n this.$formContext.$$onChange($name, $newState, execute);\n } else {\n this.$registered.$$merge($newState);\n\n this.$registered.$$detectChange($newState);\n\n this.forceUpdate(execute);\n }\n } else {\n this.$registered.$$merge($newState);\n execute();\n }\n });\n\n _render() {\n const $fieldutil = (this.$fieldutil = {\n $name: this.props.name,\n ...this.$registered.$getState(),\n ...this.$registered,\n $$formutil: this.$formContext.$formutil\n });\n\n return renderField($fieldutil, this.props);\n }\n\n render() {\n const shouldInitial = !this.$formContext;\n\n return (\n \n {context => {\n this.$formContext = context;\n\n if (!this.$fieldHandler) {\n this.$fieldHandler = createHandler(this, this);\n }\n\n this.$registered = (context.$$registers || {})[this.$fieldHandler.$name] || this.$fieldHandler;\n\n if (shouldInitial) {\n this.$fieldHandler.$$reset();\n this.$fieldHandler.$validate();\n }\n\n return this._render();\n }}\n \n );\n }\n}\n\nexport default Field;\n","import React, { forwardRef } from 'react';\nimport Field from './Field';\nimport { createHOC } from './utils';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction withField(WrappedComponent, config = {}) {\n const FieldEnhanced = forwardRef((props, ref) => {\n const { ...others } = props;\n const { component, ...fieldProps } = props;\n\n [\n '$validators',\n '$asyncValidators',\n '$validateLazy',\n '$reserveOnUnmount',\n '$defaultValue',\n '$defaultState',\n '$onFieldChange',\n '$parser',\n '$formatter',\n '$ref',\n 'name'\n ]\n .concat(\n Object.keys({\n ...config.$validators,\n ...config.$asyncValidators,\n ...others.$validators,\n ...others.$asyncValidators\n })\n )\n .forEach(prop => {\n if (prop in others) {\n if (prop === '$validators' || prop === '$asyncValidators' || prop === '$defaultState') {\n fieldProps[prop] = { ...config[prop], ...others[prop] };\n }\n delete others[prop];\n }\n });\n\n return (\n }\n />\n );\n });\n\n FieldEnhanced.displayName =\n 'React.Formutil.withField.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(FieldEnhanced, WrappedComponent);\n}\n\nexport default createHOC(withField);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass EasyFieldNative extends Component {\n static displayName = 'React.Formutil.EasyField.Native';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string,\n\n checked: PropTypes.any,\n unchekced: PropTypes.any\n };\n\n static defaultProps = {\n value: '',\n type: 'text',\n checked: true,\n unchecked: false\n };\n\n render() {\n const { $fieldutil, value: htmlValue, onChange, onFocus, onBlur, checked, unchecked, ...others } = this.props;\n const htmlType = this.props.type;\n\n let htmlProps = {\n value: 'compositionValue' in this ? this.compositionValue : htmlValue,\n onCompositionEnd: ev => {\n this.composition = false;\n delete this.compositionValue;\n htmlProps.onChange(ev);\n },\n onCompositionStart: () => (this.composition = true),\n onChange: ev => {\n const { value } = ev.target;\n\n if (this.composition) {\n this.compositionValue = value;\n this.forceUpdate();\n } else {\n onChange(value, ev);\n }\n },\n onFocus,\n onBlur\n };\n let Element = 'input';\n\n switch (htmlType) {\n case 'select':\n Element = htmlType;\n htmlProps.onChange = ev => {\n const node = ev.target;\n const value = node.multiple\n ? [].slice\n .call(node.options)\n .filter(option => option.selected)\n .map(option => option.value)\n : node.value;\n\n onChange(value, ev);\n };\n\n delete others.type;\n\n break;\n case 'textarea':\n Element = htmlType;\n delete others.type;\n break;\n\n case 'checkbox':\n case 'radio':\n htmlProps = {\n checked: htmlValue === checked,\n onChange: ev => {\n onChange(ev.target.checked ? checked : unchecked, ev);\n },\n onFocus,\n onBlur\n };\n break;\n\n default:\n break;\n }\n\n return ;\n }\n}\n\nexport default EasyFieldNative;\n","import React, { Component, Children, cloneElement, createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isFunction } from '../utils';\nimport warning from 'warning';\n\n/** @type {any} */\nconst { Provider, Consumer } = createContext({});\n\nclass EasyFieldGroup extends Component {\n static displayName = 'React.Formutil.EasyField.Group';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n value: PropTypes.any,\n name: PropTypes.string,\n type: PropTypes.string.isRequired,\n groupNode: PropTypes.any,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).isRequired\n };\n\n static defaultProps = {\n type: 'checkbox',\n groupNode: 'div'\n };\n\n getGroupContext() {\n return this.props;\n }\n\n _render() {\n const { className, groupNode: Element, children } = this.props;\n\n const GroupOptionProps = {\n GroupOption: EasyFieldGroupOption,\n Field: DeprecatedEasyFieldGroupOption\n };\n\n const childNodes = isFunction(children)\n ? children(GroupOptionProps)\n : Children.map(children, child => cloneElement(child, GroupOptionProps));\n\n if (Element === null) {\n return childNodes;\n }\n\n return {childNodes};\n }\n\n render() {\n return {this._render()};\n }\n}\n\nclass EasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option';\n\n static propTypes = {\n $value: PropTypes.any.isRequired\n };\n\n componentDidMount() {\n warning('$value' in this.props, `You should pass a $value to .`);\n }\n\n render() {\n const { $value, onChange, onFocus, onBlur, ...others } = this.props;\n\n return (\n \n {$groupHander => {\n const { type, name } = $groupHander;\n\n const elemProps =\n type === 'radio'\n ? {\n checked: $groupHander.value === $value,\n onChange: ev => {\n $groupHander.onChange($value, ev);\n\n onChange && onChange(ev);\n }\n }\n : type === 'checkbox'\n ? {\n checked: $groupHander.value.indexOf($value) > -1,\n onChange: ev => {\n $groupHander.onChange(\n ev.target.checked\n ? $groupHander.value.concat($value)\n : $groupHander.value.filter(value => value !== $value),\n ev\n );\n\n onChange && onChange(ev);\n }\n }\n : {\n value: $groupHander.value,\n onChange: ev => {\n $groupHander.onChange(ev);\n\n onChange && onChange(ev);\n }\n };\n\n return (\n {\n $groupHander.onFocus(ev);\n onFocus && onFocus(ev);\n }}\n onBlur={ev => {\n $groupHander.onBlur(ev);\n onBlur && onBlur(ev);\n }}\n />\n );\n }}\n \n );\n }\n}\n\nclass DeprecatedEasyFieldGroupOption extends Component {\n static displayName = 'React.Formutil.EasyField.Group.Option.Deprecated';\n\n componentDidMount() {\n warning(\n false,\n `The \"Field\" property in EasyField's children-props has been deprecated. Please use \"GroupOption\" instead.`\n );\n }\n\n render() {\n return ;\n }\n}\n\nexport default EasyFieldGroup;\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'react-fast-compare';\nimport Form from '../Form';\nimport Field from '../Field';\nimport { isUndefined, isFunction, runCallback } from '../utils';\n\nconst Wrapper = React.Frament || 'div';\n\nclass EasyFieldList extends Component {\n static displayName = 'React.Formutil.EasyField.List';\n\n static propTypes = {\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.array,\n\n children: PropTypes.func.isRequired\n };\n\n id = 0;\n latestValue = this.props.value;\n $formutil;\n\n constructor(props) {\n super(props);\n\n this.state = {\n items: props.value.length ? props.value.map(() => this.getId()) : [this.getId()],\n formKey: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.value !== this.latestValue) {\n this.setState({\n items: this.props.value.length ? this.props.value.map(() => this.getId()) : [this.getId()],\n formKey: this.state.formKey + 1\n });\n\n this.latestValue = this.props.value;\n }\n }\n\n getId(values) {\n return {\n id: this.id++,\n values\n };\n }\n\n FieldValidators = {\n required(value) {\n return value !== null;\n }\n };\n\n $onFormChange = $formutil => {\n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if (this.props.value.length) {\n this.props.onChange((this.latestValue = []));\n }\n } else if (!isEqual(this.props.value, $params.list)) {\n this.props.onChange((this.latestValue = $params.list));\n }\n });\n };\n\n swap = (m, n, callback) =>\n this.$setState(({ items }) => {\n [items[n], items[m]] = [items[m], items[n]];\n\n return items;\n }, callback);\n\n insert = (...args) => {\n let m, values, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n } else if (typeof arg === 'object') {\n values = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.push(this.getId(values));\n } else {\n items.splice(m, 0, this.getId(values));\n }\n\n return { items };\n }, callback);\n };\n\n remove = (...args) => {\n let m, callback;\n\n args.forEach(arg => {\n if (isFunction(arg)) {\n callback = arg;\n } else if (typeof arg === 'number') {\n m = arg;\n }\n });\n\n return this.$setState(({ items }) => {\n if (isUndefined(m)) {\n items.pop();\n } else {\n items.splice(m, 1);\n }\n\n if (!items.length) {\n items = [this.getId()];\n }\n\n return { items };\n }, callback);\n };\n\n $setState = (updater, callback) =>\n new Promise(resolve =>\n this.setState(updater, () =>\n this.$formutil.$onValidates($formutil => resolve(runCallback(callback, $formutil)))\n )\n );\n\n render() {\n const { children, onFocus, onBlur, value } = this.props;\n\n if (!isFunction(children)) {\n return null;\n }\n\n const $baseutil = {\n $length: this.state.items.length,\n $insert: this.insert,\n $remove: this.remove,\n $swap: this.swap,\n $push: (values, callback) => this.insert(values, callback),\n $pop: callback => this.remove(callback),\n $shift: callback => this.remove(0, callback),\n $unshift: (values, callback) => this.insert(0, values, callback),\n onFocus,\n onBlur\n };\n\n return (\n {\n this.$formutil = $formutil;\n\n return (\n \n {this.state.items.map(({ id, values }, index) => (\n {\n return (\n \n $formutil.$onValidates($formutil => {\n const { $invalid, $params } = $formutil;\n\n if ($invalid) {\n if ($fieldutil.$viewValue !== null) {\n $fieldutil.$render(null);\n }\n } else if (!isEqual($fieldutil.$viewValue, $params)) {\n $fieldutil.$render($params);\n }\n })\n }\n children={$innerFormutil =>\n children(\n {\n ...$baseutil,\n ...$innerFormutil,\n $index: index,\n $isLast: () => index === this.state.items.length - 1,\n $isFirst: () => index === 0\n },\n $formutil\n )\n }\n />\n );\n }}\n />\n ))}\n \n );\n }}\n />\n );\n }\n}\n\nexport default EasyFieldList;\n","import { Children, cloneElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Native from './Native';\nimport Group from './Group';\nimport List from './List';\nimport { isEmpty, isUndefined, isFunction, isValidProp, checkComponentPropType } from '../utils';\n\nexport const TYPE = '__TYPE__';\nexport const defaultValidators = [\n [\n 'required',\n ($value, check, { __TYPE__, checked = true }) =>\n __TYPE__ === 'checked' ? $value === checked : !isEmpty($value)\n ],\n ['maxLength', ($value, len) => isEmpty($value) || $value.length <= len],\n ['minLength', ($value, len) => isEmpty($value) || $value.length >= len],\n ['max', ($value, limit) => isEmpty($value) || $value * 1 <= limit],\n ['min', ($value, limit) => isEmpty($value) || $value * 1 >= limit],\n ['pattern', ($value, regexp) => isEmpty($value) || regexp.test($value)],\n ['enum', ($value, enumeration) => isEmpty($value) || enumeration.indexOf($value) > -1],\n ['checker', ($value, checker, props) => checker($value, props)]\n].reduce(($validators, item) => {\n const [validKey, validate] = item;\n $validators[validKey] = function validator($value, propValue, { validMessage = {} }) {\n return validate(...arguments) || validMessage[validKey] || `Error input: ${validKey}`;\n };\n return $validators;\n}, {});\n\nexport const propTypes =\n process.env.NODE_ENV !== 'production'\n ? {\n type: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: checkComponentPropType,\n render: PropTypes.func,\n\n defaultValue: PropTypes.any,\n validMessage: PropTypes.object,\n\n valuePropName: PropTypes.string,\n changePropName: PropTypes.string,\n focusPropName: PropTypes.string,\n blurPropName: PropTypes.string,\n\n passUtil: PropTypes.string\n }\n : undefined;\n\nexport const displayName = 'React.Formutil.EasyField';\n\nexport const defaultProps = {\n validMessage: {},\n valuePropName: 'value',\n changePropName: 'onChange',\n focusPropName: 'onFocus',\n blurPropName: 'onBlur',\n $parser: value => (typeof value === 'string' ? value.trim() : value)\n};\n\nexport function createHandler($fieldutil, fieldProps, childProps) {\n const { valuePropName, changePropName, focusPropName, blurPropName, passUtil } = fieldProps;\n\n const fetchValueFromEvent = function(ev) {\n return ev && ev.target ? ev.target[valuePropName] : ev;\n };\n\n const $handleProps = {\n ...childProps,\n\n [valuePropName]: $fieldutil.$viewValue,\n [changePropName]: (...args) => {\n let value = args[0];\n let ev = args[args.length - 1];\n\n if (!ev || !ev.target) {\n ev = args;\n } else {\n ev = [ev];\n }\n\n const onChange = fieldProps[changePropName];\n onChange && onChange(...ev);\n\n const newValue = fetchValueFromEvent(value);\n $fieldutil.$render(newValue);\n },\n [focusPropName]: (...args) => {\n const onFocus = fieldProps[focusPropName];\n onFocus && onFocus(...args);\n\n $fieldutil.$setFocused(true);\n },\n [blurPropName]: (...args) => {\n const onBlur = fieldProps[blurPropName];\n onBlur && onBlur(...args);\n\n if ($fieldutil.$untouched) {\n $fieldutil.$setTouched(true);\n }\n\n $fieldutil.$setFocused(false);\n }\n };\n\n if (passUtil) {\n $handleProps[passUtil === true ? '$fieldutil' : passUtil] = $fieldutil;\n }\n\n return $handleProps;\n}\n\nexport function parseProps(props) {\n const {\n children,\n component,\n render,\n\n ...fieldProps\n } = props;\n\n const {\n // filter all the props that accept by EasyField\n name,\n type,\n defaultValue,\n valuePropName,\n changePropName,\n focusPropName,\n blurPropName,\n validMessage,\n checked,\n unchecked,\n __TYPE__,\n passUtil,\n\n // filter all the props that accept by Field\n $defaultValue,\n $defaultState,\n $onFieldChange,\n $validators,\n $asyncValidators,\n $validateLazy,\n $reserveOnUnmount,\n $parser,\n $formatter,\n $ref,\n\n ...childProps\n } = fieldProps;\n\n const renderProps = {\n children,\n component,\n render\n };\n\n const isNative = !isUndefined(type) || (isUndefined(children) && isUndefined(component) && isUndefined(render));\n\n Object.keys({\n ...(fieldProps.$validators = {\n ...defaultValidators,\n ...fieldProps.$validators\n }),\n ...fieldProps.$asyncValidators\n }).forEach(prop => {\n if (prop in childProps) {\n if (!isNative || !isValidProp(prop)) {\n delete childProps[prop];\n }\n }\n });\n\n if (isNative) {\n const [htmlType = 'text', groupType] = (type || '').split('.');\n\n renderProps.component = htmlType === 'group' ? Group : htmlType === 'list' ? List : Native;\n\n // Native or Group need to pass 'name' | 'type' | 'children'\n if (name) {\n childProps.name = name;\n }\n\n if (type) {\n childProps.type = htmlType;\n }\n\n if (children) {\n childProps.children = children;\n }\n\n switch (htmlType) {\n case 'select':\n case 'textarea':\n if (props.multiple) {\n fieldProps[TYPE] = 'array';\n }\n break;\n\n case 'group':\n if (groupType === 'checkbox') {\n fieldProps[TYPE] = 'array';\n }\n\n childProps.type = groupType;\n break;\n\n case 'checkbox':\n case 'radio':\n fieldProps[TYPE] = 'checked';\n break;\n\n case 'list':\n fieldProps[TYPE] = 'array';\n break;\n\n default:\n break;\n }\n }\n\n if (!('$defaultValue' in fieldProps) && 'defaultValue' in props) {\n fieldProps.$defaultValue = defaultValue;\n }\n\n if (!('$defaultValue' in fieldProps) && TYPE in fieldProps) {\n let defaultValue;\n\n switch (fieldProps[TYPE]) {\n case 'checked':\n const { unchecked = false } = fieldProps;\n\n defaultValue = unchecked;\n break;\n\n case 'array':\n defaultValue = [];\n break;\n\n case 'object':\n defaultValue = {};\n break;\n\n case 'number':\n defaultValue = 0;\n break;\n\n case 'empty':\n default:\n break;\n }\n\n fieldProps.$defaultValue = defaultValue;\n }\n\n return {\n fieldProps,\n childProps,\n renderProps\n };\n}\n\nexport function renderField($handleProps, props) {\n let { component, render, children } = props;\n\n if (component) {\n return createElement(component, $handleProps);\n }\n\n if (isFunction(render)) {\n return render($handleProps);\n }\n\n if (isFunction(children)) {\n return children($handleProps);\n }\n\n return Children.map(children, child => cloneElement(child, $handleProps));\n}\n","import React, { Component } from 'react';\nimport Field from '../Field';\nimport { renderField, createHandler, parseProps, displayName, propTypes, defaultProps } from './easyFieldHandler';\n\n/**\n * 提供对浏览器原生表单控件的封装\n * 支持以下类型表单元素:\n * - input[type=xx]\n * - textarea\n * - select\n */\nclass EasyField extends Component {\n static displayName = displayName;\n static propTypes = propTypes;\n static defaultProps = defaultProps;\n\n render() {\n const { fieldProps, childProps, renderProps } = parseProps(this.props);\n\n return (\n renderField(createHandler($fieldutil, fieldProps, childProps), renderProps)}\n />\n );\n }\n}\n\nexport default EasyField;\n","import React, { forwardRef } from 'react';\nimport FormContext from './context';\nimport hoistStatics from 'hoist-non-react-statics';\n\nfunction connect(WrappedComponent) {\n const Connect = forwardRef((props, ref) => {\n return (\n \n {context => }\n \n );\n });\n\n Connect.displayName =\n 'React.Formutil.connect.' + (WrappedComponent.displayName || WrappedComponent.name || 'Anonymous');\n\n return hoistStatics(Connect, WrappedComponent);\n}\n\nexport default connect;\n","import React from 'react';\nimport FormContext from '../context';\n\nfunction useFormContext() {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useContext } = React;\n const $formContext = useContext(FormContext);\n\n return $formContext;\n}\n\nexport default useFormContext;\n","import React from 'react';\nimport useFormContext from './useFormContext';\nimport { runCallback, createRef } from '../utils';\nimport { createHandler, GET_FIELD_UUID } from '../fieldHelper';\nimport warning from 'warning';\n\n/**\n * @description\n * The custom hook for Field\n *\n * @param {string | object} [name]\n * @param {object} [props]\n *\n * @return {object} $Fieldutil\n */\nfunction useField(name, props = {}) {\n if (!React.useState) {\n throw new Error(`Hooks api need react@>=16.8, Please upgrade your reactjs.`);\n }\n\n const { useState, useLayoutEffect, useRef } = React;\n\n let $name;\n\n if (name) {\n if (typeof name === 'string') {\n $name = name;\n\n props.name = $name;\n } else {\n props = name;\n\n $name = props.name;\n }\n }\n\n const $formContext = useFormContext();\n /** @type {any} */\n const $this = useRef({}).current;\n /** @type {React.MutableRefObject} */\n const callbackRef = useRef([]);\n\n let $registered;\n\n $this.$formContext = $formContext;\n $this.props = props;\n $this.$setState = $setState;\n // we not directly use this $state, just from $this.$state\n const [, setState] = useState(() => {\n $this.$$FIELD_UUID = GET_FIELD_UUID();\n $this.$fieldHandler = $registered = createHandler($this);\n\n const $state = $this.$fieldHandler.$$reset();\n\n $this.$fieldHandler.$validate();\n\n return $state;\n });\n\n if (!$registered) {\n $registered = ($formContext.$$registers || {})[$this.$fieldHandler.$name] || $this.$fieldHandler;\n }\n\n useLayoutEffect(() => {\n const { $state } = $this;\n\n if ($this.isMounting) {\n if (!($name in ($formContext.$$registers || {}))) {\n const { $prevValue } = $this;\n\n $registered.$$triggerChange({\n $newValue: $state.$value,\n $prevValue\n });\n }\n }\n\n $this.$prevValue = $state.$value;\n }, [$this.$state.$value]);\n\n useLayoutEffect(() => {\n $this.isMounting = true;\n\n warning(\n !$name || $formContext.$formutil,\n `You should enusre that the useField() with the name '${$name}' must be used underneath a component or withForm() HOC, otherwise it's isolated.`\n );\n\n warning($name, `You should pass a name argument to useField(), otherwise it will be isolated!`);\n\n return () => {\n $this.isMounting = false;\n\n createRef(props.$ref, null);\n };\n }, []);\n\n useLayoutEffect(() => {\n if ($formContext.$$register) {\n $formContext.$$register($name, $this.$fieldHandler);\n }\n\n return () => {\n if ($formContext.$$unregister) {\n $formContext.$$unregister($name, $this.$fieldHandler, !$this.isMounting && props.$reserveOnUnmount);\n }\n };\n }, [$name]);\n\n // trigger ref callback\n useLayoutEffect(() => {\n createRef(props.$ref, $this.$fieldutil);\n });\n\n useLayoutEffect(() => {\n if (callbackRef.current.length > 0) {\n const callbackQueue = [...callbackRef.current];\n\n callbackRef.current.length = 0;\n\n while (callbackQueue.length) {\n callbackQueue.pop()($this.$fieldutil);\n }\n }\n });\n\n function $setState($newState, callback) {\n return new Promise(resolve => {\n const execute = () => resolve(runCallback(callback, $this.$fieldutil));\n\n if ($this.isMounting) {\n if ($name in ($formContext.$$registers || {})) {\n $formContext.$$onChange($name, $newState, execute);\n } else {\n setState($registered.$$merge($newState));\n\n $registered.$$detectChange($newState);\n\n callbackRef.current.push(execute);\n }\n } else {\n $registered.$$merge($newState);\n execute();\n }\n });\n }\n\n return ($this.$fieldutil = {\n $name,\n ...$registered.$getState(),\n ...$registered,\n $$formutil: $formContext.$formutil\n });\n}\n\nexport default useField;\n","import useFormContext from './useFormContext';\n\nfunction useForm() {\n const { $formutil } = useFormContext();\n\n return $formutil;\n}\n\nexport default useForm;\n","import { createHandler, parseProps, defaultProps } from '../EasyField/easyFieldHandler';\nimport useField from './useField';\n\nfunction useHandler(props) {\n props = { ...defaultProps, ...props, children: null };\n\n const { fieldProps, childProps } = parseProps(props);\n const $fieldutil = useField(fieldProps);\n\n return createHandler($fieldutil, fieldProps, childProps);\n}\n\nexport default useHandler;\n"],"names":["createContext","require$$0","OBJECT_PROTO","Object","getPrototypeOf","PATH_REGEXP","Root","isUndefined","window","global","arg","isFunction","isEmpty","isPromise","promise","then","isObject","obj","prototype","toString","call","isPlainObj","constructor","isComponent","isValidElementType","checkComponentPropType","props","propName","componentName","Error","deepClone","Array","isArray","newObj","i","j","length","runCallback","callback","args","createHOC","withHOC","WrappedComponent","VALID_PROPS","isValidProp","prop","indexOf","toLowerCase","executeWord","word","exec","Function","err","parsePath","target","path","value","warning","JSON","stringify","pathSymbols","match","map","s","replace","pathWords","split","trim","filter","item","scope","index","len","nextWord","symbol","nextVarWord","error","pathExist","data","createRef","ref","current","arrayFind","array","process","objectMap","handler","keys","reduce","key","objectEach","forEach","toObject","arr","TODO_DELETE","undefined","CLEAR","pkey","pobj","every","objectClear","name","FORM_VALIDATE_RESULT","requestFrame","cancelFrame","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","Form","$$formPending","$$formValidatePromise","$$registers","$$deepRegisters","$$regDuplications","$$duplicateTimer","$$checkDuplication","hasDup","utils","$curRegistered","$handler","$$reserved","$$reset","$getState","$render","$$register","prevName","$$unregister","$$getRegister","$$fieldChangedQueue","push","$newValue","$value","$$defaultValues","$name","createDeepRegisters","$prevValue","$$defaultInitialize","$defaultValues","$defaultStates","$$deepParseObject","$$defaultStates","$$getDefault","$$triggerChangeTimer","$$triggerFormChange","$newValues","$prevValues","hasFormChanged","$$triggerChange","$validator","$$formValidate","$onFormChange","$formutil","field","Promise","resolve","$breakAsyncHandler","$shouldCancelPrevAsyncValidate","prevCallback","validation","result","$params","formtutil","execCallback","setCallback","reason","$$setFormErrors","validResults","$$setStates","$error","$getField","$new","$$onChange","$state","$setStates","$stateTree","processer","force","$parsedTree","pathData","$newState","$weakParams","$$merge","$$detectChange","findItem","forceUpdate","$validates","pop","flatter","names","$validate","$onValidates","filedValidatePromises","$onValidate","all","$reset","$setValues","$valueTree","$setFocuses","$focusedTree","$focused","$setDirts","$dirtyTree","$dirty","$setTouches","$touchedTree","$touched","$setPendings","$pendingTree","$pending","$setErrors","$errorTree","$batchState","$batchDirty","$batchTouched","$batchFocused","$batchPending","$batchError","mayWeakObj","deepObj","$ref","prevProps","children","render","component","createElement","Children","child","type","cloneElement","$processer","$stateArray","$pureParams","$invalid","some","$states","$errors","$dirts","$touches","$focuses","$pendings","$weakStates","$weakErrors","$weakDirts","$weakTouches","$weakFocuses","$weakPendings","$getFirstError","$fieldutil","$fieldError","message","$valid","$pristine","$untouched","React","getFormContext","_render","Component","displayName","propTypes","PropTypes","func","pt","oneOfType","node","isRequired","object","shape","any","defaultProps","ReactIs","withForm","config","FormEnhanced","forwardRef","others","formProps","hoistStatics","FIELD_UUID","$baseState","isError","warningValidatorReturn","string","$defaultValue","$defaultState","$onFieldChange","$validators","$asyncValidators","$validateLazy","bool","$reserveOnUnmount","$parser","$formatter","GET_FIELD_UUID","renderField","createHandler","$this","owner","$fieldHandler","$$FIELD_UUID","$picker","$getComponent","$setState","$setValue","$setTouched","$setDirty","$setFocused","$setValidity","$setError","$setPending","$$validatePromise","$formContext","$initialState","$initialValue","$newError","$validError","$skipRestValidate","$validatePromises","promises","$viewValue","$setViewValue","$setModelValue","Field","execute","isMounting","$registered","$$formutil","shouldInitial","context","withField","FieldEnhanced","fieldProps","concat","EasyFieldNative","htmlValue","onChange","onFocus","onBlur","checked","unchecked","htmlType","htmlProps","compositionValue","onCompositionEnd","ev","composition","onCompositionStart","Element","multiple","slice","options","option","selected","unchekced","Provider","Consumer","EasyFieldGroup","className","groupNode","GroupOptionProps","GroupOption","EasyFieldGroupOption","DeprecatedEasyFieldGroupOption","childNodes","getGroupContext","element","$groupHander","elemProps","Wrapper","Frament","EasyFieldList","id","latestValue","FieldValidators","required","isEqual","list","swap","m","n","items","insert","values","getId","splice","remove","updater","setState","state","formKey","$baseutil","$length","$insert","$remove","$swap","$push","$pop","$shift","$unshift","$innerFormutil","$index","$isLast","$isFirst","TYPE","defaultValidators","check","__TYPE__","limit","regexp","test","enumeration","checker","validKey","validate","validator","propValue","validMessage","arguments","defaultValue","valuePropName","changePropName","focusPropName","blurPropName","passUtil","childProps","fetchValueFromEvent","$handleProps","newValue","parseProps","renderProps","isNative","groupType","Group","List","Native","EasyField","connect","Connect","useFormContext","useState","useContext","FormContext","useField","useLayoutEffect","useRef","callbackRef","callbackQueue","useForm","useHandler"],"mappings":"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"} \ No newline at end of file diff --git a/dist/react-formutil.umd.production.js b/dist/react-formutil.umd.production.js index 9c58122..9ba295e 100644 --- a/dist/react-formutil.umd.production.js +++ b/dist/react-formutil.umd.production.js @@ -1 +1 @@ -!function(e,t){"object"===typeof exports&&"undefined"!==typeof module?t(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactFormutil={},e.React)}(this,function(e,t){"use strict";var r="default"in t?t.default:t;function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return!t||"object"!==typeof t&&"function"!==typeof t?f(e):t}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(i)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function h(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?t-1:0),n=1;n=0?[]:{}:s[p];break;default:s[p]=o}}}catch(e){C(!1,"The name '%s' of Field seems is not a legal expression.",i)}if(t.length>2)return n}function M(e,t){e&&(O(e)?e(t):"current"in e&&(e.current=t))}var U=function(e,t){for(var r=0,n=e.length;r2&&void 0!==arguments[2]?arguments[2]:{};return e.reduce(function(){return t.apply(void 0,arguments),arguments.length<=0?void 0:arguments[0]},r)},z=void 0;function B(e,t,r){H(e,function(t,r){t===z?delete e[r]:(j(t)||Array.isArray(t))&&B(t,r,e)}),r&&Object.keys(e).every(function(t){return e[t]===z})&&(r[t]=z,B(r))}var Y,Q,G=function(e,t){S(R(e,t))||(R(e,t,z),B(e))},q="FORM_VALIDATE_RESULT";"function"===typeof requestAnimationFrame?(Y=requestAnimationFrame,Q=cancelAnimationFrame):(Y=setTimeout,Q=clearTimeout);var K=function(e){function i(e){var t;return n(this,i),(t=d(this,l(i).call(this,e))).$$formPending=void 0,t.$$formValidatePromise=void 0,t.$$registers={},t.$$deepRegisters={},t.$$regDuplications={},t.$$duplicateTimer=void 0,t.$$checkDuplication=function(){var e,r=f(t).$$regDuplications;H(r,function(t,n){var i=p(t,2),o=i[0],a=i[1];C(o.$$reserved,"The Field with a name '".concat(n,"' has been registered!")),a.$$reset(o.$getState()),e=delete r[n]}),e&&t.$render()},t.$$register=function(e,r,n){if(t.$$unregister(n,r),e){var i=t.$$getRegister(e);i?(Q(t.$$duplicateTimer),t.$$regDuplications[e]=[i,r],t.$$duplicateTimer=Y(t.$$checkDuplication)):(t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value}),G(t.$$defaultValues,e)),t.$$registers[r.$name=e]=r,t.createDeepRegisters(),t.$render()}},t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=p(t.$$regDuplications[e],2),o=i[0],a=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:a.$getState().$value,$prevValue:o.$getState().$value}),delete t.$$regDuplications[e]}else t.$$registers[e]===r&&(n?r.$$reserved=!0:(delete t.$$registers[e],t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value}),G(t.$$defaultValues,e)));t.createDeepRegisters(),t.$render()}},t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(D(O(r)?r(t.props)||{}:r)),t.$$defaultStates=t.$$deepParseObject(D(O(n)?n(t.props)||{}:n))},t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}},t.$$triggerChangeTimer=void 0,t.$$fieldChangedQueue=[],t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=h(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={},n={},i=t.$$registers,o=!1;e.forEach(function(e){if(e.name in i||delete e.$newValue,e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var a=t.$$getRegister(e.name);a&&a.$$triggerChange(e)}"$newValue"in e&&R(r,e.name,e.$newValue),"$prevValue"in e&&R(n,e.name,e.$prevValue),o=!0}}),o&&(O(t.props.$validator)&&t.$$formValidate(),O(t.props.$onFormChange)&&t.props.$onFormChange(t.$formutil,r,n))}},t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)},t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||R(t.$$deepRegisters,e);if(r)return r}},t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n,i,o,a,u=(0,t.props.$validator)(t.$formutil.$params,t.formtutil),s=function(t){return r(_(e,_(o,t)))};k(u)?(t.$$formPending||(t.$$formPending=!0,t.$render()),i=function(e){return n=e(s)},a=u.then(function(){},function(e){return e}).then(function(e){return n||(t.$shouldCancelPrevAsyncValidate=null,t.$$formPending=!1,t.$$setFormErrors(e,s))})):(t.$$formPending&&(t.$$formPending=!1),a=t.$$setFormErrors(u,s)),t.$shouldCancelPrevAsyncValidate&&t.$shouldCancelPrevAsyncValidate(function(e){return o=e,a}),t.$shouldCancelPrevAsyncValidate=i})},t.$$setFormErrors=function(e,r){return e&&(e instanceof Error||"object"!==typeof e)?(C(!1,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field."),t.$render(r)):t.$$setStates(e||{},function(e,t){var r=t.$getState().$error,n=void 0===r?{}:r;return e?{$error:u({},n,a({},q,e))}:n[q]?(delete n[q],{$error:n}):void 0},r,!0)},t.$getField=function(e){var r=t.$$getRegister(e);if(C(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted.")),C(e,"You should pass a name of the mounted Field to $getField()."),r)return r.$new()},t.$$onChange=function(e,r,n){return t.$setStates(a({},e,r),n)},t.$$setStates=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=t.$$deepParseObject(e);return H(t.$$registers,function(n,a){var u=a in e?e[a]:R(o,a);if(!S(u)||i){var s=r(u,n);if(s){var l=t.$formutil.$weakParams[a],c=n.$$merge(s).$value;if(n.$$detectChange(s),"$value"in s||"$viewValue"in s){var $=U(t.$$fieldChangedQueue,function(e){return e.name===a});$?("$prevValue"in $||($.$prevValue=$.$newValue),$.$newValue=c):t.$$fieldChangedQueue.push({name:a,$newValue:c,$prevValue:l})}}}}),t.$render(n)},t.$render=function(e){return new Promise(function(r){return t.forceUpdate(function(){return r(_(e,t.$formutil))})})},t.$validates=function(){for(var e,r=arguments.length,n=new Array(r),i=0;i1&&void 0!==arguments[1]?arguments[1]:{};return H(e,function(e,r){return R(t,r,e)}),t}},{key:"componentDidMount",value:function(){M(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function(e){var t=this;M(this.props.$ref,this.$formutil),Q(this.$$triggerChangeTimer),this.$$triggerChangeTimer=Y(function(){t.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function(){M(this.props.$ref,null)}},{key:"_render",value:function(){var e=this.$formutil,r=this.props,n=r.children,i=r.render,o=r.component;return o?t.createElement(o,{$formutil:e}):O(i)?i(e):O(n)?n(e):t.Children.map(n,function(r){return r&&x(r.type)?t.cloneElement(r,{$formutil:e}):r})}},{key:"render",value:function(){var e=this,t=this.props.$processer,n=Object.keys(this.$$registers).map(function(t){return{path:t,$state:e.$$registers[t].$getState()}}),i=L(n,function(e,r){var n=r.path,i=r.$state;t&&t(i,n),"$value"in i&&(i.$dirty||!S(i.$value))&&(e[n]=i.$value)}),o=L(n,function(e,t){var r=t.path;t.$state;return r in i&&R(e,r,i[r])}),a=n.some(function(e){return e.$state.$invalid}),s=n.some(function(e){return e.$state.$dirty}),l=n.some(function(e){return e.$state.$touched}),c=n.some(function(e){return e.$state.$focused}),$=this.$$formPending||n.some(function(e){return e.$state.$pending}),f=this.$formutil={$$registers:u({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:L(n,function(e,t){return R(e,t.path,t.$state)}),$params:u({},this.$$defaultValues,o),$errors:L(n,function(e,t){var r=t.path,n=t.$state;n.$invalid&&R(e,r,n.$error)}),$dirts:L(n,function(e,t){return R(e,t.path,t.$state.$dirty)}),$touches:L(n,function(e,t){return R(e,t.path,t.$state.$touched)}),$focuses:L(n,function(e,t){return R(e,t.path,t.$state.$focused)}),$pendings:L(n,function(e,t){return R(e,t.path,t.$state.$pending)}),$weakStates:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:i,$weakErrors:L(n,function(e,t){var r=t.path,n=t.$state;n.$invalid&&(e[r]=n.$error)}),$weakDirts:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function(e){if(e){var t=f.$getField(e);return t&&t.$getFirstError()}for(var r in f.$weakErrors){var n=f.$weakErrors[r];for(var i in n)return n[i]instanceof Error?n[i].message:n[i]}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function(){return e.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!a,$invalid:a,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:c,$pending:$};return r.createElement(m.Provider,{value:this.getFormContext()},this._render())}}]),i}();K.displayName="React.Formutil.Form",K.defaultProps={$defaultValues:{},$defaultStates:{}};var W={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},J={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},X={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Z={};function ee(e){return b.isMemo(e)?X:Z[e.$$typeof]||W}Z[b.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var te=Object.defineProperty,re=Object.getOwnPropertyNames,ne=Object.getOwnPropertySymbols,ie=Object.getOwnPropertyDescriptor,oe=Object.getPrototypeOf,ae=Object.prototype;var ue=function e(t,r,n){if("string"!==typeof r){if(ae){var i=oe(r);i&&i!==ae&&e(t,i,n)}var o=re(r);ne&&(o=o.concat(ne(r)));for(var a=ee(t),u=ee(r),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},i=t.forwardRef(function(t,i){var o=Object.assign({},t),a=(t.component,$(t,["component"]));return["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){e in o&&("$defaultStates"!==e&&"$defaultValues"!==e||(a[e]=u({},n[e],o[e])),delete o[e])}),r.createElement(K,Object.assign({},n,a,{render:function(t){return r.createElement(e,Object.assign({},o,{$formutil:t,ref:i}))}}))});return i.displayName="React.Formutil.withForm."+(e.displayName||e.name||"Anonymous"),ue(i,e)}),le=0,ce={$valid:!0,$invalid:!1,$dirty:!1,$pristine:!0,$touched:!1,$untouched:!0,$focused:!1,$pending:!1,$error:{}};function $e(e){return!0!==e}function fe(e,t,r){C(!S(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}function de(){return le++}function pe(e,t){var r;function n(t){var r,n=e.props,i=e.$formContext;if(i.$$getDefault){var o=n.name,a=i.$$getDefault(),s=a.$$defaultStates,l=a.$$defaultValues;if(o&&l){var $=R(l,o);r=R(s,o)||{},S($)||(r.$value=$)}}var f=n.$defaultValue,d=n.$defaultState;return c(u({},ce,O(d)?d(n):d,{$value:O(f)?f(n):"$defaultValue"in n?f:""},r,t))}function i(){return u({},e.$state)}function o(t){return r=new Promise(function(r){var n,i,o,c,$=e.props,f=e.$formContext,d=u({},$.$validators,$.$asyncValidators),p=e.$state,h=p.$value,m=p.$pending,v=Object.assign({},p.$error),g=f.$formutil,y={},b=!1;delete v[q];var w=Object.keys(d).reduce(function(t,r){if(delete v[r],!b&&null!=$[r]){var i=d[r](h,$[r],u({},$,{$formutil:g,$fieldutil:e.$fieldutil,$validError:y}));k(i)?t.push(i.catch(function(e){n||s(r,e||r)})):$e(i)&&(y[r]=i||r,fe(i,r,$.name),$.$validateLazy&&(b=!0))}return t},[]),C=function(e){return r(_(t,_(o,e)))};w.length?(m||l(!0),i=function(e){return n=e(C)},w.push(a(u({},v,y))),c=Promise.all(w).then(function(){return n||(e.$shouldCancelPrevAsyncValidate=null,l(!1,C))})):(m&&l(!1),c=a(u({},v,y),C)),e.$shouldCancelPrevAsyncValidate&&e.$shouldCancelPrevAsyncValidate(function(e){return o=e,c}),e.$shouldCancelPrevAsyncValidate=i})}function a(t,r){return e.$setState({$error:t},r)}function s(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,i=Object.assign({},e.$state.$error);return $e(r)?(i[t]=r||t,fe(r,t,e.props.name)):delete i[t],a(i,n)}function l(t,r){return e.$setState({$pending:t},r)}function c(t){var r=Object.assign({},t);"$error"in r&&(r.$error||(r.$error={}),r.$valid=0===Object.keys(r.$error).length);var n=e.props,o=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){r.$value=o?o(r.$viewValue,function(e){return r.$viewValue=e}):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){r.$viewValue=a?a(r.$value,function(e){return r.$value=e}):r.$value}return"$valid"in r?r.$invalid=!r.$valid:"$invalid"in r&&(r.$dirty=!r.$invalid),"$dirty"in r?r.$pristine=!r.$dirty:"$pristine"in r&&(r.$dirty=!r.$pristine),"$touched"in r?r.$untouched=!r.$touched:"$untouched"in r&&(r.$touched=!r.$untouched),e.$state=u({},e.$state,r),i()}return{$$FIELD_UUID:e.$$FIELD_UUID,$$reset:n,$$merge:c,$$detectChange:function(e){("$value"in e||"$viewValue"in e)&&o()},$$triggerChange:function(t){var r=t.$newValue,n=t.$prevValue,i=e.props.$onFieldChange;O(i)&&i(r,n,e.$formContext.$formutil)},$onValidate:function(e){return r.then(e),r},$new:function(){return e.$fieldutil},$picker:i,$getState:i,$getComponent:function(){return t},$reset:function(t,r){return e.$setState(n(t),r)},$getFirstError:function(){var t=e.$state.$error,r=void 0===t?{}:t;for(var n in r)return r[n]instanceof Error?r[n].message:r[n]},$validate:o,$setState:e.$setState,$render:function(t,r){return e.$setState({$viewValue:t,$dirty:!0},r)},$setValue:function(t,r){return e.$setState({$value:t},r)},$setTouched:function(t,r){return e.$setState({$touched:t},r)},$setDirty:function(t,r){return e.$setState({$dirty:t},r)},$setFocused:function(t,r){return e.$setState({$focused:t},r)},$setValidity:s,$setError:a,$setPending:l}}var he=function(e){function i(){var e,t;n(this,i);for(var r=arguments.length,o=new Array(r),a=0;a with the name '".concat(e,"' must be used underneath a component or withForm() HOC, otherwise it's isolated.")),C(e,"You should assign a name to , otherwise it will be isolated!"),t.$$register&&t.$$register(e,this.$fieldHandler),this.$prevValue=this.$state.$value,M(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function(){this.$formContext.$$unregister&&this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount),this.isMounting=!1,M(this.props.$ref,null)}},{key:"componentDidUpdate",value:function(e){var t=this.props.name;t!==e.name&&this.$formContext.$$register&&this.$formContext.$$register(t,this.$fieldHandler,e.name),M(this.props.$ref,this.$fieldutil),this.$state.$value!==this.$prevValue&&(t in(this.$formContext.$$registers||{})||this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue}),this.$prevValue=this.$state.$value)}},{key:"_render",value:function(){return function(e,r){var n=r.children,i=r.render,o=r.component;return o?t.createElement(o,{$fieldutil:e}):O(i)?i(e):O(n)?n(e):t.Children.map(n,function(r){return r&&x(r.type)?t.cloneElement(r,{$fieldutil:e}):r})}(this.$fieldutil=u({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil}),this.props)}},{key:"render",value:function(){var e=this,t=!this.$formContext;return r.createElement(m.Consumer,null,function(r){return e.$formContext=r,e.$fieldHandler||(e.$fieldHandler=pe(e,e)),e.$registered=(r.$$registers||{})[e.$fieldHandler.$name]||e.$fieldHandler,t&&(e.$fieldHandler.$$reset(),e.$fieldHandler.$validate()),e._render()})}}]),i}();he.displayName="React.Formutil.Field";var me=A(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.forwardRef(function(t,i){var o=Object.assign({},t),a=(t.component,$(t,["component"]));return["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(u({},n.$validators,n.$asyncValidators,o.$validators,o.$asyncValidators))).forEach(function(e){e in o&&("$validators"!==e&&"$asyncValidators"!==e&&"$defaultState"!==e||(a[e]=u({},n[e],o[e])),delete o[e])}),r.createElement(he,Object.assign({},n,a,{render:function(t){return r.createElement(e,Object.assign({},o,{$fieldutil:t,ref:i}))}}))});return i.displayName="React.Formutil.withField."+(e.displayName||e.name||"Anonymous"),ue(i,e)}),ve=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"render",value:function(){var e=this,t=this.props,n=(t.$fieldutil,t.value),i=t.onChange,o=t.onFocus,a=t.onBlur,u=t.checked,s=t.unchecked,l=$(t,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]),c=this.props.type,f={value:"compositionValue"in this?this.compositionValue:n,onCompositionEnd:function(t){e.composition=!1,delete e.compositionValue,f.onChange(t)},onCompositionStart:function(){return e.composition=!0},onChange:function(t){var r=t.target.value;e.composition?(e.compositionValue=r,e.forceUpdate()):i(r,t)},onFocus:o,onBlur:a},d="input";switch(c){case"select":d=c,f.onChange=function(e){var t=e.target,r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;i(r,e)},delete l.type;break;case"textarea":d=c,delete l.type;break;case"checkbox":case"radio":f={checked:n===u,onChange:function(e){i(e.target.checked?u:s,e)},onFocus:o,onBlur:a}}return r.createElement(d,Object.assign({},l,f))}}]),i}();ve.displayName="React.Formutil.EasyField.Native",ve.defaultProps={value:"",type:"text",checked:!0,unchecked:!1};var ge=t.createContext({}),ye=ge.Provider,be=ge.Consumer,we=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"getGroupContext",value:function(){return this.props}},{key:"_render",value:function(){var e=this.props,n=e.className,i=e.groupNode,o=e.children,a={GroupOption:Ce,Field:Ve},u=O(o)?o(a):t.Children.map(o,function(e){return t.cloneElement(e,a)});return null===i?u:r.createElement(i,{className:n},u)}},{key:"render",value:function(){return r.createElement(ye,{value:this.getGroupContext()},this._render())}}]),i}();we.displayName="React.Formutil.EasyField.Group",we.defaultProps={type:"checkbox",groupNode:"div"};var Ce=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"componentDidMount",value:function(){C("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function(){var e=this.props,t=e.$value,n=e.onChange,i=e.onFocus,o=e.onBlur,a=$(e,["$value","onChange","onFocus","onBlur"]);return r.createElement(be,null,function(e){var u=e.type,s=e.name,l="radio"===u?{checked:e.value===t,onChange:function(r){e.onChange(t,r),n&&n(r)}}:"checkbox"===u?{checked:e.value.indexOf(t)>-1,onChange:function(r){e.onChange(r.target.checked?e.value.concat(t):e.value.filter(function(e){return e!==t}),r),n&&n(r)}}:{value:e.value,onChange:function(t){e.onChange(t),n&&n(t)}};return r.createElement("input",Object.assign({name:s},a,l,{type:u,onFocus:function(t){e.onFocus(t),i&&i(t)},onBlur:function(t){e.onBlur(t),o&&o(t)}}))})}}]),i}();Ce.displayName="React.Formutil.EasyField.Group.Option";var Ve=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"componentDidMount",value:function(){C(!1,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function(){return r.createElement(Ce,this.props)}}]),i}();Ve.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Fe=Array.isArray,Pe=Object.keys,Se=Object.prototype.hasOwnProperty,Oe="undefined"!==typeof Element;var Ee=function(e,t){try{return function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){var n,i,o,a=Fe(t),u=Fe(r);if(a&&u){if((i=t.length)!=r.length)return!1;for(n=i;0!==n--;)if(!e(t[n],r[n]))return!1;return!0}if(a!=u)return!1;var s=t instanceof Date,l=r instanceof Date;if(s!=l)return!1;if(s&&l)return t.getTime()==r.getTime();var c=t instanceof RegExp,$=r instanceof RegExp;if(c!=$)return!1;if(c&&$)return t.toString()==r.toString();var f=Pe(t);if((i=f.length)!==Pe(r).length)return!1;for(n=i;0!==n--;)if(!Se.call(r,f[n]))return!1;if(Oe&&t instanceof Element&&r instanceof Element)return t===r;for(n=i;0!==n--;)if(("_owner"!==(o=f[n])||!t.$$typeof)&&!e(t[o],r[o]))return!1;return!0}return t!==t&&r!==r}(e,t)}catch(e){if(e.message&&e.message.match(/stack|recursion/i)||-2146828260===e.number)return console.warn("Warning: react-fast-compare does not handle circular references.",e.name,e.message),!1;throw e}},ke=r.Frament||"div",je=function(e){function i(e){var t;return n(this,i),(t=d(this,l(i).call(this,e))).id=0,t.latestValue=t.props.value,t.$formutil=void 0,t.FieldValidators={required:function(e){return null!==e}},t.$onFormChange=function(e){e.$onValidates(function(e){var r=e.$invalid,n=e.$params;r?t.props.value.length&&t.props.onChange(t.latestValue=[]):Ee(t.props.value,n.list)||t.props.onChange(t.latestValue=n.list)})},t.swap=function(e,r,n){return t.$setState(function(t){var n=t.items,i=[n[e],n[r]];return n[r]=i[0],n[e]=i[1],n},n)},t.insert=function(){for(var e,r,n,i=arguments.length,o=new Array(i),a=0;a=t}],["max",function(e,t){return E(e)||1*e<=t}],["min",function(e,t){return E(e)||1*e>=t}],["pattern",function(e,t){return E(e)||t.test(e)}],["enum",function(e,t){return E(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=p(t,2),n=r[0],i=r[1];return e[n]=function(e,t,r){var o=r.validMessage,a=void 0===o?{}:o;return i.apply(void 0,arguments)||a[n]||"Error input: ".concat(n)},e},{}),_e={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function(e){return"string"===typeof e?e.trim():e}};function Ae(e,t,r){var n,i=t.valuePropName,o=t.changePropName,s=t.focusPropName,l=t.blurPropName,c=t.passUtil,$=u({},r,(a(n={},i,e.$viewValue),a(n,o,function(){for(var r=arguments.length,n=new Array(r),a=0;a-1}(e)||delete l[e])}),f){var d=p((a||"").split("."),2),h=d[0],m=void 0===h?"text":h,v=d[1];switch(c.component="group"===m?we:"list"===m?je:ve,o&&(l.name=o),a&&(l.type=m),t&&(l.children=t),m){case"select":case"textarea":e.multiple&&(i[xe]="array");break;case"group":"checkbox"===v&&(i[xe]="array"),l.type=v;break;case"checkbox":case"radio":i[xe]="checked";break;case"list":i[xe]="array"}}if(!("$defaultValue"in i)&&"defaultValue"in e&&(i.$defaultValue=s),!("$defaultValue"in i)&&xe in i){var g;switch(i[xe]){case"checked":var y=i.unchecked;g=void 0!==y&&y;break;case"array":g=[];break;case"object":g={};break;case"number":g=0}i.$defaultValue=g}return{fieldProps:i,childProps:l,renderProps:c}}var Ne=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"render",value:function(){var e=Te(this.props),n=e.fieldProps,i=e.childProps,o=e.renderProps;return r.createElement(he,Object.assign({},n,{children:function(e){return function(e,r){var n=r.component,i=r.render,o=r.children;return n?t.createElement(n,e):O(i)?i(e):O(o)?o(e):t.Children.map(o,function(r){return t.cloneElement(r,e)})}(Ae(e,n,i),o)}}))}}]),i}();function Re(){if(!r.useState)throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.");return(0,r.useContext)(m)}function Me(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.useState)throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.");var n,i=r.useState,o=r.useLayoutEffect,a=r.useRef;e&&("string"===typeof e?(n=e,t.name=n):n=(t=e).name);var s,l=Re(),c=a({}).current,$=a([]);c.$formContext=l,c.props=t,c.$setState=function(e,t){return new Promise(function(r){var i=function(){return r(_(t,c.$fieldutil))};c.isMounting?n in(l.$$registers||{})?l.$$onChange(n,e,i):(f(s.$$merge(e)),s.$$detectChange(e),$.current.push(i)):(s.$$merge(e),i())})};var f=p(i(function(){c.$$FIELD_UUID=de(),c.$fieldHandler=s=pe(c);var e=c.$fieldHandler.$$reset();return c.$fieldHandler.$validate(),e}),2)[1];return s||(s=(l.$$registers||{})[c.$fieldHandler.$name]||c.$fieldHandler),o(function(){var e=c.$state;if(c.isMounting&&!(n in(l.$$registers||{}))){var t=c.$prevValue;s.$$triggerChange({$newValue:e.$value,$prevValue:t})}c.$prevValue=e.$value},[c.$state.$value]),o(function(){return c.isMounting=!0,C(!n||l.$formutil,"You should enusre that the useField() with the name '".concat(n,"' must be used underneath a component or withForm() HOC, otherwise it's isolated.")),C(n,"You should pass a name argument to useField(), otherwise it will be isolated!"),function(){c.isMounting=!1,M(t.$ref,null)}},[]),o(function(){return l.$$register&&l.$$register(n,c.$fieldHandler),function(){l.$$unregister&&l.$$unregister(n,c.$fieldHandler,!c.isMounting&&t.$reserveOnUnmount)}},[n]),o(function(){M(t.$ref,c.$fieldutil)}),o(function(){if($.current.length>0){var e=h($.current);for($.current.length=0;e.length;)e.pop()(c.$fieldutil)}}),c.$fieldutil=u({$name:n},s.$getState(),s,{$$formutil:l.$formutil})}Ne.displayName="React.Formutil.EasyField",Ne.defaultProps=_e,e.EasyField=Ne,e.Field=he,e.Form=K,e.connect=function(e){var n=t.forwardRef(function(t,n){return r.createElement(m.Consumer,null,function(i){return r.createElement(e,Object.assign({},t,{$formutil:i.$formutil,ref:n}))})});return n.displayName="React.Formutil.connect."+(e.displayName||e.name||"Anonymous"),ue(n,e)},e.useField=Me,e.useForm=function(){return Re().$formutil},e.useHandler=function(e){var t=Te(e=u({},_e,e,{children:null})),r=t.fieldProps,n=t.childProps;return Ae(Me(r),r,n)},e.withField=me,e.withForm=se,Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"===typeof exports&&"undefined"!==typeof module?t(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactFormutil={},e.React)}(this,function(e,t){"use strict";var r="default"in t?t.default:t;function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var r=0;r=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d(e,t){return!t||"object"!==typeof t&&"function"!==typeof t?f(e):t}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(i)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function h(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1?t-1:0),n=1;n=0?[]:{}:s[p];break;default:s[p]=o}}}catch(e){C(!1,"The name '%s' of Field seems is not a legal expression.",i)}if(t.length>2)return n}function M(e,t){e&&(O(e)?e(t):"current"in e&&(e.current=t))}var U=function(e,t){for(var r=0,n=e.length;r2&&void 0!==arguments[2]?arguments[2]:{};return e.reduce(function(){return t.apply(void 0,arguments),arguments.length<=0?void 0:arguments[0]},r)},z=void 0;function B(e,t,r){H(e,function(t,r){t===z?delete e[r]:(j(t)||Array.isArray(t))&&B(t,r,e)}),r&&Object.keys(e).every(function(t){return e[t]===z})&&(r[t]=z,B(r))}var Y,Q,G=function(e,t){S(R(e,t))||(R(e,t,z),B(e))},q="FORM_VALIDATE_RESULT";"function"===typeof requestAnimationFrame?(Y=requestAnimationFrame,Q=cancelAnimationFrame):(Y=setTimeout,Q=clearTimeout);var K=function(e){function i(e){var t;return n(this,i),(t=d(this,l(i).call(this,e))).$$formPending=void 0,t.$$formValidatePromise=void 0,t.$$registers={},t.$$deepRegisters={},t.$$regDuplications={},t.$$duplicateTimer=void 0,t.$$checkDuplication=function(){var e,r=f(t).$$regDuplications;H(r,function(t,n){var i=p(t,2),o=i[0],a=i[1];C(o.$$reserved,"The Field with a name '".concat(n,"' has been registered!")),a.$$reset(o.$getState()),e=delete r[n]}),e&&t.$render()},t.$$register=function(e,r,n){if(t.$$unregister(n,r),e){var i=t.$$getRegister(e);i?(Q(t.$$duplicateTimer),t.$$regDuplications[e]=[i,r],t.$$duplicateTimer=Y(t.$$checkDuplication)):(t.$$fieldChangedQueue.push({name:e,$newValue:r.$getState().$value}),G(t.$$defaultValues,e)),t.$$registers[r.$name=e]=r,t.createDeepRegisters(),t.$render()}},t.$$unregister=function(e,r,n){if(e){if(e in t.$$regDuplications){var i=p(t.$$regDuplications[e],2),o=i[0],a=i[1];t.$$fieldChangedQueue.push({name:e,$newValue:a.$getState().$value,$prevValue:o.$getState().$value}),delete t.$$regDuplications[e]}else t.$$registers[e]===r&&(n?r.$$reserved=!0:(delete t.$$registers[e],t.$$fieldChangedQueue.push({name:e,$prevValue:r.$getState().$value}),G(t.$$defaultValues,e)));t.createDeepRegisters(),t.$render()}},t.$$defaultInitialize=function(){var e=t.props,r=e.$defaultValues,n=e.$defaultStates;t.$$defaultValues=t.$$deepParseObject(D(O(r)?r(t.props)||{}:r)),t.$$defaultStates=t.$$deepParseObject(D(O(n)?n(t.props)||{}:n))},t.$$getDefault=function(){return{$$defaultStates:t.$$defaultStates,$$defaultValues:t.$$defaultValues}},t.$$triggerChangeTimer=void 0,t.$$fieldChangedQueue=[],t.$$triggerFormChange=function(){if(t.$$fieldChangedQueue.length){var e=h(t.$$fieldChangedQueue);t.$$fieldChangedQueue.length=0;var r={},n={},i=t.$$registers,o=!1;e.forEach(function(e){if(e.name in i||delete e.$newValue,e.$newValue!==e.$prevValue){if("$newValue"in e&&"$prevValue"in e){var a=t.$$getRegister(e.name);a&&a.$$triggerChange(e)}"$newValue"in e&&R(r,e.name,e.$newValue),"$prevValue"in e&&R(n,e.name,e.$prevValue),o=!0}}),o&&(O(t.props.$validator)&&t.$$formValidate(),O(t.props.$onFormChange)&&t.props.$onFormChange(t.$formutil,r,n))}},t.createDeepRegisters=function(){return t.$$deepRegisters=t.$$deepParseObject(t.$$registers)},t.$$getRegister=function(e){if(e){var r=t.$$registers[e]||R(t.$$deepRegisters,e);if(r)return r}},t.$$formValidate=function(e){return t.$$formValidatePromise=new Promise(function(r){var n,i,o,a,u=(0,t.props.$validator)(t.$formutil.$params,t.formtutil),s=function(t){return r(_(e,_(o,t)))};k(u)?(t.$$formPending||(t.$$formPending=!0,t.$render()),i=function(e){return n=e(s)},a=u.then(function(){},function(e){return e}).then(function(e){return n||(t.$shouldCancelPrevAsyncValidate=null,t.$$formPending=!1,t.$$setFormErrors(e,s))})):(t.$$formPending&&(t.$$formPending=!1),a=t.$$setFormErrors(u,s)),t.$shouldCancelPrevAsyncValidate&&t.$shouldCancelPrevAsyncValidate(function(e){return o=e,a}),t.$shouldCancelPrevAsyncValidate=i})},t.$$setFormErrors=function(e,r){return e&&(e instanceof Error||"object"!==typeof e)?(C(!1,"The result of $validator in should always return None(null,undefined) or an object contains error message of Field."),t.$render(r)):t.$$setStates(e||{},function(e,t){var r=t.$getState().$error,n=void 0===r?{}:r;return e?{$error:u({},n,a({},q,e))}:n[q]?(delete n[q],{$error:n}):void 0},r,!0)},t.$getField=function(e){var r=t.$$getRegister(e);if(C(!e||r,"$getField('".concat(e,"') fail to find the matched Field. Maybe it has been unmounted.")),C(e,"You should pass a name of the mounted Field to $getField()."),r)return r.$new()},t.$$onChange=function(e,r,n){return t.$setStates(a({},e,r),n)},t.$$setStates=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,o=t.$$deepParseObject(e);return H(t.$$registers,function(e,n){var a;if(i||(a=function(e,t){for(var r=t.split(F).map(function(e){return e.trim()}).filter(function(e){return""!==e}),n=0,i=r.length;n1&&void 0!==arguments[1]?arguments[1]:{};return H(e,function(e,r){return R(t,r,e)}),t}},{key:"componentDidMount",value:function(){M(this.props.$ref,this.$formutil)}},{key:"componentDidUpdate",value:function(e){var t=this;M(this.props.$ref,this.$formutil),Q(this.$$triggerChangeTimer),this.$$triggerChangeTimer=Y(function(){t.$$triggerFormChange()})}},{key:"componentWillUnmount",value:function(){M(this.props.$ref,null)}},{key:"_render",value:function(){var e=this.$formutil,r=this.props,n=r.children,i=r.render,o=r.component;return o?t.createElement(o,{$formutil:e}):O(i)?i(e):O(n)?n(e):t.Children.map(n,function(r){return r&&x(r.type)?t.cloneElement(r,{$formutil:e}):r})}},{key:"render",value:function(){var e=this,t=this.props.$processer,n=Object.keys(this.$$registers).map(function(t){return{path:t,$state:e.$$registers[t].$getState()}}),i=L(n,function(e,r){var n=r.path,i=r.$state;t&&t(i,n),"$value"in i&&(i.$dirty||!S(i.$value))&&(e[n]=i.$value)}),o=L(n,function(e,t){var r=t.path;t.$state;return r in i&&R(e,r,i[r])}),a=n.some(function(e){return e.$state.$invalid}),s=n.some(function(e){return e.$state.$dirty}),l=n.some(function(e){return e.$state.$touched}),c=n.some(function(e){return e.$state.$focused}),$=this.$$formPending||n.some(function(e){return e.$state.$pending}),f=this.$formutil={$$registers:u({},this.$$registers),$$deepRegisters:this.$$deepRegisters,$states:L(n,function(e,t){return R(e,t.path,t.$state)}),$params:u({},this.$$defaultValues,o),$errors:L(n,function(e,t){var r=t.path,n=t.$state;n.$invalid&&R(e,r,n.$error)}),$dirts:L(n,function(e,t){return R(e,t.path,t.$state.$dirty)}),$touches:L(n,function(e,t){return R(e,t.path,t.$state.$touched)}),$focuses:L(n,function(e,t){return R(e,t.path,t.$state.$focused)}),$pendings:L(n,function(e,t){return R(e,t.path,t.$state.$pending)}),$weakStates:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n}),$weakParams:i,$weakErrors:L(n,function(e,t){var r=t.path,n=t.$state;n.$invalid&&(e[r]=n.$error)}),$weakDirts:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$dirty}),$weakTouches:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$touched}),$weakFocuses:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$focused}),$weakPendings:L(n,function(e,t){var r=t.path,n=t.$state;return e[r]=n.$pending}),$getFirstError:function(e){if(e){var t=f.$getField(e);return t&&t.$getFirstError()}for(var r in f.$weakErrors){var n=f.$weakErrors[r];for(var i in n)return n[i]instanceof Error?n[i].message:n[i]}},$render:this.$render,$getField:this.$getField,$onValidates:this.$onValidates,$new:function(){return e.$formutil},$setStates:this.$setStates,$setValues:this.$setValues,$setErrors:this.$setErrors,$setTouches:this.$setTouches,$setDirts:this.$setDirts,$setFocuses:this.$setFocuses,$batchState:this.$batchState,$batchTouched:this.$batchTouched,$batchDirty:this.$batchDirty,$batchFocused:this.$batchFocused,$reset:this.$reset,$validates:this.$validates,$validate:this.$validate,$valid:!a,$invalid:a,$dirty:s,$pristine:!s,$touched:l,$untouched:!l,$focused:c,$pending:$};return r.createElement(m.Provider,{value:this.getFormContext()},this._render())}}]),i}();K.displayName="React.Formutil.Form",K.defaultProps={$defaultValues:{},$defaultStates:{}};var W={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},J={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},X={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Z={};function ee(e){return b.isMemo(e)?X:Z[e.$$typeof]||W}Z[b.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var te=Object.defineProperty,re=Object.getOwnPropertyNames,ne=Object.getOwnPropertySymbols,ie=Object.getOwnPropertyDescriptor,oe=Object.getPrototypeOf,ae=Object.prototype;var ue=function e(t,r,n){if("string"!==typeof r){if(ae){var i=oe(r);i&&i!==ae&&e(t,i,n)}var o=re(r);ne&&(o=o.concat(ne(r)));for(var a=ee(t),u=ee(r),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},i=t.forwardRef(function(t,i){var o=Object.assign({},t),a=(t.component,$(t,["component"]));return["$defaultStates","$defaultValues","$onFormChange","$validator","$processer","$ref"].forEach(function(e){e in o&&("$defaultStates"!==e&&"$defaultValues"!==e||(a[e]=u({},n[e],o[e])),delete o[e])}),r.createElement(K,Object.assign({},n,a,{render:function(t){return r.createElement(e,Object.assign({},o,{$formutil:t,ref:i}))}}))});return i.displayName="React.Formutil.withForm."+(e.displayName||e.name||"Anonymous"),ue(i,e)}),le=0,ce={$valid:!0,$invalid:!1,$dirty:!1,$pristine:!0,$touched:!1,$untouched:!0,$focused:!1,$pending:!1,$error:{}};function $e(e){return!0!==e}function fe(e,t,r){C(!S(e),"You should return a string or Error when the validation('".concat(r&&r+": ").concat(t,"') failed, otherwise return true."))}function de(){return le++}function pe(e,t){var r;function n(t){var r,n=e.props,i=e.$formContext;if(i.$$getDefault){var o=n.name,a=i.$$getDefault(),s=a.$$defaultStates,l=a.$$defaultValues;if(o&&l){var $=R(l,o);r=R(s,o)||{},S($)||(r.$value=$)}}var f=n.$defaultValue,d=n.$defaultState;return c(u({},ce,O(d)?d(n):d,{$value:O(f)?f(n):"$defaultValue"in n?f:""},r,t))}function i(){return u({},e.$state)}function o(t){return r=new Promise(function(r){var n,i,o,c,$=e.props,f=e.$formContext,d=u({},$.$validators,$.$asyncValidators),p=e.$state,h=p.$value,m=p.$pending,v=Object.assign({},p.$error),g=f.$formutil,y={},b=!1;delete v[q];var w=Object.keys(d).reduce(function(t,r){if(delete v[r],!b&&null!=$[r]){var i=d[r](h,$[r],u({},$,{$formutil:g,$fieldutil:e.$fieldutil,$validError:y}));k(i)?t.push(i.catch(function(e){n||s(r,e||r)})):$e(i)&&(y[r]=i||r,fe(i,r,$.name),$.$validateLazy&&(b=!0))}return t},[]),C=function(e){return r(_(t,_(o,e)))};w.length?(m||l(!0),i=function(e){return n=e(C)},w.push(a(u({},v,y))),c=Promise.all(w).then(function(){return n||(e.$shouldCancelPrevAsyncValidate=null,l(!1,C))})):(m&&l(!1),c=a(u({},v,y),C)),e.$shouldCancelPrevAsyncValidate&&e.$shouldCancelPrevAsyncValidate(function(e){return o=e,c}),e.$shouldCancelPrevAsyncValidate=i})}function a(t,r){return e.$setState({$error:t},r)}function s(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,i=Object.assign({},e.$state.$error);return $e(r)?(i[t]=r||t,fe(r,t,e.props.name)):delete i[t],a(i,n)}function l(t,r){return e.$setState({$pending:t},r)}function c(t){var r=Object.assign({},t);"$error"in r&&(r.$error||(r.$error={}),r.$valid=0===Object.keys(r.$error).length);var n=e.props,o=n.$parser,a=n.$formatter;if("$viewValue"in r&&!("$value"in r)){r.$value=o?o(r.$viewValue,function(e){return r.$viewValue=e}):r.$viewValue}else if("$value"in r&&!("$viewValue"in r)){r.$viewValue=a?a(r.$value,function(e){return r.$value=e}):r.$value}return"$valid"in r?r.$invalid=!r.$valid:"$invalid"in r&&(r.$dirty=!r.$invalid),"$dirty"in r?r.$pristine=!r.$dirty:"$pristine"in r&&(r.$dirty=!r.$pristine),"$touched"in r?r.$untouched=!r.$touched:"$untouched"in r&&(r.$touched=!r.$untouched),e.$state=u({},e.$state,r),i()}return{$$FIELD_UUID:e.$$FIELD_UUID,$$reset:n,$$merge:c,$$detectChange:function(e){("$value"in e||"$viewValue"in e)&&o()},$$triggerChange:function(t){var r=t.$newValue,n=t.$prevValue,i=e.props.$onFieldChange;O(i)&&i(r,n,e.$formContext.$formutil)},$onValidate:function(e){return r.then(e),r},$new:function(){return e.$fieldutil},$picker:i,$getState:i,$getComponent:function(){return t},$reset:function(t,r){return e.$setState(n(t),r)},$getFirstError:function(){var t=e.$state.$error,r=void 0===t?{}:t;for(var n in r)return r[n]instanceof Error?r[n].message:r[n]},$validate:o,$setState:e.$setState,$render:function(t,r){return e.$setState({$viewValue:t,$dirty:!0},r)},$setValue:function(t,r){return e.$setState({$value:t},r)},$setTouched:function(t,r){return e.$setState({$touched:t},r)},$setDirty:function(t,r){return e.$setState({$dirty:t},r)},$setFocused:function(t,r){return e.$setState({$focused:t},r)},$setValidity:s,$setError:a,$setPending:l}}var he=function(e){function i(){var e,t;n(this,i);for(var r=arguments.length,o=new Array(r),a=0;a with the name '".concat(e,"' must be used underneath a component or withForm() HOC, otherwise it's isolated.")),C(e,"You should assign a name to , otherwise it will be isolated!"),t.$$register&&t.$$register(e,this.$fieldHandler),this.$prevValue=this.$state.$value,M(this.props.$ref,this.$fieldutil)}},{key:"componentWillUnmount",value:function(){this.$formContext.$$unregister&&this.$formContext.$$unregister(this.props.name,this.$fieldHandler,this.props.$reserveOnUnmount),this.isMounting=!1,M(this.props.$ref,null)}},{key:"componentDidUpdate",value:function(e){var t=this.props.name;t!==e.name&&this.$formContext.$$register&&this.$formContext.$$register(t,this.$fieldHandler,e.name),M(this.props.$ref,this.$fieldutil),this.$state.$value!==this.$prevValue&&(t in(this.$formContext.$$registers||{})||this.$registered.$$triggerChange({$newValue:this.$state.$value,$prevValue:this.$prevValue}),this.$prevValue=this.$state.$value)}},{key:"_render",value:function(){return function(e,r){var n=r.children,i=r.render,o=r.component;return o?t.createElement(o,{$fieldutil:e}):O(i)?i(e):O(n)?n(e):t.Children.map(n,function(r){return r&&x(r.type)?t.cloneElement(r,{$fieldutil:e}):r})}(this.$fieldutil=u({$name:this.props.name},this.$registered.$getState(),this.$registered,{$$formutil:this.$formContext.$formutil}),this.props)}},{key:"render",value:function(){var e=this,t=!this.$formContext;return r.createElement(m.Consumer,null,function(r){return e.$formContext=r,e.$fieldHandler||(e.$fieldHandler=pe(e,e)),e.$registered=(r.$$registers||{})[e.$fieldHandler.$name]||e.$fieldHandler,t&&(e.$fieldHandler.$$reset(),e.$fieldHandler.$validate()),e._render()})}}]),i}();he.displayName="React.Formutil.Field";var me=A(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.forwardRef(function(t,i){var o=Object.assign({},t),a=(t.component,$(t,["component"]));return["$validators","$asyncValidators","$validateLazy","$reserveOnUnmount","$defaultValue","$defaultState","$onFieldChange","$parser","$formatter","$ref","name"].concat(Object.keys(u({},n.$validators,n.$asyncValidators,o.$validators,o.$asyncValidators))).forEach(function(e){e in o&&("$validators"!==e&&"$asyncValidators"!==e&&"$defaultState"!==e||(a[e]=u({},n[e],o[e])),delete o[e])}),r.createElement(he,Object.assign({},n,a,{render:function(t){return r.createElement(e,Object.assign({},o,{$fieldutil:t,ref:i}))}}))});return i.displayName="React.Formutil.withField."+(e.displayName||e.name||"Anonymous"),ue(i,e)}),ve=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"render",value:function(){var e=this,t=this.props,n=(t.$fieldutil,t.value),i=t.onChange,o=t.onFocus,a=t.onBlur,u=t.checked,s=t.unchecked,l=$(t,["$fieldutil","value","onChange","onFocus","onBlur","checked","unchecked"]),c=this.props.type,f={value:"compositionValue"in this?this.compositionValue:n,onCompositionEnd:function(t){e.composition=!1,delete e.compositionValue,f.onChange(t)},onCompositionStart:function(){return e.composition=!0},onChange:function(t){var r=t.target.value;e.composition?(e.compositionValue=r,e.forceUpdate()):i(r,t)},onFocus:o,onBlur:a},d="input";switch(c){case"select":d=c,f.onChange=function(e){var t=e.target,r=t.multiple?[].slice.call(t.options).filter(function(e){return e.selected}).map(function(e){return e.value}):t.value;i(r,e)},delete l.type;break;case"textarea":d=c,delete l.type;break;case"checkbox":case"radio":f={checked:n===u,onChange:function(e){i(e.target.checked?u:s,e)},onFocus:o,onBlur:a}}return r.createElement(d,Object.assign({},l,f))}}]),i}();ve.displayName="React.Formutil.EasyField.Native",ve.defaultProps={value:"",type:"text",checked:!0,unchecked:!1};var ge=t.createContext({}),ye=ge.Provider,be=ge.Consumer,we=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"getGroupContext",value:function(){return this.props}},{key:"_render",value:function(){var e=this.props,n=e.className,i=e.groupNode,o=e.children,a={GroupOption:Ce,Field:Ve},u=O(o)?o(a):t.Children.map(o,function(e){return t.cloneElement(e,a)});return null===i?u:r.createElement(i,{className:n},u)}},{key:"render",value:function(){return r.createElement(ye,{value:this.getGroupContext()},this._render())}}]),i}();we.displayName="React.Formutil.EasyField.Group",we.defaultProps={type:"checkbox",groupNode:"div"};var Ce=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"componentDidMount",value:function(){C("$value"in this.props,"You should pass a $value to .")}},{key:"render",value:function(){var e=this.props,t=e.$value,n=e.onChange,i=e.onFocus,o=e.onBlur,a=$(e,["$value","onChange","onFocus","onBlur"]);return r.createElement(be,null,function(e){var u=e.type,s=e.name,l="radio"===u?{checked:e.value===t,onChange:function(r){e.onChange(t,r),n&&n(r)}}:"checkbox"===u?{checked:e.value.indexOf(t)>-1,onChange:function(r){e.onChange(r.target.checked?e.value.concat(t):e.value.filter(function(e){return e!==t}),r),n&&n(r)}}:{value:e.value,onChange:function(t){e.onChange(t),n&&n(t)}};return r.createElement("input",Object.assign({name:s},a,l,{type:u,onFocus:function(t){e.onFocus(t),i&&i(t)},onBlur:function(t){e.onBlur(t),o&&o(t)}}))})}}]),i}();Ce.displayName="React.Formutil.EasyField.Group.Option";var Ve=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"componentDidMount",value:function(){C(!1,'The "Field" property in EasyField\'s children-props has been deprecated. Please use "GroupOption" instead.')}},{key:"render",value:function(){return r.createElement(Ce,this.props)}}]),i}();Ve.displayName="React.Formutil.EasyField.Group.Option.Deprecated";var Fe=Array.isArray,Pe=Object.keys,Se=Object.prototype.hasOwnProperty,Oe="undefined"!==typeof Element;var Ee=function(e,t){try{return function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){var n,i,o,a=Fe(t),u=Fe(r);if(a&&u){if((i=t.length)!=r.length)return!1;for(n=i;0!==n--;)if(!e(t[n],r[n]))return!1;return!0}if(a!=u)return!1;var s=t instanceof Date,l=r instanceof Date;if(s!=l)return!1;if(s&&l)return t.getTime()==r.getTime();var c=t instanceof RegExp,$=r instanceof RegExp;if(c!=$)return!1;if(c&&$)return t.toString()==r.toString();var f=Pe(t);if((i=f.length)!==Pe(r).length)return!1;for(n=i;0!==n--;)if(!Se.call(r,f[n]))return!1;if(Oe&&t instanceof Element&&r instanceof Element)return t===r;for(n=i;0!==n--;)if(("_owner"!==(o=f[n])||!t.$$typeof)&&!e(t[o],r[o]))return!1;return!0}return t!==t&&r!==r}(e,t)}catch(e){if(e.message&&e.message.match(/stack|recursion/i)||-2146828260===e.number)return console.warn("Warning: react-fast-compare does not handle circular references.",e.name,e.message),!1;throw e}},ke=r.Frament||"div",je=function(e){function i(e){var t;return n(this,i),(t=d(this,l(i).call(this,e))).id=0,t.latestValue=t.props.value,t.$formutil=void 0,t.FieldValidators={required:function(e){return null!==e}},t.$onFormChange=function(e){e.$onValidates(function(e){var r=e.$invalid,n=e.$params;r?t.props.value.length&&t.props.onChange(t.latestValue=[]):Ee(t.props.value,n.list)||t.props.onChange(t.latestValue=n.list)})},t.swap=function(e,r,n){return t.$setState(function(t){var n=t.items,i=[n[e],n[r]];return n[r]=i[0],n[e]=i[1],n},n)},t.insert=function(){for(var e,r,n,i=arguments.length,o=new Array(i),a=0;a=t}],["max",function(e,t){return E(e)||1*e<=t}],["min",function(e,t){return E(e)||1*e>=t}],["pattern",function(e,t){return E(e)||t.test(e)}],["enum",function(e,t){return E(e)||t.indexOf(e)>-1}],["checker",function(e,t,r){return t(e,r)}]].reduce(function(e,t){var r=p(t,2),n=r[0],i=r[1];return e[n]=function(e,t,r){var o=r.validMessage,a=void 0===o?{}:o;return i.apply(void 0,arguments)||a[n]||"Error input: ".concat(n)},e},{}),_e={validMessage:{},valuePropName:"value",changePropName:"onChange",focusPropName:"onFocus",blurPropName:"onBlur",$parser:function(e){return"string"===typeof e?e.trim():e}};function Ae(e,t,r){var n,i=t.valuePropName,o=t.changePropName,s=t.focusPropName,l=t.blurPropName,c=t.passUtil,$=u({},r,(a(n={},i,e.$viewValue),a(n,o,function(){for(var r=arguments.length,n=new Array(r),a=0;a-1}(e)||delete l[e])}),f){var d=p((a||"").split("."),2),h=d[0],m=void 0===h?"text":h,v=d[1];switch(c.component="group"===m?we:"list"===m?je:ve,o&&(l.name=o),a&&(l.type=m),t&&(l.children=t),m){case"select":case"textarea":e.multiple&&(i[xe]="array");break;case"group":"checkbox"===v&&(i[xe]="array"),l.type=v;break;case"checkbox":case"radio":i[xe]="checked";break;case"list":i[xe]="array"}}if(!("$defaultValue"in i)&&"defaultValue"in e&&(i.$defaultValue=s),!("$defaultValue"in i)&&xe in i){var g;switch(i[xe]){case"checked":var y=i.unchecked;g=void 0!==y&&y;break;case"array":g=[];break;case"object":g={};break;case"number":g=0}i.$defaultValue=g}return{fieldProps:i,childProps:l,renderProps:c}}var Ne=function(e){function i(){return n(this,i),d(this,l(i).apply(this,arguments))}return s(i,t.Component),o(i,[{key:"render",value:function(){var e=Te(this.props),n=e.fieldProps,i=e.childProps,o=e.renderProps;return r.createElement(he,Object.assign({},n,{children:function(e){return function(e,r){var n=r.component,i=r.render,o=r.children;return n?t.createElement(n,e):O(i)?i(e):O(o)?o(e):t.Children.map(o,function(r){return t.cloneElement(r,e)})}(Ae(e,n,i),o)}}))}}]),i}();function Re(){if(!r.useState)throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.");return(0,r.useContext)(m)}function Me(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.useState)throw new Error("Hooks api need react@>=16.8, Please upgrade your reactjs.");var n,i=r.useState,o=r.useLayoutEffect,a=r.useRef;e&&("string"===typeof e?(n=e,t.name=n):n=(t=e).name);var s,l=Re(),c=a({}).current,$=a([]);c.$formContext=l,c.props=t,c.$setState=function(e,t){return new Promise(function(r){var i=function(){return r(_(t,c.$fieldutil))};c.isMounting?n in(l.$$registers||{})?l.$$onChange(n,e,i):(f(s.$$merge(e)),s.$$detectChange(e),$.current.push(i)):(s.$$merge(e),i())})};var f=p(i(function(){c.$$FIELD_UUID=de(),c.$fieldHandler=s=pe(c);var e=c.$fieldHandler.$$reset();return c.$fieldHandler.$validate(),e}),2)[1];return s||(s=(l.$$registers||{})[c.$fieldHandler.$name]||c.$fieldHandler),o(function(){var e=c.$state;if(c.isMounting&&!(n in(l.$$registers||{}))){var t=c.$prevValue;s.$$triggerChange({$newValue:e.$value,$prevValue:t})}c.$prevValue=e.$value},[c.$state.$value]),o(function(){return c.isMounting=!0,C(!n||l.$formutil,"You should enusre that the useField() with the name '".concat(n,"' must be used underneath a component or withForm() HOC, otherwise it's isolated.")),C(n,"You should pass a name argument to useField(), otherwise it will be isolated!"),function(){c.isMounting=!1,M(t.$ref,null)}},[]),o(function(){return l.$$register&&l.$$register(n,c.$fieldHandler),function(){l.$$unregister&&l.$$unregister(n,c.$fieldHandler,!c.isMounting&&t.$reserveOnUnmount)}},[n]),o(function(){M(t.$ref,c.$fieldutil)}),o(function(){if($.current.length>0){var e=h($.current);for($.current.length=0;e.length;)e.pop()(c.$fieldutil)}}),c.$fieldutil=u({$name:n},s.$getState(),s,{$$formutil:l.$formutil})}Ne.displayName="React.Formutil.EasyField",Ne.defaultProps=_e,e.EasyField=Ne,e.Field=he,e.Form=K,e.connect=function(e){var n=t.forwardRef(function(t,n){return r.createElement(m.Consumer,null,function(i){return r.createElement(e,Object.assign({},t,{$formutil:i.$formutil,ref:n}))})});return n.displayName="React.Formutil.connect."+(e.displayName||e.name||"Anonymous"),ue(n,e)},e.useField=Me,e.useForm=function(){return Re().$formutil},e.useHandler=function(e){var t=Te(e=u({},_e,e,{children:null})),r=t.fieldProps,n=t.childProps;return Ae(Me(r),r,n)},e.withField=me,e.withForm=se,Object.defineProperty(e,"__esModule",{value:!0})}); diff --git a/package.json b/package.json index 6a653a5..74395a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-formutil", - "version": "0.6.6", + "version": "0.6.7", "description": "Happy to build the forms in React ^_^", "main": "dist/index.cjs.js", "module": "dist/index.esm.js", diff --git a/src/Form.js b/src/Form.js index c2ad16d..66f6356 100644 --- a/src/Form.js +++ b/src/Form.js @@ -349,10 +349,10 @@ class Form extends Component { const $parsedTree = this.$$deepParseObject($stateTree); utils.objectEach(this.$$registers, (handler, name) => { - const data = name in $stateTree ? $stateTree[name] : utils.parsePath($parsedTree, name); + let pathData; - if (!utils.isUndefined(data) || force) { - const $newState = processer(data, handler); + if (force || (pathData = utils.pathExist($parsedTree, name))) { + const $newState = processer(pathData && pathData.data, handler); if ($newState) { const $prevValue = this.$formutil.$weakParams[name]; diff --git a/src/utils.js b/src/utils.js index bdcd7b2..e524d6e 100644 --- a/src/utils.js +++ b/src/utils.js @@ -184,6 +184,27 @@ export function parsePath(...args) { } } +export function pathExist(scope, path) { + const pathWords = path + .split(PATH_REGEXP) + .map(s => s.trim()) + .filter(item => item !== ''); + + for (let index = 0, len = pathWords.length; index < len; index++) { + const word = executeWord(pathWords[index]); + + if (word in scope) { + if (index + 1 === len) { + return { + data: scope[word] + }; + } + + scope = scope[word]; + } + } +} + export function createRef(ref, value) { if (ref) { if (isFunction(ref)) {