@local-logic/sdks-app 1.24.42 → 1.24.44
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-ClwsOk3e.js → Attribution-D012fWNs.js} +2 -2
- package/dist/assets/{Attribution-ClwsOk3e.js.map → Attribution-D012fWNs.js.map} +1 -1
- package/dist/assets/{Attribution-legacy-CtNhDTV1.js → Attribution-legacy-DSXG-3Q0.js} +2 -2
- package/dist/assets/{Attribution-legacy-CtNhDTV1.js.map → Attribution-legacy-DSXG-3Q0.js.map} +1 -1
- package/dist/assets/Cluster-BHQcO6iC-_jL_0N39.js +2 -0
- package/dist/assets/{Cluster-BHQcO6iC-BLUKMpub.js.map → Cluster-BHQcO6iC-_jL_0N39.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-legacy-CP0b8zks.js → Cluster-BHQcO6iC-legacy-3UMx26D5.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-legacy-CP0b8zks.js.map → Cluster-BHQcO6iC-legacy-3UMx26D5.js.map} +1 -1
- package/dist/assets/{Google-DScXSvYv-6gBja-_g.js → Google-BFAJ84CT-Dh97X1sB.js} +2 -2
- package/dist/assets/{Google-DScXSvYv-6gBja-_g.js.map → Google-BFAJ84CT-Dh97X1sB.js.map} +1 -1
- package/dist/assets/{Google-DScXSvYv-legacy-Bud-7LK1.js → Google-BFAJ84CT-legacy-D0OGURqq.js} +2 -2
- package/dist/assets/{Google-DScXSvYv-legacy-Bud-7LK1.js.map → Google-BFAJ84CT-legacy-D0OGURqq.js.map} +1 -1
- package/dist/assets/{Google-qvGtRAuh-D3JlAgXq.js → Google-BS41ufih-Cc3f5UsV.js} +2 -2
- package/dist/assets/{Google-qvGtRAuh-D3JlAgXq.js.map → Google-BS41ufih-Cc3f5UsV.js.map} +1 -1
- package/dist/assets/{Google-qvGtRAuh-legacy-CMkNx5pn.js → Google-BS41ufih-legacy-BnojXQoy.js} +2 -2
- package/dist/assets/{Google-qvGtRAuh-legacy-CMkNx5pn.js.map → Google-BS41ufih-legacy-BnojXQoy.js.map} +1 -1
- package/dist/assets/Google-CH7a2yx--CBaNUH_8.js +2 -0
- package/dist/assets/{Google-CH7a2yx--B615NdD8.js.map → Google-CH7a2yx--CBaNUH_8.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--legacy-BUUPS1d_.js → Google-CH7a2yx--legacy-C_ip84Oz.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--legacy-BUUPS1d_.js.map → Google-CH7a2yx--legacy-C_ip84Oz.js.map} +1 -1
- package/dist/assets/Google-CXGCn-oJ-i9rxhVJh.js +2 -0
- package/dist/assets/{Google-CXGCn-oJ-AkqBPqrT.js.map → Google-CXGCn-oJ-i9rxhVJh.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-legacy-wLFeZbs8.js → Google-CXGCn-oJ-legacy-OuENT3oi.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-legacy-wLFeZbs8.js.map → Google-CXGCn-oJ-legacy-OuENT3oi.js.map} +1 -1
- package/dist/assets/Google-DbOLrYJn-bogicaOo.js +2 -0
- package/dist/assets/Google-DbOLrYJn-bogicaOo.js.map +1 -0
- package/dist/assets/Google-DbOLrYJn-legacy-B95opCm9.js +2 -0
- package/dist/assets/Google-DbOLrYJn-legacy-B95opCm9.js.map +1 -0
- package/dist/assets/{GridGraph-CA6dQSnE.js → GridGraph-_rWMkwNI.js} +2 -2
- package/dist/assets/{GridGraph-CA6dQSnE.js.map → GridGraph-_rWMkwNI.js.map} +1 -1
- package/dist/assets/{GridGraph-legacy-C-SnA-yN.js → GridGraph-legacy-CsgF_9Vx.js} +2 -2
- package/dist/assets/{GridGraph-legacy-C-SnA-yN.js.map → GridGraph-legacy-CsgF_9Vx.js.map} +1 -1
- package/dist/assets/{HouseLine.es-MMviG6cm.js → HouseLine.es-UbY1cmCw.js} +2 -2
- package/dist/assets/{HouseLine.es-MMviG6cm.js.map → HouseLine.es-UbY1cmCw.js.map} +1 -1
- package/dist/assets/{HouseLine.es-legacy-Cif7XvRo.js → HouseLine.es-legacy-rIusAPcN.js} +2 -2
- package/dist/assets/{HouseLine.es-legacy-Cif7XvRo.js.map → HouseLine.es-legacy-rIusAPcN.js.map} +1 -1
- package/dist/assets/{IconBase.es-sTzPkmtv.js → IconBase.es-C5evOQSf.js} +1 -1
- package/dist/assets/{IconBase.es-sTzPkmtv.js.map → IconBase.es-C5evOQSf.js.map} +1 -1
- package/dist/assets/{IconBase.es-legacy-CLUwC2Iu.js → IconBase.es-legacy-jtD2YQt-.js} +1 -1
- package/dist/assets/{IconBase.es-legacy-CLUwC2Iu.js.map → IconBase.es-legacy-jtD2YQt-.js.map} +1 -1
- package/dist/assets/{LeadCapture-DYBfiSUq.js → LeadCapture-IqeCbA_u.js} +2 -2
- package/dist/assets/{LeadCapture-DYBfiSUq.js.map → LeadCapture-IqeCbA_u.js.map} +1 -1
- package/dist/assets/{LeadCapture-legacy-B2kUL7l2.js → LeadCapture-legacy-D_miey0j.js} +2 -2
- package/dist/assets/{LeadCapture-legacy-B2kUL7l2.js.map → LeadCapture-legacy-D_miey0j.js.map} +1 -1
- package/dist/assets/{LocalContent-CdwC5dim.js → LocalContent-DL6Y67Ne.js} +2 -2
- package/dist/assets/{LocalContent-CdwC5dim.js.map → LocalContent-DL6Y67Ne.js.map} +1 -1
- package/dist/assets/{LocalContent-legacy-is3KMNbp.js → LocalContent-legacy-BBB-ST51.js} +2 -2
- package/dist/assets/{LocalContent-legacy-is3KMNbp.js.map → LocalContent-legacy-BBB-ST51.js.map} +1 -1
- package/dist/assets/{LocalDemographics-CfkSaIaw.js → LocalDemographics-DcirUh9h.js} +2 -2
- package/dist/assets/{LocalDemographics-CfkSaIaw.js.map → LocalDemographics-DcirUh9h.js.map} +1 -1
- package/dist/assets/{LocalDemographics-legacy-jYYfhemY.js → LocalDemographics-legacy-rmGYdILu.js} +2 -2
- package/dist/assets/{LocalDemographics-legacy-jYYfhemY.js.map → LocalDemographics-legacy-rmGYdILu.js.map} +1 -1
- package/dist/assets/{Mapbox-B7oionsm-CxTuYnPt.js → Mapbox-CpLnA607-CKDrFvU5.js} +2 -2
- package/dist/assets/{Mapbox-B7oionsm-CxTuYnPt.js.map → Mapbox-CpLnA607-CKDrFvU5.js.map} +1 -1
- package/dist/assets/{Mapbox-B7oionsm-legacy-BRIsIA0a.js → Mapbox-CpLnA607-legacy-Bx1JnBMX.js} +2 -2
- package/dist/assets/{Mapbox-B7oionsm-legacy-BRIsIA0a.js.map → Mapbox-CpLnA607-legacy-Bx1JnBMX.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-BBMjbLph.js → Mapbox-DDJ1gHRb-BrLhMxW4.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-BBMjbLph.js.map → Mapbox-DDJ1gHRb-BrLhMxW4.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-OengExoB.js → Mapbox-DDJ1gHRb-legacy-DtASaFMy.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-OengExoB.js.map → Mapbox-DDJ1gHRb-legacy-DtASaFMy.js.map} +1 -1
- package/dist/assets/Mapbox-DiD9etYJ-BMtTiGO7.js +2 -0
- package/dist/assets/Mapbox-DiD9etYJ-BMtTiGO7.js.map +1 -0
- package/dist/assets/Mapbox-DiD9etYJ-legacy-WIywO1-w.js +2 -0
- package/dist/assets/Mapbox-DiD9etYJ-legacy-WIywO1-w.js.map +1 -0
- package/dist/assets/{Mapbox-DtZmt1D_-Bx6ckAkh.js → Mapbox-DtZmt1D_-Dq1UD7au.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-Bx6ckAkh.js.map → Mapbox-DtZmt1D_-Dq1UD7au.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-CjIWGIob.js → Mapbox-DtZmt1D_-legacy-CXP5-C49.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-CjIWGIob.js.map → Mapbox-DtZmt1D_-legacy-CXP5-C49.js.map} +1 -1
- package/dist/assets/{Mapbox-vp91lH9I-CFYg9mW4.js → Mapbox-u11C3LWs-DuakH8Ji.js} +2 -2
- package/dist/assets/{Mapbox-vp91lH9I-CFYg9mW4.js.map → Mapbox-u11C3LWs-DuakH8Ji.js.map} +1 -1
- package/dist/assets/{Mapbox-vp91lH9I-legacy-GApHnB0z.js → Mapbox-u11C3LWs-legacy-ChrUMjPl.js} +2 -2
- package/dist/assets/{Mapbox-vp91lH9I-legacy-GApHnB0z.js.map → Mapbox-u11C3LWs-legacy-ChrUMjPl.js.map} +1 -1
- package/dist/assets/Maptiler-C0oTROMk-Dz6Vkl6m.js +2 -0
- package/dist/assets/Maptiler-C0oTROMk-Dz6Vkl6m.js.map +1 -0
- package/dist/assets/Maptiler-C0oTROMk-legacy-B6L6FzM1.js +2 -0
- package/dist/assets/Maptiler-C0oTROMk-legacy-B6L6FzM1.js.map +1 -0
- package/dist/assets/{Maptiler-DJScKW8p-_Xood8h4.js → Maptiler-DJScKW8p-6YGAe8cE.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-_Xood8h4.js.map → Maptiler-DJScKW8p-6YGAe8cE.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-legacy-BLJl42xt.js → Maptiler-DJScKW8p-legacy-DEW3rPcZ.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-legacy-BLJl42xt.js.map → Maptiler-DJScKW8p-legacy-DEW3rPcZ.js.map} +1 -1
- package/dist/assets/{Maptiler-BQliPE7n-B8SIuLJ2.js → Maptiler-DdeFS4iM-Brs-80yb.js} +2 -2
- package/dist/assets/{Maptiler-BQliPE7n-B8SIuLJ2.js.map → Maptiler-DdeFS4iM-Brs-80yb.js.map} +1 -1
- package/dist/assets/{Maptiler-BQliPE7n-legacy-Dbs_BWos.js → Maptiler-DdeFS4iM-legacy-Ci9oroQC.js} +2 -2
- package/dist/assets/{Maptiler-BQliPE7n-legacy-Dbs_BWos.js.map → Maptiler-DdeFS4iM-legacy-Ci9oroQC.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-DEBJexij.js → Maptiler-DqeshLom-B0jdRE1n.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-DEBJexij.js.map → Maptiler-DqeshLom-B0jdRE1n.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-legacy-DKFe6w2r.js → Maptiler-DqeshLom-legacy-CurUmtTs.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-legacy-DKFe6w2r.js.map → Maptiler-DqeshLom-legacy-CurUmtTs.js.map} +1 -1
- package/dist/assets/{Maptiler-BtYYeJoo-A8qgmLuQ.js → Maptiler-YjlcPccn-BeECNaQc.js} +2 -2
- package/dist/assets/{Maptiler-BtYYeJoo-A8qgmLuQ.js.map → Maptiler-YjlcPccn-BeECNaQc.js.map} +1 -1
- package/dist/assets/{Maptiler-BtYYeJoo-legacy-6p_OzxFA.js → Maptiler-YjlcPccn-legacy-DUPM1fwa.js} +2 -2
- package/dist/assets/{Maptiler-BtYYeJoo-legacy-6p_OzxFA.js.map → Maptiler-YjlcPccn-legacy-DUPM1fwa.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-BiE4oWxC.js → MarkerIcon-Bc3X9WQk-BuSzLTIC.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-BiE4oWxC.js.map → MarkerIcon-Bc3X9WQk-BuSzLTIC.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-D006OcWh.js → MarkerIcon-Bc3X9WQk-legacy-0n6adFAI.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-D006OcWh.js.map → MarkerIcon-Bc3X9WQk-legacy-0n6adFAI.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-CjddOmMg.js → NeighborhoodCard-ePSiX1h0.js} +2 -2
- package/dist/assets/{NeighborhoodCard-CjddOmMg.js.map → NeighborhoodCard-ePSiX1h0.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-legacy-BXbEUaCk.js → NeighborhoodCard-legacy-B7hL1XOX.js} +2 -2
- package/dist/assets/{NeighborhoodCard-legacy-BXbEUaCk.js.map → NeighborhoodCard-legacy-B7hL1XOX.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-rVjVJZhq.js → NeighborhoodCharacteristics-__nE9rKT.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-rVjVJZhq.js.map → NeighborhoodCharacteristics-__nE9rKT.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-legacy-N-y878TT.js → NeighborhoodCharacteristics-legacy-zcamdTX5.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-legacy-N-y878TT.js.map → NeighborhoodCharacteristics-legacy-zcamdTX5.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-CS-v8EiF.js → NeighborhoodDemographics-5cGgXnRY.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-CS-v8EiF.js.map → NeighborhoodDemographics-5cGgXnRY.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-legacy-Dm5pQwht.js → NeighborhoodDemographics-legacy-c3eDH26X.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-legacy-Dm5pQwht.js.map → NeighborhoodDemographics-legacy-c3eDH26X.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-s-u9pUbm.js → NeighborhoodFeatured-DIXhmlRC.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-s-u9pUbm.js.map → NeighborhoodFeatured-DIXhmlRC.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-legacy-DFs2mouX.js → NeighborhoodFeatured-legacy-lDme45yC.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-legacy-DFs2mouX.js.map → NeighborhoodFeatured-legacy-lDme45yC.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-BywJZ-xz.js → NeighborhoodHero-Bj4FlQVV.js} +2 -2
- package/dist/assets/{NeighborhoodHero-BywJZ-xz.js.map → NeighborhoodHero-Bj4FlQVV.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-legacy-DBXy8A9v.js → NeighborhoodHero-legacy-C6T-qgPK.js} +2 -2
- package/dist/assets/{NeighborhoodHero-legacy-DBXy8A9v.js.map → NeighborhoodHero-legacy-C6T-qgPK.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-C7wjbeds.js → NeighborhoodHighlights-BBmVnaLl.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-C7wjbeds.js.map → NeighborhoodHighlights-BBmVnaLl.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-legacy-DuaIiUeU.js → NeighborhoodHighlights-legacy-B2x36QRC.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-legacy-DuaIiUeU.js.map → NeighborhoodHighlights-legacy-B2x36QRC.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-chAy5ObD.js → NeighborhoodMap-DwMQLhkw.js} +2 -2
- package/dist/assets/{NeighborhoodMap-chAy5ObD.js.map → NeighborhoodMap-DwMQLhkw.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-legacy-qKRq45VQ.js → NeighborhoodMap-legacy-CugKbgSp.js} +2 -2
- package/dist/assets/{NeighborhoodMap-legacy-qKRq45VQ.js.map → NeighborhoodMap-legacy-CugKbgSp.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-DyzBmnXU.js → NeighborhoodMarketTrends-COqvs4Fz.js} +3 -3
- package/dist/assets/{NeighborhoodMarketTrends-DyzBmnXU.js.map → NeighborhoodMarketTrends-COqvs4Fz.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DflW5bwf.js → NeighborhoodMarketTrends-legacy-DSHDUUH_.js} +2 -2
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DflW5bwf.js.map → NeighborhoodMarketTrends-legacy-DSHDUUH_.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-B0NunmQ1.js → NeighborhoodMatch-GqzEoreu.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-B0NunmQ1.js.map → NeighborhoodMatch-GqzEoreu.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-legacy-C9pmkVI0.js → NeighborhoodMatch-legacy-SGEcOXuf.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-legacy-C9pmkVI0.js.map → NeighborhoodMatch-legacy-SGEcOXuf.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-pcHUQKLk.js → NeighborhoodPropertyValueDrivers-Cz4cawqR.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-pcHUQKLk.js.map → NeighborhoodPropertyValueDrivers-Cz4cawqR.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-CSn26WOI.js → NeighborhoodPropertyValueDrivers-legacy-7gVUrIgh.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-CSn26WOI.js.map → NeighborhoodPropertyValueDrivers-legacy-7gVUrIgh.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-mOJqjm1x.js → NeighborhoodSchools-D6CPTgGE.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-mOJqjm1x.js.map → NeighborhoodSchools-D6CPTgGE.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-legacy-DZOdDDpP.js → NeighborhoodSchools-legacy-0G_dtI8q.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-legacy-DZOdDDpP.js.map → NeighborhoodSchools-legacy-0G_dtI8q.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-DB50zUgk.js → NeighborhoodShowcase-CRlKc8OL.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-DB50zUgk.js.map → NeighborhoodShowcase-CRlKc8OL.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-legacy-BkNvt6P2.js → NeighborhoodShowcase-legacy-Bjz5_C24.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-legacy-BkNvt6P2.js.map → NeighborhoodShowcase-legacy-Bjz5_C24.js.map} +1 -1
- package/dist/assets/{NoDataContent-DMnLpuKS.js → NoDataContent-CTxzT718.js} +2 -2
- package/dist/assets/{NoDataContent-DMnLpuKS.js.map → NoDataContent-CTxzT718.js.map} +1 -1
- package/dist/assets/{NoDataContent-legacy-V241YjyB.js → NoDataContent-legacy-BWvHzb0g.js} +2 -2
- package/dist/assets/{NoDataContent-legacy-V241YjyB.js.map → NoDataContent-legacy-BWvHzb0g.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-DWV5t91u.js → ResizeWrapper-DbYmMKOU.js} +2 -2
- package/dist/assets/{ResizeWrapper-DWV5t91u.js.map → ResizeWrapper-DbYmMKOU.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-legacy-DGnrE5zr.js → ResizeWrapper-legacy-C0ua6RC5.js} +2 -2
- package/dist/assets/{ResizeWrapper-legacy-DGnrE5zr.js.map → ResizeWrapper-legacy-C0ua6RC5.js.map} +1 -1
- package/dist/assets/{ScoreCardList-BFPj6mZA.js → ScoreCardList-B4NURGgK.js} +2 -2
- package/dist/assets/{ScoreCardList-BFPj6mZA.js.map → ScoreCardList-B4NURGgK.js.map} +1 -1
- package/dist/assets/{ScoreCardList-legacy-D8n8_vhM.js → ScoreCardList-legacy-BTRPIWUP.js} +2 -2
- package/dist/assets/{ScoreCardList-legacy-D8n8_vhM.js.map → ScoreCardList-legacy-BTRPIWUP.js.map} +1 -1
- package/dist/assets/{ScoreIcon-legacy-x5Tn3nV1.js → ScoreIcon-legacy-D9igp8MS.js} +2 -2
- package/dist/assets/{ScoreIcon-legacy-x5Tn3nV1.js.map → ScoreIcon-legacy-D9igp8MS.js.map} +1 -1
- package/dist/assets/{ScoreIcon-e7HkxsIV.js → ScoreIcon-s5-ehfPP.js} +2 -2
- package/dist/assets/{ScoreIcon-e7HkxsIV.js.map → ScoreIcon-s5-ehfPP.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-C9V56Cfj.js → Testing--n5Ro0Ek-Cc3RGltv.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-C9V56Cfj.js.map → Testing--n5Ro0Ek-Cc3RGltv.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-legacy-D_AkmmzN.js → Testing--n5Ro0Ek-legacy-BB0u0086.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-legacy-D_AkmmzN.js.map → Testing--n5Ro0Ek-legacy-BB0u0086.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-BsZQEhVn.js → Testing-BNJwzbRK-C1viHx8M.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-BsZQEhVn.js.map → Testing-BNJwzbRK-C1viHx8M.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-legacy-DWOKVB8F.js → Testing-BNJwzbRK-legacy-XPR_-0Eg.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-legacy-DWOKVB8F.js.map → Testing-BNJwzbRK-legacy-XPR_-0Eg.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-D1AEkx8H.js → Testing-CoRLhmNT-B4pOjeZH.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-D1AEkx8H.js.map → Testing-CoRLhmNT-B4pOjeZH.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-legacy-C2PTG7qO.js → Testing-CoRLhmNT-legacy-BFVvx40w.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-legacy-C2PTG7qO.js.map → Testing-CoRLhmNT-legacy-BFVvx40w.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-ixrV0Uct.js → Testing-DGUeGxdc-CKSlgBDu.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-ixrV0Uct.js.map → Testing-DGUeGxdc-CKSlgBDu.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-legacy-qdFrcrxK.js → Testing-DGUeGxdc-legacy-B2yBRluh.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-legacy-qdFrcrxK.js.map → Testing-DGUeGxdc-legacy-B2yBRluh.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-6k6EztCf.js → Testing-DzWAcbhL-B5JOmJod.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-6k6EztCf.js.map → Testing-DzWAcbhL-B5JOmJod.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-legacy-CVi7-xZq.js → Testing-DzWAcbhL-legacy-20VBltE2.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-legacy-CVi7-xZq.js.map → Testing-DzWAcbhL-legacy-20VBltE2.js.map} +1 -1
- package/dist/assets/{TitleHeader-mQeQYQpJ.js → TitleHeader-Be2YRN93.js} +2 -2
- package/dist/assets/{TitleHeader-mQeQYQpJ.js.map → TitleHeader-Be2YRN93.js.map} +1 -1
- package/dist/assets/{TitleHeader-legacy-BxGrZ-6z.js → TitleHeader-legacy-CzXSoMFC.js} +2 -2
- package/dist/assets/{TitleHeader-legacy-BxGrZ-6z.js.map → TitleHeader-legacy-CzXSoMFC.js.map} +1 -1
- package/dist/assets/{Trans-C0JSM2OQ.js → Trans-DntniXa9.js} +2 -2
- package/dist/assets/{Trans-C0JSM2OQ.js.map → Trans-DntniXa9.js.map} +1 -1
- package/dist/assets/{Trans-legacy-Ce8Vb50C.js → Trans-legacy-B9t4MV_C.js} +2 -2
- package/dist/assets/{Trans-legacy-Ce8Vb50C.js.map → Trans-legacy-B9t4MV_C.js.map} +1 -1
- package/dist/assets/{ValidateOptions-0362goEF.js → ValidateOptions-BqL9iY9R.js} +2 -2
- package/dist/assets/{ValidateOptions-0362goEF.js.map → ValidateOptions-BqL9iY9R.js.map} +1 -1
- package/dist/assets/{ValidateOptions-legacy-DzEh45h5.js → ValidateOptions-legacy-BQ69tin-.js} +2 -2
- package/dist/assets/{ValidateOptions-legacy-DzEh45h5.js.map → ValidateOptions-legacy-BQ69tin-.js.map} +1 -1
- package/dist/assets/constants-BcJ_mS91-kGN6qniT.js +2 -0
- package/dist/assets/constants-BcJ_mS91-kGN6qniT.js.map +1 -0
- package/dist/assets/constants-BcJ_mS91-legacy-akzQjFeX.js +2 -0
- package/dist/assets/constants-BcJ_mS91-legacy-akzQjFeX.js.map +1 -0
- package/dist/assets/{context-BrD4AniQ-DZ0ZiGRI.js → context-BrD4AniQ-D7UQulkM.js} +1 -1
- package/dist/assets/{context-BrD4AniQ-DZ0ZiGRI.js.map → context-BrD4AniQ-D7UQulkM.js.map} +1 -1
- package/dist/assets/{context-BrD4AniQ-legacy-BySS42Wf.js → context-BrD4AniQ-legacy-Ct6QKrhb.js} +1 -1
- package/dist/assets/{context-BrD4AniQ-legacy-BySS42Wf.js.map → context-BrD4AniQ-legacy-Ct6QKrhb.js.map} +1 -1
- package/dist/assets/{dist-3L6XR49Y.js → dist-C_ktdPsv.js} +2 -2
- package/dist/assets/{dist-3L6XR49Y.js.map → dist-C_ktdPsv.js.map} +1 -1
- package/dist/assets/{dist-legacy-B55wY-DS.js → dist-legacy-DIwOLBcZ.js} +2 -2
- package/dist/assets/{dist-legacy-B55wY-DS.js.map → dist-legacy-DIwOLBcZ.js.map} +1 -1
- package/dist/assets/{esm-Be30MpcN-ls4GMpDI.js → esm-Be30MpcN-C7eJiqee.js} +1 -1
- package/dist/assets/{esm-Be30MpcN-ls4GMpDI.js.map → esm-Be30MpcN-C7eJiqee.js.map} +1 -1
- package/dist/assets/{esm-Be30MpcN-legacy-D8iPI9WH.js → esm-Be30MpcN-legacy-MIXlHUgH.js} +1 -1
- package/dist/assets/{esm-Be30MpcN-legacy-D8iPI9WH.js.map → esm-Be30MpcN-legacy-MIXlHUgH.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-CdGY8cWm.js → getMapProviderConfig-D9e8KNYU.js} +3 -3
- package/dist/assets/{getMapProviderConfig-CdGY8cWm.js.map → getMapProviderConfig-D9e8KNYU.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-legacy-wmAHunfq.js → getMapProviderConfig-legacy-DVBUhWqR.js} +2 -2
- package/dist/assets/{getMapProviderConfig-legacy-wmAHunfq.js.map → getMapProviderConfig-legacy-DVBUhWqR.js.map} +1 -1
- package/dist/assets/getPaddedBounds-CbCVe2M3-CYpTak_b.js +2 -0
- package/dist/assets/getPaddedBounds-CbCVe2M3-CYpTak_b.js.map +1 -0
- package/dist/assets/getPaddedBounds-CbCVe2M3-legacy-1z3vtmVe.js +2 -0
- package/dist/assets/getPaddedBounds-CbCVe2M3-legacy-1z3vtmVe.js.map +1 -0
- package/dist/assets/{index-CNd7hC6B.js → index-PbHyodiU.js} +3 -3
- package/dist/assets/index-PbHyodiU.js.map +1 -0
- package/dist/assets/index-legacy-CYps6nGB.js +2 -0
- package/dist/assets/index-legacy-CYps6nGB.js.map +1 -0
- package/dist/assets/{index.es-CXXRBE7A.js → index.es-DuM-WVhV.js} +2 -2
- package/dist/assets/{index.es-CXXRBE7A.js.map → index.es-DuM-WVhV.js.map} +1 -1
- package/dist/assets/{index.es-legacy-CAykU5jw.js → index.es-legacy-Cz2m6e4L.js} +2 -2
- package/dist/assets/{index.es-legacy-CAykU5jw.js.map → index.es-legacy-Cz2m6e4L.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-Dc19y3gY.js → mapbox-jb8Zev6T-BgSpiKob.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-Dc19y3gY.js.map → mapbox-jb8Zev6T-BgSpiKob.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-legacy-BeyVAwDw.js → mapbox-jb8Zev6T-legacy-hBjjoWXX.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-legacy-BeyVAwDw.js.map → mapbox-jb8Zev6T-legacy-hBjjoWXX.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-BzuGVu1-.js → maplibre-CUYkxr-D-BJWmGVry.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-BzuGVu1-.js.map → maplibre-CUYkxr-D-BJWmGVry.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-legacy-9NqXov2x.js → maplibre-CUYkxr-D-legacy-BNqtRzVB.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-legacy-9NqXov2x.js.map → maplibre-CUYkxr-D-legacy-BNqtRzVB.js.map} +1 -1
- package/dist/assets/neighborhood-fallback-CizB5oi9.js.map +1 -1
- package/dist/assets/{sdks-Bxf4c2j1.js → sdks-BTkz21XL.js} +2 -2
- package/dist/assets/{sdks-Bxf4c2j1.js.map → sdks-BTkz21XL.js.map} +1 -1
- package/dist/assets/{sdks-legacy-DYYmSGi_.js → sdks-legacy-3sJ2n28B.js} +2 -2
- package/dist/assets/{sdks-legacy-DYYmSGi_.js.map → sdks-legacy-3sJ2n28B.js.map} +1 -1
- package/dist/assets/styles-C6SoSE0g-DVodK__e.js +2 -0
- package/dist/assets/styles-C6SoSE0g-DVodK__e.js.map +1 -0
- package/dist/assets/styles-C6SoSE0g-legacy-DQucoUvA.js +2 -0
- package/dist/assets/styles-C6SoSE0g-legacy-DQucoUvA.js.map +1 -0
- package/dist/assets/{styles-CJwaJsrY-B7fRLA0K.js → styles-CJwaJsrY-BTp6ht1Q.js} +1 -1
- package/dist/assets/{styles-CJwaJsrY-B7fRLA0K.js.map → styles-CJwaJsrY-BTp6ht1Q.js.map} +1 -1
- package/dist/assets/{styles-CJwaJsrY-legacy-DpdECtH-.js → styles-CJwaJsrY-legacy-DDFkoq39.js} +1 -1
- package/dist/assets/{styles-CJwaJsrY-legacy-DpdECtH-.js.map → styles-CJwaJsrY-legacy-DDFkoq39.js.map} +1 -1
- package/dist/assets/{useDemographicsData-BvaNug6u.js → useDemographicsData-DKScK522.js} +2 -2
- package/dist/assets/{useDemographicsData-BvaNug6u.js.map → useDemographicsData-DKScK522.js.map} +1 -1
- package/dist/assets/{useDemographicsData-legacy-Ce1DyoWD.js → useDemographicsData-legacy-BsoUaI9P.js} +2 -2
- package/dist/assets/{useDemographicsData-legacy-Ce1DyoWD.js.map → useDemographicsData-legacy-BsoUaI9P.js.map} +1 -1
- package/dist/assets/{useGeographies-PyhHBRG7.js → useGeographies-DejQbRC9.js} +2 -2
- package/dist/assets/{useGeographies-PyhHBRG7.js.map → useGeographies-DejQbRC9.js.map} +1 -1
- package/dist/assets/{useGeographies-legacy-D9GtGYxP.js → useGeographies-legacy-B5ciev2M.js} +2 -2
- package/dist/assets/{useGeographies-legacy-D9GtGYxP.js.map → useGeographies-legacy-B5ciev2M.js.map} +1 -1
- package/dist/assets/{useIsMobile-CFx2Xa3X.js → useIsMobile-Co5SddxR.js} +2 -2
- package/dist/assets/{useIsMobile-CFx2Xa3X.js.map → useIsMobile-Co5SddxR.js.map} +1 -1
- package/dist/assets/{useIsMobile-legacy-CAXdJOlD.js → useIsMobile-legacy-B53LlWR8.js} +2 -2
- package/dist/assets/{useIsMobile-legacy-CAXdJOlD.js.map → useIsMobile-legacy-B53LlWR8.js.map} +1 -1
- package/dist/assets/{useLocation-CgVyB4mN.js → useLocation-DUSQPRn5.js} +2 -2
- package/dist/assets/{useLocation-CgVyB4mN.js.map → useLocation-DUSQPRn5.js.map} +1 -1
- package/dist/assets/{useLocation-legacy-CoN_4aWO.js → useLocation-legacy-CYzO18ij.js} +2 -2
- package/dist/assets/{useLocation-legacy-CoN_4aWO.js.map → useLocation-legacy-CYzO18ij.js.map} +1 -1
- package/dist/assets/{useProfiles-CleTbooi.js → useProfiles-Dv9s6TWw.js} +2 -2
- package/dist/assets/{useProfiles-CleTbooi.js.map → useProfiles-Dv9s6TWw.js.map} +1 -1
- package/dist/assets/{useProfiles-legacy-CLlZc_oV.js → useProfiles-legacy-DF0NXWwe.js} +2 -2
- package/dist/assets/{useProfiles-legacy-CLlZc_oV.js.map → useProfiles-legacy-DF0NXWwe.js.map} +1 -1
- package/dist/assets/{useSchools-CKXVMLym.js → useSchools-Dqdy1J-D.js} +2 -2
- package/dist/assets/{useSchools-CKXVMLym.js.map → useSchools-Dqdy1J-D.js.map} +1 -1
- package/dist/assets/{useSchools-legacy-BvZM00mn.js → useSchools-legacy-CCHNqc2P.js} +2 -2
- package/dist/assets/{useSchools-legacy-BvZM00mn.js.map → useSchools-legacy-CCHNqc2P.js.map} +1 -1
- package/dist/assets/{useScores-BYLlfjJr.js → useScores-C4T2-LUO.js} +2 -2
- package/dist/assets/{useScores-BYLlfjJr.js.map → useScores-C4T2-LUO.js.map} +1 -1
- package/dist/assets/{useScores-legacy-BtklhLy-.js → useScores-legacy-BludORUw.js} +2 -2
- package/dist/assets/{useScores-legacy-BtklhLy-.js.map → useScores-legacy-BludORUw.js.map} +1 -1
- package/dist/assets/utils-DuZH7Cmm-CGFseyIn.js +2 -0
- package/dist/assets/utils-DuZH7Cmm-CGFseyIn.js.map +1 -0
- package/dist/assets/utils-DuZH7Cmm-legacy-vOQGld7w.js +2 -0
- package/dist/assets/utils-DuZH7Cmm-legacy-vOQGld7w.js.map +1 -0
- package/dist/index.html +2 -2
- package/dist/types/context/stateManager/index.d.ts.map +1 -1
- package/dist/types/context/stateManager/index.js +50 -3
- package/dist/types/context/stateManager/index.js.map +1 -1
- package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/SurveyTriggerProvider/index.test.js +11 -9
- package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/SurveyTriggerProvider/index.test.js.map +1 -1
- package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/index.test.js +19 -5
- package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/index.test.js.map +1 -1
- package/dist/types/sdks/NeighborhoodMap/constants.d.ts +1 -1
- package/dist/types/sdks/NeighborhoodMap/constants.js +1 -1
- package/dist/types/utils/errorTracker/index.d.ts.map +1 -1
- package/dist/types/utils/errorTracker/index.js +6 -5
- package/dist/types/utils/errorTracker/index.js.map +1 -1
- package/dist/types/utils/normalizeLocale/index.d.ts +18 -0
- package/dist/types/utils/normalizeLocale/index.d.ts.map +1 -0
- package/dist/types/utils/normalizeLocale/index.js +24 -0
- package/dist/types/utils/normalizeLocale/index.js.map +1 -0
- package/dist/types/utils/normalizeLocale/index.test.d.ts +2 -0
- package/dist/types/utils/normalizeLocale/index.test.d.ts.map +1 -0
- package/dist/types/utils/normalizeLocale/index.test.js +35 -0
- package/dist/types/utils/normalizeLocale/index.test.js.map +1 -0
- package/package.json +2 -2
- package/dist/assets/Cluster-BHQcO6iC-BLUKMpub.js +0 -2
- package/dist/assets/Google-CH7a2yx--B615NdD8.js +0 -2
- package/dist/assets/Google-CXGCn-oJ-AkqBPqrT.js +0 -2
- package/dist/assets/Google-D1kMMDIv-BsfRv65Q.js +0 -2
- package/dist/assets/Google-D1kMMDIv-BsfRv65Q.js.map +0 -1
- package/dist/assets/Google-D1kMMDIv-legacy-VjXA4xrw.js +0 -2
- package/dist/assets/Google-D1kMMDIv-legacy-VjXA4xrw.js.map +0 -1
- package/dist/assets/Mapbox-CIislOVu-DF1r9xj3.js +0 -2
- package/dist/assets/Mapbox-CIislOVu-DF1r9xj3.js.map +0 -1
- package/dist/assets/Mapbox-CIislOVu-legacy-BL-N58pQ.js +0 -2
- package/dist/assets/Mapbox-CIislOVu-legacy-BL-N58pQ.js.map +0 -1
- package/dist/assets/Maptiler-Cy2r6w4G-SVyBwt0g.js +0 -2
- package/dist/assets/Maptiler-Cy2r6w4G-SVyBwt0g.js.map +0 -1
- package/dist/assets/Maptiler-Cy2r6w4G-legacy-Bhbgroyv.js +0 -2
- package/dist/assets/Maptiler-Cy2r6w4G-legacy-Bhbgroyv.js.map +0 -1
- package/dist/assets/constants-DOpa8YMW-CAHGepUD.js +0 -2
- package/dist/assets/constants-DOpa8YMW-CAHGepUD.js.map +0 -1
- package/dist/assets/constants-DOpa8YMW-legacy-TnabVEaS.js +0 -2
- package/dist/assets/constants-DOpa8YMW-legacy-TnabVEaS.js.map +0 -1
- package/dist/assets/esm-k7KI3vER-DWALg7MX.js +0 -2
- package/dist/assets/esm-k7KI3vER-DWALg7MX.js.map +0 -1
- package/dist/assets/esm-k7KI3vER-legacy-DjAkR8OT.js +0 -2
- package/dist/assets/esm-k7KI3vER-legacy-DjAkR8OT.js.map +0 -1
- package/dist/assets/index-CNd7hC6B.js.map +0 -1
- package/dist/assets/index-legacy-C3WMF-is.js +0 -2
- package/dist/assets/index-legacy-C3WMF-is.js.map +0 -1
- package/dist/assets/styles-hx5_Dz4D-CjeaMkGu.js +0 -2
- package/dist/assets/styles-hx5_Dz4D-CjeaMkGu.js.map +0 -1
- package/dist/assets/styles-hx5_Dz4D-legacy-CNN4CNPX.js +0 -2
- package/dist/assets/styles-hx5_Dz4D-legacy-CNN4CNPX.js.map +0 -1
- package/dist/assets/utils-CjIvvA5e-DRv4kcQu.js +0 -2
- package/dist/assets/utils-CjIvvA5e-DRv4kcQu.js.map +0 -1
- package/dist/assets/utils-CjIvvA5e-legacy-BArgSH63.js +0 -2
- package/dist/assets/utils-CjIvvA5e-legacy-BArgSH63.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./rolldown-runtime-C_ttsnZz.js";import{l as e}from"./google-maps-vendor-DvfEEdRU.js";import{q as r}from"./index-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodCard-
|
|
1
|
+
import{a}from"./rolldown-runtime-C_ttsnZz.js";import{l as e}from"./google-maps-vendor-DvfEEdRU.js";import{q as r}from"./index-PbHyodiU.js";import{t as o}from"./neighborhood-fallback-CizB5oi9.js";var n=(a,e,r)=>{if(!e)return;let o="en"===a?e.name_en:e.name_fr;return r?.name?.value&&(o=r.name.value),{geogId:e.geog_id,level:e.level,name:o,countryCode:e.country_code,subCountryCode:e.sub_country_code,imageUrl:r?.image_url.value,summary:r?.summary.value}},s={AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CZ:"Canal Zone",CO:"Colorado",CT:"Connecticut",DE:"Delaware",DC:"District of Columbia",FL:"Florida",GA:"Georgia",GU:"Guam",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",PR:"Puerto Rico",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VI:"Virgin Islands",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming",AB:"Alberta",BC:"British Columbia",MB:"Manitoba",NB:"New Brunswick",NL:"Newfoundland and Labrador",NT:"Northwest Territories",NS:"Nova Scotia",NU:"Nunavut",ON:"Ontario",PE:"Prince Edward Island",QC:"Quebec",SK:"Saskatchewan",YT:"Yukon"};function t(a,e,r){const o=e;return a.replace("{geogId}",o.geogId).replace("{stateCode}",o.subCountryCode).replace("{stateName}",s[o.subCountryCode].replace(/\s+/g,r)).replace("{name}",o.name.replace(/\s+/g,r))}var i=a(e(),1),l=r();function d({isFeatured:a=!1,neighborhood:e,href:r}){const o=(0,i.useMemo)(()=>e?.imageUrl||"/sdks-app/v1/assets/neighborhood-fallback-DTJDTD7d.jpg",[e?.imageUrl]);return(0,l.jsx)("div",{className:"\n group\n data-[is-clickable]:hover:cursor-pointer\n","data-is-featured":a,"data-is-clickable":!!r,children:(0,l.jsxs)("a",{href:r,target:"_parent",rel:"noreferrer",children:[(0,l.jsx)("div",{className:"\n relative rounded-t-lg\n border border-solid border-gray-200 \n duration-200\n transition-colors\n h-28 group-data-[is-featured=true]:h-60\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n",children:(0,l.jsx)("img",{className:"\n object-center object-cover rounded-t-lg h-full w-full\n",src:o,alt:e?.name})}),(0,l.jsxs)("div",{className:"\n border border-solid border-gray-200\n rounded-b-lg border-t-0\n py-6 px-8\n duration-200\n transition-colors\n group-data-[is-featured=false]:py-4\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n",children:[(0,l.jsx)("h2",{className:"\n text-xl font-medium text-ll-on-surface my-0 \n duration-200\n transition-colors\n group-data-[is-clickable=true]:group-hover:text-ll-primary\n group-data-[is-featured=false]:text-center\n group-data-[is-featured=true]:mb-2\n group-data-[is-featured=false]:text-base\n",children:e?.name}),a&&(0,l.jsx)("p",{className:"text-md text-gray-500 m-0 line-clamp-3",children:e?.summary})]})]})})}export{t as n,n as r,d as t};
|
|
2
|
+
//# sourceMappingURL=NeighborhoodCard-ePSiX1h0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodCard-
|
|
1
|
+
{"version":3,"file":"NeighborhoodCard-ePSiX1h0.js","names":[],"sources":["../../src/utils/transformNeighborhood.tsx","../../src/utils/formatters/neighborhoodURLSchema.ts","../../src/components/NeighborhoodCard/styles.ts","../../src/components/NeighborhoodCard/index.tsx"],"sourcesContent":["import type {\n ApiNeighborhood,\n NeighborhoodConfigurationData,\n} from \"~/types/neighborhoods\";\n\nexport const transformNeighborhood = (\n locale: string,\n neighborhood: ApiNeighborhood,\n configuration?: NeighborhoodConfigurationData,\n) => {\n if (!neighborhood) {\n return undefined;\n }\n\n let neighborhoodName =\n locale === \"en\" ? neighborhood.name_en : neighborhood.name_fr;\n\n if (configuration?.name?.value) {\n neighborhoodName = configuration.name.value;\n }\n\n return {\n geogId: neighborhood.geog_id,\n level: neighborhood.level,\n name: neighborhoodName,\n countryCode: neighborhood.country_code,\n subCountryCode: neighborhood.sub_country_code,\n imageUrl: configuration?.image_url.value,\n summary: configuration?.summary.value,\n };\n};\n","type Neighborhood = {\n geogId: string;\n name: string;\n subCountryCode: string;\n};\n\nconst statesMapping: {\n [key: string]: string;\n} = {\n AL: \"Alabama\",\n AK: \"Alaska\",\n AZ: \"Arizona\",\n AR: \"Arkansas\",\n CA: \"California\",\n CZ: \"Canal Zone\",\n CO: \"Colorado\",\n CT: \"Connecticut\",\n DE: \"Delaware\",\n DC: \"District of Columbia\",\n FL: \"Florida\",\n GA: \"Georgia\",\n GU: \"Guam\",\n HI: \"Hawaii\",\n ID: \"Idaho\",\n IL: \"Illinois\",\n IN: \"Indiana\",\n IA: \"Iowa\",\n KS: \"Kansas\",\n KY: \"Kentucky\",\n LA: \"Louisiana\",\n ME: \"Maine\",\n MD: \"Maryland\",\n MA: \"Massachusetts\",\n MI: \"Michigan\",\n MN: \"Minnesota\",\n MS: \"Mississippi\",\n MO: \"Missouri\",\n MT: \"Montana\",\n NE: \"Nebraska\",\n NV: \"Nevada\",\n NH: \"New Hampshire\",\n NJ: \"New Jersey\",\n NM: \"New Mexico\",\n NY: \"New York\",\n NC: \"North Carolina\",\n ND: \"North Dakota\",\n OH: \"Ohio\",\n OK: \"Oklahoma\",\n OR: \"Oregon\",\n PA: \"Pennsylvania\",\n PR: \"Puerto Rico\",\n RI: \"Rhode Island\",\n SC: \"South Carolina\",\n SD: \"South Dakota\",\n TN: \"Tennessee\",\n TX: \"Texas\",\n UT: \"Utah\",\n VT: \"Vermont\",\n VI: \"Virgin Islands\",\n VA: \"Virginia\",\n WA: \"Washington\",\n WV: \"West Virginia\",\n WI: \"Wisconsin\",\n WY: \"Wyoming\",\n AB: \"Alberta\",\n BC: \"British Columbia\",\n MB: \"Manitoba\",\n NB: \"New Brunswick\",\n NL: \"Newfoundland and Labrador\",\n NT: \"Northwest Territories\",\n NS: \"Nova Scotia\",\n NU: \"Nunavut\",\n ON: \"Ontario\",\n PE: \"Prince Edward Island\",\n QC: \"Quebec\",\n SK: \"Saskatchewan\",\n YT: \"Yukon\",\n};\n\nexport function getNeighborhoodURLFromSchema(\n schema: string,\n neighborhood: unknown,\n spacer: string,\n): string {\n const neighborhoodCast = neighborhood as Neighborhood;\n\n return schema\n .replace(\"{geogId}\", neighborhoodCast.geogId)\n .replace(\"{stateCode}\", neighborhoodCast.subCountryCode)\n .replace(\n \"{stateName}\",\n statesMapping[neighborhoodCast.subCountryCode].replace(/\\s+/g, spacer),\n )\n .replace(\"{name}\", neighborhoodCast.name.replace(/\\s+/g, spacer));\n}\n","export const container = `\n group\n data-[is-clickable]:hover:cursor-pointer\n`;\n\nexport const imgContainer = `\n relative rounded-t-lg\n border border-solid border-gray-200 \n duration-200\n transition-colors\n h-28 group-data-[is-featured=true]:h-60\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n`;\n\nexport const image = `\n object-center object-cover rounded-t-lg h-full w-full\n`;\n\nexport const info = `\n border border-solid border-gray-200\n rounded-b-lg border-t-0\n py-6 px-8\n duration-200\n transition-colors\n group-data-[is-featured=false]:py-4\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n`;\n\nexport const name = `\n text-xl font-medium text-ll-on-surface my-0 \n duration-200\n transition-colors\n group-data-[is-clickable=true]:group-hover:text-ll-primary\n group-data-[is-featured=false]:text-center\n group-data-[is-featured=true]:mb-2\n group-data-[is-featured=false]:text-base\n`;\n\nexport const summary = `text-md text-gray-500 m-0 line-clamp-3`;\n","import React, { useMemo } from \"react\";\n\nimport * as styles from \"./styles\";\nimport NeighborhoodFallbackImage from \"~/assets/images/neighborhood-fallback.jpg\";\n\nimport { Neighborhood } from \"~/types/neighborhoods\";\n\nexport function NeighborhoodCard({\n isFeatured = false,\n neighborhood,\n href,\n}: {\n isFeatured?: boolean;\n href?: string;\n neighborhood?: Neighborhood;\n}) {\n const imageURL = useMemo(\n () => neighborhood?.imageUrl || NeighborhoodFallbackImage,\n [neighborhood?.imageUrl],\n );\n\n return (\n <div\n className={styles.container}\n data-is-featured={isFeatured}\n data-is-clickable={!!href}\n >\n <a href={href} target=\"_parent\" rel=\"noreferrer\">\n <div className={styles.imgContainer}>\n <img\n className={styles.image}\n src={imageURL}\n alt={neighborhood?.name}\n />\n </div>\n <div className={styles.info}>\n <h2 className={styles.name}>{neighborhood?.name}</h2>\n {isFeatured && (\n <p className={styles.summary}>{neighborhood?.summary}</p>\n )}\n </div>\n </a>\n </div>\n );\n}\n"],"mappings":"mMAKA,IAAa,EAAA,CACX,EACA,EACA,KAEA,IAAK,EACH,OAGF,IAAI,EACS,OAAX,EAAkB,EAAa,QAAU,EAAa,QAMxD,OAJI,GAAe,MAAM,QACvB,EAAmB,EAAc,KAAK,OAGjC,CACL,OAAQ,EAAa,QACrB,MAAO,EAAa,MACpB,KAAM,EACN,YAAa,EAAa,aAC1B,eAAgB,EAAa,iBAC7B,SAAU,GAAe,UAAU,MACnC,QAAS,GAAe,QAAQ,QCtB9B,EAEF,CACF,GAAI,UACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WACJ,GAAI,aACJ,GAAI,aACJ,GAAI,WACJ,GAAI,cACJ,GAAI,WACJ,GAAI,uBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,WACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,WACJ,GAAI,YACJ,GAAI,QACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,WACJ,GAAI,YACJ,GAAI,cACJ,GAAI,WACJ,GAAI,UACJ,GAAI,WACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,aACJ,GAAI,aACJ,GAAI,WACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,eACJ,GAAI,cACJ,GAAI,eACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,iBACJ,GAAI,WACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACJ,GAAI,mBACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,4BACJ,GAAI,wBACJ,GAAI,cACJ,GAAI,UACJ,GAAI,UACJ,GAAI,uBACJ,GAAI,SACJ,GAAI,eACJ,GAAI,SAGN,SAAgB,EACd,EACA,EACA,GAEA,MAAM,EAAmB,EAEzB,OAAO,EACJ,QAAQ,WAAY,EAAiB,QACrC,QAAQ,cAAe,EAAiB,gBACxC,QACC,cACA,EAAc,EAAiB,gBAAgB,QAAQ,OAAQ,IAEhE,QAAQ,SAAU,EAAiB,KAAK,QAAQ,OAAQ,yBEtF7D,SAAgB,GAAiB,WAC/B,GAAa,EAAA,aACb,EAAA,KACA,IAMA,MAAM,GAAA,EAAA,EAAA,SAAA,IACE,GAAc,UAAA,yDACpB,CAAC,GAAc,WAGjB,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UDvBN,0DCwBM,mBAAkB,EAClB,sBAAqB,YAErB,EAAA,EAAA,MAAC,IAAD,CAAS,OAAM,OAAO,UAAU,IAAI,sBAApC,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UDvBb,gOCwBU,EAAA,EAAA,KAAC,MAAD,CACE,UDhBZ,8DCiBY,IAAK,EACL,IAAK,GAAc,UAGvB,EAAA,EAAA,MAAC,MAAD,CAAK,UDjBb,yOCiBQ,EACE,EAAA,EAAA,KAAC,KAAD,CAAI,UDRd,iSCQuC,GAAc,OAC1C,IACC,EAAA,EAAA,KAAC,IAAD,CAAG,UDAf,kDCA2C,GAAc"}
|
package/dist/assets/{NeighborhoodCard-legacy-BXbEUaCk.js → NeighborhoodCard-legacy-B7hL1XOX.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./index-legacy-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodCard-legacy-
|
|
1
|
+
System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./index-legacy-CYps6nGB.js","./neighborhood-fallback-legacy-Bu1BwGpC.js"],function(e,a){var r,n,o,i,t,l,s,u,d,c,g,m;return e({n:function(e,a,r){const n=a;return e.replace("{geogId}",n.geogId).replace("{stateCode}",n.subCountryCode).replace("{stateName}",i[n.subCountryCode].replace(/\s+/g,r)).replace("{name}",n.name.replace(/\s+/g,r))},t:function({isFeatured:e=!1,neighborhood:a,href:r}){const n=(0,t.useMemo)(()=>(null==a?void 0:a.imageUrl)||"/sdks-app/v1/assets/neighborhood-fallback-DTJDTD7d.jpg",[null==a?void 0:a.imageUrl]);return(0,m.jsx)("div",{className:l,"data-is-featured":e,"data-is-clickable":!!r,children:(0,m.jsxs)("a",{href:r,target:"_parent",rel:"noreferrer",children:[(0,m.jsx)("div",{className:s,children:(0,m.jsx)("img",{className:u,src:n,alt:null==a?void 0:a.name})}),(0,m.jsxs)("div",{className:d,children:[(0,m.jsx)("h2",{className:c,children:null==a?void 0:a.name}),e&&(0,m.jsx)("p",{className:g,children:null==a?void 0:a.summary})]})]})})}}),{setters:[function(e){r=e.a},function(e){n=e.l},function(e){o=e.q},function(e){e.t}],execute:function(){e("r",(e,a,r)=>{var n;if(!a)return;let o="en"===e?a.name_en:a.name_fr;return null!=r&&null!==(n=r.name)&&void 0!==n&&n.value&&(o=r.name.value),{geogId:a.geog_id,level:a.level,name:o,countryCode:a.country_code,subCountryCode:a.sub_country_code,imageUrl:null==r?void 0:r.image_url.value,summary:null==r?void 0:r.summary.value}}),i={AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CZ:"Canal Zone",CO:"Colorado",CT:"Connecticut",DE:"Delaware",DC:"District of Columbia",FL:"Florida",GA:"Georgia",GU:"Guam",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",PR:"Puerto Rico",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VI:"Virgin Islands",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming",AB:"Alberta",BC:"British Columbia",MB:"Manitoba",NB:"New Brunswick",NL:"Newfoundland and Labrador",NT:"Northwest Territories",NS:"Nova Scotia",NU:"Nunavut",ON:"Ontario",PE:"Prince Edward Island",QC:"Quebec",SK:"Saskatchewan",YT:"Yukon"},t=r(n(),1),l="\n group\n data-[is-clickable]:hover:cursor-pointer\n",s="\n relative rounded-t-lg\n border border-solid border-gray-200 \n duration-200\n transition-colors\n h-28 group-data-[is-featured=true]:h-60\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n",u="\n object-center object-cover rounded-t-lg h-full w-full\n",d="\n border border-solid border-gray-200\n rounded-b-lg border-t-0\n py-6 px-8\n duration-200\n transition-colors\n group-data-[is-featured=false]:py-4\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n",c="\n text-xl font-medium text-ll-on-surface my-0 \n duration-200\n transition-colors\n group-data-[is-clickable=true]:group-hover:text-ll-primary\n group-data-[is-featured=false]:text-center\n group-data-[is-featured=true]:mb-2\n group-data-[is-featured=false]:text-base\n",g="text-md text-gray-500 m-0 line-clamp-3",m=o()}}});
|
|
2
|
+
//# sourceMappingURL=NeighborhoodCard-legacy-B7hL1XOX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodCard-legacy-
|
|
1
|
+
{"version":3,"file":"NeighborhoodCard-legacy-B7hL1XOX.js","names":[],"sources":["../../src/utils/transformNeighborhood.tsx","../../src/utils/formatters/neighborhoodURLSchema.ts","../../src/components/NeighborhoodCard/styles.ts","../../src/components/NeighborhoodCard/index.tsx"],"sourcesContent":["import type {\n ApiNeighborhood,\n NeighborhoodConfigurationData,\n} from \"~/types/neighborhoods\";\n\nexport const transformNeighborhood = (\n locale: string,\n neighborhood: ApiNeighborhood,\n configuration?: NeighborhoodConfigurationData,\n) => {\n if (!neighborhood) {\n return undefined;\n }\n\n let neighborhoodName =\n locale === \"en\" ? neighborhood.name_en : neighborhood.name_fr;\n\n if (configuration?.name?.value) {\n neighborhoodName = configuration.name.value;\n }\n\n return {\n geogId: neighborhood.geog_id,\n level: neighborhood.level,\n name: neighborhoodName,\n countryCode: neighborhood.country_code,\n subCountryCode: neighborhood.sub_country_code,\n imageUrl: configuration?.image_url.value,\n summary: configuration?.summary.value,\n };\n};\n","type Neighborhood = {\n geogId: string;\n name: string;\n subCountryCode: string;\n};\n\nconst statesMapping: {\n [key: string]: string;\n} = {\n AL: \"Alabama\",\n AK: \"Alaska\",\n AZ: \"Arizona\",\n AR: \"Arkansas\",\n CA: \"California\",\n CZ: \"Canal Zone\",\n CO: \"Colorado\",\n CT: \"Connecticut\",\n DE: \"Delaware\",\n DC: \"District of Columbia\",\n FL: \"Florida\",\n GA: \"Georgia\",\n GU: \"Guam\",\n HI: \"Hawaii\",\n ID: \"Idaho\",\n IL: \"Illinois\",\n IN: \"Indiana\",\n IA: \"Iowa\",\n KS: \"Kansas\",\n KY: \"Kentucky\",\n LA: \"Louisiana\",\n ME: \"Maine\",\n MD: \"Maryland\",\n MA: \"Massachusetts\",\n MI: \"Michigan\",\n MN: \"Minnesota\",\n MS: \"Mississippi\",\n MO: \"Missouri\",\n MT: \"Montana\",\n NE: \"Nebraska\",\n NV: \"Nevada\",\n NH: \"New Hampshire\",\n NJ: \"New Jersey\",\n NM: \"New Mexico\",\n NY: \"New York\",\n NC: \"North Carolina\",\n ND: \"North Dakota\",\n OH: \"Ohio\",\n OK: \"Oklahoma\",\n OR: \"Oregon\",\n PA: \"Pennsylvania\",\n PR: \"Puerto Rico\",\n RI: \"Rhode Island\",\n SC: \"South Carolina\",\n SD: \"South Dakota\",\n TN: \"Tennessee\",\n TX: \"Texas\",\n UT: \"Utah\",\n VT: \"Vermont\",\n VI: \"Virgin Islands\",\n VA: \"Virginia\",\n WA: \"Washington\",\n WV: \"West Virginia\",\n WI: \"Wisconsin\",\n WY: \"Wyoming\",\n AB: \"Alberta\",\n BC: \"British Columbia\",\n MB: \"Manitoba\",\n NB: \"New Brunswick\",\n NL: \"Newfoundland and Labrador\",\n NT: \"Northwest Territories\",\n NS: \"Nova Scotia\",\n NU: \"Nunavut\",\n ON: \"Ontario\",\n PE: \"Prince Edward Island\",\n QC: \"Quebec\",\n SK: \"Saskatchewan\",\n YT: \"Yukon\",\n};\n\nexport function getNeighborhoodURLFromSchema(\n schema: string,\n neighborhood: unknown,\n spacer: string,\n): string {\n const neighborhoodCast = neighborhood as Neighborhood;\n\n return schema\n .replace(\"{geogId}\", neighborhoodCast.geogId)\n .replace(\"{stateCode}\", neighborhoodCast.subCountryCode)\n .replace(\n \"{stateName}\",\n statesMapping[neighborhoodCast.subCountryCode].replace(/\\s+/g, spacer),\n )\n .replace(\"{name}\", neighborhoodCast.name.replace(/\\s+/g, spacer));\n}\n","export const container = `\n group\n data-[is-clickable]:hover:cursor-pointer\n`;\n\nexport const imgContainer = `\n relative rounded-t-lg\n border border-solid border-gray-200 \n duration-200\n transition-colors\n h-28 group-data-[is-featured=true]:h-60\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n`;\n\nexport const image = `\n object-center object-cover rounded-t-lg h-full w-full\n`;\n\nexport const info = `\n border border-solid border-gray-200\n rounded-b-lg border-t-0\n py-6 px-8\n duration-200\n transition-colors\n group-data-[is-featured=false]:py-4\n group-data-[is-clickable=true]:group-hover:border-ll-primary\n`;\n\nexport const name = `\n text-xl font-medium text-ll-on-surface my-0 \n duration-200\n transition-colors\n group-data-[is-clickable=true]:group-hover:text-ll-primary\n group-data-[is-featured=false]:text-center\n group-data-[is-featured=true]:mb-2\n group-data-[is-featured=false]:text-base\n`;\n\nexport const summary = `text-md text-gray-500 m-0 line-clamp-3`;\n","import React, { useMemo } from \"react\";\n\nimport * as styles from \"./styles\";\nimport NeighborhoodFallbackImage from \"~/assets/images/neighborhood-fallback.jpg\";\n\nimport { Neighborhood } from \"~/types/neighborhoods\";\n\nexport function NeighborhoodCard({\n isFeatured = false,\n neighborhood,\n href,\n}: {\n isFeatured?: boolean;\n href?: string;\n neighborhood?: Neighborhood;\n}) {\n const imageURL = useMemo(\n () => neighborhood?.imageUrl || NeighborhoodFallbackImage,\n [neighborhood?.imageUrl],\n );\n\n return (\n <div\n className={styles.container}\n data-is-featured={isFeatured}\n data-is-clickable={!!href}\n >\n <a href={href} target=\"_parent\" rel=\"noreferrer\">\n <div className={styles.imgContainer}>\n <img\n className={styles.image}\n src={imageURL}\n alt={neighborhood?.name}\n />\n </div>\n <div className={styles.info}>\n <h2 className={styles.name}>{neighborhood?.name}</h2>\n {isFeatured && (\n <p className={styles.summary}>{neighborhood?.summary}</p>\n )}\n </div>\n </a>\n </div>\n );\n}\n"],"mappings":"oOC+EA,SACE,EACA,EACA,GAEA,MAAM,EAAmB,EAEzB,OAAO,EACJ,QAAQ,WAAY,EAAiB,QACrC,QAAQ,cAAe,EAAiB,gBACxC,QACC,cACA,EAAc,EAAiB,gBAAgB,QAAQ,OAAQ,IAEhE,QAAQ,SAAU,EAAiB,KAAK,QAAQ,OAAQ,OEtF7D,UAAiC,WAC/B,GAAa,EAAA,aACb,EAAA,KACA,IAMA,MAAM,GAAA,EAAA,EAAA,SAAA,KACE,aAAA,EAAA,EAAc,WAAA,yDACpB,CAAC,aAAA,EAAA,EAAc,WAGjB,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EACX,mBAAkB,EAClB,sBAAqB,YAErB,EAAA,EAAA,MAAC,IAAD,CAAS,OAAM,OAAO,UAAU,IAAI,sBAApC,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,YACd,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EACX,IAAK,EACL,IAAK,aAAA,EAAA,EAAc,UAGvB,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,WAAhB,EACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW,WAAc,aAAA,EAAA,EAAc,OAC1C,IACC,EAAA,EAAA,KAAC,IAAD,CAAG,UAAW,WAAiB,aAAA,EAAA,EAAc,mIHjC5C,CACX,EACA,EACA,KACG,IAAA,EACH,IAAK,EACH,OAGF,IAAI,EACS,OAAX,EAAkB,EAAa,QAAU,EAAa,QAMxD,OAJI,SAAe,QAAf,EAAA,EAAe,YAAA,IAAA,GAAf,EAAqB,QACvB,EAAmB,EAAc,KAAK,OAGjC,CACL,OAAQ,EAAa,QACrB,MAAO,EAAa,MACpB,KAAM,EACN,YAAa,EAAa,aAC1B,eAAgB,EAAa,iBAC7B,SAAU,aAAA,EAAA,EAAe,UAAU,MACnC,QAAS,aAAA,EAAA,EAAe,QAAQ,SCtB9B,EAEF,CACF,GAAI,UACJ,GAAI,SACJ,GAAI,UACJ,GAAI,WACJ,GAAI,aACJ,GAAI,aACJ,GAAI,WACJ,GAAI,cACJ,GAAI,WACJ,GAAI,uBACJ,GAAI,UACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,WACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,WACJ,GAAI,YACJ,GAAI,QACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,WACJ,GAAI,YACJ,GAAI,cACJ,GAAI,WACJ,GAAI,UACJ,GAAI,WACJ,GAAI,SACJ,GAAI,gBACJ,GAAI,aACJ,GAAI,aACJ,GAAI,WACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,eACJ,GAAI,cACJ,GAAI,eACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,iBACJ,GAAI,WACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACJ,GAAI,mBACJ,GAAI,WACJ,GAAI,gBACJ,GAAI,4BACJ,GAAI,wBACJ,GAAI,cACJ,GAAI,UACJ,GAAI,UACJ,GAAI,uBACJ,GAAI,SACJ,GAAI,eACJ,GAAI,oBC5EN,EAAA,0DAKA,EAAA,sNASA,EAAA,8DAIA,EAAA,gOAUA,EAAA,wRAUA,EAAA"}
|
|
@@ -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 s,f as i,g as a,m as r,n,o as l,p as c,r as d,s as p,t as g,u as h}from"./sdks-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodCharacteristics-
|
|
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 s,f as i,g as a,m as r,n,o as l,p as c,r as d,s as p,t as g,u as h}from"./sdks-BTkz21XL.js";import{q as m,r as u,t as b}from"./index-PbHyodiU.js";import{t as v}from"./useGeographies-DejQbRC9.js";import{t as y}from"./useResponsiveBreakpoints-Dq6mGzIW.js";import{t as j}from"./Attribution-D012fWNs.js";/* empty css */import{t as f}from"./ResizeWrapper-DbYmMKOU.js";import{t as x}from"./ValidateOptions-BqL9iY9R.js";import{t as I}from"./useIsMobile-Co5SddxR.js";import{t as C}from"./useScores-C4T2-LUO.js";import{t as E}from"./bundle-mjs-orX75hSI.js";import{t as O}from"./TitleHeader-Be2YRN93.js";import{t as k}from"./useProfiles-Dv9s6TWw.js";import{n as _,t as S}from"./ScoreCardList-B4NURGgK.js";var D=e(t(),1),K=m(),N=D.createContext({}),L=({isLoading:e,children:t})=>(0,K.jsx)(N.Provider,{value:{isLoading:e},children:t}),A=({children:e})=>(0,K.jsx)("h3",{"data-testid":"title",className:"\n font-bold leading-6 mb-2\n",children:e}),M=({children:e})=>{const{t:t}=a("neighborhoodCharacteristics"),{isLoading:o}=(0,D.useContext)(N),s=(0,D.useMemo)(()=>e||t("noData"),[e]);return(0,K.jsx)("p",{"data-testid":"description",className:"\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n","data-empty":!e,children:!o&&s})},R=({isLoading:e=!1,className:t,children:o,...s})=>(0,K.jsx)(L,{isLoading:e,children:(0,K.jsx)("div",{"data-testid":"score-section-root",className:E("group/score-section text-gray-400",t),"data-is-loading":e,...s,children:o})}),w="grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8",H=function(e){return e.SDK_VIEWED="neighborhood-characteristics-Viewed",e.SCORE_CLICKED="neighborhood-characteristics-Score-Clicked",e}({}),$=function(e){return e.SDK_VIEWED="sdk_viewed",e.SCORE_CLICKED="score_clicked",e}({}),T={transport:["pedestrian_friendly","car_friendly","transit_friendly","cycling_friendly"],services:["groceries","shopping","restaurants","cafes"],character:["quiet","parks","vibrant","nightlife"]},V=[...T.transport,...T.services,...T.character],W=D.createContext({}),q=({children:e})=>{const t=p(),{sdkState:o}=b(),s=o.globalOptions?.locale||"en";u(()=>{t.postEvent({eventType:H.SDK_VIEWED}),t.trackAnalyticsEvent({eventName:$.SDK_VIEWED})});const{isLoading:i,data:a}=v({location:{lat:void 0===o.options?.geographyId?o.options?.lat:void 0,lng:void 0===o.options?.geographyId?o.options?.lng:void 0},externalId:o?.globalOptions?.externalId}),r=(0,D.useMemo)(()=>void 0!==o.options?.geographyId?o.options.geographyId:Object.keys(a||{})[0],[o.options?.geographyId,a]),{data:n,isFetching:l}=k({geogID:r,externalId:o.globalOptions?.externalId}),{data:c,isFetching:d}=C({geographyId:r,location:{},include:V}),g=(0,D.useMemo)(()=>i||l||d,[i,l,d]),h=(0,D.useMemo)(()=>({isLoading:g,title:o.options?.title,profilesData:n,scores:c?.geographies[0]?.scores,locale:s,hideAttribution:o.options?.hideAttribution}),[g,o.options?.title,n,c,s,o.options?.hideAttribution]);return(0,K.jsx)(W.Provider,{value:h,children:e})};function P(){const{t:e}=a(["neighborhoodCharacteristics","common"]),{lg:t}=y(),o=p(),{title:s,profilesData:i,scores:r,isLoading:n,locale:l,hideAttribution:c}=(0,D.useContext)(W),[d,g]=(0,D.useState)({transport:{title:e("sections.transport.title"),description:"",scores:[]},services:{title:e("sections.services.title"),description:"",scores:[]},character:{title:e("sections.character.title"),description:"",scores:[]}});(0,D.useEffect)(()=>{const t={...d};r&&Object.keys(t).forEach(o=>{t[o].description=i?.profiles[o]||"",t[o].scores=T[o].map(t=>({title:e(`common:scores.${t}.title`),scoreKey:t,value:Number(r[t]?.value),description:r[t]?.text||""})).filter(e=>e.value>0).sort((e,t)=>e.value<t.value?1:-1)}),g(t)},[i,r]);const h=e=>(t,s)=>{const i=s?"enabled":"disabled";o.postEvent({eventType:H.SCORE_CLICKED,eventAttributes:[{label:"category",data:e},{label:"score",data:t},{label:"state",data:i}]}),o.trackAnalyticsEvent({eventName:$.SCORE_CLICKED,eventAttributes:{ll_category:e,ll_score:t,ll_score_state:i}})};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(O,{title:"string"==typeof s||!1===s?s:e("title")}),(0,K.jsx)("div",{className:w,children:Object.entries(d).map(([e,o])=>(0,K.jsxs)(R,{className:"mb-9 lg:mb-0",isLoading:n,"data-testid":"score-section-root-header",children:[(0,K.jsx)(A,{children:o.title}),(0,K.jsx)(M,{children:o.description}),!t&&(0,K.jsx)("div",{className:"lg:hidden",children:(0,K.jsx)(S,{children:o.scores.map(t=>(0,K.jsx)(_,{title:t.title,scoreKey:t.scoreKey,value:t.value,description:t.description,onClick:h(e)},`score-section-mobile-${e}-${t.scoreKey}`))})})]},`score-section-1-${e}`))}),t&&(0,K.jsx)("div",{className:E(w,"hidden lg:grid"),children:Object.entries(d).map(([e,t])=>(0,K.jsx)(R,{isLoading:n,"data-testid":"score-section-root-desktop",children:(0,K.jsx)(S,{children:t.scores.map(t=>(0,K.jsx)(_,{title:t.title,scoreKey:t.scoreKey,value:t.value,description:t.description,onClick:h(e)},`score-section-desktop-${e}-${t.scoreKey}`))})},`score-section-2-${e}`))}),(0,K.jsx)(j,{sdkName:"neighborhood-characteristics",locale:l,isHidden:c})]})}var B=h({lat:s().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:s().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:i().optional(),title:r().optional(),hideAttribution:c().optional()}).noUnknown(!0);l(n.neighborhoodWrap.key);var F=()=>{const{sdkState:e}=b(),t=I(),s=e.globalOptions?.locale||"en",i=(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,K.jsx)(f,{children:(0,K.jsx)(x,{sdk:"Neighborhood Characteristics",schema:B,options:e.options,children:(0,K.jsx)(d,{environment:e.globalOptions?.environment?.api,apiKey:e.apiKey,appearance:e.globalOptions?.appearance,locale:e.globalOptions?.locale,product:g.NEIGHBORHOOD_CHARACTERISTICS,children:(0,K.jsx)(o,{trackingPipelineSettings:{apiKey:e.apiKey||""},analyticsSettings:n.neighborhoodWrap,meta:{clientId:e.clientId,productName:g.NEIGHBORHOOD_CHARACTERISTICS,productVersion:"1.24.44"},attributes:{location:i,host:e.location,host_url:document.referrer,locale:s,isMobile:t},flags:{isDebugMode:!1},children:(0,K.jsx)(q,{children:(0,K.jsx)(P,{})})})})})})};export{F as default};
|
|
2
|
+
//# sourceMappingURL=NeighborhoodCharacteristics-__nE9rKT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodCharacteristics-rVjVJZhq.js","names":[],"sources":["../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/styles.ts","../../src/sdks/NeighborhoodCharacteristics/types.ts","../../src/sdks/NeighborhoodCharacteristics/constants.ts","../../src/sdks/NeighborhoodCharacteristics/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/index.tsx","../../src/sdks/NeighborhoodCharacteristics/schema.ts","../../src/sdks/NeighborhoodCharacteristics/index.tsx"],"sourcesContent":["export const wrapper = `group/score-section text-gray-400`;\n","import React, { useContext } from \"react\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n children?: React.ReactNode;\n};\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nconst RootElementContextProvider = ({\n isLoading,\n children,\n}: DefaultContext) => {\n return (\n <RootElementContext.Provider\n value={{\n isLoading,\n }}\n >\n {children}\n </RootElementContext.Provider>\n );\n};\n\nexport { useRootElement, RootElementContextProvider };\n","export const title = `\n font-bold leading-6 mb-2\n`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const Title = ({ children }: { children: React.ReactNode }) => (\n <h3 data-testid=\"title\" className={styles.title}>\n {children}\n </h3>\n);\n","export const description = `\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\n\nimport * as styles from \"./styles\";\n\nexport const Description = ({ children }: { children?: string }) => {\n const { t } = useTranslation(\"neighborhoodCharacteristics\");\n const { isLoading } = useRootElement();\n\n const description = useMemo(() => children || t(\"noData\"), [children]);\n\n return (\n <p\n data-testid=\"description\"\n className={styles.description}\n data-empty={!children}\n >\n {!isLoading && description}\n </p>\n );\n};\n","import React from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport * as styles from \"./styles\";\nimport { RootElementContextProvider } from \"./context\";\n\nexport const Root = ({\n isLoading = false,\n className,\n children,\n ...rest\n}: {\n isLoading?: boolean;\n className?: string;\n children: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) => (\n <RootElementContextProvider isLoading={isLoading}>\n <div\n data-testid=\"score-section-root\"\n className={twMerge(styles.wrapper, className)}\n data-is-loading={isLoading}\n {...rest}\n >\n {children}\n </div>\n </RootElementContextProvider>\n);\n\n// Export children\nexport { Title } from \"./Title\";\nexport { Description } from \"./Description\";\n","export const content = `grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\n\nexport const root = `mb-9 lg:mb-0`;\nexport const mobileView = `lg:hidden`;\nexport const desktopView = `hidden lg:grid`;\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 hideAttribution?: boolean;\n};\n\nexport type NeighborhoodCharacteristicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-characteristics-Viewed\",\n SCORE_CLICKED = \"neighborhood-characteristics-Score-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 SCORE_CLICKED = \"score_clicked\",\n}\n","import { type Score } from \"./types\";\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 { type Profiles, type Scores } from \"@local-logic/client\";\nimport React, { useContext, useMemo } from \"react\";\nimport {\n type NeighborhoodCharacteristicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useProfiles } from \"~/features/clientLibrary/useProfiles\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodCharacteristicsProps[\"options\"][\"title\"];\n profilesData?: Profiles;\n scores?: Scores[\"location\"];\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst NeighborhoodCharacteristicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodCharacteristics = () =>\n useContext(NeighborhoodCharacteristicsContext);\n\nconst NeighborhoodCharacteristicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\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: profilesData, isFetching: isProfilesFetching } = useProfiles({\n geogID: geographyId,\n externalId: sdkState.globalOptions?.externalId,\n });\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isProfilesFetching || isScoresFetching,\n [isGeographyLoading, isProfilesFetching, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n profilesData,\n scores: scoresData?.geographies[0]?.scores,\n locale,\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n isLoading,\n sdkState.options?.title,\n profilesData,\n scoresData,\n locale,\n sdkState.options?.hideAttribution,\n ],\n );\n\n return (\n <NeighborhoodCharacteristicsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodCharacteristicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodCharacteristics, NeighborhoodCharacteristicsProvider };\n","import React, { useState, useEffect } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\nimport { useTranslation } from \"react-i18next\";\nimport * as ScoreSection from \"../ScoreSection\";\nimport * as styles from \"./styles\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodCharacteristics } from \"~/sdks/NeighborhoodCharacteristics/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\nimport { Attribution } from \"~/components/Attribution\";\nimport * as ScoreCardList from \"~/components/ScoreCardList\";\n\nimport {\n type Section,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodCharacteristics/types\";\n\nimport { sectionScores } from \"~/sdks/NeighborhoodCharacteristics/constants\";\n\ntype ScoreSectionType = {\n title: string;\n description: string;\n scores: ScoreCardList.CardProps[];\n};\n\nexport function Content() {\n const { t } = useTranslation([\"neighborhoodCharacteristics\", \"common\"]);\n const { lg: isDesktop } = useResponsiveBreakpoints();\n const tracking = useTracking();\n\n const { title, profilesData, scores, isLoading, locale, hideAttribution } =\n useNeighborhoodCharacteristics();\n\n const [scoreGroups, setScoreGroups] = useState<{\n [key in Section]: ScoreSectionType;\n }>({\n transport: {\n title: t(\"sections.transport.title\"),\n description: \"\",\n scores: [],\n },\n services: {\n title: t(\"sections.services.title\"),\n description: \"\",\n scores: [],\n },\n character: {\n title: t(\"sections.character.title\"),\n description: \"\",\n scores: [],\n },\n });\n\n useEffect(() => {\n const newScoreGroups = { ...scoreGroups };\n\n if (scores) {\n Object.keys(newScoreGroups).forEach((sectionKey) => {\n newScoreGroups[sectionKey as Section].description =\n profilesData?.profiles[sectionKey as Section] || \"\";\n\n newScoreGroups[sectionKey as Section].scores = sectionScores[\n sectionKey as Section\n ]\n .map((value) => ({\n title: t(`common:scores.${value}.title`),\n scoreKey: value,\n value: Number(scores[value]?.value),\n description: scores[value]?.text || \"\",\n }))\n .filter((score) => score.value > 0)\n .sort((a, b) => (a.value < b.value ? 1 : -1));\n });\n }\n\n setScoreGroups(newScoreGroups);\n }, [profilesData, scores]);\n\n const handleOnScoreClick =\n (category: string) => (score: string, isActive: boolean) => {\n const scoreState = isActive ? \"enabled\" : \"disabled\";\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SCORE_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n {\n label: \"score\",\n data: score,\n },\n {\n label: \"state\",\n data: scoreState,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SCORE_CLICKED,\n eventAttributes: {\n ll_category: category,\n ll_score: score,\n ll_score_state: scoreState,\n },\n });\n };\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <div className={styles.content}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-1-${key}`}\n className={styles.root}\n isLoading={isLoading}\n data-testid=\"score-section-root-header\"\n >\n <ScoreSection.Title>{value.title}</ScoreSection.Title>\n <ScoreSection.Description>\n {value.description}\n </ScoreSection.Description>\n {!isDesktop && (\n <div className={styles.mobileView}>\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-mobile-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </div>\n )}\n </ScoreSection.Root>\n ))}\n </div>\n\n {isDesktop && (\n <div className={twMerge(styles.content, styles.desktopView)}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-2-${key}`}\n isLoading={isLoading}\n data-testid=\"score-section-root-desktop\"\n >\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-desktop-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </ScoreSection.Root>\n ))}\n </div>\n )}\n\n <Attribution\n sdkName=\"neighborhood-characteristics\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </>\n );\n}\n","import { number, object, ObjectSchema, string, mixed, boolean } 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 hideAttribution: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodCharacteristicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodCharacteristicsProps } 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 NeighborhoodCharacteristics = () => {\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\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 Characteristics\"\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_CHARACTERISTICS}\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_CHARACTERISTICS,\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 <NeighborhoodCharacteristicsProvider>\n <Content />\n </NeighborhoodCharacteristicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodCharacteristics;\n"],"mappings":"s1BCOM,EAAA,EAA2B,cAC/B,CAAA,GAII,EAAA,EACJ,YACA,eAGE,EAAA,EAAA,KAAC,EAAmB,SAApB,CACE,MAAO,CACL,aAGD,aElBM,EAAA,EAAW,eACtB,EAAA,EAAA,KAAC,KAAD,CAAI,cAAY,QAAQ,UDLL,iCCMhB,aECQ,EAAA,EAAiB,eAC5B,MAAM,EAAE,GAAM,EAAe,gCACvB,UAAE,IJCJ,EAAA,EAAA,YAAkC,GIChC,GAAA,EAAA,EAAA,SAAA,IAA4B,GAAY,EAAE,UAAW,CAAC,IAE5D,OACE,EAAA,EAAA,KAAC,IAAD,CACE,cAAY,cACZ,UDhBqB,uSCiBrB,cAAa,YAEX,GAAa,KCZR,EAAA,EACX,aAAY,EACZ,YACA,cACG,MAMH,EAAA,EAAA,KAAC,EAAD,CAAuC,sBACrC,EAAA,EAAA,KAAC,MAAD,CACE,cAAY,qBACZ,UAAW,ENpBjB,oCMoByC,GACnC,kBAAiB,KACb,EAEH,eCxBM,EAAU,kDCiCX,EAAL,SAAA,UACL,EAAA,WAAa,sCACb,EAAA,cAAgB,+CAFX,KAOK,EAAL,SAAA,UACL,EAAA,WAAa,aACb,EAAA,cAAgB,kBAFX,KCtCM,EAAgB,CAC3B,UAAW,CACT,sBACA,eACA,mBACA,oBAEF,SAAU,CAAC,YAAa,WAAY,cAAe,SACnD,UAAW,CAAC,QAAS,QAAS,UAAW,cAG9B,EAAgB,IACxB,EAAc,aACd,EAAc,YACd,EAAc,WCSb,EAAA,EAA2C,cAC/C,CAAA,GAKI,EAAA,EACJ,eAIA,MAAM,EAAW,KACX,SAAE,GACN,IACI,EAAS,EAAS,eAAe,QAAU,KAEjD,EAAA,KACE,EAAS,UAAU,CACjB,UAAW,EAAuB,aAGpC,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,eAI/B,MAAQ,UAAW,EAAoB,KAAM,GAAkB,EAC7D,CACE,SAAU,CACR,SAC2C,IAAlC,EAAS,SAAS,YACrB,EAAS,SAAS,SAClB,EACN,SAC2C,IAAlC,EAAS,SAAS,YACrB,EAAS,SAAS,SAClB,GAER,WAAY,GAAU,eAAe,aAInC,GAAA,EAAA,EAAA,SAAA,SACyC,IAAlC,EAAS,SAAS,YACpB,EAAS,QAAQ,YAGnB,OAAO,KAAK,GAAiB,CAAA,GAAI,GACvC,CAAC,EAAS,SAAS,YAAa,KAE3B,KAAM,EAAc,WAAY,GAAuB,EAAY,CACzE,OAAQ,EACR,WAAY,EAAS,eAAe,cAE9B,KAAM,EAAY,WAAY,GAAqB,EAAU,CACnE,cACA,SAAU,CAAA,EACV,QAAS,IAGL,GAAA,EAAA,EAAA,SAAA,IACE,GAAsB,GAAsB,EAClD,CAAC,EAAoB,EAAoB,IAGrC,GAAA,EAAA,EAAA,SAAA,KAAA,CAEF,YACA,MAAO,EAAS,SAAS,MACzB,eACA,OAAQ,GAAY,YAAY,IAAI,OACpC,SACA,gBAAiB,EAAS,SAAS,kBAErC,CACE,EACA,EAAS,SAAS,MAClB,EACA,EACA,EACA,EAAS,SAAS,kBAItB,OACE,EAAA,EAAA,KAAC,EAAmC,SAApC,CAA6C,MAAO,EACjD,cCnFP,SAAgB,IACd,MAAM,EAAE,GAAM,EAAe,CAAC,8BAA+B,YACrD,GAAI,GAAc,IACpB,EAAW,KAEX,MAAE,EAAA,aAAO,EAAA,OAAc,EAAA,UAAQ,EAAA,OAAW,EAAA,gBAAQ,IDLpD,EAAA,EAAA,YACO,ICOJ,EAAa,IAAA,EAAA,EAAA,UAEjB,CACD,UAAW,CACT,MAAO,EAAE,4BACT,YAAa,GACb,OAAQ,IAEV,SAAU,CACR,MAAO,EAAE,2BACT,YAAa,GACb,OAAQ,IAEV,UAAW,CACT,MAAO,EAAE,4BACT,YAAa,GACb,OAAQ,OAIZ,EAAA,EAAA,WAAA,KACE,MAAM,EAAiB,IAAK,GAExB,GACF,OAAO,KAAK,GAAgB,QAAS,IACnC,EAAe,GAAuB,YACpC,GAAc,SAAS,IAA0B,GAEnD,EAAe,GAAuB,OAAS,EAC7C,GAEC,IAAK,IAAA,CACJ,MAAO,EAAE,iBAAiB,WAC1B,SAAU,EACV,MAAO,OAAO,EAAO,IAAQ,OAC7B,YAAa,EAAO,IAAQ,MAAQ,MAErC,OAAQ,GAAU,EAAM,MAAQ,GAChC,KAAA,CAAM,EAAG,IAAO,EAAE,MAAQ,EAAE,MAAQ,GAAI,KAI/C,EAAe,IACd,CAAC,EAAc,IAElB,MAAM,EACH,GAAA,CAAsB,EAAe,KACpC,MAAM,EAAa,EAAW,UAAY,WAE1C,EAAS,UAAU,CACjB,UAAW,EAAuB,cAClC,gBAAiB,CACf,CACE,MAAO,WACP,KAAM,GAER,CACE,MAAO,QACP,KAAM,GAER,CACE,MAAO,QACP,KAAM,MAKZ,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,cAC3B,gBAAiB,CACf,YAAa,EACb,SAAU,EACV,eAAgB,MAKxB,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAD,CACE,MACmB,iBAAV,IAAgC,IAAV,EAAkB,EAAQ,EAAE,YAI7D,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,WACb,OAAO,QAAQ,GAAa,IAAA,EAAM,EAAK,MACtC,EAAA,EAAA,MAAC,EAAD,CAEE,UJzHQ,eI0HG,YACX,cAAY,qCAJd,EAME,EAAA,EAAA,KAAC,EAAD,CAAA,SAAqB,EAAM,SAC3B,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,eAEP,IACA,EAAA,EAAA,KAAC,MAAD,CAAK,UJjIO,sBIkIV,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,OAAO,IAAK,IACjB,EAAA,EAAA,KAAC,EAAD,CAEE,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,MAAO,EAAM,MACb,YAAa,EAAM,YACnB,QAAS,EAAmB,IALvB,wBAAwB,KAAO,EAAM,mBAd/C,mBAAmB,QA6B7B,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAQ,EJpJL,2BIqJhB,OAAO,QAAQ,GAAa,IAAA,EAAM,EAAK,MACtC,EAAA,EAAA,KAAC,EAAD,CAEa,YACX,cAAY,uCAEZ,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,OAAO,IAAK,IACjB,EAAA,EAAA,KAAC,EAAD,CAEE,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,MAAO,EAAM,MACb,YAAa,EAAM,YACnB,QAAS,EAAmB,IALvB,yBAAyB,KAAO,EAAM,gBAP5C,mBAAmB,SAqBhC,EAAA,EAAA,KAAC,EAAD,CACE,QAAQ,+BACA,SACR,SAAU,OClLlB,IAAa,EAAgC,EAAO,CAClD,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,MAAO,IAA0B,WACjC,gBAAiB,IAAU,aAC1B,WAAU,GCLb,EAAoB,EAAmB,iBAAiB,KAExD,IAAM,EAAA,KACJ,MAAM,SAAE,GACN,IACI,EAAW,IACX,EAAS,EAAS,eAAe,QAAU,KAE3C,GAAA,EAAA,EAAA,SAAA,IACA,EAAS,SAAS,YACb,CACL,YAAa,EAAS,SAAS,aAI5B,CACL,IAAK,EAAS,SAAS,IACvB,IAAK,EAAS,SAAS,KAExB,CACD,EAAS,SAAS,IAClB,EAAS,SAAS,IAClB,EAAS,SAAS,cAGpB,OACE,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CACE,IAAI,+BACI,SACR,QAAS,EAAS,kBAElB,EAAA,EAAA,KAAC,EAAD,CACE,YAAa,EAAS,eAAe,aAAa,IAClD,OAAQ,EAAS,OACjB,WAAY,EAAS,eAAe,WACpC,OAAQ,EAAS,eAAe,OAChC,QAAS,EAAa,uCAEtB,EAAA,EAAA,KAAC,EAAD,CACE,yBAA0B,CACxB,OAAQ,EAAS,QAAU,IAE7B,kBAAmB,EAAmB,iBACtC,KAAM,CACJ,SAAU,EAAS,SACnB,YAAa,EAAa,6BAC1B,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":"NeighborhoodCharacteristics-__nE9rKT.js","names":[],"sources":["../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/styles.ts","../../src/sdks/NeighborhoodCharacteristics/types.ts","../../src/sdks/NeighborhoodCharacteristics/constants.ts","../../src/sdks/NeighborhoodCharacteristics/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/index.tsx","../../src/sdks/NeighborhoodCharacteristics/schema.ts","../../src/sdks/NeighborhoodCharacteristics/index.tsx"],"sourcesContent":["export const wrapper = `group/score-section text-gray-400`;\n","import React, { useContext } from \"react\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n children?: React.ReactNode;\n};\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nconst RootElementContextProvider = ({\n isLoading,\n children,\n}: DefaultContext) => {\n return (\n <RootElementContext.Provider\n value={{\n isLoading,\n }}\n >\n {children}\n </RootElementContext.Provider>\n );\n};\n\nexport { useRootElement, RootElementContextProvider };\n","export const title = `\n font-bold leading-6 mb-2\n`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const Title = ({ children }: { children: React.ReactNode }) => (\n <h3 data-testid=\"title\" className={styles.title}>\n {children}\n </h3>\n);\n","export const description = `\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\n\nimport * as styles from \"./styles\";\n\nexport const Description = ({ children }: { children?: string }) => {\n const { t } = useTranslation(\"neighborhoodCharacteristics\");\n const { isLoading } = useRootElement();\n\n const description = useMemo(() => children || t(\"noData\"), [children]);\n\n return (\n <p\n data-testid=\"description\"\n className={styles.description}\n data-empty={!children}\n >\n {!isLoading && description}\n </p>\n );\n};\n","import React from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport * as styles from \"./styles\";\nimport { RootElementContextProvider } from \"./context\";\n\nexport const Root = ({\n isLoading = false,\n className,\n children,\n ...rest\n}: {\n isLoading?: boolean;\n className?: string;\n children: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) => (\n <RootElementContextProvider isLoading={isLoading}>\n <div\n data-testid=\"score-section-root\"\n className={twMerge(styles.wrapper, className)}\n data-is-loading={isLoading}\n {...rest}\n >\n {children}\n </div>\n </RootElementContextProvider>\n);\n\n// Export children\nexport { Title } from \"./Title\";\nexport { Description } from \"./Description\";\n","export const content = `grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\n\nexport const root = `mb-9 lg:mb-0`;\nexport const mobileView = `lg:hidden`;\nexport const desktopView = `hidden lg:grid`;\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 hideAttribution?: boolean;\n};\n\nexport type NeighborhoodCharacteristicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-characteristics-Viewed\",\n SCORE_CLICKED = \"neighborhood-characteristics-Score-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 SCORE_CLICKED = \"score_clicked\",\n}\n","import { type Score } from \"./types\";\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 { type Profiles, type Scores } from \"@local-logic/client\";\nimport React, { useContext, useMemo } from \"react\";\nimport {\n type NeighborhoodCharacteristicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useProfiles } from \"~/features/clientLibrary/useProfiles\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodCharacteristicsProps[\"options\"][\"title\"];\n profilesData?: Profiles;\n scores?: Scores[\"location\"];\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst NeighborhoodCharacteristicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodCharacteristics = () =>\n useContext(NeighborhoodCharacteristicsContext);\n\nconst NeighborhoodCharacteristicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\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: profilesData, isFetching: isProfilesFetching } = useProfiles({\n geogID: geographyId,\n externalId: sdkState.globalOptions?.externalId,\n });\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isProfilesFetching || isScoresFetching,\n [isGeographyLoading, isProfilesFetching, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n profilesData,\n scores: scoresData?.geographies[0]?.scores,\n locale,\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n isLoading,\n sdkState.options?.title,\n profilesData,\n scoresData,\n locale,\n sdkState.options?.hideAttribution,\n ],\n );\n\n return (\n <NeighborhoodCharacteristicsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodCharacteristicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodCharacteristics, NeighborhoodCharacteristicsProvider };\n","import React, { useState, useEffect } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\nimport { useTranslation } from \"react-i18next\";\nimport * as ScoreSection from \"../ScoreSection\";\nimport * as styles from \"./styles\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodCharacteristics } from \"~/sdks/NeighborhoodCharacteristics/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\nimport { Attribution } from \"~/components/Attribution\";\nimport * as ScoreCardList from \"~/components/ScoreCardList\";\n\nimport {\n type Section,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodCharacteristics/types\";\n\nimport { sectionScores } from \"~/sdks/NeighborhoodCharacteristics/constants\";\n\ntype ScoreSectionType = {\n title: string;\n description: string;\n scores: ScoreCardList.CardProps[];\n};\n\nexport function Content() {\n const { t } = useTranslation([\"neighborhoodCharacteristics\", \"common\"]);\n const { lg: isDesktop } = useResponsiveBreakpoints();\n const tracking = useTracking();\n\n const { title, profilesData, scores, isLoading, locale, hideAttribution } =\n useNeighborhoodCharacteristics();\n\n const [scoreGroups, setScoreGroups] = useState<{\n [key in Section]: ScoreSectionType;\n }>({\n transport: {\n title: t(\"sections.transport.title\"),\n description: \"\",\n scores: [],\n },\n services: {\n title: t(\"sections.services.title\"),\n description: \"\",\n scores: [],\n },\n character: {\n title: t(\"sections.character.title\"),\n description: \"\",\n scores: [],\n },\n });\n\n useEffect(() => {\n const newScoreGroups = { ...scoreGroups };\n\n if (scores) {\n Object.keys(newScoreGroups).forEach((sectionKey) => {\n newScoreGroups[sectionKey as Section].description =\n profilesData?.profiles[sectionKey as Section] || \"\";\n\n newScoreGroups[sectionKey as Section].scores = sectionScores[\n sectionKey as Section\n ]\n .map((value) => ({\n title: t(`common:scores.${value}.title`),\n scoreKey: value,\n value: Number(scores[value]?.value),\n description: scores[value]?.text || \"\",\n }))\n .filter((score) => score.value > 0)\n .sort((a, b) => (a.value < b.value ? 1 : -1));\n });\n }\n\n setScoreGroups(newScoreGroups);\n }, [profilesData, scores]);\n\n const handleOnScoreClick =\n (category: string) => (score: string, isActive: boolean) => {\n const scoreState = isActive ? \"enabled\" : \"disabled\";\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SCORE_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n {\n label: \"score\",\n data: score,\n },\n {\n label: \"state\",\n data: scoreState,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SCORE_CLICKED,\n eventAttributes: {\n ll_category: category,\n ll_score: score,\n ll_score_state: scoreState,\n },\n });\n };\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <div className={styles.content}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-1-${key}`}\n className={styles.root}\n isLoading={isLoading}\n data-testid=\"score-section-root-header\"\n >\n <ScoreSection.Title>{value.title}</ScoreSection.Title>\n <ScoreSection.Description>\n {value.description}\n </ScoreSection.Description>\n {!isDesktop && (\n <div className={styles.mobileView}>\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-mobile-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </div>\n )}\n </ScoreSection.Root>\n ))}\n </div>\n\n {isDesktop && (\n <div className={twMerge(styles.content, styles.desktopView)}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-2-${key}`}\n isLoading={isLoading}\n data-testid=\"score-section-root-desktop\"\n >\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-desktop-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </ScoreSection.Root>\n ))}\n </div>\n )}\n\n <Attribution\n sdkName=\"neighborhood-characteristics\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </>\n );\n}\n","import { number, object, ObjectSchema, string, mixed, boolean } 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 hideAttribution: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodCharacteristicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodCharacteristicsProps } 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 NeighborhoodCharacteristics = () => {\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\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 Characteristics\"\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_CHARACTERISTICS}\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_CHARACTERISTICS,\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 <NeighborhoodCharacteristicsProvider>\n <Content />\n </NeighborhoodCharacteristicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodCharacteristics;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){const e=["isLoading","className","children"];function t(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,o)}return i}function i(e){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?t(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(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 o=i.call(e,t||"default");if("object"!=typeof o)return o;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-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodCharacteristics-legacy-
|
|
1
|
+
!function(){const e=["isLoading","className","children"];function t(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,o)}return i}function i(e){for(var i=1;i<arguments.length;i++){var n=null!=arguments[i]?arguments[i]:{};i%2?t(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(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 o=i.call(e,t||"default");if("object"!=typeof o)return o;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-3sJ2n28B.js","./index-legacy-CYps6nGB.js","./useGeographies-legacy-B5ciev2M.js","./useResponsiveBreakpoints-legacy-CHMcuyvR.js","./Attribution-legacy-DSXG-3Q0.js","./globals-legacy-BkBmZmLf.js","./ResizeWrapper-legacy-C0ua6RC5.js","./ValidateOptions-legacy-BQ69tin-.js","./useIsMobile-legacy-B53LlWR8.js","./useScores-legacy-BludORUw.js","./bundle-mjs-legacy-Oe_TmErs.js","./TitleHeader-legacy-CzXSoMFC.js","./useProfiles-legacy-DF0NXWwe.js","./ScoreCardList-legacy-BTRPIWUP.js"],function(t,o){var n,r,s,l,a,c,d,u,p,g,v,h,y,f,b,m,j,O,x,I,E,C,S,D,k,w,_,K,N,P,L,A,M,R,H,T,$,V,W,q,B,F,G,z,U,J,Q,X,Y;function Z(){const{t:e}=c(["neighborhoodCharacteristics","common"]),{lg:t}=x(),o=h(),{title:n,profilesData:r,scores:s,isLoading:l,locale:a,hideAttribution:d}=Q(),[u,p]=(0,P.useState)({transport:{title:e("sections.transport.title"),description:"",scores:[]},services:{title:e("sections.services.title"),description:"",scores:[]},character:{title:e("sections.character.title"),description:"",scores:[]}});(0,P.useEffect)(()=>{const t=i({},u);s&&Object.keys(t).forEach(i=>{t[i].description=(null==r?void 0:r.profiles[i])||"",t[i].scores=z[i].map(t=>{var i,o;return{title:e(`common:scores.${t}.title`),scoreKey:t,value:Number(null===(i=s[t])||void 0===i?void 0:i.value),description:(null===(o=s[t])||void 0===o?void 0:o.text)||""}}).filter(e=>e.value>0).sort((e,t)=>e.value<t.value?1:-1)}),p(t)},[r,s]);const g=e=>(t,i)=>{const n=i?"enabled":"disabled";o.postEvent({eventType:F.SCORE_CLICKED,eventAttributes:[{label:"category",data:e},{label:"score",data:t},{label:"state",data:n}]}),o.trackAnalyticsEvent({eventName:G.SCORE_CLICKED,eventAttributes:{ll_category:e,ll_score:t,ll_score_state:n}})};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(w,{title:"string"==typeof n||!1===n?n:e("title")}),(0,L.jsx)("div",{className:V,children:Object.entries(u).map(([e,i])=>(0,L.jsxs)($,{className:W,isLoading:l,"data-testid":"score-section-root-header",children:[(0,L.jsx)(H,{children:i.title}),(0,L.jsx)(T,{children:i.description}),!t&&(0,L.jsx)("div",{className:q,children:(0,L.jsx)(N,{children:i.scores.map(t=>(0,L.jsx)(K,{title:t.title,scoreKey:t.scoreKey,value:t.value,description:t.description,onClick:g(e)},`score-section-mobile-${e}-${t.scoreKey}`))})})]},`score-section-1-${e}`))}),t&&(0,L.jsx)("div",{className:k(V,B),children:Object.entries(u).map(([e,t])=>(0,L.jsx)($,{isLoading:l,"data-testid":"score-section-root-desktop",children:(0,L.jsx)(N,{children:t.scores.map(t=>(0,L.jsx)(K,{title:t.title,scoreKey:t.scoreKey,value:t.value,description:t.description,onClick:g(e)},`score-section-desktop-${e}-${t.scoreKey}`))})},`score-section-2-${e}`))}),(0,L.jsx)(I,{sdkName:"neighborhood-characteristics",locale:a,isHidden:d})]})}return{setters:[function(e){n=e.a},function(e){r=e.l},function(e){s=e.a,l=e.d,a=e.f,c=e.g,d=e.m,u=e.n,p=e.o,g=e.p,v=e.r,h=e.s,y=e.t,f=e.u},function(e){b=e.q,m=e.r,j=e.t},function(e){O=e.t},function(e){x=e.t},function(e){I=e.t},function(e){},function(e){E=e.t},function(e){C=e.t},function(e){S=e.t},function(e){D=e.t},function(e){k=e.t},function(e){w=e.t},function(e){_=e.t},function(e){K=e.n,N=e.t}],execute:function(){P=n(r(),1),L=b(),A=P.createContext({}),M=()=>(0,P.useContext)(A),R=({isLoading:e,children:t})=>(0,L.jsx)(A.Provider,{value:{isLoading:e},children:t}),H=({children:e})=>(0,L.jsx)("h3",{"data-testid":"title",className:"\n font-bold leading-6 mb-2\n",children:e}),T=({children:e})=>{const{t:t}=c("neighborhoodCharacteristics"),{isLoading:i}=M(),o=(0,P.useMemo)(()=>e||t("noData"),[e]);return(0,L.jsx)("p",{"data-testid":"description",className:"\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n","data-empty":!e,children:!i&&o})},$=t=>{let{isLoading:o=!1,className:n,children:r}=t,s=function(e,t){if(null==e)return{};var i,o,n=function(e,t){if(null==e)return{};var i={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;i[o]=e[o]}return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)i=r[o],-1===t.indexOf(i)&&{}.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}(t,e);return(0,L.jsx)(R,{isLoading:o,children:(0,L.jsx)("div",i(i({"data-testid":"score-section-root",className:k("group/score-section text-gray-400",n),"data-is-loading":o},s),{},{children:r}))})},V="grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8",W="mb-9 lg:mb-0",q="lg:hidden",B="hidden lg:grid",F=function(e){return e.SDK_VIEWED="neighborhood-characteristics-Viewed",e.SCORE_CLICKED="neighborhood-characteristics-Score-Clicked",e}({}),G=function(e){return e.SDK_VIEWED="sdk_viewed",e.SCORE_CLICKED="score_clicked",e}({}),U=[...(z={transport:["pedestrian_friendly","car_friendly","transit_friendly","cycling_friendly"],services:["groceries","shopping","restaurants","cafes"],character:["quiet","parks","vibrant","nightlife"]}).transport,...z.services,...z.character],J=P.createContext({}),Q=()=>(0,P.useContext)(J),X=({children:e})=>{var t,i,o,n,r,s,l,a,c,d;const u=h(),{sdkState:p}=j(),g=(null===(t=p.globalOptions)||void 0===t?void 0:t.locale)||"en";m(()=>{u.postEvent({eventType:F.SDK_VIEWED}),u.trackAnalyticsEvent({eventName:G.SDK_VIEWED})});const{isLoading:v,data:y}=O({location:{lat:void 0===(null===(i=p.options)||void 0===i?void 0:i.geographyId)?null===(o=p.options)||void 0===o?void 0:o.lat:void 0,lng:void 0===(null===(n=p.options)||void 0===n?void 0:n.geographyId)?null===(r=p.options)||void 0===r?void 0:r.lng:void 0},externalId:null==p||null===(s=p.globalOptions)||void 0===s?void 0:s.externalId}),f=(0,P.useMemo)(()=>{var e;return void 0!==(null===(e=p.options)||void 0===e?void 0:e.geographyId)?p.options.geographyId:Object.keys(y||{})[0]},[null===(l=p.options)||void 0===l?void 0:l.geographyId,y]),{data:b,isFetching:x}=_({geogID:f,externalId:null===(a=p.globalOptions)||void 0===a?void 0:a.externalId}),{data:I,isFetching:E}=D({geographyId:f,location:{},include:U}),C=(0,P.useMemo)(()=>v||x||E,[v,x,E]),S=(0,P.useMemo)(()=>{var e,t,i;return{isLoading:C,title:null===(e=p.options)||void 0===e?void 0:e.title,profilesData:b,scores:null==I||null===(t=I.geographies[0])||void 0===t?void 0:t.scores,locale:g,hideAttribution:null===(i=p.options)||void 0===i?void 0:i.hideAttribution}},[C,null===(c=p.options)||void 0===c?void 0:c.title,b,I,g,null===(d=p.options)||void 0===d?void 0:d.hideAttribution]);return(0,L.jsx)(J.Provider,{value:S,children:e})},Y=f({lat:l().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:l().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(),title:d().optional(),hideAttribution:g().optional()}).noUnknown(!0),p(u.neighborhoodWrap.key),t("default",()=>{var e,t,i,o,n,r,l;const{sdkState:a}=j(),c=S(),d=(null===(e=a.globalOptions)||void 0===e?void 0:e.locale)||"en",p=(0,P.useMemo)(()=>{var e,t,i,o;return null!==(e=a.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=a.options)||void 0===t?void 0:t.geographyId}:{lat:null===(i=a.options)||void 0===i?void 0:i.lat,lng:null===(o=a.options)||void 0===o?void 0:o.lng}},[null===(t=a.options)||void 0===t?void 0:t.lat,null===(i=a.options)||void 0===i?void 0:i.lng,null===(o=a.options)||void 0===o?void 0:o.geographyId]);return(0,L.jsx)(E,{children:(0,L.jsx)(C,{sdk:"Neighborhood Characteristics",schema:Y,options:a.options,children:(0,L.jsx)(v,{environment:null===(n=a.globalOptions)||void 0===n||null===(n=n.environment)||void 0===n?void 0:n.api,apiKey:a.apiKey,appearance:null===(r=a.globalOptions)||void 0===r?void 0:r.appearance,locale:null===(l=a.globalOptions)||void 0===l?void 0:l.locale,product:y.NEIGHBORHOOD_CHARACTERISTICS,children:(0,L.jsx)(s,{trackingPipelineSettings:{apiKey:a.apiKey||""},analyticsSettings:u.neighborhoodWrap,meta:{clientId:a.clientId,productName:y.NEIGHBORHOOD_CHARACTERISTICS,productVersion:"1.24.44"},attributes:{location:p,host:a.location,host_url:document.referrer,locale:d,isMobile:c},flags:{isDebugMode:!1},children:(0,L.jsx)(X,{children:(0,L.jsx)(Z,{})})})})})})})}}})}();
|
|
2
|
+
//# sourceMappingURL=NeighborhoodCharacteristics-legacy-zcamdTX5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodCharacteristics-legacy-N-y878TT.js","names":[],"sources":["../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/styles.ts","../../src/sdks/NeighborhoodCharacteristics/types.ts","../../src/sdks/NeighborhoodCharacteristics/constants.ts","../../src/sdks/NeighborhoodCharacteristics/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/index.tsx","../../src/sdks/NeighborhoodCharacteristics/schema.ts","../../src/sdks/NeighborhoodCharacteristics/index.tsx"],"sourcesContent":["export const wrapper = `group/score-section text-gray-400`;\n","import React, { useContext } from \"react\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n children?: React.ReactNode;\n};\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nconst RootElementContextProvider = ({\n isLoading,\n children,\n}: DefaultContext) => {\n return (\n <RootElementContext.Provider\n value={{\n isLoading,\n }}\n >\n {children}\n </RootElementContext.Provider>\n );\n};\n\nexport { useRootElement, RootElementContextProvider };\n","export const title = `\n font-bold leading-6 mb-2\n`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const Title = ({ children }: { children: React.ReactNode }) => (\n <h3 data-testid=\"title\" className={styles.title}>\n {children}\n </h3>\n);\n","export const description = `\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\n\nimport * as styles from \"./styles\";\n\nexport const Description = ({ children }: { children?: string }) => {\n const { t } = useTranslation(\"neighborhoodCharacteristics\");\n const { isLoading } = useRootElement();\n\n const description = useMemo(() => children || t(\"noData\"), [children]);\n\n return (\n <p\n data-testid=\"description\"\n className={styles.description}\n data-empty={!children}\n >\n {!isLoading && description}\n </p>\n );\n};\n","import React from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport * as styles from \"./styles\";\nimport { RootElementContextProvider } from \"./context\";\n\nexport const Root = ({\n isLoading = false,\n className,\n children,\n ...rest\n}: {\n isLoading?: boolean;\n className?: string;\n children: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) => (\n <RootElementContextProvider isLoading={isLoading}>\n <div\n data-testid=\"score-section-root\"\n className={twMerge(styles.wrapper, className)}\n data-is-loading={isLoading}\n {...rest}\n >\n {children}\n </div>\n </RootElementContextProvider>\n);\n\n// Export children\nexport { Title } from \"./Title\";\nexport { Description } from \"./Description\";\n","export const content = `grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\n\nexport const root = `mb-9 lg:mb-0`;\nexport const mobileView = `lg:hidden`;\nexport const desktopView = `hidden lg:grid`;\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 hideAttribution?: boolean;\n};\n\nexport type NeighborhoodCharacteristicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-characteristics-Viewed\",\n SCORE_CLICKED = \"neighborhood-characteristics-Score-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 SCORE_CLICKED = \"score_clicked\",\n}\n","import { type Score } from \"./types\";\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 { type Profiles, type Scores } from \"@local-logic/client\";\nimport React, { useContext, useMemo } from \"react\";\nimport {\n type NeighborhoodCharacteristicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useProfiles } from \"~/features/clientLibrary/useProfiles\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodCharacteristicsProps[\"options\"][\"title\"];\n profilesData?: Profiles;\n scores?: Scores[\"location\"];\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst NeighborhoodCharacteristicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodCharacteristics = () =>\n useContext(NeighborhoodCharacteristicsContext);\n\nconst NeighborhoodCharacteristicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\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: profilesData, isFetching: isProfilesFetching } = useProfiles({\n geogID: geographyId,\n externalId: sdkState.globalOptions?.externalId,\n });\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isProfilesFetching || isScoresFetching,\n [isGeographyLoading, isProfilesFetching, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n profilesData,\n scores: scoresData?.geographies[0]?.scores,\n locale,\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n isLoading,\n sdkState.options?.title,\n profilesData,\n scoresData,\n locale,\n sdkState.options?.hideAttribution,\n ],\n );\n\n return (\n <NeighborhoodCharacteristicsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodCharacteristicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodCharacteristics, NeighborhoodCharacteristicsProvider };\n","import React, { useState, useEffect } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\nimport { useTranslation } from \"react-i18next\";\nimport * as ScoreSection from \"../ScoreSection\";\nimport * as styles from \"./styles\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodCharacteristics } from \"~/sdks/NeighborhoodCharacteristics/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\nimport { Attribution } from \"~/components/Attribution\";\nimport * as ScoreCardList from \"~/components/ScoreCardList\";\n\nimport {\n type Section,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodCharacteristics/types\";\n\nimport { sectionScores } from \"~/sdks/NeighborhoodCharacteristics/constants\";\n\ntype ScoreSectionType = {\n title: string;\n description: string;\n scores: ScoreCardList.CardProps[];\n};\n\nexport function Content() {\n const { t } = useTranslation([\"neighborhoodCharacteristics\", \"common\"]);\n const { lg: isDesktop } = useResponsiveBreakpoints();\n const tracking = useTracking();\n\n const { title, profilesData, scores, isLoading, locale, hideAttribution } =\n useNeighborhoodCharacteristics();\n\n const [scoreGroups, setScoreGroups] = useState<{\n [key in Section]: ScoreSectionType;\n }>({\n transport: {\n title: t(\"sections.transport.title\"),\n description: \"\",\n scores: [],\n },\n services: {\n title: t(\"sections.services.title\"),\n description: \"\",\n scores: [],\n },\n character: {\n title: t(\"sections.character.title\"),\n description: \"\",\n scores: [],\n },\n });\n\n useEffect(() => {\n const newScoreGroups = { ...scoreGroups };\n\n if (scores) {\n Object.keys(newScoreGroups).forEach((sectionKey) => {\n newScoreGroups[sectionKey as Section].description =\n profilesData?.profiles[sectionKey as Section] || \"\";\n\n newScoreGroups[sectionKey as Section].scores = sectionScores[\n sectionKey as Section\n ]\n .map((value) => ({\n title: t(`common:scores.${value}.title`),\n scoreKey: value,\n value: Number(scores[value]?.value),\n description: scores[value]?.text || \"\",\n }))\n .filter((score) => score.value > 0)\n .sort((a, b) => (a.value < b.value ? 1 : -1));\n });\n }\n\n setScoreGroups(newScoreGroups);\n }, [profilesData, scores]);\n\n const handleOnScoreClick =\n (category: string) => (score: string, isActive: boolean) => {\n const scoreState = isActive ? \"enabled\" : \"disabled\";\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SCORE_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n {\n label: \"score\",\n data: score,\n },\n {\n label: \"state\",\n data: scoreState,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SCORE_CLICKED,\n eventAttributes: {\n ll_category: category,\n ll_score: score,\n ll_score_state: scoreState,\n },\n });\n };\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <div className={styles.content}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-1-${key}`}\n className={styles.root}\n isLoading={isLoading}\n data-testid=\"score-section-root-header\"\n >\n <ScoreSection.Title>{value.title}</ScoreSection.Title>\n <ScoreSection.Description>\n {value.description}\n </ScoreSection.Description>\n {!isDesktop && (\n <div className={styles.mobileView}>\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-mobile-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </div>\n )}\n </ScoreSection.Root>\n ))}\n </div>\n\n {isDesktop && (\n <div className={twMerge(styles.content, styles.desktopView)}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-2-${key}`}\n isLoading={isLoading}\n data-testid=\"score-section-root-desktop\"\n >\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-desktop-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </ScoreSection.Root>\n ))}\n </div>\n )}\n\n <Attribution\n sdkName=\"neighborhood-characteristics\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </>\n );\n}\n","import { number, object, ObjectSchema, string, mixed, boolean } 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 hideAttribution: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodCharacteristicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodCharacteristicsProps } 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 NeighborhoodCharacteristics = () => {\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\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 Characteristics\"\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_CHARACTERISTICS}\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_CHARACTERISTICS,\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 <NeighborhoodCharacteristicsProvider>\n <Content />\n </NeighborhoodCharacteristicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodCharacteristics;\n"],"mappings":"qvDW4BA,SAAgB,IACd,MAAM,EAAE,GAAM,EAAe,CAAC,8BAA+B,YACrD,GAAI,GAAc,IACpB,EAAW,KAEX,MAAE,EAAA,aAAO,EAAA,OAAc,EAAA,UAAQ,EAAA,OAAW,EAAA,gBAAQ,GACtD,KAEK,EAAa,IAAA,EAAA,EAAA,UAEjB,CACD,UAAW,CACT,MAAO,EAAE,4BACT,YAAa,GACb,OAAQ,IAEV,SAAU,CACR,MAAO,EAAE,2BACT,YAAa,GACb,OAAQ,IAEV,UAAW,CACT,MAAO,EAAE,4BACT,YAAa,GACb,OAAQ,OAIZ,EAAA,EAAA,WAAA,KACE,MAAM,EAAA,EAAA,CAAA,EAAsB,GAExB,GACF,OAAO,KAAK,GAAgB,QAAS,IACnC,EAAe,GAAuB,aACpC,aAAA,EAAA,EAAc,SAAS,KAA0B,GAEnD,EAAe,GAAuB,OAAS,EAC7C,GAEC,IAAK,IAAA,IAAA,EAAA,EAAA,MAAW,CACf,MAAO,EAAE,iBAAiB,WAC1B,SAAU,EACV,MAAO,OAAc,QAAd,EAAO,EAAO,UAAA,IAAA,OAAA,EAAP,EAAe,OAC7B,aAAoB,QAAP,EAAA,EAAO,UAAA,IAAA,OAAA,EAAP,EAAe,OAAQ,MAErC,OAAQ,GAAU,EAAM,MAAQ,GAChC,KAAA,CAAM,EAAG,IAAO,EAAE,MAAQ,EAAE,MAAQ,GAAI,KAI/C,EAAe,IACd,CAAC,EAAc,IAElB,MAAM,EACH,GAAA,CAAsB,EAAe,KACpC,MAAM,EAAa,EAAW,UAAY,WAE1C,EAAS,UAAU,CACjB,UAAW,EAAuB,cAClC,gBAAiB,CACf,CACE,MAAO,WACP,KAAM,GAER,CACE,MAAO,QACP,KAAM,GAER,CACE,MAAO,QACP,KAAM,MAKZ,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,cAC3B,gBAAiB,CACf,YAAa,EACb,SAAU,EACV,eAAgB,MAKxB,OACE,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,EAAD,CACE,MACmB,iBAAV,IAAgC,IAAV,EAAkB,EAAQ,EAAE,YAI7D,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,WACb,OAAO,QAAQ,GAAa,IAAA,EAAM,EAAK,MACtC,EAAA,EAAA,MAAC,EAAD,CAEE,UAAW,EACA,YACX,cAAY,qCAJd,EAME,EAAA,EAAA,KAAC,EAAD,CAAA,SAAqB,EAAM,SAC3B,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,eAEP,IACA,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,YACd,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,OAAO,IAAK,IACjB,EAAA,EAAA,KAAC,EAAD,CAEE,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,MAAO,EAAM,MACb,YAAa,EAAM,YACnB,QAAS,EAAmB,IALvB,wBAAwB,KAAO,EAAM,mBAd/C,mBAAmB,QA6B7B,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAQ,EAAgB,YACrC,OAAO,QAAQ,GAAa,IAAA,EAAM,EAAK,MACtC,EAAA,EAAA,KAAC,EAAD,CAEa,YACX,cAAY,uCAEZ,EAAA,EAAA,KAAC,EAAD,CAAA,SACG,EAAM,OAAO,IAAK,IACjB,EAAA,EAAA,KAAC,EAAD,CAEE,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,MAAO,EAAM,MACb,YAAa,EAAM,YACnB,QAAS,EAAmB,IALvB,yBAAyB,KAAO,EAAM,gBAP5C,mBAAmB,SAqBhC,EAAA,EAAA,KAAC,EAAD,CACE,QAAQ,+BACA,SACR,SAAU,2bV9KZ,EAAA,EAA2B,cAC/B,CAAA,GAEI,EAAA,KAAA,EAAA,EAAA,YAAkC,GAElC,EAAA,EACJ,YACA,eAGE,EAAA,EAAA,KAAC,EAAmB,SAApB,CACE,MAAO,CACL,aAGD,aElBM,EAAA,EAAW,eACtB,EAAA,EAAA,KAAC,KAAD,CAAI,cAAY,QAAQ,UDLL,iCCMhB,aECQ,EAAA,EAAiB,eAC5B,MAAM,EAAE,GAAM,EAAe,gCACvB,UAAE,GAAc,IAEhB,GAAA,EAAA,EAAA,SAAA,IAA4B,GAAY,EAAE,UAAW,CAAC,IAE5D,OACE,EAAA,EAAA,KAAC,IAAD,CACE,cAAY,cACZ,UDhBqB,uSCiBrB,cAAa,YAEX,GAAa,KCZR,EAAA,IAAA,IAAQ,UACnB,GAAY,EAAA,UACZ,EAAA,SACA,GACG,EAAA,+WAAA,CAAA,EAAA,GAAA,OAMH,EAAA,EAAA,KAAC,EAAD,CAAuC,sBACrC,EAAA,EAAA,KAAC,MAAA,EAAA,EAAA,CACC,cAAY,qBACZ,UAAW,ENpBjB,oCMoByC,GACnC,kBAAiB,GACb,GAAA,CAAA,EAAA,CAEH,iBCxBM,EAAU,kDAIV,EAAO,eACP,EAAa,YACb,EAAc,iBC2Bf,EAAL,SAAA,UACL,EAAA,WAAa,sCACb,EAAA,cAAgB,+CAFX,KAOK,EAAL,SAAA,UACL,EAAA,WAAa,aACb,EAAA,cAAgB,kBAFX,KC3BM,EAAgB,KAXhB,EAAgB,CAC3B,UAAW,CACT,sBACA,eACA,mBACA,oBAEF,SAAU,CAAC,YAAa,WAAY,cAAe,SACnD,UAAW,CAAC,QAAS,QAAS,UAAW,eAIxB,aACd,EAAc,YACd,EAAc,WCSb,EAAA,EAA2C,cAC/C,CAAA,GAEI,EAAA,KAAA,EAAA,EAAA,YACO,GAEP,EAAA,EACJ,eAGI,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACJ,MAAM,EAAW,KACX,SAAE,GACN,IACI,GAAkB,QAAT,EAAA,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,SAAU,KAEjD,EAAA,KACE,EAAS,UAAU,CACjB,UAAW,EAAuB,aAGpC,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,eAI/B,MAAQ,UAAW,EAAoB,KAAM,GAAkB,EAC7D,CACE,SAAU,CACR,SAC2C,KAAzB,QAAhB,EAAO,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,aACZ,QAD4B,EACrC,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,SAClB,EACN,SAC2C,KAAzB,QAAhB,EAAO,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,aACZ,QAD4B,EACrC,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,SAClB,GAER,WAAY,SAAU,QAAV,EAAA,EAAU,qBAAA,IAAA,OAAA,EAAV,EAAyB,aAInC,GAAA,EAAA,EAAA,SAAA,KAA4B,IAAA,EAChC,YAA6C,KAAzB,QAAhB,EAAO,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,aACpB,EAAS,QAAQ,YAGnB,OAAO,KAAK,GAAiB,CAAA,GAAI,IACvC,CAAU,QAAV,EAAC,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,YAAa,KAE3B,KAAM,EAAc,WAAY,GAAuB,EAAY,CACzE,OAAQ,EACR,WAAqB,QAArB,EAAY,EAAS,qBAAA,IAAA,OAAA,EAAT,EAAwB,cAE9B,KAAM,EAAY,WAAY,GAAqB,EAAU,CACnE,cACA,SAAU,CAAA,EACV,QAAS,IAGL,GAAA,EAAA,EAAA,SAAA,IACE,GAAsB,GAAsB,EAClD,CAAC,EAAoB,EAAoB,IAGrC,GAAA,EAAA,EAAA,SAAA,KAAA,IAAA,EAAA,EAAA,EAAA,MACG,CACL,YACA,MAAgB,QAAhB,EAAO,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,MACzB,eACA,OAAQ,SAAwB,QAAxB,EAAA,EAAY,YAAY,UAAA,IAAA,OAAA,EAAxB,EAA4B,OACpC,SACA,gBAA0B,QAA1B,EAAiB,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,kBAErC,CACE,EACS,QADT,EACA,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,MAClB,EACA,EACA,EACS,QADT,EACA,EAAS,eAAA,IAAA,OAAA,EAAT,EAAkB,kBAItB,OACE,EAAA,EAAA,KAAC,EAAmC,SAApC,CAA6C,MAAO,EACjD,cE5GM,EAAgC,EAAO,CAClD,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,MAAO,IAA0B,WACjC,gBAAiB,IAAU,aAC1B,WAAU,GCLb,EAAoB,EAAmB,iBAAiB,KAAI,EAAA,UAEtD,KAAoC,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACxC,MAAM,SAAE,GACN,IACI,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,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CACE,IAAI,+BACI,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,uCAEtB,EAAA,EAAA,KAAC,EAAD,CACE,yBAA0B,CACxB,OAAQ,EAAS,QAAU,IAE7B,kBAAmB,EAAmB,iBACtC,KAAM,CACJ,SAAU,EAAS,SACnB,YAAa,EAAa,6BAC1B,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":"NeighborhoodCharacteristics-legacy-zcamdTX5.js","names":[],"sources":["../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Title/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/styles.ts","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/Description/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/ScoreSection/Root/index.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/styles.ts","../../src/sdks/NeighborhoodCharacteristics/types.ts","../../src/sdks/NeighborhoodCharacteristics/constants.ts","../../src/sdks/NeighborhoodCharacteristics/context.tsx","../../src/sdks/NeighborhoodCharacteristics/components/Content/index.tsx","../../src/sdks/NeighborhoodCharacteristics/schema.ts","../../src/sdks/NeighborhoodCharacteristics/index.tsx"],"sourcesContent":["export const wrapper = `group/score-section text-gray-400`;\n","import React, { useContext } from \"react\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n children?: React.ReactNode;\n};\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nconst RootElementContextProvider = ({\n isLoading,\n children,\n}: DefaultContext) => {\n return (\n <RootElementContext.Provider\n value={{\n isLoading,\n }}\n >\n {children}\n </RootElementContext.Provider>\n );\n};\n\nexport { useRootElement, RootElementContextProvider };\n","export const title = `\n font-bold leading-6 mb-2\n`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const Title = ({ children }: { children: React.ReactNode }) => (\n <h3 data-testid=\"title\" className={styles.title}>\n {children}\n </h3>\n);\n","export const description = `\n text-sm leading-5 mb-6\n \n data-[empty=true]:p-5\n data-[empty=true]:rounded\n data-[empty=true]:bg-gray-100\n \n group-data-[is-loading=true]/score-section:h-32\n group-data-[is-loading=true]/score-section:bg-gray-200\n group-data-[is-loading=true]/score-section:animate-pulse\n`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\n\nimport * as styles from \"./styles\";\n\nexport const Description = ({ children }: { children?: string }) => {\n const { t } = useTranslation(\"neighborhoodCharacteristics\");\n const { isLoading } = useRootElement();\n\n const description = useMemo(() => children || t(\"noData\"), [children]);\n\n return (\n <p\n data-testid=\"description\"\n className={styles.description}\n data-empty={!children}\n >\n {!isLoading && description}\n </p>\n );\n};\n","import React from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\n\nimport * as styles from \"./styles\";\nimport { RootElementContextProvider } from \"./context\";\n\nexport const Root = ({\n isLoading = false,\n className,\n children,\n ...rest\n}: {\n isLoading?: boolean;\n className?: string;\n children: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) => (\n <RootElementContextProvider isLoading={isLoading}>\n <div\n data-testid=\"score-section-root\"\n className={twMerge(styles.wrapper, className)}\n data-is-loading={isLoading}\n {...rest}\n >\n {children}\n </div>\n </RootElementContextProvider>\n);\n\n// Export children\nexport { Title } from \"./Title\";\nexport { Description } from \"./Description\";\n","export const content = `grid gap-x-6 lg:grid-flow-col auto-cols-fr mb-8`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\n\nexport const root = `mb-9 lg:mb-0`;\nexport const mobileView = `lg:hidden`;\nexport const desktopView = `hidden lg:grid`;\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 hideAttribution?: boolean;\n};\n\nexport type NeighborhoodCharacteristicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-characteristics-Viewed\",\n SCORE_CLICKED = \"neighborhood-characteristics-Score-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 SCORE_CLICKED = \"score_clicked\",\n}\n","import { type Score } from \"./types\";\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 { type Profiles, type Scores } from \"@local-logic/client\";\nimport React, { useContext, useMemo } from \"react\";\nimport {\n type NeighborhoodCharacteristicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { includeScores } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useProfiles } from \"~/features/clientLibrary/useProfiles\";\nimport { useScores } from \"~/features/clientLibrary/useScores\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n title: NeighborhoodCharacteristicsProps[\"options\"][\"title\"];\n profilesData?: Profiles;\n scores?: Scores[\"location\"];\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst NeighborhoodCharacteristicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodCharacteristics = () =>\n useContext(NeighborhoodCharacteristicsContext);\n\nconst NeighborhoodCharacteristicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\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: profilesData, isFetching: isProfilesFetching } = useProfiles({\n geogID: geographyId,\n externalId: sdkState.globalOptions?.externalId,\n });\n const { data: scoresData, isFetching: isScoresFetching } = useScores({\n geographyId,\n location: {},\n include: includeScores,\n });\n\n const isLoading = useMemo(\n () => isGeographyLoading || isProfilesFetching || isScoresFetching,\n [isGeographyLoading, isProfilesFetching, isScoresFetching],\n );\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n title: sdkState.options?.title,\n profilesData,\n scores: scoresData?.geographies[0]?.scores,\n locale,\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n isLoading,\n sdkState.options?.title,\n profilesData,\n scoresData,\n locale,\n sdkState.options?.hideAttribution,\n ],\n );\n\n return (\n <NeighborhoodCharacteristicsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodCharacteristicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodCharacteristics, NeighborhoodCharacteristicsProvider };\n","import React, { useState, useEffect } from \"react\";\n\nimport { twMerge } from \"tailwind-merge\";\nimport { useTranslation } from \"react-i18next\";\nimport * as ScoreSection from \"../ScoreSection\";\nimport * as styles from \"./styles\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodCharacteristics } from \"~/sdks/NeighborhoodCharacteristics/context\";\n\nimport { TitleHeader } from \"~/components/TitleHeader\";\nimport { Attribution } from \"~/components/Attribution\";\nimport * as ScoreCardList from \"~/components/ScoreCardList\";\n\nimport {\n type Section,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodCharacteristics/types\";\n\nimport { sectionScores } from \"~/sdks/NeighborhoodCharacteristics/constants\";\n\ntype ScoreSectionType = {\n title: string;\n description: string;\n scores: ScoreCardList.CardProps[];\n};\n\nexport function Content() {\n const { t } = useTranslation([\"neighborhoodCharacteristics\", \"common\"]);\n const { lg: isDesktop } = useResponsiveBreakpoints();\n const tracking = useTracking();\n\n const { title, profilesData, scores, isLoading, locale, hideAttribution } =\n useNeighborhoodCharacteristics();\n\n const [scoreGroups, setScoreGroups] = useState<{\n [key in Section]: ScoreSectionType;\n }>({\n transport: {\n title: t(\"sections.transport.title\"),\n description: \"\",\n scores: [],\n },\n services: {\n title: t(\"sections.services.title\"),\n description: \"\",\n scores: [],\n },\n character: {\n title: t(\"sections.character.title\"),\n description: \"\",\n scores: [],\n },\n });\n\n useEffect(() => {\n const newScoreGroups = { ...scoreGroups };\n\n if (scores) {\n Object.keys(newScoreGroups).forEach((sectionKey) => {\n newScoreGroups[sectionKey as Section].description =\n profilesData?.profiles[sectionKey as Section] || \"\";\n\n newScoreGroups[sectionKey as Section].scores = sectionScores[\n sectionKey as Section\n ]\n .map((value) => ({\n title: t(`common:scores.${value}.title`),\n scoreKey: value,\n value: Number(scores[value]?.value),\n description: scores[value]?.text || \"\",\n }))\n .filter((score) => score.value > 0)\n .sort((a, b) => (a.value < b.value ? 1 : -1));\n });\n }\n\n setScoreGroups(newScoreGroups);\n }, [profilesData, scores]);\n\n const handleOnScoreClick =\n (category: string) => (score: string, isActive: boolean) => {\n const scoreState = isActive ? \"enabled\" : \"disabled\";\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SCORE_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n {\n label: \"score\",\n data: score,\n },\n {\n label: \"state\",\n data: scoreState,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SCORE_CLICKED,\n eventAttributes: {\n ll_category: category,\n ll_score: score,\n ll_score_state: scoreState,\n },\n });\n };\n\n return (\n <>\n <TitleHeader\n title={\n typeof title === \"string\" || title === false ? title : t(\"title\")\n }\n />\n\n <div className={styles.content}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-1-${key}`}\n className={styles.root}\n isLoading={isLoading}\n data-testid=\"score-section-root-header\"\n >\n <ScoreSection.Title>{value.title}</ScoreSection.Title>\n <ScoreSection.Description>\n {value.description}\n </ScoreSection.Description>\n {!isDesktop && (\n <div className={styles.mobileView}>\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-mobile-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </div>\n )}\n </ScoreSection.Root>\n ))}\n </div>\n\n {isDesktop && (\n <div className={twMerge(styles.content, styles.desktopView)}>\n {Object.entries(scoreGroups).map(([key, value]) => (\n <ScoreSection.Root\n key={`score-section-2-${key}`}\n isLoading={isLoading}\n data-testid=\"score-section-root-desktop\"\n >\n <ScoreCardList.Root>\n {value.scores.map((score) => (\n <ScoreCardList.Card\n key={`score-section-desktop-${key}-${score.scoreKey}`}\n title={score.title}\n scoreKey={score.scoreKey}\n value={score.value}\n description={score.description}\n onClick={handleOnScoreClick(key)}\n />\n ))}\n </ScoreCardList.Root>\n </ScoreSection.Root>\n ))}\n </div>\n )}\n\n <Attribution\n sdkName=\"neighborhood-characteristics\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </>\n );\n}\n","import { number, object, ObjectSchema, string, mixed, boolean } 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 hideAttribution: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodCharacteristicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodCharacteristicsProps } 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 NeighborhoodCharacteristics = () => {\n const { sdkState } =\n useStateManagerContext<NeighborhoodCharacteristicsProps>();\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 Characteristics\"\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_CHARACTERISTICS}\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_CHARACTERISTICS,\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 <NeighborhoodCharacteristicsProvider>\n <Content />\n </NeighborhoodCharacteristicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodCharacteristics;\n"],"mappings":"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"}
|