{"version":3,"file":"use-callback-ref-BuWKncac.js","sources":["../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.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 { 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","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"],"names":["assignRef","ref","value","useCallbackRef","initialValue","callback","useState","last","useIsomorphicLayoutEffect","React.useLayoutEffect","React.useEffect","currentValues","useMergeRefs","refs","defaultValue","callbackRef","newValue","oldValue","prevRefs_1","nextRefs_1","current_1"],"mappings":"wCAaO,SAASA,EAAUC,EAAKC,EAAO,CAClC,OAAI,OAAOD,GAAQ,WACfA,EAAIC,CAAK,EAEJD,IACLA,EAAI,QAAUC,GAEXD,CACX,CCNO,SAASE,EAAeC,EAAcC,EAAU,CACnD,IAAIJ,EAAMK,WAAS,UAAY,CAAE,MAAQ,CAErC,MAAOF,EAEP,SAAUC,EAEV,OAAQ,CACJ,IAAI,SAAU,CACV,OAAOJ,EAAI,KACd,EACD,IAAI,QAAQC,EAAO,CACf,IAAIK,EAAON,EAAI,MACXM,IAASL,IACTD,EAAI,MAAQC,EACZD,EAAI,SAASC,EAAOK,CAAI,EAE/B,CACJ,CACT,CAAS,CAAA,EAAE,CAAC,EAER,OAAAN,EAAI,SAAWI,EACRJ,EAAI,MACf,CCnCA,IAAIO,EAA4B,OAAO,OAAW,IAAcC,EAAAA,gBAAwBC,EAAAA,UACpFC,EAAgB,IAAI,QAejB,SAASC,EAAaC,EAAMC,EAAc,CAC7C,IAAIC,EAAcZ,EAA+B,KAAM,SAAUa,EAAU,CACvE,OAAOH,EAAK,QAAQ,SAAUZ,EAAK,CAAE,OAAOD,EAAUC,EAAKe,CAAQ,CAAE,CAAE,CAC/E,CAAK,EAED,OAAAR,EAA0B,UAAY,CAClC,IAAIS,EAAWN,EAAc,IAAII,CAAW,EAC5C,GAAIE,EAAU,CACV,IAAIC,EAAa,IAAI,IAAID,CAAQ,EAC7BE,EAAa,IAAI,IAAIN,CAAI,EACzBO,EAAYL,EAAY,QAC5BG,EAAW,QAAQ,SAAUjB,EAAK,CACzBkB,EAAW,IAAIlB,CAAG,GACnBD,EAAUC,EAAK,IAAI,CAEvC,CAAa,EACDkB,EAAW,QAAQ,SAAUlB,EAAK,CACzBiB,EAAW,IAAIjB,CAAG,GACnBD,EAAUC,EAAKmB,CAAS,CAE5C,CAAa,CACJ,CACDT,EAAc,IAAII,EAAaF,CAAI,CAC3C,EAAO,CAACA,CAAI,CAAC,EACFE,CACX","x_google_ignoreList":[0,1,2]}