@local-logic/sdks-app 1.24.63 → 1.24.64
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-BsltvGRU.js → Attribution-Duhh7k4x.js} +2 -2
- package/dist/assets/{Attribution-BsltvGRU.js.map → Attribution-Duhh7k4x.js.map} +1 -1
- package/dist/assets/{Attribution-legacy-BNtn1w7h.js → Attribution-legacy-BbMLLCok.js} +2 -2
- package/dist/assets/{Attribution-legacy-BNtn1w7h.js.map → Attribution-legacy-BbMLLCok.js.map} +1 -1
- package/dist/assets/{Cluster-DtK-bXwa-B5Pbc1Sc.js → Cluster-DtK-bXwa-DGFFowZA.js} +2 -2
- package/dist/assets/{Cluster-DtK-bXwa-B5Pbc1Sc.js.map → Cluster-DtK-bXwa-DGFFowZA.js.map} +1 -1
- package/dist/assets/{Cluster-DtK-bXwa-legacy-CR_ltwaU.js → Cluster-DtK-bXwa-legacy-CRwU3yNs.js} +2 -2
- package/dist/assets/{Cluster-DtK-bXwa-legacy-CR_ltwaU.js.map → Cluster-DtK-bXwa-legacy-CRwU3yNs.js.map} +1 -1
- package/dist/assets/{Google-BWu1zjvH-SmYYPNWr.js → Google-BWu1zjvH-DRlN3_8l.js} +2 -2
- package/dist/assets/{Google-BWu1zjvH-SmYYPNWr.js.map → Google-BWu1zjvH-DRlN3_8l.js.map} +1 -1
- package/dist/assets/{Google-BWu1zjvH-legacy-DnDbinCb.js → Google-BWu1zjvH-legacy-D6N6CwVh.js} +2 -2
- package/dist/assets/{Google-BWu1zjvH-legacy-DnDbinCb.js.map → Google-BWu1zjvH-legacy-D6N6CwVh.js.map} +1 -1
- package/dist/assets/{Google-CWJnNepc-legacy-jEyNW8D9.js → Google-CWJnNepc-legacy-Bg1ArvyY.js} +2 -2
- package/dist/assets/{Google-CWJnNepc-legacy-jEyNW8D9.js.map → Google-CWJnNepc-legacy-Bg1ArvyY.js.map} +1 -1
- package/dist/assets/{Google-CWJnNepc-DN8UcJ1R.js → Google-CWJnNepc-znEMOnat.js} +2 -2
- package/dist/assets/{Google-CWJnNepc-DN8UcJ1R.js.map → Google-CWJnNepc-znEMOnat.js.map} +1 -1
- package/dist/assets/{Google-CxfcrB_--B_8lT20L.js → Google-CxfcrB_--BmYO6R-e.js} +2 -2
- package/dist/assets/{Google-CxfcrB_--B_8lT20L.js.map → Google-CxfcrB_--BmYO6R-e.js.map} +1 -1
- package/dist/assets/{Google-CxfcrB_--legacy-BIKEf6Ko.js → Google-CxfcrB_--legacy-C2uFttA5.js} +2 -2
- package/dist/assets/{Google-CxfcrB_--legacy-BIKEf6Ko.js.map → Google-CxfcrB_--legacy-C2uFttA5.js.map} +1 -1
- package/dist/assets/{Google-DJVjCEDp-BuybjgkL.js → Google-DJVjCEDp-CQJvIWAS.js} +2 -2
- package/dist/assets/{Google-DJVjCEDp-BuybjgkL.js.map → Google-DJVjCEDp-CQJvIWAS.js.map} +1 -1
- package/dist/assets/{Google-DJVjCEDp-legacy-CmJ3BbnM.js → Google-DJVjCEDp-legacy-DfLEWG8r.js} +2 -2
- package/dist/assets/{Google-DJVjCEDp-legacy-CmJ3BbnM.js.map → Google-DJVjCEDp-legacy-DfLEWG8r.js.map} +1 -1
- package/dist/assets/{Google-dS9cvzKP-J2VUtgal.js → Google-dS9cvzKP-e9BOsmNl.js} +2 -2
- package/dist/assets/{Google-dS9cvzKP-J2VUtgal.js.map → Google-dS9cvzKP-e9BOsmNl.js.map} +1 -1
- package/dist/assets/{Google-dS9cvzKP-legacy-DjMgMIio.js → Google-dS9cvzKP-legacy-CLJ4FcN0.js} +2 -2
- package/dist/assets/{Google-dS9cvzKP-legacy-DjMgMIio.js.map → Google-dS9cvzKP-legacy-CLJ4FcN0.js.map} +1 -1
- package/dist/assets/{GridGraph-CqFuBYej.js → GridGraph-C6-EwOUl.js} +2 -2
- package/dist/assets/{GridGraph-CqFuBYej.js.map → GridGraph-C6-EwOUl.js.map} +1 -1
- package/dist/assets/{GridGraph-legacy-B-ydwbji.js → GridGraph-legacy-25zMZaP_.js} +2 -2
- package/dist/assets/{GridGraph-legacy-B-ydwbji.js.map → GridGraph-legacy-25zMZaP_.js.map} +1 -1
- package/dist/assets/{LeadCapture-yB2WdcOs.js → LeadCapture-6q_e_8dX.js} +2 -2
- package/dist/assets/{LeadCapture-yB2WdcOs.js.map → LeadCapture-6q_e_8dX.js.map} +1 -1
- package/dist/assets/{LeadCapture-legacy-jIlGk8rU.js → LeadCapture-legacy-BHqcP8Iw.js} +2 -2
- package/dist/assets/{LeadCapture-legacy-jIlGk8rU.js.map → LeadCapture-legacy-BHqcP8Iw.js.map} +1 -1
- package/dist/assets/{LocalContent-BA9XaRx7.js → LocalContent-9HZ41rdH.js} +2 -2
- package/dist/assets/{LocalContent-BA9XaRx7.js.map → LocalContent-9HZ41rdH.js.map} +1 -1
- package/dist/assets/LocalContent-legacy-1srGSRaL.js +2 -0
- package/dist/assets/{LocalContent-legacy-ibTI5FZ4.js.map → LocalContent-legacy-1srGSRaL.js.map} +1 -1
- package/dist/assets/{LocalDemographics-BIytidiv.js → LocalDemographics-DWT6vil2.js} +2 -2
- package/dist/assets/{LocalDemographics-BIytidiv.js.map → LocalDemographics-DWT6vil2.js.map} +1 -1
- package/dist/assets/{LocalDemographics-legacy-C7tIK3XH.js → LocalDemographics-legacy-C645xhSC.js} +2 -2
- package/dist/assets/{LocalDemographics-legacy-C7tIK3XH.js.map → LocalDemographics-legacy-C645xhSC.js.map} +1 -1
- package/dist/assets/{Mapbox-B9pa-75a-BOtxeWGb.js → Mapbox-B9pa-75a-ClPYY137.js} +2 -2
- package/dist/assets/{Mapbox-B9pa-75a-BOtxeWGb.js.map → Mapbox-B9pa-75a-ClPYY137.js.map} +1 -1
- package/dist/assets/{Mapbox-B9pa-75a-legacy-CHrYGkGc.js → Mapbox-B9pa-75a-legacy-Dk1YPwyb.js} +2 -2
- package/dist/assets/{Mapbox-B9pa-75a-legacy-CHrYGkGc.js.map → Mapbox-B9pa-75a-legacy-Dk1YPwyb.js.map} +1 -1
- package/dist/assets/{Mapbox-BpJHQDi--DNuvIXte.js → Mapbox-BpJHQDi--CLyxuwqr.js} +2 -2
- package/dist/assets/{Mapbox-BpJHQDi--DNuvIXte.js.map → Mapbox-BpJHQDi--CLyxuwqr.js.map} +1 -1
- package/dist/assets/{Mapbox-BpJHQDi--legacy-pw96w162.js → Mapbox-BpJHQDi--legacy-DwGz9cU-.js} +2 -2
- package/dist/assets/{Mapbox-BpJHQDi--legacy-pw96w162.js.map → Mapbox-BpJHQDi--legacy-DwGz9cU-.js.map} +1 -1
- package/dist/assets/{Mapbox-BtxA3en8-3Z72nNmw.js → Mapbox-BtxA3en8-C82di8Le.js} +2 -2
- package/dist/assets/{Mapbox-BtxA3en8-3Z72nNmw.js.map → Mapbox-BtxA3en8-C82di8Le.js.map} +1 -1
- package/dist/assets/{Mapbox-BtxA3en8-legacy-CSU7NLBt.js → Mapbox-BtxA3en8-legacy-DQTm7hJ_.js} +2 -2
- package/dist/assets/{Mapbox-BtxA3en8-legacy-CSU7NLBt.js.map → Mapbox-BtxA3en8-legacy-DQTm7hJ_.js.map} +1 -1
- package/dist/assets/{Mapbox-CDUr5XKG-5ASiBTlv.js → Mapbox-CDUr5XKG-QYnXDVVu.js} +2 -2
- package/dist/assets/{Mapbox-CDUr5XKG-5ASiBTlv.js.map → Mapbox-CDUr5XKG-QYnXDVVu.js.map} +1 -1
- package/dist/assets/{Mapbox-CDUr5XKG-legacy-3huz0GR_.js → Mapbox-CDUr5XKG-legacy-B6iPzpfO.js} +2 -2
- package/dist/assets/{Mapbox-CDUr5XKG-legacy-3huz0GR_.js.map → Mapbox-CDUr5XKG-legacy-B6iPzpfO.js.map} +1 -1
- package/dist/assets/{Mapbox-DwSofiet-ILkehD5G.js → Mapbox-DwSofiet-Mmgq5D6-.js} +2 -2
- package/dist/assets/{Mapbox-DwSofiet-ILkehD5G.js.map → Mapbox-DwSofiet-Mmgq5D6-.js.map} +1 -1
- package/dist/assets/{Mapbox-DwSofiet-legacy-D3BpQm2w.js → Mapbox-DwSofiet-legacy-BoDFeBXZ.js} +2 -2
- package/dist/assets/{Mapbox-DwSofiet-legacy-D3BpQm2w.js.map → Mapbox-DwSofiet-legacy-BoDFeBXZ.js.map} +1 -1
- package/dist/assets/{Maptiler-CYFdJNvN-g3KKpHdt.js → Maptiler-CYFdJNvN-DYIrBgH6.js} +2 -2
- package/dist/assets/{Maptiler-CYFdJNvN-g3KKpHdt.js.map → Maptiler-CYFdJNvN-DYIrBgH6.js.map} +1 -1
- package/dist/assets/{Maptiler-CYFdJNvN-legacy-NhbfdVrf.js → Maptiler-CYFdJNvN-legacy-yj9pOpKs.js} +2 -2
- package/dist/assets/{Maptiler-CYFdJNvN-legacy-NhbfdVrf.js.map → Maptiler-CYFdJNvN-legacy-yj9pOpKs.js.map} +1 -1
- package/dist/assets/{Maptiler-Ce0L0Kac-CzlrjKAh.js → Maptiler-Ce0L0Kac-BTFcxDAa.js} +2 -2
- package/dist/assets/{Maptiler-Ce0L0Kac-CzlrjKAh.js.map → Maptiler-Ce0L0Kac-BTFcxDAa.js.map} +1 -1
- package/dist/assets/{Maptiler-Ce0L0Kac-legacy-DTnLJDX_.js → Maptiler-Ce0L0Kac-legacy-BmTKKLgL.js} +2 -2
- package/dist/assets/{Maptiler-Ce0L0Kac-legacy-DTnLJDX_.js.map → Maptiler-Ce0L0Kac-legacy-BmTKKLgL.js.map} +1 -1
- package/dist/assets/{Maptiler-CkoZpE04-CL-oFuER.js → Maptiler-CkoZpE04-CKOkRzwH.js} +2 -2
- package/dist/assets/{Maptiler-CkoZpE04-CL-oFuER.js.map → Maptiler-CkoZpE04-CKOkRzwH.js.map} +1 -1
- package/dist/assets/{Maptiler-CkoZpE04-legacy-CLKqb0ok.js → Maptiler-CkoZpE04-legacy-BAfeb_fR.js} +2 -2
- package/dist/assets/{Maptiler-CkoZpE04-legacy-CLKqb0ok.js.map → Maptiler-CkoZpE04-legacy-BAfeb_fR.js.map} +1 -1
- package/dist/assets/{Maptiler-CyB_-uzB-legacy-C3M4Wl83.js → Maptiler-CyB_-uzB-legacy-4okZ1sfA.js} +2 -2
- package/dist/assets/{Maptiler-CyB_-uzB-legacy-C3M4Wl83.js.map → Maptiler-CyB_-uzB-legacy-4okZ1sfA.js.map} +1 -1
- package/dist/assets/{Maptiler-CyB_-uzB-BsYYQ7sz.js → Maptiler-CyB_-uzB-vC5akwa6.js} +2 -2
- package/dist/assets/{Maptiler-CyB_-uzB-BsYYQ7sz.js.map → Maptiler-CyB_-uzB-vC5akwa6.js.map} +1 -1
- package/dist/assets/{Maptiler-DsgKmpne-DxIuH2Tl.js → Maptiler-DsgKmpne-6BzLeKc0.js} +2 -2
- package/dist/assets/{Maptiler-DsgKmpne-DxIuH2Tl.js.map → Maptiler-DsgKmpne-6BzLeKc0.js.map} +1 -1
- package/dist/assets/{Maptiler-DsgKmpne-legacy-BpEYCv0q.js → Maptiler-DsgKmpne-legacy-TqJ_TVEa.js} +2 -2
- package/dist/assets/{Maptiler-DsgKmpne-legacy-BpEYCv0q.js.map → Maptiler-DsgKmpne-legacy-TqJ_TVEa.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Drkpm3bl-DI0HvpiK.js → MarkerIcon-Drkpm3bl-6CRlQtyO.js} +2 -2
- package/dist/assets/{MarkerIcon-Drkpm3bl-DI0HvpiK.js.map → MarkerIcon-Drkpm3bl-6CRlQtyO.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Drkpm3bl-legacy-CjOJi2BD.js → MarkerIcon-Drkpm3bl-legacy-BKTQZxwz.js} +2 -2
- package/dist/assets/{MarkerIcon-Drkpm3bl-legacy-CjOJi2BD.js.map → MarkerIcon-Drkpm3bl-legacy-BKTQZxwz.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-BdTDM3-D.js → NeighborhoodCard-C_-8FpDl.js} +2 -2
- package/dist/assets/{NeighborhoodCard-BdTDM3-D.js.map → NeighborhoodCard-C_-8FpDl.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-legacy-DvpbnJ6S.js → NeighborhoodCard-legacy-DW4x82H7.js} +2 -2
- package/dist/assets/{NeighborhoodCard-legacy-DvpbnJ6S.js.map → NeighborhoodCard-legacy-DW4x82H7.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-Ook5N1T2.js → NeighborhoodCharacteristics-BGdxNjXv.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-Ook5N1T2.js.map → NeighborhoodCharacteristics-BGdxNjXv.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-legacy-D3KCHmoq.js → NeighborhoodCharacteristics-legacy-DVi_mvql.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-legacy-D3KCHmoq.js.map → NeighborhoodCharacteristics-legacy-DVi_mvql.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-CTpC3jE7.js → NeighborhoodDemographics-Bl2aRgAD.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-CTpC3jE7.js.map → NeighborhoodDemographics-Bl2aRgAD.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-legacy-DgcM1GAK.js → NeighborhoodDemographics-legacy-C6PkQmoB.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-legacy-DgcM1GAK.js.map → NeighborhoodDemographics-legacy-C6PkQmoB.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-BKynIDFO.js → NeighborhoodFeatured-C0qVWedw.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-BKynIDFO.js.map → NeighborhoodFeatured-C0qVWedw.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-legacy-DlwdffhT.js → NeighborhoodFeatured-legacy-BcjeyOc7.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-legacy-DlwdffhT.js.map → NeighborhoodFeatured-legacy-BcjeyOc7.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-BcdgrQtP.js → NeighborhoodHero-BSMivGqs.js} +2 -2
- package/dist/assets/{NeighborhoodHero-BcdgrQtP.js.map → NeighborhoodHero-BSMivGqs.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-legacy-CfCrSS6Z.js → NeighborhoodHero-legacy-CVItTB2U.js} +2 -2
- package/dist/assets/{NeighborhoodHero-legacy-CfCrSS6Z.js.map → NeighborhoodHero-legacy-CVItTB2U.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-C3maAwKP.js → NeighborhoodHighlights-BhVYsA3-.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-C3maAwKP.js.map → NeighborhoodHighlights-BhVYsA3-.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-legacy-CALvujpk.js → NeighborhoodHighlights-legacy-Do2PVQvq.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-legacy-CALvujpk.js.map → NeighborhoodHighlights-legacy-Do2PVQvq.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-CT8veCNl.js → NeighborhoodMap-D6OihpAJ.js} +2 -2
- package/dist/assets/{NeighborhoodMap-CT8veCNl.js.map → NeighborhoodMap-D6OihpAJ.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-legacy-CSmAZuD2.js → NeighborhoodMap-legacy-Dzr11Edf.js} +2 -2
- package/dist/assets/{NeighborhoodMap-legacy-CSmAZuD2.js.map → NeighborhoodMap-legacy-Dzr11Edf.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-DLlvQnd2.js → NeighborhoodMarketTrends-BYLv7ssD.js} +3 -3
- package/dist/assets/{NeighborhoodMarketTrends-DLlvQnd2.js.map → NeighborhoodMarketTrends-BYLv7ssD.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DA5VImYp.js → NeighborhoodMarketTrends-legacy-D4CqgzKy.js} +2 -2
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DA5VImYp.js.map → NeighborhoodMarketTrends-legacy-D4CqgzKy.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-zUWSiNi8.js → NeighborhoodMatch-2dDNoHEC.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-zUWSiNi8.js.map → NeighborhoodMatch-2dDNoHEC.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-legacy-BkhxK-bz.js → NeighborhoodMatch-legacy-DSUP8S00.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-legacy-BkhxK-bz.js.map → NeighborhoodMatch-legacy-DSUP8S00.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-0Zr-7AQ9.js → NeighborhoodPropertyValueDrivers-BbkPB6Ts.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-0Zr-7AQ9.js.map → NeighborhoodPropertyValueDrivers-BbkPB6Ts.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-yQwTbIN8.js → NeighborhoodPropertyValueDrivers-legacy-D62occGi.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-yQwTbIN8.js.map → NeighborhoodPropertyValueDrivers-legacy-D62occGi.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-legacy-CTG5Nbpw.js → NeighborhoodSchools-legacy-CRJgyQRJ.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-legacy-CTG5Nbpw.js.map → NeighborhoodSchools-legacy-CRJgyQRJ.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-DFUvz0LY.js → NeighborhoodSchools-zyjBTcAS.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-DFUvz0LY.js.map → NeighborhoodSchools-zyjBTcAS.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-BxcWXdht.js → NeighborhoodShowcase-DkqbmfHO.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-BxcWXdht.js.map → NeighborhoodShowcase-DkqbmfHO.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-legacy-Ciwbw3YX.js → NeighborhoodShowcase-legacy-CztESO-F.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-legacy-Ciwbw3YX.js.map → NeighborhoodShowcase-legacy-CztESO-F.js.map} +1 -1
- package/dist/assets/{NoDataContent-K8RstIPw.js → NoDataContent-BOVv2wDG.js} +2 -2
- package/dist/assets/{NoDataContent-K8RstIPw.js.map → NoDataContent-BOVv2wDG.js.map} +1 -1
- package/dist/assets/{NoDataContent-legacy-CzU5MBcr.js → NoDataContent-legacy-C3AeyeSg.js} +2 -2
- package/dist/assets/{NoDataContent-legacy-CzU5MBcr.js.map → NoDataContent-legacy-C3AeyeSg.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-iptN_OTD.js → ResizeWrapper-Bhg67yfB.js} +2 -2
- package/dist/assets/{ResizeWrapper-iptN_OTD.js.map → ResizeWrapper-Bhg67yfB.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-legacy-OscRVVIk.js → ResizeWrapper-legacy-F6SJE_TA.js} +2 -2
- package/dist/assets/{ResizeWrapper-legacy-OscRVVIk.js.map → ResizeWrapper-legacy-F6SJE_TA.js.map} +1 -1
- package/dist/assets/{ScoreCardList-BGFtynWY.js → ScoreCardList-DReE0M82.js} +2 -2
- package/dist/assets/{ScoreCardList-BGFtynWY.js.map → ScoreCardList-DReE0M82.js.map} +1 -1
- package/dist/assets/{ScoreCardList-legacy-DkYwRt8q.js → ScoreCardList-legacy-B-Iw3TWS.js} +2 -2
- package/dist/assets/{ScoreCardList-legacy-DkYwRt8q.js.map → ScoreCardList-legacy-B-Iw3TWS.js.map} +1 -1
- package/dist/assets/{ScoreIcon-legacy-CKB6p9iW.js → ScoreIcon-legacy-Ds3IYvwY.js} +2 -2
- package/dist/assets/{ScoreIcon-legacy-CKB6p9iW.js.map → ScoreIcon-legacy-Ds3IYvwY.js.map} +1 -1
- package/dist/assets/{ScoreIcon-BGcwqtBH.js → ScoreIcon-qr7Dyd1_.js} +2 -2
- package/dist/assets/{ScoreIcon-BGcwqtBH.js.map → ScoreIcon-qr7Dyd1_.js.map} +1 -1
- package/dist/assets/{Testing-BQ7AFsvh-B0zjSsQX.js → Testing-BQ7AFsvh-DFMBrZvz.js} +2 -2
- package/dist/assets/{Testing-BQ7AFsvh-B0zjSsQX.js.map → Testing-BQ7AFsvh-DFMBrZvz.js.map} +1 -1
- package/dist/assets/{Testing-BQ7AFsvh-legacy-DWyP-TZm.js → Testing-BQ7AFsvh-legacy-u-xLnoNh.js} +2 -2
- package/dist/assets/{Testing-BQ7AFsvh-legacy-DWyP-TZm.js.map → Testing-BQ7AFsvh-legacy-u-xLnoNh.js.map} +1 -1
- package/dist/assets/{Testing-CZDor_UM-DKHyShOL.js → Testing-CZDor_UM-BXoIFD2V.js} +2 -2
- package/dist/assets/{Testing-CZDor_UM-DKHyShOL.js.map → Testing-CZDor_UM-BXoIFD2V.js.map} +1 -1
- package/dist/assets/{Testing-CZDor_UM-legacy-DYOc_7jJ.js → Testing-CZDor_UM-legacy-nUkPPr7r.js} +2 -2
- package/dist/assets/{Testing-CZDor_UM-legacy-DYOc_7jJ.js.map → Testing-CZDor_UM-legacy-nUkPPr7r.js.map} +1 -1
- package/dist/assets/{Testing-CxwUbSxG-Vw-NLu0P.js → Testing-CxwUbSxG-Bht4ySMN.js} +2 -2
- package/dist/assets/{Testing-CxwUbSxG-Vw-NLu0P.js.map → Testing-CxwUbSxG-Bht4ySMN.js.map} +1 -1
- package/dist/assets/{Testing-CxwUbSxG-legacy-Dpbq1Bh4.js → Testing-CxwUbSxG-legacy-CW2pKq5L.js} +2 -2
- package/dist/assets/{Testing-CxwUbSxG-legacy-Dpbq1Bh4.js.map → Testing-CxwUbSxG-legacy-CW2pKq5L.js.map} +1 -1
- package/dist/assets/{Testing-vfABKYEg-legacy-BpzPtqgn.js → Testing-vfABKYEg-legacy-CAaWJ3i7.js} +2 -2
- package/dist/assets/{Testing-vfABKYEg-legacy-BpzPtqgn.js.map → Testing-vfABKYEg-legacy-CAaWJ3i7.js.map} +1 -1
- package/dist/assets/{Testing-vfABKYEg-BEq8jFJw.js → Testing-vfABKYEg-nwKJxiQ-.js} +2 -2
- package/dist/assets/{Testing-vfABKYEg-BEq8jFJw.js.map → Testing-vfABKYEg-nwKJxiQ-.js.map} +1 -1
- package/dist/assets/{Testing-wan6urXy-PZYC8nyQ.js → Testing-wan6urXy-B0sm4u_j.js} +2 -2
- package/dist/assets/{Testing-wan6urXy-PZYC8nyQ.js.map → Testing-wan6urXy-B0sm4u_j.js.map} +1 -1
- package/dist/assets/{Testing-wan6urXy-legacy-CKFpdCQ6.js → Testing-wan6urXy-legacy-CQ0zqTGx.js} +2 -2
- package/dist/assets/{Testing-wan6urXy-legacy-CKFpdCQ6.js.map → Testing-wan6urXy-legacy-CQ0zqTGx.js.map} +1 -1
- package/dist/assets/{TitleHeader-BZ-WJqqQ.js → TitleHeader-DqQxUayY.js} +2 -2
- package/dist/assets/{TitleHeader-BZ-WJqqQ.js.map → TitleHeader-DqQxUayY.js.map} +1 -1
- package/dist/assets/{TitleHeader-legacy-VTfonLLs.js → TitleHeader-legacy-pLHeIO4_.js} +2 -2
- package/dist/assets/{TitleHeader-legacy-VTfonLLs.js.map → TitleHeader-legacy-pLHeIO4_.js.map} +1 -1
- package/dist/assets/{Trans-DJmgQYxZ.js → Trans-BLu0zcU1.js} +2 -2
- package/dist/assets/{Trans-DJmgQYxZ.js.map → Trans-BLu0zcU1.js.map} +1 -1
- package/dist/assets/{Trans-legacy-DfM0QowQ.js → Trans-legacy-CQPgpMfP.js} +2 -2
- package/dist/assets/{Trans-legacy-DfM0QowQ.js.map → Trans-legacy-CQPgpMfP.js.map} +1 -1
- package/dist/assets/{ValidateOptions-BOHq0NLG.js → ValidateOptions-BivAr3ZH.js} +2 -2
- package/dist/assets/{ValidateOptions-BOHq0NLG.js.map → ValidateOptions-BivAr3ZH.js.map} +1 -1
- package/dist/assets/{ValidateOptions-legacy-CRx_un0J.js → ValidateOptions-legacy-B4kQEpo7.js} +2 -2
- package/dist/assets/{ValidateOptions-legacy-CRx_un0J.js.map → ValidateOptions-legacy-B4kQEpo7.js.map} +1 -1
- package/dist/assets/{dist-DjT90Vie.js → dist-JadUzcvL.js} +2 -2
- package/dist/assets/{dist-DjT90Vie.js.map → dist-JadUzcvL.js.map} +1 -1
- package/dist/assets/{dist-legacy-C6cEG2G4.js → dist-legacy-6uOt0Yh8.js} +2 -2
- package/dist/assets/{dist-legacy-C6cEG2G4.js.map → dist-legacy-6uOt0Yh8.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-CLYWizpG.js → getMapProviderConfig-DNFSt_ai.js} +3 -3
- package/dist/assets/{getMapProviderConfig-CLYWizpG.js.map → getMapProviderConfig-DNFSt_ai.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-legacy-BqZuG0-K.js → getMapProviderConfig-legacy-DRwYzoDU.js} +2 -2
- package/dist/assets/{getMapProviderConfig-legacy-BqZuG0-K.js.map → getMapProviderConfig-legacy-DRwYzoDU.js.map} +1 -1
- package/dist/assets/{getPaddedBounds-FpsQymJC-CamcKdIj.js → getPaddedBounds-FpsQymJC--V91KbDr.js} +2 -2
- package/dist/assets/{getPaddedBounds-FpsQymJC-CamcKdIj.js.map → getPaddedBounds-FpsQymJC--V91KbDr.js.map} +1 -1
- package/dist/assets/{getPaddedBounds-FpsQymJC-legacy-TefV3FWy.js → getPaddedBounds-FpsQymJC-legacy-BAfRrfiC.js} +2 -2
- package/dist/assets/{getPaddedBounds-FpsQymJC-legacy-TefV3FWy.js.map → getPaddedBounds-FpsQymJC-legacy-BAfRrfiC.js.map} +1 -1
- package/dist/assets/{index-BLDMLEaX.js → index-DHfBmUAQ.js} +3 -3
- package/dist/assets/{index-BLDMLEaX.js.map → index-DHfBmUAQ.js.map} +1 -1
- package/dist/assets/{index-legacy-BzMlHwaA.js → index-legacy-CdRffLlb.js} +2 -2
- package/dist/assets/{index-legacy-BzMlHwaA.js.map → index-legacy-CdRffLlb.js.map} +1 -1
- package/dist/assets/{index.es-D680q4E2.js → index.es-B0TyuPgo.js} +2 -2
- package/dist/assets/{index.es-D680q4E2.js.map → index.es-B0TyuPgo.js.map} +1 -1
- package/dist/assets/{index.es-legacy-CLQaVm5G.js → index.es-legacy-DGBuVsHM.js} +2 -2
- package/dist/assets/{index.es-legacy-CLQaVm5G.js.map → index.es-legacy-DGBuVsHM.js.map} +1 -1
- package/dist/assets/{mapbox-BiIB2Zbq-DgXGTLoF.js → mapbox-BiIB2Zbq-gUZoKTZh.js} +2 -2
- package/dist/assets/{mapbox-BiIB2Zbq-DgXGTLoF.js.map → mapbox-BiIB2Zbq-gUZoKTZh.js.map} +1 -1
- package/dist/assets/{mapbox-BiIB2Zbq-legacy-CWG67TM7.js → mapbox-BiIB2Zbq-legacy-BzLqYdgk.js} +2 -2
- package/dist/assets/{mapbox-BiIB2Zbq-legacy-CWG67TM7.js.map → mapbox-BiIB2Zbq-legacy-BzLqYdgk.js.map} +1 -1
- package/dist/assets/{maplibre-Cx0I-z8h-CKf-PaNJ.js → maplibre-Cx0I-z8h-CpfLgNDU.js} +2 -2
- package/dist/assets/{maplibre-Cx0I-z8h-CKf-PaNJ.js.map → maplibre-Cx0I-z8h-CpfLgNDU.js.map} +1 -1
- package/dist/assets/{maplibre-Cx0I-z8h-legacy-BLv0jU9u.js → maplibre-Cx0I-z8h-legacy-DNmyXE2u.js} +2 -2
- package/dist/assets/{maplibre-Cx0I-z8h-legacy-BLv0jU9u.js.map → maplibre-Cx0I-z8h-legacy-DNmyXE2u.js.map} +1 -1
- package/dist/assets/neighborhood-fallback-Bx8UkjEB.js.map +1 -1
- package/dist/assets/{sdks-COqbeKyR.js → sdks-e3TteF4P.js} +2 -2
- package/dist/assets/{sdks-COqbeKyR.js.map → sdks-e3TteF4P.js.map} +1 -1
- package/dist/assets/{sdks-legacy-DQ7jLJZE.js → sdks-legacy-BcdXj8R9.js} +2 -2
- package/dist/assets/{sdks-legacy-DQ7jLJZE.js.map → sdks-legacy-BcdXj8R9.js.map} +1 -1
- package/dist/assets/{styles-DCI3UJny-DrJgfl7H.js → styles-DCI3UJny-OwNwQYJv.js} +2 -2
- package/dist/assets/{styles-DCI3UJny-DrJgfl7H.js.map → styles-DCI3UJny-OwNwQYJv.js.map} +1 -1
- package/dist/assets/{styles-DCI3UJny-legacy-Dw44-3MI.js → styles-DCI3UJny-legacy-BfzvePT0.js} +2 -2
- package/dist/assets/{styles-DCI3UJny-legacy-Dw44-3MI.js.map → styles-DCI3UJny-legacy-BfzvePT0.js.map} +1 -1
- package/dist/assets/{styles-DMA_7NV0-D3y1DeLZ.js → styles-DMA_7NV0-CJzE42wT.js} +2 -2
- package/dist/assets/{styles-DMA_7NV0-D3y1DeLZ.js.map → styles-DMA_7NV0-CJzE42wT.js.map} +1 -1
- package/dist/assets/{styles-DMA_7NV0-legacy-CYkSS_lc.js → styles-DMA_7NV0-legacy-DO9L0b_C.js} +2 -2
- package/dist/assets/{styles-DMA_7NV0-legacy-CYkSS_lc.js.map → styles-DMA_7NV0-legacy-DO9L0b_C.js.map} +1 -1
- package/dist/assets/{useDemographicsData-DbxsBDeY.js → useDemographicsData-C4iCuplI.js} +2 -2
- package/dist/assets/{useDemographicsData-DbxsBDeY.js.map → useDemographicsData-C4iCuplI.js.map} +1 -1
- package/dist/assets/{useDemographicsData-legacy-CG3XHkyh.js → useDemographicsData-legacy-OsSaC0p-.js} +2 -2
- package/dist/assets/{useDemographicsData-legacy-CG3XHkyh.js.map → useDemographicsData-legacy-OsSaC0p-.js.map} +1 -1
- package/dist/assets/{useGeographies-Ca5nEDBN.js → useGeographies-Dbxf3asb.js} +2 -2
- package/dist/assets/{useGeographies-Ca5nEDBN.js.map → useGeographies-Dbxf3asb.js.map} +1 -1
- package/dist/assets/{useGeographies-legacy-CcWz8DvM.js → useGeographies-legacy-BFHs291p.js} +2 -2
- package/dist/assets/{useGeographies-legacy-CcWz8DvM.js.map → useGeographies-legacy-BFHs291p.js.map} +1 -1
- package/dist/assets/{useIsMobile-Bxsws0pn.js → useIsMobile-DNaqDzbl.js} +2 -2
- package/dist/assets/{useIsMobile-Bxsws0pn.js.map → useIsMobile-DNaqDzbl.js.map} +1 -1
- package/dist/assets/{useIsMobile-legacy-zb8bPQUw.js → useIsMobile-legacy-B6-NPP6W.js} +2 -2
- package/dist/assets/{useIsMobile-legacy-zb8bPQUw.js.map → useIsMobile-legacy-B6-NPP6W.js.map} +1 -1
- package/dist/assets/{useLocation-Cw-YxWBt.js → useLocation-ZUEWhDQZ.js} +2 -2
- package/dist/assets/{useLocation-Cw-YxWBt.js.map → useLocation-ZUEWhDQZ.js.map} +1 -1
- package/dist/assets/{useLocation-legacy-DROxjKYy.js → useLocation-legacy-DwBFDrsA.js} +2 -2
- package/dist/assets/{useLocation-legacy-DROxjKYy.js.map → useLocation-legacy-DwBFDrsA.js.map} +1 -1
- package/dist/assets/{useProfiles-8Z_GZOzb.js → useProfiles-BIFSAlrA.js} +2 -2
- package/dist/assets/{useProfiles-8Z_GZOzb.js.map → useProfiles-BIFSAlrA.js.map} +1 -1
- package/dist/assets/{useProfiles-legacy-C4_roJUq.js → useProfiles-legacy-DAWflSgN.js} +2 -2
- package/dist/assets/{useProfiles-legacy-C4_roJUq.js.map → useProfiles-legacy-DAWflSgN.js.map} +1 -1
- package/dist/assets/{useSchools-legacy-T6pvbGsp.js → useSchools-legacy-CgZHAzMa.js} +2 -2
- package/dist/assets/{useSchools-legacy-T6pvbGsp.js.map → useSchools-legacy-CgZHAzMa.js.map} +1 -1
- package/dist/assets/{useSchools-DyrTKmXR.js → useSchools-qUQmMbTk.js} +2 -2
- package/dist/assets/{useSchools-DyrTKmXR.js.map → useSchools-qUQmMbTk.js.map} +1 -1
- package/dist/assets/{useScores--bTvRnnj.js → useScores-C2l0EkUs.js} +2 -2
- package/dist/assets/{useScores--bTvRnnj.js.map → useScores-C2l0EkUs.js.map} +1 -1
- package/dist/assets/{useScores-legacy-C2gadPY-.js → useScores-legacy-BtI93V2X.js} +2 -2
- package/dist/assets/{useScores-legacy-C2gadPY-.js.map → useScores-legacy-BtI93V2X.js.map} +1 -1
- package/dist/assets/{utils-CV8G-gCd-CCr0oecj.js → utils-CV8G-gCd-BA5hEMgo.js} +2 -2
- package/dist/assets/{utils-CV8G-gCd-CCr0oecj.js.map → utils-CV8G-gCd-BA5hEMgo.js.map} +1 -1
- package/dist/assets/{utils-CV8G-gCd-legacy-DwIJ3EdU.js → utils-CV8G-gCd-legacy-C6n6__tU.js} +2 -2
- package/dist/assets/{utils-CV8G-gCd-legacy-DwIJ3EdU.js.map → utils-CV8G-gCd-legacy-C6n6__tU.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/types/sdks/LocalContent/components/Sidebar/Root/ScoreDetails/index.d.ts.map +1 -1
- package/dist/types/sdks/LocalContent/components/Sidebar/Root/ScoreDetails/index.js +3 -1
- package/dist/types/sdks/LocalContent/components/Sidebar/Root/ScoreDetails/index.js.map +1 -1
- package/dist/types/sdks/LocalContent/components/Sidebar/Root/ScoreDetails/index.test.js +24 -0
- package/dist/types/sdks/LocalContent/components/Sidebar/Root/ScoreDetails/index.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/LocalContent-legacy-ibTI5FZ4.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodDemographics-legacy-DgcM1GAK.js","names":["e","e","t","d","t","a","t"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/Cardholder.es.js","../../../../node_modules/@phosphor-icons/react/dist/defs/House.es.js","../../../../node_modules/@phosphor-icons/react/dist/defs/User.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/Cardholder.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/House.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/User.es.js","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleIcon/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleIcon/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleText/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleText/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Accordion/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Accordion/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Tabs/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Tabs/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/constants.ts","../../src/sdks/NeighborhoodDemographics/types.ts","../../src/sdks/NeighborhoodDemographics/context.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/AverageIncome/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/EmploymentStatus/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/IncomeBrackets/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/TotalPopulation/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/PopulationByAgeGroup/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/HomeOwnershipType/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/TypeOfHousing/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Household/HouseholdComposition/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Household/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Commute/CommuteMode/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Commute/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Education/EducationLevel/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Education/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/SpokenLanguages/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/MotherTongue/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Content/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Content/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Footer/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Footer/index.tsx","../../src/sdks/NeighborhoodDemographics/schema.ts","../../src/sdks/NeighborhoodDemographics/index.tsx"],"sourcesContent":["import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,44H48A28,28,0,0,0,20,72V184a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V72A28,28,0,0,0,208,44ZM48,68H208a4,4,0,0,1,4,4V88H160a12,12,0,0,0-12,12,20,20,0,0,1-40,0A12,12,0,0,0,96,88H44V72A4,4,0,0,1,48,68ZM208,188H48a4,4,0,0,1-4-4V112H85.66a44,44,0,0,0,84.68,0H212v72A4,4,0,0,1,208,188Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M224,72v48H160a32,32,0,0,1-64,0H32V72A16,16,0,0,1,48,56H208A16,16,0,0,1,224,72Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48ZM40,96H216v16H160a8,8,0,0,0-8,8,24,24,0,0,1-48,0,8,8,0,0,0-8-8H40Zm8-32H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64ZM208,192H48a8,8,0,0,1-8-8V128H88.8a40,40,0,0,0,78.4,0H216v56A8,8,0,0,1,208,192Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48Zm-56,72a24,24,0,0,1-48,0,8,8,0,0,0-8-8H40V96H216v16H160A8,8,0,0,0,152,120ZM48,64H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,50H48A22,22,0,0,0,26,72V184a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V72A22,22,0,0,0,208,50ZM38,94H218v20H160a6,6,0,0,0-6,6,26,26,0,0,1-52,0,6,6,0,0,0-6-6H38ZM48,62H208a10,10,0,0,1,10,10V82H38V72A10,10,0,0,1,48,62ZM208,194H48a10,10,0,0,1-10-10V126H90.47a38,38,0,0,0,75.06,0H218v58A10,10,0,0,1,208,194Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48ZM40,96H216v16H160a8,8,0,0,0-8,8,24,24,0,0,1-48,0,8,8,0,0,0-8-8H40Zm8-32H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64ZM208,192H48a8,8,0,0,1-8-8V128H88.8a40,40,0,0,0,78.4,0H216v56A8,8,0,0,1,208,192Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,52H48A20,20,0,0,0,28,72V184a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V72A20,20,0,0,0,208,52ZM36,92H220v24H160a4,4,0,0,0-4,4,28,28,0,0,1-56,0,4,4,0,0,0-4-4H36ZM48,60H208a12,12,0,0,1,12,12V84H36V72A12,12,0,0,1,48,60ZM208,196H48a12,12,0,0,1-12-12V124H92.22a36,36,0,0,0,71.56,0H220v60A12,12,0,0,1,208,196Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M234.38,210a123.36,123.36,0,0,0-60.78-53.23,76,76,0,1,0-91.2,0A123.36,123.36,0,0,0,21.62,210a12,12,0,1,0,20.77,12c18.12-31.32,50.12-50,85.61-50s67.49,18.69,85.61,50a12,12,0,0,0,20.77-12ZM76,96a52,52,0,1,1,52,52A52.06,52.06,0,0,1,76,96Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M192,96a64,64,0,1,1-64-64A64,64,0,0,1,192,96Z\", opacity: \"0.2\" }), /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.93,220a8,8,0,0,1-6.93,4H32a8,8,0,0,1-6.92-12c15.23-26.33,38.7-45.21,66.09-54.16a72,72,0,1,1,73.66,0c27.39,8.95,50.86,27.83,66.09,54.16A8,8,0,0,1,230.93,220Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M229.19,213c-15.81-27.32-40.63-46.49-69.47-54.62a70,70,0,1,0-63.44,0C67.44,166.5,42.62,185.67,26.81,213a6,6,0,1,0,10.38,6C56.4,185.81,90.34,166,128,166s71.6,19.81,90.81,53a6,6,0,1,0,10.38-6ZM70,96a58,58,0,1,1,58,58A58.07,58.07,0,0,1,70,96Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M227.46,214c-16.52-28.56-43-48.06-73.68-55.09a68,68,0,1,0-51.56,0c-30.64,7-57.16,26.53-73.68,55.09a4,4,0,0,0,6.92,4C55,184.19,89.62,164,128,164s73,20.19,92.54,54a4,4,0,0,0,3.46,2,3.93,3.93,0,0,0,2-.54A4,4,0,0,0,227.46,214ZM68,96a60,60,0,1,1,60,60A60.07,60.07,0,0,1,68,96Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport d from \"../defs/Cardholder.es.js\";\nconst r = o.forwardRef((e, a) => /* @__PURE__ */ o.createElement(t, { ref: a, ...e, weights: d }));\nr.displayName = \"CardholderIcon\";\nconst s = r;\nexport {\n s as Cardholder,\n r as CardholderIcon\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/House.es.js\";\nconst e = o.forwardRef((r, s) => /* @__PURE__ */ o.createElement(t, { ref: s, ...r, weights: a }));\ne.displayName = \"HouseIcon\";\nconst n = e;\nexport {\n n as House,\n e as HouseIcon\n};\n","import * as e from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/User.es.js\";\nconst o = e.forwardRef((r, s) => /* @__PURE__ */ e.createElement(t, { ref: s, ...r, weights: a }));\no.displayName = \"UserIcon\";\nconst n = o;\nexport {\n n as User,\n o as UserIcon\n};\n","export const icon = `w-6 h-6`;\n","import React from \"react\";\n\nimport type { Icon } from \"@phosphor-icons/react\";\n\nimport * as styles from \"./styles\";\n\nexport const TitleIcon = ({ icon: Icon }: { icon: Icon }) => (\n <Icon className={styles.icon} />\n);\n","export const text = `text-base leading-6 font-medium`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const TitleText = ({\n text,\n className,\n}: {\n text: string;\n className?: string;\n}) => <h2 className={`${styles.text} ${className || \"\"}`}>{text}</h2>;\n","export const container = `flex flex-col gap-2`;\nexport const item = `px-4 rounded border border-ll-border shadow cursor-pointer group`;\nexport const header = `py-3 flex items-center gap-1.5 group-data-[active=true]:text-ll-primary`;\nexport const title = `grow`;\nexport const arrowIcon = `w-3.5 h-3.5 text-ll-placeholder data-[is-active=true]:rotate-180 transition-transform duration-50 ease-in-out`;\nexport const content = `py-3 border-t border-ll-surface`;\n","import React from \"react\";\n\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\nimport { TitleIcon } from \"../TitleIcon\";\nimport { TitleText } from \"../TitleText\";\n\nimport { type SectionHeaders } from \"../../types\";\nimport * as styles from \"./styles\";\n\nexport const Accordion = ({\n sectionHeaders,\n activeTabIndex,\n onTabChange,\n children,\n}: {\n sectionHeaders: SectionHeaders;\n activeTabIndex: number;\n onTabChange: (index: number) => void;\n children?: React.ReactNode;\n}) => (\n <div className={styles.container}>\n {sectionHeaders.map((section, index) => (\n <div\n key={`section-accordion-${section.title}`}\n className={styles.item}\n onClick={() => onTabChange(activeTabIndex === index ? -1 : index)}\n data-active={activeTabIndex === index}\n >\n <div className={styles.header}>\n <TitleIcon icon={section.icon} />\n <TitleText text={section.title} className={styles.title} />\n <CaretDownIcon\n className={styles.arrowIcon}\n data-is-active={activeTabIndex === index}\n />\n </div>\n {activeTabIndex === index && (\n <div className={styles.content}>{children}</div>\n )}\n </div>\n ))}\n </div>\n);\n","export const container = `w-full`;\nexport const borderContainer = `border-b-4 border-ll-surface rounded flex items-center justify-center`;\nexport const itemActiveBorder = `h-1 bg-ll-primary rounded w-full -mb-1 data-[active=false]:opacity-0 transition-opacity`;\nexport const tabsContainer = `flex items-center justify-center pb-4`;\nexport const tab = `w-full flex items-center justify-center py-2.5 gap-2 bg-none border-none data-[active=true]:text-ll-primary cursor-pointer transition-colors`;\nexport const tabText = `m-0 text-base leading-6 font-medium`;\nexport const content = `p-6`;\n","import React from \"react\";\nimport * as Tab from \"@radix-ui/react-tabs\";\n\nimport { TitleIcon } from \"../TitleIcon\";\n\nimport { type SectionHeaders } from \"../../types\";\nimport * as styles from \"./styles\";\n\nexport const Tabs = ({\n sectionHeaders,\n activeTabIndex,\n onTabChange,\n children,\n}: {\n sectionHeaders: SectionHeaders;\n activeTabIndex: number;\n onTabChange: (index: number) => void;\n children?: React.ReactNode;\n}) => {\n const activeKey = sectionHeaders[activeTabIndex]?.key;\n\n const handleValueChange = (value: string) => {\n const index = sectionHeaders.findIndex((section) => section.key === value);\n\n if (index !== -1) {\n onTabChange(index);\n }\n };\n\n return (\n <Tab.Root value={activeKey} onValueChange={handleValueChange}>\n <div className={styles.container}>\n <Tab.List\n className={styles.tabsContainer}\n aria-label=\"Demographics tabs\"\n >\n {sectionHeaders.map((section, index) => (\n <Tab.Trigger\n key={`section-tab-${section.key}`}\n value={section.key}\n className={styles.tab}\n data-active={activeTabIndex === index}\n >\n <TitleIcon icon={section.icon} />\n <p className={styles.tabText}>{section.title}</p>\n </Tab.Trigger>\n ))}\n </Tab.List>\n <div className={styles.borderContainer}>\n {sectionHeaders.map((section, index) => (\n <div\n key={`section-tab-border-${section.key}`}\n className={styles.itemActiveBorder}\n data-active={activeTabIndex === index}\n />\n ))}\n </div>\n </div>\n <Tab.Content value={activeKey ?? \"\"} className={styles.content}>\n {children}\n </Tab.Content>\n </Tab.Root>\n );\n};\n","export const wrapper = `text-ll-placeholder`;\n","import {\n type Icon,\n CardholderIcon,\n UserIcon,\n HouseIcon,\n UsersFourIcon,\n GraduationCapIcon,\n CarIcon,\n TranslateIcon,\n} from \"@phosphor-icons/react\";\nimport type { DemographicsCategory } from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const sectionKeys: DemographicsCategory[] = [\n \"income\",\n \"population\",\n \"housing\",\n \"household\",\n \"education\",\n \"commute\",\n \"languages\",\n];\n\nexport const sectionIcons: { [key in DemographicsCategory]: Icon } = {\n income: CardholderIcon,\n population: UserIcon,\n housing: HouseIcon,\n household: UsersFourIcon,\n education: GraduationCapIcon,\n commute: CarIcon,\n languages: TranslateIcon,\n};\n","import { SDKOptions } from \"~/types/options\";\n\nexport type DemographicsCategory =\n | \"income\"\n | \"population\"\n | \"housing\"\n | \"household\"\n | \"education\"\n | \"commute\"\n | \"languages\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n title?: boolean | string;\n hideAttribution?: boolean;\n};\n\nexport type NeighborhoodDemographicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-demographics-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-demographics-Category-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n}\n","import React, { useContext, useMemo } from \"react\";\nimport { type Demographics } from \"@local-logic/client\";\n\nimport {\n type NeighborhoodDemographicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { useTracking } from \"~/tracking\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useLocation } from \"~/hooks/useLocation\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useDemographicsData } from \"~/hooks/useDemographicsData\";\n\nexport type DemographicsCategories =\n | \"income\"\n | \"population\"\n | \"housing\"\n | \"household\"\n | \"education\"\n | \"commute\"\n | \"languages\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n demographicsData: Demographics;\n country: string;\n locale: \"en\" | \"fr\";\n hideAttribution: boolean;\n};\n\nconst NeighborhoodDemographicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodDemographics = () =>\n useContext(NeighborhoodDemographicsContext);\n\nconst NeighborhoodDemographicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodDemographicsProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n location: {\n lat:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lat\n : undefined,\n lng:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lng\n : undefined,\n },\n },\n );\n\n const geography = useMemo(() => {\n const geographiesArray = Object.values(geographyData || {});\n\n return geographiesArray[0];\n }, [isGeographyLoading, geographyData]);\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 {\n data: { country },\n } = useLocation({\n lat: geography?.centroid.lat,\n lng: geography?.centroid.lng,\n });\n\n const { data: demographicsData, isFetching: isDemographicsFetching } =\n useDemographicsData({\n geographyId,\n });\n\n return (\n <NeighborhoodDemographicsContext.Provider\n value={{\n isLoading: isGeographyLoading || isDemographicsFetching,\n demographicsData: demographicsData || {},\n country: country || \"CA\",\n locale: sdkState.globalOptions?.locale || \"en\",\n hideAttribution: sdkState.options?.hideAttribution || false,\n }}\n >\n {children}\n </NeighborhoodDemographicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodDemographics, NeighborhoodDemographicsProvider };\n","import React, { useState, useMemo, isValidElement } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { type SectionHeaders } from \"../../types\";\nimport { Accordion } from \"../Accordion\";\nimport { Tabs } from \"../Tabs\";\nimport * as styles from \"./styles\";\nimport { sectionKeys, sectionIcons } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const Container = ({\n className,\n children,\n}: {\n className?: string;\n children: React.ReactNode[];\n}) => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const tracking = useTracking();\n const currentBreakpoints = useResponsiveBreakpoints();\n const [activeSectionIndex, setActiveSectionIndex] = useState(0);\n const { demographicsData } = useNeighborhoodDemographics();\n\n const omitTabs = useMemo(() => {\n if (!demographicsData) {\n return [];\n }\n\n const tabsToOmit: string[] = [];\n const dataKeys = {\n income: \"income\",\n population: \"population_age\",\n housing: \"housing_tenancy\",\n household: \"household_composition\",\n commute: \"commute_mode\",\n education: \"education_level\",\n languages: \"mother_tongue\",\n };\n\n Object.entries(dataKeys).forEach(([key, value]) => {\n if (!Object.keys(demographicsData).includes(value)) {\n tabsToOmit.push(key);\n }\n });\n return tabsToOmit;\n }, [demographicsData]);\n\n const sectionHeaders: SectionHeaders = useMemo(\n () =>\n sectionKeys\n .filter((value) => !omitTabs.includes(value))\n .map((key) => ({\n title: t(`data.${key}.title`),\n icon: sectionIcons[key],\n key,\n })),\n [omitTabs],\n );\n\n // Uses the name of the component to figure out if it should be displayed or not\n const sectionChildren = useMemo(\n () =>\n children.filter(\n (child) =>\n isValidElement(child) &&\n typeof child.type === \"function\" &&\n !omitTabs.includes(child.type.name.toLocaleLowerCase()),\n ),\n [children, omitTabs],\n );\n\n const tabAdaptedActiveSectionIndex = useMemo(\n () =>\n currentBreakpoints && currentBreakpoints.lg && activeSectionIndex < 0\n ? 0\n : activeSectionIndex,\n [currentBreakpoints, activeSectionIndex],\n );\n\n const handleOnTabChange = (index: number) => {\n setActiveSectionIndex(index);\n\n if (\n activeSectionIndex !== index &&\n typeof sectionHeaders[index] !== \"undefined\"\n ) {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: sectionHeaders[index].key,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: sectionHeaders[index].key,\n },\n });\n }\n };\n\n if (activeSectionIndex > children.length - 1) {\n // This should never really happen, but in case there aren't enough children, we'll display this error in the console\n\n console.error(\n \"Invalid tab content accessor. Index does not exist on the supplied list of nodes.\",\n );\n }\n\n return (\n <div className={`${styles.wrapper} ${className || \"\"}`}>\n {currentBreakpoints && !currentBreakpoints.lg && (\n <Accordion\n sectionHeaders={sectionHeaders}\n activeTabIndex={tabAdaptedActiveSectionIndex}\n onTabChange={handleOnTabChange}\n >\n {sectionChildren[tabAdaptedActiveSectionIndex]}\n </Accordion>\n )}\n {currentBreakpoints && currentBreakpoints.lg && (\n <Tabs\n sectionHeaders={sectionHeaders}\n activeTabIndex={tabAdaptedActiveSectionIndex}\n onTabChange={handleOnTabChange}\n >\n {sectionChildren[tabAdaptedActiveSectionIndex]}\n </Tabs>\n )}\n </div>\n );\n};\n","export const container = `\n flex flex-col flex-1\n`;\n\nexport const noDataElement = `\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n`;\n\nexport const spinner = `\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n`;\n\nexport const graphLayoutWrapper = `\n flex flex-col justify-start gap-3\n md:justify-between md:flex-row\n h-full\n`;\n\nexport const graphSideBySide = `\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col\n`;\n\nexport const graphContainer = `\n w-full md:h-full\n data-[size=quarter]:h-[25%] md:data-[size=quarter]:h-full\n data-[size=half]:h-[50%] md:data-[size=half]:h-full\n`;\n\nexport const donutChartIcon = `text-ll-primary w-2/4 h-2/4`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const AverageIncome = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { income },\n } = useNeighborhoodDemographics();\n\n const deleteKeys = [\"median_individual_income\", \"median_household_income\"];\n const incomeTypes = useMemo(\n () =>\n income?.variables\n .slice()\n .reverse()\n .filter(\n (variable) =>\n !variable.type ||\n variable.type === \"average\" ||\n variable.type === \"median\",\n ) || [\n {\n variable: \"avg_individual_income\",\n label: \"Avg individual income\",\n value:\n income?.variables?.find((x) => x.variable === \"inc_person\")\n ?.value || 0.0,\n },\n {\n variable: \"avg_household_income\",\n label: \"Avg household income\",\n value:\n income?.variables?.find((x) => x.variable === \"inc_home\")?.value ||\n 0.0,\n },\n ],\n [income?.variables],\n );\n\n /**\n * Intl.NumberFormat does a good job at displaying currency.\n *\n * We USD for the currency so that it formats to have a $ at the start of the amount.\n * If we put CAD, it will output as CAD$\n */\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.income.graphs.averageIncome.title\"),\n values: incomeTypes\n // Hotfix: Remove duplicated keys, will get resolved after some API work\n .filter((value) => !deleteKeys.includes(value.variable))\n .map((incomeType) => ({\n variable: incomeType.variable,\n value: `${new Intl.NumberFormat(\"en-EN\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 1,\n }).format(incomeType.value / 1000)}${\n incomeType.value >= 1000 ? \"k\" : \"\"\n }`,\n label: t(\n `data.income.graphs.averageIncome.types.${incomeType.variable as \"avg_household_income\" | \"avg_individual_income\"}`,\n ),\n })),\n },\n }),\n [incomeTypes],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const EmploymentStatus = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { employment_status: employmentStatus },\n } = useNeighborhoodDemographics();\n\n const datasets = useMemo(\n () =>\n employmentStatus?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .map((variable: Variable) => ({\n label: variable.label,\n data: Number((variable.value * 100).toFixed(1)),\n })) || [],\n [employmentStatus?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.income.graphs.employment.title\"),\n values: datasets.map((item) => ({\n variable: item.label.replace(\" \", \"_\"),\n label: item.label,\n value: `${item.data}%`,\n })),\n },\n }),\n [datasets],\n );\n\n if (!employmentStatus) {\n return null;\n }\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const IncomeBrackets = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { income_level: incomeLevel },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = incomeLevel?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .sort(\n (a, b) =>\n Number(a.variable.split(\"_\")[1]) - Number(b.variable.split(\"_\")[1]),\n );\n\n return {\n labels: variables?.map((variable) => variable.label) || [],\n data:\n variables?.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [incomeLevel?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.income.graphs.incomeBrackets.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { AverageIncome } from \"./AverageIncome\";\n\nimport { EmploymentStatus } from \"./EmploymentStatus\";\nimport { IncomeBrackets } from \"./IncomeBrackets\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Income = () => {\n const {\n demographicsData: { income_level: incomeLevel },\n } = useNeighborhoodDemographics();\n\n // Employment status and Income level only available in the USA\n return (\n <>\n {incomeLevel ? (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <AverageIncome />\n </div>\n <div className={styles.graphContainer}>\n <EmploymentStatus />\n </div>\n </div>\n <IncomeBrackets />\n </div>\n ) : (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"quarter\">\n <AverageIncome />\n </div>\n </div>\n )}\n </>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { UsersFourIcon } from \"@phosphor-icons/react\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const TotalPopulation = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { population_total: populationTotal },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(\n () => populationTotal?.variables[0],\n [populationTotal?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.population.graphs.totalPopulation.title\"),\n values: [\n {\n variable: dataset?.variable || \"\",\n value: `${new Intl.NumberFormat(\"en-EN\").format(Math.round(dataset?.value || 0))}`,\n label: t(\"data.population.graphs.totalPopulation.title\"),\n icon: UsersFourIcon,\n },\n ],\n },\n }),\n [dataset],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const PopulationByAgeGroup = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { population_age: populationAge },\n } = useNeighborhoodDemographics();\n\n const populationAgeFormatted = useMemo(() => {\n if (!populationAge) {\n return null;\n }\n\n const filteredVariables = populationAge?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .sort(\n (a, b) =>\n Number(a.variable.split(\"_\")[1]) - Number(b.variable.split(\"_\")[1]),\n );\n\n if (populationAge?.variables.length > 12) {\n const keys = filteredVariables.map((e) => {\n const labels = e.label.split(\" \");\n labels.splice(1, 1);\n\n return labels;\n });\n\n const mergedPopulation: {\n variable: string;\n value: number;\n label: string;\n }[] = [];\n\n keys.forEach((element, index) => {\n if (index === 0 || index % 2 === 0) {\n mergedPopulation.push({\n variable: `age_${element[0]}_${keys[index + 1][1]}`,\n value:\n filteredVariables[index].value +\n filteredVariables[index + 1].value,\n label: `${element[0]} to ${keys[index + 1][1]}`,\n });\n }\n });\n\n return mergedPopulation;\n }\n\n return filteredVariables;\n }, [populationAge]);\n\n const dataset = useMemo(\n () => ({\n labels:\n populationAgeFormatted?.map((variable: Variable) => variable.label) ||\n [],\n data:\n populationAgeFormatted?.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [populationAgeFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.population.graphs.populationByAgeGroup.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { TotalPopulation } from \"./TotalPopulation\";\nimport { PopulationByAgeGroup } from \"./PopulationByAgeGroup\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Population = () => {\n const {\n demographicsData: { population_total: populationTotal },\n } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {populationTotal && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer} data-size=\"half\">\n <TotalPopulation />\n </div>\n </div>\n )}\n\n <div className={styles.graphContainer} data-size=\"half\">\n <PopulationByAgeGroup />\n </div>\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const HomeOwnershipType = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n },\n } = useNeighborhoodDemographics();\n\n // For the US, the name of the property changes\n const housingInfo = useMemo(\n () => housingTenancy || propertyTenure,\n [housingTenancy, propertyTenure],\n );\n\n const dataset = useMemo(\n () =>\n housingInfo?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .map((variable: Variable) => ({\n label: variable.label,\n data: Number((variable.value * 100).toFixed(1)),\n })) || [],\n [housingInfo?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.housing.graphs.homeOwnershipType.title\"),\n values: dataset.map((item) => ({\n variable: item.label.replace(\" \", \"_\"),\n label: item.label,\n value: `${item.data}%`,\n })),\n },\n }),\n [dataset],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const TypeOfHousing = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { housing_type: housingType },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = housingType?.variables.filter(\n (variable) => !variable.type || variable.type === \"percent\",\n );\n\n return {\n labels: variables?.map((variable) => variable.label) || [],\n data:\n variables?.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [housingType?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.housing.graphs.typeOfHousing.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { HomeOwnershipType } from \"./HomeOwnershipType\";\nimport { TypeOfHousing } from \"./TypeOfHousing\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Housing = () => {\n const {\n demographicsData: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n housing_type: housingType,\n },\n } = useNeighborhoodDemographics();\n\n // For the US, the name of the property changes\n const housingInfo = housingTenancy || propertyTenure;\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {housingInfo && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <HomeOwnershipType />\n </div>\n </div>\n )}\n {housingType && (\n <div className={styles.graphContainer}>\n <TypeOfHousing />\n </div>\n )}\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { UsersThreeIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const HouseholdComposition = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { household_composition: householdComposition },\n } = useNeighborhoodDemographics();\n\n const householdFormatted = useMemo(\n () =>\n householdComposition?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [householdComposition?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n householdFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data:\n householdFormatted?.map((variable: Variable) => variable.value) || [],\n }),\n [householdFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.household.graphs.householdComposition.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <UsersThreeIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { HouseholdComposition } from \"./HouseholdComposition\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Household = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <HouseholdComposition />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { PathIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const CommuteMode = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { commute_mode: commuteMode },\n } = useNeighborhoodDemographics();\n\n const commuteFormatted = useMemo(\n () =>\n commuteMode?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [commuteMode?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n commuteFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data: commuteFormatted?.map((variable: Variable) => variable.value) || [],\n }),\n [commuteFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.commute.graphs.commuteMode.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <PathIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { CommuteMode } from \"./CommuteMode\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Commute = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <CommuteMode />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const EducationLevel = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { education_level: educationLevel },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = educationLevel?.variables.filter(\n (variable) => !variable.type || variable.type === \"percent\",\n );\n\n return {\n labels: variables?.map((variable: Variable) => variable.label) || [],\n data:\n variables?.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [educationLevel?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.education.graphs.educationLevel.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { EducationLevel } from \"./EducationLevel\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Education = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <EducationLevel />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { TranslateIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const SpokenLanguages = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { official_language_knowledge: oficialLanguages },\n } = useNeighborhoodDemographics();\n\n const oficialLanguagesFormatted = useMemo(\n () =>\n oficialLanguages?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [oficialLanguages?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n oficialLanguagesFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data:\n oficialLanguagesFormatted?.map(\n (variable: Variable) => variable.value,\n ) || [],\n }),\n [oficialLanguagesFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.languages.graphs.spokenLanguages.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <TranslateIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const MotherTongue = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { mother_tongue: motherTongue },\n } = useNeighborhoodDemographics();\n\n // The reason for the code below is because at the moment we only want to display the first 10 languages.\n // This is because displaying more than 10 languages at a time doesnt fit and ChartJS end up hiding some of the values.\n // french_and non_official_language_s and english_and_non_official_language_s' are too long to be displayed on mobile\n // So they are being filtered out.\n const motherTongueFormatted = useMemo(\n () =>\n motherTongue?.variables\n .filter(\n (item) =>\n item.variable !== \"french_and_non_official_language_s\" &&\n item.variable !== \"english_and_non_official_language_s\",\n )\n .slice(0, 10)\n ?.map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n variable.value > 0,\n ),\n [motherTongue?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n motherTongueFormatted?.map((variable: Variable) => variable.label) ||\n [],\n data:\n motherTongueFormatted?.map((variable: Variable) => variable.value) ||\n [],\n }),\n [motherTongueFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.languages.graphs.motherTongue.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { SpokenLanguages } from \"./SpokenLanguages\";\nimport { MotherTongue } from \"./MotherTongue\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Languages = () => {\n const {\n demographicsData: { official_language_knowledge: oficialLanguages },\n } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {oficialLanguages && (\n <div className={styles.graphContainer} data-size=\"half\">\n <SpokenLanguages />\n </div>\n )}\n <div className={styles.graphContainer} data-size=\"half\">\n <MotherTongue />\n </div>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Container } from \"./Container\";\nimport type { DemographicsCategory } from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const Root = ({\n children,\n}: {\n omitTabs?: DemographicsCategory[];\n className?: string;\n children: React.ReactNode[];\n}) => <Container>{children}</Container>;\n\n// Export children\nexport * from \"./Content\";\n","export const spinner = `\n flex justify-center items-center \n px-3 pt-4 pb-3 w-full h-full\n`;\n\nexport const noDataContainer = `\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport * as Sections from \"../Sections\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { NoDataContentDeprecated } from \"~/components/NoDataContent\";\nimport { LoadingSpinner } from \"~/components/deprecated\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const { isLoading, demographicsData } = useNeighborhoodDemographics();\n\n return (\n <>\n {isLoading && (\n <div className={styles.spinner}>\n <LoadingSpinner image />\n </div>\n )}\n\n {!isLoading &&\n (!demographicsData || Object.keys(demographicsData).length === 0) && (\n <NoDataContentDeprecated text={t(\"noData\")} />\n )}\n\n {demographicsData && (\n <Sections.Root>\n <Sections.Income />\n <Sections.Population />\n <Sections.Housing />\n <Sections.Household />\n <Sections.Education />\n <Sections.Commute />\n <Sections.Languages />\n </Sections.Root>\n )}\n </>\n );\n};\n","export const container = `\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n`;\n","import React from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\nimport { Text } from \"~/components/deprecated\";\nimport { AttributionDeprecated as Attribution } from \"~/components/Attribution\";\n\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const Footer = () => {\n const { t } = useTranslation([\"neighborhoodDemographics\", \"common\"]);\n const { locale, hideAttribution } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.container}>\n <Text\n noMargin\n variant=\"caption1\"\n color=\"--ll-color-on-background-variant1\"\n >\n {t(\"note\")}\n </Text>\n {!hideAttribution && (\n <Attribution sdkName=\"neighborhood-demographics\" locale={locale} />\n )}\n </div>\n );\n};\n","import { ObjectSchema, mixed, boolean, number, string, object } from \"yup\";\nimport type { 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 from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport { useTranslation } from \"react-i18next\";\nimport { Content } from \"./components/Content\";\nimport { Footer } from \"./components/Footer\";\nimport { NeighborhoodDemographicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodDemographicsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\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\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodDemographics = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const { sdkState } = useStateManagerContext<NeighborhoodDemographicsProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n return (\n <ResizeWrapper>\n <ValidateOptions\n sdk=\"Neighborhood Demographics\"\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_DEMOGRAPHICS}\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_DEMOGRAPHICS,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\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 <NeighborhoodDemographicsProvider>\n <TitleHeader\n title={\n typeof sdkState.options?.title === \"string\" ||\n sdkState.options?.title === false\n ? sdkState.options.title\n : t(\"title\")\n }\n />\n <Content />\n <Footer />\n </NeighborhoodDemographicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodDemographics;\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NeighborhoodDemographics-legacy-C6PkQmoB.js","names":["e","e","t","d","t","a","t"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/Cardholder.es.js","../../../../node_modules/@phosphor-icons/react/dist/defs/House.es.js","../../../../node_modules/@phosphor-icons/react/dist/defs/User.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/Cardholder.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/House.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/User.es.js","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleIcon/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleIcon/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleText/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/TitleText/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Accordion/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Accordion/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Tabs/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Tabs/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/constants.ts","../../src/sdks/NeighborhoodDemographics/types.ts","../../src/sdks/NeighborhoodDemographics/context.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Container/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/AverageIncome/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/EmploymentStatus/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/IncomeBrackets/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Income/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/TotalPopulation/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/PopulationByAgeGroup/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Population/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/HomeOwnershipType/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/TypeOfHousing/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Housing/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Household/HouseholdComposition/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Household/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Commute/CommuteMode/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Commute/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Education/EducationLevel/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Education/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/SpokenLanguages/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/MotherTongue/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/Content/Languages/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Sections/Root/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Content/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Content/index.tsx","../../src/sdks/NeighborhoodDemographics/components/Footer/styles.ts","../../src/sdks/NeighborhoodDemographics/components/Footer/index.tsx","../../src/sdks/NeighborhoodDemographics/schema.ts","../../src/sdks/NeighborhoodDemographics/index.tsx"],"sourcesContent":["import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,44H48A28,28,0,0,0,20,72V184a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V72A28,28,0,0,0,208,44ZM48,68H208a4,4,0,0,1,4,4V88H160a12,12,0,0,0-12,12,20,20,0,0,1-40,0A12,12,0,0,0,96,88H44V72A4,4,0,0,1,48,68ZM208,188H48a4,4,0,0,1-4-4V112H85.66a44,44,0,0,0,84.68,0H212v72A4,4,0,0,1,208,188Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M224,72v48H160a32,32,0,0,1-64,0H32V72A16,16,0,0,1,48,56H208A16,16,0,0,1,224,72Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48ZM40,96H216v16H160a8,8,0,0,0-8,8,24,24,0,0,1-48,0,8,8,0,0,0-8-8H40Zm8-32H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64ZM208,192H48a8,8,0,0,1-8-8V128H88.8a40,40,0,0,0,78.4,0H216v56A8,8,0,0,1,208,192Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48Zm-56,72a24,24,0,0,1-48,0,8,8,0,0,0-8-8H40V96H216v16H160A8,8,0,0,0,152,120ZM48,64H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,50H48A22,22,0,0,0,26,72V184a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V72A22,22,0,0,0,208,50ZM38,94H218v20H160a6,6,0,0,0-6,6,26,26,0,0,1-52,0,6,6,0,0,0-6-6H38ZM48,62H208a10,10,0,0,1,10,10V82H38V72A10,10,0,0,1,48,62ZM208,194H48a10,10,0,0,1-10-10V126H90.47a38,38,0,0,0,75.06,0H218v58A10,10,0,0,1,208,194Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,48H48A24,24,0,0,0,24,72V184a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V72A24,24,0,0,0,208,48ZM40,96H216v16H160a8,8,0,0,0-8,8,24,24,0,0,1-48,0,8,8,0,0,0-8-8H40Zm8-32H208a8,8,0,0,1,8,8v8H40V72A8,8,0,0,1,48,64ZM208,192H48a8,8,0,0,1-8-8V128H88.8a40,40,0,0,0,78.4,0H216v56A8,8,0,0,1,208,192Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,52H48A20,20,0,0,0,28,72V184a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V72A20,20,0,0,0,208,52ZM36,92H220v24H160a4,4,0,0,0-4,4,28,28,0,0,1-56,0,4,4,0,0,0-4-4H36ZM48,60H208a12,12,0,0,1,12,12V84H36V72A12,12,0,0,1,48,60ZM208,196H48a12,12,0,0,1-12-12V124H92.22a36,36,0,0,0,71.56,0H220v60A12,12,0,0,1,208,196Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M234.38,210a123.36,123.36,0,0,0-60.78-53.23,76,76,0,1,0-91.2,0A123.36,123.36,0,0,0,21.62,210a12,12,0,1,0,20.77,12c18.12-31.32,50.12-50,85.61-50s67.49,18.69,85.61,50a12,12,0,0,0,20.77-12ZM76,96a52,52,0,1,1,52,52A52.06,52.06,0,0,1,76,96Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M192,96a64,64,0,1,1-64-64A64,64,0,0,1,192,96Z\", opacity: \"0.2\" }), /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.93,220a8,8,0,0,1-6.93,4H32a8,8,0,0,1-6.92-12c15.23-26.33,38.7-45.21,66.09-54.16a72,72,0,1,1,73.66,0c27.39,8.95,50.86,27.83,66.09,54.16A8,8,0,0,1,230.93,220Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M229.19,213c-15.81-27.32-40.63-46.49-69.47-54.62a70,70,0,1,0-63.44,0C67.44,166.5,42.62,185.67,26.81,213a6,6,0,1,0,10.38,6C56.4,185.81,90.34,166,128,166s71.6,19.81,90.81,53a6,6,0,1,0,10.38-6ZM70,96a58,58,0,1,1,58,58A58.07,58.07,0,0,1,70,96Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8c18.84-32.56,52.14-52,89.07-52s70.23,19.44,89.07,52a8,8,0,1,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M227.46,214c-16.52-28.56-43-48.06-73.68-55.09a68,68,0,1,0-51.56,0c-30.64,7-57.16,26.53-73.68,55.09a4,4,0,0,0,6.92,4C55,184.19,89.62,164,128,164s73,20.19,92.54,54a4,4,0,0,0,3.46,2,3.93,3.93,0,0,0,2-.54A4,4,0,0,0,227.46,214ZM68,96a60,60,0,1,1,60,60A60.07,60.07,0,0,1,68,96Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport d from \"../defs/Cardholder.es.js\";\nconst r = o.forwardRef((e, a) => /* @__PURE__ */ o.createElement(t, { ref: a, ...e, weights: d }));\nr.displayName = \"CardholderIcon\";\nconst s = r;\nexport {\n s as Cardholder,\n r as CardholderIcon\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/House.es.js\";\nconst e = o.forwardRef((r, s) => /* @__PURE__ */ o.createElement(t, { ref: s, ...r, weights: a }));\ne.displayName = \"HouseIcon\";\nconst n = e;\nexport {\n n as House,\n e as HouseIcon\n};\n","import * as e from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/User.es.js\";\nconst o = e.forwardRef((r, s) => /* @__PURE__ */ e.createElement(t, { ref: s, ...r, weights: a }));\no.displayName = \"UserIcon\";\nconst n = o;\nexport {\n n as User,\n o as UserIcon\n};\n","export const icon = `w-6 h-6`;\n","import React from \"react\";\n\nimport type { Icon } from \"@phosphor-icons/react\";\n\nimport * as styles from \"./styles\";\n\nexport const TitleIcon = ({ icon: Icon }: { icon: Icon }) => (\n <Icon className={styles.icon} />\n);\n","export const text = `text-base leading-6 font-medium`;\n","import React from \"react\";\n\nimport * as styles from \"./styles\";\n\nexport const TitleText = ({\n text,\n className,\n}: {\n text: string;\n className?: string;\n}) => <h2 className={`${styles.text} ${className || \"\"}`}>{text}</h2>;\n","export const container = `flex flex-col gap-2`;\nexport const item = `px-4 rounded border border-ll-border shadow cursor-pointer group`;\nexport const header = `py-3 flex items-center gap-1.5 group-data-[active=true]:text-ll-primary`;\nexport const title = `grow`;\nexport const arrowIcon = `w-3.5 h-3.5 text-ll-placeholder data-[is-active=true]:rotate-180 transition-transform duration-50 ease-in-out`;\nexport const content = `py-3 border-t border-ll-surface`;\n","import React from \"react\";\n\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\nimport { TitleIcon } from \"../TitleIcon\";\nimport { TitleText } from \"../TitleText\";\n\nimport { type SectionHeaders } from \"../../types\";\nimport * as styles from \"./styles\";\n\nexport const Accordion = ({\n sectionHeaders,\n activeTabIndex,\n onTabChange,\n children,\n}: {\n sectionHeaders: SectionHeaders;\n activeTabIndex: number;\n onTabChange: (index: number) => void;\n children?: React.ReactNode;\n}) => (\n <div className={styles.container}>\n {sectionHeaders.map((section, index) => (\n <div\n key={`section-accordion-${section.title}`}\n className={styles.item}\n onClick={() => onTabChange(activeTabIndex === index ? -1 : index)}\n data-active={activeTabIndex === index}\n >\n <div className={styles.header}>\n <TitleIcon icon={section.icon} />\n <TitleText text={section.title} className={styles.title} />\n <CaretDownIcon\n className={styles.arrowIcon}\n data-is-active={activeTabIndex === index}\n />\n </div>\n {activeTabIndex === index && (\n <div className={styles.content}>{children}</div>\n )}\n </div>\n ))}\n </div>\n);\n","export const container = `w-full`;\nexport const borderContainer = `border-b-4 border-ll-surface rounded flex items-center justify-center`;\nexport const itemActiveBorder = `h-1 bg-ll-primary rounded w-full -mb-1 data-[active=false]:opacity-0 transition-opacity`;\nexport const tabsContainer = `flex items-center justify-center pb-4`;\nexport const tab = `w-full flex items-center justify-center py-2.5 gap-2 bg-none border-none data-[active=true]:text-ll-primary cursor-pointer transition-colors`;\nexport const tabText = `m-0 text-base leading-6 font-medium`;\nexport const content = `p-6`;\n","import React from \"react\";\nimport * as Tab from \"@radix-ui/react-tabs\";\n\nimport { TitleIcon } from \"../TitleIcon\";\n\nimport { type SectionHeaders } from \"../../types\";\nimport * as styles from \"./styles\";\n\nexport const Tabs = ({\n sectionHeaders,\n activeTabIndex,\n onTabChange,\n children,\n}: {\n sectionHeaders: SectionHeaders;\n activeTabIndex: number;\n onTabChange: (index: number) => void;\n children?: React.ReactNode;\n}) => {\n const activeKey = sectionHeaders[activeTabIndex]?.key;\n\n const handleValueChange = (value: string) => {\n const index = sectionHeaders.findIndex((section) => section.key === value);\n\n if (index !== -1) {\n onTabChange(index);\n }\n };\n\n return (\n <Tab.Root value={activeKey} onValueChange={handleValueChange}>\n <div className={styles.container}>\n <Tab.List\n className={styles.tabsContainer}\n aria-label=\"Demographics tabs\"\n >\n {sectionHeaders.map((section, index) => (\n <Tab.Trigger\n key={`section-tab-${section.key}`}\n value={section.key}\n className={styles.tab}\n data-active={activeTabIndex === index}\n >\n <TitleIcon icon={section.icon} />\n <p className={styles.tabText}>{section.title}</p>\n </Tab.Trigger>\n ))}\n </Tab.List>\n <div className={styles.borderContainer}>\n {sectionHeaders.map((section, index) => (\n <div\n key={`section-tab-border-${section.key}`}\n className={styles.itemActiveBorder}\n data-active={activeTabIndex === index}\n />\n ))}\n </div>\n </div>\n <Tab.Content value={activeKey ?? \"\"} className={styles.content}>\n {children}\n </Tab.Content>\n </Tab.Root>\n );\n};\n","export const wrapper = `text-ll-placeholder`;\n","import {\n type Icon,\n CardholderIcon,\n UserIcon,\n HouseIcon,\n UsersFourIcon,\n GraduationCapIcon,\n CarIcon,\n TranslateIcon,\n} from \"@phosphor-icons/react\";\nimport type { DemographicsCategory } from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const sectionKeys: DemographicsCategory[] = [\n \"income\",\n \"population\",\n \"housing\",\n \"household\",\n \"education\",\n \"commute\",\n \"languages\",\n];\n\nexport const sectionIcons: { [key in DemographicsCategory]: Icon } = {\n income: CardholderIcon,\n population: UserIcon,\n housing: HouseIcon,\n household: UsersFourIcon,\n education: GraduationCapIcon,\n commute: CarIcon,\n languages: TranslateIcon,\n};\n","import { SDKOptions } from \"~/types/options\";\n\nexport type DemographicsCategory =\n | \"income\"\n | \"population\"\n | \"housing\"\n | \"household\"\n | \"education\"\n | \"commute\"\n | \"languages\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n title?: boolean | string;\n hideAttribution?: boolean;\n};\n\nexport type NeighborhoodDemographicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-demographics-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-demographics-Category-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n}\n","import React, { useContext, useMemo } from \"react\";\nimport { type Demographics } from \"@local-logic/client\";\n\nimport {\n type NeighborhoodDemographicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { useTracking } from \"~/tracking\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useLocation } from \"~/hooks/useLocation\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useDemographicsData } from \"~/hooks/useDemographicsData\";\n\nexport type DemographicsCategories =\n | \"income\"\n | \"population\"\n | \"housing\"\n | \"household\"\n | \"education\"\n | \"commute\"\n | \"languages\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n demographicsData: Demographics;\n country: string;\n locale: \"en\" | \"fr\";\n hideAttribution: boolean;\n};\n\nconst NeighborhoodDemographicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodDemographics = () =>\n useContext(NeighborhoodDemographicsContext);\n\nconst NeighborhoodDemographicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodDemographicsProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n location: {\n lat:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lat\n : undefined,\n lng:\n typeof sdkState.options?.geographyId === \"undefined\"\n ? sdkState.options?.lng\n : undefined,\n },\n },\n );\n\n const geography = useMemo(() => {\n const geographiesArray = Object.values(geographyData || {});\n\n return geographiesArray[0];\n }, [isGeographyLoading, geographyData]);\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 {\n data: { country },\n } = useLocation({\n lat: geography?.centroid.lat,\n lng: geography?.centroid.lng,\n });\n\n const { data: demographicsData, isFetching: isDemographicsFetching } =\n useDemographicsData({\n geographyId,\n });\n\n return (\n <NeighborhoodDemographicsContext.Provider\n value={{\n isLoading: isGeographyLoading || isDemographicsFetching,\n demographicsData: demographicsData || {},\n country: country || \"CA\",\n locale: sdkState.globalOptions?.locale || \"en\",\n hideAttribution: sdkState.options?.hideAttribution || false,\n }}\n >\n {children}\n </NeighborhoodDemographicsContext.Provider>\n );\n};\n\nexport { useNeighborhoodDemographics, NeighborhoodDemographicsProvider };\n","import React, { useState, useMemo, isValidElement } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { type SectionHeaders } from \"../../types\";\nimport { Accordion } from \"../Accordion\";\nimport { Tabs } from \"../Tabs\";\nimport * as styles from \"./styles\";\nimport { sectionKeys, sectionIcons } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const Container = ({\n className,\n children,\n}: {\n className?: string;\n children: React.ReactNode[];\n}) => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const tracking = useTracking();\n const currentBreakpoints = useResponsiveBreakpoints();\n const [activeSectionIndex, setActiveSectionIndex] = useState(0);\n const { demographicsData } = useNeighborhoodDemographics();\n\n const omitTabs = useMemo(() => {\n if (!demographicsData) {\n return [];\n }\n\n const tabsToOmit: string[] = [];\n const dataKeys = {\n income: \"income\",\n population: \"population_age\",\n housing: \"housing_tenancy\",\n household: \"household_composition\",\n commute: \"commute_mode\",\n education: \"education_level\",\n languages: \"mother_tongue\",\n };\n\n Object.entries(dataKeys).forEach(([key, value]) => {\n if (!Object.keys(demographicsData).includes(value)) {\n tabsToOmit.push(key);\n }\n });\n return tabsToOmit;\n }, [demographicsData]);\n\n const sectionHeaders: SectionHeaders = useMemo(\n () =>\n sectionKeys\n .filter((value) => !omitTabs.includes(value))\n .map((key) => ({\n title: t(`data.${key}.title`),\n icon: sectionIcons[key],\n key,\n })),\n [omitTabs],\n );\n\n // Uses the name of the component to figure out if it should be displayed or not\n const sectionChildren = useMemo(\n () =>\n children.filter(\n (child) =>\n isValidElement(child) &&\n typeof child.type === \"function\" &&\n !omitTabs.includes(child.type.name.toLocaleLowerCase()),\n ),\n [children, omitTabs],\n );\n\n const tabAdaptedActiveSectionIndex = useMemo(\n () =>\n currentBreakpoints && currentBreakpoints.lg && activeSectionIndex < 0\n ? 0\n : activeSectionIndex,\n [currentBreakpoints, activeSectionIndex],\n );\n\n const handleOnTabChange = (index: number) => {\n setActiveSectionIndex(index);\n\n if (\n activeSectionIndex !== index &&\n typeof sectionHeaders[index] !== \"undefined\"\n ) {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: sectionHeaders[index].key,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: sectionHeaders[index].key,\n },\n });\n }\n };\n\n if (activeSectionIndex > children.length - 1) {\n // This should never really happen, but in case there aren't enough children, we'll display this error in the console\n\n console.error(\n \"Invalid tab content accessor. Index does not exist on the supplied list of nodes.\",\n );\n }\n\n return (\n <div className={`${styles.wrapper} ${className || \"\"}`}>\n {currentBreakpoints && !currentBreakpoints.lg && (\n <Accordion\n sectionHeaders={sectionHeaders}\n activeTabIndex={tabAdaptedActiveSectionIndex}\n onTabChange={handleOnTabChange}\n >\n {sectionChildren[tabAdaptedActiveSectionIndex]}\n </Accordion>\n )}\n {currentBreakpoints && currentBreakpoints.lg && (\n <Tabs\n sectionHeaders={sectionHeaders}\n activeTabIndex={tabAdaptedActiveSectionIndex}\n onTabChange={handleOnTabChange}\n >\n {sectionChildren[tabAdaptedActiveSectionIndex]}\n </Tabs>\n )}\n </div>\n );\n};\n","export const container = `\n flex flex-col flex-1\n`;\n\nexport const noDataElement = `\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n`;\n\nexport const spinner = `\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n`;\n\nexport const graphLayoutWrapper = `\n flex flex-col justify-start gap-3\n md:justify-between md:flex-row\n h-full\n`;\n\nexport const graphSideBySide = `\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col\n`;\n\nexport const graphContainer = `\n w-full md:h-full\n data-[size=quarter]:h-[25%] md:data-[size=quarter]:h-full\n data-[size=half]:h-[50%] md:data-[size=half]:h-full\n`;\n\nexport const donutChartIcon = `text-ll-primary w-2/4 h-2/4`;\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const AverageIncome = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { income },\n } = useNeighborhoodDemographics();\n\n const deleteKeys = [\"median_individual_income\", \"median_household_income\"];\n const incomeTypes = useMemo(\n () =>\n income?.variables\n .slice()\n .reverse()\n .filter(\n (variable) =>\n !variable.type ||\n variable.type === \"average\" ||\n variable.type === \"median\",\n ) || [\n {\n variable: \"avg_individual_income\",\n label: \"Avg individual income\",\n value:\n income?.variables?.find((x) => x.variable === \"inc_person\")\n ?.value || 0.0,\n },\n {\n variable: \"avg_household_income\",\n label: \"Avg household income\",\n value:\n income?.variables?.find((x) => x.variable === \"inc_home\")?.value ||\n 0.0,\n },\n ],\n [income?.variables],\n );\n\n /**\n * Intl.NumberFormat does a good job at displaying currency.\n *\n * We USD for the currency so that it formats to have a $ at the start of the amount.\n * If we put CAD, it will output as CAD$\n */\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.income.graphs.averageIncome.title\"),\n values: incomeTypes\n // Hotfix: Remove duplicated keys, will get resolved after some API work\n .filter((value) => !deleteKeys.includes(value.variable))\n .map((incomeType) => ({\n variable: incomeType.variable,\n value: `${new Intl.NumberFormat(\"en-EN\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 1,\n }).format(incomeType.value / 1000)}${\n incomeType.value >= 1000 ? \"k\" : \"\"\n }`,\n label: t(\n `data.income.graphs.averageIncome.types.${incomeType.variable as \"avg_household_income\" | \"avg_individual_income\"}`,\n ),\n })),\n },\n }),\n [incomeTypes],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const EmploymentStatus = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { employment_status: employmentStatus },\n } = useNeighborhoodDemographics();\n\n const datasets = useMemo(\n () =>\n employmentStatus?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .map((variable: Variable) => ({\n label: variable.label,\n data: Number((variable.value * 100).toFixed(1)),\n })) || [],\n [employmentStatus?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.income.graphs.employment.title\"),\n values: datasets.map((item) => ({\n variable: item.label.replace(\" \", \"_\"),\n label: item.label,\n value: `${item.data}%`,\n })),\n },\n }),\n [datasets],\n );\n\n if (!employmentStatus) {\n return null;\n }\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const IncomeBrackets = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { income_level: incomeLevel },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = incomeLevel?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .sort(\n (a, b) =>\n Number(a.variable.split(\"_\")[1]) - Number(b.variable.split(\"_\")[1]),\n );\n\n return {\n labels: variables?.map((variable) => variable.label) || [],\n data:\n variables?.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [incomeLevel?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.income.graphs.incomeBrackets.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { AverageIncome } from \"./AverageIncome\";\n\nimport { EmploymentStatus } from \"./EmploymentStatus\";\nimport { IncomeBrackets } from \"./IncomeBrackets\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Income = () => {\n const {\n demographicsData: { income_level: incomeLevel },\n } = useNeighborhoodDemographics();\n\n // Employment status and Income level only available in the USA\n return (\n <>\n {incomeLevel ? (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <AverageIncome />\n </div>\n <div className={styles.graphContainer}>\n <EmploymentStatus />\n </div>\n </div>\n <IncomeBrackets />\n </div>\n ) : (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"quarter\">\n <AverageIncome />\n </div>\n </div>\n )}\n </>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { UsersFourIcon } from \"@phosphor-icons/react\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const TotalPopulation = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { population_total: populationTotal },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(\n () => populationTotal?.variables[0],\n [populationTotal?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.population.graphs.totalPopulation.title\"),\n values: [\n {\n variable: dataset?.variable || \"\",\n value: `${new Intl.NumberFormat(\"en-EN\").format(Math.round(dataset?.value || 0))}`,\n label: t(\"data.population.graphs.totalPopulation.title\"),\n icon: UsersFourIcon,\n },\n ],\n },\n }),\n [dataset],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const PopulationByAgeGroup = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { population_age: populationAge },\n } = useNeighborhoodDemographics();\n\n const populationAgeFormatted = useMemo(() => {\n if (!populationAge) {\n return null;\n }\n\n const filteredVariables = populationAge?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .sort(\n (a, b) =>\n Number(a.variable.split(\"_\")[1]) - Number(b.variable.split(\"_\")[1]),\n );\n\n if (populationAge?.variables.length > 12) {\n const keys = filteredVariables.map((e) => {\n const labels = e.label.split(\" \");\n labels.splice(1, 1);\n\n return labels;\n });\n\n const mergedPopulation: {\n variable: string;\n value: number;\n label: string;\n }[] = [];\n\n keys.forEach((element, index) => {\n if (index === 0 || index % 2 === 0) {\n mergedPopulation.push({\n variable: `age_${element[0]}_${keys[index + 1][1]}`,\n value:\n filteredVariables[index].value +\n filteredVariables[index + 1].value,\n label: `${element[0]} to ${keys[index + 1][1]}`,\n });\n }\n });\n\n return mergedPopulation;\n }\n\n return filteredVariables;\n }, [populationAge]);\n\n const dataset = useMemo(\n () => ({\n labels:\n populationAgeFormatted?.map((variable: Variable) => variable.label) ||\n [],\n data:\n populationAgeFormatted?.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [populationAgeFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.population.graphs.populationByAgeGroup.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { TotalPopulation } from \"./TotalPopulation\";\nimport { PopulationByAgeGroup } from \"./PopulationByAgeGroup\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Population = () => {\n const {\n demographicsData: { population_total: populationTotal },\n } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {populationTotal && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer} data-size=\"half\">\n <TotalPopulation />\n </div>\n </div>\n )}\n\n <div className={styles.graphContainer} data-size=\"half\">\n <PopulationByAgeGroup />\n </div>\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const HomeOwnershipType = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n },\n } = useNeighborhoodDemographics();\n\n // For the US, the name of the property changes\n const housingInfo = useMemo(\n () => housingTenancy || propertyTenure,\n [housingTenancy, propertyTenure],\n );\n\n const dataset = useMemo(\n () =>\n housingInfo?.variables\n .filter((variable) => !variable.type || variable.type === \"percent\")\n .map((variable: Variable) => ({\n label: variable.label,\n data: Number((variable.value * 100).toFixed(1)),\n })) || [],\n [housingInfo?.variables],\n );\n\n const chartOptions = useMemo(\n () => ({\n options: {\n title: t(\"data.housing.graphs.homeOwnershipType.title\"),\n values: dataset.map((item) => ({\n variable: item.label.replace(\" \", \"_\"),\n label: item.label,\n value: `${item.data}%`,\n })),\n },\n }),\n [dataset],\n );\n\n return <DemographicsTextCard {...chartOptions} />;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const TypeOfHousing = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { housing_type: housingType },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = housingType?.variables.filter(\n (variable) => !variable.type || variable.type === \"percent\",\n );\n\n return {\n labels: variables?.map((variable) => variable.label) || [],\n data:\n variables?.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [housingType?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.housing.graphs.typeOfHousing.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { HomeOwnershipType } from \"./HomeOwnershipType\";\nimport { TypeOfHousing } from \"./TypeOfHousing\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Housing = () => {\n const {\n demographicsData: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n housing_type: housingType,\n },\n } = useNeighborhoodDemographics();\n\n // For the US, the name of the property changes\n const housingInfo = housingTenancy || propertyTenure;\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {housingInfo && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <HomeOwnershipType />\n </div>\n </div>\n )}\n {housingType && (\n <div className={styles.graphContainer}>\n <TypeOfHousing />\n </div>\n )}\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { UsersThreeIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const HouseholdComposition = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { household_composition: householdComposition },\n } = useNeighborhoodDemographics();\n\n const householdFormatted = useMemo(\n () =>\n householdComposition?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [householdComposition?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n householdFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data:\n householdFormatted?.map((variable: Variable) => variable.value) || [],\n }),\n [householdFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.household.graphs.householdComposition.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <UsersThreeIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { HouseholdComposition } from \"./HouseholdComposition\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Household = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <HouseholdComposition />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { PathIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const CommuteMode = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { commute_mode: commuteMode },\n } = useNeighborhoodDemographics();\n\n const commuteFormatted = useMemo(\n () =>\n commuteMode?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [commuteMode?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n commuteFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data: commuteFormatted?.map((variable: Variable) => variable.value) || [],\n }),\n [commuteFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.commute.graphs.commuteMode.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <PathIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { CommuteMode } from \"./CommuteMode\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Commute = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <CommuteMode />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const EducationLevel = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { education_level: educationLevel },\n } = useNeighborhoodDemographics();\n\n const dataset = useMemo(() => {\n const variables = educationLevel?.variables.filter(\n (variable) => !variable.type || variable.type === \"percent\",\n );\n\n return {\n labels: variables?.map((variable: Variable) => variable.label) || [],\n data:\n variables?.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n };\n }, [educationLevel?.variables]);\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.education.graphs.educationLevel.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { EducationLevel } from \"./EducationLevel\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Education = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer} data-size=\"half\">\n <EducationLevel />\n </div>\n </div>\n);\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { TranslateIcon } from \"@phosphor-icons/react\";\n\nimport type { Variable } from \"@local-logic/client\";\n\nimport * as styles from \"../../styles\";\nimport { DonutChart } from \"~/components/deprecated\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const SpokenLanguages = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { official_language_knowledge: oficialLanguages },\n } = useNeighborhoodDemographics();\n\n const oficialLanguagesFormatted = useMemo(\n () =>\n oficialLanguages?.variables\n .map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n Number((variable.value * 100).toFixed(1)) > 0,\n ),\n [oficialLanguages?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n oficialLanguagesFormatted?.map(\n (variable: Variable) => `${variable.value}% ${variable.label}`,\n ) || [],\n data:\n oficialLanguagesFormatted?.map(\n (variable: Variable) => variable.value,\n ) || [],\n }),\n [oficialLanguagesFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.languages.graphs.spokenLanguages.title\"),\n labels: dataset.labels,\n data: dataset.data,\n icon: <TranslateIcon className={styles.donutChartIcon} />,\n }),\n [dataset],\n );\n\n return <DonutChart {...chartOptions}></DonutChart>;\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const MotherTongue = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const {\n demographicsData: { mother_tongue: motherTongue },\n } = useNeighborhoodDemographics();\n\n // The reason for the code below is because at the moment we only want to display the first 10 languages.\n // This is because displaying more than 10 languages at a time doesnt fit and ChartJS end up hiding some of the values.\n // french_and non_official_language_s and english_and_non_official_language_s' are too long to be displayed on mobile\n // So they are being filtered out.\n const motherTongueFormatted = useMemo(\n () =>\n motherTongue?.variables\n .filter(\n (item) =>\n item.variable !== \"french_and_non_official_language_s\" &&\n item.variable !== \"english_and_non_official_language_s\",\n )\n .slice(0, 10)\n ?.map((variable: Variable) => ({\n ...variable,\n value: Number((variable.value * 100).toFixed(1)),\n }))\n .filter(\n (variable: Variable) =>\n (!variable.type || variable.type === \"percent\") &&\n variable.value > 0,\n ),\n [motherTongue?.variables],\n );\n\n const dataset = useMemo(\n () => ({\n labels:\n motherTongueFormatted?.map((variable: Variable) => variable.label) ||\n [],\n data:\n motherTongueFormatted?.map((variable: Variable) => variable.value) ||\n [],\n }),\n [motherTongueFormatted],\n );\n\n const chartOptions = useMemo(\n () => ({\n title: t(\"data.languages.graphs.motherTongue.title\"),\n labels: dataset.labels,\n data: dataset.data,\n unit: \"%\",\n }),\n [dataset],\n );\n\n return (\n <Chart.Root {...chartOptions}>\n <Chart.BarChart />\n </Chart.Root>\n );\n};\n","import React from \"react\";\n\nimport * as styles from \"../styles\";\nimport { SpokenLanguages } from \"./SpokenLanguages\";\nimport { MotherTongue } from \"./MotherTongue\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\n// TODO: To be reworked once we start implementing the new graphs\nexport const Languages = () => {\n const {\n demographicsData: { official_language_knowledge: oficialLanguages },\n } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {oficialLanguages && (\n <div className={styles.graphContainer} data-size=\"half\">\n <SpokenLanguages />\n </div>\n )}\n <div className={styles.graphContainer} data-size=\"half\">\n <MotherTongue />\n </div>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Container } from \"./Container\";\nimport type { DemographicsCategory } from \"~/sdks/NeighborhoodDemographics/types\";\n\nexport const Root = ({\n children,\n}: {\n omitTabs?: DemographicsCategory[];\n className?: string;\n children: React.ReactNode[];\n}) => <Container>{children}</Container>;\n\n// Export children\nexport * from \"./Content\";\n","export const spinner = `\n flex justify-center items-center \n px-3 pt-4 pb-3 w-full h-full\n`;\n\nexport const noDataContainer = `\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport * as Sections from \"../Sections\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nimport { NoDataContentDeprecated } from \"~/components/NoDataContent\";\nimport { LoadingSpinner } from \"~/components/deprecated\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const { isLoading, demographicsData } = useNeighborhoodDemographics();\n\n return (\n <>\n {isLoading && (\n <div className={styles.spinner}>\n <LoadingSpinner image />\n </div>\n )}\n\n {!isLoading &&\n (!demographicsData || Object.keys(demographicsData).length === 0) && (\n <NoDataContentDeprecated text={t(\"noData\")} />\n )}\n\n {demographicsData && (\n <Sections.Root>\n <Sections.Income />\n <Sections.Population />\n <Sections.Housing />\n <Sections.Household />\n <Sections.Education />\n <Sections.Commute />\n <Sections.Languages />\n </Sections.Root>\n )}\n </>\n );\n};\n","export const container = `\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n`;\n","import React from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\nimport { Text } from \"~/components/deprecated\";\nimport { AttributionDeprecated as Attribution } from \"~/components/Attribution\";\n\nimport { useNeighborhoodDemographics } from \"~/sdks/NeighborhoodDemographics/context\";\n\nexport const Footer = () => {\n const { t } = useTranslation([\"neighborhoodDemographics\", \"common\"]);\n const { locale, hideAttribution } = useNeighborhoodDemographics();\n\n return (\n <div className={styles.container}>\n <Text\n noMargin\n variant=\"caption1\"\n color=\"--ll-color-on-background-variant1\"\n >\n {t(\"note\")}\n </Text>\n {!hideAttribution && (\n <Attribution sdkName=\"neighborhood-demographics\" locale={locale} />\n )}\n </div>\n );\n};\n","import { ObjectSchema, mixed, boolean, number, string, object } from \"yup\";\nimport type { 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 from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport { useTranslation } from \"react-i18next\";\nimport { Content } from \"./components/Content\";\nimport { Footer } from \"./components/Footer\";\nimport { NeighborhoodDemographicsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodDemographicsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\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\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodDemographics = () => {\n const { t } = useTranslation(\"neighborhoodDemographics\");\n const { sdkState } = useStateManagerContext<NeighborhoodDemographicsProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n return (\n <ResizeWrapper>\n <ValidateOptions\n sdk=\"Neighborhood Demographics\"\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_DEMOGRAPHICS}\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_DEMOGRAPHICS,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\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 <NeighborhoodDemographicsProvider>\n <TitleHeader\n title={\n typeof sdkState.options?.title === \"string\" ||\n sdkState.options?.title === false\n ? sdkState.options.title\n : t(\"title\")\n }\n />\n <Content />\n <Footer />\n </NeighborhoodDemographicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodDemographics;\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BEU_UCik.js";import{l as o}from"./google-maps-vendor-BeDgURNz.js";import{t as a}from"./Trans-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodFeatured-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-BEU_UCik.js";import{l as o}from"./google-maps-vendor-BeDgURNz.js";import{t as a}from"./Trans-BLu0zcU1.js";import{a as t,c as n,d as r,f as i,g as l,h as s,n as d,o as h,r as c,t as g,u as p}from"./sdks-e3TteF4P.js";import{H as u,Y as m,i as f,n as b,yt as x}from"./index-DHfBmUAQ.js";import{t as E}from"./ResizeWrapper-Bhg67yfB.js";import{t as O}from"./ValidateOptions-BivAr3ZH.js";import{t as v}from"./useIsMobile-DNaqDzbl.js";/* empty css */import{n as I,r as _,t as D}from"./NeighborhoodCard-C_-8FpDl.js";var j=e(o(),1),y={dev:"https://api-qa.locallogic.co/neighborhood-management-v1",qa:"https://api-qa.locallogic.co/neighborhood-management-v1",prod:"https://api.locallogic.co/neighborhood-management-v1"};var C=function(e){return e.SDK_VIEWED="neighborhood-featured-Viewed",e.NEIGHBORHOOD_CARD_CLICKED="neighborhood-featured-Card-Clicked",e.EXPLORE_MORE_NEIGHBORHOODS_CLICKED="neighborhood-featured-Explore-Neighborhoods-Clicked",e}({}),R=function(e){return e.SDK_VIEWED="sdk_viewed",e.NEIGHBORHOOD_CARD_CLICKED="neighborhood_featured_Card_Clicked",e.EXPLORE_MORE_NEIGHBORHOODS_CLICKED="neighborhood_featured_Explore_Neighborhoods_Clicked",e}({}),N=m(),k=j.createContext({}),S=({children:e})=>{const{sdkState:o}=b(),a=h();f(()=>{a.postEvent({eventType:C.SDK_VIEWED}),a.trackAnalyticsEvent({eventName:R.SDK_VIEWED})});const{data:t,isFetched:n,isLoading:r}=function({externalId:e}){const{sdkState:o}=b(),a=y[o.globalOptions?.environment?.api||"prod"];return s({queryKey:["myNeighborhoods"],queryFn:()=>fetch(`${a}/sdk/favorite-neighborhoods/${e}?include=configurations`,{headers:{Accept:"application/json",Authorization:o.apiKey,"x-ll-sdk-name":"neighborhood-featured"},method:"GET"}).then(e=>{if([204,404].includes(e.status))return null;if(e.status>=300)throw new Error(`Request failed with status ${e.status}`);return e.json()}).then(e=>({featured:_(o.globalOptions?.locale||"en",e.featured,e.configurations[e.featured?.geog_id]),favorites:e.favorites?.map(a=>_(o.globalOptions?.locale||"en",a,e.configurations[a?.geog_id]))})).catch(e=>{throw x.captureException(e),e}),enabled:!!e&&!!o.apiKey})}({externalId:o.globalOptions?.externalId});if(!o.globalOptions?.externalId)throw new Error("externalId is required to launch the SDK");return(0,N.jsx)(k.Provider,{value:{isFetched:n,isLoading:r,neighborhoods:t},children:e})},H=()=>{const{t:e}=l("neighborhoodFeatured"),o=h(),{sdkState:t}=b(),n=t.options?.exploreShowcaseURL||void 0,r=t.options?.urlSchemaSpacer||"-",{neighborhoods:i,isFetched:s,isLoading:d}=(0,j.useContext)(k),c=t.options?.singleNeighborhoodURLSchema||void 0;if(!i?.featured&&0===i?.favorites?.length)return null;const g=(e,a)=>()=>{o.postEvent({eventType:C.NEIGHBORHOOD_CARD_CLICKED,eventAttributes:[{label:"geogID",data:e.geogId},{label:"name",data:e.name},{label:"label",data:a}]}),o.trackAnalyticsEvent({eventName:R.NEIGHBORHOOD_CARD_CLICKED,eventAttributes:{ll_geogID:e.geogId,ll_name:e.name,ll_label:a}})};return(0,N.jsx)(N.Fragment,{children:s?(0,N.jsx)(N.Fragment,{children:i?(0,N.jsxs)("div",{className:"w-full py-2",children:[(0,N.jsx)("div",{className:"\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n","data-is-loading":d,children:i?.featured&&(0,N.jsx)("div",{onClick:g(i?.featured,"featured"),children:(0,N.jsx)(D,{isFeatured:!0,neighborhood:i?.featured,href:c&&I(c,i?.featured,r)},i?.featured.geogId)})}),(0,N.jsx)("div",{className:" \n place-items-center my-4\n flex justify-between gap-4\n\n flex-col md:flex-row\n",children:i?.favorites?.map((e,o)=>(0,N.jsx)("div",{className:"\n flex-1 w-full\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n","data-is-loading":d,onClick:g(e,`favorite_${o+1}`),children:(0,N.jsx)(D,{neighborhood:e,href:c&&I(c,e,r)})},e.geogId))}),n&&(0,N.jsx)("a",{onClick:()=>{o.postEvent({eventType:C.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,eventAttributes:[{label:"externalId",data:t.globalOptions?.externalId}]}),o.trackAnalyticsEvent({eventName:R.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,eventAttributes:{ll_externalID:t.globalOptions?.externalId}})},className:"\n border border-gray-200 rounded-md\n text-ll-primary py-3 px-6\n text-center\n w-96 mx-auto max-w-full block\n\n hover:border-ll-primary\n hover:text-ll-primary\n\n duration-100 transition-colors\n",href:n,target:"_parent",rel:"noreferrer",children:e("exploreMoreNeighborhoods")})]}):(0,N.jsx)("div",{className:"w-full h-full bg-ll-surface py-6 px-5 rounded-md text-ll-placeholder",children:(0,N.jsx)(a,{i18nKey:"noData",t:e,components:{LinkToHub:(0,N.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://hub.locallogic.co/neighborhood-management"}),bold:(0,N.jsx)("strong",{})}})})}):(0,N.jsx)("div",{className:"w-full h-full flex justify-center align-cennter",children:(0,N.jsx)(u,{image:!0})})})},w=p({lat:r().optional(),lng:r().optional(),geographyId:i().optional(),exploreShowcaseURL:i().optional(),urlSchemaSpacer:i().length(1).optional(),singleNeighborhoodURLSchema:i().optional()}).noUnknown(!0);n(d.neighborhoodFeatured.key);var K=()=>{const{sdkState:e}=b(),o=v(),a=e.globalOptions?.locale||"en",n=(0,j.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,N.jsx)(E,{children:(0,N.jsx)(O,{sdk:"Neighborhood Featured",schema:w,options:e.options,children:(0,N.jsx)(c,{environment:e.globalOptions?.environment?.api,apiKey:e.apiKey,appearance:e.globalOptions?.appearance,locale:e.globalOptions?.locale,product:g.NEIGHBORHOOD_FEATURED,children:(0,N.jsx)(t,{trackingPipelineSettings:{apiKey:e.apiKey||""},analyticsSettings:d.neighborhoodFeatured,meta:{clientId:e.clientId,productName:g.NEIGHBORHOOD_FEATURED,productVersion:"1.24.64"},attributes:{location:n,host:e.location,host_url:document.referrer,locale:a,isMobile:o},flags:{isDebugMode:!1},children:(0,N.jsx)(S,{children:(0,N.jsx)(H,{})})})})})})};export{K as default};
|
|
2
|
+
//# sourceMappingURL=NeighborhoodFeatured-C0qVWedw.js.map
|
package/dist/assets/{NeighborhoodFeatured-BKynIDFO.js.map → NeighborhoodFeatured-C0qVWedw.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborhoodFeatured-BKynIDFO.js","names":[],"sources":["../../src/sdks/NeighborhoodFeatured/hooks/useFavoriteNeighborhoods.ts","../../src/sdks/NeighborhoodFeatured/types.ts","../../src/sdks/NeighborhoodFeatured/context.tsx","../../src/sdks/NeighborhoodFeatured/components/Content/styles.ts","../../src/sdks/NeighborhoodFeatured/components/Content/index.tsx","../../src/sdks/NeighborhoodFeatured/schema.ts","../../src/sdks/NeighborhoodFeatured/index.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { NeighborhoodFeaturedProps } from \"../types\";\nimport errorTracker from \"~/utils/errorTracker\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport type { ApiNeighborhood } from \"~/types/neighborhoods\";\nimport { transformNeighborhood } from \"~/utils/transformNeighborhood\";\n\nconst ENVIRONMENTS = {\n dev: \"https://api-qa.locallogic.co/neighborhood-management-v1\",\n qa: \"https://api-qa.locallogic.co/neighborhood-management-v1\",\n prod: \"https://api.locallogic.co/neighborhood-management-v1\",\n};\n\nexport function useFavoriteNeighborhoods({\n externalId,\n}: {\n externalId?: string;\n}) {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const baseURL =\n ENVIRONMENTS[sdkState.globalOptions?.environment?.api || \"prod\"];\n\n const fetchMyNeighborhoods = () =>\n fetch(\n `${baseURL}/sdk/favorite-neighborhoods/${externalId}?include=configurations`,\n {\n headers: {\n Accept: \"application/json\",\n Authorization: sdkState.apiKey as string,\n \"x-ll-sdk-name\": \"neighborhood-featured\",\n },\n method: \"GET\",\n },\n )\n .then((response) => {\n if ([204, 404].includes(response.status)) {\n return null;\n }\n\n if (response.status >= 300) {\n throw new Error(`Request failed with status ${response.status}`);\n }\n\n return response.json();\n })\n .then((response) => ({\n featured: transformNeighborhood(\n sdkState.globalOptions?.locale || \"en\",\n response.featured,\n response.configurations[response.featured?.geog_id],\n ),\n favorites: response.favorites?.map((neighborhood: ApiNeighborhood) =>\n transformNeighborhood(\n sdkState.globalOptions?.locale || \"en\",\n neighborhood,\n response.configurations[neighborhood?.geog_id],\n ),\n ),\n }))\n .catch((error) => {\n errorTracker.captureException(error);\n\n throw error;\n });\n\n return useQuery({\n queryKey: [\"myNeighborhoods\"],\n queryFn: fetchMyNeighborhoods,\n enabled: !!externalId && !!sdkState.apiKey,\n });\n}\n","import { SDKOptions } from \"~/types/options\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n exploreShowcaseURL?: string;\n urlSchemaSpacer?: string;\n singleNeighborhoodURLSchema?: string;\n};\n\nexport type NeighborhoodFeaturedProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-featured-Viewed\",\n NEIGHBORHOOD_CARD_CLICKED = \"neighborhood-featured-Card-Clicked\",\n EXPLORE_MORE_NEIGHBORHOODS_CLICKED = \"neighborhood-featured-Explore-Neighborhoods-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 NEIGHBORHOOD_CARD_CLICKED = \"neighborhood_featured_Card_Clicked\",\n EXPLORE_MORE_NEIGHBORHOODS_CLICKED = \"neighborhood_featured_Explore_Neighborhoods_Clicked\",\n}\n","import React, { useContext } from \"react\";\nimport { useFavoriteNeighborhoods } from \"./hooks/useFavoriteNeighborhoods\";\nimport {\n type NeighborhoodFeaturedProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport type { FavoriteNeighborhoods } from \"~/types/neighborhoods\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n isFetched: boolean;\n neighborhoods?: FavoriteNeighborhoods;\n};\n\nconst NeighborhoodFeaturedContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\n\nconst useNeighborhoodFeatured = () => useContext(NeighborhoodFeaturedContext);\n\nconst NeighborhoodFeaturedProvider = ({\n children,\n}: {\n children: React.JSX.Element;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { data, isFetched, isLoading } = useFavoriteNeighborhoods({\n externalId: sdkState.globalOptions?.externalId,\n });\n\n if (!sdkState.globalOptions?.externalId) {\n throw new Error(\"externalId is required to launch the SDK\");\n }\n\n return (\n <NeighborhoodFeaturedContext.Provider\n value={{\n isFetched,\n isLoading,\n neighborhoods: data,\n }}\n >\n {children}\n </NeighborhoodFeaturedContext.Provider>\n );\n};\n\nexport { useNeighborhoodFeatured, NeighborhoodFeaturedProvider };\n","export const favorites = ` \n place-items-center my-4\n flex justify-between gap-4\n\n flex-col md:flex-row\n`;\n\nexport const card = `\n flex-1 w-full\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n`;\n\nexport const container = `w-full py-2`;\n\nexport const featured = `\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n`;\n\nexport const button = `\n border border-gray-200 rounded-md\n text-ll-primary py-3 px-6\n text-center\n w-96 mx-auto max-w-full block\n\n hover:border-ll-primary\n hover:text-ll-primary\n\n duration-100 transition-colors\n`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\nexport const blankState = `w-full h-full bg-ll-surface py-6 px-5 rounded-md text-ll-placeholder`;\n","import React from \"react\";\nimport { useTranslation, Trans } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\nimport { LoadingSpinner } from \"~/components/deprecated\";\nimport { useTracking } from \"~/tracking\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useNeighborhoodFeatured } from \"~/sdks/NeighborhoodFeatured/context\";\nimport { Neighborhood } from \"~/types/neighborhoods\";\nimport {\n AnalyticsEvents,\n NeighborhoodFeaturedProps,\n TrackingPipelineEvents,\n} from \"~/sdks/NeighborhoodFeatured/types\";\n\nimport { getNeighborhoodURLFromSchema } from \"~/utils/formatters/neighborhoodURLSchema\";\n\nimport { NeighborhoodCard } from \"~/components/NeighborhoodCard\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"neighborhoodFeatured\");\n const tracking = useTracking();\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const exploreGatewayURL = sdkState.options?.exploreShowcaseURL || undefined;\n const urlSpacer = sdkState.options?.urlSchemaSpacer || \"-\";\n\n const { neighborhoods, isFetched, isLoading } = useNeighborhoodFeatured();\n const singleNeighborhoodURLSchema =\n sdkState.options?.singleNeighborhoodURLSchema || undefined;\n\n if (!neighborhoods?.featured && neighborhoods?.favorites?.length === 0) {\n return null;\n }\n\n const handleExploreGateway = () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,\n eventAttributes: [\n {\n label: \"externalId\",\n data: sdkState.globalOptions?.externalId,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,\n eventAttributes: {\n ll_externalID: sdkState.globalOptions?.externalId,\n },\n });\n };\n\n const handleNeighborhoodCardClick =\n (neighborhood: Neighborhood, label: string) => () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.NEIGHBORHOOD_CARD_CLICKED,\n eventAttributes: [\n {\n label: \"geogID\",\n data: neighborhood.geogId,\n },\n {\n label: \"name\",\n data: neighborhood.name,\n },\n {\n label: \"label\",\n data: label,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.NEIGHBORHOOD_CARD_CLICKED,\n eventAttributes: {\n ll_geogID: neighborhood.geogId,\n ll_name: neighborhood.name,\n ll_label: label,\n },\n });\n };\n\n return (\n <>\n {!isFetched ? (\n <div className={styles.loadingContent}>\n <LoadingSpinner image />\n </div>\n ) : (\n <>\n {neighborhoods ? (\n <div className={styles.container}>\n <div className={styles.featured} data-is-loading={isLoading}>\n {neighborhoods?.featured && (\n <div\n onClick={handleNeighborhoodCardClick(\n neighborhoods?.featured,\n \"featured\",\n )}\n >\n <NeighborhoodCard\n key={neighborhoods?.featured.geogId}\n isFeatured\n neighborhood={neighborhoods?.featured}\n href={\n singleNeighborhoodURLSchema &&\n getNeighborhoodURLFromSchema(\n singleNeighborhoodURLSchema,\n neighborhoods?.featured,\n urlSpacer,\n )\n }\n />\n </div>\n )}\n </div>\n\n <div className={styles.favorites}>\n {neighborhoods?.favorites?.map((neighborhood, index) => (\n <div\n className={styles.card}\n key={neighborhood.geogId}\n data-is-loading={isLoading}\n onClick={handleNeighborhoodCardClick(\n neighborhood,\n `favorite_${index + 1}`,\n )}\n >\n <NeighborhoodCard\n neighborhood={neighborhood}\n href={\n singleNeighborhoodURLSchema &&\n getNeighborhoodURLFromSchema(\n singleNeighborhoodURLSchema,\n neighborhood,\n urlSpacer,\n )\n }\n />\n </div>\n ))}\n </div>\n\n {exploreGatewayURL && (\n <a\n onClick={handleExploreGateway}\n className={styles.button}\n href={exploreGatewayURL}\n target=\"_parent\"\n rel=\"noreferrer\"\n >\n {t(`exploreMoreNeighborhoods`)}\n </a>\n )}\n </div>\n ) : (\n <div className={styles.blankState}>\n <Trans\n i18nKey=\"noData\"\n t={t}\n components={{\n LinkToHub: (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={import.meta.env.VITE_NEIGHBORHOOD_MANAGEMENT_URL}\n />\n ),\n bold: <strong />,\n }}\n />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n","import { ObjectSchema, number, object, string } from \"yup\";\nimport { Options } from \"./types\";\n\nexport const schema: ObjectSchema<Options> = object({\n // We don't need lat/lng/geographyId for the NeighborhoodFeatured SDK\n // But we need to keep it due to how the SDK library is currently implemented\n lat: number().optional(),\n lng: number().optional(),\n geographyId: string().optional(),\n exploreShowcaseURL: string().optional(),\n urlSchemaSpacer: string().length(1).optional(),\n singleNeighborhoodURLSchema: string().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport type { NeighborhoodFeaturedProps } from \"./types\";\nimport { NeighborhoodFeaturedProvider } from \"./context\";\nimport { Content } from \"./components/Content\";\nimport { schema } from \"./schema\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\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.neighborhoodFeatured.key);\n\nconst NeighborhoodFeatured = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\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 Featured\"\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_FEATURED}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodFeatured}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_FEATURED,\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 <NeighborhoodFeaturedProvider>\n <Content />\n </NeighborhoodFeaturedProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodFeatured;\n"],"mappings":"qkBAOM,EAAe,CACnB,IAAK,0DACL,GAAI,0DACJ,KAAM,wDCQR,IAAY,EAAL,SAAA,UACL,EAAA,WAAA,+BACA,EAAA,0BAAA,qCACA,EAAA,mCAAA,uDACF,CAJO,CAIP,CAAA,GAIY,EAAL,SAAA,UACL,EAAA,WAAA,aACA,EAAA,0BAAA,qCACA,EAAA,mCAAA,uDACF,CAJO,CAIP,CAAA,SCVM,EAAA,EAAoC,cACxC,CAAC,GAKG,EAAA,EACJ,eAIA,MAAM,SAAE,GAAa,IACf,EAAW,IAEjB,EAAA,KACE,EAAS,UAAU,CACjB,UAAW,EAAuB,aAGpC,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,eAI/B,MAAM,KAAE,EAAA,UAAM,EAAA,UAAW,GF/B3B,UAAyC,WACvC,IAIA,MAAM,SAAE,GAAa,IACf,EACJ,EAAa,EAAS,eAAe,aAAa,KAAO,QA6C3D,OAAO,EAAS,CACd,SAAU,CAAC,mBACX,QA7CI,IACJ,MACE,GAAG,gCAAsC,2BACzC,CACE,QAAS,CACP,OAAQ,mBACR,cAAe,EAAS,OACxB,gBAAiB,yBAEnB,OAAQ,QAGT,KAAM,IACL,GAAI,CAAC,IAAK,KAAK,SAAS,EAAS,QAC/B,OAAO,KAGT,GAAI,EAAS,QAAU,IACrB,MAAM,IAAI,MAAM,8BAA8B,EAAS,UAGzD,OAAO,EAAS,SAEjB,KAAM,IAAA,CACL,SAAU,EACR,EAAS,eAAe,QAAU,KAClC,EAAS,SACT,EAAS,eAAe,EAAS,UAAU,UAE7C,UAAW,EAAS,WAAW,IAAK,GAClC,EACE,EAAS,eAAe,QAAU,KAClC,EACA,EAAS,eAAe,GAAc,cAI3C,MAAO,IAGN,MAFA,EAAa,iBAAiB,GAExB,IAMV,UAAW,KAAgB,EAAS,QAExC,CE1ByC,CAAyB,CAC9D,WAAY,EAAS,eAAe,aAGtC,IAAK,EAAS,eAAe,WAC3B,MAAM,IAAI,MAAM,4CAGlB,OACE,EAAA,EAAA,KAAC,EAA4B,SAA7B,CACE,MAAO,CACL,YACA,YACA,cAAe,GAGhB,cExCM,EAAA,KACX,MAAM,EAAE,GAAM,EAAe,wBACvB,EAAW,KACX,SAAE,GAAa,IACf,EAAoB,EAAS,SAAS,yBAAsB,EAC5D,EAAY,EAAS,SAAS,iBAAmB,KAEjD,cAAE,EAAA,UAAe,EAAA,UAAW,IFH9B,EAAgC,EAAA,YAAW,GEIzC,EACJ,EAAS,SAAS,kCAA+B,EAEnD,IAAK,GAAe,UAAiD,IAArC,GAAe,WAAW,OACxD,OAAO,KAGT,MAmBM,EAAA,CACH,EAA4B,IAAA,KAC3B,EAAS,UAAU,CACjB,UAAW,EAAuB,0BAClC,gBAAiB,CACf,CACE,MAAO,SACP,KAAM,EAAa,QAErB,CACE,MAAO,OACP,KAAM,EAAa,MAErB,CACE,MAAO,QACP,KAAM,MAKZ,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,0BAC3B,gBAAiB,CACf,UAAW,EAAa,OACxB,QAAS,EAAa,KACtB,SAAU,MAKlB,OACE,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,SACI,GAKA,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,SACG,GACC,EAAA,EAAA,MAAC,MAAD,CAAK,UDhFQ,cCgFb,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CAAK,UD/EK,mFC+EuB,kBAAiB,EAC/C,SAAA,GAAe,WACd,EAAA,EAAA,KAAC,MAAD,CACE,QAAS,EACP,GAAe,SACf,YAGF,UAAA,EAAA,EAAA,KAAC,EAAD,CAEE,YAAA,EACA,aAAc,GAAe,SAC7B,KACE,GACA,EACE,EACA,GAAe,SACf,IARC,GAAe,SAAS,aAgBrC,EAAA,EAAA,KAAC,MAAD,CAAK,UDvHM,yFCwHR,SAAA,GAAe,WAAW,IAAA,CAAK,EAAc,KAC5C,EAAA,EAAA,KAAC,MAAD,CACE,UDnHA,oGCqHA,kBAAiB,EACjB,QAAS,EACP,EACA,YAAY,EAAQ,KAGtB,UAAA,EAAA,EAAA,KAAC,EAAD,CACgB,eACd,KACE,GACA,EACE,EACA,EACA,MAdD,EAAa,WAsBvB,IACC,EAAA,EAAA,KAAC,IAAD,CACE,QAhHV,KACJ,EAAS,UAAU,CACjB,UAAW,EAAuB,mCAClC,gBAAiB,CACf,CACE,MAAO,aACP,KAAM,EAAS,eAAe,eAKpC,EAAS,oBAAoB,CAC3B,UAAW,EAAgB,mCAC3B,gBAAiB,CACf,cAAe,EAAS,eAAe,eAmG7B,UDhII,iNCiIJ,KAAM,EACN,OAAO,UACP,IAAI,aAEH,SAAA,EAAE,kCAKT,EAAA,EAAA,KAAC,MAAD,CAAK,UD7HS,uEC8HZ,UAAA,EAAA,EAAA,KAAC,EAAD,CACE,QAAQ,SACL,IACH,WAAY,CACV,WACE,EAAA,EAAA,KAAC,IAAD,CACE,OAAO,SACP,IAAI,sBACJ,KAAA,sDAGJ,MAAM,EAAA,EAAA,KAAC,SAAD,CAAS,WAnFzB,EAAA,EAAA,KAAC,MAAD,CAAK,UDvDiB,kDCwDpB,UAAA,EAAA,EAAA,KAAC,EAAD,CAAgB,OAAA,SCrFb,EAAgC,EAAO,CAGlD,IAAK,IAAS,WACd,IAAK,IAAS,WACd,YAAa,IAAS,WACtB,mBAAoB,IAAS,WAC7B,gBAAiB,IAAS,OAAO,GAAG,WACpC,4BAA6B,IAAS,aACrC,WAAU,GCIb,EAAoB,EAAmB,qBAAqB,KAE5D,IAAM,EAAA,KACJ,MAAM,SAAE,GAAa,IACf,EAAW,IACX,EAAS,EAAS,eAAe,QAAU,KAE3C,GAAA,EAAW,EAAA,SAAA,IACX,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,wBACI,SACR,QAAS,EAAS,QAElB,UAAA,EAAA,EAAA,KAAC,EAAD,CACE,YAAa,EAAS,eAAe,aAAa,IAClD,OAAQ,EAAS,OACjB,WAAY,EAAS,eAAe,WACpC,OAAQ,EAAS,eAAe,OAChC,QAAS,EAAa,sBAEtB,UAAA,EAAA,EAAA,KAAC,EAAD,CACE,yBAA0B,CACxB,OAAQ,EAAS,QAAU,IAE7B,kBAAmB,EAAmB,qBACtC,KAAM,CACJ,SAAU,EAAS,SACnB,YAAa,EAAa,sBAC1B,eAAA,WAEF,WAAY,CACV,WACA,KAAM,EAAS,SACf,SAAU,SAAS,SACnB,SACA,YAEF,MAAO,CACL,aACE,GAGJ,UAAA,EAAA,EAAA,KAAC,EAAD,CAAA,UACE,EAAA,EAAA,KAAC,EAAD,CAAU"}
|
|
1
|
+
{"version":3,"file":"NeighborhoodFeatured-C0qVWedw.js","names":[],"sources":["../../src/sdks/NeighborhoodFeatured/hooks/useFavoriteNeighborhoods.ts","../../src/sdks/NeighborhoodFeatured/types.ts","../../src/sdks/NeighborhoodFeatured/context.tsx","../../src/sdks/NeighborhoodFeatured/components/Content/styles.ts","../../src/sdks/NeighborhoodFeatured/components/Content/index.tsx","../../src/sdks/NeighborhoodFeatured/schema.ts","../../src/sdks/NeighborhoodFeatured/index.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { NeighborhoodFeaturedProps } from \"../types\";\nimport errorTracker from \"~/utils/errorTracker\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport type { ApiNeighborhood } from \"~/types/neighborhoods\";\nimport { transformNeighborhood } from \"~/utils/transformNeighborhood\";\n\nconst ENVIRONMENTS = {\n dev: \"https://api-qa.locallogic.co/neighborhood-management-v1\",\n qa: \"https://api-qa.locallogic.co/neighborhood-management-v1\",\n prod: \"https://api.locallogic.co/neighborhood-management-v1\",\n};\n\nexport function useFavoriteNeighborhoods({\n externalId,\n}: {\n externalId?: string;\n}) {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const baseURL =\n ENVIRONMENTS[sdkState.globalOptions?.environment?.api || \"prod\"];\n\n const fetchMyNeighborhoods = () =>\n fetch(\n `${baseURL}/sdk/favorite-neighborhoods/${externalId}?include=configurations`,\n {\n headers: {\n Accept: \"application/json\",\n Authorization: sdkState.apiKey as string,\n \"x-ll-sdk-name\": \"neighborhood-featured\",\n },\n method: \"GET\",\n },\n )\n .then((response) => {\n if ([204, 404].includes(response.status)) {\n return null;\n }\n\n if (response.status >= 300) {\n throw new Error(`Request failed with status ${response.status}`);\n }\n\n return response.json();\n })\n .then((response) => ({\n featured: transformNeighborhood(\n sdkState.globalOptions?.locale || \"en\",\n response.featured,\n response.configurations[response.featured?.geog_id],\n ),\n favorites: response.favorites?.map((neighborhood: ApiNeighborhood) =>\n transformNeighborhood(\n sdkState.globalOptions?.locale || \"en\",\n neighborhood,\n response.configurations[neighborhood?.geog_id],\n ),\n ),\n }))\n .catch((error) => {\n errorTracker.captureException(error);\n\n throw error;\n });\n\n return useQuery({\n queryKey: [\"myNeighborhoods\"],\n queryFn: fetchMyNeighborhoods,\n enabled: !!externalId && !!sdkState.apiKey,\n });\n}\n","import { SDKOptions } from \"~/types/options\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n exploreShowcaseURL?: string;\n urlSchemaSpacer?: string;\n singleNeighborhoodURLSchema?: string;\n};\n\nexport type NeighborhoodFeaturedProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-featured-Viewed\",\n NEIGHBORHOOD_CARD_CLICKED = \"neighborhood-featured-Card-Clicked\",\n EXPLORE_MORE_NEIGHBORHOODS_CLICKED = \"neighborhood-featured-Explore-Neighborhoods-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 NEIGHBORHOOD_CARD_CLICKED = \"neighborhood_featured_Card_Clicked\",\n EXPLORE_MORE_NEIGHBORHOODS_CLICKED = \"neighborhood_featured_Explore_Neighborhoods_Clicked\",\n}\n","import React, { useContext } from \"react\";\nimport { useFavoriteNeighborhoods } from \"./hooks/useFavoriteNeighborhoods\";\nimport {\n type NeighborhoodFeaturedProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport type { FavoriteNeighborhoods } from \"~/types/neighborhoods\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n isFetched: boolean;\n neighborhoods?: FavoriteNeighborhoods;\n};\n\nconst NeighborhoodFeaturedContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\n\nconst useNeighborhoodFeatured = () => useContext(NeighborhoodFeaturedContext);\n\nconst NeighborhoodFeaturedProvider = ({\n children,\n}: {\n children: React.JSX.Element;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { data, isFetched, isLoading } = useFavoriteNeighborhoods({\n externalId: sdkState.globalOptions?.externalId,\n });\n\n if (!sdkState.globalOptions?.externalId) {\n throw new Error(\"externalId is required to launch the SDK\");\n }\n\n return (\n <NeighborhoodFeaturedContext.Provider\n value={{\n isFetched,\n isLoading,\n neighborhoods: data,\n }}\n >\n {children}\n </NeighborhoodFeaturedContext.Provider>\n );\n};\n\nexport { useNeighborhoodFeatured, NeighborhoodFeaturedProvider };\n","export const favorites = ` \n place-items-center my-4\n flex justify-between gap-4\n\n flex-col md:flex-row\n`;\n\nexport const card = `\n flex-1 w-full\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n`;\n\nexport const container = `w-full py-2`;\n\nexport const featured = `\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n`;\n\nexport const button = `\n border border-gray-200 rounded-md\n text-ll-primary py-3 px-6\n text-center\n w-96 mx-auto max-w-full block\n\n hover:border-ll-primary\n hover:text-ll-primary\n\n duration-100 transition-colors\n`;\n\nexport const loadingContent = `w-full h-full flex justify-center align-cennter`;\nexport const blankState = `w-full h-full bg-ll-surface py-6 px-5 rounded-md text-ll-placeholder`;\n","import React from \"react\";\nimport { useTranslation, Trans } from \"react-i18next\";\n\nimport * as styles from \"./styles\";\nimport { LoadingSpinner } from \"~/components/deprecated\";\nimport { useTracking } from \"~/tracking\";\n\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useNeighborhoodFeatured } from \"~/sdks/NeighborhoodFeatured/context\";\nimport { Neighborhood } from \"~/types/neighborhoods\";\nimport {\n AnalyticsEvents,\n NeighborhoodFeaturedProps,\n TrackingPipelineEvents,\n} from \"~/sdks/NeighborhoodFeatured/types\";\n\nimport { getNeighborhoodURLFromSchema } from \"~/utils/formatters/neighborhoodURLSchema\";\n\nimport { NeighborhoodCard } from \"~/components/NeighborhoodCard\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"neighborhoodFeatured\");\n const tracking = useTracking();\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\n const exploreGatewayURL = sdkState.options?.exploreShowcaseURL || undefined;\n const urlSpacer = sdkState.options?.urlSchemaSpacer || \"-\";\n\n const { neighborhoods, isFetched, isLoading } = useNeighborhoodFeatured();\n const singleNeighborhoodURLSchema =\n sdkState.options?.singleNeighborhoodURLSchema || undefined;\n\n if (!neighborhoods?.featured && neighborhoods?.favorites?.length === 0) {\n return null;\n }\n\n const handleExploreGateway = () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,\n eventAttributes: [\n {\n label: \"externalId\",\n data: sdkState.globalOptions?.externalId,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,\n eventAttributes: {\n ll_externalID: sdkState.globalOptions?.externalId,\n },\n });\n };\n\n const handleNeighborhoodCardClick =\n (neighborhood: Neighborhood, label: string) => () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.NEIGHBORHOOD_CARD_CLICKED,\n eventAttributes: [\n {\n label: \"geogID\",\n data: neighborhood.geogId,\n },\n {\n label: \"name\",\n data: neighborhood.name,\n },\n {\n label: \"label\",\n data: label,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.NEIGHBORHOOD_CARD_CLICKED,\n eventAttributes: {\n ll_geogID: neighborhood.geogId,\n ll_name: neighborhood.name,\n ll_label: label,\n },\n });\n };\n\n return (\n <>\n {!isFetched ? (\n <div className={styles.loadingContent}>\n <LoadingSpinner image />\n </div>\n ) : (\n <>\n {neighborhoods ? (\n <div className={styles.container}>\n <div className={styles.featured} data-is-loading={isLoading}>\n {neighborhoods?.featured && (\n <div\n onClick={handleNeighborhoodCardClick(\n neighborhoods?.featured,\n \"featured\",\n )}\n >\n <NeighborhoodCard\n key={neighborhoods?.featured.geogId}\n isFeatured\n neighborhood={neighborhoods?.featured}\n href={\n singleNeighborhoodURLSchema &&\n getNeighborhoodURLFromSchema(\n singleNeighborhoodURLSchema,\n neighborhoods?.featured,\n urlSpacer,\n )\n }\n />\n </div>\n )}\n </div>\n\n <div className={styles.favorites}>\n {neighborhoods?.favorites?.map((neighborhood, index) => (\n <div\n className={styles.card}\n key={neighborhood.geogId}\n data-is-loading={isLoading}\n onClick={handleNeighborhoodCardClick(\n neighborhood,\n `favorite_${index + 1}`,\n )}\n >\n <NeighborhoodCard\n neighborhood={neighborhood}\n href={\n singleNeighborhoodURLSchema &&\n getNeighborhoodURLFromSchema(\n singleNeighborhoodURLSchema,\n neighborhood,\n urlSpacer,\n )\n }\n />\n </div>\n ))}\n </div>\n\n {exploreGatewayURL && (\n <a\n onClick={handleExploreGateway}\n className={styles.button}\n href={exploreGatewayURL}\n target=\"_parent\"\n rel=\"noreferrer\"\n >\n {t(`exploreMoreNeighborhoods`)}\n </a>\n )}\n </div>\n ) : (\n <div className={styles.blankState}>\n <Trans\n i18nKey=\"noData\"\n t={t}\n components={{\n LinkToHub: (\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={import.meta.env.VITE_NEIGHBORHOOD_MANAGEMENT_URL}\n />\n ),\n bold: <strong />,\n }}\n />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n","import { ObjectSchema, number, object, string } from \"yup\";\nimport { Options } from \"./types\";\n\nexport const schema: ObjectSchema<Options> = object({\n // We don't need lat/lng/geographyId for the NeighborhoodFeatured SDK\n // But we need to keep it due to how the SDK library is currently implemented\n lat: number().optional(),\n lng: number().optional(),\n geographyId: string().optional(),\n exploreShowcaseURL: string().optional(),\n urlSchemaSpacer: string().length(1).optional(),\n singleNeighborhoodURLSchema: string().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport type { NeighborhoodFeaturedProps } from \"./types\";\nimport { NeighborhoodFeaturedProvider } from \"./context\";\nimport { Content } from \"./components/Content\";\nimport { schema } from \"./schema\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\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.neighborhoodFeatured.key);\n\nconst NeighborhoodFeatured = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodFeaturedProps>();\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 Featured\"\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_FEATURED}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodFeatured}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_FEATURED,\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 <NeighborhoodFeaturedProvider>\n <Content />\n </NeighborhoodFeaturedProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodFeatured;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./rolldown-runtime-legacy-dtqCu9Cl.js","./google-maps-vendor-legacy-D5NgIsmz.js","./Trans-legacy-
|
|
2
|
-
//# sourceMappingURL=NeighborhoodFeatured-legacy-
|
|
1
|
+
System.register(["./rolldown-runtime-legacy-dtqCu9Cl.js","./google-maps-vendor-legacy-D5NgIsmz.js","./Trans-legacy-CQPgpMfP.js","./sdks-legacy-BcdXj8R9.js","./index-legacy-CdRffLlb.js","./ResizeWrapper-legacy-F6SJE_TA.js","./ValidateOptions-legacy-B4kQEpo7.js","./useIsMobile-legacy-B6-NPP6W.js","./old-tailwind-legacy-BtNZeBxx.js","./NeighborhoodCard-legacy-DW4x82H7.js"],function(e,o){var n,l,t,i,a,r,d,s,u,c,g,h,v,p,f,b,m,x,E,O,y,I,_,D,j,C,R,N,k,S,H,w,K,L,A;return{setters:[function(e){n=e.a},function(e){l=e.l},function(e){t=e.t},function(e){i=e.a,a=e.c,r=e.d,d=e.f,s=e.g,u=e.h,c=e.n,g=e.o,h=e.r,v=e.t,p=e.u},function(e){f=e.H,b=e.Y,m=e.i,x=e.n,E=e.yt},function(e){O=e.t},function(e){y=e.t},function(e){I=e.t},function(e){},function(e){_=e.n,D=e.r,j=e.t}],execute:function(){C=n(l(),1),R={dev:"https://api-qa.locallogic.co/neighborhood-management-v1",qa:"https://api-qa.locallogic.co/neighborhood-management-v1",prod:"https://api.locallogic.co/neighborhood-management-v1"},N=function(e){return e.SDK_VIEWED="neighborhood-featured-Viewed",e.NEIGHBORHOOD_CARD_CLICKED="neighborhood-featured-Card-Clicked",e.EXPLORE_MORE_NEIGHBORHOODS_CLICKED="neighborhood-featured-Explore-Neighborhoods-Clicked",e}({}),k=function(e){return e.SDK_VIEWED="sdk_viewed",e.NEIGHBORHOOD_CARD_CLICKED="neighborhood_featured_Card_Clicked",e.EXPLORE_MORE_NEIGHBORHOODS_CLICKED="neighborhood_featured_Explore_Neighborhoods_Clicked",e}({}),S=b(),H=C.createContext({}),w=()=>(0,C.useContext)(H),K=({children:e})=>{var o,n;const{sdkState:l}=x(),t=g();m(()=>{t.postEvent({eventType:N.SDK_VIEWED}),t.trackAnalyticsEvent({eventName:k.SDK_VIEWED})});const{data:i,isFetched:a,isLoading:r}=function({externalId:e}){var o;const{sdkState:n}=x(),l=R[(null===(o=n.globalOptions)||void 0===o||null===(o=o.environment)||void 0===o?void 0:o.api)||"prod"];return u({queryKey:["myNeighborhoods"],queryFn:()=>fetch(`${l}/sdk/favorite-neighborhoods/${e}?include=configurations`,{headers:{Accept:"application/json",Authorization:n.apiKey,"x-ll-sdk-name":"neighborhood-featured"},method:"GET"}).then(e=>{if([204,404].includes(e.status))return null;if(e.status>=300)throw new Error(`Request failed with status ${e.status}`);return e.json()}).then(e=>{var o,l,t;return{featured:D((null===(o=n.globalOptions)||void 0===o?void 0:o.locale)||"en",e.featured,e.configurations[null===(l=e.featured)||void 0===l?void 0:l.geog_id]),favorites:null===(t=e.favorites)||void 0===t?void 0:t.map(o=>{var l;return D((null===(l=n.globalOptions)||void 0===l?void 0:l.locale)||"en",o,e.configurations[null==o?void 0:o.geog_id])})}}).catch(e=>{throw E.captureException(e),e}),enabled:!!e&&!!n.apiKey})}({externalId:null===(o=l.globalOptions)||void 0===o?void 0:o.externalId});if(null===(n=l.globalOptions)||void 0===n||!n.externalId)throw new Error("externalId is required to launch the SDK");return(0,S.jsx)(H.Provider,{value:{isFetched:a,isLoading:r,neighborhoods:i},children:e})},L=()=>{var e,o,n,l,i;const{t:a}=s("neighborhoodFeatured"),r=g(),{sdkState:d}=x(),u=(null===(e=d.options)||void 0===e?void 0:e.exploreShowcaseURL)||void 0,c=(null===(o=d.options)||void 0===o?void 0:o.urlSchemaSpacer)||"-",{neighborhoods:h,isFetched:v,isLoading:p}=w(),b=(null===(n=d.options)||void 0===n?void 0:n.singleNeighborhoodURLSchema)||void 0;if((null==h||!h.featured)&&0===(null==h||null===(l=h.favorites)||void 0===l?void 0:l.length))return null;const m=(e,o)=>()=>{r.postEvent({eventType:N.NEIGHBORHOOD_CARD_CLICKED,eventAttributes:[{label:"geogID",data:e.geogId},{label:"name",data:e.name},{label:"label",data:o}]}),r.trackAnalyticsEvent({eventName:k.NEIGHBORHOOD_CARD_CLICKED,eventAttributes:{ll_geogID:e.geogId,ll_name:e.name,ll_label:o}})};return(0,S.jsx)(S.Fragment,{children:v?(0,S.jsx)(S.Fragment,{children:h?(0,S.jsxs)("div",{className:"w-full py-2",children:[(0,S.jsx)("div",{className:"\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n","data-is-loading":p,children:(null==h?void 0:h.featured)&&(0,S.jsx)("div",{onClick:m(null==h?void 0:h.featured,"featured"),children:(0,S.jsx)(j,{isFeatured:!0,neighborhood:null==h?void 0:h.featured,href:b&&_(b,null==h?void 0:h.featured,c)},null==h?void 0:h.featured.geogId)})}),(0,S.jsx)("div",{className:" \n place-items-center my-4\n flex justify-between gap-4\n\n flex-col md:flex-row\n",children:null==h||null===(i=h.favorites)||void 0===i?void 0:i.map((e,o)=>(0,S.jsx)("div",{className:"\n flex-1 w-full\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n","data-is-loading":p,onClick:m(e,`favorite_${o+1}`),children:(0,S.jsx)(j,{neighborhood:e,href:b&&_(b,e,c)})},e.geogId))}),u&&(0,S.jsx)("a",{onClick:()=>{var e,o;r.postEvent({eventType:N.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,eventAttributes:[{label:"externalId",data:null===(e=d.globalOptions)||void 0===e?void 0:e.externalId}]}),r.trackAnalyticsEvent({eventName:k.EXPLORE_MORE_NEIGHBORHOODS_CLICKED,eventAttributes:{ll_externalID:null===(o=d.globalOptions)||void 0===o?void 0:o.externalId}})},className:"\n border border-gray-200 rounded-md\n text-ll-primary py-3 px-6\n text-center\n w-96 mx-auto max-w-full block\n\n hover:border-ll-primary\n hover:text-ll-primary\n\n duration-100 transition-colors\n",href:u,target:"_parent",rel:"noreferrer",children:a("exploreMoreNeighborhoods")})]}):(0,S.jsx)("div",{className:"w-full h-full bg-ll-surface py-6 px-5 rounded-md text-ll-placeholder",children:(0,S.jsx)(t,{i18nKey:"noData",t:a,components:{LinkToHub:(0,S.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://hub.locallogic.co/neighborhood-management"}),bold:(0,S.jsx)("strong",{})}})})}):(0,S.jsx)("div",{className:"w-full h-full flex justify-center align-cennter",children:(0,S.jsx)(f,{image:!0})})})},A=p({lat:r().optional(),lng:r().optional(),geographyId:d().optional(),exploreShowcaseURL:d().optional(),urlSchemaSpacer:d().length(1).optional(),singleNeighborhoodURLSchema:d().optional()}).noUnknown(!0),a(c.neighborhoodFeatured.key),e("default",()=>{var e,o,n,l,t,a,r;const{sdkState:d}=x(),s=I(),u=(null===(e=d.globalOptions)||void 0===e?void 0:e.locale)||"en",g=(0,C.useMemo)(()=>{var e,o,n,l;return null!==(e=d.options)&&void 0!==e&&e.geographyId?{geographyId:null===(o=d.options)||void 0===o?void 0:o.geographyId}:{lat:null===(n=d.options)||void 0===n?void 0:n.lat,lng:null===(l=d.options)||void 0===l?void 0:l.lng}},[null===(o=d.options)||void 0===o?void 0:o.lat,null===(n=d.options)||void 0===n?void 0:n.lng,null===(l=d.options)||void 0===l?void 0:l.geographyId]);return(0,S.jsx)(O,{children:(0,S.jsx)(y,{sdk:"Neighborhood Featured",schema:A,options:d.options,children:(0,S.jsx)(h,{environment:null===(t=d.globalOptions)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.api,apiKey:d.apiKey,appearance:null===(a=d.globalOptions)||void 0===a?void 0:a.appearance,locale:null===(r=d.globalOptions)||void 0===r?void 0:r.locale,product:v.NEIGHBORHOOD_FEATURED,children:(0,S.jsx)(i,{trackingPipelineSettings:{apiKey:d.apiKey||""},analyticsSettings:c.neighborhoodFeatured,meta:{clientId:d.clientId,productName:v.NEIGHBORHOOD_FEATURED,productVersion:"1.24.64"},attributes:{location:g,host:d.location,host_url:document.referrer,locale:u,isMobile:s},flags:{isDebugMode:!1},children:(0,S.jsx)(K,{children:(0,S.jsx)(L,{})})})})})})})}}});
|
|
2
|
+
//# sourceMappingURL=NeighborhoodFeatured-legacy-BcjeyOc7.js.map
|