{"version":3,"sources":["../src/Utils.js"],"names":["getAdapter","makeOptions","isCustomComponent","isCustomComponentElement","propsOfNode","typeOfNode","nodeHasType","nodeMatches","nodeEqual","containsChildrenSubArray","childrenToSimplifiedArray","isReactElementAlike","withSetStateAllowed","AND","displayNameOfNode","sym","privateSet","cloneElement","spyMethod","isEmptyValue","renderedDive","loadCheerioRoot","ITERATOR_SYMBOL","Symbol","iterator","options","console","warn","validateMountOptions","attachTo","hydrateIn","TypeError","configAttachTo","configHydrateIn","config","finalAttachTo","undefined","finalHydrateIn","mountTargets","component","adapter","inst","isValidElement","type","node","props","filter","value","reduce","acc","key","displayName","name","internalChildrenCompare","a","b","lenComp","isLoose","nodeCompare","Array","isArray","flatA","Infinity","flatB","length","i","childrenMatch","childrenEqual","removeNullaryReducer","addition","internalNodeCompare","left","right","leftKeys","Object","keys","prop","leftHasChildren","rightHasChildren","childCompare","children","isTextualNode","rightKeys","is","match","subArray","checker","_","arraysEqual","slice","some","every","el","childrenToArray","result","push","forEach","nodeChildren","childrenArray","simplifiedArray","child","previousChild","pop","map","x","arg","fn","cleanup","global","document","fns","fnsReversed","reverse","s","obj","defineProperty","enumerable","writable","createElement","instance","methodName","getStub","lastReturnValue","originalMethod","hasOwn","descriptor","getOwnPropertyDescriptor","configurable","spied","args","apply","restore","getLastReturnValue","renderedValue","nodes","concat","n","rendered","html","cheerio","root","load"],"mappings":"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","file":"Utils.js","sourcesContent":["/* eslint no-use-before-define: 0 */\nimport isEqual from 'lodash.isequal';\nimport is from 'object-is';\nimport entries from 'object.entries';\nimport functionName from 'function.prototype.name';\nimport has from 'has';\nimport flat from 'array.prototype.flat';\nimport trim from 'string.prototype.trim';\nimport cheerio from 'cheerio';\nimport { isHtml } from 'cheerio/lib/utils';\n\nimport { get } from './configuration';\nimport { childrenOfNode } from './RSTTraversal';\nimport realGetAdapter from './getAdapter';\nimport validateAdapter from './validateAdapter';\n\nexport const ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\nexport function getAdapter(options = {}) {\n console.warn('getAdapter from Utils is deprecated; please use ./getAdapter instead');\n return realGetAdapter(options);\n}\n\nfunction validateMountOptions(attachTo, hydrateIn) {\n if (attachTo && hydrateIn && attachTo !== hydrateIn) {\n throw new TypeError('If both the `attachTo` and `hydrateIn` options are provided, they must be === (for backwards compatibility)');\n }\n}\n\nexport function makeOptions(options) {\n const { attachTo: configAttachTo, hydrateIn: configHydrateIn, ...config } = get();\n validateMountOptions(configAttachTo, configHydrateIn);\n\n const { attachTo, hydrateIn } = options;\n validateMountOptions(attachTo, hydrateIn);\n\n // neither present: both undefined\n // only attachTo present: attachTo set, hydrateIn undefined\n // only hydrateIn present: both set to hydrateIn\n // both present (and ===, per above): both set to hydrateIn\n const finalAttachTo = hydrateIn || configHydrateIn || configAttachTo || attachTo || undefined;\n const finalHydrateIn = hydrateIn || configHydrateIn || undefined;\n const mountTargets = {\n ...(finalAttachTo && { attachTo: finalAttachTo }),\n ...(finalHydrateIn && { hydrateIn: finalHydrateIn }),\n };\n\n return {\n ...config,\n ...options,\n ...mountTargets,\n };\n}\n\nexport function isCustomComponent(component, adapter) {\n validateAdapter(adapter);\n if (adapter.isCustomComponent) {\n return !!adapter.isCustomComponent(component);\n }\n return typeof component === 'function';\n}\n\nexport function isCustomComponentElement(inst, adapter) {\n if (adapter.isCustomComponentElement) {\n return !!adapter.isCustomComponentElement(inst);\n }\n return !!inst && adapter.isValidElement(inst) && typeof inst.type === 'function';\n}\n\nexport function propsOfNode(node) {\n return entries((node && node.props) || {})\n .filter(([, value]) => typeof value !== 'undefined')\n .reduce((acc, [key, value]) => Object.assign(acc, { [key]: value }), {});\n}\n\nexport function typeOfNode(node) {\n return node ? node.type : null;\n}\n\nexport function nodeHasType(node, type) {\n if (!type || !node) return false;\n\n const adapter = realGetAdapter();\n if (adapter.displayNameOfNode) {\n const displayName = adapter.displayNameOfNode(node);\n return displayName === type;\n }\n\n if (!node.type) return false;\n if (typeof node.type === 'string') return node.type === type;\n return (\n typeof node.type === 'function' ? functionName(node.type) === type : node.type.name === type\n ) || node.type.displayName === type;\n}\n\nfunction internalChildrenCompare(a, b, lenComp, isLoose) {\n const nodeCompare = isLoose ? nodeMatches : nodeEqual;\n\n if (a === b) return true;\n if (!Array.isArray(a) && !Array.isArray(b)) {\n return nodeCompare(a, b, lenComp);\n }\n const flatA = flat(a, Infinity);\n const flatB = flat(b, Infinity);\n if (flatA.length !== flatB.length) return false;\n if (flatA.length === 0 && flatB.length === 0) return true;\n for (let i = 0; i < flatA.length; i += 1) {\n if (!nodeCompare(flatA[i], flatB[i], lenComp)) return false;\n }\n return true;\n}\n\nfunction childrenMatch(a, b, lenComp) {\n return internalChildrenCompare(a, b, lenComp, true);\n}\n\nfunction childrenEqual(a, b, lenComp) {\n return internalChildrenCompare(a, b, lenComp, false);\n}\n\nfunction removeNullaryReducer(acc, [key, value]) {\n const addition = value == null ? {} : { [key]: value };\n return { ...acc, ...addition };\n}\n\nfunction internalNodeCompare(a, b, lenComp, isLoose) {\n if (a === b) return true;\n if (!a || !b) return false;\n if (a.type !== b.type) return false;\n\n let left = propsOfNode(a);\n let right = propsOfNode(b);\n if (isLoose) {\n left = entries(left).reduce(removeNullaryReducer, {});\n right = entries(right).reduce(removeNullaryReducer, {});\n }\n\n const leftKeys = Object.keys(left);\n for (let i = 0; i < leftKeys.length; i += 1) {\n const prop = leftKeys[i];\n // we will check children later\n if (prop === 'children') {\n // continue;\n } else if (!(prop in right)) {\n return false;\n } else if (right[prop] === left[prop]) {\n // continue;\n } else if (typeof right[prop] === typeof left[prop] && typeof left[prop] === 'object') {\n if (!isEqual(left[prop], right[prop])) return false;\n } else {\n return false;\n }\n }\n\n const leftHasChildren = 'children' in left;\n const rightHasChildren = 'children' in right;\n const childCompare = isLoose ? childrenMatch : childrenEqual;\n if (leftHasChildren || rightHasChildren) {\n if (!childCompare(\n childrenToSimplifiedArray(left.children, isLoose),\n childrenToSimplifiedArray(right.children, isLoose),\n lenComp,\n )) {\n return false;\n }\n }\n\n if (!isTextualNode(a)) {\n const rightKeys = Object.keys(right);\n return lenComp(leftKeys.length - leftHasChildren, rightKeys.length - rightHasChildren);\n }\n\n return false;\n}\n\nexport function nodeMatches(a, b, lenComp = is) {\n return internalNodeCompare(a, b, lenComp, true);\n}\n\nexport function nodeEqual(a, b, lenComp = is) {\n return internalNodeCompare(a, b, lenComp, false);\n}\n\nexport function containsChildrenSubArray(match, node, subArray) {\n const children = childrenOfNode(node);\n const checker = (_, i) => arraysEqual(match, children.slice(i, i + subArray.length), subArray);\n return children.some(checker);\n}\n\nfunction arraysEqual(match, left, right) {\n return left.length === right.length && left.every((el, i) => match(el, right[i]));\n}\n\nfunction childrenToArray(children) {\n const result = [];\n\n const push = (el) => {\n if (el === null || el === false || typeof el === 'undefined') return;\n result.push(el);\n };\n\n if (Array.isArray(children)) {\n children.forEach(push);\n } else {\n push(children);\n }\n return result;\n}\n\nexport function childrenToSimplifiedArray(nodeChildren, isLoose = false) {\n const childrenArray = childrenToArray(nodeChildren);\n const simplifiedArray = [];\n\n for (let i = 0; i < childrenArray.length; i += 1) {\n const child = childrenArray[i];\n const previousChild = simplifiedArray.pop();\n\n if (typeof previousChild === 'undefined') {\n simplifiedArray.push(child);\n } else if (isTextualNode(child) && isTextualNode(previousChild)) {\n simplifiedArray.push(previousChild + child);\n } else {\n simplifiedArray.push(previousChild);\n simplifiedArray.push(child);\n }\n }\n\n if (isLoose) {\n return simplifiedArray.map((x) => (typeof x === 'string' ? trim(x) : x));\n }\n\n return simplifiedArray;\n}\n\nfunction isTextualNode(node) {\n return typeof node === 'string' || typeof node === 'number';\n}\n\nexport function isReactElementAlike(arg, adapter) {\n return adapter.isValidElement(arg) || isTextualNode(arg) || Array.isArray(arg);\n}\n\n// TODO(lmr): can we get rid of this outside of the adapter?\nexport function withSetStateAllowed(fn) {\n // NOTE(lmr):\n // this is currently here to circumvent a React bug where `setState()` is\n // not allowed without global being defined.\n let cleanup = false;\n if (typeof global.document === 'undefined') {\n cleanup = true;\n global.document = {};\n }\n fn();\n if (cleanup) {\n // This works around a bug in node/jest in that developers aren't able to\n // delete things from global when running in a node vm.\n global.document = undefined;\n delete global.document;\n }\n}\n\nexport function AND(fns) {\n const fnsReversed = fns.slice().reverse();\n return (x) => fnsReversed.every((fn) => fn(x));\n}\n\nexport function displayNameOfNode(node) {\n if (!node) return null;\n\n const { type } = node;\n\n if (!type) return null;\n\n return type.displayName || (typeof type === 'function' ? functionName(type) : type.name || type);\n}\n\nexport function sym(s) {\n return typeof Symbol === 'function' ? Symbol.for(`enzyme.${s}`) : s;\n}\n\nexport function privateSet(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: false,\n writable: true,\n });\n}\n\nexport function cloneElement(adapter, el, props) {\n return adapter.createElement(\n el.type,\n { ...el.props, ...props },\n );\n}\n\nexport function spyMethod(instance, methodName, getStub = () => {}) {\n let lastReturnValue;\n const originalMethod = instance[methodName];\n const hasOwn = has(instance, methodName);\n let descriptor;\n if (hasOwn) {\n descriptor = Object.getOwnPropertyDescriptor(instance, methodName);\n }\n Object.defineProperty(instance, methodName, {\n configurable: true,\n enumerable: !descriptor || !!descriptor.enumerable,\n value: getStub(originalMethod) || function spied(...args) {\n const result = originalMethod.apply(this, args);\n lastReturnValue = result;\n return result;\n },\n });\n return {\n restore() {\n if (hasOwn) {\n if (descriptor) {\n Object.defineProperty(instance, methodName, descriptor);\n } else {\n /* eslint-disable no-param-reassign */\n instance[methodName] = originalMethod;\n /* eslint-enable no-param-reassign */\n }\n } else {\n /* eslint-disable no-param-reassign */\n delete instance[methodName];\n /* eslint-enable no-param-reassign */\n }\n },\n getLastReturnValue() {\n return lastReturnValue;\n },\n };\n}\n\nexport { default as shallowEqual } from 'enzyme-shallow-equal';\n\nexport function isEmptyValue(renderedValue) {\n return renderedValue === null || renderedValue === false;\n}\n\nexport function renderedDive(nodes) {\n if (isEmptyValue(nodes)) {\n return true;\n }\n\n return [].concat(nodes).every((n) => {\n if (n) {\n const { rendered } = n;\n return isEmptyValue(rendered) || renderedDive(rendered);\n }\n\n return isEmptyValue(n);\n });\n}\n\nexport function loadCheerioRoot(html) {\n if (!html) {\n return cheerio.root();\n }\n\n if (!isHtml(html)) {\n // use isDocument=false to create fragment\n return cheerio.load(html, null, false).root();\n }\n\n return cheerio.load('')(html);\n}\n"]}