{"version":3,"sources":["../src/use-navermaps.ts"],"sourcesContent":["import { suspend } from 'suspend-react';\n\nimport { useClientOptions } from './contexts/client-options';\nimport { loadNavermapsScript } from './load-navermaps-script';\nimport type { ClientOptions } from './types/client';\n\nasync function load(options?: ClientOptions): Promise<typeof naver.maps> {\n  if (typeof window !== 'undefined' && window.naver?.maps) {\n    return window.naver.maps;\n  }\n\n  if (!options) {\n    throw new Error('react-naver-maps: set options with `useNavermaps.config`');\n  }\n\n  return await loadNavermapsScript(options);\n}\n\nexport function useNavermaps() {\n  if (typeof window === 'undefined') {\n    throw new Error('react-naver-maps: browser');\n  }\n\n  /**\n   * TODO: Provider option 이 변경될 경우 클리어하는 로직 필요\n   * ex) submodule 에 파노라마 추가시 window.naver.maps가 존재하므로 새로 로드하지 않음\n   */\n  if (window.naver?.maps) {\n    return window.naver.maps;\n  }\n\n  const options = useClientOptions();\n\n  return suspend(load, [options, 'react-naver-maps/loadClient']);\n}\n\n// useNavermaps.preload = (options: any) => {\n//   if (!window) {\n//     return;\n//   }\n\n//   return preload(load, [options, 'react-naver-maps/loadClient']);\n// };\n\n// useNavermaps.clear = (options: any) => {\n//   return clear([options, 'react-naver-maps/loadClient']);\n// };\n"],"mappings":";;;;;;;;AAAA,SAAS,eAAe;AAMxB,eAAe,KAAK,SAAqD;AACvE,MAAI,OAAO,WAAW,eAAe,OAAO,OAAO,MAAM;AACvD,WAAO,OAAO,MAAM;AAAA,EACtB;AAEA,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,SAAO,MAAM,oBAAoB,OAAO;AAC1C;AAEO,SAAS,eAAe;AAC7B,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAMA,MAAI,OAAO,OAAO,MAAM;AACtB,WAAO,OAAO,MAAM;AAAA,EACtB;AAEA,QAAM,UAAU,iBAAiB;AAEjC,SAAO,QAAQ,MAAM,CAAC,SAAS,6BAA6B,CAAC;AAC/D;","names":[]}