{"ast":null,"code":"import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const [isPresent, safeToRemove] = usePresence()\n *\n *   useEffect(() => {\n *     !isPresent && setTimeout(safeToRemove, 1000)\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n  var context = useContext(PresenceContext);\n  if (context === null) return [true, null];\n  var isPresent = context.isPresent,\n    onExitComplete = context.onExitComplete,\n    register = context.register;\n  // It's safe to call the following hooks conditionally (after an early return) because the context will always\n  // either be null or non-null for the lifespan of the component.\n  // Replace with useOpaqueId when released in React\n  var id = useUniqueId();\n  useEffect(function () {\n    return register(id);\n  }, []);\n  var safeToRemove = function safeToRemove() {\n    return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id);\n  };\n  return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const isPresent = useIsPresent()\n *\n *   useEffect(() => {\n *     !isPresent && console.log(\"I've been removed!\")\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n  return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n  return context === null ? true : context.isPresent;\n}\nvar counter = 0;\nvar incrementId = function incrementId() {\n  return counter++;\n};\nvar useUniqueId = function useUniqueId() {\n  return useConstant(incrementId);\n};\nexport { isPresent, useIsPresent, usePresence };","map":{"version":3,"names":["useContext","useEffect","PresenceContext","useConstant","usePresence","context","isPresent","onExitComplete","register","id","useUniqueId","safeToRemove","useIsPresent","counter","incrementId"],"sources":["C:/LDT/DSP_Management/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js"],"sourcesContent":["import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.js';\nimport { useConstant } from '../../utils/use-constant.js';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const [isPresent, safeToRemove] = usePresence()\n *\n *   useEffect(() => {\n *     !isPresent && setTimeout(safeToRemove, 1000)\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n    var context = useContext(PresenceContext);\n    if (context === null)\n        return [true, null];\n    var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n    // It's safe to call the following hooks conditionally (after an early return) because the context will always\n    // either be null or non-null for the lifespan of the component.\n    // Replace with useOpaqueId when released in React\n    var id = useUniqueId();\n    useEffect(function () { return register(id); }, []);\n    var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n    return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n *   const isPresent = useIsPresent()\n *\n *   useEffect(() => {\n *     !isPresent && console.log(\"I've been removed!\")\n *   }, [isPresent])\n *\n *   return <div />\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n    return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n    return context === null ? true : context.isPresent;\n}\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useUniqueId = function () { return useConstant(incrementId); };\n\nexport { isPresent, useIsPresent, usePresence };\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,SAAS,QAAQ,OAAO;AAC7C,SAASC,eAAe,QAAQ,kCAAkC;AAClE,SAASC,WAAW,QAAQ,6BAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAA,EAAG;EACnB,IAAIC,OAAO,GAAGL,UAAU,CAACE,eAAe,CAAC;EACzC,IAAIG,OAAO,KAAK,IAAI,EAChB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;EACvB,IAAIC,SAAS,GAAGD,OAAO,CAACC,SAAS;IAAEC,cAAc,GAAGF,OAAO,CAACE,cAAc;IAAEC,QAAQ,GAAGH,OAAO,CAACG,QAAQ;EACvG;EACA;EACA;EACA,IAAIC,EAAE,GAAGC,WAAW,CAAC,CAAC;EACtBT,SAAS,CAAC,YAAY;IAAE,OAAOO,QAAQ,CAACC,EAAE,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EACnD,IAAIE,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAe;IAAE,OAAOJ,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACE,EAAE,CAAC;EAAE,CAAC;EAC7H,OAAO,CAACH,SAAS,IAAIC,cAAc,GAAG,CAAC,KAAK,EAAEI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAAA,EAAG;EACpB,OAAON,SAAS,CAACN,UAAU,CAACE,eAAe,CAAC,CAAC;AACjD;AACA,SAASI,SAASA,CAACD,OAAO,EAAE;EACxB,OAAOA,OAAO,KAAK,IAAI,GAAG,IAAI,GAAGA,OAAO,CAACC,SAAS;AACtD;AACA,IAAIO,OAAO,GAAG,CAAC;AACf,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAe;EAAE,OAAOD,OAAO,EAAE;AAAE,CAAC;AACnD,IAAIH,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAe;EAAE,OAAOP,WAAW,CAACW,WAAW,CAAC;AAAE,CAAC;AAElE,SAASR,SAAS,EAAEM,YAAY,EAAER,WAAW","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}