{"version":3,"sources":["../src/load-navermaps-script.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport type { ReactElement } from 'react';\n\nimport type { ClientOptions } from './types/client';\nimport { loadScript } from './utils/load-script';\n\nexport function loadNavermapsScript(options: ClientOptions) {\n  const url = makeUrl(options);\n\n  // TODO: Caching Promise\n\n  const promise = loadScript(url).then(() => {\n    const navermaps = window.naver.maps;\n\n    if (navermaps.jsContentLoaded) {\n      return navermaps;\n    }\n\n    return new Promise<typeof naver.maps>(resolve => {\n      navermaps.onJSContentLoaded = () => {\n        resolve(navermaps);\n      };\n    });\n  });\n\n  return promise;\n}\n\nfunction makeUrl(options: ClientOptions) {\n  const submodules = options.submodules;\n\n  const clientIdQuery = 'ncpClientId' in options\n    ? `ncpClientId=${options.ncpClientId}`\n    : 'govClientId' in options\n      ? `govClientId=${options.govClientId}`\n      : 'finClientId' in options\n        ? `finClientId=${options.finClientId}`\n        : undefined;\n\n  if (!clientIdQuery) {\n    throw new Error('react-naver-maps: ncpClientId, govClientId or finClientId is required');\n  }\n\n  let url = `https://oapi.map.naver.com/openapi/v3/maps.js?${clientIdQuery}`;\n\n  if (submodules) {\n    url += `&submodules=${submodules.join(',')}`;\n  }\n\n  return url;\n}\n\ntype Props = ClientOptions & { children: () => ReactElement };\n\nexport function LoadNavermapsScript({\n  children: Children,\n  ...options\n}: Props) {\n  const [navermaps, setNavermaps] = useState<typeof naver.maps>();\n\n  useEffect(() => {\n    loadNavermapsScript(options).then((maps) => {\n      setNavermaps(maps);\n    });\n  }, []);\n\n  return (\n    (navermaps && Children) ? <Children /> : null\n  );\n}\n"],"mappings":";;;;;AAAA,SAAS,WAAW,gBAAgB;AAmEN;AA7DvB,SAAS,oBAAoB,SAAwB;AAC1D,QAAM,MAAM,QAAQ,OAAO;AAI3B,QAAM,UAAU,WAAW,GAAG,EAAE,KAAK,MAAM;AACzC,UAAM,YAAY,OAAO,MAAM;AAE/B,QAAI,UAAU,iBAAiB;AAC7B,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,QAA2B,aAAW;AAC/C,gBAAU,oBAAoB,MAAM;AAClC,gBAAQ,SAAS;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;AAEA,SAAS,QAAQ,SAAwB;AACvC,QAAM,aAAa,QAAQ;AAE3B,QAAM,gBAAgB,iBAAiB,UACnC,eAAe,QAAQ,WAAW,KAClC,iBAAiB,UACf,eAAe,QAAQ,WAAW,KAClC,iBAAiB,UACf,eAAe,QAAQ,WAAW,KAClC;AAER,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,uEAAuE;AAAA,EACzF;AAEA,MAAI,MAAM,iDAAiD,aAAa;AAExE,MAAI,YAAY;AACd,WAAO,eAAe,WAAW,KAAK,GAAG,CAAC;AAAA,EAC5C;AAEA,SAAO;AACT;AAIO,SAAS,oBAAoB;AAAA,EAClC,UAAU;AAAA,EACV,GAAG;AACL,GAAU;AACR,QAAM,CAAC,WAAW,YAAY,IAAI,SAA4B;AAE9D,YAAU,MAAM;AACd,wBAAoB,OAAO,EAAE,KAAK,CAAC,SAAS;AAC1C,mBAAa,IAAI;AAAA,IACnB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SACG,aAAa,WAAY,oBAAC,YAAS,IAAK;AAE7C;","names":[]}