@local-logic/sdks-app 1.24.49 → 1.24.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Attribution-CmWvRPeT.js → Attribution-BBLQLcDL.js} +2 -2
- package/dist/assets/{Attribution-CmWvRPeT.js.map → Attribution-BBLQLcDL.js.map} +1 -1
- package/dist/assets/{Attribution-legacy-BFfDJ-Io.js → Attribution-legacy-DF-w8bUm.js} +2 -2
- package/dist/assets/{Attribution-legacy-BFfDJ-Io.js.map → Attribution-legacy-DF-w8bUm.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-CwRK83GU.js → Cluster-BHQcO6iC-BvwFpH8u.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-CwRK83GU.js.map → Cluster-BHQcO6iC-BvwFpH8u.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-legacy-Dzu29_ee.js → Cluster-BHQcO6iC-legacy-B-N7N2sp.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-legacy-Dzu29_ee.js.map → Cluster-BHQcO6iC-legacy-B-N7N2sp.js.map} +1 -1
- package/dist/assets/{Google-BFAJ84CT-A80PWdLG.js → Google-BFAJ84CT-D0fl8DKu.js} +2 -2
- package/dist/assets/{Google-BFAJ84CT-A80PWdLG.js.map → Google-BFAJ84CT-D0fl8DKu.js.map} +1 -1
- package/dist/assets/{Google-BFAJ84CT-legacy-lwG8JPoe.js → Google-BFAJ84CT-legacy-DOfki5zY.js} +2 -2
- package/dist/assets/{Google-BFAJ84CT-legacy-lwG8JPoe.js.map → Google-BFAJ84CT-legacy-DOfki5zY.js.map} +1 -1
- package/dist/assets/{Google-BS41ufih-BR0MG-cR.js → Google-BS41ufih-CCL2EiR7.js} +2 -2
- package/dist/assets/{Google-BS41ufih-BR0MG-cR.js.map → Google-BS41ufih-CCL2EiR7.js.map} +1 -1
- package/dist/assets/{Google-BS41ufih-legacy-DIiKVr_D.js → Google-BS41ufih-legacy-HBBOdoJv.js} +2 -2
- package/dist/assets/{Google-BS41ufih-legacy-DIiKVr_D.js.map → Google-BS41ufih-legacy-HBBOdoJv.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--DBdPqrE-.js → Google-CH7a2yx--H0Ib5Vxu.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--DBdPqrE-.js.map → Google-CH7a2yx--H0Ib5Vxu.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--legacy-DmNPIP9N.js → Google-CH7a2yx--legacy-CEfJNJJA.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--legacy-DmNPIP9N.js.map → Google-CH7a2yx--legacy-CEfJNJJA.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-COL5oxjz.js → Google-CXGCn-oJ-B74K9ae_.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-COL5oxjz.js.map → Google-CXGCn-oJ-B74K9ae_.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-legacy-ChA4bofH.js → Google-CXGCn-oJ-legacy-D8Y8eRA5.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-legacy-ChA4bofH.js.map → Google-CXGCn-oJ-legacy-D8Y8eRA5.js.map} +1 -1
- package/dist/assets/{Google-DbOLrYJn-BRdgy4Wo.js → Google-DbOLrYJn-BuUr1PYE.js} +2 -2
- package/dist/assets/{Google-DbOLrYJn-BRdgy4Wo.js.map → Google-DbOLrYJn-BuUr1PYE.js.map} +1 -1
- package/dist/assets/{Google-DbOLrYJn-legacy-CNAMWd3F.js → Google-DbOLrYJn-legacy-nP585K6M.js} +2 -2
- package/dist/assets/{Google-DbOLrYJn-legacy-CNAMWd3F.js.map → Google-DbOLrYJn-legacy-nP585K6M.js.map} +1 -1
- package/dist/assets/{GridGraph-DlZ24noP.js → GridGraph-DAEJqX2q.js} +2 -2
- package/dist/assets/{GridGraph-DlZ24noP.js.map → GridGraph-DAEJqX2q.js.map} +1 -1
- package/dist/assets/{GridGraph-legacy-BTpx8dbe.js → GridGraph-legacy-BtI2k5V4.js} +2 -2
- package/dist/assets/{GridGraph-legacy-BTpx8dbe.js.map → GridGraph-legacy-BtI2k5V4.js.map} +1 -1
- package/dist/assets/{LeadCapture-3JZ3x-5D.js → LeadCapture-Dhbwzi68.js} +2 -2
- package/dist/assets/{LeadCapture-3JZ3x-5D.js.map → LeadCapture-Dhbwzi68.js.map} +1 -1
- package/dist/assets/{LeadCapture-legacy-D91ViTHk.js → LeadCapture-legacy-CprIfo_F.js} +2 -2
- package/dist/assets/{LeadCapture-legacy-D91ViTHk.js.map → LeadCapture-legacy-CprIfo_F.js.map} +1 -1
- package/dist/assets/LocalContent-bQoLNGOi.js +2 -0
- package/dist/assets/LocalContent-bQoLNGOi.js.map +1 -0
- package/dist/assets/LocalContent-legacy-19rN24DZ.js +2 -0
- package/dist/assets/LocalContent-legacy-19rN24DZ.js.map +1 -0
- package/dist/assets/{LocalDemographics-QiaHBdfT.js → LocalDemographics-0EClTQwO.js} +2 -2
- package/dist/assets/{LocalDemographics-QiaHBdfT.js.map → LocalDemographics-0EClTQwO.js.map} +1 -1
- package/dist/assets/{LocalDemographics-legacy-rFFf8Zmr.js → LocalDemographics-legacy-DiCqsCPj.js} +2 -2
- package/dist/assets/{LocalDemographics-legacy-rFFf8Zmr.js.map → LocalDemographics-legacy-DiCqsCPj.js.map} +1 -1
- package/dist/assets/{Mapbox-CpLnA607-CX-Mje-Q.js → Mapbox-CpLnA607-LIoSBTmr.js} +2 -2
- package/dist/assets/{Mapbox-CpLnA607-CX-Mje-Q.js.map → Mapbox-CpLnA607-LIoSBTmr.js.map} +1 -1
- package/dist/assets/{Mapbox-CpLnA607-legacy-BYYc3e8E.js → Mapbox-CpLnA607-legacy-Cqm5fWKk.js} +2 -2
- package/dist/assets/{Mapbox-CpLnA607-legacy-BYYc3e8E.js.map → Mapbox-CpLnA607-legacy-Cqm5fWKk.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-B7aBtlFM.js → Mapbox-DDJ1gHRb-Xd6OKBG5.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-B7aBtlFM.js.map → Mapbox-DDJ1gHRb-Xd6OKBG5.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-Cl3aLtzg.js → Mapbox-DDJ1gHRb-legacy-BCrDsW44.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-Cl3aLtzg.js.map → Mapbox-DDJ1gHRb-legacy-BCrDsW44.js.map} +1 -1
- package/dist/assets/{Mapbox-DiD9etYJ-f-psazKn.js → Mapbox-DiD9etYJ-BRWX6VFK.js} +2 -2
- package/dist/assets/{Mapbox-DiD9etYJ-f-psazKn.js.map → Mapbox-DiD9etYJ-BRWX6VFK.js.map} +1 -1
- package/dist/assets/{Mapbox-DiD9etYJ-legacy-LluZy4QZ.js → Mapbox-DiD9etYJ-legacy-D3a-Ph5k.js} +2 -2
- package/dist/assets/{Mapbox-DiD9etYJ-legacy-LluZy4QZ.js.map → Mapbox-DiD9etYJ-legacy-D3a-Ph5k.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-BeLgUdwu.js → Mapbox-DtZmt1D_-CHqeEw-Y.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-BeLgUdwu.js.map → Mapbox-DtZmt1D_-CHqeEw-Y.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-vsGCwRY4.js → Mapbox-DtZmt1D_-legacy-B45rZmB5.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-vsGCwRY4.js.map → Mapbox-DtZmt1D_-legacy-B45rZmB5.js.map} +1 -1
- package/dist/assets/{Mapbox-u11C3LWs-C62ZKLWB.js → Mapbox-u11C3LWs-DDoFplx_.js} +2 -2
- package/dist/assets/{Mapbox-u11C3LWs-C62ZKLWB.js.map → Mapbox-u11C3LWs-DDoFplx_.js.map} +1 -1
- package/dist/assets/{Mapbox-u11C3LWs-legacy-Bk6dxfaT.js → Mapbox-u11C3LWs-legacy-BKq7QBCH.js} +2 -2
- package/dist/assets/{Mapbox-u11C3LWs-legacy-Bk6dxfaT.js.map → Mapbox-u11C3LWs-legacy-BKq7QBCH.js.map} +1 -1
- package/dist/assets/{Maptiler-C0oTROMk-BB-a0Z7L.js → Maptiler-C0oTROMk-DSA9MgpR.js} +2 -2
- package/dist/assets/{Maptiler-C0oTROMk-BB-a0Z7L.js.map → Maptiler-C0oTROMk-DSA9MgpR.js.map} +1 -1
- package/dist/assets/{Maptiler-C0oTROMk-legacy-C9dqRNUr.js → Maptiler-C0oTROMk-legacy-Z6D_BxYX.js} +2 -2
- package/dist/assets/{Maptiler-C0oTROMk-legacy-C9dqRNUr.js.map → Maptiler-C0oTROMk-legacy-Z6D_BxYX.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-DuajcQQT.js → Maptiler-DJScKW8p-56GtCFGE.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-DuajcQQT.js.map → Maptiler-DJScKW8p-56GtCFGE.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-legacy-DXyPFbTM.js → Maptiler-DJScKW8p-legacy-CnngZ_KZ.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-legacy-DXyPFbTM.js.map → Maptiler-DJScKW8p-legacy-CnngZ_KZ.js.map} +1 -1
- package/dist/assets/{Maptiler-DdeFS4iM-azU57uP5.js → Maptiler-DdeFS4iM-YGb7vfrY.js} +2 -2
- package/dist/assets/{Maptiler-DdeFS4iM-azU57uP5.js.map → Maptiler-DdeFS4iM-YGb7vfrY.js.map} +1 -1
- package/dist/assets/{Maptiler-DdeFS4iM-legacy-CZAfILK_.js → Maptiler-DdeFS4iM-legacy-CUrzJD7r.js} +2 -2
- package/dist/assets/{Maptiler-DdeFS4iM-legacy-CZAfILK_.js.map → Maptiler-DdeFS4iM-legacy-CUrzJD7r.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-B3O48O5D.js → Maptiler-DqeshLom-jhEdTzYH.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-B3O48O5D.js.map → Maptiler-DqeshLom-jhEdTzYH.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-legacy-BBq0Ij_2.js → Maptiler-DqeshLom-legacy-QVaGZ4Iy.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-legacy-BBq0Ij_2.js.map → Maptiler-DqeshLom-legacy-QVaGZ4Iy.js.map} +1 -1
- package/dist/assets/{Maptiler-YjlcPccn-BzcH1XLE.js → Maptiler-YjlcPccn-DYh4UcWD.js} +2 -2
- package/dist/assets/{Maptiler-YjlcPccn-BzcH1XLE.js.map → Maptiler-YjlcPccn-DYh4UcWD.js.map} +1 -1
- package/dist/assets/{Maptiler-YjlcPccn-legacy-r9DZeBKe.js → Maptiler-YjlcPccn-legacy-C2-SWz4m.js} +2 -2
- package/dist/assets/{Maptiler-YjlcPccn-legacy-r9DZeBKe.js.map → Maptiler-YjlcPccn-legacy-C2-SWz4m.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-qehirC0J.js → MarkerIcon-Bc3X9WQk-BmXEQskv.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-qehirC0J.js.map → MarkerIcon-Bc3X9WQk-BmXEQskv.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-R7-0xkIw.js → MarkerIcon-Bc3X9WQk-legacy-CF-pvmlL.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-R7-0xkIw.js.map → MarkerIcon-Bc3X9WQk-legacy-CF-pvmlL.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-BZlgj_O-.js → NeighborhoodCard-DmuFsJ6Z.js} +2 -2
- package/dist/assets/{NeighborhoodCard-BZlgj_O-.js.map → NeighborhoodCard-DmuFsJ6Z.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-legacy-DFFxkfcs.js → NeighborhoodCard-legacy-CEfoqH6v.js} +2 -2
- package/dist/assets/{NeighborhoodCard-legacy-DFFxkfcs.js.map → NeighborhoodCard-legacy-CEfoqH6v.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-UKWqdMzj.js → NeighborhoodCharacteristics-Ci51K7n8.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-UKWqdMzj.js.map → NeighborhoodCharacteristics-Ci51K7n8.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-legacy-C1rReB55.js → NeighborhoodCharacteristics-legacy-C7vOAHg1.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-legacy-C1rReB55.js.map → NeighborhoodCharacteristics-legacy-C7vOAHg1.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-CJmPIHmh.js → NeighborhoodDemographics-IjQB08sh.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-CJmPIHmh.js.map → NeighborhoodDemographics-IjQB08sh.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-legacy-DngmrZkY.js → NeighborhoodDemographics-legacy-C-tZXXwf.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-legacy-DngmrZkY.js.map → NeighborhoodDemographics-legacy-C-tZXXwf.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-BMePcA63.js → NeighborhoodFeatured-CKpLOxa-.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-BMePcA63.js.map → NeighborhoodFeatured-CKpLOxa-.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-legacy-Xr3wOD6O.js → NeighborhoodFeatured-legacy-C01YTfJI.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-legacy-Xr3wOD6O.js.map → NeighborhoodFeatured-legacy-C01YTfJI.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-D_96gi64.js → NeighborhoodHero-PhqkYV-J.js} +2 -2
- package/dist/assets/{NeighborhoodHero-D_96gi64.js.map → NeighborhoodHero-PhqkYV-J.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-legacy-Dl7Maezs.js → NeighborhoodHero-legacy-DMpb_bw0.js} +2 -2
- package/dist/assets/{NeighborhoodHero-legacy-Dl7Maezs.js.map → NeighborhoodHero-legacy-DMpb_bw0.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-DDTVAd9p.js → NeighborhoodHighlights-DJ28aUDv.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-DDTVAd9p.js.map → NeighborhoodHighlights-DJ28aUDv.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-legacy-BDOKUo6R.js → NeighborhoodHighlights-legacy-DpnHaLNf.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-legacy-BDOKUo6R.js.map → NeighborhoodHighlights-legacy-DpnHaLNf.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-legacy-Df8PeSMo.js → NeighborhoodMap-legacy-BqWdzaEi.js} +2 -2
- package/dist/assets/{NeighborhoodMap-legacy-Df8PeSMo.js.map → NeighborhoodMap-legacy-BqWdzaEi.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-Bbj8_aLK.js → NeighborhoodMap-nMtKArKU.js} +2 -2
- package/dist/assets/{NeighborhoodMap-Bbj8_aLK.js.map → NeighborhoodMap-nMtKArKU.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-C9502FFP.js → NeighborhoodMarketTrends-DkTZQPFB.js} +3 -3
- package/dist/assets/{NeighborhoodMarketTrends-C9502FFP.js.map → NeighborhoodMarketTrends-DkTZQPFB.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-legacy-sRvq4wUj.js → NeighborhoodMarketTrends-legacy-BalAm_PO.js} +2 -2
- package/dist/assets/{NeighborhoodMarketTrends-legacy-sRvq4wUj.js.map → NeighborhoodMarketTrends-legacy-BalAm_PO.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-CnZgl8mm.js → NeighborhoodMatch-Bu1R3Ucu.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-CnZgl8mm.js.map → NeighborhoodMatch-Bu1R3Ucu.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-legacy-BTbGB5Zu.js → NeighborhoodMatch-legacy-D6BhCnZQ.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-legacy-BTbGB5Zu.js.map → NeighborhoodMatch-legacy-D6BhCnZQ.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-D_ihTxWa.js → NeighborhoodPropertyValueDrivers-DbqBqXZs.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-D_ihTxWa.js.map → NeighborhoodPropertyValueDrivers-DbqBqXZs.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DSdVZ6NJ.js → NeighborhoodPropertyValueDrivers-legacy-BUJzhqnS.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DSdVZ6NJ.js.map → NeighborhoodPropertyValueDrivers-legacy-BUJzhqnS.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-Da7MHrcX.js → NeighborhoodSchools-CD532exA.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-Da7MHrcX.js.map → NeighborhoodSchools-CD532exA.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-legacy-CyHJlQrW.js → NeighborhoodSchools-legacy-DWhlxVia.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-legacy-CyHJlQrW.js.map → NeighborhoodSchools-legacy-DWhlxVia.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-COQ_6Cr2.js → NeighborhoodShowcase-B9bUlFRd.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-COQ_6Cr2.js.map → NeighborhoodShowcase-B9bUlFRd.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-legacy-PXaG1yQS.js → NeighborhoodShowcase-legacy-hQKjKlpn.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-legacy-PXaG1yQS.js.map → NeighborhoodShowcase-legacy-hQKjKlpn.js.map} +1 -1
- package/dist/assets/{NoDataContent-C8IUTaDf.js → NoDataContent-R0BuVB8L.js} +2 -2
- package/dist/assets/{NoDataContent-C8IUTaDf.js.map → NoDataContent-R0BuVB8L.js.map} +1 -1
- package/dist/assets/{NoDataContent-legacy-E28dtiHR.js → NoDataContent-legacy-DS0hbyOs.js} +2 -2
- package/dist/assets/{NoDataContent-legacy-E28dtiHR.js.map → NoDataContent-legacy-DS0hbyOs.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-CCE4aMAq.js → ResizeWrapper-FkR4Iws3.js} +2 -2
- package/dist/assets/{ResizeWrapper-CCE4aMAq.js.map → ResizeWrapper-FkR4Iws3.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-legacy-CnCNe8NK.js → ResizeWrapper-legacy-CynGwSWy.js} +2 -2
- package/dist/assets/{ResizeWrapper-legacy-CnCNe8NK.js.map → ResizeWrapper-legacy-CynGwSWy.js.map} +1 -1
- package/dist/assets/{ScoreCardList-nKAaGSEv.js → ScoreCardList-DpsqKOCe.js} +2 -2
- package/dist/assets/{ScoreCardList-nKAaGSEv.js.map → ScoreCardList-DpsqKOCe.js.map} +1 -1
- package/dist/assets/{ScoreCardList-legacy-DuPdUK9W.js → ScoreCardList-legacy-wyEaRIEJ.js} +2 -2
- package/dist/assets/{ScoreCardList-legacy-DuPdUK9W.js.map → ScoreCardList-legacy-wyEaRIEJ.js.map} +1 -1
- package/dist/assets/{ScoreIcon-DxDhIa2U.js → ScoreIcon-BIOSrdZ6.js} +2 -2
- package/dist/assets/{ScoreIcon-DxDhIa2U.js.map → ScoreIcon-BIOSrdZ6.js.map} +1 -1
- package/dist/assets/{ScoreIcon-legacy-dMKTdDwY.js → ScoreIcon-legacy-CLOKISzQ.js} +2 -2
- package/dist/assets/{ScoreIcon-legacy-dMKTdDwY.js.map → ScoreIcon-legacy-CLOKISzQ.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-D1KT5Y9s.js → Testing--n5Ro0Ek-f0Zkq3TO.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-D1KT5Y9s.js.map → Testing--n5Ro0Ek-f0Zkq3TO.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-legacy-ln_w4QFR.js → Testing--n5Ro0Ek-legacy-CvaVY75z.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-legacy-ln_w4QFR.js.map → Testing--n5Ro0Ek-legacy-CvaVY75z.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-BxHHooaa.js → Testing-BNJwzbRK-CbaqSNqV.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-BxHHooaa.js.map → Testing-BNJwzbRK-CbaqSNqV.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-legacy-CU-TTswg.js → Testing-BNJwzbRK-legacy-BE53cUN1.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-legacy-CU-TTswg.js.map → Testing-BNJwzbRK-legacy-BE53cUN1.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-BQJ8vQWO.js → Testing-CoRLhmNT-ByFpZqsT.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-BQJ8vQWO.js.map → Testing-CoRLhmNT-ByFpZqsT.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-legacy-CcLmQfBV.js → Testing-CoRLhmNT-legacy--vAMVzJR.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-legacy-CcLmQfBV.js.map → Testing-CoRLhmNT-legacy--vAMVzJR.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-legacy-DTm3-QbM.js → Testing-DGUeGxdc-legacy-Cx-1038q.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-legacy-DTm3-QbM.js.map → Testing-DGUeGxdc-legacy-Cx-1038q.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-BmY37RV6.js → Testing-DGUeGxdc-oqCgkh9b.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-BmY37RV6.js.map → Testing-DGUeGxdc-oqCgkh9b.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-Cu6NCilu.js → Testing-DzWAcbhL-BI3kq7T0.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-Cu6NCilu.js.map → Testing-DzWAcbhL-BI3kq7T0.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-legacy-C-QKN9B8.js → Testing-DzWAcbhL-legacy-BYxPrbIz.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-legacy-C-QKN9B8.js.map → Testing-DzWAcbhL-legacy-BYxPrbIz.js.map} +1 -1
- package/dist/assets/{TitleHeader-C5a5feWK.js → TitleHeader-DP_c66FE.js} +2 -2
- package/dist/assets/{TitleHeader-C5a5feWK.js.map → TitleHeader-DP_c66FE.js.map} +1 -1
- package/dist/assets/{TitleHeader-legacy-BHoQcbhA.js → TitleHeader-legacy-CFzytrLC.js} +2 -2
- package/dist/assets/{TitleHeader-legacy-BHoQcbhA.js.map → TitleHeader-legacy-CFzytrLC.js.map} +1 -1
- package/dist/assets/{Trans-nhYks9XR.js → Trans-Ds5ZEJe0.js} +2 -2
- package/dist/assets/{Trans-nhYks9XR.js.map → Trans-Ds5ZEJe0.js.map} +1 -1
- package/dist/assets/{Trans-legacy-Ckh35v1q.js → Trans-legacy-CjKEOBG5.js} +2 -2
- package/dist/assets/{Trans-legacy-Ckh35v1q.js.map → Trans-legacy-CjKEOBG5.js.map} +1 -1
- package/dist/assets/{ValidateOptions-BMFVNi0T.js → ValidateOptions-BFQGzpeB.js} +2 -2
- package/dist/assets/{ValidateOptions-BMFVNi0T.js.map → ValidateOptions-BFQGzpeB.js.map} +1 -1
- package/dist/assets/{ValidateOptions-legacy-xfFn7_tu.js → ValidateOptions-legacy-D28WbZDV.js} +2 -2
- package/dist/assets/{ValidateOptions-legacy-xfFn7_tu.js.map → ValidateOptions-legacy-D28WbZDV.js.map} +1 -1
- package/dist/assets/{dist-CKJdviNw.js → dist-DSt-UmMd.js} +2 -2
- package/dist/assets/{dist-CKJdviNw.js.map → dist-DSt-UmMd.js.map} +1 -1
- package/dist/assets/{dist-legacy-CZ64X46X.js → dist-legacy-BQL5TCnG.js} +2 -2
- package/dist/assets/{dist-legacy-CZ64X46X.js.map → dist-legacy-BQL5TCnG.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-legacy-v_dMHr0E.js → getMapProviderConfig-legacy-CAXMPGrv.js} +2 -2
- package/dist/assets/getMapProviderConfig-legacy-CAXMPGrv.js.map +1 -0
- package/dist/assets/{getMapProviderConfig-Bkg7KAaa.js → getMapProviderConfig-su6Fsc97.js} +3 -3
- package/dist/assets/getMapProviderConfig-su6Fsc97.js.map +1 -0
- package/dist/assets/{index-CR11I_3M.js → index-BauYBca2.js} +3 -3
- package/dist/assets/{index-CR11I_3M.js.map → index-BauYBca2.js.map} +1 -1
- package/dist/assets/{index-legacy-IimBc_IJ.js → index-legacy-CCkcnVFJ.js} +2 -2
- package/dist/assets/{index-legacy-IimBc_IJ.js.map → index-legacy-CCkcnVFJ.js.map} +1 -1
- package/dist/assets/{index.es-BaIFaftO.js → index.es-I44QB7B4.js} +2 -2
- package/dist/assets/{index.es-BaIFaftO.js.map → index.es-I44QB7B4.js.map} +1 -1
- package/dist/assets/{index.es-legacy-D-Fla9xS.js → index.es-legacy-CVQ7Oc74.js} +2 -2
- package/dist/assets/{index.es-legacy-D-Fla9xS.js.map → index.es-legacy-CVQ7Oc74.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-C2zuaJxQ.js → mapbox-jb8Zev6T-CM3kC4gd.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-C2zuaJxQ.js.map → mapbox-jb8Zev6T-CM3kC4gd.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-legacy-CgdO849z.js → mapbox-jb8Zev6T-legacy-CJO_61Oz.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-legacy-CgdO849z.js.map → mapbox-jb8Zev6T-legacy-CJO_61Oz.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-C7gJnC54.js → maplibre-CUYkxr-D-BHzHF5As.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-C7gJnC54.js.map → maplibre-CUYkxr-D-BHzHF5As.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-legacy-CbJueHVF.js → maplibre-CUYkxr-D-legacy-ZDsrPIQm.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-legacy-CbJueHVF.js.map → maplibre-CUYkxr-D-legacy-ZDsrPIQm.js.map} +1 -1
- package/dist/assets/neighborhood-fallback-CizB5oi9.js.map +1 -1
- package/dist/assets/{sdks-Dz1G5v3d.js → sdks-DQOBL475.js} +2 -2
- package/dist/assets/{sdks-Dz1G5v3d.js.map → sdks-DQOBL475.js.map} +1 -1
- package/dist/assets/{sdks-legacy-DvG_h2RB.js → sdks-legacy-CEopDwWU.js} +2 -2
- package/dist/assets/{sdks-legacy-DvG_h2RB.js.map → sdks-legacy-CEopDwWU.js.map} +1 -1
- package/dist/assets/{useDemographicsData-CgV9Xllo.js → useDemographicsData-C8LyCTko.js} +2 -2
- package/dist/assets/{useDemographicsData-CgV9Xllo.js.map → useDemographicsData-C8LyCTko.js.map} +1 -1
- package/dist/assets/{useDemographicsData-legacy-CBDc094b.js → useDemographicsData-legacy-BEI3yS9Z.js} +2 -2
- package/dist/assets/{useDemographicsData-legacy-CBDc094b.js.map → useDemographicsData-legacy-BEI3yS9Z.js.map} +1 -1
- package/dist/assets/{useGeographies-Bn2EabwT.js → useGeographies-DUScqOGP.js} +2 -2
- package/dist/assets/{useGeographies-Bn2EabwT.js.map → useGeographies-DUScqOGP.js.map} +1 -1
- package/dist/assets/{useGeographies-legacy-BAlc4rN4.js → useGeographies-legacy-B3Z8U_cb.js} +2 -2
- package/dist/assets/{useGeographies-legacy-BAlc4rN4.js.map → useGeographies-legacy-B3Z8U_cb.js.map} +1 -1
- package/dist/assets/{useIsMobile-cGksoChT.js → useIsMobile-_UjZcJng.js} +2 -2
- package/dist/assets/{useIsMobile-cGksoChT.js.map → useIsMobile-_UjZcJng.js.map} +1 -1
- package/dist/assets/{useIsMobile-legacy-0ylCQLlg.js → useIsMobile-legacy-Co-fla-T.js} +2 -2
- package/dist/assets/{useIsMobile-legacy-0ylCQLlg.js.map → useIsMobile-legacy-Co-fla-T.js.map} +1 -1
- package/dist/assets/{useLocation-C-nArQsg.js → useLocation-Bly3Zz-3.js} +2 -2
- package/dist/assets/{useLocation-C-nArQsg.js.map → useLocation-Bly3Zz-3.js.map} +1 -1
- package/dist/assets/{useLocation-legacy-C5QLYNDm.js → useLocation-legacy-C62TMsoz.js} +2 -2
- package/dist/assets/{useLocation-legacy-C5QLYNDm.js.map → useLocation-legacy-C62TMsoz.js.map} +1 -1
- package/dist/assets/{useProfiles-Cnvirp42.js → useProfiles-BuSEHOvk.js} +2 -2
- package/dist/assets/{useProfiles-Cnvirp42.js.map → useProfiles-BuSEHOvk.js.map} +1 -1
- package/dist/assets/{useProfiles-legacy-CaeWP1Oc.js → useProfiles-legacy-48Pr0P-X.js} +2 -2
- package/dist/assets/{useProfiles-legacy-CaeWP1Oc.js.map → useProfiles-legacy-48Pr0P-X.js.map} +1 -1
- package/dist/assets/{useSchools-yY8MBlCH.js → useSchools-B6PD7wW2.js} +2 -2
- package/dist/assets/{useSchools-yY8MBlCH.js.map → useSchools-B6PD7wW2.js.map} +1 -1
- package/dist/assets/{useSchools-legacy-Dol1lMjE.js → useSchools-legacy-DDuNul40.js} +2 -2
- package/dist/assets/{useSchools-legacy-Dol1lMjE.js.map → useSchools-legacy-DDuNul40.js.map} +1 -1
- package/dist/assets/{useScores-DgQzgrYJ.js → useScores-DlQqfhsi.js} +2 -2
- package/dist/assets/{useScores-DgQzgrYJ.js.map → useScores-DlQqfhsi.js.map} +1 -1
- package/dist/assets/{useScores-legacy-DB5a8Bq3.js → useScores-legacy-B5vBekhb.js} +2 -2
- package/dist/assets/{useScores-legacy-DB5a8Bq3.js.map → useScores-legacy-B5vBekhb.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/types/components/PoiIcon/index.d.ts.map +1 -1
- package/dist/types/components/PoiIcon/index.js +1 -0
- package/dist/types/components/PoiIcon/index.js.map +1 -1
- package/dist/types/features/pois/keyFactory.d.ts +1 -1
- package/dist/types/sdks/LocalContent/components/Survey/styles.d.ts +1 -1
- package/dist/types/sdks/LocalContent/components/Survey/styles.d.ts.map +1 -1
- package/dist/types/sdks/LocalContent/components/Survey/styles.js +1 -1
- package/dist/types/sdks/LocalContent/constants.js +1 -1
- package/dist/types/sdks/LocalContent/constants.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/LocalContent-DGPSnT3m.js +0 -2
- package/dist/assets/LocalContent-DGPSnT3m.js.map +0 -1
- package/dist/assets/LocalContent-legacy-BT_rzbhH.js +0 -2
- package/dist/assets/LocalContent-legacy-BT_rzbhH.js.map +0 -1
- package/dist/assets/getMapProviderConfig-Bkg7KAaa.js.map +0 -1
- package/dist/assets/getMapProviderConfig-legacy-v_dMHr0E.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){function e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,n)}return i}function t(t){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?e(Object(a),!0).forEach(function(e){i(t,e,a[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):e(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-DvG_h2RB.js","./ScoreIcon-legacy-dMKTdDwY.js","./IconBase.es-legacy-VUFA7Zpu.js","./index-legacy-IimBc_IJ.js","./useGeographies-legacy-BAlc4rN4.js","./globals-legacy-pnnbZMiO.js","./ResizeWrapper-legacy-CnCNe8NK.js","./ValidateOptions-legacy-xfFn7_tu.js","./useIsMobile-legacy-0ylCQLlg.js","./useScores-legacy-DB5a8Bq3.js","./TitleHeader-legacy-BHoQcbhA.js","./NoDataContent-legacy-E28dtiHR.js"],function(e,i){var n,a,o,r,l,s,d,g,c,u,h,p,m,v,f,y,b,j,x,M,Z,H,w,I,O,E,A,V,N,S,D,L,P,k,_,F,G,K,W,T,R,q,B,C,$;function z({isLoading:e=!1,score:t}){return(0,P.jsx)("div",{className:G,children:(0,P.jsxs)("div",{className:K,children:[e&&(0,P.jsx)(V,{className:W}),!e&&t&&(0,P.jsx)(v,{score:t,className:W})]})})}function J({score:e}){const{t:t}=s(["neighborhoodHighlights","common"]);return(0,P.jsxs)("div",{"data-testid":`highlight-content-${e}`,className:T,children:[(0,P.jsx)("p",{"data-testid":"highlight-title",className:R,children:(0,P.jsx)("span",{children:t("highlight.title")})}),(0,P.jsx)("p",{"data-testid":"highlight-pill",className:q,children:e&&t(`common:scores.${e}.title`)})]})}function U(){const{t:e}=s("neighborhoodHighlights"),{isLoading:t,scores:i}=_(),n=(0,E.useMemo)(()=>t||!i?[]:function(e){const t=[];return void 0===e||L.map(t=>{var i;return{scoreName:t,value:Math.round(10*Number(null===(i=e[t])||void 0===i?void 0:i.value))/10*2}}).filter(e=>e.value>7).sort((e,t)=>e.value<t.value?1:-1).slice(0,3).map(e=>t.push(e.scoreName)),t}(i),[i,t]);return t||0!==n.length?(0,P.jsx)("div",{"data-testid":"highlights-container",className:C,children:(t?[1,2,3]:n).map((e,i)=>(0,P.jsx)(B,{isLoading:t,score:"number"!=typeof e?e:void 0},i))}):(0,P.jsx)(O,{text:e("noData")})}function Q(){const{t:e}=s("neighborhoodHighlights"),{title:t}=_();return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(I,{title:"string"==typeof t||!1===t?t:e("title")}),(0,P.jsx)(U,{})]})}return{setters:[function(e){n=e.a},function(e){a=e.l},function(e){o=e.a,r=e.d,l=e.f,s=e.g,d=e.m,g=e.n,c=e.o,u=e.r,h=e.s,p=e.t,m=e.u},function(e){v=e.t},function(e){f=e.t},function(e){y=e.J,b=e.i,j=e.n},function(e){x=e.t},function(e){},function(e){M=e.t},function(e){Z=e.t},function(e){H=e.t},function(e){w=e.t},function(e){I=e.t},function(e){O=e.t}],execute:function(){E=n(a(),1),A=new Map([["bold",E.createElement(E.Fragment,null,E.createElement("path",{d:"M140,32V64a12,12,0,0,1-24,0V32a12,12,0,0,1,24,0Zm84,84H192a12,12,0,0,0,0,24h32a12,12,0,0,0,0-24Zm-42.26,48.77a12,12,0,1,0-17,17l22.63,22.63a12,12,0,0,0,17-17ZM128,180a12,12,0,0,0-12,12v32a12,12,0,0,0,24,0V192A12,12,0,0,0,128,180ZM74.26,164.77,51.63,187.4a12,12,0,0,0,17,17l22.63-22.63a12,12,0,1,0-17-17ZM76,128a12,12,0,0,0-12-12H32a12,12,0,0,0,0,24H64A12,12,0,0,0,76,128ZM68.6,51.63a12,12,0,1,0-17,17L74.26,91.23a12,12,0,0,0,17-17Z"}))],["duotone",E.createElement(E.Fragment,null,E.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),E.createElement("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"}))],["fill",E.createElement(E.Fragment,null,E.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM48,136a8,8,0,0,1,0-16H72a8,8,0,0,1,0,16Zm46.06,37.25-17,17a8,8,0,0,1-11.32-11.32l17-17a8,8,0,0,1,11.31,11.31Zm0-79.19a8,8,0,0,1-11.31,0l-17-17A8,8,0,0,1,77.09,65.77l17,17A8,8,0,0,1,94.06,94.06ZM136,208a8,8,0,0,1-16,0V184a8,8,0,0,1,16,0Zm0-136a8,8,0,0,1-16,0V48a8,8,0,0,1,16,0Zm54.23,118.23a8,8,0,0,1-11.32,0l-17-17a8,8,0,0,1,11.31-11.31l17,17A8,8,0,0,1,190.23,190.23ZM208,136H184a8,8,0,0,1,0-16h24a8,8,0,0,1,0,16Z"}))],["light",E.createElement(E.Fragment,null,E.createElement("path",{d:"M134,32V64a6,6,0,0,1-12,0V32a6,6,0,0,1,12,0Zm90,90H192a6,6,0,0,0,0,12h32a6,6,0,0,0,0-12Zm-46.5,47A6,6,0,0,0,169,177.5l22.63,22.62a6,6,0,0,0,8.48-8.48ZM128,186a6,6,0,0,0-6,6v32a6,6,0,0,0,12,0V192A6,6,0,0,0,128,186ZM78.5,169,55.88,191.64a6,6,0,1,0,8.48,8.48L87,177.5A6,6,0,1,0,78.5,169ZM70,128a6,6,0,0,0-6-6H32a6,6,0,0,0,0,12H64A6,6,0,0,0,70,128ZM64.36,55.88a6,6,0,0,0-8.48,8.48L78.5,87A6,6,0,1,0,87,78.5Z"}))],["regular",E.createElement(E.Fragment,null,E.createElement("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"}))],["thin",E.createElement(E.Fragment,null,E.createElement("path",{d:"M132,32V64a4,4,0,0,1-8,0V32a4,4,0,0,1,8,0Zm92,92H192a4,4,0,0,0,0,8h32a4,4,0,0,0,0-8Zm-47.92,46.43a4,4,0,1,0-5.65,5.65l22.62,22.63a4,4,0,0,0,5.66-5.66ZM128,188a4,4,0,0,0-4,4v32a4,4,0,0,0,8,0V192A4,4,0,0,0,128,188ZM79.92,170.43,57.29,193.05A4,4,0,0,0,63,198.71l22.62-22.63a4,4,0,1,0-5.65-5.65ZM68,128a4,4,0,0,0-4-4H32a4,4,0,0,0,0,8H64A4,4,0,0,0,68,128ZM63,57.29A4,4,0,0,0,57.29,63L79.92,85.57a4,4,0,1,0,5.65-5.65Z"}))]]),(V=E.forwardRef((e,i)=>E.createElement(f,t(t({ref:i},e),{},{weights:A})))).displayName="SpinnerGapIcon",N=function(e){return e.SDK_VIEWED="neighborhood-highlights-Viewed",e}({}),S=function(e){return e.SDK_VIEWED="sdk_viewed",e}({}),L=[...(D={transport:["pedestrian_friendly","car_friendly","transit_friendly","cycling_friendly"],services:["groceries","shopping","restaurants","cafes"],character:["quiet","parks","vibrant","nightlife"]}).transport,...D.services,...D.character],P=y(),k=E.createContext({}),_=()=>(0,E.useContext)(k),F=({children:e})=>{var t,i,n,a,o,r,l;const{sdkState:s}=j(),d=h();b(()=>{d.postEvent({eventType:N.SDK_VIEWED}),d.trackAnalyticsEvent({eventName:S.SDK_VIEWED})});const{isLoading:g,data:c}=x({location:{lat:void 0===(null===(t=s.options)||void 0===t?void 0:t.geographyId)?null===(i=s.options)||void 0===i?void 0:i.lat:void 0,lng:void 0===(null===(n=s.options)||void 0===n?void 0:n.geographyId)?null===(a=s.options)||void 0===a?void 0:a.lng:void 0},externalId:null==s||null===(o=s.globalOptions)||void 0===o?void 0:o.externalId}),{data:u,isFetching:p}=w({geographyId:(0,E.useMemo)(()=>{var e;return void 0!==(null===(e=s.options)||void 0===e?void 0:e.geographyId)?s.options.geographyId:Object.keys(c||{})[0]},[null===(r=s.options)||void 0===r?void 0:r.geographyId,c]),location:{},include:L}),m=(0,E.useMemo)(()=>g||p,[g,p]),v=(0,E.useMemo)(()=>{var e,t;return{isLoading:m,title:null===(e=s.options)||void 0===e?void 0:e.title,scores:null==u||null===(t=u.geographies[0])||void 0===t?void 0:t.scores}},[m,u,null===(l=s.options)||void 0===l?void 0:l.title]);return(0,P.jsx)(k.Provider,{value:v,children:e})},G="\n rounded-full bg-primary-100 w-16 h-16 flex items-center justify-center\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n\n ",K="rounded-full bg-gray-25 w-12 h-12 border-2 border-base-white flex items-center justify-center",W="\n text-primary-100 w-7 h-7\n \n group-data-[is-loading=true]/highlight-item:text-gray-200\n group-data-[is-loading=true]/highlight-item:animate-spin\n",T="\n group-data-[is-loading=true]/highlight-item:flex\n group-data-[is-loading=true]/highlight-item:flex-col\n group-data-[is-loading=true]/highlight-item:grow\n",R="\n text-md mb-1\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:w-full\n group-data-[is-loading=true]/highlight-item:h-2\n\n group-data-[is-loading=true]/highlight-item:[&>span]:hidden\n",q="\n text-sm leading-4 font-bold bg-primary-100 text-base-white py-1 px-2 inline rounded\n \n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:animate-pulse\n group-data-[is-loading=true]/highlight-item:w-28\n group-data-[is-loading=true]/highlight-item:h-7\n",B=({isLoading:e=!1,score:t})=>(0,P.jsxs)("div",{"data-testid":"item",className:"group/highlight-item bg-gray-25 px-5 py-4 flex w-80 items-center gap-x-4 rounded-xl","data-is-loading":e,"data-score":t,children:[(0,P.jsx)(z,{isLoading:e,score:t}),(0,P.jsx)(J,{score:t})]}),C="flex flex-col gap-4 w-full lg:flex-row",$=m({lat:r().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:r().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:l().optional(),title:d().optional()}).noUnknown(!0),c(g.neighborhoodWrap.key),e("default",()=>{var e,t,i,n,a,r,l;const{sdkState:s}=j(),d=H(),c=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",h=(0,E.useMemo)(()=>{var e,t,i,n;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=s.options)||void 0===t?void 0:t.geographyId}:{lat:null===(i=s.options)||void 0===i?void 0:i.lat,lng:null===(n=s.options)||void 0===n?void 0:n.lng}},[null===(t=s.options)||void 0===t?void 0:t.lat,null===(i=s.options)||void 0===i?void 0:i.lng,null===(n=s.options)||void 0===n?void 0:n.geographyId]);return(0,P.jsx)(M,{children:(0,P.jsx)(Z,{sdk:"Neighborhood Highlights",schema:$,options:s.options,children:(0,P.jsx)(u,{environment:null===(a=s.globalOptions)||void 0===a||null===(a=a.environment)||void 0===a?void 0:a.api,apiKey:s.apiKey,appearance:null===(r=s.globalOptions)||void 0===r?void 0:r.appearance,locale:null===(l=s.globalOptions)||void 0===l?void 0:l.locale,product:p.NEIGHBORHOOD_HIGHLIGHTS,children:(0,P.jsx)(o,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:g.neighborhoodWrap,meta:{clientId:s.clientId,productName:p.NEIGHBORHOOD_HIGHLIGHTS,productVersion:"1.24.49"},attributes:{location:h,host:s.location,host_url:document.referrer,locale:c,isMobile:d},flags:{isDebugMode:!1},children:(0,P.jsx)(F,{children:(0,P.jsx)(Q,{})})})})})})})}}})}();
|
|
2
|
-
//# sourceMappingURL=NeighborhoodHighlights-legacy-
|
|
1
|
+
!function(){function e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,n)}return i}function t(t){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?e(Object(a),!0).forEach(function(e){i(t,e,a[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):e(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-CEopDwWU.js","./ScoreIcon-legacy-CLOKISzQ.js","./IconBase.es-legacy-VUFA7Zpu.js","./index-legacy-CCkcnVFJ.js","./useGeographies-legacy-B3Z8U_cb.js","./globals-legacy-pnnbZMiO.js","./ResizeWrapper-legacy-CynGwSWy.js","./ValidateOptions-legacy-D28WbZDV.js","./useIsMobile-legacy-Co-fla-T.js","./useScores-legacy-B5vBekhb.js","./TitleHeader-legacy-CFzytrLC.js","./NoDataContent-legacy-DS0hbyOs.js"],function(e,i){var n,a,o,r,l,s,d,g,c,u,h,p,m,v,f,y,b,j,x,M,Z,H,w,I,O,E,A,V,N,S,D,L,P,k,_,F,G,K,W,T,R,q,B,C,$;function z({isLoading:e=!1,score:t}){return(0,P.jsx)("div",{className:G,children:(0,P.jsxs)("div",{className:K,children:[e&&(0,P.jsx)(V,{className:W}),!e&&t&&(0,P.jsx)(v,{score:t,className:W})]})})}function J({score:e}){const{t:t}=s(["neighborhoodHighlights","common"]);return(0,P.jsxs)("div",{"data-testid":`highlight-content-${e}`,className:T,children:[(0,P.jsx)("p",{"data-testid":"highlight-title",className:R,children:(0,P.jsx)("span",{children:t("highlight.title")})}),(0,P.jsx)("p",{"data-testid":"highlight-pill",className:q,children:e&&t(`common:scores.${e}.title`)})]})}function U(){const{t:e}=s("neighborhoodHighlights"),{isLoading:t,scores:i}=_(),n=(0,E.useMemo)(()=>t||!i?[]:function(e){const t=[];return void 0===e||L.map(t=>{var i;return{scoreName:t,value:Math.round(10*Number(null===(i=e[t])||void 0===i?void 0:i.value))/10*2}}).filter(e=>e.value>7).sort((e,t)=>e.value<t.value?1:-1).slice(0,3).map(e=>t.push(e.scoreName)),t}(i),[i,t]);return t||0!==n.length?(0,P.jsx)("div",{"data-testid":"highlights-container",className:C,children:(t?[1,2,3]:n).map((e,i)=>(0,P.jsx)(B,{isLoading:t,score:"number"!=typeof e?e:void 0},i))}):(0,P.jsx)(O,{text:e("noData")})}function Q(){const{t:e}=s("neighborhoodHighlights"),{title:t}=_();return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(I,{title:"string"==typeof t||!1===t?t:e("title")}),(0,P.jsx)(U,{})]})}return{setters:[function(e){n=e.a},function(e){a=e.l},function(e){o=e.a,r=e.d,l=e.f,s=e.g,d=e.m,g=e.n,c=e.o,u=e.r,h=e.s,p=e.t,m=e.u},function(e){v=e.t},function(e){f=e.t},function(e){y=e.J,b=e.i,j=e.n},function(e){x=e.t},function(e){},function(e){M=e.t},function(e){Z=e.t},function(e){H=e.t},function(e){w=e.t},function(e){I=e.t},function(e){O=e.t}],execute:function(){E=n(a(),1),A=new Map([["bold",E.createElement(E.Fragment,null,E.createElement("path",{d:"M140,32V64a12,12,0,0,1-24,0V32a12,12,0,0,1,24,0Zm84,84H192a12,12,0,0,0,0,24h32a12,12,0,0,0,0-24Zm-42.26,48.77a12,12,0,1,0-17,17l22.63,22.63a12,12,0,0,0,17-17ZM128,180a12,12,0,0,0-12,12v32a12,12,0,0,0,24,0V192A12,12,0,0,0,128,180ZM74.26,164.77,51.63,187.4a12,12,0,0,0,17,17l22.63-22.63a12,12,0,1,0-17-17ZM76,128a12,12,0,0,0-12-12H32a12,12,0,0,0,0,24H64A12,12,0,0,0,76,128ZM68.6,51.63a12,12,0,1,0-17,17L74.26,91.23a12,12,0,0,0,17-17Z"}))],["duotone",E.createElement(E.Fragment,null,E.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),E.createElement("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"}))],["fill",E.createElement(E.Fragment,null,E.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM48,136a8,8,0,0,1,0-16H72a8,8,0,0,1,0,16Zm46.06,37.25-17,17a8,8,0,0,1-11.32-11.32l17-17a8,8,0,0,1,11.31,11.31Zm0-79.19a8,8,0,0,1-11.31,0l-17-17A8,8,0,0,1,77.09,65.77l17,17A8,8,0,0,1,94.06,94.06ZM136,208a8,8,0,0,1-16,0V184a8,8,0,0,1,16,0Zm0-136a8,8,0,0,1-16,0V48a8,8,0,0,1,16,0Zm54.23,118.23a8,8,0,0,1-11.32,0l-17-17a8,8,0,0,1,11.31-11.31l17,17A8,8,0,0,1,190.23,190.23ZM208,136H184a8,8,0,0,1,0-16h24a8,8,0,0,1,0,16Z"}))],["light",E.createElement(E.Fragment,null,E.createElement("path",{d:"M134,32V64a6,6,0,0,1-12,0V32a6,6,0,0,1,12,0Zm90,90H192a6,6,0,0,0,0,12h32a6,6,0,0,0,0-12Zm-46.5,47A6,6,0,0,0,169,177.5l22.63,22.62a6,6,0,0,0,8.48-8.48ZM128,186a6,6,0,0,0-6,6v32a6,6,0,0,0,12,0V192A6,6,0,0,0,128,186ZM78.5,169,55.88,191.64a6,6,0,1,0,8.48,8.48L87,177.5A6,6,0,1,0,78.5,169ZM70,128a6,6,0,0,0-6-6H32a6,6,0,0,0,0,12H64A6,6,0,0,0,70,128ZM64.36,55.88a6,6,0,0,0-8.48,8.48L78.5,87A6,6,0,1,0,87,78.5Z"}))],["regular",E.createElement(E.Fragment,null,E.createElement("path",{d:"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z"}))],["thin",E.createElement(E.Fragment,null,E.createElement("path",{d:"M132,32V64a4,4,0,0,1-8,0V32a4,4,0,0,1,8,0Zm92,92H192a4,4,0,0,0,0,8h32a4,4,0,0,0,0-8Zm-47.92,46.43a4,4,0,1,0-5.65,5.65l22.62,22.63a4,4,0,0,0,5.66-5.66ZM128,188a4,4,0,0,0-4,4v32a4,4,0,0,0,8,0V192A4,4,0,0,0,128,188ZM79.92,170.43,57.29,193.05A4,4,0,0,0,63,198.71l22.62-22.63a4,4,0,1,0-5.65-5.65ZM68,128a4,4,0,0,0-4-4H32a4,4,0,0,0,0,8H64A4,4,0,0,0,68,128ZM63,57.29A4,4,0,0,0,57.29,63L79.92,85.57a4,4,0,1,0,5.65-5.65Z"}))]]),(V=E.forwardRef((e,i)=>E.createElement(f,t(t({ref:i},e),{},{weights:A})))).displayName="SpinnerGapIcon",N=function(e){return e.SDK_VIEWED="neighborhood-highlights-Viewed",e}({}),S=function(e){return e.SDK_VIEWED="sdk_viewed",e}({}),L=[...(D={transport:["pedestrian_friendly","car_friendly","transit_friendly","cycling_friendly"],services:["groceries","shopping","restaurants","cafes"],character:["quiet","parks","vibrant","nightlife"]}).transport,...D.services,...D.character],P=y(),k=E.createContext({}),_=()=>(0,E.useContext)(k),F=({children:e})=>{var t,i,n,a,o,r,l;const{sdkState:s}=j(),d=h();b(()=>{d.postEvent({eventType:N.SDK_VIEWED}),d.trackAnalyticsEvent({eventName:S.SDK_VIEWED})});const{isLoading:g,data:c}=x({location:{lat:void 0===(null===(t=s.options)||void 0===t?void 0:t.geographyId)?null===(i=s.options)||void 0===i?void 0:i.lat:void 0,lng:void 0===(null===(n=s.options)||void 0===n?void 0:n.geographyId)?null===(a=s.options)||void 0===a?void 0:a.lng:void 0},externalId:null==s||null===(o=s.globalOptions)||void 0===o?void 0:o.externalId}),{data:u,isFetching:p}=w({geographyId:(0,E.useMemo)(()=>{var e;return void 0!==(null===(e=s.options)||void 0===e?void 0:e.geographyId)?s.options.geographyId:Object.keys(c||{})[0]},[null===(r=s.options)||void 0===r?void 0:r.geographyId,c]),location:{},include:L}),m=(0,E.useMemo)(()=>g||p,[g,p]),v=(0,E.useMemo)(()=>{var e,t;return{isLoading:m,title:null===(e=s.options)||void 0===e?void 0:e.title,scores:null==u||null===(t=u.geographies[0])||void 0===t?void 0:t.scores}},[m,u,null===(l=s.options)||void 0===l?void 0:l.title]);return(0,P.jsx)(k.Provider,{value:v,children:e})},G="\n rounded-full bg-primary-100 w-16 h-16 flex items-center justify-center\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n\n ",K="rounded-full bg-gray-25 w-12 h-12 border-2 border-base-white flex items-center justify-center",W="\n text-primary-100 w-7 h-7\n \n group-data-[is-loading=true]/highlight-item:text-gray-200\n group-data-[is-loading=true]/highlight-item:animate-spin\n",T="\n group-data-[is-loading=true]/highlight-item:flex\n group-data-[is-loading=true]/highlight-item:flex-col\n group-data-[is-loading=true]/highlight-item:grow\n",R="\n text-md mb-1\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:w-full\n group-data-[is-loading=true]/highlight-item:h-2\n\n group-data-[is-loading=true]/highlight-item:[&>span]:hidden\n",q="\n text-sm leading-4 font-bold bg-primary-100 text-base-white py-1 px-2 inline rounded\n \n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:animate-pulse\n group-data-[is-loading=true]/highlight-item:w-28\n group-data-[is-loading=true]/highlight-item:h-7\n",B=({isLoading:e=!1,score:t})=>(0,P.jsxs)("div",{"data-testid":"item",className:"group/highlight-item bg-gray-25 px-5 py-4 flex w-80 items-center gap-x-4 rounded-xl","data-is-loading":e,"data-score":t,children:[(0,P.jsx)(z,{isLoading:e,score:t}),(0,P.jsx)(J,{score:t})]}),C="flex flex-col gap-4 w-full lg:flex-row",$=m({lat:r().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:r().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:l().optional(),title:d().optional()}).noUnknown(!0),c(g.neighborhoodWrap.key),e("default",()=>{var e,t,i,n,a,r,l;const{sdkState:s}=j(),d=H(),c=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",h=(0,E.useMemo)(()=>{var e,t,i,n;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=s.options)||void 0===t?void 0:t.geographyId}:{lat:null===(i=s.options)||void 0===i?void 0:i.lat,lng:null===(n=s.options)||void 0===n?void 0:n.lng}},[null===(t=s.options)||void 0===t?void 0:t.lat,null===(i=s.options)||void 0===i?void 0:i.lng,null===(n=s.options)||void 0===n?void 0:n.geographyId]);return(0,P.jsx)(M,{children:(0,P.jsx)(Z,{sdk:"Neighborhood Highlights",schema:$,options:s.options,children:(0,P.jsx)(u,{environment:null===(a=s.globalOptions)||void 0===a||null===(a=a.environment)||void 0===a?void 0:a.api,apiKey:s.apiKey,appearance:null===(r=s.globalOptions)||void 0===r?void 0:r.appearance,locale:null===(l=s.globalOptions)||void 0===l?void 0:l.locale,product:p.NEIGHBORHOOD_HIGHLIGHTS,children:(0,P.jsx)(o,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:g.neighborhoodWrap,meta:{clientId:s.clientId,productName:p.NEIGHBORHOOD_HIGHLIGHTS,productVersion:"1.24.50"},attributes:{location:h,host:s.location,host_url:document.referrer,locale:c,isMobile:d},flags:{isDebugMode:!1},children:(0,P.jsx)(F,{children:(0,P.jsx)(Q,{})})})})})})})}}})}();
|
|
2
|
+
//# sourceMappingURL=NeighborhoodHighlights-legacy-DpnHaLNf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodHighlights-legacy-BDOKUo6R.js","names":["a","p"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/SpinnerGap.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/SpinnerGap.es.js","../../src/sdks/NeighborhoodHighlights/types.ts","../../src/sdks/NeighborhoodHighlights/constants.ts","../../src/sdks/NeighborhoodHighlights/context.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Icon/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Icon/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Content/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Content/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/styles.ts","../../src/sdks/NeighborhoodHighlights/utils/getHighlightScoreKeys/index.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Content/index.tsx","../../src/sdks/NeighborhoodHighlights/schema.ts","../../src/sdks/NeighborhoodHighlights/index.tsx"],"sourcesContent":["import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M140,32V64a12,12,0,0,1-24,0V32a12,12,0,0,1,24,0Zm84,84H192a12,12,0,0,0,0,24h32a12,12,0,0,0,0-24Zm-42.26,48.77a12,12,0,1,0-17,17l22.63,22.63a12,12,0,0,0,17-17ZM128,180a12,12,0,0,0-12,12v32a12,12,0,0,0,24,0V192A12,12,0,0,0,128,180ZM74.26,164.77,51.63,187.4a12,12,0,0,0,17,17l22.63-22.63a12,12,0,1,0-17-17ZM76,128a12,12,0,0,0-12-12H32a12,12,0,0,0,0,24H64A12,12,0,0,0,76,128ZM68.6,51.63a12,12,0,1,0-17,17L74.26,91.23a12,12,0,0,0,17-17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM48,136a8,8,0,0,1,0-16H72a8,8,0,0,1,0,16Zm46.06,37.25-17,17a8,8,0,0,1-11.32-11.32l17-17a8,8,0,0,1,11.31,11.31Zm0-79.19a8,8,0,0,1-11.31,0l-17-17A8,8,0,0,1,77.09,65.77l17,17A8,8,0,0,1,94.06,94.06ZM136,208a8,8,0,0,1-16,0V184a8,8,0,0,1,16,0Zm0-136a8,8,0,0,1-16,0V48a8,8,0,0,1,16,0Zm54.23,118.23a8,8,0,0,1-11.32,0l-17-17a8,8,0,0,1,11.31-11.31l17,17A8,8,0,0,1,190.23,190.23ZM208,136H184a8,8,0,0,1,0-16h24a8,8,0,0,1,0,16Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M134,32V64a6,6,0,0,1-12,0V32a6,6,0,0,1,12,0Zm90,90H192a6,6,0,0,0,0,12h32a6,6,0,0,0,0-12Zm-46.5,47A6,6,0,0,0,169,177.5l22.63,22.62a6,6,0,0,0,8.48-8.48ZM128,186a6,6,0,0,0-6,6v32a6,6,0,0,0,12,0V192A6,6,0,0,0,128,186ZM78.5,169,55.88,191.64a6,6,0,1,0,8.48,8.48L87,177.5A6,6,0,1,0,78.5,169ZM70,128a6,6,0,0,0-6-6H32a6,6,0,0,0,0,12H64A6,6,0,0,0,70,128ZM64.36,55.88a6,6,0,0,0-8.48,8.48L78.5,87A6,6,0,1,0,87,78.5Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M132,32V64a4,4,0,0,1-8,0V32a4,4,0,0,1,8,0Zm92,92H192a4,4,0,0,0,0,8h32a4,4,0,0,0,0-8Zm-47.92,46.43a4,4,0,1,0-5.65,5.65l22.62,22.63a4,4,0,0,0,5.66-5.66ZM128,188a4,4,0,0,0-4,4v32a4,4,0,0,0,8,0V192A4,4,0,0,0,128,188ZM79.92,170.43,57.29,193.05A4,4,0,0,0,63,198.71l22.62-22.63a4,4,0,1,0-5.65-5.65ZM68,128a4,4,0,0,0-4-4H32a4,4,0,0,0,0,8H64A4,4,0,0,0,68,128ZM63,57.29A4,4,0,0,0,57.29,63L79.92,85.57a4,4,0,1,0,5.65-5.65Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport p from \"../defs/SpinnerGap.es.js\";\nconst o = e.forwardRef((r, n) => /* @__PURE__ */ e.createElement(a, { ref: n, ...r, weights: p }));\no.displayName = \"SpinnerGapIcon\";\nconst m = o;\nexport {\n m as SpinnerGap,\n o as SpinnerGapIcon\n};\n","import { SDKOptions } from \"~/types/options\";\n\nexport type Section = \"transport\" | \"services\" | \"character\";\n\nexport type Score =\n | \"pedestrian_friendly\"\n | \"car_friendly\"\n | \"transit_friendly\"\n | \"cycling_friendly\"\n | \"groceries\"\n | \"shopping\"\n | \"restaurants\"\n | \"cafes\"\n | \"quiet\"\n | \"parks\"\n | \"vibrant\"\n | \"nightlife\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n title?: boolean | string;\n};\n\nexport type NeighborhoodHighlightsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-highlights-Viewed\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n}\n","import { type Score } from \"./types\";\n\nexport const MINIMUM_SCORE_VALUE = 7;\n\nexport const sectionScores = {\n transport: [\n \"pedestrian_friendly\",\n \"car_friendly\",\n \"transit_friendly\",\n \"cycling_friendly\",\n ] as Score[],\n services: [\"groceries\", \"shopping\", \"restaurants\", \"cafes\"] as Score[],\n character: [\"quiet\", \"parks\", \"vibrant\", \"nightlife\"] as Score[],\n};\n\nexport const includeScores = [\n ...sectionScores.transport,\n ...sectionScores.services,\n ...sectionScores.character,\n];\n","import React, { useContext, useMemo } from \"react\";\nimport { type Scores } from \"@local-logic/client\";\nimport {\n NeighborhoodHighlightsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodHighlightsProps[\"options\"][\"title\"];\n scores?: Scores[\"location\"];\n};\n\nconst NeighborhoodHighlightsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodHighlights = () =>\n useContext(NeighborhoodHighlightsContext);\n\nconst NeighborhoodHighlightsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodHighlightsProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n location: {\n lat:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lat\n : undefined,\n lng:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lng\n : undefined,\n },\n externalId: sdkState?.globalOptions?.externalId,\n },\n );\n\n const geographyId = useMemo(() => {\n if (typeof sdkState.options?.geographyId !== \"undefined\") {\n return sdkState.options.geographyId;\n }\n\n return Object.keys(geographyData || {})[0];\n }, [sdkState.options?.geographyId, geographyData]);\n\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isScoresFetching,\n [isGeographyLoading, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n scores: scoresData?.geographies[0]?.scores,\n }),\n [isLoading, scoresData, sdkState.options?.title],\n );\n\n return (\n <NeighborhoodHighlightsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodHighlightsContext.Provider>\n );\n};\n\nexport { useNeighborhoodHighlights, NeighborhoodHighlightsProvider };\n","export const container = `group/highlight-item bg-gray-25 px-5 py-4 flex w-80 items-center gap-x-4 rounded-xl`;\n","export const container = `\n rounded-full bg-primary-100 w-16 h-16 flex items-center justify-center\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n\n `;\nexport const content = `rounded-full bg-gray-25 w-12 h-12 border-2 border-base-white flex items-center justify-center`;\nexport const icon = `\n text-primary-100 w-7 h-7\n \n group-data-[is-loading=true]/highlight-item:text-gray-200\n group-data-[is-loading=true]/highlight-item:animate-spin\n`;\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport { SpinnerGapIcon } from \"@phosphor-icons/react\";\nimport * as styles from \"./styles\";\nimport { ScoreIcon } from \"~/components/ScoreIcon\";\n\nexport function Icon({\n isLoading = false,\n score,\n}: {\n isLoading?: boolean;\n score?: keyof Scores[\"location\"];\n}) {\n return (\n <div className={styles.container}>\n <div className={styles.content}>\n {isLoading && <SpinnerGapIcon className={styles.icon} />}\n {!isLoading && score && (\n <ScoreIcon score={score} className={styles.icon} />\n )}\n </div>\n </div>\n );\n}\n","export const container = `\n group-data-[is-loading=true]/highlight-item:flex\n group-data-[is-loading=true]/highlight-item:flex-col\n group-data-[is-loading=true]/highlight-item:grow\n`;\n\nexport const text = `\n text-md mb-1\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:w-full\n group-data-[is-loading=true]/highlight-item:h-2\n\n group-data-[is-loading=true]/highlight-item:[&>span]:hidden\n`;\nexport const pill = `\n text-sm leading-4 font-bold bg-primary-100 text-base-white py-1 px-2 inline rounded\n \n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:animate-pulse\n group-data-[is-loading=true]/highlight-item:w-28\n group-data-[is-loading=true]/highlight-item:h-7\n`;\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport { useTranslation } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\n\nexport function Content({ score }: { score?: keyof Scores[\"location\"] }) {\n const { t } = useTranslation([\"neighborhoodHighlights\", \"common\"]);\n\n return (\n <div\n data-testid={`highlight-content-${score}`}\n className={styles.container}\n >\n <p data-testid=\"highlight-title\" className={styles.text}>\n <span>{t(\"highlight.title\")}</span>\n </p>\n <p data-testid=\"highlight-pill\" className={styles.pill}>\n {score && t(`common:scores.${score}.title`)}\n </p>\n </div>\n );\n}\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport * as styles from \"./styles\";\n\nimport { Icon } from \"./Icon\";\nimport { Content } from \"./Content\";\n\nexport const Item = ({\n isLoading = false,\n score,\n}: {\n isLoading?: boolean;\n score?: keyof Scores[\"location\"];\n}) => {\n return (\n <div\n data-testid=\"item\"\n className={styles.container}\n data-is-loading={isLoading}\n data-score={score}\n >\n <Icon isLoading={isLoading} score={score} />\n <Content score={score} />\n </div>\n );\n};\n","export const container = `flex flex-col gap-4 w-full lg:flex-row`;\n","import type { Scores } from \"@local-logic/client\";\nimport {\n includeScores,\n MINIMUM_SCORE_VALUE,\n} from \"~/sdks/NeighborhoodHighlights/constants\";\n\nexport function getHighlightScoreKeys(scores: Scores[\"location\"]) {\n const highlightKeys: (keyof Scores[\"location\"])[] = [];\n\n if (typeof scores === \"undefined\") {\n // Safety check just in case\n return highlightKeys;\n }\n\n const filteredScores = includeScores\n .map((scoreName) => ({\n scoreName,\n value: (Math.round(Number(scores[scoreName]?.value) * 10) / 10) * 2,\n }))\n .filter((score) => score.value > MINIMUM_SCORE_VALUE)\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .slice(0, 3);\n\n filteredScores.map((item) => highlightKeys.push(item.scoreName));\n\n return highlightKeys;\n}\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Item } from \"./Item\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodHighlights } from \"~/sdks/NeighborhoodHighlights/context\";\n\nimport { NoDataContent } from \"~/components/NoDataContent\";\n\nimport { getHighlightScoreKeys } from \"~/sdks/NeighborhoodHighlights/utils/getHighlightScoreKeys\";\n\nexport function Highlights() {\n const { t } = useTranslation(\"neighborhoodHighlights\");\n const { isLoading, scores } = useNeighborhoodHighlights();\n\n const highlights = useMemo(() => {\n if (isLoading || !scores) {\n return [];\n }\n\n return getHighlightScoreKeys(scores);\n }, [scores, isLoading]);\n\n if (!isLoading && highlights.length === 0) {\n return <NoDataContent text={t(\"noData\")} />;\n }\n\n return (\n <div data-testid=\"highlights-container\" className={styles.container}>\n {(isLoading ? [1, 2, 3] : highlights).map((highlight, index) => (\n <Item\n key={index}\n isLoading={isLoading}\n score={typeof highlight !== \"number\" ? highlight : undefined}\n />\n ))}\n </div>\n );\n}\n","import React from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Highlights } from \"../Highlights\";\nimport { useNeighborhoodHighlights } from \"~/sdks/NeighborhoodHighlights/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\nexport function Content() {\n const { t } = useTranslation(\"neighborhoodHighlights\");\n const { title } = useNeighborhoodHighlights();\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <Highlights />\n </>\n );\n}\n","import { ObjectSchema, string, mixed, number, object } from \"yup\";\nimport { Options } from \"./types\";\n\nexport const schema: ObjectSchema<Options> = object({\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n title: mixed<string | boolean>().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { NeighborhoodHighlightsProvider } from \"./context\";\nimport { Content } from \"./components/Content\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodHighlightsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport ResizeWrapper from \"~/components/ResizeWrapper\";\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodHighlights = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodHighlightsProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ResizeWrapper>\n <ValidateOptions\n sdk=\"Neighborhood Highlights\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_HIGHLIGHTS}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_HIGHLIGHTS,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodHighlightsProvider>\n <Content />\n </NeighborhoodHighlightsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodHighlights;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NeighborhoodHighlights-legacy-DpnHaLNf.js","names":["a","p"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/SpinnerGap.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/SpinnerGap.es.js","../../src/sdks/NeighborhoodHighlights/types.ts","../../src/sdks/NeighborhoodHighlights/constants.ts","../../src/sdks/NeighborhoodHighlights/context.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Icon/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Icon/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Content/styles.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/Content/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/Item/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Highlights/styles.ts","../../src/sdks/NeighborhoodHighlights/utils/getHighlightScoreKeys/index.ts","../../src/sdks/NeighborhoodHighlights/components/Highlights/index.tsx","../../src/sdks/NeighborhoodHighlights/components/Content/index.tsx","../../src/sdks/NeighborhoodHighlights/schema.ts","../../src/sdks/NeighborhoodHighlights/index.tsx"],"sourcesContent":["import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M140,32V64a12,12,0,0,1-24,0V32a12,12,0,0,1,24,0Zm84,84H192a12,12,0,0,0,0,24h32a12,12,0,0,0,0-24Zm-42.26,48.77a12,12,0,1,0-17,17l22.63,22.63a12,12,0,0,0,17-17ZM128,180a12,12,0,0,0-12,12v32a12,12,0,0,0,24,0V192A12,12,0,0,0,128,180ZM74.26,164.77,51.63,187.4a12,12,0,0,0,17,17l22.63-22.63a12,12,0,1,0-17-17ZM76,128a12,12,0,0,0-12-12H32a12,12,0,0,0,0,24H64A12,12,0,0,0,76,128ZM68.6,51.63a12,12,0,1,0-17,17L74.26,91.23a12,12,0,0,0,17-17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24ZM48,136a8,8,0,0,1,0-16H72a8,8,0,0,1,0,16Zm46.06,37.25-17,17a8,8,0,0,1-11.32-11.32l17-17a8,8,0,0,1,11.31,11.31Zm0-79.19a8,8,0,0,1-11.31,0l-17-17A8,8,0,0,1,77.09,65.77l17,17A8,8,0,0,1,94.06,94.06ZM136,208a8,8,0,0,1-16,0V184a8,8,0,0,1,16,0Zm0-136a8,8,0,0,1-16,0V48a8,8,0,0,1,16,0Zm54.23,118.23a8,8,0,0,1-11.32,0l-17-17a8,8,0,0,1,11.31-11.31l17,17A8,8,0,0,1,190.23,190.23ZM208,136H184a8,8,0,0,1,0-16h24a8,8,0,0,1,0,16Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M134,32V64a6,6,0,0,1-12,0V32a6,6,0,0,1,12,0Zm90,90H192a6,6,0,0,0,0,12h32a6,6,0,0,0,0-12Zm-46.5,47A6,6,0,0,0,169,177.5l22.63,22.62a6,6,0,0,0,8.48-8.48ZM128,186a6,6,0,0,0-6,6v32a6,6,0,0,0,12,0V192A6,6,0,0,0,128,186ZM78.5,169,55.88,191.64a6,6,0,1,0,8.48,8.48L87,177.5A6,6,0,1,0,78.5,169ZM70,128a6,6,0,0,0-6-6H32a6,6,0,0,0,0,12H64A6,6,0,0,0,70,128ZM64.36,55.88a6,6,0,0,0-8.48,8.48L78.5,87A6,6,0,1,0,87,78.5Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M136,32V64a8,8,0,0,1-16,0V32a8,8,0,0,1,16,0Zm88,88H192a8,8,0,0,0,0,16h32a8,8,0,0,0,0-16Zm-45.09,47.6a8,8,0,0,0-11.31,11.31l22.62,22.63a8,8,0,0,0,11.32-11.32ZM128,184a8,8,0,0,0-8,8v32a8,8,0,0,0,16,0V192A8,8,0,0,0,128,184ZM77.09,167.6,54.46,190.22a8,8,0,0,0,11.32,11.32L88.4,178.91A8,8,0,0,0,77.09,167.6ZM72,128a8,8,0,0,0-8-8H32a8,8,0,0,0,0,16H64A8,8,0,0,0,72,128ZM65.78,54.46A8,8,0,0,0,54.46,65.78L77.09,88.4A8,8,0,0,0,88.4,77.09Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M132,32V64a4,4,0,0,1-8,0V32a4,4,0,0,1,8,0Zm92,92H192a4,4,0,0,0,0,8h32a4,4,0,0,0,0-8Zm-47.92,46.43a4,4,0,1,0-5.65,5.65l22.62,22.63a4,4,0,0,0,5.66-5.66ZM128,188a4,4,0,0,0-4,4v32a4,4,0,0,0,8,0V192A4,4,0,0,0,128,188ZM79.92,170.43,57.29,193.05A4,4,0,0,0,63,198.71l22.62-22.63a4,4,0,1,0-5.65-5.65ZM68,128a4,4,0,0,0-4-4H32a4,4,0,0,0,0,8H64A4,4,0,0,0,68,128ZM63,57.29A4,4,0,0,0,57.29,63L79.92,85.57a4,4,0,1,0,5.65-5.65Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport p from \"../defs/SpinnerGap.es.js\";\nconst o = e.forwardRef((r, n) => /* @__PURE__ */ e.createElement(a, { ref: n, ...r, weights: p }));\no.displayName = \"SpinnerGapIcon\";\nconst m = o;\nexport {\n m as SpinnerGap,\n o as SpinnerGapIcon\n};\n","import { SDKOptions } from \"~/types/options\";\n\nexport type Section = \"transport\" | \"services\" | \"character\";\n\nexport type Score =\n | \"pedestrian_friendly\"\n | \"car_friendly\"\n | \"transit_friendly\"\n | \"cycling_friendly\"\n | \"groceries\"\n | \"shopping\"\n | \"restaurants\"\n | \"cafes\"\n | \"quiet\"\n | \"parks\"\n | \"vibrant\"\n | \"nightlife\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n title?: boolean | string;\n};\n\nexport type NeighborhoodHighlightsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-highlights-Viewed\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n}\n","import { type Score } from \"./types\";\n\nexport const MINIMUM_SCORE_VALUE = 7;\n\nexport const sectionScores = {\n transport: [\n \"pedestrian_friendly\",\n \"car_friendly\",\n \"transit_friendly\",\n \"cycling_friendly\",\n ] as Score[],\n services: [\"groceries\", \"shopping\", \"restaurants\", \"cafes\"] as Score[],\n character: [\"quiet\", \"parks\", \"vibrant\", \"nightlife\"] as Score[],\n};\n\nexport const includeScores = [\n ...sectionScores.transport,\n ...sectionScores.services,\n ...sectionScores.character,\n];\n","import React, { useContext, useMemo } from \"react\";\nimport { type Scores } from \"@local-logic/client\";\nimport {\n NeighborhoodHighlightsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodHighlightsProps[\"options\"][\"title\"];\n scores?: Scores[\"location\"];\n};\n\nconst NeighborhoodHighlightsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodHighlights = () =>\n useContext(NeighborhoodHighlightsContext);\n\nconst NeighborhoodHighlightsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodHighlightsProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n location: {\n lat:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lat\n : undefined,\n lng:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lng\n : undefined,\n },\n externalId: sdkState?.globalOptions?.externalId,\n },\n );\n\n const geographyId = useMemo(() => {\n if (typeof sdkState.options?.geographyId !== \"undefined\") {\n return sdkState.options.geographyId;\n }\n\n return Object.keys(geographyData || {})[0];\n }, [sdkState.options?.geographyId, geographyData]);\n\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isScoresFetching,\n [isGeographyLoading, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n scores: scoresData?.geographies[0]?.scores,\n }),\n [isLoading, scoresData, sdkState.options?.title],\n );\n\n return (\n <NeighborhoodHighlightsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodHighlightsContext.Provider>\n );\n};\n\nexport { useNeighborhoodHighlights, NeighborhoodHighlightsProvider };\n","export const container = `group/highlight-item bg-gray-25 px-5 py-4 flex w-80 items-center gap-x-4 rounded-xl`;\n","export const container = `\n rounded-full bg-primary-100 w-16 h-16 flex items-center justify-center\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n\n `;\nexport const content = `rounded-full bg-gray-25 w-12 h-12 border-2 border-base-white flex items-center justify-center`;\nexport const icon = `\n text-primary-100 w-7 h-7\n \n group-data-[is-loading=true]/highlight-item:text-gray-200\n group-data-[is-loading=true]/highlight-item:animate-spin\n`;\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport { SpinnerGapIcon } from \"@phosphor-icons/react\";\nimport * as styles from \"./styles\";\nimport { ScoreIcon } from \"~/components/ScoreIcon\";\n\nexport function Icon({\n isLoading = false,\n score,\n}: {\n isLoading?: boolean;\n score?: keyof Scores[\"location\"];\n}) {\n return (\n <div className={styles.container}>\n <div className={styles.content}>\n {isLoading && <SpinnerGapIcon className={styles.icon} />}\n {!isLoading && score && (\n <ScoreIcon score={score} className={styles.icon} />\n )}\n </div>\n </div>\n );\n}\n","export const container = `\n group-data-[is-loading=true]/highlight-item:flex\n group-data-[is-loading=true]/highlight-item:flex-col\n group-data-[is-loading=true]/highlight-item:grow\n`;\n\nexport const text = `\n text-md mb-1\n\n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:w-full\n group-data-[is-loading=true]/highlight-item:h-2\n\n group-data-[is-loading=true]/highlight-item:[&>span]:hidden\n`;\nexport const pill = `\n text-sm leading-4 font-bold bg-primary-100 text-base-white py-1 px-2 inline rounded\n \n group-data-[is-loading=true]/highlight-item:bg-gray-200\n group-data-[is-loading=true]/highlight-item:animate-pulse\n group-data-[is-loading=true]/highlight-item:w-28\n group-data-[is-loading=true]/highlight-item:h-7\n`;\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport { useTranslation } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\n\nexport function Content({ score }: { score?: keyof Scores[\"location\"] }) {\n const { t } = useTranslation([\"neighborhoodHighlights\", \"common\"]);\n\n return (\n <div\n data-testid={`highlight-content-${score}`}\n className={styles.container}\n >\n <p data-testid=\"highlight-title\" className={styles.text}>\n <span>{t(\"highlight.title\")}</span>\n </p>\n <p data-testid=\"highlight-pill\" className={styles.pill}>\n {score && t(`common:scores.${score}.title`)}\n </p>\n </div>\n );\n}\n","import React from \"react\";\n\nimport type { Scores } from \"@local-logic/client\";\nimport * as styles from \"./styles\";\n\nimport { Icon } from \"./Icon\";\nimport { Content } from \"./Content\";\n\nexport const Item = ({\n isLoading = false,\n score,\n}: {\n isLoading?: boolean;\n score?: keyof Scores[\"location\"];\n}) => {\n return (\n <div\n data-testid=\"item\"\n className={styles.container}\n data-is-loading={isLoading}\n data-score={score}\n >\n <Icon isLoading={isLoading} score={score} />\n <Content score={score} />\n </div>\n );\n};\n","export const container = `flex flex-col gap-4 w-full lg:flex-row`;\n","import type { Scores } from \"@local-logic/client\";\nimport {\n includeScores,\n MINIMUM_SCORE_VALUE,\n} from \"~/sdks/NeighborhoodHighlights/constants\";\n\nexport function getHighlightScoreKeys(scores: Scores[\"location\"]) {\n const highlightKeys: (keyof Scores[\"location\"])[] = [];\n\n if (typeof scores === \"undefined\") {\n // Safety check just in case\n return highlightKeys;\n }\n\n const filteredScores = includeScores\n .map((scoreName) => ({\n scoreName,\n value: (Math.round(Number(scores[scoreName]?.value) * 10) / 10) * 2,\n }))\n .filter((score) => score.value > MINIMUM_SCORE_VALUE)\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .slice(0, 3);\n\n filteredScores.map((item) => highlightKeys.push(item.scoreName));\n\n return highlightKeys;\n}\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Item } from \"./Item\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodHighlights } from \"~/sdks/NeighborhoodHighlights/context\";\n\nimport { NoDataContent } from \"~/components/NoDataContent\";\n\nimport { getHighlightScoreKeys } from \"~/sdks/NeighborhoodHighlights/utils/getHighlightScoreKeys\";\n\nexport function Highlights() {\n const { t } = useTranslation(\"neighborhoodHighlights\");\n const { isLoading, scores } = useNeighborhoodHighlights();\n\n const highlights = useMemo(() => {\n if (isLoading || !scores) {\n return [];\n }\n\n return getHighlightScoreKeys(scores);\n }, [scores, isLoading]);\n\n if (!isLoading && highlights.length === 0) {\n return <NoDataContent text={t(\"noData\")} />;\n }\n\n return (\n <div data-testid=\"highlights-container\" className={styles.container}>\n {(isLoading ? [1, 2, 3] : highlights).map((highlight, index) => (\n <Item\n key={index}\n isLoading={isLoading}\n score={typeof highlight !== \"number\" ? highlight : undefined}\n />\n ))}\n </div>\n );\n}\n","import React from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Highlights } from \"../Highlights\";\nimport { useNeighborhoodHighlights } from \"~/sdks/NeighborhoodHighlights/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\nexport function Content() {\n const { t } = useTranslation(\"neighborhoodHighlights\");\n const { title } = useNeighborhoodHighlights();\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <Highlights />\n </>\n );\n}\n","import { ObjectSchema, string, mixed, number, object } from \"yup\";\nimport { Options } from \"./types\";\n\nexport const schema: ObjectSchema<Options> = object({\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n title: mixed<string | boolean>().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { NeighborhoodHighlightsProvider } from \"./context\";\nimport { Content } from \"./components/Content\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodHighlightsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport ResizeWrapper from \"~/components/ResizeWrapper\";\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodHighlights = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodHighlightsProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ResizeWrapper>\n <ValidateOptions\n sdk=\"Neighborhood Highlights\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_HIGHLIGHTS}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_HIGHLIGHTS,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodHighlightsProvider>\n <Content />\n </NeighborhoodHighlightsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodHighlights;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
package/dist/assets/{NeighborhoodMap-legacy-Df8PeSMo.js → NeighborhoodMap-legacy-BqWdzaEi.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){const e=["children"];function o(e,o){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);o&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,i)}return t}function t(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(o){i(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function i(e,o,t){return(o=function(e){var o=function(e,o){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,o||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===o?String:Number)(e)}(e,"string");return"symbol"==typeof o?o:o+""}(o))in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-DvG_h2RB.js","./getMapProviderConfig-legacy-v_dMHr0E.js","./index-legacy-IimBc_IJ.js","./index.es-legacy-D-Fla9xS.js","./useGeographies-legacy-BAlc4rN4.js","./useResponsiveBreakpoints-legacy-CHMcuyvR.js","./Attribution-legacy-BFfDJ-Io.js","./globals-legacy-pnnbZMiO.js","./ValidateOptions-legacy-xfFn7_tu.js","./useIsMobile-legacy-0ylCQLlg.js"],function(o,i){var r,n,l,a,s,c,d,u,p,g,v,m,y,h,f,b,k,j,C,O,P,_,I,E,x,M,A,L,D,w,S,K,N,R,G,T,z,V,$,F,B,W,H,Y,q,U;function Z(){const{geography:e,activeMarkerDetails:o}=F(),t=(0,N.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||W,[]),i=(0,N.useMemo)(()=>{const o=[];if(!(void 0===(null==e?void 0:e.geometry)||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{o.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:t},{type:"line",color:t}],geometry:[e]})}),o},[e,t]),r=(0,N.useMemo)(()=>{var e;const t=o;if(void 0===(null==t?void 0:t.catchments)||0===(null===(e=t.catchments)||void 0===e?void 0:e.length))return;const i=[];return t.catchments.forEach((e,o)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,t)=>{i.push({key:`school-catchment-${o}-geom-${t}`,layer:[{type:"fill",color:H},{type:"line",color:H}],geometry:[e]})})}),i},[o]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(f.Layers,{sources:i}),(0,V.jsx)(f.Layers,{sources:r})]})}function J(){const e=m(),{isLoading:o,activePoiCategory:t,markersData:i,handleMarkerClick:r}=F(),n=(0,N.useMemo)(()=>{if(void 0!==t)return C[t]},[t]),l=(0,N.useMemo)(()=>void 0===t?[]:Array.from((i||[]).map(e=>({id:k(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:n})).reduce((e,o)=>(e.set(o.id,o),e),new Map).values()),[i,n,t]);return(0,V.jsx)(f.Markers,{isLoading:o,markers:l,clusterIcon:n,onClick:o=>{if(r(o),!t||!o)return;const i={category:t};o.markers.length>1?(i.isCluster=!0,i.clusterSize=o.markers.length,i.lat=o.latitude,i.lng=o.longitude):1===o.markers.length&&Object.entries(o.markers[0]).forEach(([e,o])=>{if("boolean"==typeof o||"string"==typeof o||"number"==typeof o){if("id"===e)return;i[e]=o}}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})}})}function Q(){const e=m(),{activePoiCategory:o,activeMarker:t,activeMarkerDetails:i,handleMarkerClick:r,showSchoolRatings:n}=F(),l=t=>{if(!o||!i)return;const r={category:o};Object.entries(i).forEach(([e,o])=>{"boolean"!=typeof o&&"string"!=typeof o&&"number"!=typeof o||(r[e]=o)}),r.clickedUrl=t,e.postEvent({eventType:R.POI_LINK_CLICKED,eventAttributes:Object.entries(r).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_LINK_CLICKED,eventAttributes:r})};return(0,V.jsxs)(f.Popup,{latitude:null==t?void 0:t.latitude,longitude:null==t?void 0:t.longitude,onClose:()=>r(void 0),children:[(0,V.jsx)(b,{activeMarker:t,onMarkerSelected:t=>{if(r({id:t.id,latitude:t.latitude,longitude:t.longitude,markers:[t]}),!o)return;const i={category:o};Object.entries(t).forEach(([e,o])=>{"boolean"!=typeof o&&"string"!=typeof o&&"number"!=typeof o||(i[e]=o)}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})},onClose:r}),(0,V.jsx)(j,{marker:i,poiCategory:o,onLocationLinkClick:l,onSchoolLinkClick:l,onClose:r,showSchoolRatings:n})]})}function X(o){var i,r,n;let{children:l}=o,a=function(e,o){if(null==e)return{};var t,i,r=function(e,o){if(null==e)return{};var t={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==o.indexOf(i))continue;t[i]=e[i]}return t}(e,o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)t=n[i],-1===o.indexOf(t)&&{}.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}(o,e);const s=D(),{locale:c,map:d,activeMarker:u,geography:p}=F(),g=(0,N.useMemo)(()=>{var e,o,t;return O(null===(e=d.mapProvider)||void 0===e?void 0:e.name,null===(o=d.mapProvider)||void 0===o?void 0:o.key,null===(t=d.mapProvider)||void 0===t?void 0:t.theme)},[null===(i=d.mapProvider)||void 0===i?void 0:i.name,null===(r=d.mapProvider)||void 0===r?void 0:r.key,null===(n=d.mapProvider)||void 0===n?void 0:n.theme]),v=(0,N.useMemo)(()=>{if(void 0===p||null==p||!p.geometry)return;const e=p.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[p]);return(0,V.jsxs)("div",t(t({className:Y},a),{},{children:[void 0!==p&&(0,V.jsx)(f.Root,{locale:c,mapProvider:g,mapPadding:T[s.sm?"mobile":"desktop"],locationBoundary:v,center:{latitude:null==p?void 0:p.centroid.lat,longitude:null==p?void 0:p.centroid.lng},zoom:d.zoom,minZoom:2,maxZoom:17,zoomPosition:s.sm?"bottom-right":void 0,pitch:d.pitch,bearing:d.bearing,cooperativeGestures:d.cooperativeGestures,activeMarker:u,children:(0,V.jsxs)(f.BaseMap,{children:[(0,V.jsx)(Z,{}),(0,V.jsx)(J,{}),(0,V.jsx)(Q,{})]})}),l]}))}return{setters:[function(e){r=e.a},function(e){n=e.l},function(e){l=e.a,a=e.d,s=e.f,c=e.g,d=e.m,u=e.n,p=e.o,g=e.p,v=e.r,m=e.s,y=e.t,h=e.u},function(e){f=e.c,b=e.i,k=e.l,j=e.n,C=e.o,O=e.t,P=e.u},function(e){_=e.J,I=e.i,E=e.n,x=e.t,M=e.vt},function(e){A=e.t},function(e){L=e.t},function(e){D=e.t},function(e){w=e.t},function(e){},function(e){S=e.t},function(e){K=e.t}],execute:function(){N=r(n(),1),R=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),G=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),T={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},z=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],V=_(),$=N.createContext({}),F=()=>(0,N.useContext)($),B=({children:e})=>{var o,t,i,r,n,l,a,s,c,d,u;const{sdkState:p}=E(),g=(null===(o=p.globalOptions)||void 0===o?void 0:o.locale)||"en",v=m(),[y,h]=(0,N.useState)(),[f,b]=(0,N.useState)();I(()=>{v.postEvent({eventType:R.SDK_VIEWED,eventAttributes:[{label:"default_category",data:f}]}),v.trackAnalyticsEvent({eventName:G.SDK_VIEWED,eventAttributes:{ll_default_category:f}})});const{isLoading:j,data:C}=L({geogID:null===(t=p.options)||void 0===t?void 0:t.geographyId,location:{lat:null===(i=p.options)||void 0===i?void 0:i.lat,lng:null===(r=p.options)||void 0===r?void 0:r.lng},include:"geometry"}),{geographyId:O,geography:_}=(0,N.useMemo)(()=>{var e,o;const t=Object.entries(C||{});return{geographyId:null===(e=t[0])||void 0===e?void 0:e[0],geography:null===(o=t[0])||void 0===o?void 0:o[1]}},[j,C]),{data:x,isLoading:A}=P({geogId:O,limit:500,categories:f?[f]:void 0}),D=(0,N.useMemo)(()=>[].concat(...Object.values(x||{})),[x]),w=(0,N.useCallback)(e=>{(null==y?void 0:y.latitude)!==(null==e?void 0:e.latitude)||(null==y?void 0:y.longitude)!==(null==e?void 0:e.longitude)?h(e):h(void 0)},[y]),S=(0,N.useMemo)(()=>D&&y&&1===y.markers.length&&D.find(e=>y.markers[0].id===k(e.lat,e.lng,e.name))||null,[y,D]),K=(0,N.useMemo)(()=>j||A,[j,A]);return(0,V.jsx)($.Provider,{value:{locale:g,isLoading:K,map:{mapProvider:null===(n=p.options)||void 0===n?void 0:n.mapProvider,zoom:null===(l=p.options)||void 0===l?void 0:l.zoom,pitch:null===(a=p.options)||void 0===a?void 0:a.pitch,bearing:null===(s=p.options)||void 0===s?void 0:s.bearing,cooperativeGestures:null===(c=p.options)||void 0===c?void 0:c.cooperativeGestures},geography:_,activeMarker:y,activeMarkerDetails:S,handleMarkerClick:w,activePoiCategory:f,onSelectPoiCategory:e=>{M.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),b(f===e?void 0:e)},markersData:D,hideAttribution:null===(d=p.options)||void 0===d?void 0:d.hideAttribution,showSchoolRatings:null===(u=p.options)||void 0===u?void 0:u.showSchoolRatings},children:e})},W="#008491",H="#9333ea",Y="relative w-full overflow-hidden grow",q=()=>{const{t:e}=c(["neighborhoodMap","common"]),o=x(),t=m(),{locale:i,handleMarkerClick:r,activePoiCategory:n,onSelectPoiCategory:l,hideAttribution:a}=F(),[s,d]=(0,N.useState)();(0,N.useEffect)(()=>{r(void 0),d(n)},[n]);const u=(0,N.useMemo)(()=>z.map(e=>({key:e,icon:C[e]})),[o]),p=e=>{l(e),t.postEvent({eventType:R.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),t.trackAnalyticsEvent({eventName:G.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},g=e=>{d(s===e?void 0:e)};return(0,V.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,V.jsxs)(A.Root,{children:[(0,V.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,V.jsx)(A.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:u.map(({key:o,icon:t})=>(0,V.jsx)(A.Filter,{filter:o,label:e(`common:pois.${o}`),icon:t,isActive:o===n,onSelectFilter:p},`category-${o}`))}),(0,V.jsx)(A.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,V.jsx)(A.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{l(void 0)},onApply:()=>{l(s)},children:u.map(({key:o,icon:t})=>(0,V.jsx)(A.Filter,{filter:o,label:e(`common:pois.${o}`),icon:t,isActive:o===s,onSelectFilter:g},`dialog-category-${o}`))})]}),(0,V.jsx)(X,{}),(0,V.jsx)(w,{sdkName:"neighborhood-map",locale:i,isHidden:a})]})},U=h({theme:s().oneOf(["day","night"]).optional(),lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),zoom:a().optional(),pitch:a().optional(),bearing:a().optional(),cooperativeGestures:g().optional(),mapProvider:d().optional(),hideAttribution:g().optional(),showSchoolRatings:g().optional()}).noUnknown(!0),p(u.neighborhoodWrap.key),o("default",()=>{var e,o,t,i,r,n,a;const{sdkState:s}=E(),c=K(),d=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",p=(0,N.useMemo)(()=>{var e,o,t,i;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(o=s.options)||void 0===o?void 0:o.geographyId}:{lat:null===(t=s.options)||void 0===t?void 0:t.lat,lng:null===(i=s.options)||void 0===i?void 0:i.lng}},[null===(o=s.options)||void 0===o?void 0:o.lat,null===(t=s.options)||void 0===t?void 0:t.lng,null===(i=s.options)||void 0===i?void 0:i.geographyId]);return(0,V.jsx)(S,{sdk:"Neighborhood Map",schema:U,options:s.options,children:(0,V.jsx)(v,{environment:null===(r=s.globalOptions)||void 0===r||null===(r=r.environment)||void 0===r?void 0:r.api,apiKey:s.apiKey,appearance:null===(n=s.globalOptions)||void 0===n?void 0:n.appearance,locale:null===(a=s.globalOptions)||void 0===a?void 0:a.locale,product:y.NEIGHBORHOOD_MAP,children:(0,V.jsx)(l,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:u.neighborhoodWrap,meta:{clientId:s.clientId,productName:y.NEIGHBORHOOD_MAP,productVersion:"1.24.49"},attributes:{location:p,host:s.location,host_url:document.referrer,locale:d,isMobile:c},flags:{isDebugMode:!1},children:(0,V.jsx)(B,{children:(0,V.jsx)(q,{})})})})})})}}})}();
|
|
2
|
-
//# sourceMappingURL=NeighborhoodMap-legacy-
|
|
1
|
+
!function(){const e=["children"];function o(e,o){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);o&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),t.push.apply(t,i)}return t}function t(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(o){i(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function i(e,o,t){return(o=function(e){var o=function(e,o){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,o||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===o?String:Number)(e)}(e,"string");return"symbol"==typeof o?o:o+""}(o))in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-CEopDwWU.js","./getMapProviderConfig-legacy-CAXMPGrv.js","./index-legacy-CCkcnVFJ.js","./index.es-legacy-CVQ7Oc74.js","./useGeographies-legacy-B3Z8U_cb.js","./useResponsiveBreakpoints-legacy-CHMcuyvR.js","./Attribution-legacy-DF-w8bUm.js","./globals-legacy-pnnbZMiO.js","./ValidateOptions-legacy-D28WbZDV.js","./useIsMobile-legacy-Co-fla-T.js"],function(o,i){var r,n,l,a,s,c,d,u,p,g,v,m,y,h,f,b,k,j,C,O,P,_,I,E,x,M,A,L,D,w,S,K,N,R,G,T,z,V,$,F,B,W,H,Y,q,U;function Z(){const{geography:e,activeMarkerDetails:o}=F(),t=(0,N.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||W,[]),i=(0,N.useMemo)(()=>{const o=[];if(!(void 0===(null==e?void 0:e.geometry)||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{o.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:t},{type:"line",color:t}],geometry:[e]})}),o},[e,t]),r=(0,N.useMemo)(()=>{var e;const t=o;if(void 0===(null==t?void 0:t.catchments)||0===(null===(e=t.catchments)||void 0===e?void 0:e.length))return;const i=[];return t.catchments.forEach((e,o)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,t)=>{i.push({key:`school-catchment-${o}-geom-${t}`,layer:[{type:"fill",color:H},{type:"line",color:H}],geometry:[e]})})}),i},[o]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(f.Layers,{sources:i}),(0,V.jsx)(f.Layers,{sources:r})]})}function J(){const e=m(),{isLoading:o,activePoiCategory:t,markersData:i,handleMarkerClick:r}=F(),n=(0,N.useMemo)(()=>{if(void 0!==t)return C[t]},[t]),l=(0,N.useMemo)(()=>void 0===t?[]:Array.from((i||[]).map(e=>({id:k(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:n})).reduce((e,o)=>(e.set(o.id,o),e),new Map).values()),[i,n,t]);return(0,V.jsx)(f.Markers,{isLoading:o,markers:l,clusterIcon:n,onClick:o=>{if(r(o),!t||!o)return;const i={category:t};o.markers.length>1?(i.isCluster=!0,i.clusterSize=o.markers.length,i.lat=o.latitude,i.lng=o.longitude):1===o.markers.length&&Object.entries(o.markers[0]).forEach(([e,o])=>{if("boolean"==typeof o||"string"==typeof o||"number"==typeof o){if("id"===e)return;i[e]=o}}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})}})}function Q(){const e=m(),{activePoiCategory:o,activeMarker:t,activeMarkerDetails:i,handleMarkerClick:r,showSchoolRatings:n}=F(),l=t=>{if(!o||!i)return;const r={category:o};Object.entries(i).forEach(([e,o])=>{"boolean"!=typeof o&&"string"!=typeof o&&"number"!=typeof o||(r[e]=o)}),r.clickedUrl=t,e.postEvent({eventType:R.POI_LINK_CLICKED,eventAttributes:Object.entries(r).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_LINK_CLICKED,eventAttributes:r})};return(0,V.jsxs)(f.Popup,{latitude:null==t?void 0:t.latitude,longitude:null==t?void 0:t.longitude,onClose:()=>r(void 0),children:[(0,V.jsx)(b,{activeMarker:t,onMarkerSelected:t=>{if(r({id:t.id,latitude:t.latitude,longitude:t.longitude,markers:[t]}),!o)return;const i={category:o};Object.entries(t).forEach(([e,o])=>{"boolean"!=typeof o&&"string"!=typeof o&&"number"!=typeof o||(i[e]=o)}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,o])=>({label:e,data:o}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})},onClose:r}),(0,V.jsx)(j,{marker:i,poiCategory:o,onLocationLinkClick:l,onSchoolLinkClick:l,onClose:r,showSchoolRatings:n})]})}function X(o){var i,r,n;let{children:l}=o,a=function(e,o){if(null==e)return{};var t,i,r=function(e,o){if(null==e)return{};var t={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==o.indexOf(i))continue;t[i]=e[i]}return t}(e,o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)t=n[i],-1===o.indexOf(t)&&{}.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}(o,e);const s=D(),{locale:c,map:d,activeMarker:u,geography:p}=F(),g=(0,N.useMemo)(()=>{var e,o,t;return O(null===(e=d.mapProvider)||void 0===e?void 0:e.name,null===(o=d.mapProvider)||void 0===o?void 0:o.key,null===(t=d.mapProvider)||void 0===t?void 0:t.theme)},[null===(i=d.mapProvider)||void 0===i?void 0:i.name,null===(r=d.mapProvider)||void 0===r?void 0:r.key,null===(n=d.mapProvider)||void 0===n?void 0:n.theme]),v=(0,N.useMemo)(()=>{if(void 0===p||null==p||!p.geometry)return;const e=p.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[p]);return(0,V.jsxs)("div",t(t({className:Y},a),{},{children:[void 0!==p&&(0,V.jsx)(f.Root,{locale:c,mapProvider:g,mapPadding:T[s.sm?"mobile":"desktop"],locationBoundary:v,center:{latitude:null==p?void 0:p.centroid.lat,longitude:null==p?void 0:p.centroid.lng},zoom:d.zoom,minZoom:2,maxZoom:17,zoomPosition:s.sm?"bottom-right":void 0,pitch:d.pitch,bearing:d.bearing,cooperativeGestures:d.cooperativeGestures,activeMarker:u,children:(0,V.jsxs)(f.BaseMap,{children:[(0,V.jsx)(Z,{}),(0,V.jsx)(J,{}),(0,V.jsx)(Q,{})]})}),l]}))}return{setters:[function(e){r=e.a},function(e){n=e.l},function(e){l=e.a,a=e.d,s=e.f,c=e.g,d=e.m,u=e.n,p=e.o,g=e.p,v=e.r,m=e.s,y=e.t,h=e.u},function(e){f=e.c,b=e.i,k=e.l,j=e.n,C=e.o,O=e.t,P=e.u},function(e){_=e.J,I=e.i,E=e.n,x=e.t,M=e.vt},function(e){A=e.t},function(e){L=e.t},function(e){D=e.t},function(e){w=e.t},function(e){},function(e){S=e.t},function(e){K=e.t}],execute:function(){N=r(n(),1),R=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),G=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),T={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},z=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],V=_(),$=N.createContext({}),F=()=>(0,N.useContext)($),B=({children:e})=>{var o,t,i,r,n,l,a,s,c,d,u;const{sdkState:p}=E(),g=(null===(o=p.globalOptions)||void 0===o?void 0:o.locale)||"en",v=m(),[y,h]=(0,N.useState)(),[f,b]=(0,N.useState)();I(()=>{v.postEvent({eventType:R.SDK_VIEWED,eventAttributes:[{label:"default_category",data:f}]}),v.trackAnalyticsEvent({eventName:G.SDK_VIEWED,eventAttributes:{ll_default_category:f}})});const{isLoading:j,data:C}=L({geogID:null===(t=p.options)||void 0===t?void 0:t.geographyId,location:{lat:null===(i=p.options)||void 0===i?void 0:i.lat,lng:null===(r=p.options)||void 0===r?void 0:r.lng},include:"geometry"}),{geographyId:O,geography:_}=(0,N.useMemo)(()=>{var e,o;const t=Object.entries(C||{});return{geographyId:null===(e=t[0])||void 0===e?void 0:e[0],geography:null===(o=t[0])||void 0===o?void 0:o[1]}},[j,C]),{data:x,isLoading:A}=P({geogId:O,limit:500,categories:f?[f]:void 0}),D=(0,N.useMemo)(()=>[].concat(...Object.values(x||{})),[x]),w=(0,N.useCallback)(e=>{(null==y?void 0:y.latitude)!==(null==e?void 0:e.latitude)||(null==y?void 0:y.longitude)!==(null==e?void 0:e.longitude)?h(e):h(void 0)},[y]),S=(0,N.useMemo)(()=>D&&y&&1===y.markers.length&&D.find(e=>y.markers[0].id===k(e.lat,e.lng,e.name))||null,[y,D]),K=(0,N.useMemo)(()=>j||A,[j,A]);return(0,V.jsx)($.Provider,{value:{locale:g,isLoading:K,map:{mapProvider:null===(n=p.options)||void 0===n?void 0:n.mapProvider,zoom:null===(l=p.options)||void 0===l?void 0:l.zoom,pitch:null===(a=p.options)||void 0===a?void 0:a.pitch,bearing:null===(s=p.options)||void 0===s?void 0:s.bearing,cooperativeGestures:null===(c=p.options)||void 0===c?void 0:c.cooperativeGestures},geography:_,activeMarker:y,activeMarkerDetails:S,handleMarkerClick:w,activePoiCategory:f,onSelectPoiCategory:e=>{M.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),b(f===e?void 0:e)},markersData:D,hideAttribution:null===(d=p.options)||void 0===d?void 0:d.hideAttribution,showSchoolRatings:null===(u=p.options)||void 0===u?void 0:u.showSchoolRatings},children:e})},W="#008491",H="#9333ea",Y="relative w-full overflow-hidden grow",q=()=>{const{t:e}=c(["neighborhoodMap","common"]),o=x(),t=m(),{locale:i,handleMarkerClick:r,activePoiCategory:n,onSelectPoiCategory:l,hideAttribution:a}=F(),[s,d]=(0,N.useState)();(0,N.useEffect)(()=>{r(void 0),d(n)},[n]);const u=(0,N.useMemo)(()=>z.map(e=>({key:e,icon:C[e]})),[o]),p=e=>{l(e),t.postEvent({eventType:R.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),t.trackAnalyticsEvent({eventName:G.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},g=e=>{d(s===e?void 0:e)};return(0,V.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,V.jsxs)(A.Root,{children:[(0,V.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,V.jsx)(A.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:u.map(({key:o,icon:t})=>(0,V.jsx)(A.Filter,{filter:o,label:e(`common:pois.${o}`),icon:t,isActive:o===n,onSelectFilter:p},`category-${o}`))}),(0,V.jsx)(A.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,V.jsx)(A.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{l(void 0)},onApply:()=>{l(s)},children:u.map(({key:o,icon:t})=>(0,V.jsx)(A.Filter,{filter:o,label:e(`common:pois.${o}`),icon:t,isActive:o===s,onSelectFilter:g},`dialog-category-${o}`))})]}),(0,V.jsx)(X,{}),(0,V.jsx)(w,{sdkName:"neighborhood-map",locale:i,isHidden:a})]})},U=h({theme:s().oneOf(["day","night"]).optional(),lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),zoom:a().optional(),pitch:a().optional(),bearing:a().optional(),cooperativeGestures:g().optional(),mapProvider:d().optional(),hideAttribution:g().optional(),showSchoolRatings:g().optional()}).noUnknown(!0),p(u.neighborhoodWrap.key),o("default",()=>{var e,o,t,i,r,n,a;const{sdkState:s}=E(),c=K(),d=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",p=(0,N.useMemo)(()=>{var e,o,t,i;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(o=s.options)||void 0===o?void 0:o.geographyId}:{lat:null===(t=s.options)||void 0===t?void 0:t.lat,lng:null===(i=s.options)||void 0===i?void 0:i.lng}},[null===(o=s.options)||void 0===o?void 0:o.lat,null===(t=s.options)||void 0===t?void 0:t.lng,null===(i=s.options)||void 0===i?void 0:i.geographyId]);return(0,V.jsx)(S,{sdk:"Neighborhood Map",schema:U,options:s.options,children:(0,V.jsx)(v,{environment:null===(r=s.globalOptions)||void 0===r||null===(r=r.environment)||void 0===r?void 0:r.api,apiKey:s.apiKey,appearance:null===(n=s.globalOptions)||void 0===n?void 0:n.appearance,locale:null===(a=s.globalOptions)||void 0===a?void 0:a.locale,product:y.NEIGHBORHOOD_MAP,children:(0,V.jsx)(l,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:u.neighborhoodWrap,meta:{clientId:s.clientId,productName:y.NEIGHBORHOOD_MAP,productVersion:"1.24.50"},attributes:{location:p,host:s.location,host_url:document.referrer,locale:d,isMobile:c},flags:{isDebugMode:!1},children:(0,V.jsx)(B,{children:(0,V.jsx)(q,{})})})})})})}}})}();
|
|
2
|
+
//# sourceMappingURL=NeighborhoodMap-legacy-BqWdzaEi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodMap-legacy-Df8PeSMo.js","names":[],"sources":["../../src/sdks/NeighborhoodMap/types.ts","../../src/sdks/NeighborhoodMap/constants.ts","../../src/sdks/NeighborhoodMap/context.tsx","../../src/sdks/NeighborhoodMap/components/Map/Layers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Markers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Popup/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/styles.ts","../../src/sdks/NeighborhoodMap/components/Map/index.tsx","../../src/sdks/NeighborhoodMap/components/Content/styles.ts","../../src/sdks/NeighborhoodMap/components/Content/index.tsx","../../src/sdks/NeighborhoodMap/schema.ts","../../src/sdks/NeighborhoodMap/index.tsx"],"sourcesContent":["import type { POI, EnhancedPOIs, School, Schools } from \"@local-logic/client\";\nimport { POICategories } from \"@local-logic/client\";\nimport type { SDKOptions, MapProviderNames } from \"~/types/options\";\n\nexport type MapProvider = {\n name: MapProviderNames;\n key?: string;\n theme?: string;\n};\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n zoom?: number;\n pitch?: number;\n bearing?: number;\n cooperativeGestures?: boolean;\n mapProvider?: MapProvider;\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nexport type NeighborhoodMapProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport type POICategory = EnhancedPOIs | keyof Schools;\nexport type POIGroup = (keyof typeof POICategories)[];\nexport type SchoolGroup = (keyof Schools)[];\nexport type Marker = POI | School;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-map-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-map-Category-Clicked\",\n POI_CLICKED = \"neighborhood-map-Poi-Clicked\",\n POI_LINK_CLICKED = \"neighborhood-map-Poi-Link-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n POI_CLICKED = \"poi_clicked\",\n POI_LINK_CLICKED = \"poi_link_clicked\",\n}\n","import type { POICategory } from \"./types\";\n\nexport const DEFAULT_MIN_ZOOM = 2; // Default minimum zoom level for the map\nexport const DEFAULT_MAX_ZOOM = 17; // Default maximum zoom level for the map\n\nexport const MAX_POI_LIMIT = 500;\n\nexport const MAP_PADDING = {\n desktop: {\n top: 30,\n bottom: 30,\n left: 30,\n right: 30,\n },\n mobile: {\n top: 15,\n bottom: 15,\n left: 15,\n right: 15,\n },\n};\n\nexport const categories: POICategory[] = [\n \"primary_schools\",\n \"high_schools\",\n \"restaurants\",\n \"groceries\",\n \"groceries_specialized\",\n \"non_food_shops\",\n \"nightlife\",\n \"cafes\",\n \"daycares\",\n \"bus_stops\",\n \"rapid_transit_stations\",\n \"train_stations\",\n \"parks\",\n \"fitness\",\n \"sport_facilities\",\n \"health_care\",\n \"pet_care\",\n \"car_fueling_stations\",\n \"art_culture_science\",\n \"home_improvement\",\n \"personal_care\",\n];\n","import React, { useContext, useState, useMemo, useCallback } from \"react\";\nimport type { Geography, POI, School } from \"@local-logic/client\";\nimport type { MarkerPoint } from \"@local-logic/maps\";\nimport {\n type NeighborhoodMapProps,\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { MAX_POI_LIMIT } from \"./constants\";\n\nimport { useTracking } from \"~/tracking\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport errorTracker from \"~/utils/errorTracker\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\nimport { useMarkers } from \"~/hooks/useMarkers\";\n\ninterface Location {\n lat: number;\n lng: number;\n}\n\nexport type DefaultContext = {\n locale: \"en\" | \"fr\";\n isLoading: boolean;\n map: {\n mapProvider: NeighborhoodMapProps[\"options\"][\"mapProvider\"];\n zoom: NeighborhoodMapProps[\"options\"][\"zoom\"];\n pitch: NeighborhoodMapProps[\"options\"][\"pitch\"];\n bearing: NeighborhoodMapProps[\"options\"][\"bearing\"];\n cooperativeGestures: NeighborhoodMapProps[\"options\"][\"cooperativeGestures\"];\n };\n geography?: Geography;\n activeMarker?: MarkerPoint;\n activeMarkerDetails: POI | School | null;\n activePoiCategory?: POICategory;\n onSelectPoiCategory: (category?: POICategory) => void;\n handleMarkerClick: (marker?: MarkerPoint) => void;\n markersData?: POI[] | School[];\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nconst NeighborhoodMapContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodMap = () => useContext(NeighborhoodMapContext);\n\nconst NeighborhoodMapProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\n const tracking = useTracking();\n const [activeMarker, setActiveMarker] = useState<MarkerPoint>();\n const [activePoiCategory, setActivePoiCategory] =\n useState<DefaultContext[\"activePoiCategory\"]>();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n eventAttributes: [\n {\n label: \"default_category\",\n data: activePoiCategory,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n eventAttributes: {\n ll_default_category: activePoiCategory,\n },\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n geogID: sdkState.options?.geographyId,\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\n include: \"geometry\",\n },\n );\n\n const { geographyId, geography } = useMemo(() => {\n const geographiesArray = Object.entries(geographyData || {});\n\n return {\n geographyId: geographiesArray[0]?.[0],\n geography: geographiesArray[0]?.[1],\n };\n }, [isGeographyLoading, geographyData]);\n\n const { data: markersDataRaw, isLoading: isMarkersLoading } = useMarkers({\n geogId: geographyId,\n limit: MAX_POI_LIMIT,\n categories: activePoiCategory ? [activePoiCategory] : undefined,\n });\n\n // Flatten the markers data into a single array\n const markersData = useMemo(\n () =>\n ([] as (POI | School)[]).concat(...Object.values(markersDataRaw || {})),\n [markersDataRaw],\n );\n\n const handleSelectPoiCategory = (category?: POICategory) => {\n errorTracker.addBreadCrumb(\n \"NeighborhoodMapProvider\",\n \"handleSelectPoiCategory\",\n {\n category,\n },\n );\n\n setActivePoiCategory(activePoiCategory === category ? undefined : category);\n };\n\n const handleMarkerClick = useCallback(\n (marker?: MarkerPoint) => {\n if (\n activeMarker?.latitude === marker?.latitude &&\n activeMarker?.longitude === marker?.longitude\n ) {\n setActiveMarker(undefined);\n return;\n }\n\n setActiveMarker(marker);\n },\n [activeMarker],\n );\n\n const activeMarkerDetails = useMemo(() => {\n if (!markersData || !activeMarker || activeMarker.markers.length !== 1) {\n return null;\n }\n\n return (\n markersData.find(\n (marker) =>\n activeMarker.markers[0].id ===\n getIdFromMarker(marker.lat, marker.lng, marker.name),\n ) || null\n );\n }, [activeMarker, markersData]);\n\n const isLoading = useMemo(\n () => isGeographyLoading || isMarkersLoading,\n [isGeographyLoading, isMarkersLoading],\n );\n\n return (\n <NeighborhoodMapContext.Provider\n value={{\n locale,\n isLoading,\n map: {\n mapProvider: sdkState.options?.mapProvider,\n zoom: sdkState.options?.zoom,\n pitch: sdkState.options?.pitch,\n bearing: sdkState.options?.bearing,\n cooperativeGestures: sdkState.options?.cooperativeGestures,\n },\n geography,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory: handleSelectPoiCategory,\n markersData,\n hideAttribution: sdkState.options?.hideAttribution,\n showSchoolRatings: sdkState.options?.showSchoolRatings,\n }}\n >\n {children}\n </NeighborhoodMapContext.Provider>\n );\n};\n\nexport { useNeighborhoodMap, NeighborhoodMapProvider, type Location };\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Source, type LayerType } from \"@local-logic/maps\";\n\nimport type { School } from \"@local-logic/client\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nconst GEOGRAPHY_LAYER_COLOR = \"#008491\";\nconst SCHOOL_CATCHMENT_COLOR = \"#9333ea\";\n\nexport function Layers() {\n const { geography, activeMarkerDetails } = useNeighborhoodMap();\n\n const primaryColor = useMemo(\n () =>\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--ll-colors-primary-100\",\n ) || GEOGRAPHY_LAYER_COLOR,\n [],\n );\n\n const neighborhoodLayerSources = useMemo(() => {\n const sources: Source[] = [];\n\n if (\n typeof geography?.geometry === \"undefined\" ||\n (Array.isArray(geography.geometry) && geography.geometry.length === 0)\n ) {\n return undefined;\n }\n\n geography.geometry.forEach((geometry, index) => {\n sources.push({\n key: `neighborhood-geometry-${index}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: primaryColor,\n },\n {\n type: \"line\" as LayerType,\n color: primaryColor,\n },\n ],\n geometry: [geometry],\n });\n });\n\n return sources;\n }, [geography, primaryColor]);\n\n const schoolLayerSources = useMemo(() => {\n const activeSchoolMarkerDetails = activeMarkerDetails as School;\n if (\n typeof activeSchoolMarkerDetails?.catchments === \"undefined\" ||\n activeSchoolMarkerDetails.catchments?.length === 0\n ) {\n return undefined;\n }\n\n const sources: Source[] = [];\n\n activeSchoolMarkerDetails.catchments.forEach(\n (catchment, catchmentIndex) => {\n if (\n Array.isArray(catchment.geometry) &&\n catchment.geometry.length > 0\n ) {\n catchment.geometry.forEach((geometry, geomIndex) => {\n sources.push({\n key: `school-catchment-${catchmentIndex}-geom-${geomIndex}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n {\n type: \"line\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n ],\n geometry: [geometry],\n });\n });\n }\n },\n );\n\n return sources;\n }, [activeMarkerDetails]);\n\n return (\n <>\n <LocalLogicMap.Layers sources={neighborhoodLayerSources} />\n <LocalLogicMap.Layers sources={schoolLayerSources} />\n </>\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Marker } from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\n\nexport function Markers() {\n const tracking = useTracking();\n const { isLoading, activePoiCategory, markersData, handleMarkerClick } =\n useNeighborhoodMap();\n\n const icon = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return undefined;\n }\n\n return poiIcons[activePoiCategory] as Marker[\"icon\"];\n }, [activePoiCategory]);\n\n const mapMarkers = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return [];\n }\n\n // Filter out duplicate markers by ID\n // This is because we combine multiple data sources that may have overlapping POIs\n return Array.from(\n (markersData || [])\n .map(\n (marker) =>\n ({\n id: getIdFromMarker(marker.lat, marker.lng, marker.name),\n latitude: marker.lat,\n longitude: marker.lng,\n name: marker.name,\n icon,\n }) as Marker,\n )\n .reduce((acc, marker) => {\n acc.set(marker.id, marker);\n return acc;\n }, new Map<string, Marker>())\n .values(),\n );\n }, [markersData, icon, activePoiCategory]);\n\n /**\n * Handles clicking on a map marker. This includes both single markers and cluster markers.\n *\n * @param marker\n * @returns\n */\n const handleMapMarkerClick = (\n marker: Parameters<typeof handleMarkerClick>[0],\n ) => {\n handleMarkerClick(marker);\n\n if (!activePoiCategory || !marker) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n if (marker.markers.length > 1) {\n eventAttributes.isCluster = true;\n eventAttributes.clusterSize = marker.markers.length;\n eventAttributes.lat = marker.latitude;\n eventAttributes.lng = marker.longitude;\n } else if (marker.markers.length === 1) {\n Object.entries(marker.markers[0]).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n // Remove sdk id before sending to tracking\n if (key === \"id\") {\n return;\n }\n eventAttributes[key] = value;\n }\n });\n }\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Markers\n isLoading={isLoading}\n markers={mapMarkers}\n clusterIcon={icon}\n onClick={handleMapMarkerClick}\n />\n );\n}\n","import React from \"react\";\n\nimport {\n LocalLogicMap,\n type Marker,\n type MarkerPoint,\n} from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nimport { ClusterPopupContent } from \"~/components/map/ClusterPopupContent\";\nimport { POIPopupContent } from \"~/components/map/POIPopupContent\";\n\nexport function Popup() {\n const tracking = useTracking();\n const {\n activePoiCategory,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n showSchoolRatings,\n } = useNeighborhoodMap();\n\n /**\n * Handles selecting a marker from within a cluster popup.\n *\n * @param marker\n * @returns\n */\n const handleClusterMarkerSelected = (marker: Marker) => {\n handleMarkerClick({\n id: marker.id,\n latitude: marker.latitude,\n longitude: marker.longitude,\n markers: [marker],\n } as MarkerPoint);\n\n if (!activePoiCategory) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(marker).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n const handleLinkClick = (url: string) => {\n if (!activePoiCategory || !activeMarkerDetails) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(activeMarkerDetails).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n eventAttributes.clickedUrl = url;\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_LINK_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_LINK_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Popup\n latitude={activeMarker?.latitude}\n longitude={activeMarker?.longitude}\n onClose={() => handleMarkerClick(undefined)}\n >\n <ClusterPopupContent\n activeMarker={activeMarker}\n onMarkerSelected={handleClusterMarkerSelected}\n onClose={handleMarkerClick}\n />\n <POIPopupContent\n marker={activeMarkerDetails}\n poiCategory={activePoiCategory}\n onLocationLinkClick={handleLinkClick}\n onSchoolLinkClick={handleLinkClick}\n onClose={handleMarkerClick}\n showSchoolRatings={showSchoolRatings}\n />\n </LocalLogicMap.Popup>\n );\n}\n","export const container = `relative w-full overflow-hidden grow`;\n","import React, { useMemo } from \"react\";\n\nimport \"@local-logic/maps/style.css\";\n\nimport { LocalLogicMap } from \"@local-logic/maps\";\n\nimport { Layers } from \"./Layers\";\nimport { Markers } from \"./Markers\";\nimport { Popup } from \"./Popup\";\n\nimport * as styles from \"./styles\";\nimport { getMapProviderConfig } from \"~/utils/map/getMapProviderConfig\";\nimport {\n DEFAULT_MIN_ZOOM,\n DEFAULT_MAX_ZOOM,\n MAP_PADDING,\n} from \"~/sdks/NeighborhoodMap/constants\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nexport function Map({\n children,\n ...rest\n}: {\n children?: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const breakpoints = useResponsiveBreakpoints();\n const { locale, map, activeMarker, geography } = useNeighborhoodMap();\n\n const mapProviderConfig = useMemo(\n () =>\n getMapProviderConfig(\n map.mapProvider?.name,\n map.mapProvider?.key,\n map.mapProvider?.theme,\n ),\n [map.mapProvider?.name, map.mapProvider?.key, map.mapProvider?.theme],\n );\n\n const locationBoundary = useMemo(() => {\n if (typeof geography === \"undefined\" || !geography?.geometry) {\n return undefined;\n }\n\n const outerRing = geography.geometry.flatMap((polygon) => polygon[0] || []);\n\n if (!outerRing || outerRing.length === 0) {\n return undefined;\n }\n return outerRing.map((point: number[]) => [point[1], point[0]]);\n }, [geography]);\n\n return (\n <div className={styles.container} {...rest}>\n {typeof geography !== \"undefined\" && (\n <LocalLogicMap.Root\n locale={locale}\n mapProvider={mapProviderConfig}\n mapPadding={MAP_PADDING[breakpoints.sm ? \"mobile\" : \"desktop\"]}\n locationBoundary={locationBoundary}\n center={{\n latitude: geography?.centroid.lat,\n longitude: geography?.centroid.lng,\n }}\n zoom={map.zoom}\n minZoom={DEFAULT_MIN_ZOOM}\n maxZoom={DEFAULT_MAX_ZOOM}\n zoomPosition={breakpoints.sm ? \"bottom-right\" : undefined}\n pitch={map.pitch}\n bearing={map.bearing}\n cooperativeGestures={map.cooperativeGestures}\n activeMarker={activeMarker}\n >\n <LocalLogicMap.BaseMap>\n <Layers />\n <Markers />\n <Popup />\n </LocalLogicMap.BaseMap>\n </LocalLogicMap.Root>\n )}\n\n {children}\n </div>\n );\n}\n","export const container = `relative bg-base-white w-full h-screen flex flex-col`;\nexport const header = `w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row`;\n","import React, { useMemo, useState, useEffect } from \"react\";\n\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\nimport { useTranslation } from \"react-i18next\";\nimport { HorizontalScrollFilters } from \"@local-logic/design-system\";\nimport { Map } from \"../Map\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\nimport { useTracking } from \"~/tracking\";\n\nimport { Attribution } from \"~/components/Attribution\";\n\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\nimport { categories } from \"~/sdks/NeighborhoodMap/constants\";\n\nimport {\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nexport const Content = () => {\n const { t } = useTranslation([\"neighborhoodMap\", \"common\"]);\n const flags = useFlags();\n const tracking = useTracking();\n\n const {\n locale,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory,\n hideAttribution,\n } = useNeighborhoodMap();\n const [dialogSelectedPoiCategory, setDialogSelectedPoiCategory] = useState<\n POICategory | undefined\n >();\n\n useEffect(() => {\n handleMarkerClick(undefined);\n setDialogSelectedPoiCategory(activePoiCategory);\n }, [activePoiCategory]);\n\n const poiCategories = useMemo(\n () =>\n categories.map((category) => ({\n key: category as POICategory,\n icon: poiIcons[category],\n })),\n [flags],\n );\n\n const handleOnSelectCategory = (category: POICategory) => {\n onSelectPoiCategory(category);\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: category,\n },\n });\n };\n\n const handleOnDialogSelectCategory = (category: POICategory) => {\n setDialogSelectedPoiCategory(\n dialogSelectedPoiCategory === category ? undefined : category,\n );\n };\n\n const handleResetFilters = () => {\n onSelectPoiCategory(undefined);\n };\n\n const handleApplyFilter = () => {\n onSelectPoiCategory(dialogSelectedPoiCategory);\n };\n\n return (\n <div className={styles.container}>\n <HorizontalScrollFilters.Root>\n <div className={styles.header}>\n <HorizontalScrollFilters.ScrollList\n activeFilter={activePoiCategory}\n leftArrowAriaLabel={t(\"filters.navigation.scrollLeftAriaLabel\")}\n rightArrowAriaLabel={t(\"filters.navigation.scrollRightAriaLabel\")}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === activePoiCategory}\n onSelectFilter={handleOnSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.ScrollList>\n <HorizontalScrollFilters.DialogTrigger\n label={t(\"filters.navigation.allFiltersAriaLabel\")}\n />\n </div>\n\n <HorizontalScrollFilters.Dialog\n title={t(\"filters.popup.title\")}\n description={t(\"filters.popup.description\")}\n applyLabel={t(\"filters.popup.cta.apply\")}\n resetLabel={t(\"filters.popup.cta.reset\")}\n onReset={handleResetFilters}\n onApply={handleApplyFilter}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`dialog-category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === dialogSelectedPoiCategory}\n onSelectFilter={handleOnDialogSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.Dialog>\n </HorizontalScrollFilters.Root>\n\n <Map />\n\n <Attribution\n sdkName=\"neighborhood-map\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </div>\n );\n};\n","import { ObjectSchema, number, object, mixed, string, boolean } from \"yup\";\nimport { Options } from \"./types\";\nimport { MapProvider } from \"~/types/options\";\n\nexport const schema: ObjectSchema<Options> = object({\n theme: string().oneOf([\"day\", \"night\"]).optional(),\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n zoom: number().optional(),\n pitch: number().optional(),\n bearing: number().optional(),\n cooperativeGestures: boolean().optional(),\n mapProvider: mixed<MapProvider>().optional(),\n hideAttribution: boolean().optional(),\n showSchoolRatings: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\n\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodMapProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodMapProps } from \"./types\";\n\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodMap = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ValidateOptions\n sdk=\"Neighborhood Map\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_MAP}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_MAP,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodMapProvider>\n <Content />\n </NeighborhoodMapProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n );\n};\n\nexport default NeighborhoodMap;\n"],"mappings":"glDGUA,SAAgB,IACd,MAAM,UAAE,EAAA,oBAAW,GAAwB,IAErC,GAAA,EAAA,EAAA,SAAA,IAEF,iBAAiB,SAAS,iBAAiB,iBACzC,4BACG,EACP,IAGI,GAAA,EAAA,EAAA,SAAA,KACJ,MAAM,EAAoB,GAE1B,UACiC,KAAxB,aAAA,EAAA,EAAW,WACjB,MAAM,QAAQ,EAAU,WAA2C,IAA9B,EAAU,SAAS,QAsB3D,OAjBA,EAAU,SAAS,QAAA,CAAS,EAAU,KACpC,EAAQ,KAAK,CACX,IAAK,yBAAyB,IAC9B,MAAO,CACL,CACE,KAAM,OACN,MAAO,GAET,CACE,KAAM,OACN,MAAO,IAGX,SAAU,CAAC,OAIR,GACN,CAAC,EAAW,IAET,GAAA,EAAA,EAAA,SAAA,KAAmC,IAAA,EACvC,MAAM,EAA4B,EAClC,QACmD,KAA1C,aAAA,EAAA,EAA2B,aACe,KAAvB,QAA1B,EAAA,EAA0B,kBAAA,IAAA,OAAA,EAA1B,EAAsC,QAEtC,OAGF,MAAM,EAAoB,GA4B1B,OA1BA,EAA0B,WAAW,QAAA,CAClC,EAAW,KAER,MAAM,QAAQ,EAAU,WACxB,EAAU,SAAS,OAAS,GAE5B,EAAU,SAAS,QAAA,CAAS,EAAU,KACpC,EAAQ,KAAK,CACX,IAAK,oBAAoB,UAAuB,IAChD,MAAO,CACL,CACE,KAAM,OACN,MAAO,GAET,CACE,KAAM,OACN,MAAO,IAGX,SAAU,CAAC,SAOd,GACN,CAAC,IAEJ,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAc,OAAf,CAAsB,QAAS,KAC/B,EAAA,EAAA,KAAC,EAAc,OAAf,CAAsB,QAAS,OChFrC,SAAgB,IACd,MAAM,EAAW,KACX,UAAE,EAAA,kBAAW,EAAA,YAAmB,EAAA,kBAAa,GACjD,IAEI,GAAA,EAAA,EAAA,SAAA,KACJ,QAAiC,IAAtB,EAIX,OAAO,EAAS,IACf,CAAC,IAEE,GAAA,EAAA,EAAA,SAAA,SAC6B,IAAtB,EACF,GAKF,MAAM,MACV,GAAe,IACb,IACE,IAAA,CAEG,GAAI,EAAgB,EAAO,IAAK,EAAO,IAAK,EAAO,MACnD,SAAU,EAAO,IACjB,UAAW,EAAO,IAClB,KAAM,EAAO,KACb,UAGL,OAAA,CAAQ,EAAK,KACZ,EAAI,IAAI,EAAO,GAAI,GACZ,GACN,IAAI,KACN,UAEJ,CAAC,EAAa,EAAM,IAwDvB,OACE,EAAA,EAAA,KAAC,EAAc,QAAf,CACa,YACX,QAAS,EACT,YAAa,EACb,QApDF,IAIA,GAFA,EAAkB,IAEb,IAAsB,EACzB,OAGF,MAAM,EAA6D,CACjE,SAAU,GAGR,EAAO,QAAQ,OAAS,GAC1B,EAAgB,WAAY,EAC5B,EAAgB,YAAc,EAAO,QAAQ,OAC7C,EAAgB,IAAM,EAAO,SAC7B,EAAgB,IAAM,EAAO,WACM,IAA1B,EAAO,QAAQ,QACxB,OAAO,QAAQ,EAAO,QAAQ,IAAI,QAAA,EAAU,EAAK,MAC/C,GACmB,kBAAV,GACU,iBAAV,GACU,iBAAV,EACP,CAEA,GAAY,OAAR,EACF,OAEF,EAAgB,GAAO,KAK7B,EAAS,UAAU,CACjB,UAAW,EAAuB,YAClC,gBAAiB,OAAO,QAAQ,GAAiB,IAAA,EAAM,EAAK,MAAA,CAC1D,MAAO,EACP,KAAM,OAIV,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,YAC3B,uBCtFN,SAAgB,IACd,MAAM,EAAW,KACX,kBACJ,EAAA,aACA,EAAA,oBACA,EAAA,kBACA,EAAA,kBACA,GACE,IAgDE,EAAmB,IACvB,IAAK,IAAsB,EACzB,OAGF,MAAM,EAA6D,CACjE,SAAU,GAGZ,OAAO,QAAQ,GAAqB,QAAA,EAAU,EAAK,MAE9B,kBAAV,GACU,iBAAV,GACU,iBAAV,IAEP,EAAgB,GAAO,KAG3B,EAAgB,WAAa,EAE7B,EAAS,UAAU,CACjB,UAAW,EAAuB,iBAClC,gBAAiB,OAAO,QAAQ,GAAiB,IAAA,EAAM,EAAK,MAAA,CAC1D,MAAO,EACP,KAAM,OAIV,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,iBAC3B,qBAIJ,OACE,EAAA,EAAA,MAAC,EAAc,MAAf,CACE,SAAU,aAAA,EAAA,EAAc,SACxB,UAAW,aAAA,EAAA,EAAc,UACzB,QAAA,IAAe,OAAkB,YAHnC,EAKE,EAAA,EAAA,KAAC,EAAD,CACgB,eACd,iBAlF+B,IAQnC,GAPA,EAAkB,CAChB,GAAI,EAAO,GACX,SAAU,EAAO,SACjB,UAAW,EAAO,UAClB,QAAS,CAAC,MAGP,EACH,OAGF,MAAM,EAA6D,CACjE,SAAU,GAGZ,OAAO,QAAQ,GAAQ,QAAA,EAAU,EAAK,MAEjB,kBAAV,GACU,iBAAV,GACU,iBAAV,IAEP,EAAgB,GAAO,KAI3B,EAAS,UAAU,CACjB,UAAW,EAAuB,YAClC,gBAAiB,OAAO,QAAQ,GAAiB,IAAA,EAAM,EAAK,MAAA,CAC1D,MAAO,EACP,KAAM,OAIV,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,YAC3B,qBA+CE,QAAS,KAEX,EAAA,EAAA,KAAC,EAAD,CACE,OAAQ,EACR,YAAa,EACb,oBAAqB,EACrB,kBAAmB,EACnB,QAAS,EACU,yBEzG3B,SAAgB,EAAA,GAK0B,IAAA,EAAA,EAAA,EAAA,IALtB,SAClB,GACG,EAAA,+WAAA,CAAA,EAAA,GAIH,MAAM,EAAc,KACd,OAAE,EAAA,IAAQ,EAAA,aAAK,EAAA,UAAc,GAAc,IAE3C,GAAA,EAAA,EAAA,SAAA,KAAA,IAAA,EAAA,EAAA,EAAA,OAEF,EACM,QADN,EACE,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,KACb,QADa,EACjB,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,IACb,QADa,EACjB,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,QAErB,CAAK,QAAL,EAAC,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,KAAU,QAAV,EAAM,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,IAAS,QAAT,EAAK,EAAI,mBAAA,IAAA,OAAA,EAAJ,EAAiB,QAG3D,GAAA,EAAA,EAAA,SAAA,KACJ,QAAyB,IAAd,GAA8B,UAAA,EAAW,SAClD,OAGF,MAAM,EAAY,EAAU,SAAS,QAAS,GAAY,EAAQ,IAAM,IAExE,OAAK,GAAkC,IAArB,EAAU,OAGrB,EAAU,IAAK,GAAoB,CAAC,EAAM,GAAI,EAAM,UAH3D,GAIC,CAAC,IAEJ,OACE,EAAA,EAAA,MAAC,MAAA,EAAA,EAAA,CAAI,UAAW,GAAsB,GAAA,CAAA,EAAA,UAAtC,MACwB,IAAd,IACN,EAAA,EAAA,KAAC,EAAc,KAAf,CACU,SACR,YAAa,EACb,WAAY,EAAY,EAAY,GAAK,SAAW,WAClC,mBAClB,OAAQ,CACN,SAAU,aAAA,EAAA,EAAW,SAAS,IAC9B,UAAW,aAAA,EAAA,EAAW,SAAS,KAEjC,KAAM,EAAI,KACV,QAAA,EACA,QAAA,GACA,aAAc,EAAY,GAAK,oBAAiB,EAChD,MAAO,EAAI,MACX,QAAS,EAAI,QACb,oBAAqB,EAAI,oBACX,yBAEd,EAAA,EAAA,MAAC,EAAc,QAAf,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAD,CAAA,IACA,EAAA,EAAA,KAAC,EAAD,CAAA,IACA,EAAA,EAAA,KAAC,EAAD,CAAA,QAKL,mZP9CP,EAAA,SAAA,UACE,EAAA,WAAA,0BACA,EAAA,iBAAA,oCACA,EAAA,YAAA,+BACA,EAAA,iBAAA,sCAJF,KASA,EAAA,SAAA,UACE,EAAA,WAAA,aACA,EAAA,iBAAA,mBACA,EAAA,YAAA,cACA,EAAA,iBAAA,qBAJF,KCrCa,EAAc,CACzB,QAAS,CACP,IAAK,GACL,OAAQ,GACR,KAAM,GACN,MAAO,IAET,OAAQ,CACN,IAAK,GACL,OAAQ,GACR,KAAM,GACN,MAAO,KAIE,EAA4B,CACvC,kBACA,eACA,cACA,YACA,wBACA,iBACA,YACA,QACA,WACA,YACA,yBACA,iBACA,QACA,UACA,mBACA,cACA,WACA,uBACA,sBACA,mBACA,uBCGI,EAAA,EAA+B,cACnC,CAAA,GAEI,EAAA,KAAA,EAAA,EAAA,YAAsC,GAEtC,EAAA,EACJ,eAGI,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACJ,MAAM,SAAE,GAAa,IACf,GAAkB,QAAT,EAAA,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,SAAU,KAC3C,EAAW,KACV,EAAc,IAAA,EAAA,EAAA,aACd,EAAmB,IAAA,EAAA,EAAA,YAG1B,EAAA,KACE,EAAS,UAAU,CACjB,UAAW,EAAuB,WAClC,gBAAiB,CACf,CACE,MAAO,mBACP,KAAM,MAKZ,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,WAC3B,gBAAiB,CACf,oBAAqB,OAK3B,MAAQ,UAAW,EAAoB,KAAM,GAAkB,EAC7D,CACE,OAAiB,QAAjB,EAAQ,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,YAC1B,SAAU,CACR,IAAc,QAAd,EAAK,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,IACvB,IAAc,QAAd,EAAK,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,KAEzB,QAAS,cAIP,YAAE,EAAA,UAAa,IAAA,EAAA,EAAA,SAAA,KAA4B,IAAA,EAAA,EAC/C,MAAM,EAAmB,OAAO,QAAQ,GAAiB,CAAA,GAEzD,MAAO,CACL,YAA8B,QAA9B,EAAa,EAAiB,UAAA,IAAA,OAAA,EAAjB,EAAsB,GACnC,UAA4B,QAA5B,EAAW,EAAiB,UAAA,IAAA,OAAA,EAAjB,EAAsB,KAElC,CAAC,EAAoB,KAEhB,KAAM,EAAgB,UAAW,GAAqB,EAAW,CACvE,OAAQ,EACR,MAAA,IACA,WAAY,EAAoB,CAAC,QAAqB,IAIlD,GAAA,EAAA,EAAA,SAAA,IAED,GAAwB,UAAU,OAAO,OAAO,GAAkB,CAAA,IACrE,CAAC,IAeG,GAAA,EAAA,EAAA,aACH,KAEG,aAAA,EAAA,EAAc,aAAa,aAAA,EAAA,EAAQ,YACnC,aAAA,EAAA,EAAc,cAAc,aAAA,EAAA,EAAQ,WAMtC,EAAgB,GAJd,OAAgB,IAMpB,CAAC,IAGG,GAAA,EAAA,EAAA,SAAA,IACC,GAAgB,GAAgD,IAAhC,EAAa,QAAQ,QAKxD,EAAY,KACT,GACC,EAAa,QAAQ,GAAG,KACxB,EAAgB,EAAO,IAAK,EAAO,IAAK,EAAO,QAP5C,KAUR,CAAC,EAAc,IAEZ,GAAA,EAAA,EAAA,SAAA,IACE,GAAsB,EAC5B,CAAC,EAAoB,IAGvB,OACE,EAAA,EAAA,KAAC,EAAuB,SAAxB,CACE,MAAO,CACL,SACA,YACA,IAAK,CACH,YAAsB,QAAtB,EAAa,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,YAC/B,KAAe,QAAf,EAAM,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,KACxB,MAAgB,QAAhB,EAAO,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,MACzB,QAAkB,QAAlB,EAAS,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,QAC3B,oBAA8B,QAA9B,EAAqB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,qBAEzC,YACA,eACA,sBACA,oBACA,oBACA,oBA/D2B,IAC/B,EAAa,cACX,0BACA,0BACA,CACE,aAIJ,EAAqB,IAAsB,OAAW,EAAY,IAuD9D,cACA,gBAA0B,QAA1B,EAAiB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,gBACnC,kBAA4B,QAA5B,EAAmB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,mBAGtC,cCjLD,EAAwB,UACxB,EAAyB,UGRlB,EAAY,uCGqBZ,EAAA,KACX,MAAM,EAAE,GAAM,EAAe,CAAC,kBAAmB,WAC3C,EAAQ,IACR,EAAW,KAEX,OACJ,EAAA,kBACA,EAAA,kBACA,EAAA,oBACA,EAAA,gBACA,GACE,KACG,EAA2B,IAAA,EAAA,EAAA,aAIlC,EAAA,EAAA,WAAA,KACE,OAAkB,GAClB,EAA6B,IAC5B,CAAC,IAEJ,MAAM,GAAA,EAAA,EAAA,SAAA,IAEF,EAAW,IAAK,IAAA,CACd,IAAK,EACL,KAAM,EAAS,MAEnB,CAAC,IAGG,EAA0B,IAC9B,EAAoB,GAEpB,EAAS,UAAU,CACjB,UAAW,EAAuB,iBAClC,gBAAiB,CACf,CACE,MAAO,WACP,KAAM,MAKZ,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,iBAC3B,gBAAiB,CACf,YAAa,MAKb,EAAgC,IACpC,EACE,IAA8B,OAAW,EAAY,IAYzD,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UDvFgB,gECuFrB,EACE,EAAA,EAAA,MAAC,EAAwB,KAAzB,CAAA,SAAA,EACE,EAAA,EAAA,MAAC,MAAD,CAAK,UDxFS,4ECwFd,EACE,EAAA,EAAA,KAAC,EAAwB,WAAzB,CACE,aAAc,EACd,mBAAoB,EAAE,0CACtB,oBAAqB,EAAE,oDAEtB,EAAc,IAAA,EAAO,MAAK,WACzB,EAAA,EAAA,KAAC,EAAwB,OAAzB,CAEE,OAAQ,EACR,MAAO,EAAE,eAAe,KAClB,OACN,SAAU,IAAQ,EAClB,eAAgB,GALX,YAAY,SASvB,EAAA,EAAA,KAAC,EAAwB,cAAzB,CACE,MAAO,EAAE,gDAIb,EAAA,EAAA,KAAC,EAAwB,OAAzB,CACE,MAAO,EAAE,uBACT,YAAa,EAAE,6BACf,WAAY,EAAE,2BACd,WAAY,EAAE,2BACd,QAtCF,KACJ,OAAoB,IAsCd,QAnCF,KACJ,EAAoB,aAoCb,EAAc,IAAA,EAAO,MAAK,WACzB,EAAA,EAAA,KAAC,EAAwB,OAAzB,CAEE,OAAQ,EACR,MAAO,EAAE,eAAe,KAClB,OACN,SAAU,IAAQ,EAClB,eAAgB,GALX,mBAAmB,YAWhC,EAAA,EAAA,KAAC,EAAD,CAAA,IAEA,EAAA,EAAA,KAAC,EAAD,CACE,QAAQ,mBACA,SACR,SAAU,QCrIL,EAAgC,EAAO,CAClD,MAAO,IAAS,MAAM,CAAC,MAAO,UAAU,WACxC,IAAK,IACF,KAAI,GAAK,6BACT,IAAI,GAAI,6BACR,KAAK,cAAe,CACnB,GAAK,GAAgD,iBAAhB,EACrC,KAAO,GAAgB,EAAY,WACnC,UAAY,GAAgB,EAAY,aAE5C,IAAK,IACF,KAAI,IAAM,8BACV,IAAI,IAAK,8BACT,KAAK,cAAe,CACnB,GAAK,GAAgD,iBAAhB,EACrC,KAAO,GAAgB,EAAY,WACnC,UAAY,GAAgB,EAAY,aAE5C,YAAa,IAAS,WACtB,KAAM,IAAS,WACf,MAAO,IAAS,WAChB,QAAS,IAAS,WAClB,oBAAqB,IAAU,WAC/B,YAAa,IAAqB,WAClC,gBAAiB,IAAU,WAC3B,kBAAmB,IAAU,aAC5B,WAAU,GCXb,EAAoB,EAAmB,iBAAiB,KAAI,EAAA,UAEtD,KAAwB,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAC5B,MAAM,SAAE,GAAa,IACf,EAAW,IACX,GAAkB,QAAT,EAAA,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,SAAU,KAE3C,GAAA,EAAA,EAAA,SAAA,KAAyB,IAAA,EAAA,EAAA,EAAA,EAC7B,OAAa,QAAb,EAAI,EAAS,eAAA,IAAA,GAAT,EAAkB,YACb,CACL,YAAsB,QAAtB,EAAa,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,aAI5B,CACL,IAAc,QAAd,EAAK,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,IACvB,IAAc,QAAd,EAAK,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,MAExB,CACQ,QADR,EACD,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,IACT,QADS,EAClB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,IACT,QADS,EAClB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,cAGpB,OACE,EAAA,EAAA,KAAC,EAAD,CACE,IAAI,mBACI,SACR,QAAS,EAAS,kBAElB,EAAA,EAAA,KAAC,EAAD,CACE,YAAsB,QAAtB,EAAa,EAAS,qBAAA,IAAA,GAAe,QAAf,EAAT,EAAwB,mBAAA,IAAA,OAAA,EAAxB,EAAqC,IAClD,OAAQ,EAAS,OACjB,WAAqB,QAArB,EAAY,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,WACpC,OAAiB,QAAjB,EAAQ,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,OAChC,QAAS,EAAa,2BAEtB,EAAA,EAAA,KAAC,EAAD,CACE,yBAA0B,CACxB,OAAQ,EAAS,QAAU,IAE7B,kBAAmB,EAAmB,iBACtC,KAAM,CACJ,SAAU,EAAS,SACnB,YAAa,EAAa,iBAC1B,eAAA,WAEF,WAAY,CACV,WACA,KAAM,EAAS,SACf,SAAU,SAAS,SACnB,SACA,YAEF,MAAO,CACL,aACE,aAGJ,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CAAA"}
|
|
1
|
+
{"version":3,"file":"NeighborhoodMap-legacy-BqWdzaEi.js","names":[],"sources":["../../src/sdks/NeighborhoodMap/types.ts","../../src/sdks/NeighborhoodMap/constants.ts","../../src/sdks/NeighborhoodMap/context.tsx","../../src/sdks/NeighborhoodMap/components/Map/Layers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Markers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Popup/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/styles.ts","../../src/sdks/NeighborhoodMap/components/Map/index.tsx","../../src/sdks/NeighborhoodMap/components/Content/styles.ts","../../src/sdks/NeighborhoodMap/components/Content/index.tsx","../../src/sdks/NeighborhoodMap/schema.ts","../../src/sdks/NeighborhoodMap/index.tsx"],"sourcesContent":["import type { POI, EnhancedPOIs, School, Schools } from \"@local-logic/client\";\nimport { POICategories } from \"@local-logic/client\";\nimport type { SDKOptions, MapProviderNames } from \"~/types/options\";\n\nexport type MapProvider = {\n name: MapProviderNames;\n key?: string;\n theme?: string;\n};\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n zoom?: number;\n pitch?: number;\n bearing?: number;\n cooperativeGestures?: boolean;\n mapProvider?: MapProvider;\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nexport type NeighborhoodMapProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport type POICategory = EnhancedPOIs | keyof Schools;\nexport type POIGroup = (keyof typeof POICategories)[];\nexport type SchoolGroup = (keyof Schools)[];\nexport type Marker = POI | School;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-map-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-map-Category-Clicked\",\n POI_CLICKED = \"neighborhood-map-Poi-Clicked\",\n POI_LINK_CLICKED = \"neighborhood-map-Poi-Link-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n POI_CLICKED = \"poi_clicked\",\n POI_LINK_CLICKED = \"poi_link_clicked\",\n}\n","import type { POICategory } from \"./types\";\n\nexport const DEFAULT_MIN_ZOOM = 2; // Default minimum zoom level for the map\nexport const DEFAULT_MAX_ZOOM = 17; // Default maximum zoom level for the map\n\nexport const MAX_POI_LIMIT = 500;\n\nexport const MAP_PADDING = {\n desktop: {\n top: 30,\n bottom: 30,\n left: 30,\n right: 30,\n },\n mobile: {\n top: 15,\n bottom: 15,\n left: 15,\n right: 15,\n },\n};\n\nexport const categories: POICategory[] = [\n \"primary_schools\",\n \"high_schools\",\n \"restaurants\",\n \"groceries\",\n \"groceries_specialized\",\n \"non_food_shops\",\n \"nightlife\",\n \"cafes\",\n \"daycares\",\n \"bus_stops\",\n \"rapid_transit_stations\",\n \"train_stations\",\n \"parks\",\n \"fitness\",\n \"sport_facilities\",\n \"health_care\",\n \"pet_care\",\n \"car_fueling_stations\",\n \"art_culture_science\",\n \"home_improvement\",\n \"personal_care\",\n];\n","import React, { useContext, useState, useMemo, useCallback } from \"react\";\nimport type { Geography, POI, School } from \"@local-logic/client\";\nimport type { MarkerPoint } from \"@local-logic/maps\";\nimport {\n type NeighborhoodMapProps,\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { MAX_POI_LIMIT } from \"./constants\";\n\nimport { useTracking } from \"~/tracking\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport errorTracker from \"~/utils/errorTracker\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\nimport { useMarkers } from \"~/hooks/useMarkers\";\n\ninterface Location {\n lat: number;\n lng: number;\n}\n\nexport type DefaultContext = {\n locale: \"en\" | \"fr\";\n isLoading: boolean;\n map: {\n mapProvider: NeighborhoodMapProps[\"options\"][\"mapProvider\"];\n zoom: NeighborhoodMapProps[\"options\"][\"zoom\"];\n pitch: NeighborhoodMapProps[\"options\"][\"pitch\"];\n bearing: NeighborhoodMapProps[\"options\"][\"bearing\"];\n cooperativeGestures: NeighborhoodMapProps[\"options\"][\"cooperativeGestures\"];\n };\n geography?: Geography;\n activeMarker?: MarkerPoint;\n activeMarkerDetails: POI | School | null;\n activePoiCategory?: POICategory;\n onSelectPoiCategory: (category?: POICategory) => void;\n handleMarkerClick: (marker?: MarkerPoint) => void;\n markersData?: POI[] | School[];\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nconst NeighborhoodMapContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodMap = () => useContext(NeighborhoodMapContext);\n\nconst NeighborhoodMapProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\n const tracking = useTracking();\n const [activeMarker, setActiveMarker] = useState<MarkerPoint>();\n const [activePoiCategory, setActivePoiCategory] =\n useState<DefaultContext[\"activePoiCategory\"]>();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n eventAttributes: [\n {\n label: \"default_category\",\n data: activePoiCategory,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n eventAttributes: {\n ll_default_category: activePoiCategory,\n },\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n geogID: sdkState.options?.geographyId,\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\n include: \"geometry\",\n },\n );\n\n const { geographyId, geography } = useMemo(() => {\n const geographiesArray = Object.entries(geographyData || {});\n\n return {\n geographyId: geographiesArray[0]?.[0],\n geography: geographiesArray[0]?.[1],\n };\n }, [isGeographyLoading, geographyData]);\n\n const { data: markersDataRaw, isLoading: isMarkersLoading } = useMarkers({\n geogId: geographyId,\n limit: MAX_POI_LIMIT,\n categories: activePoiCategory ? [activePoiCategory] : undefined,\n });\n\n // Flatten the markers data into a single array\n const markersData = useMemo(\n () =>\n ([] as (POI | School)[]).concat(...Object.values(markersDataRaw || {})),\n [markersDataRaw],\n );\n\n const handleSelectPoiCategory = (category?: POICategory) => {\n errorTracker.addBreadCrumb(\n \"NeighborhoodMapProvider\",\n \"handleSelectPoiCategory\",\n {\n category,\n },\n );\n\n setActivePoiCategory(activePoiCategory === category ? undefined : category);\n };\n\n const handleMarkerClick = useCallback(\n (marker?: MarkerPoint) => {\n if (\n activeMarker?.latitude === marker?.latitude &&\n activeMarker?.longitude === marker?.longitude\n ) {\n setActiveMarker(undefined);\n return;\n }\n\n setActiveMarker(marker);\n },\n [activeMarker],\n );\n\n const activeMarkerDetails = useMemo(() => {\n if (!markersData || !activeMarker || activeMarker.markers.length !== 1) {\n return null;\n }\n\n return (\n markersData.find(\n (marker) =>\n activeMarker.markers[0].id ===\n getIdFromMarker(marker.lat, marker.lng, marker.name),\n ) || null\n );\n }, [activeMarker, markersData]);\n\n const isLoading = useMemo(\n () => isGeographyLoading || isMarkersLoading,\n [isGeographyLoading, isMarkersLoading],\n );\n\n return (\n <NeighborhoodMapContext.Provider\n value={{\n locale,\n isLoading,\n map: {\n mapProvider: sdkState.options?.mapProvider,\n zoom: sdkState.options?.zoom,\n pitch: sdkState.options?.pitch,\n bearing: sdkState.options?.bearing,\n cooperativeGestures: sdkState.options?.cooperativeGestures,\n },\n geography,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory: handleSelectPoiCategory,\n markersData,\n hideAttribution: sdkState.options?.hideAttribution,\n showSchoolRatings: sdkState.options?.showSchoolRatings,\n }}\n >\n {children}\n </NeighborhoodMapContext.Provider>\n );\n};\n\nexport { useNeighborhoodMap, NeighborhoodMapProvider, type Location };\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Source, type LayerType } from \"@local-logic/maps\";\n\nimport type { School } from \"@local-logic/client\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nconst GEOGRAPHY_LAYER_COLOR = \"#008491\";\nconst SCHOOL_CATCHMENT_COLOR = \"#9333ea\";\n\nexport function Layers() {\n const { geography, activeMarkerDetails } = useNeighborhoodMap();\n\n const primaryColor = useMemo(\n () =>\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--ll-colors-primary-100\",\n ) || GEOGRAPHY_LAYER_COLOR,\n [],\n );\n\n const neighborhoodLayerSources = useMemo(() => {\n const sources: Source[] = [];\n\n if (\n typeof geography?.geometry === \"undefined\" ||\n (Array.isArray(geography.geometry) && geography.geometry.length === 0)\n ) {\n return undefined;\n }\n\n geography.geometry.forEach((geometry, index) => {\n sources.push({\n key: `neighborhood-geometry-${index}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: primaryColor,\n },\n {\n type: \"line\" as LayerType,\n color: primaryColor,\n },\n ],\n geometry: [geometry],\n });\n });\n\n return sources;\n }, [geography, primaryColor]);\n\n const schoolLayerSources = useMemo(() => {\n const activeSchoolMarkerDetails = activeMarkerDetails as School;\n if (\n typeof activeSchoolMarkerDetails?.catchments === \"undefined\" ||\n activeSchoolMarkerDetails.catchments?.length === 0\n ) {\n return undefined;\n }\n\n const sources: Source[] = [];\n\n activeSchoolMarkerDetails.catchments.forEach(\n (catchment, catchmentIndex) => {\n if (\n Array.isArray(catchment.geometry) &&\n catchment.geometry.length > 0\n ) {\n catchment.geometry.forEach((geometry, geomIndex) => {\n sources.push({\n key: `school-catchment-${catchmentIndex}-geom-${geomIndex}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n {\n type: \"line\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n ],\n geometry: [geometry],\n });\n });\n }\n },\n );\n\n return sources;\n }, [activeMarkerDetails]);\n\n return (\n <>\n <LocalLogicMap.Layers sources={neighborhoodLayerSources} />\n <LocalLogicMap.Layers sources={schoolLayerSources} />\n </>\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Marker } from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\n\nexport function Markers() {\n const tracking = useTracking();\n const { isLoading, activePoiCategory, markersData, handleMarkerClick } =\n useNeighborhoodMap();\n\n const icon = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return undefined;\n }\n\n return poiIcons[activePoiCategory] as Marker[\"icon\"];\n }, [activePoiCategory]);\n\n const mapMarkers = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return [];\n }\n\n // Filter out duplicate markers by ID\n // This is because we combine multiple data sources that may have overlapping POIs\n return Array.from(\n (markersData || [])\n .map(\n (marker) =>\n ({\n id: getIdFromMarker(marker.lat, marker.lng, marker.name),\n latitude: marker.lat,\n longitude: marker.lng,\n name: marker.name,\n icon,\n }) as Marker,\n )\n .reduce((acc, marker) => {\n acc.set(marker.id, marker);\n return acc;\n }, new Map<string, Marker>())\n .values(),\n );\n }, [markersData, icon, activePoiCategory]);\n\n /**\n * Handles clicking on a map marker. This includes both single markers and cluster markers.\n *\n * @param marker\n * @returns\n */\n const handleMapMarkerClick = (\n marker: Parameters<typeof handleMarkerClick>[0],\n ) => {\n handleMarkerClick(marker);\n\n if (!activePoiCategory || !marker) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n if (marker.markers.length > 1) {\n eventAttributes.isCluster = true;\n eventAttributes.clusterSize = marker.markers.length;\n eventAttributes.lat = marker.latitude;\n eventAttributes.lng = marker.longitude;\n } else if (marker.markers.length === 1) {\n Object.entries(marker.markers[0]).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n // Remove sdk id before sending to tracking\n if (key === \"id\") {\n return;\n }\n eventAttributes[key] = value;\n }\n });\n }\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Markers\n isLoading={isLoading}\n markers={mapMarkers}\n clusterIcon={icon}\n onClick={handleMapMarkerClick}\n />\n );\n}\n","import React from \"react\";\n\nimport {\n LocalLogicMap,\n type Marker,\n type MarkerPoint,\n} from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nimport { ClusterPopupContent } from \"~/components/map/ClusterPopupContent\";\nimport { POIPopupContent } from \"~/components/map/POIPopupContent\";\n\nexport function Popup() {\n const tracking = useTracking();\n const {\n activePoiCategory,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n showSchoolRatings,\n } = useNeighborhoodMap();\n\n /**\n * Handles selecting a marker from within a cluster popup.\n *\n * @param marker\n * @returns\n */\n const handleClusterMarkerSelected = (marker: Marker) => {\n handleMarkerClick({\n id: marker.id,\n latitude: marker.latitude,\n longitude: marker.longitude,\n markers: [marker],\n } as MarkerPoint);\n\n if (!activePoiCategory) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(marker).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n const handleLinkClick = (url: string) => {\n if (!activePoiCategory || !activeMarkerDetails) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(activeMarkerDetails).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n eventAttributes.clickedUrl = url;\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_LINK_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_LINK_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Popup\n latitude={activeMarker?.latitude}\n longitude={activeMarker?.longitude}\n onClose={() => handleMarkerClick(undefined)}\n >\n <ClusterPopupContent\n activeMarker={activeMarker}\n onMarkerSelected={handleClusterMarkerSelected}\n onClose={handleMarkerClick}\n />\n <POIPopupContent\n marker={activeMarkerDetails}\n poiCategory={activePoiCategory}\n onLocationLinkClick={handleLinkClick}\n onSchoolLinkClick={handleLinkClick}\n onClose={handleMarkerClick}\n showSchoolRatings={showSchoolRatings}\n />\n </LocalLogicMap.Popup>\n );\n}\n","export const container = `relative w-full overflow-hidden grow`;\n","import React, { useMemo } from \"react\";\n\nimport \"@local-logic/maps/style.css\";\n\nimport { LocalLogicMap } from \"@local-logic/maps\";\n\nimport { Layers } from \"./Layers\";\nimport { Markers } from \"./Markers\";\nimport { Popup } from \"./Popup\";\n\nimport * as styles from \"./styles\";\nimport { getMapProviderConfig } from \"~/utils/map/getMapProviderConfig\";\nimport {\n DEFAULT_MIN_ZOOM,\n DEFAULT_MAX_ZOOM,\n MAP_PADDING,\n} from \"~/sdks/NeighborhoodMap/constants\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nexport function Map({\n children,\n ...rest\n}: {\n children?: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const breakpoints = useResponsiveBreakpoints();\n const { locale, map, activeMarker, geography } = useNeighborhoodMap();\n\n const mapProviderConfig = useMemo(\n () =>\n getMapProviderConfig(\n map.mapProvider?.name,\n map.mapProvider?.key,\n map.mapProvider?.theme,\n ),\n [map.mapProvider?.name, map.mapProvider?.key, map.mapProvider?.theme],\n );\n\n const locationBoundary = useMemo(() => {\n if (typeof geography === \"undefined\" || !geography?.geometry) {\n return undefined;\n }\n\n const outerRing = geography.geometry.flatMap((polygon) => polygon[0] || []);\n\n if (!outerRing || outerRing.length === 0) {\n return undefined;\n }\n return outerRing.map((point: number[]) => [point[1], point[0]]);\n }, [geography]);\n\n return (\n <div className={styles.container} {...rest}>\n {typeof geography !== \"undefined\" && (\n <LocalLogicMap.Root\n locale={locale}\n mapProvider={mapProviderConfig}\n mapPadding={MAP_PADDING[breakpoints.sm ? \"mobile\" : \"desktop\"]}\n locationBoundary={locationBoundary}\n center={{\n latitude: geography?.centroid.lat,\n longitude: geography?.centroid.lng,\n }}\n zoom={map.zoom}\n minZoom={DEFAULT_MIN_ZOOM}\n maxZoom={DEFAULT_MAX_ZOOM}\n zoomPosition={breakpoints.sm ? \"bottom-right\" : undefined}\n pitch={map.pitch}\n bearing={map.bearing}\n cooperativeGestures={map.cooperativeGestures}\n activeMarker={activeMarker}\n >\n <LocalLogicMap.BaseMap>\n <Layers />\n <Markers />\n <Popup />\n </LocalLogicMap.BaseMap>\n </LocalLogicMap.Root>\n )}\n\n {children}\n </div>\n );\n}\n","export const container = `relative bg-base-white w-full h-screen flex flex-col`;\nexport const header = `w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row`;\n","import React, { useMemo, useState, useEffect } from \"react\";\n\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\nimport { useTranslation } from \"react-i18next\";\nimport { HorizontalScrollFilters } from \"@local-logic/design-system\";\nimport { Map } from \"../Map\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\nimport { useTracking } from \"~/tracking\";\n\nimport { Attribution } from \"~/components/Attribution\";\n\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\nimport { categories } from \"~/sdks/NeighborhoodMap/constants\";\n\nimport {\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nexport const Content = () => {\n const { t } = useTranslation([\"neighborhoodMap\", \"common\"]);\n const flags = useFlags();\n const tracking = useTracking();\n\n const {\n locale,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory,\n hideAttribution,\n } = useNeighborhoodMap();\n const [dialogSelectedPoiCategory, setDialogSelectedPoiCategory] = useState<\n POICategory | undefined\n >();\n\n useEffect(() => {\n handleMarkerClick(undefined);\n setDialogSelectedPoiCategory(activePoiCategory);\n }, [activePoiCategory]);\n\n const poiCategories = useMemo(\n () =>\n categories.map((category) => ({\n key: category as POICategory,\n icon: poiIcons[category],\n })),\n [flags],\n );\n\n const handleOnSelectCategory = (category: POICategory) => {\n onSelectPoiCategory(category);\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: category,\n },\n });\n };\n\n const handleOnDialogSelectCategory = (category: POICategory) => {\n setDialogSelectedPoiCategory(\n dialogSelectedPoiCategory === category ? undefined : category,\n );\n };\n\n const handleResetFilters = () => {\n onSelectPoiCategory(undefined);\n };\n\n const handleApplyFilter = () => {\n onSelectPoiCategory(dialogSelectedPoiCategory);\n };\n\n return (\n <div className={styles.container}>\n <HorizontalScrollFilters.Root>\n <div className={styles.header}>\n <HorizontalScrollFilters.ScrollList\n activeFilter={activePoiCategory}\n leftArrowAriaLabel={t(\"filters.navigation.scrollLeftAriaLabel\")}\n rightArrowAriaLabel={t(\"filters.navigation.scrollRightAriaLabel\")}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === activePoiCategory}\n onSelectFilter={handleOnSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.ScrollList>\n <HorizontalScrollFilters.DialogTrigger\n label={t(\"filters.navigation.allFiltersAriaLabel\")}\n />\n </div>\n\n <HorizontalScrollFilters.Dialog\n title={t(\"filters.popup.title\")}\n description={t(\"filters.popup.description\")}\n applyLabel={t(\"filters.popup.cta.apply\")}\n resetLabel={t(\"filters.popup.cta.reset\")}\n onReset={handleResetFilters}\n onApply={handleApplyFilter}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`dialog-category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === dialogSelectedPoiCategory}\n onSelectFilter={handleOnDialogSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.Dialog>\n </HorizontalScrollFilters.Root>\n\n <Map />\n\n <Attribution\n sdkName=\"neighborhood-map\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </div>\n );\n};\n","import { ObjectSchema, number, object, mixed, string, boolean } from \"yup\";\nimport { Options } from \"./types\";\nimport { MapProvider } from \"~/types/options\";\n\nexport const schema: ObjectSchema<Options> = object({\n theme: string().oneOf([\"day\", \"night\"]).optional(),\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n zoom: number().optional(),\n pitch: number().optional(),\n bearing: number().optional(),\n cooperativeGestures: boolean().optional(),\n mapProvider: mixed<MapProvider>().optional(),\n hideAttribution: boolean().optional(),\n showSchoolRatings: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\n\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodMapProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodMapProps } from \"./types\";\n\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodMap = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ValidateOptions\n sdk=\"Neighborhood Map\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_MAP}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_MAP,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodMapProvider>\n <Content />\n </NeighborhoodMapProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n );\n};\n\nexport default NeighborhoodMap;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as t}from"./google-maps-vendor-DvfEEdRU.js";import{a as o,d as i,f as a,g as r,m as n,n as s,o as l,p as c,r as p,s as d,t as g,u as m}from"./sdks-Dz1G5v3d.js";import{c as u,i as h,l as v,n as y,o as f,t as b,u as k}from"./getMapProviderConfig-Bkg7KAaa.js";import{J as C,i as _,n as I,t as j,vt as E}from"./index-CR11I_3M.js";import{t as M}from"./index.es-BaIFaftO.js";import{t as x}from"./useGeographies-Bn2EabwT.js";import{t as A}from"./useResponsiveBreakpoints-Dq6mGzIW.js";import{t as P}from"./Attribution-CmWvRPeT.js";/* empty css */import{t as L}from"./ValidateOptions-BMFVNi0T.js";import{t as O}from"./useIsMobile-cGksoChT.js";var D=e(t(),1),K=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),S=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),w={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},N=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],R=C(),G=D.createContext({}),T=()=>(0,D.useContext)(G),z=({children:e})=>{const{sdkState:t}=I(),o=t.globalOptions?.locale||"en",i=d(),[a,r]=(0,D.useState)(),[n,s]=(0,D.useState)();_(()=>{i.postEvent({eventType:K.SDK_VIEWED,eventAttributes:[{label:"default_category",data:n}]}),i.trackAnalyticsEvent({eventName:S.SDK_VIEWED,eventAttributes:{ll_default_category:n}})});const{isLoading:l,data:c}=x({geogID:t.options?.geographyId,location:{lat:t.options?.lat,lng:t.options?.lng},include:"geometry"}),{geographyId:p,geography:g}=(0,D.useMemo)(()=>{const e=Object.entries(c||{});return{geographyId:e[0]?.[0],geography:e[0]?.[1]}},[l,c]),{data:m,isLoading:u}=k({geogId:p,limit:500,categories:n?[n]:void 0}),h=(0,D.useMemo)(()=>[].concat(...Object.values(m||{})),[m]),y=(0,D.useCallback)(e=>{r(a?.latitude!==e?.latitude||a?.longitude!==e?.longitude?e:void 0)},[a]),f=(0,D.useMemo)(()=>h&&a&&1===a.markers.length&&h.find(e=>a.markers[0].id===v(e.lat,e.lng,e.name))||null,[a,h]),b=(0,D.useMemo)(()=>l||u,[l,u]);return(0,R.jsx)(G.Provider,{value:{locale:o,isLoading:b,map:{mapProvider:t.options?.mapProvider,zoom:t.options?.zoom,pitch:t.options?.pitch,bearing:t.options?.bearing,cooperativeGestures:t.options?.cooperativeGestures},geography:g,activeMarker:a,activeMarkerDetails:f,handleMarkerClick:y,activePoiCategory:n,onSelectPoiCategory:e=>{E.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),s(n===e?void 0:e)},markersData:h,hideAttribution:t.options?.hideAttribution,showSchoolRatings:t.options?.showSchoolRatings},children:e})},V="#9333ea";function $(){const{geography:e,activeMarkerDetails:t}=T(),o=(0,D.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||"#008491",[]),i=(0,D.useMemo)(()=>{const t=[];if(!(void 0===e?.geometry||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{t.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:o},{type:"line",color:o}],geometry:[e]})}),t},[e,o]),a=(0,D.useMemo)(()=>{const e=t;if(void 0===e?.catchments||0===e.catchments?.length)return;const o=[];return e.catchments.forEach((e,t)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,i)=>{o.push({key:`school-catchment-${t}-geom-${i}`,layer:[{type:"fill",color:V},{type:"line",color:V}],geometry:[e]})})}),o},[t]);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(u.Layers,{sources:i}),(0,R.jsx)(u.Layers,{sources:a})]})}function F(){const e=d(),{isLoading:t,activePoiCategory:o,markersData:i,handleMarkerClick:a}=T(),r=(0,D.useMemo)(()=>{if(void 0!==o)return f[o]},[o]),n=(0,D.useMemo)(()=>void 0===o?[]:Array.from((i||[]).map(e=>({id:v(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:r})).reduce((e,t)=>(e.set(t.id,t),e),new Map).values()),[i,r,o]);return(0,R.jsx)(u.Markers,{isLoading:t,markers:n,clusterIcon:r,onClick:t=>{if(a(t),!o||!t)return;const i={category:o};t.markers.length>1?(i.isCluster=!0,i.clusterSize=t.markers.length,i.lat=t.latitude,i.lng=t.longitude):1===t.markers.length&&Object.entries(t.markers[0]).forEach(([e,t])=>{if("boolean"==typeof t||"string"==typeof t||"number"==typeof t){if("id"===e)return;i[e]=t}}),e.postEvent({eventType:K.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_CLICKED,eventAttributes:i})}})}function B(){const e=d(),{activePoiCategory:t,activeMarker:o,activeMarkerDetails:i,handleMarkerClick:a,showSchoolRatings:r}=T(),n=o=>{if(!t||!i)return;const a={category:t};Object.entries(i).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(a[e]=t)}),a.clickedUrl=o,e.postEvent({eventType:K.POI_LINK_CLICKED,eventAttributes:Object.entries(a).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_LINK_CLICKED,eventAttributes:a})};return(0,R.jsxs)(u.Popup,{latitude:o?.latitude,longitude:o?.longitude,onClose:()=>a(void 0),children:[(0,R.jsx)(h,{activeMarker:o,onMarkerSelected:o=>{if(a({id:o.id,latitude:o.latitude,longitude:o.longitude,markers:[o]}),!t)return;const i={category:t};Object.entries(o).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(i[e]=t)}),e.postEvent({eventType:K.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_CLICKED,eventAttributes:i})},onClose:a}),(0,R.jsx)(y,{marker:i,poiCategory:t,onLocationLinkClick:n,onSchoolLinkClick:n,onClose:a,showSchoolRatings:r})]})}function W({children:e,...t}){const o=A(),{locale:i,map:a,activeMarker:r,geography:n}=T(),s=(0,D.useMemo)(()=>b(a.mapProvider?.name,a.mapProvider?.key,a.mapProvider?.theme),[a.mapProvider?.name,a.mapProvider?.key,a.mapProvider?.theme]),l=(0,D.useMemo)(()=>{if(void 0===n||!n?.geometry)return;const e=n.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[n]);return(0,R.jsxs)("div",{className:"relative w-full overflow-hidden grow",...t,children:[void 0!==n&&(0,R.jsx)(u.Root,{locale:i,mapProvider:s,mapPadding:w[o.sm?"mobile":"desktop"],locationBoundary:l,center:{latitude:n?.centroid.lat,longitude:n?.centroid.lng},zoom:a.zoom,minZoom:2,maxZoom:17,zoomPosition:o.sm?"bottom-right":void 0,pitch:a.pitch,bearing:a.bearing,cooperativeGestures:a.cooperativeGestures,activeMarker:r,children:(0,R.jsxs)(u.BaseMap,{children:[(0,R.jsx)($,{}),(0,R.jsx)(F,{}),(0,R.jsx)(B,{})]})}),e]})}var H=()=>{const{t:e}=r(["neighborhoodMap","common"]),t=j(),o=d(),{locale:i,handleMarkerClick:a,activePoiCategory:n,onSelectPoiCategory:s,hideAttribution:l}=T(),[c,p]=(0,D.useState)();(0,D.useEffect)(()=>{a(void 0),p(n)},[n]);const g=(0,D.useMemo)(()=>N.map(e=>({key:e,icon:f[e]})),[t]),m=e=>{s(e),o.postEvent({eventType:K.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),o.trackAnalyticsEvent({eventName:S.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},u=e=>{p(c===e?void 0:e)};return(0,R.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,R.jsxs)(M.Root,{children:[(0,R.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,R.jsx)(M.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:g.map(({key:t,icon:o})=>(0,R.jsx)(M.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===n,onSelectFilter:m},`category-${t}`))}),(0,R.jsx)(M.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,R.jsx)(M.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{s(void 0)},onApply:()=>{s(c)},children:g.map(({key:t,icon:o})=>(0,R.jsx)(M.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===c,onSelectFilter:u},`dialog-category-${t}`))})]}),(0,R.jsx)(W,{}),(0,R.jsx)(P,{sdkName:"neighborhood-map",locale:i,isHidden:l})]})},Y=m({theme:a().oneOf(["day","night"]).optional(),lat:i().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:i().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:a().optional(),zoom:i().optional(),pitch:i().optional(),bearing:i().optional(),cooperativeGestures:c().optional(),mapProvider:n().optional(),hideAttribution:c().optional(),showSchoolRatings:c().optional()}).noUnknown(!0);l(s.neighborhoodWrap.key);var q=()=>{const{sdkState:e}=I(),t=O(),i=e.globalOptions?.locale||"en",a=(0,D.useMemo)(()=>e.options?.geographyId?{geographyId:e.options?.geographyId}:{lat:e.options?.lat,lng:e.options?.lng},[e.options?.lat,e.options?.lng,e.options?.geographyId]);return(0,R.jsx)(L,{sdk:"Neighborhood Map",schema:Y,options:e.options,children:(0,R.jsx)(p,{environment:e.globalOptions?.environment?.api,apiKey:e.apiKey,appearance:e.globalOptions?.appearance,locale:e.globalOptions?.locale,product:g.NEIGHBORHOOD_MAP,children:(0,R.jsx)(o,{trackingPipelineSettings:{apiKey:e.apiKey||""},analyticsSettings:s.neighborhoodWrap,meta:{clientId:e.clientId,productName:g.NEIGHBORHOOD_MAP,productVersion:"1.24.49"},attributes:{location:a,host:e.location,host_url:document.referrer,locale:i,isMobile:t},flags:{isDebugMode:!1},children:(0,R.jsx)(z,{children:(0,R.jsx)(H,{})})})})})};export{q as default};
|
|
2
|
-
//# sourceMappingURL=NeighborhoodMap-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as t}from"./google-maps-vendor-DvfEEdRU.js";import{a as o,d as i,f as a,g as r,m as n,n as s,o as l,p as c,r as p,s as d,t as g,u as m}from"./sdks-DQOBL475.js";import{c as u,i as h,l as v,n as y,o as f,t as b,u as k}from"./getMapProviderConfig-su6Fsc97.js";import{J as C,i as _,n as I,t as j,vt as E}from"./index-BauYBca2.js";import{t as M}from"./index.es-I44QB7B4.js";import{t as x}from"./useGeographies-DUScqOGP.js";import{t as A}from"./useResponsiveBreakpoints-Dq6mGzIW.js";import{t as P}from"./Attribution-BBLQLcDL.js";/* empty css */import{t as L}from"./ValidateOptions-BFQGzpeB.js";import{t as O}from"./useIsMobile-_UjZcJng.js";var D=e(t(),1),K=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),S=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),w={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},N=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],R=C(),G=D.createContext({}),T=()=>(0,D.useContext)(G),z=({children:e})=>{const{sdkState:t}=I(),o=t.globalOptions?.locale||"en",i=d(),[a,r]=(0,D.useState)(),[n,s]=(0,D.useState)();_(()=>{i.postEvent({eventType:K.SDK_VIEWED,eventAttributes:[{label:"default_category",data:n}]}),i.trackAnalyticsEvent({eventName:S.SDK_VIEWED,eventAttributes:{ll_default_category:n}})});const{isLoading:l,data:c}=x({geogID:t.options?.geographyId,location:{lat:t.options?.lat,lng:t.options?.lng},include:"geometry"}),{geographyId:p,geography:g}=(0,D.useMemo)(()=>{const e=Object.entries(c||{});return{geographyId:e[0]?.[0],geography:e[0]?.[1]}},[l,c]),{data:m,isLoading:u}=k({geogId:p,limit:500,categories:n?[n]:void 0}),h=(0,D.useMemo)(()=>[].concat(...Object.values(m||{})),[m]),y=(0,D.useCallback)(e=>{r(a?.latitude!==e?.latitude||a?.longitude!==e?.longitude?e:void 0)},[a]),f=(0,D.useMemo)(()=>h&&a&&1===a.markers.length&&h.find(e=>a.markers[0].id===v(e.lat,e.lng,e.name))||null,[a,h]),b=(0,D.useMemo)(()=>l||u,[l,u]);return(0,R.jsx)(G.Provider,{value:{locale:o,isLoading:b,map:{mapProvider:t.options?.mapProvider,zoom:t.options?.zoom,pitch:t.options?.pitch,bearing:t.options?.bearing,cooperativeGestures:t.options?.cooperativeGestures},geography:g,activeMarker:a,activeMarkerDetails:f,handleMarkerClick:y,activePoiCategory:n,onSelectPoiCategory:e=>{E.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),s(n===e?void 0:e)},markersData:h,hideAttribution:t.options?.hideAttribution,showSchoolRatings:t.options?.showSchoolRatings},children:e})},V="#9333ea";function $(){const{geography:e,activeMarkerDetails:t}=T(),o=(0,D.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||"#008491",[]),i=(0,D.useMemo)(()=>{const t=[];if(!(void 0===e?.geometry||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{t.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:o},{type:"line",color:o}],geometry:[e]})}),t},[e,o]),a=(0,D.useMemo)(()=>{const e=t;if(void 0===e?.catchments||0===e.catchments?.length)return;const o=[];return e.catchments.forEach((e,t)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,i)=>{o.push({key:`school-catchment-${t}-geom-${i}`,layer:[{type:"fill",color:V},{type:"line",color:V}],geometry:[e]})})}),o},[t]);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(u.Layers,{sources:i}),(0,R.jsx)(u.Layers,{sources:a})]})}function F(){const e=d(),{isLoading:t,activePoiCategory:o,markersData:i,handleMarkerClick:a}=T(),r=(0,D.useMemo)(()=>{if(void 0!==o)return f[o]},[o]),n=(0,D.useMemo)(()=>void 0===o?[]:Array.from((i||[]).map(e=>({id:v(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:r})).reduce((e,t)=>(e.set(t.id,t),e),new Map).values()),[i,r,o]);return(0,R.jsx)(u.Markers,{isLoading:t,markers:n,clusterIcon:r,onClick:t=>{if(a(t),!o||!t)return;const i={category:o};t.markers.length>1?(i.isCluster=!0,i.clusterSize=t.markers.length,i.lat=t.latitude,i.lng=t.longitude):1===t.markers.length&&Object.entries(t.markers[0]).forEach(([e,t])=>{if("boolean"==typeof t||"string"==typeof t||"number"==typeof t){if("id"===e)return;i[e]=t}}),e.postEvent({eventType:K.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_CLICKED,eventAttributes:i})}})}function B(){const e=d(),{activePoiCategory:t,activeMarker:o,activeMarkerDetails:i,handleMarkerClick:a,showSchoolRatings:r}=T(),n=o=>{if(!t||!i)return;const a={category:t};Object.entries(i).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(a[e]=t)}),a.clickedUrl=o,e.postEvent({eventType:K.POI_LINK_CLICKED,eventAttributes:Object.entries(a).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_LINK_CLICKED,eventAttributes:a})};return(0,R.jsxs)(u.Popup,{latitude:o?.latitude,longitude:o?.longitude,onClose:()=>a(void 0),children:[(0,R.jsx)(h,{activeMarker:o,onMarkerSelected:o=>{if(a({id:o.id,latitude:o.latitude,longitude:o.longitude,markers:[o]}),!t)return;const i={category:t};Object.entries(o).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(i[e]=t)}),e.postEvent({eventType:K.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:S.POI_CLICKED,eventAttributes:i})},onClose:a}),(0,R.jsx)(y,{marker:i,poiCategory:t,onLocationLinkClick:n,onSchoolLinkClick:n,onClose:a,showSchoolRatings:r})]})}function W({children:e,...t}){const o=A(),{locale:i,map:a,activeMarker:r,geography:n}=T(),s=(0,D.useMemo)(()=>b(a.mapProvider?.name,a.mapProvider?.key,a.mapProvider?.theme),[a.mapProvider?.name,a.mapProvider?.key,a.mapProvider?.theme]),l=(0,D.useMemo)(()=>{if(void 0===n||!n?.geometry)return;const e=n.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[n]);return(0,R.jsxs)("div",{className:"relative w-full overflow-hidden grow",...t,children:[void 0!==n&&(0,R.jsx)(u.Root,{locale:i,mapProvider:s,mapPadding:w[o.sm?"mobile":"desktop"],locationBoundary:l,center:{latitude:n?.centroid.lat,longitude:n?.centroid.lng},zoom:a.zoom,minZoom:2,maxZoom:17,zoomPosition:o.sm?"bottom-right":void 0,pitch:a.pitch,bearing:a.bearing,cooperativeGestures:a.cooperativeGestures,activeMarker:r,children:(0,R.jsxs)(u.BaseMap,{children:[(0,R.jsx)($,{}),(0,R.jsx)(F,{}),(0,R.jsx)(B,{})]})}),e]})}var H=()=>{const{t:e}=r(["neighborhoodMap","common"]),t=j(),o=d(),{locale:i,handleMarkerClick:a,activePoiCategory:n,onSelectPoiCategory:s,hideAttribution:l}=T(),[c,p]=(0,D.useState)();(0,D.useEffect)(()=>{a(void 0),p(n)},[n]);const g=(0,D.useMemo)(()=>N.map(e=>({key:e,icon:f[e]})),[t]),m=e=>{s(e),o.postEvent({eventType:K.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),o.trackAnalyticsEvent({eventName:S.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},u=e=>{p(c===e?void 0:e)};return(0,R.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,R.jsxs)(M.Root,{children:[(0,R.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,R.jsx)(M.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:g.map(({key:t,icon:o})=>(0,R.jsx)(M.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===n,onSelectFilter:m},`category-${t}`))}),(0,R.jsx)(M.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,R.jsx)(M.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{s(void 0)},onApply:()=>{s(c)},children:g.map(({key:t,icon:o})=>(0,R.jsx)(M.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===c,onSelectFilter:u},`dialog-category-${t}`))})]}),(0,R.jsx)(W,{}),(0,R.jsx)(P,{sdkName:"neighborhood-map",locale:i,isHidden:l})]})},Y=m({theme:a().oneOf(["day","night"]).optional(),lat:i().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:i().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:a().optional(),zoom:i().optional(),pitch:i().optional(),bearing:i().optional(),cooperativeGestures:c().optional(),mapProvider:n().optional(),hideAttribution:c().optional(),showSchoolRatings:c().optional()}).noUnknown(!0);l(s.neighborhoodWrap.key);var q=()=>{const{sdkState:e}=I(),t=O(),i=e.globalOptions?.locale||"en",a=(0,D.useMemo)(()=>e.options?.geographyId?{geographyId:e.options?.geographyId}:{lat:e.options?.lat,lng:e.options?.lng},[e.options?.lat,e.options?.lng,e.options?.geographyId]);return(0,R.jsx)(L,{sdk:"Neighborhood Map",schema:Y,options:e.options,children:(0,R.jsx)(p,{environment:e.globalOptions?.environment?.api,apiKey:e.apiKey,appearance:e.globalOptions?.appearance,locale:e.globalOptions?.locale,product:g.NEIGHBORHOOD_MAP,children:(0,R.jsx)(o,{trackingPipelineSettings:{apiKey:e.apiKey||""},analyticsSettings:s.neighborhoodWrap,meta:{clientId:e.clientId,productName:g.NEIGHBORHOOD_MAP,productVersion:"1.24.50"},attributes:{location:a,host:e.location,host_url:document.referrer,locale:i,isMobile:t},flags:{isDebugMode:!1},children:(0,R.jsx)(z,{children:(0,R.jsx)(H,{})})})})})};export{q as default};
|
|
2
|
+
//# sourceMappingURL=NeighborhoodMap-nMtKArKU.js.map
|