{"version":3,"file":"index.mjs","sources":["../../../../src/components/LayoutGroup/index.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { MutableRefObject, useContext, useMemo, useRef } from \"react\"\nimport {\n    LayoutGroupContext,\n    LayoutGroupContextProps,\n} from \"../../context/LayoutGroupContext\"\nimport { DeprecatedLayoutGroupContext } from \"../../context/DeprecatedLayoutGroupContext\"\nimport { nodeGroup } from \"../../projection\"\nimport { useForceUpdate } from \"../../utils/use-force-update\"\n\ntype InheritOption = boolean | \"id\"\n\nexport interface Props {\n    id?: string\n    inherit?: InheritOption\n}\n\nconst shouldInheritGroup = (inherit: InheritOption) => inherit === true\nconst shouldInheritId = (inherit: InheritOption) =>\n    shouldInheritGroup(inherit === true) || inherit === \"id\"\n\nexport const LayoutGroup: React.FunctionComponent<\n    React.PropsWithChildren<Props>\n> = ({ children, id, inherit = true }) => {\n    const layoutGroupContext = useContext(LayoutGroupContext)\n    const deprecatedLayoutGroupContext = useContext(\n        DeprecatedLayoutGroupContext\n    )\n    const [forceRender, key] = useForceUpdate()\n    const context = useRef(\n        null\n    ) as MutableRefObject<LayoutGroupContextProps | null>\n\n    const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext\n    if (context.current === null) {\n        if (shouldInheritId(inherit) && upstreamId) {\n            id = id ? upstreamId + \"-\" + id : upstreamId\n        }\n\n        context.current = {\n            id,\n            group: shouldInheritGroup(inherit)\n                ? layoutGroupContext.group || nodeGroup()\n                : nodeGroup(),\n        }\n    }\n\n    const memoizedContext = useMemo(\n        () => ({ ...context.current, forceRender }),\n        [key]\n    )\n\n    return (\n        <LayoutGroupContext.Provider value={memoizedContext}>\n            {children}\n        </LayoutGroupContext.Provider>\n    )\n}\n"],"names":[],"mappings":";;;;;;;;AAmBA;AACA;AAGO;AAGH;AACA;;AAIA;AAIA;AACA;AACI;AACI;;;;AAKA;AACI;;;;;AAUZ;AAKJ;;"}