{"version":3,"file":"/etc.clientlibs/corp-aem-sherwin/clientlibs/utils~site-regionselector/utils~site-regionselector.8ac14e6892ac677f89f5.js","mappings":"oKAWO,MAAMA,EAAoB,CAC/BC,EACAC,KAEA,GAAmC,iBAAxBD,EACT,MAAM,IAAIE,MAAM,yDAGlB,GACiC,iBAAxBD,GACiB,OAAxBA,GACAE,MAAMC,QAAQH,GAEd,MAAM,IAAIC,MACR,oFAIJ,OAAOF,EAAoBK,QACzB,cACA,CAACC,EAAkBC,KACjB,MAAMC,EAAeP,EAAoBM,GACzC,MAA+B,iBAAjBC,EAA4BA,EAAeF,K,gTC9BxD,MAAMG,EAAqB,SAETC,IAArBC,OAAe,aAAgDD,IAA7BC,OAAe,OAAQ,KAIhDC,EAAwBC,GAAqB,OAAD,4BACvD,GAAIJ,IACF,OAAOE,OAAe,OAAQ,KAGhC,MAAMG,EAAS,IAAI,EAAAC,OAAO,CACxBC,QAAS,YACTC,OAAQJ,EACRK,SAAU,OAKZ,aAFMJ,EAAOK,OAAOC,MAAOC,OAEvBZ,IACKE,OAAe,OAAQ,UADhC,CAGF,G,sSCzBO,MAAMW,EAAyB,K,MACpC,KAAqB,QAAhB,EAAAX,OAAOY,iBAAS,eAAEC,aACrB,OAAO,EAGT,IAAIC,GAAkB,EAWtB,OATId,OAAOY,UAAUG,aACnBf,OAAOY,UAAUG,YACdC,MAAM,CAACC,KAAM,gBACbC,KAAK,SAAUC,GACdL,EACmB,YAAjBK,EAAOC,OAAwC,WAAjBD,EAAOC,KACzC,GAGGN,GAGIO,EACXC,GACgE,mCAChE,aAAa,IAAIC,QACf,CAACC,EAASC,KACRb,UAAUC,YAAYa,mBACnBC,IACCH,EAAQG,EAASC,SAEnB,KACEH,KAEF,CAACH,cAGLb,MAAM,OAGV,E","sources":["webpack://aem-maven-archetype/./src/scripts/utils/interpolateString.ts","webpack://aem-maven-archetype/./src/scripts/utils/googleMaps.ts","webpack://aem-maven-archetype/./src/scripts/utils/userLocation.ts"],"sourcesContent":["/**\n * The interpolate function accepts a string as the first argument and will interpolate the values\n * found in the object argument.\n *\n * Usage: interpolate(\"This is a {0} with {1} interpolations\", {\"0\": \"string\", \"1\": \"2\"});\n */\n\ninterface InterpolationValues {\n  [propName: string]: unknown;\n}\n\nexport const interpolateString = (\n  interpolationString: string,\n  interpolationValues: InterpolationValues\n): string => {\n  if (typeof interpolationString !== 'string') {\n    throw new Error('interpolationString argument must be of type \"string\"');\n  }\n\n  if (\n    typeof interpolationValues !== 'object' ||\n    interpolationValues === null ||\n    Array.isArray(interpolationValues)\n  ) {\n    throw new Error(\n      'interpolationValues argument must be of type \"object\", non-null and not an Array'\n    );\n  }\n\n  return interpolationString.replace(\n    /{([^{}]*)}/g,\n    (matchedSubstring, captureGroup) => {\n      const matchedToken = interpolationValues[captureGroup];\n      return typeof matchedToken === 'string' ? matchedToken : matchedSubstring;\n    }\n  );\n};\n","import type {LoaderOptions} from '@googlemaps/js-api-loader';\nimport {Loader} from '@googlemaps/js-api-loader';\n\nexport const googleMapsIsLoaded = (): boolean => {\n  return (\n    window['google'] !== undefined && window['google']['maps'] !== undefined\n  );\n};\n\nexport const loadGoogleMaps = async (clientId: string) => {\n  if (googleMapsIsLoaded()) {\n    return window['google']['maps'];\n  }\n\n  const loader = new Loader({\n    version: 'quarterly',\n    client: clientId,\n    language: 'en',\n  } as LoaderOptions);\n\n  await loader.load().catch((err: any) => console.error(err));\n\n  if (googleMapsIsLoaded()) {\n    return window['google']['maps'];\n  }\n};\n","export const userHasLocationEnabled = (): boolean => {\n  if (!window.navigator?.geolocation) {\n    return false;\n  }\n\n  let locationEnabled = true;\n\n  if (window.navigator.permissions) {\n    window.navigator.permissions\n      .query({name: 'geolocation'})\n      .then(function (result) {\n        locationEnabled =\n          result.state === 'granted' || result.state === 'prompt';\n      });\n  }\n\n  return locationEnabled;\n};\n\nexport const requestUserLocation = async (\n  timeout: number\n): Promise<void | Promise<GeolocationCoordinates | undefined>> => {\n  return await new Promise<GeolocationCoordinates | undefined>(\n    (resolve, reject) => {\n      navigator.geolocation.getCurrentPosition(\n        (position) => {\n          resolve(position.coords);\n        },\n        () => {\n          reject();\n        },\n        {timeout}\n      );\n    }\n  ).catch(() => {\n    // Do nothing. This allows us to avoid unnecessary try / catches below and instead return early after async await.\n  });\n};\n"],"names":["interpolateString","interpolationString","interpolationValues","Error","Array","isArray","replace","matchedSubstring","captureGroup","matchedToken","googleMapsIsLoaded","undefined","window","loadGoogleMaps","clientId","loader","Loader","version","client","language","load","catch","err","userHasLocationEnabled","navigator","geolocation","locationEnabled","permissions","query","name","then","result","state","requestUserLocation","timeout","Promise","resolve","reject","getCurrentPosition","position","coords"],"sourceRoot":""}