{"version":3,"file":"chunk-klb-pay24.js","sources":["../node_modules/@rc-component/color-picker/es/color.js","../node_modules/@rc-component/color-picker/es/util.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/async-validator/es/messages.js","../node_modules/@rc-component/async-validator/es/util.js","../node_modules/@rc-component/async-validator/es/rule/enum.js","../node_modules/@rc-component/async-validator/es/rule/pattern.js","../node_modules/@rc-component/async-validator/es/rule/range.js","../node_modules/@rc-component/async-validator/es/rule/required.js","../node_modules/@rc-component/async-validator/es/rule/url.js","../node_modules/@rc-component/async-validator/es/rule/type.js","../node_modules/@rc-component/async-validator/es/rule/whitespace.js","../node_modules/@rc-component/async-validator/es/rule/index.js","../node_modules/@rc-component/async-validator/es/validator/any.js","../node_modules/@rc-component/async-validator/es/validator/array.js","../node_modules/@rc-component/async-validator/es/validator/boolean.js","../node_modules/@rc-component/async-validator/es/validator/date.js","../node_modules/@rc-component/async-validator/es/validator/enum.js","../node_modules/@rc-component/async-validator/es/validator/float.js","../node_modules/@rc-component/async-validator/es/validator/integer.js","../node_modules/@rc-component/async-validator/es/validator/method.js","../node_modules/@rc-component/async-validator/es/validator/number.js","../node_modules/@rc-component/async-validator/es/validator/object.js","../node_modules/@rc-component/async-validator/es/validator/pattern.js","../node_modules/@rc-component/async-validator/es/validator/regexp.js","../node_modules/@rc-component/async-validator/es/validator/required.js","../node_modules/@rc-component/async-validator/es/validator/string.js","../node_modules/@rc-component/async-validator/es/validator/type.js","../node_modules/@rc-component/async-validator/es/validator/index.js","../node_modules/@rc-component/async-validator/es/index.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js"],"sourcesContent":["import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n _excluded2 = [\"v\"];\nimport { FastColor } from '@ant-design/fast-color';\nexport var getRoundNumber = function getRoundNumber(value) {\n return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n if (color instanceof FastColor) {\n return color;\n }\n if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n var _ref = color,\n b = _ref.b,\n resets = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, resets), {}, {\n v: b\n });\n }\n if (typeof color === 'string' && /hsb/.test(color)) {\n return color.replace(/hsb/, 'hsv');\n }\n return color;\n};\nexport var Color = /*#__PURE__*/function (_FastColor) {\n _inherits(Color, _FastColor);\n var _super = _createSuper(Color);\n function Color(color) {\n _classCallCheck(this, Color);\n return _super.call(this, convertHsb2Hsv(color));\n }\n _createClass(Color, [{\n key: \"toHsbString\",\n value: function toHsbString() {\n var hsb = this.toHsb();\n var saturation = getRoundNumber(hsb.s * 100);\n var lightness = getRoundNumber(hsb.b * 100);\n var hue = getRoundNumber(hsb.h);\n var alpha = hsb.a;\n var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n return alpha === 1 ? hsbString : hsbaString;\n }\n }, {\n key: \"toHsb\",\n value: function toHsb() {\n var _this$toHsv = this.toHsv(),\n v = _this$toHsv.v,\n resets = _objectWithoutProperties(_this$toHsv, _excluded2);\n return _objectSpread(_objectSpread({}, resets), {}, {\n b: v,\n a: this.a\n });\n }\n }]);\n return Color;\n}(FastColor);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n if (color instanceof Color) {\n return color;\n }\n return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n color = props.color,\n type = props.type;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var saturation = (offset.x + centerOffsetX) / width;\n var bright = 1 - (offset.y + centerOffsetY) / height;\n var hsb = color.toHsb();\n var alphaOffset = saturation;\n var hueOffset = (offset.x + centerOffsetX) / width * 360;\n if (type) {\n switch (type) {\n case 'hue':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n h: hueOffset <= 0 ? 0 : hueOffset\n }));\n case 'alpha':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n a: alphaOffset <= 0 ? 0 : alphaOffset\n }));\n }\n }\n return generateColor({\n h: hsb.h,\n s: saturation <= 0 ? 0 : saturation,\n b: bright >= 1 ? 1 : bright,\n a: hsb.a\n });\n};\nexport var calcOffset = function calcOffset(color, type) {\n var hsb = color.toHsb();\n switch (type) {\n case 'hue':\n return {\n x: hsb.h / 360 * 100,\n y: 50\n };\n case 'alpha':\n return {\n x: color.a * 100,\n y: 50\n };\n\n // Picker panel\n default:\n return {\n x: hsb.s * 100,\n y: (1 - hsb.b) * 100\n };\n }\n};","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","export function newMessages() {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nexport var messages = newMessages();","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _wrapNativeSuper from \"@babel/runtime/helpers/esm/wrapNativeSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\nexport function convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nexport function format(template) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var i = 0;\n var len = args.length;\n if (typeof template === 'function') {\n // eslint-disable-next-line prefer-spread\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n var str = template.replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\nexport function isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n function count(errors) {\n results.push.apply(results, _toConsumableArray(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n arr.forEach(function (a) {\n func(a, count);\n });\n}\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n next([]);\n}\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, _toConsumableArray(objArr[k] || []));\n });\n return ret;\n}\nexport var AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inherits(AsyncValidationError, _Error);\n var _super = _createSuper(AsyncValidationError);\n function AsyncValidationError(errors, fields) {\n var _this;\n _classCallCheck(this, AsyncValidationError);\n _this = _super.call(this, 'Async Validation Error');\n _defineProperty(_assertThisInitialized(_this), \"errors\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"fields\", void 0);\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n return _createClass(AsyncValidationError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport function asyncMap(objArr, option, func, callback, source) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n };\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n _pending.catch(function (e) {\n return e;\n });\n return _pending;\n }\n var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n // eslint-disable-next-line prefer-spread\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(function (e) {\n return e;\n });\n return pending;\n}\nfunction isErrorObj(obj) {\n return !!(obj && obj.message !== undefined);\n}\nfunction getValue(value, path) {\n var v = value;\n for (var i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\nexport function complementError(rule, source) {\n return function (oe) {\n var fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[oe.field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue: fieldValue,\n field: oe.field || rule.fullField\n };\n };\n}\nexport function deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if (_typeof(value) === 'object' && _typeof(target[s]) === 'object') {\n target[s] = _objectSpread(_objectSpread({}, target[s]), value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}","import { format } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n};\nexport default enumerable;","import { format } from \"../util\";\nvar pattern = function pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n};\nexport default pattern;","import { format } from \"../util\";\nvar range = function range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n};\nexport default range;","import { format, isEmptyValue } from \"../util\";\nvar required = function required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\nexport default required;","// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nexport default (function () {\n if (urlReg) {\n return urlReg;\n }\n var word = '[a-fA-F\\\\d:]';\n var b = function b(options) {\n return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\".concat(word, \")|(?<=\").concat(word, \")(?=\\\\s|$))\") : '';\n };\n var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n var v6seg = '[a-fA-F\\\\d]{1,4}';\n var v6List = [\"(?:\".concat(v6seg, \":){7}(?:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n \"(?:\".concat(v6seg, \":){6}(?:\").concat(v4, \"|:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::\n \"(?:\".concat(v6seg, \":){5}(?::\").concat(v4, \"|(?::\").concat(v6seg, \"){1,2}|:)\"), // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::\n \"(?:\".concat(v6seg, \":){4}(?:(?::\").concat(v6seg, \"){0,1}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,3}|:)\"), // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::\n \"(?:\".concat(v6seg, \":){3}(?:(?::\").concat(v6seg, \"){0,2}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,4}|:)\"), // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::\n \"(?:\".concat(v6seg, \":){2}(?:(?::\").concat(v6seg, \"){0,3}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,5}|:)\"), // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::\n \"(?:\".concat(v6seg, \":){1}(?:(?::\").concat(v6seg, \"){0,4}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,6}|:)\"), // 1:: 1::3:4:5:6:7:8 1::8 1::\n \"(?::(?:(?::\".concat(v6seg, \"){0,5}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,7}|:))\") // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::\n ];\n var v6Eth0 = \"(?:%[0-9a-zA-Z]{1,})?\"; // %eth0 %1\n\n var v6 = \"(?:\".concat(v6List.join('|'), \")\").concat(v6Eth0);\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n var v46Exact = new RegExp(\"(?:^\".concat(v4, \"$)|(?:^\").concat(v6, \"$)\"));\n var v4exact = new RegExp(\"^\".concat(v4, \"$\"));\n var v6exact = new RegExp(\"^\".concat(v6, \"$\"));\n var ip = function ip(options) {\n return options && options.exact ? v46Exact : new RegExp(\"(?:\".concat(b(options)).concat(v4).concat(b(options), \")|(?:\").concat(b(options)).concat(v6).concat(b(options), \")\"), 'g');\n };\n ip.v4 = function (options) {\n return options && options.exact ? v4exact : new RegExp(\"\".concat(b(options)).concat(v4).concat(b(options)), 'g');\n };\n ip.v6 = function (options) {\n return options && options.exact ? v6exact : new RegExp(\"\".concat(b(options)).concat(v6).concat(b(options)), 'g');\n };\n var protocol = \"(?:(?:[a-z]+:)?//)\";\n var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n var ipv4 = ip.v4().source;\n var ipv6 = ip.v6().source;\n var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n var port = '(?::\\\\d{2,5})?';\n var path = '(?:[/?#][^\\\\s\"]*)?';\n var regex = \"(?:\".concat(protocol, \"|www\\\\.)\").concat(auth, \"(?:localhost|\").concat(ipv4, \"|\").concat(ipv6, \"|\").concat(host).concat(domain).concat(tld, \")\").concat(port).concat(path);\n urlReg = new RegExp(\"(?:^\".concat(regex, \"$)\"), 'i');\n return urlReg;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { format } from \"../util\";\nimport required from \"./required\";\nimport getUrlRegex from \"./url\";\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return _typeof(value) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && value.length <= 320 && !!value.match(pattern.email);\n },\n url: function url(value) {\n return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\nvar type = function type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && _typeof(value) !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n};\nexport default type;","import { format } from \"../util\";\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\nexport default whitespace;","import enumRule from \"./enum\";\nimport pattern from \"./pattern\";\nimport range from \"./range\";\nimport required from \"./required\";\nimport type from \"./type\";\nimport whitespace from \"./whitespace\";\nexport default {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n enum: enumRule,\n pattern: pattern\n};","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar any = function any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\nexport default any;","import rules from \"../rule/index\";\nvar array = function array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default array;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar boolean = function boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default boolean;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar date = function date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\nexport default date;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default enumerable;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default floatFn;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar integer = function integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default integer;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar method = function method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default method;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar number = function number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n // eslint-disable-next-line no-param-reassign\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default number;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar object = function object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default object;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar pattern = function pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default pattern;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar regexp = function regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default regexp;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport rules from \"../rule\";\nvar required = function required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : _typeof(value);\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\nexport default required;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar string = function string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\nexport default string;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar type = function type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default type;","import any from \"./any\";\nimport array from \"./array\";\nimport boolean from \"./boolean\";\nimport date from \"./date\";\nimport enumValidator from \"./enum\";\nimport float from \"./float\";\nimport integer from \"./integer\";\nimport method from \"./method\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport pattern from \"./pattern\";\nimport regexp from \"./regexp\";\nimport required from \"./required\";\nimport string from \"./string\";\nimport type from \"./type\";\nexport default {\n string: string,\n method: method,\n number: number,\n boolean: boolean,\n regexp: regexp,\n integer: integer,\n float: float,\n array: array,\n object: object,\n enum: enumValidator,\n pattern: pattern,\n date: date,\n url: type,\n hex: type,\n email: type,\n required: required,\n any: any\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { messages as defaultMessages, newMessages } from \"./messages\";\nimport { asyncMap, complementError, convertFieldsError, deepMerge, format, warning } from \"./util\";\nimport validators from \"./validator/index\";\nexport * from \"./interface\";\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nvar Schema = /*#__PURE__*/function () {\n function Schema(descriptor) {\n _classCallCheck(this, Schema);\n // ======================== Instance ========================\n _defineProperty(this, \"rules\", null);\n _defineProperty(this, \"_messages\", defaultMessages);\n this.define(descriptor);\n }\n _createClass(Schema, [{\n key: \"define\",\n value: function define(rules) {\n var _this = this;\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (_typeof(rules) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n Object.keys(rules).forEach(function (name) {\n var item = rules[name];\n _this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n }, {\n key: \"messages\",\n value: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n return this._messages;\n }\n }, {\n key: \"validate\",\n value: function validate(source_) {\n var _this2 = this;\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n function complete(results) {\n var errors = [];\n var fields = {};\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n errors = (_errors = errors).concat.apply(_errors, _toConsumableArray(e));\n } else {\n errors.push(e);\n }\n }\n for (var i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n callback(errors, fields);\n }\n }\n if (options.messages) {\n var messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n var arr = _this2.rules[z];\n var value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _objectSpread({}, source);\n }\n value = source[z] = rule.transform(value);\n if (value !== undefined && value !== null) {\n rule.type = rule.type || (Array.isArray(value) ? 'array' : _typeof(value));\n }\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _objectSpread({}, rule);\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = _this2.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this2.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullField(key, schema) {\n return _objectSpread(_objectSpread({}, schema), {}, {\n fullField: \"\".concat(rule.fullField, \".\").concat(key),\n fullFields: rule.fullFields ? [].concat(_toConsumableArray(rule.fullFields), [key]) : [key]\n });\n }\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n var filledErrors = errorList.map(complementError(rule, source));\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = [].concat(rule.message).map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n return doIt(filledErrors);\n }\n var fieldsSchema = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(function (key) {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = _objectSpread(_objectSpread({}, fieldsSchema), data.rule.fields);\n var paredFieldsSchema = {};\n Object.keys(fieldsSchema).forEach(function (field) {\n var fieldSchema = fieldsSchema[field];\n var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n });\n var schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push.apply(finalErrors, _toConsumableArray(filledErrors));\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, _toConsumableArray(errs));\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n var res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n var _console$error, _console;\n (_console$error = (_console = console).error) === null || _console$error === void 0 || _console$error.call(_console, error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || \"\".concat(rule.fullField || rule.field, \" fails\"));\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n }, source);\n }\n }, {\n key: \"getType\",\n value: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n }, {\n key: \"getValidationMethod\",\n value: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n }]);\n return Schema;\n}();\n// ========================= Static =========================\n_defineProperty(Schema, \"register\", function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n validators[type] = validator;\n});\n_defineProperty(Schema, \"warning\", warning);\n_defineProperty(Schema, \"messages\", defaultMessages);\n_defineProperty(Schema, \"validators\", validators);\nexport default Schema;","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n arrow = props.arrow,\n arrowPos = props.arrowPos;\n var _ref = arrow || {},\n className = _ref.className,\n content = _ref.content;\n var _arrowPos$x = arrowPos.x,\n x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n _arrowPos$y = arrowPos.y,\n y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = y;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = x;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n style: alignStyle\n }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/React.createElement(PopupContent, {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, children.ref);\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY,\n overflow = _getWin$getComputedSt.overflow;\n if ([overflowX, overflowY, overflow].some(function (o) {\n return scrollStyle.includes(o);\n })) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n * **************************************\n * * Border *\n * * ************************** *\n * * * * * *\n * * B * * S * B *\n * * o * * c * o *\n * * r * Content * r * r *\n * * d * * o * d *\n * * e * * l * e *\n * * r ******************** l * r *\n * * * Scroll * *\n * * ************************** *\n * * Border *\n * **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n overflow = _getWin$getComputedSt2.overflow,\n overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var borderTopNum = getPxValue(borderTopWidth);\n var borderBottomNum = getPxValue(borderBottomWidth);\n var borderLeftNum = getPxValue(borderLeftWidth);\n var borderRightNum = getPxValue(borderRightWidth);\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n // Original visible area\n var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n // Cut border size\n var scaledBorderTopWidth = borderTopNum * scaleY;\n var scaledBorderBottomWidth = borderBottomNum * scaleY;\n var scaledBorderLeftWidth = borderLeftNum * scaleX;\n var scaledBorderRightWidth = borderRightNum * scaleX;\n\n // Clip margin\n var clipMarginWidth = 0;\n var clipMarginHeight = 0;\n if (overflow === 'clip') {\n var clipNum = getPxValue(overflowClipMargin);\n clipMarginWidth = clipNum * scaleX;\n clipMarginHeight = clipNum * scaleY;\n }\n\n // Region\n var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleLeft);\n visibleArea.top = Math.max(visibleArea.top, eleTop);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var _rect$x, _rect$y;\n var rect = target.getBoundingClientRect();\n rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = _slicedToArray(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n if (_scaleX === 1) {\n nextOffsetX = Math.round(nextOffsetX);\n offsetX4Right = Math.round(offsetX4Right);\n }\n if (_scaleY === 1) {\n nextOffsetY = Math.round(nextOffsetY);\n offsetY4Bottom = Math.round(offsetY4Bottom);\n }\n var nextOffsetInfo = {\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n };\n setOffsetInfo(nextOffsetInfo);\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n onScroll();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","import { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = React.useRef(open);\n openRef.current = open;\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onTriggerClose = function onTriggerClose(e) {\n var _e$composedPath;\n if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target)) {\n triggerOpen(false);\n }\n };\n var win = getWin(popupEle);\n win.addEventListener('mousedown', onTriggerClose, true);\n win.addEventListener('contextmenu', onTriggerClose, true);\n\n // shadow root\n var targetShadowRoot = getShadowRoot(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('mousedown', onTriggerClose, true);\n win.removeEventListener('contextmenu', onTriggerClose, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n\n // Used for forwardRef popup. Not use internal\n var externalPopupRef = React.useRef(null);\n var setPopupRef = useEvent(function (node) {\n externalPopupRef.current = node;\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = React.useRef(null);\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = React.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = useEvent(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n useLayoutEffect(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState(null),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n popupElement: externalPopupRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n var Context = /*#__PURE__*/React.createContext(undefined);\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n useLayoutEffect(function () {\n unstable_batchedUpdates(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n return {\n Context: Context,\n Provider: Provider,\n defaultValue: defaultValue\n };\n}\n\n/** e.g. useSelect(userContext) => user */\n\n/** e.g. useSelect(userContext, user => user.name) => user.name */\n\n/** e.g. useSelect(userContext, ['name', 'age']) => user { name, age } */\n\n/** e.g. useSelect(userContext, 'name') => user.name */\n\nexport function useContext(holder, selector) {\n var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n if (selector === undefined) {\n return ctx;\n }\n if (!Array.isArray(selector)) {\n return ctx[selector];\n }\n var obj = {};\n selector.forEach(function (key) {\n obj[key] = ctx[key];\n });\n return obj;\n });\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n var valueRef = React.useRef();\n valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n forceUpdate = _React$useState4[1];\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n function trigger(nextValue) {\n var nextSelectorValue = eventSelector(nextValue);\n if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n forceUpdate({});\n }\n }\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\n/**\n * Create Immutable pair for `makeImmutable` and `responseImmutable`.\n */\nexport default function createImmutable() {\n var ImmutableContext = /*#__PURE__*/React.createContext(null);\n\n /**\n * Get render update mark by `makeImmutable` root.\n * Do not deps on the return value as render times\n * but only use for `useMemo` or `useCallback` deps.\n */\n function useImmutableMark() {\n return React.useContext(ImmutableContext);\n }\n\n /**\n * Wrapped Component will be marked as Immutable.\n * When Component parent trigger render,\n * it will notice children component (use with `responseImmutable`) node that parent has updated.\n * @param Component Passed Component\n * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n */\n function makeImmutable(Component, shouldTriggerRender) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n var renderTimesRef = React.useRef(0);\n var prevProps = React.useRef(props);\n\n // If parent has the context, we do not wrap it\n var mark = useImmutableMark();\n if (mark !== null) {\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n }\n if (\n // Always trigger re-render if not provide `notTriggerRender`\n !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n renderTimesRef.current += 1;\n }\n prevProps.current = props;\n return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n value: renderTimesRef.current\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n }\n\n /**\n * Wrapped Component with `React.memo`.\n * But will rerender when parent with `makeImmutable` rerender.\n */\n function responseImmutable(Component, propsAreEqual) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n useImmutableMark();\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n }\n return {\n makeImmutable: makeImmutable,\n responseImmutable: responseImmutable,\n useImmutableMark: useImmutableMark\n };\n}"],"names":["_excluded","_excluded2","getRoundNumber","value","convertHsb2Hsv","color","FastColor","_typeof","_ref","b","resets","_objectWithoutProperties","_objectSpread","Color","_FastColor","_inherits","_super","_createSuper","_classCallCheck","_createClass","hsb","saturation","lightness","hue","alpha","hsbString","hsbaString","_this$toHsv","v","generateColor","OrderContext","React.createContext","EMPTY_LIST","useDom","render","debug","_React$useState","React.useState","canUseDom","defaultEle","_React$useState2","_slicedToArray","ele","appendedRef","React.useRef","queueCreate","React.useContext","_React$useState3","_React$useState4","queue","setQueue","mergedQueueCreate","appendFn","origin","newQueue","_toConsumableArray","append","cleanup","_ele$parentElement","useLayoutEffect","isBodyOverflowing","UNIQUE_ID","uuid","useScrollLocker","lock","mergedLock","id","scrollbarSize","getTargetScrollBarSize","isOverflow","updateCSS","removeCSS","inline","inlineMock","nextInline","getPortalContainer","getContainer","Portal","React.forwardRef","props","ref","open","autoLock","_props$autoDestroy","autoDestroy","children","shouldRender","setShouldRender","mergedRender","React.useEffect","innerContainer","setInnerContainer","customizeContainer","_useDom","_useDom2","defaultContainer","mergedContainer","childRef","supportRef","mergedRef","useComposeRef","renderInline","reffedChildren","React.cloneElement","React.createElement","createPortal","newMessages","cloned","messages","formatRegExp","warning","convertFieldsError","errors","fields","error","field","format","template","_len","args","_key","i","len","str","x","isNativeStringType","type","isEmptyValue","asyncParallelArray","arr","func","callback","results","total","arrLength","count","a","asyncSerialArray","index","next","original","flattenObjArr","objArr","ret","k","AsyncValidationError","_Error","_this","_defineProperty","_assertThisInitialized","_wrapNativeSuper","asyncMap","option","source","_pending","resolve","reject","flattenArr","e","firstFields","objArrKeys","objArrLength","pending","key","isErrorObj","obj","getValue","path","complementError","rule","oe","fieldValue","deepMerge","target","s","ENUM","enumerable","options","pattern","_pattern","range","min","max","spRegexp","val","num","required","urlReg","getUrlRegex","word","v4","v6seg","v6List","v6Eth0","v6","v46Exact","v4exact","v6exact","ip","protocol","auth","ipv4","ipv6","host","domain","tld","port","regex","types","custom","ruleType","whitespace","rules","enumRule","any","validate","array","boolean","date","dateObject","floatFn","integer","method","number","object","regexp","string","validators","float","enumValidator","Schema","descriptor","defaultMessages","name","item","_messages","source_","_this2","o","oc","complete","add","_errors","series","keys","z","r","errorFields","data","doIt","deep","addFullField","schema","cb","errorList","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","res","_console$error","_console","messageIndex","validator","Arrow","prefixCls","align","arrow","arrowPos","className","content","_arrowPos$x","_arrowPos$y","y","arrowRef","alignStyle","popupPoints","targetPoints","popupTB","popupLR","targetTB","targetLR","classNames","Mask","zIndex","mask","motion","CSSMotion","_extends","PopupContent","React.memo","_","Popup","popup","style","_onVisibleChanged","keepDom","fresh","onClick","maskMotion","forceRender","getPopupContainer","onMouseEnter","onMouseLeave","onPointerEnter","ready","offsetX","offsetY","offsetR","offsetB","onAlign","onPrepare","stretch","targetWidth","targetHeight","childNode","isNodeVisible","getPopupContainerNeedParams","show","setShow","AUTO","offsetStyle","_experimental","points","dynamicInset","alignRight","alignBottom","miscStyle","ResizeObserver","resizeObserverRef","nextVisible","_motion$onVisibleChan","motionRef","motionClassName","motionStyle","cls","composeRef","TriggerWrapper","getTriggerDOMNode","canUseRef","setRef","React.useCallback","node","fillRef","TriggerContext","toArray","useAction","mobile","action","showAction","hideAction","React.useMemo","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","isPointsEq","a1","a2","isAlignPoint","getAlignPopupClassName","builtinPlacements","placements","_builtinPlacements$pl","placement","getMotion","animation","transitionName","getWin","collectScroller","scrollerList","current","scrollStyle","_getWin$getComputedSt","overflowX","overflowY","overflow","toNum","defaultValue","getPxValue","getVisibleArea","initArea","visibleArea","_getWin$getComputedSt2","overflowClipMargin","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","scaleX","scaleY","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleTop","eleRight","eleBottom","getUnitOffset","size","offset","offsetStr","cells","getNumberOffset","rect","_ref2","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","point","useAlign","popupEle","popupAlign","onPopupAlign","offsetInfo","setOffsetInfo","alignCountRef","prevFlipRef","resetFlipCache","useEvent","getIntersectionVisibleArea","area","l","popupRect","t","popupWidth","popupHeight","visibleL","visibleT","visibleR","visibleB","syncNextPopupPosition","nextPopupY","nextOffsetY","nextPopupBottom","nextPopupX","nextOffsetX","nextPopupRight","_popupElement$parentE","_popupRect$x","_popupRect$y","_popupElement$parentE2","popupElement","doc","win","_win$getComputedStyle","width","height","popupPosition","originLeft","originTop","originRight","originBottom","originOverflow","placementInfo","placeholderElement","targetRect","_rect$x","_rect$y","_doc$documentElement","clientWidth","clientHeight","scrollWidth","scrollHeight","scrollTop","scrollLeft","visibleRegion","scrollRegion","htmlRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","isDOM","isVisible","targetOffset","_getNumberOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset3","_getNumberOffset4","targetOffsetX","targetOffsetY","_ref3","_ref4","popupPoint","targetPoint","targetAlignPoint","popupAlignPoint","nextAlignInfo","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","adjustX","adjustY","shiftX","shiftY","supportAdjust","needAdjustY","sameTB","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupLeft","popupRight","popupTop","popupBottom","targetLeft","targetRight","targetTop","targetBottom","maxLeft","minRight","xCenter","nextArrowX","maxTop","minBottom","yCenter","nextArrowY","offsetX4Right","offsetY4Bottom","nextOffsetInfo","triggerAlign","resetReady","ori","useWatch","onScroll","notifyScroll","targetElement","targetScrollList","popupScrollList","mergedList","scroller","useWinClick","clickToHide","targetEle","maskClosable","inPopupOrChild","triggerOpen","openRef","onTriggerClose","_e$composedPath","targetShadowRoot","getShadowRoot","generateTrigger","PortalComponent","Trigger","_props$prefixCls","_props$action","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","focusDelay","blurDelay","_props$maskClosable","destroyPopupOnHide","popupClassName","popupStyle","popupPlacement","_props$builtinPlaceme","getPopupClassNameFromAlign","alignPoint","onPopupClick","popupMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","restProps","mergedAutoDestroy","setMobile","isMobile","subPopupElements","parentContext","context","subPopupEle","useId","setPopupEle","externalPopupRef","setPopupRef","_React$useState5","_React$useState6","setTargetEle","externalForwardRef","setTargetRef","child","React.Children","originChildProps","cloneProps","_getShadowRoot","_getShadowRoot2","childDOM","mergePopupMotion","mergeMaskMotion","_React$useState7","_React$useState8","internalOpen","setInternalOpen","mergedOpen","setMergedOpen","nextOpen","lastTriggerRef","internalTriggerOpen","_lastTriggerRef$curre","delayRef","clearDelay","delay","_React$useState9","_React$useState10","inMotion","setInMotion","firstMount","_React$useState11","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState13","_React$useState14","mousePos","setMousePos","setMousePosByEvent","event","_useAlign","_useAlign2","arrowX","arrowY","alignInfo","_useAction","_useAction2","showActions","hideActions","clickToShow","alignedClassName","baseClassName","React.useImperativeHandle","_React$useState15","_React$useState16","setTargetWidth","_React$useState17","_React$useState18","setTargetHeight","syncTargetSize","onTargetResize","onVisibleChanged","visible","wrapperAction","eventName","preEvent","_originChildProps$eve","_originChildProps$onC","_len2","_key2","hoverToShow","hoverToHide","onPopupMouseEnter","onPopupMouseLeave","_originChildProps$onM","_originChildProps$onC2","_len3","_key3","mergedChildrenProps","passedProps","passedEventList","_mergedChildrenProps$","_len4","_key4","triggerNode","innerArrow","React.Fragment","createContext","Context","Provider","valueRef","unstable_batchedUpdates","listener","useContext","holder","selector","eventSelector","ctx","listeners","forceUpdate","trigger","nextValue","nextSelectorValue","isEqual","createImmutable","ImmutableContext","useImmutableMark","makeImmutable","Component","shouldTriggerRender","refAble","ImmutableComponent","refProps","renderTimesRef","prevProps","mark","responseImmutable","propsAreEqual"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48]}