{"version":3,"file":"use-callback-ref-BG74o9O-.js","sources":["../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js"],"sourcesContent":["/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n"],"names":["assignRef","ref","value","current","useIsomorphicLayoutEffect","window","React.useLayoutEffect","React.useEffect","currentValues","WeakMap","useMergeRefs","refs","defaultValue","initialValue","callback","callbackRef","newValue","forEach","useState","facade","last","oldValue","get","prevRefs_1","Set","nextRefs_1","current_1","has","set"],"mappings":"wCAaO,SAASA,EAAUC,EAAKC,GAOpB,MANY,mBAARD,EACPA,EAAIC,GAECD,IACLA,EAAIE,QAAUD,GAEXD,CACX,CClBA,IAAIG,EAA8C,oBAAXC,OAAyBC,EAAAA,gBAAwBC,EAAAA,UACpFC,MAAoBC,QAejB,SAASC,EAAaC,EAAMC,GAC/B,ICL2BC,EAAcC,EACrCb,EDIAc,GCLuBF,EDKsB,KCLRC,EDKc,SAAUE,GACtD,OAAAL,EAAKM,SAAQ,SAAUhB,GAAc,OAAAD,EAAUC,EAAKe,EAAU,GAC7E,GCNQf,EAAMiB,YAAS,WAAsB,MAAA,CAErChB,MAAOW,EAEPC,WAEAK,OAAQ,CACJ,WAAIhB,GACA,OAAOF,EAAIC,KACd,EACD,WAAIC,CAAQD,GACR,IAAIkB,EAAOnB,EAAIC,MACXkB,IAASlB,IACTD,EAAIC,MAAQA,EACRD,EAAAa,SAASZ,EAAOkB,GAE3B,GAEJ,IAAE,IAEHN,SAAWA,EACRb,EAAIkB,QDMJ,OAnBPf,GAA0B,WAClB,IAAAiB,EAAWb,EAAcc,IAAIP,GACjC,GAAIM,EAAU,CACN,IAAAE,EAAa,IAAIC,IAAIH,GACrBI,EAAa,IAAID,IAAIb,GACrBe,EAAYX,EAAYZ,QACjBoB,EAAAN,SAAQ,SAAUhB,GACpBwB,EAAWE,IAAI1B,IAChBD,EAAUC,EAAK,KAEnC,IACuBwB,EAAAR,SAAQ,SAAUhB,GACpBsB,EAAWI,IAAI1B,IAChBD,EAAUC,EAAKyB,EAEnC,GACS,CACalB,EAAAoB,IAAIb,EAAaJ,EACvC,GAAO,CAACA,IACGI,CACX","x_google_ignoreList":[0,1,2]}