{
  "version": 3,
  "sources": ["../../../../../../owl-nest/common/messages/src/Components/ToastDisplayer.tsx"],
  "sourcesContent": ["import * as React from 'react'\nimport styled, { css } from 'styled-components'\n\nimport * as plume from '@ulule/owl-kit-components/next'\n\nimport { type MessageToast, useMessage } from '../index'\n\ntype Position = 'bottom' | 'top'\n\ntype ToastDisplayerProps = {\n  className?: string\n  contexts?: string[]\n  position: Position\n  offset?: number\n}\n\nexport function ToastDisplayerContainer({\n  className,\n  contexts = [],\n  position,\n}: ToastDisplayerProps): React.ReactElement<ToastDisplayerProps> {\n  const { messages, clear, softDelete } = useMessage(contexts)\n\n  React.useEffect(() => {\n    const timers = messages.map((message) => {\n      if (message.type === 'toast' && message.forceClose && message.deleted === false) {\n        return setTimeout(() => {\n          softDelete(message.context)\n        }, message.timeOpen)\n      }\n    })\n\n    return () => {\n      timers.forEach((timer) => {\n        if (timer) {\n          clearTimeout(timer)\n        }\n      })\n    }\n  }, [messages])\n\n  const currentUsedContexts = messages.reduce((acc, message) => {\n    if (!acc.includes(message.context)) {\n      return [...acc, message.context]\n    }\n\n    return acc\n  }, [] as string[])\n\n  const isMultiContext = currentUsedContexts.length > 1\n\n  const highMessages = messages.filter(\n    (message) => message.type === 'toast' && message.zIndexLevel === 'high',\n  ) as MessageToast[]\n  const lowMessages = messages.filter(\n    (message) => message.type === 'toast' && (message.zIndexLevel === 'low' || message.zIndexLevel === undefined),\n  ) as MessageToast[]\n\n  return (\n    <>\n      <Wrapper\n        className={className}\n        isAllDeleted={highMessages.every((message) => message.deleted)}\n        isMultiContext={isMultiContext}\n        level=\"high\"\n      >\n        {highMessages.map((message, i) => {\n          const toastProps = {\n            key: `${message.context}-${i}`,\n            type: message.level,\n            onClose: () => {\n              clear(message.context)\n              message.onClose && message.onClose()\n            },\n            closed: message.deleted ?? false,\n          }\n\n          if (message.link) {\n            return (\n              <plume.Toast {...toastProps} link={message.link}>\n                {message.message}\n              </plume.Toast>\n            )\n          }\n\n          if (message.button) {\n            return (\n              <plume.Toast {...toastProps} button={message.button}>\n                {message.message}\n              </plume.Toast>\n            )\n          }\n\n          return <plume.Toast {...toastProps}>{message.message}</plume.Toast>\n        })}\n      </Wrapper>\n      <Wrapper\n        className={className}\n        isAllDeleted={lowMessages.every((message) => message.deleted)}\n        isMultiContext={isMultiContext}\n        level=\"low\"\n      >\n        {lowMessages.map((message, i) => {\n          const toastProps = {\n            key: `${message.context}-${i}`,\n            type: message.level,\n            onClose: () => {\n              clear(message.context)\n              message.onClose && message.onClose()\n            },\n            closed: message.deleted ?? false,\n          }\n\n          if (message.link) {\n            return (\n              <plume.Toast {...toastProps} link={message.link}>\n                {message.message}\n              </plume.Toast>\n            )\n          }\n\n          if (message.button) {\n            return (\n              <plume.Toast {...toastProps} button={message.button}>\n                {message.message}\n              </plume.Toast>\n            )\n          }\n\n          return <plume.Toast {...toastProps}>{message.message}</plume.Toast>\n        })}\n      </Wrapper>\n    </>\n  )\n}\n\nexport const Wrapper = styled.div<{ isAllDeleted: boolean; isMultiContext: boolean; level: 'low' | 'high' }>`\n  ${({ isMultiContext }) => {\n    if (isMultiContext) {\n      return css`\n        ${plume.styles.notification.ToastContainer} {\n          position: absolute;\n          width: 100%;\n        }\n      `\n    }\n  }}\n\n  ${({ level }) => {\n    if (level === 'high') {\n      return css`\n        z-index: ${plume.ZINDEX.DRAWER + 1};\n      `\n    }\n\n    if (level === 'low') {\n      return css`\n        z-index: ${plume.ZINDEX.TOAST};\n      `\n    }\n  }}\n\n  ${({ isAllDeleted }) =>\n    isAllDeleted &&\n    css`\n      pointer-events: none;\n    `}\n`\n\nexport const ToastDisplayer = styled(ToastDisplayerContainer)`\n  position: fixed;\n  transform: translateX(-50%);\n  width: 90%;\n  left: 50%;\n\n  @media screen and ${plume.BREAKPOINTS.TABLET} {\n    ${({ offset = plume.SIZES.HEADER_HEIGHT }) => {\n      return css`\n        top: calc(${offset}px + 30px);\n      `\n    }}\n\n    margin: 0;\n    margin-right: 10px;\n    width: 550px;\n  }\n\n  ${({ offset = plume.SIZES.HEADER_HEIGHT, position }) => {\n    if (position === 'bottom') {\n      return css`\n        bottom: 10px;\n      `\n    }\n\n    if (position === 'top') {\n      return css`\n        top: calc(${offset}px + 10px);\n\n        @media screen and ${plume.BREAKPOINTS.TABLET} {\n          top: calc(${offset}px + 30px);\n        }\n      `\n    }\n  }}\n`\n"],
  "mappings": "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",
  "names": ["init_define_process_env", "init_sentry_release_injection_stub", "React", "ToastDisplayerContainer", "className", "contexts", "position", "messages", "clear", "softDelete", "useMessage", "timers", "message", "timer", "isMultiContext", "acc", "highMessages", "lowMessages", "Wrapper", "i", "_a", "toastProps", "Toast", "__spreadProps", "__spreadValues", "_b", "_c", "_d", "_e", "src_default", "__template", "css", "styles_exports", "level", "zindex_exports", "isAllDeleted", "_f", "_g", "_h", "_i", "ToastDisplayer", "breakpoints_exports", "offset", "sizes_exports"]
}