{"version":3,"file":"EditorProvider.mjs","names":[],"sources":["../../src/EditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n  defineIntlayerElements,\n  EditorStateManager,\n  type MessengerConfig,\n  setGlobalEditorManager,\n} from '@intlayer/editor';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { type FC, type PropsWithChildren, useEffect, useRef } from 'react';\nimport { EditorStateProvider } from './EditorStateContext';\n\nexport type EditorProviderProps = {\n  configuration: Pick<IntlayerConfig, 'editor' | 'internationalization'>;\n  postMessage: (data: any) => void;\n  allowedOrigins: string[];\n};\n\n/**\n * EditorProvider creates and manages the lifecycle of an EditorStateManager,\n * provides it to all descendants, and registers the Lit web components.\n */\nexport const EditorProvider: FC<PropsWithChildren<EditorProviderProps>> = ({\n  children,\n  configuration,\n  postMessage,\n  allowedOrigins,\n}) => {\n  const managerRef = useRef<EditorStateManager | null>(null);\n\n  if (!managerRef.current) {\n    const messengerConfig: MessengerConfig = {\n      allowedOrigins,\n      postMessageFn: postMessage,\n    };\n\n    managerRef.current = new EditorStateManager({\n      mode: 'editor',\n      messenger: messengerConfig,\n      configuration,\n    });\n  }\n  const manager = managerRef.current;\n\n  useEffect(() => {\n    defineIntlayerElements();\n    setGlobalEditorManager(manager);\n\n    manager.start();\n    return () => {\n      manager.stop();\n      setGlobalEditorManager(null);\n    };\n  }, [manager]);\n\n  useEffect(() => {\n    if (!manager || !configuration || Object.keys(configuration).length === 0)\n      return;\n\n    manager.configuration.set(configuration);\n  }, [manager, configuration]);\n\n  return (\n    <EditorStateProvider manager={manager}>{children}</EditorStateProvider>\n  );\n};\n"],"mappings":";;;;;;;;;;;;AAsBA,MAAa,kBAA8D,EACzE,UACA,eACA,aACA,qBACI;CACJ,MAAM,aAAa,OAAkC,KAAK;AAE1D,KAAI,CAAC,WAAW,QAMd,YAAW,UAAU,IAAI,mBAAmB;EAC1C,MAAM;EACN,WAAW;GANX;GACA,eAAe;GAKW;EAC1B;EACD,CAAC;CAEJ,MAAM,UAAU,WAAW;AAE3B,iBAAgB;AACd,0BAAwB;AACxB,yBAAuB,QAAQ;AAE/B,UAAQ,OAAO;AACf,eAAa;AACX,WAAQ,MAAM;AACd,0BAAuB,KAAK;;IAE7B,CAAC,QAAQ,CAAC;AAEb,iBAAgB;AACd,MAAI,CAAC,WAAW,CAAC,iBAAiB,OAAO,KAAK,cAAc,CAAC,WAAW,EACtE;AAEF,UAAQ,cAAc,IAAI,cAAc;IACvC,CAAC,SAAS,cAAc,CAAC;AAE5B,QACE,oBAAC,qBAAD;EAA8B;EAAU;EAA+B"}