{"version":3,"file":"LensCard-Chunk-99851c187da4eed2e76c.js","mappings":"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","sources":["webpack://nikon-client/./components/atoms/Image/Image.tsx","webpack://nikon-client/./components/atoms/Tag/Tag.tsx","webpack://nikon-client/./components/molecules/LensCard/LensCard.tsx","webpack://nikon-client/./models/enums/BreakpointEnum.ts","webpack://nikon-client/./models/enums/SizeEnum.ts","webpack://nikon-client/./models/enums/TagTypesEnum.ts","webpack://nikon-client/./utility/hooks/useBreakpoint.ts","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://nikon-client/./node_modules/.pnpm/framer-motion@10.18.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs"],"sourcesContent":["import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { IImage } from '@models/IImage';\nimport useBreakpoint from '@utils/hooks/useBreakpoint';\nimport classNames from 'classnames';\nimport { PropsWithChildren, RefObject, useState } from 'react';\n\ninterface Props {\n readonly classes?: string;\n readonly dataTestId?: string;\n readonly epiEdit?: string;\n readonly image?: IImage;\n readonly imageClasses?: string;\n readonly imageRef?:\n | RefObject\n | ((node: HTMLElement | null) => void);\n readonly lazyLoad?: boolean;\n readonly progressiveLoad?: boolean;\n readonly sizes?: string;\n}\n\nconst Image = ({\n children,\n classes,\n dataTestId,\n epiEdit,\n image,\n imageClasses,\n imageRef,\n lazyLoad = true,\n progressiveLoad = true,\n sizes = '',\n}: PropsWithChildren) => {\n const mobileSource = image?.mobile;\n const tabletSource = image?.tablet;\n const desktopSource = image?.desktop;\n const largeDesktopSource = image?.largeDesktop;\n const breakpoint = useBreakpoint() as BreakpointEnum;\n const [isLoaded, setIsLoaded] = useState(false);\n\n if (!desktopSource?.url) return null;\n\n const currentSrc = {\n [BreakpointEnum.Small]: mobileSource,\n [BreakpointEnum.Medium]: tabletSource,\n [BreakpointEnum.Large]: desktopSource,\n [BreakpointEnum.XLarge]: largeDesktopSource,\n };\n\n return (\n \n \n setIsLoaded(true)}\n sizes={sizes}\n src={\n isLoaded && progressiveLoad\n ? currentSrc[breakpoint]?.url\n : mobileSource?.url\n }\n height={currentSrc[breakpoint]?.height}\n width={currentSrc[breakpoint]?.width}\n srcSet={`${mobileSource?.originalUrl} 376w, ${tabletSource?.originalUrl} 768w, ${desktopSource?.originalUrl} 1024w, ${largeDesktopSource?.originalUrl} 1440w`}\n {...(dataTestId && { 'data-testid': dataTestId })}\n />\n {isLoaded && children}\n \n );\n};\n\nexport default Image;\n","import SizeEnum from '@models/enums/SizeEnum';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ILink } from '@models/ILink';\nimport classNames from 'classnames';\nimport {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n PropsWithChildren,\n} from 'react';\n\ninterface Props {\n readonly className?: string;\n readonly disabled?: boolean;\n readonly editHint?: string;\n readonly link?: ILink;\n readonly linkCallback?: () => void;\n readonly pointerStates?: boolean;\n readonly size?: Exclude;\n readonly tagType?: TagTypesEnum;\n readonly text?: string;\n readonly span?: boolean;\n readonly isLightMode?: boolean;\n readonly dataTestId?: string;\n}\n\ntype TagProps = Props &\n DetailedHTMLProps, HTMLButtonElement>;\n\nconst Tag = ({\n children,\n className,\n disabled = false,\n editHint,\n link,\n linkCallback,\n pointerStates = true,\n size = SizeEnum.Small,\n span = false,\n tagType,\n text,\n isLightMode,\n dataTestId,\n ...buttonProps\n}: PropsWithChildren) => {\n const tagClasses = classNames(\n {\n [`text-black-100 bg-grey-200 ${\n isLightMode ? '' : 'dark:bg-grey-600 dark:text-white'\n }`]: tagType === TagTypesEnum.Primary,\n //\n [`hover:bg-grey active:text-white active:bg-black-100 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Primary && pointerStates,\n //\n [`text-white bg-black-100 ${\n isLightMode ? '' : 'dark:bg-white dark:text-black-100'\n }`]:\n tagType === TagTypesEnum.Secondary || tagType === TagTypesEnum.Square,\n //\n [`hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-200 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-white dark:active:bg-grey-600'\n }`]: tagType === TagTypesEnum.Secondary && pointerStates,\n //\n [`text-black-100 bg-white ${\n isLightMode ? '' : 'dark:bg-black-100 dark:text-white'\n }`]: tagType === TagTypesEnum.Three,\n //\n [`hover:bg-grey active:bg-grey-400 ${\n isLightMode\n ? ''\n : 'dark:hover:text-white dark:hover:bg-grey-500 dark:active:text-black-100 dark:active:bg-white'\n }`]: tagType === TagTypesEnum.Three && pointerStates,\n //\n 'text-yellow bg-black-100': tagType === TagTypesEnum.Four,\n //\n 'hover:bg-grey hover:text-black-100 active:text-black-100 active:bg-grey-100':\n tagType === TagTypesEnum.Four && pointerStates,\n //\n 'py-2.5 px-5': size === SizeEnum.Large && tagType !== TagTypesEnum.Square,\n //\n 'px-4 py-1': size === SizeEnum.Small && tagType !== TagTypesEnum.Square,\n //\n 'pointer-events-none': !pointerStates,\n },\n tagType === TagTypesEnum.Square ? 'rounded-[3px]' : 'rounded-full body-two',\n 'select-none',\n className\n );\n\n if (span) {\n return (\n \n {text}\n \n );\n }\n\n return link?.url && (link?.name || children) && !disabled ? (\n \n {children || link.name}\n \n ) : (\n \n {children || text}\n \n );\n};\n\nexport default Tag;\n","import Image from '@atoms/Image/Image';\nimport Tag from '@atoms/Tag/Tag';\nimport TagTypesEnum from '@models/enums/TagTypesEnum';\nimport { ILensCard } from '@models/ILensCard';\nimport classNames from 'classnames';\nimport { AnimatePresence, motion } from 'framer-motion';\n\nconst LensCard = ({\n code = '',\n title,\n description,\n image,\n meta,\n}: ILensCard) => (\n \n \n \n
\n
\n \n
\n \n {title}\n

\n
\n {description && (\n \n )}\n \n {image && (\n \n \n \n )}\n \n
\n);\n\nexport default LensCard;\n","const enum BreakpointEnum {\n Small = 'sm',\n Medium = 'md',\n Large = 'lg',\n XLarge = 'xl',\n}\n\nexport default BreakpointEnum;\n","enum SizeEnum {\n Small = 'SMALL',\n Medium = 'MEDIUM',\n Large = 'LARGE',\n XLarge = 'XLARGE',\n}\n\nexport default SizeEnum;\n","enum TagTypesEnum {\n Primary = 'PRIMARY',\n Secondary = 'SECONDARY',\n Three = 'THREE',\n Four = 'FOUR',\n Square = 'SQUARE',\n}\n\nexport default TagTypesEnum;\n","import BreakpointEnum from '@models/enums/BreakpointEnum';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst getCurrentBreakpoint = () => {\n const breakpoints = { tablet: 768, desktop: 1024, lgDesktop: 1440 };\n const width = window.innerWidth;\n\n if (width < breakpoints.tablet) {\n return BreakpointEnum.Small;\n }\n if (width >= breakpoints.tablet && width < breakpoints.desktop) {\n return BreakpointEnum.Medium;\n }\n if (width >= breakpoints.desktop && width < breakpoints.lgDesktop) {\n return BreakpointEnum.Large;\n }\n return BreakpointEnum.XLarge;\n};\n\nconst useBreakpoint = () => {\n const [screen, setScreen] = useState();\n\n const resizeHandler = useCallback(\n () => setScreen(getCurrentBreakpoint()),\n []\n );\n\n useEffect(() => {\n window.addEventListener('resize', resizeHandler);\n setScreen(getCurrentBreakpoint());\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n };\n }, [resizeHandler]);\n\n return screen;\n};\n\nexport default useBreakpoint;\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import * as React from 'react';\nimport { useId, useRef, useInsertionEffect } from 'react';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (React.createElement(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size }, React.cloneElement(children, { ref })));\n}\n\nexport { PopChild };\n","import * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = React.createElement(PopChild, { isPresent: isPresent }, children);\n }\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map((child) => (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child)))));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode }, child));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (React.createElement(React.Fragment, null, exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child))));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n"],"names":["_ref","children","classes","dataTestId","epiEdit","image","imageClasses","imageRef","lazyLoad","progressiveLoad","sizes","mobileSource","mobile","tabletSource","tablet","desktopSource","desktop","largeDesktopSource","largeDesktop","breakpoint","useBreakpoint","isLoaded","setIsLoaded","useState","url","currentSrc","BreakpointEnum","Small","Medium","Large","XLarge","React","createElement","className","classNames","type","srcSet","_extends","ref","alt","altText","length","draggable","loading","onLoad","src","height","width","originalUrl","disabled","editHint","link","linkCallback","pointerStates","size","SizeEnum","span","tagType","text","isLightMode","buttonProps","tagClasses","TagTypesEnum","Primary","Secondary","Square","Three","Four","name","href","target","onClick","code","title","description","meta","AnimatePresence","initial","mode","motion","div","opacity","animate","exit","key","contentLink","Tag","editHints","dangerouslySetInnerHTML","__html","Image","getCurrentBreakpoint","breakpoints","window","innerWidth","screen","setScreen","resizeHandler","useCallback","useEffect","addEventListener","removeEventListener","useIsMounted","isMounted","useRef","current","PopChildMeasure","getSnapshotBeforeUpdate","prevProps","element","this","props","childRef","isPresent","sizeRef","offsetHeight","offsetWidth","top","offsetTop","left","offsetLeft","componentDidUpdate","render","PopChild","id","useId","useInsertionEffect","dataset","motionPopId","style","document","head","appendChild","sheet","insertRule","removeChild","PresenceChild","onExitComplete","custom","presenceAffectsLayout","presenceChildren","newChildrenMap","context","useMemo","childId","set","isComplete","values","register","delete","undefined","forEach","_","PresenceContext","Provider","value","Map","getChildKey","child","exitBeforeEnter","forceRender","useContext","LayoutGroupContext","L","forcedRenderCount","setForcedRenderCount","postRender","useForceUpdate","filteredChildren","filtered","Children","isValidElement","push","onlyElements","childrenToRender","exitingChildren","presentChildren","allChildren","isInitialRender","callback","updateChildLookup","clear","map","presentKeys","targetKeys","numPresent","i","indexOf","has","component","get","insertionIndex","exitingComponent","onExit","leftOverKeys","Array","from","keys","filter","childKey","includes","leftOverKey","presentChild","presentChildKey","splice","cloneElement"],"sourceRoot":""}