@local-logic/sdks-app 1.24.40 → 1.24.41
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-1Rs_lSaP.js → Attribution-BFX5_TA0.js} +2 -2
- package/dist/assets/{Attribution-1Rs_lSaP.js.map → Attribution-BFX5_TA0.js.map} +1 -1
- package/dist/assets/{Attribution-legacy-z2BjL7p0.js → Attribution-legacy-CdR3a3DX.js} +2 -2
- package/dist/assets/{Attribution-legacy-z2BjL7p0.js.map → Attribution-legacy-CdR3a3DX.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-xa0oCXAy.js → Cluster-BHQcO6iC-BOZz2skE.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-xa0oCXAy.js.map → Cluster-BHQcO6iC-BOZz2skE.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-legacy-Bybijjfk.js → Cluster-BHQcO6iC-legacy-B_rK_gsZ.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-legacy-Bybijjfk.js.map → Cluster-BHQcO6iC-legacy-B_rK_gsZ.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--ovYZ-h3M.js → Google-CH7a2yx--DwQd7dvh.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--ovYZ-h3M.js.map → Google-CH7a2yx--DwQd7dvh.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--legacy-C6u2uwAw.js → Google-CH7a2yx--legacy-C0xakqb8.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--legacy-C6u2uwAw.js.map → Google-CH7a2yx--legacy-C0xakqb8.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-BXFc5F9y.js → Google-CXGCn-oJ-Dh7vAF1i.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-BXFc5F9y.js.map → Google-CXGCn-oJ-Dh7vAF1i.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-legacy-Bv9lya5C.js → Google-CXGCn-oJ-legacy-B35yyRBB.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-legacy-Bv9lya5C.js.map → Google-CXGCn-oJ-legacy-B35yyRBB.js.map} +1 -1
- package/dist/assets/{Google-D1kMMDIv-CyqUDjcJ.js → Google-D1kMMDIv-CAaNq2xc.js} +2 -2
- package/dist/assets/{Google-D1kMMDIv-CyqUDjcJ.js.map → Google-D1kMMDIv-CAaNq2xc.js.map} +1 -1
- package/dist/assets/{Google-D1kMMDIv-legacy-DKdnDC4w.js → Google-D1kMMDIv-legacy-CwFf8lIw.js} +2 -2
- package/dist/assets/{Google-D1kMMDIv-legacy-DKdnDC4w.js.map → Google-D1kMMDIv-legacy-CwFf8lIw.js.map} +1 -1
- package/dist/assets/{Google-DScXSvYv-legacy-BOwywVA7.js → Google-DScXSvYv-legacy-DEJ7UsBu.js} +2 -2
- package/dist/assets/{Google-DScXSvYv-legacy-BOwywVA7.js.map → Google-DScXSvYv-legacy-DEJ7UsBu.js.map} +1 -1
- package/dist/assets/{Google-DScXSvYv-CMLGBG91.js → Google-DScXSvYv-qp1ruzZ-.js} +2 -2
- package/dist/assets/{Google-DScXSvYv-CMLGBG91.js.map → Google-DScXSvYv-qp1ruzZ-.js.map} +1 -1
- package/dist/assets/{Google-qvGtRAuh-PwpE9X2p.js → Google-qvGtRAuh-CubndKzb.js} +2 -2
- package/dist/assets/{Google-qvGtRAuh-PwpE9X2p.js.map → Google-qvGtRAuh-CubndKzb.js.map} +1 -1
- package/dist/assets/{Google-qvGtRAuh-legacy-DzpIwQOn.js → Google-qvGtRAuh-legacy-CDAA2PYJ.js} +2 -2
- package/dist/assets/{Google-qvGtRAuh-legacy-DzpIwQOn.js.map → Google-qvGtRAuh-legacy-CDAA2PYJ.js.map} +1 -1
- package/dist/assets/{GridGraph-BtocIeP6.js → GridGraph-Ce2K4lJE.js} +2 -2
- package/dist/assets/{GridGraph-BtocIeP6.js.map → GridGraph-Ce2K4lJE.js.map} +1 -1
- package/dist/assets/{GridGraph-legacy-BjpzUUXY.js → GridGraph-legacy-QpuvSlS4.js} +2 -2
- package/dist/assets/{GridGraph-legacy-BjpzUUXY.js.map → GridGraph-legacy-QpuvSlS4.js.map} +1 -1
- package/dist/assets/{LeadCapture-C6J4SFYX.js → LeadCapture-DQ_u-trr.js} +2 -2
- package/dist/assets/{LeadCapture-C6J4SFYX.js.map → LeadCapture-DQ_u-trr.js.map} +1 -1
- package/dist/assets/{LeadCapture-legacy-CvtD-JLs.js → LeadCapture-legacy-9N32vfea.js} +2 -2
- package/dist/assets/{LeadCapture-legacy-CvtD-JLs.js.map → LeadCapture-legacy-9N32vfea.js.map} +1 -1
- package/dist/assets/{LocalContent-D_By1RQx.js → LocalContent-2pJKWECA.js} +2 -2
- package/dist/assets/{LocalContent-D_By1RQx.js.map → LocalContent-2pJKWECA.js.map} +1 -1
- package/dist/assets/{LocalContent-legacy-ySWyVUnO.js → LocalContent-legacy-DPfe8JRY.js} +2 -2
- package/dist/assets/{LocalContent-legacy-ySWyVUnO.js.map → LocalContent-legacy-DPfe8JRY.js.map} +1 -1
- package/dist/assets/{LocalDemographics-DJ2-OAQf.js → LocalDemographics-CCLrxAlH.js} +2 -2
- package/dist/assets/{LocalDemographics-DJ2-OAQf.js.map → LocalDemographics-CCLrxAlH.js.map} +1 -1
- package/dist/assets/{LocalDemographics-legacy-BdndzMcL.js → LocalDemographics-legacy-BpeV7vKR.js} +2 -2
- package/dist/assets/{LocalDemographics-legacy-BdndzMcL.js.map → LocalDemographics-legacy-BpeV7vKR.js.map} +1 -1
- package/dist/assets/{Mapbox-B7oionsm-uR5IXeyy.js → Mapbox-B7oionsm-KJ9BTAVS.js} +2 -2
- package/dist/assets/{Mapbox-B7oionsm-uR5IXeyy.js.map → Mapbox-B7oionsm-KJ9BTAVS.js.map} +1 -1
- package/dist/assets/{Mapbox-B7oionsm-legacy-DbFnvW90.js → Mapbox-B7oionsm-legacy-DOVfzEvQ.js} +2 -2
- package/dist/assets/{Mapbox-B7oionsm-legacy-DbFnvW90.js.map → Mapbox-B7oionsm-legacy-DOVfzEvQ.js.map} +1 -1
- package/dist/assets/{Mapbox-CIislOVu-_SCNyNvm.js → Mapbox-CIislOVu-CI4DWbq-.js} +2 -2
- package/dist/assets/{Mapbox-CIislOVu-_SCNyNvm.js.map → Mapbox-CIislOVu-CI4DWbq-.js.map} +1 -1
- package/dist/assets/{Mapbox-CIislOVu-legacy-BFRdB1ZB.js → Mapbox-CIislOVu-legacy-BE7lsxI8.js} +2 -2
- package/dist/assets/{Mapbox-CIislOVu-legacy-BFRdB1ZB.js.map → Mapbox-CIislOVu-legacy-BE7lsxI8.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-DEMJ-azB.js → Mapbox-DDJ1gHRb-1dK4LbZk.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-DEMJ-azB.js.map → Mapbox-DDJ1gHRb-1dK4LbZk.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-FX0OT-av.js → Mapbox-DDJ1gHRb-legacy-p6YhQitU.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-FX0OT-av.js.map → Mapbox-DDJ1gHRb-legacy-p6YhQitU.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-CylJOr0s.js → Mapbox-DtZmt1D_-BfV4qnN4.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-CylJOr0s.js.map → Mapbox-DtZmt1D_-BfV4qnN4.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-CEf_t8Ho.js → Mapbox-DtZmt1D_-legacy-Dd0GlX-Y.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-CEf_t8Ho.js.map → Mapbox-DtZmt1D_-legacy-Dd0GlX-Y.js.map} +1 -1
- package/dist/assets/{Mapbox-vp91lH9I-2azJqyBH.js → Mapbox-vp91lH9I-CkAfe1Ca.js} +2 -2
- package/dist/assets/{Mapbox-vp91lH9I-2azJqyBH.js.map → Mapbox-vp91lH9I-CkAfe1Ca.js.map} +1 -1
- package/dist/assets/{Mapbox-vp91lH9I-legacy-DPw2IdjJ.js → Mapbox-vp91lH9I-legacy-B00zbfjv.js} +2 -2
- package/dist/assets/{Mapbox-vp91lH9I-legacy-DPw2IdjJ.js.map → Mapbox-vp91lH9I-legacy-B00zbfjv.js.map} +1 -1
- package/dist/assets/{Maptiler-BQliPE7n-fHYr_Sy8.js → Maptiler-BQliPE7n-B4cS19Fa.js} +2 -2
- package/dist/assets/{Maptiler-BQliPE7n-fHYr_Sy8.js.map → Maptiler-BQliPE7n-B4cS19Fa.js.map} +1 -1
- package/dist/assets/{Maptiler-BQliPE7n-legacy-eo7KI-_O.js → Maptiler-BQliPE7n-legacy-DBnYfT32.js} +2 -2
- package/dist/assets/{Maptiler-BQliPE7n-legacy-eo7KI-_O.js.map → Maptiler-BQliPE7n-legacy-DBnYfT32.js.map} +1 -1
- package/dist/assets/{Maptiler-BtYYeJoo-CTmdD2ZG.js → Maptiler-BtYYeJoo-Vhp1tVrO.js} +2 -2
- package/dist/assets/{Maptiler-BtYYeJoo-CTmdD2ZG.js.map → Maptiler-BtYYeJoo-Vhp1tVrO.js.map} +1 -1
- package/dist/assets/{Maptiler-BtYYeJoo-legacy-3OoLRcAt.js → Maptiler-BtYYeJoo-legacy-CHcjlox7.js} +2 -2
- package/dist/assets/{Maptiler-BtYYeJoo-legacy-3OoLRcAt.js.map → Maptiler-BtYYeJoo-legacy-CHcjlox7.js.map} +1 -1
- package/dist/assets/{Maptiler-Cy2r6w4G-CP-nhmYn.js → Maptiler-Cy2r6w4G-BhmMrh_F.js} +2 -2
- package/dist/assets/{Maptiler-Cy2r6w4G-CP-nhmYn.js.map → Maptiler-Cy2r6w4G-BhmMrh_F.js.map} +1 -1
- package/dist/assets/{Maptiler-Cy2r6w4G-legacy-ZYpf9l6D.js → Maptiler-Cy2r6w4G-legacy-Dtiu6fim.js} +2 -2
- package/dist/assets/{Maptiler-Cy2r6w4G-legacy-ZYpf9l6D.js.map → Maptiler-Cy2r6w4G-legacy-Dtiu6fim.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-Crd7Z6cV.js → Maptiler-DJScKW8p-B4sYvTN1.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-Crd7Z6cV.js.map → Maptiler-DJScKW8p-B4sYvTN1.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-legacy-CtCw_AMy.js → Maptiler-DJScKW8p-legacy-BfcUaZSe.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-legacy-CtCw_AMy.js.map → Maptiler-DJScKW8p-legacy-BfcUaZSe.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-CrkvMF_T.js → Maptiler-DqeshLom-Dj7UvFn7.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-CrkvMF_T.js.map → Maptiler-DqeshLom-Dj7UvFn7.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-legacy-DDfM5Hzg.js → Maptiler-DqeshLom-legacy-bBrlYN2Q.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-legacy-DDfM5Hzg.js.map → Maptiler-DqeshLom-legacy-bBrlYN2Q.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-MIM92a-D.js → MarkerIcon-Bc3X9WQk-CGChV4D4.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-MIM92a-D.js.map → MarkerIcon-Bc3X9WQk-CGChV4D4.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-Df6-FiGi.js → MarkerIcon-Bc3X9WQk-legacy-BhBhhwrP.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-Df6-FiGi.js.map → MarkerIcon-Bc3X9WQk-legacy-BhBhhwrP.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-vYnzmXHM.js → NeighborhoodCard-BaGtTms0.js} +2 -2
- package/dist/assets/{NeighborhoodCard-vYnzmXHM.js.map → NeighborhoodCard-BaGtTms0.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-legacy-DFcfelXl.js → NeighborhoodCard-legacy-B9W6aCqR.js} +2 -2
- package/dist/assets/{NeighborhoodCard-legacy-DFcfelXl.js.map → NeighborhoodCard-legacy-B9W6aCqR.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-CKDqcqBD.js → NeighborhoodCharacteristics-D56qnuca.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-CKDqcqBD.js.map → NeighborhoodCharacteristics-D56qnuca.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-legacy-CLa_SgDg.js → NeighborhoodCharacteristics-legacy-DlowZFEG.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-legacy-CLa_SgDg.js.map → NeighborhoodCharacteristics-legacy-DlowZFEG.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-9bIYm41b.js → NeighborhoodDemographics-C0jX8lOM.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-9bIYm41b.js.map → NeighborhoodDemographics-C0jX8lOM.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-legacy-CS8oTDkw.js → NeighborhoodDemographics-legacy-CnNPTNnh.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-legacy-CS8oTDkw.js.map → NeighborhoodDemographics-legacy-CnNPTNnh.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-CqLcXNVj.js → NeighborhoodFeatured-Dy3pyH2M.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-CqLcXNVj.js.map → NeighborhoodFeatured-Dy3pyH2M.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-legacy-CUYFzaci.js → NeighborhoodFeatured-legacy-BEY92Bli.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-legacy-CUYFzaci.js.map → NeighborhoodFeatured-legacy-BEY92Bli.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-CvvE1ltz.js → NeighborhoodHero-Ccge3SCR.js} +2 -2
- package/dist/assets/{NeighborhoodHero-CvvE1ltz.js.map → NeighborhoodHero-Ccge3SCR.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-legacy-D1mVa22Q.js → NeighborhoodHero-legacy-Cb5s0tRe.js} +2 -2
- package/dist/assets/{NeighborhoodHero-legacy-D1mVa22Q.js.map → NeighborhoodHero-legacy-Cb5s0tRe.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-CZPdH88M.js → NeighborhoodHighlights-BFiTF1H2.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-CZPdH88M.js.map → NeighborhoodHighlights-BFiTF1H2.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-legacy-D9U7NrXB.js → NeighborhoodHighlights-legacy-BQJvJ1kW.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-legacy-D9U7NrXB.js.map → NeighborhoodHighlights-legacy-BQJvJ1kW.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-CW5YonYt.js → NeighborhoodMap-Cs2mW6eY.js} +2 -2
- package/dist/assets/{NeighborhoodMap-CW5YonYt.js.map → NeighborhoodMap-Cs2mW6eY.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-legacy-DJc98Olx.js → NeighborhoodMap-legacy-ItxtWyNg.js} +2 -2
- package/dist/assets/{NeighborhoodMap-legacy-DJc98Olx.js.map → NeighborhoodMap-legacy-ItxtWyNg.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-C9k7JehA.js → NeighborhoodMarketTrends-BPFS-IP7.js} +3 -3
- package/dist/assets/{NeighborhoodMarketTrends-C9k7JehA.js.map → NeighborhoodMarketTrends-BPFS-IP7.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-legacy-2bMV1Qzk.js → NeighborhoodMarketTrends-legacy-BFUSfWBV.js} +2 -2
- package/dist/assets/{NeighborhoodMarketTrends-legacy-2bMV1Qzk.js.map → NeighborhoodMarketTrends-legacy-BFUSfWBV.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-D1Ih_N5y.js → NeighborhoodMatch-DyGrO6rV.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-D1Ih_N5y.js.map → NeighborhoodMatch-DyGrO6rV.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-legacy-JIbRT5P5.js → NeighborhoodMatch-legacy-Dk7eubJO.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-legacy-JIbRT5P5.js.map → NeighborhoodMatch-legacy-Dk7eubJO.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-BZqsNnYY.js → NeighborhoodPropertyValueDrivers-CkZQt4Un.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-BZqsNnYY.js.map → NeighborhoodPropertyValueDrivers-CkZQt4Un.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DFZzKasL.js → NeighborhoodPropertyValueDrivers-legacy-t-PsDc7H.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DFZzKasL.js.map → NeighborhoodPropertyValueDrivers-legacy-t-PsDc7H.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-vdqXmI6x.js → NeighborhoodSchools-CYj0W8g4.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-vdqXmI6x.js.map → NeighborhoodSchools-CYj0W8g4.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-legacy-DZvrq0M0.js → NeighborhoodSchools-legacy-CIoYquJq.js} +2 -2
- package/dist/assets/{NeighborhoodSchools-legacy-DZvrq0M0.js.map → NeighborhoodSchools-legacy-CIoYquJq.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-IMXpKRt7.js → NeighborhoodShowcase-CHCSD8YZ.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-IMXpKRt7.js.map → NeighborhoodShowcase-CHCSD8YZ.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-legacy-DsybUJu-.js → NeighborhoodShowcase-legacy-DyZTfaNU.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-legacy-DsybUJu-.js.map → NeighborhoodShowcase-legacy-DyZTfaNU.js.map} +1 -1
- package/dist/assets/{NoDataContent-C0rYoHx-.js → NoDataContent-CEAzGzUq.js} +2 -2
- package/dist/assets/{NoDataContent-C0rYoHx-.js.map → NoDataContent-CEAzGzUq.js.map} +1 -1
- package/dist/assets/{NoDataContent-legacy-KJTrIi_f.js → NoDataContent-legacy-DT86maak.js} +2 -2
- package/dist/assets/{NoDataContent-legacy-KJTrIi_f.js.map → NoDataContent-legacy-DT86maak.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-C7FI0ut2.js → ResizeWrapper-D7ns3o39.js} +2 -2
- package/dist/assets/{ResizeWrapper-C7FI0ut2.js.map → ResizeWrapper-D7ns3o39.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-legacy-CxGgsSO0.js → ResizeWrapper-legacy-DibF7KTC.js} +2 -2
- package/dist/assets/{ResizeWrapper-legacy-CxGgsSO0.js.map → ResizeWrapper-legacy-DibF7KTC.js.map} +1 -1
- package/dist/assets/{ScoreCardList-Cpdc2cjx.js → ScoreCardList-BYAr0xig.js} +2 -2
- package/dist/assets/{ScoreCardList-Cpdc2cjx.js.map → ScoreCardList-BYAr0xig.js.map} +1 -1
- package/dist/assets/{ScoreCardList-legacy-CEYUmBc-.js → ScoreCardList-legacy-Db7k9lb3.js} +2 -2
- package/dist/assets/{ScoreCardList-legacy-CEYUmBc-.js.map → ScoreCardList-legacy-Db7k9lb3.js.map} +1 -1
- package/dist/assets/{ScoreIcon-t1E2TT1n.js → ScoreIcon-CWGLoE_R.js} +2 -2
- package/dist/assets/{ScoreIcon-t1E2TT1n.js.map → ScoreIcon-CWGLoE_R.js.map} +1 -1
- package/dist/assets/{ScoreIcon-legacy-DkcfBQiQ.js → ScoreIcon-legacy-DGUI0vRG.js} +2 -2
- package/dist/assets/{ScoreIcon-legacy-DkcfBQiQ.js.map → ScoreIcon-legacy-DGUI0vRG.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-BsPetIU5.js → Testing--n5Ro0Ek-DXRiz8JT.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-BsPetIU5.js.map → Testing--n5Ro0Ek-DXRiz8JT.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-legacy-CsbvD4x2.js → Testing--n5Ro0Ek-legacy-B6FpaP3L.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-legacy-CsbvD4x2.js.map → Testing--n5Ro0Ek-legacy-B6FpaP3L.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-BEmMvKs-.js → Testing-BNJwzbRK-VAOz2xBT.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-BEmMvKs-.js.map → Testing-BNJwzbRK-VAOz2xBT.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-legacy-CyJlRp16.js → Testing-BNJwzbRK-legacy-CcRLjo0P.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-legacy-CyJlRp16.js.map → Testing-BNJwzbRK-legacy-CcRLjo0P.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-CPD-TUoo.js → Testing-CoRLhmNT-DkH9taDM.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-CPD-TUoo.js.map → Testing-CoRLhmNT-DkH9taDM.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-legacy-DfgW_o9l.js → Testing-CoRLhmNT-legacy-D75s8djK.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-legacy-DfgW_o9l.js.map → Testing-CoRLhmNT-legacy-D75s8djK.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-BdjxCDn4.js → Testing-DGUeGxdc-dBjPjKfX.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-BdjxCDn4.js.map → Testing-DGUeGxdc-dBjPjKfX.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-legacy-BMmCiaA9.js → Testing-DGUeGxdc-legacy-Bo3xf4lS.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-legacy-BMmCiaA9.js.map → Testing-DGUeGxdc-legacy-Bo3xf4lS.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-D9IV0vyX.js → Testing-DzWAcbhL-CORqap_0.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-D9IV0vyX.js.map → Testing-DzWAcbhL-CORqap_0.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-legacy-ByYDbJ2R.js → Testing-DzWAcbhL-legacy-C_L0YDrv.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-legacy-ByYDbJ2R.js.map → Testing-DzWAcbhL-legacy-C_L0YDrv.js.map} +1 -1
- package/dist/assets/{TitleHeader-legacy-BLb6gLY8.js → TitleHeader-legacy-Dkn0qrYi.js} +2 -2
- package/dist/assets/{TitleHeader-legacy-BLb6gLY8.js.map → TitleHeader-legacy-Dkn0qrYi.js.map} +1 -1
- package/dist/assets/{TitleHeader-D5FOkV2k.js → TitleHeader-q22P7nGv.js} +2 -2
- package/dist/assets/{TitleHeader-D5FOkV2k.js.map → TitleHeader-q22P7nGv.js.map} +1 -1
- package/dist/assets/{Trans-D7Lw95-5.js → Trans-CoQWpfjg.js} +2 -2
- package/dist/assets/{Trans-D7Lw95-5.js.map → Trans-CoQWpfjg.js.map} +1 -1
- package/dist/assets/{Trans-legacy-CpzDXXlm.js → Trans-legacy-CVX9qUZX.js} +2 -2
- package/dist/assets/{Trans-legacy-CpzDXXlm.js.map → Trans-legacy-CVX9qUZX.js.map} +1 -1
- package/dist/assets/{ValidateOptions-DO60DBsp.js → ValidateOptions-CBV1N5jv.js} +2 -2
- package/dist/assets/{ValidateOptions-DO60DBsp.js.map → ValidateOptions-CBV1N5jv.js.map} +1 -1
- package/dist/assets/{ValidateOptions-legacy-3q4kbk3m.js → ValidateOptions-legacy-DSqr0GvA.js} +2 -2
- package/dist/assets/{ValidateOptions-legacy-3q4kbk3m.js.map → ValidateOptions-legacy-DSqr0GvA.js.map} +1 -1
- package/dist/assets/{dist-DR7fC17q.js → dist-BS0nF9v1.js} +2 -2
- package/dist/assets/{dist-DR7fC17q.js.map → dist-BS0nF9v1.js.map} +1 -1
- package/dist/assets/{dist-legacy-cfZE5xAd.js → dist-legacy-DvNzEKrH.js} +2 -2
- package/dist/assets/{dist-legacy-cfZE5xAd.js.map → dist-legacy-DvNzEKrH.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-CioaIqLl.js → getMapProviderConfig-Bzfs0Sdc.js} +3 -3
- package/dist/assets/{getMapProviderConfig-CioaIqLl.js.map → getMapProviderConfig-Bzfs0Sdc.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-legacy-Bvhnps7J.js → getMapProviderConfig-legacy-J1T1rgyn.js} +2 -2
- package/dist/assets/{getMapProviderConfig-legacy-Bvhnps7J.js.map → getMapProviderConfig-legacy-J1T1rgyn.js.map} +1 -1
- package/dist/assets/{index-Bs6_tEDn.js → index-_e6zO9FA.js} +3 -3
- package/dist/assets/{index-Bs6_tEDn.js.map → index-_e6zO9FA.js.map} +1 -1
- package/dist/assets/{index-legacy-4jEyS75d.js → index-legacy-D77-aBOf.js} +2 -2
- package/dist/assets/{index-legacy-4jEyS75d.js.map → index-legacy-D77-aBOf.js.map} +1 -1
- package/dist/assets/{index.es-DqsbUu3C.js → index.es-CWTeuLFE.js} +2 -2
- package/dist/assets/{index.es-DqsbUu3C.js.map → index.es-CWTeuLFE.js.map} +1 -1
- package/dist/assets/{index.es-legacy-D0YewKKM.js → index.es-legacy-C0a6QEDw.js} +2 -2
- package/dist/assets/{index.es-legacy-D0YewKKM.js.map → index.es-legacy-C0a6QEDw.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-C9a-fLxp.js → mapbox-jb8Zev6T-Ddgqj9VI.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-C9a-fLxp.js.map → mapbox-jb8Zev6T-Ddgqj9VI.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-legacy-C5JRCz3k.js → mapbox-jb8Zev6T-legacy-vMWDQC6s.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-legacy-C5JRCz3k.js.map → mapbox-jb8Zev6T-legacy-vMWDQC6s.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-DB5uPmy7.js → maplibre-CUYkxr-D-C7Skcfn8.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-DB5uPmy7.js.map → maplibre-CUYkxr-D-C7Skcfn8.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-legacy-BrYegJJb.js → maplibre-CUYkxr-D-legacy-CuAPk6TP.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-legacy-BrYegJJb.js.map → maplibre-CUYkxr-D-legacy-CuAPk6TP.js.map} +1 -1
- package/dist/assets/neighborhood-fallback-CizB5oi9.js.map +1 -1
- package/dist/assets/neighborhood-fallback-legacy-Bu1BwGpC.js.map +1 -1
- package/dist/assets/sdks-BuksrzcW.js +2 -0
- package/dist/assets/sdks-BuksrzcW.js.map +1 -0
- package/dist/assets/sdks-legacy-CoLf_W4Z.js +2 -0
- package/dist/assets/sdks-legacy-CoLf_W4Z.js.map +1 -0
- package/dist/assets/{useDemographicsData-C0C4upsm.js → useDemographicsData-B4it1cPj.js} +2 -2
- package/dist/assets/{useDemographicsData-C0C4upsm.js.map → useDemographicsData-B4it1cPj.js.map} +1 -1
- package/dist/assets/{useDemographicsData-legacy-DPnr3Jmh.js → useDemographicsData-legacy-BYnQNjDv.js} +2 -2
- package/dist/assets/{useDemographicsData-legacy-DPnr3Jmh.js.map → useDemographicsData-legacy-BYnQNjDv.js.map} +1 -1
- package/dist/assets/{useGeographies-Dsip5TUe.js → useGeographies-h5AWa9mj.js} +2 -2
- package/dist/assets/{useGeographies-Dsip5TUe.js.map → useGeographies-h5AWa9mj.js.map} +1 -1
- package/dist/assets/{useGeographies-legacy-CZm4sQ-W.js → useGeographies-legacy-D7XUaxgU.js} +2 -2
- package/dist/assets/{useGeographies-legacy-CZm4sQ-W.js.map → useGeographies-legacy-D7XUaxgU.js.map} +1 -1
- package/dist/assets/{useIsMobile-D1ppstVc.js → useIsMobile-CEgZCKoT.js} +2 -2
- package/dist/assets/{useIsMobile-D1ppstVc.js.map → useIsMobile-CEgZCKoT.js.map} +1 -1
- package/dist/assets/{useIsMobile-legacy-BCGf3xRg.js → useIsMobile-legacy-BYXlMXeW.js} +2 -2
- package/dist/assets/{useIsMobile-legacy-BCGf3xRg.js.map → useIsMobile-legacy-BYXlMXeW.js.map} +1 -1
- package/dist/assets/{useLocation-woeqoUC-.js → useLocation-KxuXzpB1.js} +2 -2
- package/dist/assets/{useLocation-woeqoUC-.js.map → useLocation-KxuXzpB1.js.map} +1 -1
- package/dist/assets/{useLocation-legacy-CrONniQb.js → useLocation-legacy-TYbGg3Qq.js} +2 -2
- package/dist/assets/{useLocation-legacy-CrONniQb.js.map → useLocation-legacy-TYbGg3Qq.js.map} +1 -1
- package/dist/assets/{useProfiles-BD0axzG_.js → useProfiles-BMZF6PTl.js} +2 -2
- package/dist/assets/{useProfiles-BD0axzG_.js.map → useProfiles-BMZF6PTl.js.map} +1 -1
- package/dist/assets/{useProfiles-legacy-xMXLwJ8a.js → useProfiles-legacy-CtdD2AM8.js} +2 -2
- package/dist/assets/{useProfiles-legacy-xMXLwJ8a.js.map → useProfiles-legacy-CtdD2AM8.js.map} +1 -1
- package/dist/assets/{useSchools-Bp4ifAPV.js → useSchools-Dmfxgddk.js} +2 -2
- package/dist/assets/{useSchools-Bp4ifAPV.js.map → useSchools-Dmfxgddk.js.map} +1 -1
- package/dist/assets/{useSchools-legacy-CBF47OQq.js → useSchools-legacy-CBA1yga4.js} +2 -2
- package/dist/assets/{useSchools-legacy-CBF47OQq.js.map → useSchools-legacy-CBA1yga4.js.map} +1 -1
- package/dist/assets/{useScores-C3u-1G5Q.js → useScores-BYEwsLLe.js} +2 -2
- package/dist/assets/{useScores-C3u-1G5Q.js.map → useScores-BYEwsLLe.js.map} +1 -1
- package/dist/assets/{useScores-legacy-DlQbFEJD.js → useScores-legacy-CCbzbNWr.js} +2 -2
- package/dist/assets/{useScores-legacy-DlQbFEJD.js.map → useScores-legacy-CCbzbNWr.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/types/tracking/tracker/index.d.ts.map +1 -1
- package/dist/types/tracking/tracker/index.js +15 -0
- package/dist/types/tracking/tracker/index.js.map +1 -1
- package/dist/types/utils/errorTracker/index.d.ts.map +1 -1
- package/dist/types/utils/errorTracker/index.js +7 -8
- package/dist/types/utils/errorTracker/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/assets/sdks-BLrYTJCI.js +0 -2
- package/dist/assets/sdks-BLrYTJCI.js.map +0 -1
- package/dist/assets/sdks-legacy-BKNGokn5.js +0 -2
- package/dist/assets/sdks-legacy-BKNGokn5.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as a}from"./google-maps-vendor-DvfEEdRU.js";import{a as t,f as l,h as s,l as i,n as o,o as n,p as r,r as c,s as d,t as m,u}from"./sdks-BLrYTJCI.js";import{t as p}from"./Buildings.es-Cy83SPQS.js";import{t as h}from"./GraduationCap.es-Bvo9K-N3.js";import{a as v,i as g,n as b,r as x,t as j}from"./useDemographicsData-C0C4upsm.js";import{t as f}from"./UsersThree.es-Di-ux4sv.js";import{t as _}from"./IconBase.es-CEehl5AX.js";import{B as y,H as N,W as M,_ as A,_t as D,c as E,g as H,l as C,q as S,r as T,t as w,u as F,v as V,y as $}from"./index-Bs6_tEDn.js";import{t as k}from"./useLocation-woeqoUC-.js";import{n as I}from"./Attribution-1Rs_lSaP.js";import{t as L}from"./ResizeWrapper-C7FI0ut2.js";import{t as Z}from"./useIsMobile-D1ppstVc.js";/* empty css */import{i as O,n as z,r as B,t as P}from"./dist-DR7fC17q.js";import{t as K}from"./TitleHeader-D5FOkV2k.js";var R=e(a(),1),W=new Map([["bold",R.createElement(R.Fragment,null,R.createElement("path",{d:"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z"}))],["duotone",R.createElement(R.Fragment,null,R.createElement("path",{d:"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z",opacity:"0.2"}),R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["fill",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z"}))],["light",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z"}))],["regular",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["thin",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z"}))]]),G=R.forwardRef((e,a)=>R.createElement(_,{ref:a,...e,weights:W}));G.displayName="WalletIcon";var U=R.createContext({}),q=()=>(0,R.useContext)(U),Y=S(),J=({children:e,options:{value:a,style:t}})=>(0,Y.jsx)(P,{value:a,style:t,children:e},a),Q=["income","population","housing","household","education","commute","languages"],X={income:G,population:x,housing:p,household:f,education:h,commute:v,languages:g},ee=()=>{const{t:e}=s("localDemographics"),{options:a}=q();let t=Q;return a.omitTabs&&(t=Q.filter(e=>!a.omitTabs?.includes(e))),(0,Y.jsx)(z,{className:"\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n","aria-label":"Demographics tabs",children:t.map(t=>{const l=t===a.activeTab,s=X[t];return(0,Y.jsx)(R.Fragment,{children:(0,Y.jsxs)(O,{"data-active":l,className:"\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n",value:t,children:[(0,Y.jsx)(s,{className:"\n w-6 h-6\n fill-inherit\n"}),(0,Y.jsx)("p",{className:"\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n",children:e(`data.${t}.title`)})]})},t)})})},ae=()=>{const{t:e}=s("localDemographics"),{options:a,onChange:t}=q();let l=Q;return a.omitTabs&&(l=Q.filter(e=>!a.omitTabs?.includes(e))),(0,Y.jsx)("div",{className:"\n flex\n py-4 px-0\n z-[4]\n",children:(0,Y.jsxs)(V,{value:a.activeTab,onValueChange:e=>{t({type:"tabs",data:e})},children:[(0,Y.jsx)($,{size:"large",children:(0,Y.jsx)(N,{noMargin:!0,variant:"h6",color:"--ll-color-placeholder",children:e(`data.${a.activeTab}.title`)})}),(0,Y.jsx)(H,{children:l.map(a=>(0,Y.jsx)(A,{value:a,children:(0,Y.jsx)(N,{noMargin:!0,variant:"h6",children:e(`data.${a}.title`)})},a))})]})})},te=({options:e,onChange:a,children:t})=>(0,Y.jsx)(U.Provider,{value:{options:e,onChange:a},children:(0,Y.jsx)(B,{value:e.activeTab,onValueChange:e=>{a({type:"tabs",data:e})},children:t})}),le="\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n",se="\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n",ie="\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n",oe="text-ll-primary w-2/4 h-2/4",ne="min-h-36 h-full",re=function(e){return e.SDK_VIEWED="LD-Viewed",e.TAB_CLICKED="LD-Tab-Clicked",e}({}),ce=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),de=i({lat:u().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").required(),lng:u().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").required(),title:r().optional(),defaultTab:r().optional(),hideAttribution:l().optional()}).noUnknown(!0),me=R.createContext({}),ue=()=>(0,R.useContext)(me),pe=({children:e})=>{const a=d(),{sdkState:t}=w(),[l,s]=(0,R.useState)(t.options?.defaultTab&&Q.includes(t.options?.defaultTab)?t.options?.defaultTab:Q[0]),[i,o]=(0,R.useState)(!1),[n,r]=(0,R.useState)([]),{data:{country:c},isLoading:m}=k({lat:t.options?.lat,lng:t.options?.lng});T(()=>{a.postEvent({eventType:re.SDK_VIEWED}),a.trackAnalyticsEvent({eventName:ce.SDK_VIEWED})});const[u,p]=(0,R.useReducer)((e,a)=>({...e,...a}),{location:{lat:t.options?.lat||43.661337,lng:t.options?.lng||-79.401903},country:"CAN"});(0,R.useEffect)(()=>{t&&p({...u,country:c})},[t,c]),T(()=>{i||(async()=>{try{D.addBreadCrumb("LocalDemographicsProvider","Validating state options",{options:t.options}),await(e=t.options,de.validate(e,{abortEarly:!1})),o(!0)}catch(a){const e=a;r(e.errors),D.addBreadCrumb("LocalDemographicsProvider","State option validation failed",{errors:e.errors})}var e})()});const h=(0,R.useMemo)(()=>({country:c,demographicsState:u,setDemographicsState:p,activeCategory:l,setActiveCategory:s,locale:t.globalOptions?.locale||"en",hideAttribution:t.options?.hideAttribution}),[c,l,s,u,p,t.globalOptions,t.options?.hideAttribution]),v=(0,R.useMemo)(()=>{const e=[];return Object.entries({income:"income",population:"population_age",housing:"housing_tenancy",household:"household_composition",education:"education_level",commute:"commute_mode",languages:"mother_tongue"}).forEach(([a,t])=>{Object.keys(u).includes(t)||e.push(a)}),D.addBreadCrumb("LocalDemographicsProvider","Updated tabs to omit",{tabsToOmit:e}),e},[u]);if(!i){if(n.length){const e="Could not load Demographics";return console.error(`${e}: ${n.join(", ")}`),(0,Y.jsx)("p",{children:e})}return(0,Y.jsx)(Y.Fragment,{})}return(0,Y.jsx)(me.Provider,{value:h,children:(0,Y.jsx)(te,{options:{activeTab:l,omitTabs:v},onChange:e=>{s(e.data),D.addBreadCrumb("LocalDemographicsProvider","handleTabsChange",{value:e}),a.postEvent({eventType:re.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e.data}]}),a.trackAnalyticsEvent({eventName:ce.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e.data}})},children:(0,Y.jsx)("div",{style:{display:"flex",flexDirection:"column",background:`${M["--ll-color-background"]}`,padding:`${M["--ll-spacing-xx-small"]} ${M["--ll-spacing-small"]} 0`,borderRadius:`${M["--ll-border-radius-medium"]}`},children:!m&&e})})})},he=()=>{const{t:e}=s("localDemographics"),{country:a,demographicsState:{income:t}}=ue(),l=(0,R.useMemo)(()=>t?.variables.slice().reverse()||[{variable:"avg_individual_income",label:"Avg individual income",value:t?.variables?.find(e=>"inc_person"===e.variable)?.value||0},{variable:"avg_household_income",label:"Avg household income",value:t?.variables?.find(e=>"inc_home"===e.variable)?.value||0}],[t?.variables]),i=(0,R.useMemo)(()=>({options:{title:e("data.income.graphs.averageIncome.title",{context:a}),values:l.map(t=>{let l="";return"avg_household_income"===t.variable&&(l=e("data.income.graphs.averageIncome.types.avgHouseholdIncome",{context:a})),"avg_individual_income"===t.variable&&(l=e("data.income.graphs.averageIncome.types.avgIndividualIncome",{context:a})),{variable:t.variable,value:`${new Intl.NumberFormat("en-EN",{style:"currency",currency:"USD",maximumFractionDigits:1}).format(t.value/1e3)}${t.value>=1e3?"k":""}`,label:l}})}}),[l]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...i})})},ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:{employment_status:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))}))||[],[a?.variables]),l=(0,R.useMemo)(()=>({options:{title:e("data.income.graphs.employment.title"),values:t.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[t]);return a?(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...l})}):null},ge=()=>{const{t:e}=s("localDemographics"),{demographicsState:{income_level:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.income.graphs.incomeBrackets.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},be=()=>{const{demographicsState:{income_level:e}}=ue();return(0,Y.jsx)(Y.Fragment,{children:e?(0,Y.jsxs)("div",{className:le,children:[(0,Y.jsxs)("div",{className:se,children:[(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(he,{})}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(ve,{})})]}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(ge,{})})]}):(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"quarter",children:(0,Y.jsx)(he,{})})})})},xe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_total:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables[0],[a?.variables]),l=(0,R.useMemo)(()=>({options:{title:e("data.population.graphs.totalPopulation.title"),values:[{variable:t?.variable||"",value:`${new Intl.NumberFormat("en-EN").format(Math.round(t?.value||0))}`,label:e("data.population.graphs.totalPopulation.title"),icon:x}]}}),[t]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...l})})},je=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_age:a}}=ue(),t=(0,R.useMemo)(()=>{if(!a)return null;if(a?.variables.length>12){const e=a?.variables.map(e=>{const a=e.label.split(" ");return a.splice(1,1),a}),t=[];return e.forEach((l,s)=>{0!==s&&s%2!=0||t.push({variable:`age_${l[0]}_${e[s+1][1]}`,value:a.variables[s].value+a.variables[s+1].value,label:`${l[0]} to ${e[s+1][1]}`})}),t}return a.variables},[a]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>e.label)||[],data:t?.map(e=>Number((100*e.value).toFixed(1)))||[]}),[t]),i=(0,R.useMemo)(()=>({title:e("data.population.graphs.populationByAgeGroup.title"),labels:l.labels,data:l.data,unit:"%"}),[l]);return(0,Y.jsx)(C,{...i,children:(0,Y.jsx)(F,{})})},fe=()=>{const{demographicsState:{population_total:e}}=ue();return(0,Y.jsxs)("div",{className:le,children:[e&&(0,Y.jsx)("div",{className:se,children:(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(xe,{})})}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(je,{})})]})},_e=()=>{const{t:e}=s("localDemographics"),{demographicsState:{property_tenure:a,housing_tenancy:t}}=ue(),l=(0,R.useMemo)(()=>t||a,[t,a]),i=(0,R.useMemo)(()=>l?.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))}))||[],[l?.variables]),o=(0,R.useMemo)(()=>({options:{title:e("data.housing.graphs.homeOwnershipType.title"),values:i.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[i]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...o})})},ye=()=>{const{t:e}=s("localDemographics"),{demographicsState:{housing_type:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.housing.graphs.typeOfHousing.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},Ne=()=>{const{demographicsState:{property_tenure:e,housing_tenancy:a,housing_type:t}}=ue(),l=a||e;return(0,Y.jsxs)("div",{className:le,children:[l&&(0,Y.jsx)("div",{className:se,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(_e,{})})}),t&&(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(ye,{})})]})},Me=()=>{const{t:e}=s("localDemographics"),{demographicsState:{household_composition:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.household.graphs.householdComposition.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(f,{className:oe})}),[l])})},Ae=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Me,{})})}),De=()=>{const{t:e}=s("localDemographics"),{demographicsState:{education_level:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.education.graphs.educationLevel.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},Ee=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(De,{})})}),He=()=>{const{t:e}=s("localDemographics"),{demographicsState:{commute_mode:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.commute.graphs.commuteMode.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(v,{className:oe})}),[l])})},Ce=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(He,{})})}),Se=()=>{const{t:e}=s("localDemographics"),{demographicsState:{official_language_knowledge:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.languages.graphs.spokenLanguages.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(g,{className:oe})}),[l])})},Te=()=>{const{t:e}=s("localDemographics"),{demographicsState:{mother_tongue:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.filter(e=>"french_and_non_official_language_s"!==e.variable&&"english_and_non_official_language_s"!==e.variable).slice(0,10)?.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>e.value>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>e.label)||[],data:t?.map(e=>e.value)||[]}),[t]),i=(0,R.useMemo)(()=>({title:e("data.languages.graphs.motherTongue.title"),labels:l.labels,data:l.data,unit:"%"}),[l]);return(0,Y.jsx)(C,{...i,children:(0,Y.jsx)(F,{})})},we=()=>{const{demographicsState:{official_language_knowledge:e}}=ue();return(0,Y.jsxs)("div",{className:le,children:[e&&(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Se,{})}),(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Te,{})})]})},Fe=({children:e})=>(0,Y.jsx)(Y.Fragment,{children:e}),Ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:a,activeCategory:t,setDemographicsState:l}=ue(),{data:i,isFetching:o}=j({lat:a.location.lat,lng:a.location.lng,radius:400,radiusUnit:"meter"});(0,R.useEffect)(()=>{!o&&i&&l({...i})},[o]);return(0,Y.jsx)(J,{options:{value:t},children:(0,Y.jsx)(Fe,{children:(()=>{if(o)return(0,Y.jsx)("div",{className:"\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n",children:(0,Y.jsx)(y,{})});if(void 0===i)return(0,Y.jsx)("div",{className:"\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n",children:(0,Y.jsx)(N,{variant:"h6",weight:"--ll-font-weight-bold",children:e("noData")})});switch(t){case"income":return(0,Y.jsx)(be,{});case"population":return(0,Y.jsx)(fe,{});case"housing":return(0,Y.jsx)(Ne,{});case"household":return(0,Y.jsx)(Ae,{});case"commute":return(0,Y.jsx)(Ce,{});case"education":return(0,Y.jsx)(Ee,{});case"languages":return(0,Y.jsx)(we,{});default:return(0,Y.jsxs)("div",{children:[t," tab"]})}})()})})},$e=()=>{const{t:e}=s(["localDemographics","common"]),{demographicsState:a,locale:t,hideAttribution:l}=ue(),{country:i}=a,o=(0,R.useMemo)(()=>"CAN"===i?400:.2485484.toFixed(2),[i]),n=(0,R.useMemo)(()=>e("common:distance."+("CAN"===i?"meter":"mile")),[t,i]);return(0,Y.jsxs)("div",{className:"\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n",children:[(0,Y.jsx)(N,{noMargin:!0,variant:"caption1",color:"--ll-color-on-background-variant1",children:e("note",{value:o,unit:n})}),!l&&(0,Y.jsx)(I,{sdkName:"local-demographics",locale:t})]})};n(o.localDemographics.key);var ke=()=>{const{t:e}=s("localDemographics"),{sdkState:a}=w(),l=Z();return(0,Y.jsx)(L,{children:(0,Y.jsx)(c,{environment:a.globalOptions?.environment?.api,apiKey:a.apiKey,appearance:a.globalOptions?.appearance,locale:a.globalOptions?.locale,product:m.LOCAL_DEMOGRAPHICS,children:(0,Y.jsx)(t,{trackingPipelineSettings:{apiKey:a.apiKey||""},analyticsSettings:o.localDemographics,meta:{clientId:a.clientId,productName:m.LOCAL_DEMOGRAPHICS,productVersion:"1.24.40"},attributes:{location:{lat:a.options?.lat,lng:a.options?.lng},host:a.location,host_url:document.referrer,locale:a.globalOptions?.locale,isMobile:l},flags:{isDebugMode:!1},children:(0,Y.jsx)(pe,{children:(0,Y.jsx)("div",{className:"\n flex flex-col flex-1 overflow-hidden box-border\n",children:(0,Y.jsxs)("div",{className:"\n overflow-y-auto flex flex-col\n",children:[(0,Y.jsx)(K,{title:"string"==typeof a.options?.title||!1===a.options?.title?a.options.title:e("title")}),l?(0,Y.jsx)(ae,{}):(0,Y.jsx)(ee,{}),(0,Y.jsx)(Ve,{}),(0,Y.jsx)($e,{})]})})})})})})};export{ke as default};
|
|
2
|
-
//# sourceMappingURL=LocalDemographics-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as a}from"./google-maps-vendor-DvfEEdRU.js";import{a as t,f as l,h as s,l as i,n as o,o as n,p as r,r as c,s as d,t as m,u}from"./sdks-BuksrzcW.js";import{t as p}from"./Buildings.es-Cy83SPQS.js";import{t as h}from"./GraduationCap.es-Bvo9K-N3.js";import{a as v,i as g,n as b,r as x,t as j}from"./useDemographicsData-B4it1cPj.js";import{t as f}from"./UsersThree.es-Di-ux4sv.js";import{t as _}from"./IconBase.es-CEehl5AX.js";import{B as y,H as N,W as M,_ as A,_t as D,c as E,g as H,l as C,q as S,r as T,t as w,u as F,v as V,y as $}from"./index-_e6zO9FA.js";import{t as k}from"./useLocation-KxuXzpB1.js";import{n as I}from"./Attribution-BFX5_TA0.js";import{t as L}from"./ResizeWrapper-D7ns3o39.js";import{t as Z}from"./useIsMobile-CEgZCKoT.js";/* empty css */import{i as O,n as z,r as B,t as P}from"./dist-BS0nF9v1.js";import{t as K}from"./TitleHeader-q22P7nGv.js";var R=e(a(),1),W=new Map([["bold",R.createElement(R.Fragment,null,R.createElement("path",{d:"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z"}))],["duotone",R.createElement(R.Fragment,null,R.createElement("path",{d:"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z",opacity:"0.2"}),R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["fill",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z"}))],["light",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z"}))],["regular",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["thin",R.createElement(R.Fragment,null,R.createElement("path",{d:"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z"}))]]),G=R.forwardRef((e,a)=>R.createElement(_,{ref:a,...e,weights:W}));G.displayName="WalletIcon";var U=R.createContext({}),q=()=>(0,R.useContext)(U),Y=S(),J=({children:e,options:{value:a,style:t}})=>(0,Y.jsx)(P,{value:a,style:t,children:e},a),Q=["income","population","housing","household","education","commute","languages"],X={income:G,population:x,housing:p,household:f,education:h,commute:v,languages:g},ee=()=>{const{t:e}=s("localDemographics"),{options:a}=q();let t=Q;return a.omitTabs&&(t=Q.filter(e=>!a.omitTabs?.includes(e))),(0,Y.jsx)(z,{className:"\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n","aria-label":"Demographics tabs",children:t.map(t=>{const l=t===a.activeTab,s=X[t];return(0,Y.jsx)(R.Fragment,{children:(0,Y.jsxs)(O,{"data-active":l,className:"\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n",value:t,children:[(0,Y.jsx)(s,{className:"\n w-6 h-6\n fill-inherit\n"}),(0,Y.jsx)("p",{className:"\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n",children:e(`data.${t}.title`)})]})},t)})})},ae=()=>{const{t:e}=s("localDemographics"),{options:a,onChange:t}=q();let l=Q;return a.omitTabs&&(l=Q.filter(e=>!a.omitTabs?.includes(e))),(0,Y.jsx)("div",{className:"\n flex\n py-4 px-0\n z-[4]\n",children:(0,Y.jsxs)(V,{value:a.activeTab,onValueChange:e=>{t({type:"tabs",data:e})},children:[(0,Y.jsx)($,{size:"large",children:(0,Y.jsx)(N,{noMargin:!0,variant:"h6",color:"--ll-color-placeholder",children:e(`data.${a.activeTab}.title`)})}),(0,Y.jsx)(H,{children:l.map(a=>(0,Y.jsx)(A,{value:a,children:(0,Y.jsx)(N,{noMargin:!0,variant:"h6",children:e(`data.${a}.title`)})},a))})]})})},te=({options:e,onChange:a,children:t})=>(0,Y.jsx)(U.Provider,{value:{options:e,onChange:a},children:(0,Y.jsx)(B,{value:e.activeTab,onValueChange:e=>{a({type:"tabs",data:e})},children:t})}),le="\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n",se="\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n",ie="\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n",oe="text-ll-primary w-2/4 h-2/4",ne="min-h-36 h-full",re=function(e){return e.SDK_VIEWED="LD-Viewed",e.TAB_CLICKED="LD-Tab-Clicked",e}({}),ce=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),de=i({lat:u().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").required(),lng:u().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").required(),title:r().optional(),defaultTab:r().optional(),hideAttribution:l().optional()}).noUnknown(!0),me=R.createContext({}),ue=()=>(0,R.useContext)(me),pe=({children:e})=>{const a=d(),{sdkState:t}=w(),[l,s]=(0,R.useState)(t.options?.defaultTab&&Q.includes(t.options?.defaultTab)?t.options?.defaultTab:Q[0]),[i,o]=(0,R.useState)(!1),[n,r]=(0,R.useState)([]),{data:{country:c},isLoading:m}=k({lat:t.options?.lat,lng:t.options?.lng});T(()=>{a.postEvent({eventType:re.SDK_VIEWED}),a.trackAnalyticsEvent({eventName:ce.SDK_VIEWED})});const[u,p]=(0,R.useReducer)((e,a)=>({...e,...a}),{location:{lat:t.options?.lat||43.661337,lng:t.options?.lng||-79.401903},country:"CAN"});(0,R.useEffect)(()=>{t&&p({...u,country:c})},[t,c]),T(()=>{i||(async()=>{try{D.addBreadCrumb("LocalDemographicsProvider","Validating state options",{options:t.options}),await(e=t.options,de.validate(e,{abortEarly:!1})),o(!0)}catch(a){const e=a;r(e.errors),D.addBreadCrumb("LocalDemographicsProvider","State option validation failed",{errors:e.errors})}var e})()});const h=(0,R.useMemo)(()=>({country:c,demographicsState:u,setDemographicsState:p,activeCategory:l,setActiveCategory:s,locale:t.globalOptions?.locale||"en",hideAttribution:t.options?.hideAttribution}),[c,l,s,u,p,t.globalOptions,t.options?.hideAttribution]),v=(0,R.useMemo)(()=>{const e=[];return Object.entries({income:"income",population:"population_age",housing:"housing_tenancy",household:"household_composition",education:"education_level",commute:"commute_mode",languages:"mother_tongue"}).forEach(([a,t])=>{Object.keys(u).includes(t)||e.push(a)}),D.addBreadCrumb("LocalDemographicsProvider","Updated tabs to omit",{tabsToOmit:e}),e},[u]);if(!i){if(n.length){const e="Could not load Demographics";return console.error(`${e}: ${n.join(", ")}`),(0,Y.jsx)("p",{children:e})}return(0,Y.jsx)(Y.Fragment,{})}return(0,Y.jsx)(me.Provider,{value:h,children:(0,Y.jsx)(te,{options:{activeTab:l,omitTabs:v},onChange:e=>{s(e.data),D.addBreadCrumb("LocalDemographicsProvider","handleTabsChange",{value:e}),a.postEvent({eventType:re.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e.data}]}),a.trackAnalyticsEvent({eventName:ce.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e.data}})},children:(0,Y.jsx)("div",{style:{display:"flex",flexDirection:"column",background:`${M["--ll-color-background"]}`,padding:`${M["--ll-spacing-xx-small"]} ${M["--ll-spacing-small"]} 0`,borderRadius:`${M["--ll-border-radius-medium"]}`},children:!m&&e})})})},he=()=>{const{t:e}=s("localDemographics"),{country:a,demographicsState:{income:t}}=ue(),l=(0,R.useMemo)(()=>t?.variables.slice().reverse()||[{variable:"avg_individual_income",label:"Avg individual income",value:t?.variables?.find(e=>"inc_person"===e.variable)?.value||0},{variable:"avg_household_income",label:"Avg household income",value:t?.variables?.find(e=>"inc_home"===e.variable)?.value||0}],[t?.variables]),i=(0,R.useMemo)(()=>({options:{title:e("data.income.graphs.averageIncome.title",{context:a}),values:l.map(t=>{let l="";return"avg_household_income"===t.variable&&(l=e("data.income.graphs.averageIncome.types.avgHouseholdIncome",{context:a})),"avg_individual_income"===t.variable&&(l=e("data.income.graphs.averageIncome.types.avgIndividualIncome",{context:a})),{variable:t.variable,value:`${new Intl.NumberFormat("en-EN",{style:"currency",currency:"USD",maximumFractionDigits:1}).format(t.value/1e3)}${t.value>=1e3?"k":""}`,label:l}})}}),[l]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...i})})},ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:{employment_status:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))}))||[],[a?.variables]),l=(0,R.useMemo)(()=>({options:{title:e("data.income.graphs.employment.title"),values:t.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[t]);return a?(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...l})}):null},ge=()=>{const{t:e}=s("localDemographics"),{demographicsState:{income_level:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.income.graphs.incomeBrackets.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},be=()=>{const{demographicsState:{income_level:e}}=ue();return(0,Y.jsx)(Y.Fragment,{children:e?(0,Y.jsxs)("div",{className:le,children:[(0,Y.jsxs)("div",{className:se,children:[(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(he,{})}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(ve,{})})]}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(ge,{})})]}):(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"quarter",children:(0,Y.jsx)(he,{})})})})},xe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_total:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables[0],[a?.variables]),l=(0,R.useMemo)(()=>({options:{title:e("data.population.graphs.totalPopulation.title"),values:[{variable:t?.variable||"",value:`${new Intl.NumberFormat("en-EN").format(Math.round(t?.value||0))}`,label:e("data.population.graphs.totalPopulation.title"),icon:x}]}}),[t]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...l})})},je=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_age:a}}=ue(),t=(0,R.useMemo)(()=>{if(!a)return null;if(a?.variables.length>12){const e=a?.variables.map(e=>{const a=e.label.split(" ");return a.splice(1,1),a}),t=[];return e.forEach((l,s)=>{0!==s&&s%2!=0||t.push({variable:`age_${l[0]}_${e[s+1][1]}`,value:a.variables[s].value+a.variables[s+1].value,label:`${l[0]} to ${e[s+1][1]}`})}),t}return a.variables},[a]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>e.label)||[],data:t?.map(e=>Number((100*e.value).toFixed(1)))||[]}),[t]),i=(0,R.useMemo)(()=>({title:e("data.population.graphs.populationByAgeGroup.title"),labels:l.labels,data:l.data,unit:"%"}),[l]);return(0,Y.jsx)(C,{...i,children:(0,Y.jsx)(F,{})})},fe=()=>{const{demographicsState:{population_total:e}}=ue();return(0,Y.jsxs)("div",{className:le,children:[e&&(0,Y.jsx)("div",{className:se,children:(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(xe,{})})}),(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(je,{})})]})},_e=()=>{const{t:e}=s("localDemographics"),{demographicsState:{property_tenure:a,housing_tenancy:t}}=ue(),l=(0,R.useMemo)(()=>t||a,[t,a]),i=(0,R.useMemo)(()=>l?.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))}))||[],[l?.variables]),o=(0,R.useMemo)(()=>({options:{title:e("data.housing.graphs.homeOwnershipType.title"),values:i.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[i]);return(0,Y.jsx)("div",{className:ne,children:(0,Y.jsx)(b,{...o})})},ye=()=>{const{t:e}=s("localDemographics"),{demographicsState:{housing_type:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.housing.graphs.typeOfHousing.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},Ne=()=>{const{demographicsState:{property_tenure:e,housing_tenancy:a,housing_type:t}}=ue(),l=a||e;return(0,Y.jsxs)("div",{className:le,children:[l&&(0,Y.jsx)("div",{className:se,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(_e,{})})}),t&&(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(ye,{})})]})},Me=()=>{const{t:e}=s("localDemographics"),{demographicsState:{household_composition:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.household.graphs.householdComposition.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(f,{className:oe})}),[l])})},Ae=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Me,{})})}),De=()=>{const{t:e}=s("localDemographics"),{demographicsState:{education_level:a}}=ue(),t=(0,R.useMemo)(()=>({labels:a?.variables.map(e=>e.label)||[],data:a?.variables.map(e=>Number((100*e.value).toFixed(1)))||[]}),[a?.variables]),l=(0,R.useMemo)(()=>({title:e("data.education.graphs.educationLevel.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,Y.jsx)(C,{...l,children:(0,Y.jsx)(F,{})})},Ee=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,children:(0,Y.jsx)(De,{})})}),He=()=>{const{t:e}=s("localDemographics"),{demographicsState:{commute_mode:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.commute.graphs.commuteMode.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(v,{className:oe})}),[l])})},Ce=()=>(0,Y.jsx)("div",{className:le,children:(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(He,{})})}),Se=()=>{const{t:e}=s("localDemographics"),{demographicsState:{official_language_knowledge:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>`${e.value}% ${e.label}`)||[],data:t?.map(e=>e.value)||[]}),[t]);return(0,Y.jsx)(E,{...(0,R.useMemo)(()=>({title:e("data.languages.graphs.spokenLanguages.title"),labels:l.labels,data:l.data,icon:(0,Y.jsx)(g,{className:oe})}),[l])})},Te=()=>{const{t:e}=s("localDemographics"),{demographicsState:{mother_tongue:a}}=ue(),t=(0,R.useMemo)(()=>a?.variables.filter(e=>"french_and_non_official_language_s"!==e.variable&&"english_and_non_official_language_s"!==e.variable).slice(0,10)?.map(e=>({...e,value:Number((100*e.value).toFixed(1))})).filter(e=>e.value>0),[a?.variables]),l=(0,R.useMemo)(()=>({labels:t?.map(e=>e.label)||[],data:t?.map(e=>e.value)||[]}),[t]),i=(0,R.useMemo)(()=>({title:e("data.languages.graphs.motherTongue.title"),labels:l.labels,data:l.data,unit:"%"}),[l]);return(0,Y.jsx)(C,{...i,children:(0,Y.jsx)(F,{})})},we=()=>{const{demographicsState:{official_language_knowledge:e}}=ue();return(0,Y.jsxs)("div",{className:le,children:[e&&(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Se,{})}),(0,Y.jsx)("div",{className:ie,"data-size":"half",children:(0,Y.jsx)(Te,{})})]})},Fe=({children:e})=>(0,Y.jsx)(Y.Fragment,{children:e}),Ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:a,activeCategory:t,setDemographicsState:l}=ue(),{data:i,isFetching:o}=j({lat:a.location.lat,lng:a.location.lng,radius:400,radiusUnit:"meter"});(0,R.useEffect)(()=>{!o&&i&&l({...i})},[o]);return(0,Y.jsx)(J,{options:{value:t},children:(0,Y.jsx)(Fe,{children:(()=>{if(o)return(0,Y.jsx)("div",{className:"\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n",children:(0,Y.jsx)(y,{})});if(void 0===i)return(0,Y.jsx)("div",{className:"\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n",children:(0,Y.jsx)(N,{variant:"h6",weight:"--ll-font-weight-bold",children:e("noData")})});switch(t){case"income":return(0,Y.jsx)(be,{});case"population":return(0,Y.jsx)(fe,{});case"housing":return(0,Y.jsx)(Ne,{});case"household":return(0,Y.jsx)(Ae,{});case"commute":return(0,Y.jsx)(Ce,{});case"education":return(0,Y.jsx)(Ee,{});case"languages":return(0,Y.jsx)(we,{});default:return(0,Y.jsxs)("div",{children:[t," tab"]})}})()})})},$e=()=>{const{t:e}=s(["localDemographics","common"]),{demographicsState:a,locale:t,hideAttribution:l}=ue(),{country:i}=a,o=(0,R.useMemo)(()=>"CAN"===i?400:.2485484.toFixed(2),[i]),n=(0,R.useMemo)(()=>e("common:distance."+("CAN"===i?"meter":"mile")),[t,i]);return(0,Y.jsxs)("div",{className:"\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n",children:[(0,Y.jsx)(N,{noMargin:!0,variant:"caption1",color:"--ll-color-on-background-variant1",children:e("note",{value:o,unit:n})}),!l&&(0,Y.jsx)(I,{sdkName:"local-demographics",locale:t})]})};n(o.localDemographics.key);var ke=()=>{const{t:e}=s("localDemographics"),{sdkState:a}=w(),l=Z();return(0,Y.jsx)(L,{children:(0,Y.jsx)(c,{environment:a.globalOptions?.environment?.api,apiKey:a.apiKey,appearance:a.globalOptions?.appearance,locale:a.globalOptions?.locale,product:m.LOCAL_DEMOGRAPHICS,children:(0,Y.jsx)(t,{trackingPipelineSettings:{apiKey:a.apiKey||""},analyticsSettings:o.localDemographics,meta:{clientId:a.clientId,productName:m.LOCAL_DEMOGRAPHICS,productVersion:"1.24.41"},attributes:{location:{lat:a.options?.lat,lng:a.options?.lng},host:a.location,host_url:document.referrer,locale:a.globalOptions?.locale,isMobile:l},flags:{isDebugMode:!1},children:(0,Y.jsx)(pe,{children:(0,Y.jsx)("div",{className:"\n flex flex-col flex-1 overflow-hidden box-border\n",children:(0,Y.jsxs)("div",{className:"\n overflow-y-auto flex flex-col\n",children:[(0,Y.jsx)(K,{title:"string"==typeof a.options?.title||!1===a.options?.title?a.options.title:e("title")}),l?(0,Y.jsx)(ae,{}):(0,Y.jsx)(ee,{}),(0,Y.jsx)(Ve,{}),(0,Y.jsx)($e,{})]})})})})})})};export{ke as default};
|
|
2
|
+
//# sourceMappingURL=LocalDemographics-CCLrxAlH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDemographics-DJ2-OAQf.js","names":["r","l"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/Wallet.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/Wallet.es.js","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/context.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Content/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Tabs/styles.ts","../../src/sdks/LocalDemographics/constants.ts","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Tabs/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Select/styles.ts","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Select/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/styles.ts","../../src/sdks/LocalDemographics/types.ts","../../src/sdks/LocalDemographics/schema.ts","../../src/sdks/LocalDemographics/context.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/AverageIncome/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/EmploymentStatus/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/IncomeBrackets/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/TotalPopulation/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/PopulationByAgeGroup/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/HomeOwnershipType/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/TypeOfHousing/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Household/HouseholdComposition/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Household/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Education/EducationLevel/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Education/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Commute/CommuteMode/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Commute/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/SpokenLanguages/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/MotherTongue/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/index.tsx","../../src/sdks/LocalDemographics/components/Content/styles.ts","../../src/sdks/LocalDemographics/components/Content/index.tsx","../../src/sdks/LocalDemographics/components/Footer/styles.ts","../../src/sdks/LocalDemographics/components/Footer/index.tsx","../../src/sdks/LocalDemographics/styles.ts","../../src/sdks/LocalDemographics/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: \"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nimport r from \"../lib/IconBase.es.js\";\nimport l from \"../defs/Wallet.es.js\";\nconst o = e.forwardRef((t, a) => /* @__PURE__ */ e.createElement(r, { ref: a, ...t, weights: l }));\no.displayName = \"WalletIcon\";\nconst s = o;\nexport {\n s as Wallet,\n o as WalletIcon\n};\n","import React, { useContext } from \"react\";\nimport { RootProps } from \"./types\";\n\nexport type DefaultContext = RootProps;\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nexport { useRootElement, RootElementContext };\n","import React from \"react\";\nimport * as Tabs from \"@radix-ui/react-tabs\";\nimport { ContentProps } from \"./types\";\n\nexport const Content = ({\n children,\n options: { value, style },\n}: ContentProps) => (\n <Tabs.Content value={value} key={value} style={style}>\n {children}\n </Tabs.Content>\n);\n","export const tabsList = `\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n`;\n\nexport const trigger = `\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n`;\n\nexport const icon = `\n w-6 h-6\n fill-inherit\n`;\nexport const tabText = `\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n`;\n","import type { DemographicsCategory } from \"./types\";\n\nexport const DEFAULT_RADIUS = 400;\nexport const DEFAULT_RADIUS_UNIT = \"meter\";\n\nexport const AVAILABLE_TABS: DemographicsCategory[] = [\n \"income\",\n \"population\",\n \"housing\",\n \"household\",\n \"education\",\n \"commute\",\n \"languages\",\n];\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n type Icon,\n WalletIcon,\n UsersFourIcon,\n BuildingsIcon,\n UsersThreeIcon,\n GraduationCapIcon,\n PathIcon,\n TranslateIcon,\n} from \"@phosphor-icons/react\";\nimport * as Tab from \"@radix-ui/react-tabs\";\nimport { useRootElement } from \"../context\";\nimport * as styles from \"./styles\";\nimport { AVAILABLE_TABS } from \"~/sdks/LocalDemographics/constants\";\n\nexport const tabIcons: {\n [key: string]: Icon;\n} = {\n income: WalletIcon,\n population: UsersFourIcon,\n housing: BuildingsIcon,\n household: UsersThreeIcon,\n education: GraduationCapIcon,\n commute: PathIcon,\n languages: TranslateIcon,\n};\n\nexport const Tabs = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { options } = useRootElement();\n\n let activeCategories = AVAILABLE_TABS;\n\n if (options.omitTabs) {\n activeCategories = AVAILABLE_TABS.filter(\n (category) => !options.omitTabs?.includes(category),\n );\n }\n\n return (\n <Tab.List className={styles.tabsList} aria-label=\"Demographics tabs\">\n {activeCategories.map((tab) => {\n const isActive = tab === options.activeTab;\n const Icon = tabIcons[tab];\n\n return (\n <React.Fragment key={tab}>\n <Tab.Trigger\n data-active={isActive}\n className={styles.trigger}\n value={tab}\n >\n <Icon className={styles.icon} />\n <p className={styles.tabText}>{t(`data.${tab}.title`)}</p>\n </Tab.Trigger>\n </React.Fragment>\n );\n })}\n </Tab.List>\n );\n};\n","export const selectContainer = `\n flex\n py-4 px-0\n z-[4]\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\nimport * as styles from \"./styles\";\nimport { Select as UISelect, Text } from \"~/components/deprecated\";\nimport { AVAILABLE_TABS } from \"~/sdks/LocalDemographics/constants\";\nimport { DemographicsCategory } from \"~/sdks/LocalDemographics/types\";\n\nexport const Select = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { options, onChange } = useRootElement();\n\n let activeCategories = AVAILABLE_TABS;\n\n if (options.omitTabs) {\n activeCategories = AVAILABLE_TABS.filter(\n (category) => !options.omitTabs?.includes(category),\n );\n }\n\n return (\n <div className={styles.selectContainer}>\n <UISelect.Root\n value={options.activeTab}\n onValueChange={(value: DemographicsCategory) => {\n onChange({ type: \"tabs\", data: value });\n }}\n >\n <UISelect.Trigger size=\"large\">\n <Text noMargin variant=\"h6\" color=\"--ll-color-placeholder\">\n {t(`data.${options.activeTab}.title`)}\n </Text>\n </UISelect.Trigger>\n <UISelect.Content>\n {activeCategories.map((category) => (\n <UISelect.Item value={category} key={category}>\n <Text noMargin variant=\"h6\">\n {t(`data.${category}.title`)}\n </Text>\n </UISelect.Item>\n ))}\n </UISelect.Content>\n </UISelect.Root>\n </div>\n );\n};\n","import React from \"react\";\nimport * as Tabs from \"@radix-ui/react-tabs\";\nimport { RootProps } from \"./types\";\nimport { RootElementContext } from \"./context\";\nimport type { DemographicsCategory } from \"~/sdks/LocalDemographics/types\";\n\nexport const Root = ({ options, onChange, children }: RootProps) => {\n const handleOnChange = (value: string) => {\n onChange({ type: \"tabs\", data: value as DemographicsCategory });\n };\n\n return (\n <RootElementContext.Provider\n value={{\n options,\n onChange,\n }}\n >\n <Tabs.Root value={options.activeTab} onValueChange={handleOnChange}>\n {children}\n </Tabs.Root>\n </RootElementContext.Provider>\n );\n};\n\n// Export children\nexport { Content } from \"./Content\";\nexport { Tabs } from \"./Tabs\";\nexport { Select } from \"./Select\";\n","export const graphLayoutWrapper = `\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n`;\n\nexport const graphSideBySide = `\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n`;\n\nexport const graphContainer = `\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n`;\n\nexport const donutChartIcon = `text-ll-primary w-2/4 h-2/4`;\n\nexport const cardContainer = `min-h-36 h-full`;\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 title?: boolean | string;\n defaultTab?: DemographicsCategory;\n hideAttribution?: boolean;\n};\n\nexport type LocalDemographicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"LD-Viewed\",\n TAB_CLICKED = \"LD-Tab-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_SELECTED = \"category_selected\",\n}\n","import { number, object, ObjectSchema, mixed, boolean } from \"yup\";\nimport type { DemographicsCategory, 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 .required(),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .required(),\n title: mixed<string | boolean>().optional(),\n defaultTab: mixed<DemographicsCategory>().optional(),\n hideAttribution: boolean().optional(),\n}).noUnknown(true);\n\nexport const validateOptions = (options: Options) =>\n schema.validate(options, { abortEarly: false });\n","import React, {\n useContext,\n useState,\n useMemo,\n useReducer,\n useEffect,\n} from \"react\";\nimport { type Demographics } from \"@local-logic/client\";\nimport { ValidationError } from \"yup\";\nimport {\n type DemographicsCategory,\n type LocalDemographicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport * as DemographicsTabs from \"./components/Content/DemographicsTabs\";\nimport { validateOptions } from \"./schema\";\nimport { AVAILABLE_TABS } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\nimport { theme } from \"~/components/deprecated\";\nimport errorTracker from \"~/utils/errorTracker\";\nimport { useLocation } from \"~/hooks/useLocation\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\n\nexport interface State {\n education_level?: Demographics[\"education_level\"];\n employment_status?: Demographics[\"employment_status\"];\n commute_mode?: Demographics[\"commute_mode\"];\n household_composition?: Demographics[\"household_composition\"];\n income?: Demographics[\"income\"];\n income_stats?: Demographics[\"income_stats\"];\n income_level?: Demographics[\"income_level\"];\n population_age?: Demographics[\"population_age\"];\n population_total?: Demographics[\"population_total\"];\n housing_tenancy?: Demographics[\"housing_tenancy\"];\n housing_type?: Demographics[\"housing_type\"];\n property_tenure?: Demographics[\"property_tenure\"];\n mother_tongue?: Demographics[\"mother_tongue\"];\n official_language_knowledge?: Demographics[\"official_language_knowledge\"];\n location: {\n lat: number;\n lng: number;\n };\n country: string;\n}\n\ntype Action = Partial<State>;\n\nexport type DefaultContext = {\n country: string;\n demographicsState: State;\n setDemographicsState: React.Dispatch<Action>;\n activeCategory: DemographicsCategory;\n setActiveCategory: (value: DemographicsCategory) => void;\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst DemographicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useDemographics = () => useContext(DemographicsContext);\n\nconst LocalDemographicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } = useStateManagerContext<LocalDemographicsProps>();\n const [activeCategory, setActiveCategory] = useState(\n sdkState.options?.defaultTab &&\n AVAILABLE_TABS.includes(sdkState.options?.defaultTab)\n ? sdkState.options?.defaultTab\n : AVAILABLE_TABS[0],\n );\n const [validated, setValidated] = useState<boolean>(false);\n const [validationErrors, setValidationErrors] = useState<string[]>([]);\n const {\n data: { country },\n isLoading,\n } = useLocation({\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n });\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 [demographicsState, setDemographicsState] = useReducer(\n (state: State, action: Action) => ({\n ...state,\n ...action,\n }),\n {\n location: {\n lat: sdkState.options?.lat || 43.661337,\n lng: sdkState.options?.lng || -79.401903,\n },\n country: \"CAN\",\n },\n );\n\n useEffect(() => {\n if (!sdkState) {\n return;\n }\n\n setDemographicsState({\n ...demographicsState,\n country,\n });\n }, [sdkState, country]);\n\n useEffectOnce(() => {\n const validate = async () => {\n try {\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"Validating state options\",\n {\n options: sdkState.options!,\n },\n );\n\n await validateOptions(sdkState.options!);\n setValidated(true);\n } catch (error) {\n const validationError = error as ValidationError;\n setValidationErrors(validationError.errors);\n\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"State option validation failed\",\n {\n errors: validationError.errors,\n },\n );\n }\n };\n\n if (!validated) {\n validate();\n }\n });\n\n const contextValue = useMemo(\n () => ({\n country,\n demographicsState,\n setDemographicsState,\n activeCategory,\n setActiveCategory,\n locale: sdkState.globalOptions?.locale || \"en\",\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n country,\n activeCategory,\n setActiveCategory,\n demographicsState,\n setDemographicsState,\n sdkState.globalOptions,\n sdkState.options?.hideAttribution,\n ],\n );\n\n const handleTabsChange = (value: {\n type: \"tabs\";\n data: DemographicsCategory;\n }) => {\n setActiveCategory(value.data);\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"handleTabsChange\",\n {\n value,\n },\n );\n tracking.postEvent({\n eventType: TrackingPipelineEvents.TAB_CLICKED,\n eventAttributes: [\n {\n label: \"activeCategory\",\n data: value.data,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_SELECTED,\n eventAttributes: {\n ll_selected_category: value.data,\n },\n });\n };\n\n const omitTabs = useMemo(() => {\n const tabsToOmit: string[] = [];\n const dataKeys = {\n income: \"income\",\n population: \"population_age\",\n housing: \"housing_tenancy\",\n household: \"household_composition\",\n education: \"education_level\",\n commute: \"commute_mode\",\n languages: \"mother_tongue\",\n };\n\n Object.entries(dataKeys).forEach(([key, value]) => {\n if (!Object.keys(demographicsState).includes(value)) {\n tabsToOmit.push(key);\n }\n });\n\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"Updated tabs to omit\",\n {\n tabsToOmit,\n },\n );\n\n return tabsToOmit;\n }, [demographicsState]);\n\n if (!validated) {\n if (validationErrors.length) {\n const error = \"Could not load Demographics\";\n\n console.error(`${error}: ${validationErrors.join(\", \")}`);\n return <p>{error}</p>;\n }\n\n return <></>;\n }\n\n return (\n <DemographicsContext.Provider value={contextValue}>\n <DemographicsTabs.Root\n options={{ activeTab: activeCategory, omitTabs }}\n onChange={handleTabsChange}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n background: `${theme[\"--ll-color-background\"]}`,\n padding: `${theme[\"--ll-spacing-xx-small\"]} ${theme[\"--ll-spacing-small\"]} 0`,\n borderRadius: `${theme[\"--ll-border-radius-medium\"]}`,\n }}\n >\n {!isLoading && children}\n </div>\n </DemographicsTabs.Root>\n </DemographicsContext.Provider>\n );\n};\n\nexport { useDemographics, LocalDemographicsProvider };\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const AverageIncome = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n country,\n demographicsState: { income },\n } = useDemographics();\n\n const incomeTypes = useMemo(\n () =>\n income?.variables.slice().reverse() || [\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 context: country,\n }),\n values: incomeTypes.map((incomeType) => {\n let label = \"\";\n\n if (incomeType.variable === \"avg_household_income\") {\n label = t(\n \"data.income.graphs.averageIncome.types.avgHouseholdIncome\",\n { context: country },\n );\n }\n\n if (incomeType.variable === \"avg_individual_income\") {\n label = t(\n \"data.income.graphs.averageIncome.types.avgIndividualIncome\",\n { context: country },\n );\n }\n\n return {\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,\n };\n }),\n },\n }),\n [incomeTypes],\n );\n\n return (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const EmploymentStatus = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { employment_status: employmentStatus },\n } = useDemographics();\n\n const datasets = useMemo(\n () =>\n employmentStatus?.variables.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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const IncomeBrackets = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { income_level: incomeLevel },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels: incomeLevel?.variables.map((variable) => variable.label) || [],\n data:\n incomeLevel?.variables.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [incomeLevel?.variables],\n );\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Income = () => {\n const {\n demographicsState: { income_level: incomeLevel },\n } = useDemographics();\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 <div className={styles.graphContainer}>\n <IncomeBrackets />\n </div>\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 * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const TotalPopulation = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { population_total: populationTotal },\n } = useDemographics();\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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const PopulationByAgeGroup = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { population_age: populationAge },\n } = useDemographics();\n\n const populationAgeFormatted = useMemo(() => {\n if (!populationAge) {\n return null;\n }\n\n if (populationAge?.variables.length > 12) {\n const keys = populationAge?.variables.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 populationAge.variables[index].value +\n populationAge.variables[index + 1].value,\n label: `${element[0]} to ${keys[index + 1][1]}`,\n });\n }\n });\n\n return mergedPopulation;\n }\n\n return populationAge.variables;\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Population = () => {\n const {\n demographicsState: { population_total: populationTotal },\n } = useDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {populationTotal && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <TotalPopulation />\n </div>\n </div>\n )}\n\n <div className={styles.graphContainer}>\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 * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const HomeOwnershipType = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n },\n } = useDemographics();\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.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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const TypeOfHousing = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { housing_type: housingType },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels: housingType?.variables.map((variable) => variable.label) || [],\n data:\n housingType?.variables.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [housingType?.variables],\n );\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Housing = () => {\n const {\n demographicsState: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n housing_type: housingType,\n },\n } = useDemographics();\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} data-size={\"half\"}>\n <HomeOwnershipType />\n </div>\n </div>\n )}\n {housingType && (\n <div className={styles.graphContainer} data-size={\"half\"}>\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const HouseholdComposition = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { household_composition: householdComposition },\n } = useDemographics();\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) => 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\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\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const EducationLevel = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { education_level: educationLevel },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels:\n educationLevel?.variables.map((variable: Variable) => variable.label) ||\n [],\n data:\n educationLevel?.variables.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [educationLevel?.variables],\n );\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\nexport const Education = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer}>\n <EducationLevel />\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const CommuteMode = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { commute_mode: commuteMode },\n } = useDemographics();\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) => 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\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\";\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const SpokenLanguages = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { official_language_knowledge: oficialLanguages },\n } = useDemographics();\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) => 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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const MotherTongue = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { mother_tongue: motherTongue },\n } = useDemographics();\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((variable: Variable) => variable.value > 0),\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Languages = () => {\n const {\n demographicsState: { official_language_knowledge: oficialLanguages },\n } = useDemographics();\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\nexport const Root = ({ children }: { children: React.ReactNode }) => (\n <>{children}</>\n);\n\n// Export children\nexport { Income } from \"./Income\";\nexport { Population } from \"./Population\";\nexport { Housing } from \"./Housing\";\nexport { Household } from \"./Household\";\nexport { Education } from \"./Education\";\nexport { Commute } from \"./Commute\";\nexport { Languages } from \"./Languages\";\n","export 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","import React, { useEffect } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as DemographicsTabs from \"./DemographicsTabs\";\nimport * as ChartLayout from \"./ChartLayout\";\nimport * as styles from \"./styles\";\nimport { useDemographicsData } from \"~/hooks/useDemographicsData\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport {\n DEFAULT_RADIUS,\n DEFAULT_RADIUS_UNIT,\n} from \"~/sdks/LocalDemographics/constants\";\n\nimport { LoadingSpinner, Text } from \"~/components/deprecated\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { demographicsState, activeCategory, setDemographicsState } =\n useDemographics();\n const { data: demographicsData, isFetching: isDemographicsFetching } =\n useDemographicsData({\n lat: demographicsState.location.lat,\n lng: demographicsState.location.lng,\n radius: DEFAULT_RADIUS,\n radiusUnit: DEFAULT_RADIUS_UNIT,\n });\n\n useEffect(() => {\n if (!isDemographicsFetching && demographicsData) {\n setDemographicsState({\n ...demographicsData,\n });\n }\n }, [isDemographicsFetching]);\n\n const GetActiveTabContent = () => {\n if (isDemographicsFetching) {\n return (\n <div className={styles.spinner}>\n <LoadingSpinner />\n </div>\n );\n }\n\n if (demographicsData === undefined) {\n return (\n <div className={styles.noDataElement}>\n <Text variant=\"h6\" weight=\"--ll-font-weight-bold\">\n {t(\"noData\")}\n </Text>\n </div>\n );\n }\n\n switch (activeCategory) {\n case \"income\":\n return <ChartLayout.Income />;\n case \"population\":\n return <ChartLayout.Population />;\n case \"housing\":\n return <ChartLayout.Housing />;\n case \"household\":\n return <ChartLayout.Household />;\n case \"commute\":\n return <ChartLayout.Commute />;\n case \"education\":\n return <ChartLayout.Education />;\n case \"languages\":\n return <ChartLayout.Languages />;\n default:\n return <div>{activeCategory} tab</div>;\n }\n };\n\n return (\n <DemographicsTabs.Content options={{ value: activeCategory }}>\n <ChartLayout.Root>{GetActiveTabContent()}</ChartLayout.Root>\n </DemographicsTabs.Content>\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, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as styles from \"./styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DEFAULT_RADIUS } from \"~/sdks/LocalDemographics/constants\";\n\nimport { Text } from \"~/components/deprecated\";\nimport { AttributionDeprecated as Attribution } from \"~/components/Attribution\";\n\nexport const Footer = () => {\n const { t } = useTranslation([\"localDemographics\", \"common\"]);\n const { demographicsState, locale, hideAttribution } = useDemographics();\n\n const { country } = demographicsState;\n\n const value = useMemo(\n () =>\n country === \"CAN\"\n ? DEFAULT_RADIUS\n : (DEFAULT_RADIUS * 0.000621371).toFixed(2),\n [country],\n );\n\n const unit = useMemo(\n () => t(`common:distance.${country === \"CAN\" ? \"meter\" : \"mile\"}`),\n [locale, country],\n );\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\", { value, unit })}\n </Text>\n {!hideAttribution && (\n <Attribution sdkName=\"local-demographics\" locale={locale} />\n )}\n </div>\n );\n};\n","export const container = `\n flex flex-col flex-1 overflow-hidden box-border\n`;\n\n// Calculate height without the attribution and tabsroot\nexport const tabsRoot = `\n overflow-y-auto flex flex-col\n`;\n","import React from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport { useTranslation } from \"react-i18next\";\nimport * as DemographicsTabs from \"./components/Content/DemographicsTabs\";\nimport { Content } from \"./components/Content\";\nimport { Footer } from \"./components/Footer\";\nimport { LocalDemographicsProvider } from \"./context\";\nimport * as styles from \"./styles\";\nimport { LocalDemographicsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\nimport ResizeWrapper from \"~/components/ResizeWrapper\";\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\";\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.localDemographics.key);\n\nconst LocalDemographics = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { sdkState } = useStateManagerContext<LocalDemographicsProps>();\n const isMobile = useIsMobile();\n\n return (\n <ResizeWrapper>\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.LOCAL_DEMOGRAPHICS}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.localDemographics}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.LOCAL_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: sdkState.globalOptions?.locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <LocalDemographicsProvider>\n <div className={styles.container}>\n <div className={styles.tabsRoot}>\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 {!isMobile ? (\n <DemographicsTabs.Tabs />\n ) : (\n <DemographicsTabs.Select />\n )}\n <Content />\n <Footer />\n </div>\n </div>\n </LocalDemographicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ResizeWrapper>\n );\n};\n\nexport default LocalDemographics;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocalDemographics-CCLrxAlH.js","names":["r","l"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/Wallet.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/Wallet.es.js","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/context.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Content/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Tabs/styles.ts","../../src/sdks/LocalDemographics/constants.ts","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Tabs/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Select/styles.ts","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/Select/index.tsx","../../src/sdks/LocalDemographics/components/Content/DemographicsTabs/Root/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/styles.ts","../../src/sdks/LocalDemographics/types.ts","../../src/sdks/LocalDemographics/schema.ts","../../src/sdks/LocalDemographics/context.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/AverageIncome/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/EmploymentStatus/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/IncomeBrackets/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Income/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/TotalPopulation/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/PopulationByAgeGroup/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Population/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/HomeOwnershipType/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/TypeOfHousing/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Housing/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Household/HouseholdComposition/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Household/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Education/EducationLevel/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Education/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Commute/CommuteMode/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Commute/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/SpokenLanguages/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/MotherTongue/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/Languages/index.tsx","../../src/sdks/LocalDemographics/components/Content/ChartLayout/Root/index.tsx","../../src/sdks/LocalDemographics/components/Content/styles.ts","../../src/sdks/LocalDemographics/components/Content/index.tsx","../../src/sdks/LocalDemographics/components/Footer/styles.ts","../../src/sdks/LocalDemographics/components/Footer/index.tsx","../../src/sdks/LocalDemographics/styles.ts","../../src/sdks/LocalDemographics/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: \"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nimport r from \"../lib/IconBase.es.js\";\nimport l from \"../defs/Wallet.es.js\";\nconst o = e.forwardRef((t, a) => /* @__PURE__ */ e.createElement(r, { ref: a, ...t, weights: l }));\no.displayName = \"WalletIcon\";\nconst s = o;\nexport {\n s as Wallet,\n o as WalletIcon\n};\n","import React, { useContext } from \"react\";\nimport { RootProps } from \"./types\";\n\nexport type DefaultContext = RootProps;\n\nconst RootElementContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useRootElement = () => useContext(RootElementContext);\n\nexport { useRootElement, RootElementContext };\n","import React from \"react\";\nimport * as Tabs from \"@radix-ui/react-tabs\";\nimport { ContentProps } from \"./types\";\n\nexport const Content = ({\n children,\n options: { value, style },\n}: ContentProps) => (\n <Tabs.Content value={value} key={value} style={style}>\n {children}\n </Tabs.Content>\n);\n","export const tabsList = `\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n`;\n\nexport const trigger = `\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n`;\n\nexport const icon = `\n w-6 h-6\n fill-inherit\n`;\nexport const tabText = `\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n`;\n","import type { DemographicsCategory } from \"./types\";\n\nexport const DEFAULT_RADIUS = 400;\nexport const DEFAULT_RADIUS_UNIT = \"meter\";\n\nexport const AVAILABLE_TABS: DemographicsCategory[] = [\n \"income\",\n \"population\",\n \"housing\",\n \"household\",\n \"education\",\n \"commute\",\n \"languages\",\n];\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n type Icon,\n WalletIcon,\n UsersFourIcon,\n BuildingsIcon,\n UsersThreeIcon,\n GraduationCapIcon,\n PathIcon,\n TranslateIcon,\n} from \"@phosphor-icons/react\";\nimport * as Tab from \"@radix-ui/react-tabs\";\nimport { useRootElement } from \"../context\";\nimport * as styles from \"./styles\";\nimport { AVAILABLE_TABS } from \"~/sdks/LocalDemographics/constants\";\n\nexport const tabIcons: {\n [key: string]: Icon;\n} = {\n income: WalletIcon,\n population: UsersFourIcon,\n housing: BuildingsIcon,\n household: UsersThreeIcon,\n education: GraduationCapIcon,\n commute: PathIcon,\n languages: TranslateIcon,\n};\n\nexport const Tabs = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { options } = useRootElement();\n\n let activeCategories = AVAILABLE_TABS;\n\n if (options.omitTabs) {\n activeCategories = AVAILABLE_TABS.filter(\n (category) => !options.omitTabs?.includes(category),\n );\n }\n\n return (\n <Tab.List className={styles.tabsList} aria-label=\"Demographics tabs\">\n {activeCategories.map((tab) => {\n const isActive = tab === options.activeTab;\n const Icon = tabIcons[tab];\n\n return (\n <React.Fragment key={tab}>\n <Tab.Trigger\n data-active={isActive}\n className={styles.trigger}\n value={tab}\n >\n <Icon className={styles.icon} />\n <p className={styles.tabText}>{t(`data.${tab}.title`)}</p>\n </Tab.Trigger>\n </React.Fragment>\n );\n })}\n </Tab.List>\n );\n};\n","export const selectContainer = `\n flex\n py-4 px-0\n z-[4]\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useRootElement } from \"../context\";\nimport * as styles from \"./styles\";\nimport { Select as UISelect, Text } from \"~/components/deprecated\";\nimport { AVAILABLE_TABS } from \"~/sdks/LocalDemographics/constants\";\nimport { DemographicsCategory } from \"~/sdks/LocalDemographics/types\";\n\nexport const Select = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { options, onChange } = useRootElement();\n\n let activeCategories = AVAILABLE_TABS;\n\n if (options.omitTabs) {\n activeCategories = AVAILABLE_TABS.filter(\n (category) => !options.omitTabs?.includes(category),\n );\n }\n\n return (\n <div className={styles.selectContainer}>\n <UISelect.Root\n value={options.activeTab}\n onValueChange={(value: DemographicsCategory) => {\n onChange({ type: \"tabs\", data: value });\n }}\n >\n <UISelect.Trigger size=\"large\">\n <Text noMargin variant=\"h6\" color=\"--ll-color-placeholder\">\n {t(`data.${options.activeTab}.title`)}\n </Text>\n </UISelect.Trigger>\n <UISelect.Content>\n {activeCategories.map((category) => (\n <UISelect.Item value={category} key={category}>\n <Text noMargin variant=\"h6\">\n {t(`data.${category}.title`)}\n </Text>\n </UISelect.Item>\n ))}\n </UISelect.Content>\n </UISelect.Root>\n </div>\n );\n};\n","import React from \"react\";\nimport * as Tabs from \"@radix-ui/react-tabs\";\nimport { RootProps } from \"./types\";\nimport { RootElementContext } from \"./context\";\nimport type { DemographicsCategory } from \"~/sdks/LocalDemographics/types\";\n\nexport const Root = ({ options, onChange, children }: RootProps) => {\n const handleOnChange = (value: string) => {\n onChange({ type: \"tabs\", data: value as DemographicsCategory });\n };\n\n return (\n <RootElementContext.Provider\n value={{\n options,\n onChange,\n }}\n >\n <Tabs.Root value={options.activeTab} onValueChange={handleOnChange}>\n {children}\n </Tabs.Root>\n </RootElementContext.Provider>\n );\n};\n\n// Export children\nexport { Content } from \"./Content\";\nexport { Tabs } from \"./Tabs\";\nexport { Select } from \"./Select\";\n","export const graphLayoutWrapper = `\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n`;\n\nexport const graphSideBySide = `\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n`;\n\nexport const graphContainer = `\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n`;\n\nexport const donutChartIcon = `text-ll-primary w-2/4 h-2/4`;\n\nexport const cardContainer = `min-h-36 h-full`;\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 title?: boolean | string;\n defaultTab?: DemographicsCategory;\n hideAttribution?: boolean;\n};\n\nexport type LocalDemographicsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"LD-Viewed\",\n TAB_CLICKED = \"LD-Tab-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_SELECTED = \"category_selected\",\n}\n","import { number, object, ObjectSchema, mixed, boolean } from \"yup\";\nimport type { DemographicsCategory, 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 .required(),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .required(),\n title: mixed<string | boolean>().optional(),\n defaultTab: mixed<DemographicsCategory>().optional(),\n hideAttribution: boolean().optional(),\n}).noUnknown(true);\n\nexport const validateOptions = (options: Options) =>\n schema.validate(options, { abortEarly: false });\n","import React, {\n useContext,\n useState,\n useMemo,\n useReducer,\n useEffect,\n} from \"react\";\nimport { type Demographics } from \"@local-logic/client\";\nimport { ValidationError } from \"yup\";\nimport {\n type DemographicsCategory,\n type LocalDemographicsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport * as DemographicsTabs from \"./components/Content/DemographicsTabs\";\nimport { validateOptions } from \"./schema\";\nimport { AVAILABLE_TABS } from \"./constants\";\nimport { useTracking } from \"~/tracking\";\nimport { theme } from \"~/components/deprecated\";\nimport errorTracker from \"~/utils/errorTracker\";\nimport { useLocation } from \"~/hooks/useLocation\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\n\nexport interface State {\n education_level?: Demographics[\"education_level\"];\n employment_status?: Demographics[\"employment_status\"];\n commute_mode?: Demographics[\"commute_mode\"];\n household_composition?: Demographics[\"household_composition\"];\n income?: Demographics[\"income\"];\n income_stats?: Demographics[\"income_stats\"];\n income_level?: Demographics[\"income_level\"];\n population_age?: Demographics[\"population_age\"];\n population_total?: Demographics[\"population_total\"];\n housing_tenancy?: Demographics[\"housing_tenancy\"];\n housing_type?: Demographics[\"housing_type\"];\n property_tenure?: Demographics[\"property_tenure\"];\n mother_tongue?: Demographics[\"mother_tongue\"];\n official_language_knowledge?: Demographics[\"official_language_knowledge\"];\n location: {\n lat: number;\n lng: number;\n };\n country: string;\n}\n\ntype Action = Partial<State>;\n\nexport type DefaultContext = {\n country: string;\n demographicsState: State;\n setDemographicsState: React.Dispatch<Action>;\n activeCategory: DemographicsCategory;\n setActiveCategory: (value: DemographicsCategory) => void;\n locale: \"en\" | \"fr\";\n hideAttribution?: boolean;\n};\n\nconst DemographicsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useDemographics = () => useContext(DemographicsContext);\n\nconst LocalDemographicsProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const tracking = useTracking();\n const { sdkState } = useStateManagerContext<LocalDemographicsProps>();\n const [activeCategory, setActiveCategory] = useState(\n sdkState.options?.defaultTab &&\n AVAILABLE_TABS.includes(sdkState.options?.defaultTab)\n ? sdkState.options?.defaultTab\n : AVAILABLE_TABS[0],\n );\n const [validated, setValidated] = useState<boolean>(false);\n const [validationErrors, setValidationErrors] = useState<string[]>([]);\n const {\n data: { country },\n isLoading,\n } = useLocation({\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n });\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 [demographicsState, setDemographicsState] = useReducer(\n (state: State, action: Action) => ({\n ...state,\n ...action,\n }),\n {\n location: {\n lat: sdkState.options?.lat || 43.661337,\n lng: sdkState.options?.lng || -79.401903,\n },\n country: \"CAN\",\n },\n );\n\n useEffect(() => {\n if (!sdkState) {\n return;\n }\n\n setDemographicsState({\n ...demographicsState,\n country,\n });\n }, [sdkState, country]);\n\n useEffectOnce(() => {\n const validate = async () => {\n try {\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"Validating state options\",\n {\n options: sdkState.options!,\n },\n );\n\n await validateOptions(sdkState.options!);\n setValidated(true);\n } catch (error) {\n const validationError = error as ValidationError;\n setValidationErrors(validationError.errors);\n\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"State option validation failed\",\n {\n errors: validationError.errors,\n },\n );\n }\n };\n\n if (!validated) {\n validate();\n }\n });\n\n const contextValue = useMemo(\n () => ({\n country,\n demographicsState,\n setDemographicsState,\n activeCategory,\n setActiveCategory,\n locale: sdkState.globalOptions?.locale || \"en\",\n hideAttribution: sdkState.options?.hideAttribution,\n }),\n [\n country,\n activeCategory,\n setActiveCategory,\n demographicsState,\n setDemographicsState,\n sdkState.globalOptions,\n sdkState.options?.hideAttribution,\n ],\n );\n\n const handleTabsChange = (value: {\n type: \"tabs\";\n data: DemographicsCategory;\n }) => {\n setActiveCategory(value.data);\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"handleTabsChange\",\n {\n value,\n },\n );\n tracking.postEvent({\n eventType: TrackingPipelineEvents.TAB_CLICKED,\n eventAttributes: [\n {\n label: \"activeCategory\",\n data: value.data,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_SELECTED,\n eventAttributes: {\n ll_selected_category: value.data,\n },\n });\n };\n\n const omitTabs = useMemo(() => {\n const tabsToOmit: string[] = [];\n const dataKeys = {\n income: \"income\",\n population: \"population_age\",\n housing: \"housing_tenancy\",\n household: \"household_composition\",\n education: \"education_level\",\n commute: \"commute_mode\",\n languages: \"mother_tongue\",\n };\n\n Object.entries(dataKeys).forEach(([key, value]) => {\n if (!Object.keys(demographicsState).includes(value)) {\n tabsToOmit.push(key);\n }\n });\n\n errorTracker.addBreadCrumb(\n \"LocalDemographicsProvider\",\n \"Updated tabs to omit\",\n {\n tabsToOmit,\n },\n );\n\n return tabsToOmit;\n }, [demographicsState]);\n\n if (!validated) {\n if (validationErrors.length) {\n const error = \"Could not load Demographics\";\n\n console.error(`${error}: ${validationErrors.join(\", \")}`);\n return <p>{error}</p>;\n }\n\n return <></>;\n }\n\n return (\n <DemographicsContext.Provider value={contextValue}>\n <DemographicsTabs.Root\n options={{ activeTab: activeCategory, omitTabs }}\n onChange={handleTabsChange}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n background: `${theme[\"--ll-color-background\"]}`,\n padding: `${theme[\"--ll-spacing-xx-small\"]} ${theme[\"--ll-spacing-small\"]} 0`,\n borderRadius: `${theme[\"--ll-border-radius-medium\"]}`,\n }}\n >\n {!isLoading && children}\n </div>\n </DemographicsTabs.Root>\n </DemographicsContext.Provider>\n );\n};\n\nexport { useDemographics, LocalDemographicsProvider };\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const AverageIncome = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n country,\n demographicsState: { income },\n } = useDemographics();\n\n const incomeTypes = useMemo(\n () =>\n income?.variables.slice().reverse() || [\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 context: country,\n }),\n values: incomeTypes.map((incomeType) => {\n let label = \"\";\n\n if (incomeType.variable === \"avg_household_income\") {\n label = t(\n \"data.income.graphs.averageIncome.types.avgHouseholdIncome\",\n { context: country },\n );\n }\n\n if (incomeType.variable === \"avg_individual_income\") {\n label = t(\n \"data.income.graphs.averageIncome.types.avgIndividualIncome\",\n { context: country },\n );\n }\n\n return {\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,\n };\n }),\n },\n }),\n [incomeTypes],\n );\n\n return (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const EmploymentStatus = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { employment_status: employmentStatus },\n } = useDemographics();\n\n const datasets = useMemo(\n () =>\n employmentStatus?.variables.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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const IncomeBrackets = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { income_level: incomeLevel },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels: incomeLevel?.variables.map((variable) => variable.label) || [],\n data:\n incomeLevel?.variables.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [incomeLevel?.variables],\n );\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Income = () => {\n const {\n demographicsState: { income_level: incomeLevel },\n } = useDemographics();\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 <div className={styles.graphContainer}>\n <IncomeBrackets />\n </div>\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 * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const TotalPopulation = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { population_total: populationTotal },\n } = useDemographics();\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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const PopulationByAgeGroup = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { population_age: populationAge },\n } = useDemographics();\n\n const populationAgeFormatted = useMemo(() => {\n if (!populationAge) {\n return null;\n }\n\n if (populationAge?.variables.length > 12) {\n const keys = populationAge?.variables.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 populationAge.variables[index].value +\n populationAge.variables[index + 1].value,\n label: `${element[0]} to ${keys[index + 1][1]}`,\n });\n }\n });\n\n return mergedPopulation;\n }\n\n return populationAge.variables;\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Population = () => {\n const {\n demographicsState: { population_total: populationTotal },\n } = useDemographics();\n\n return (\n <div className={styles.graphLayoutWrapper}>\n {populationTotal && (\n <div className={styles.graphSideBySide}>\n <div className={styles.graphContainer}>\n <TotalPopulation />\n </div>\n </div>\n )}\n\n <div className={styles.graphContainer}>\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 * as styles from \"../../styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DemographicsTextCard } from \"~/components/DemographicsTextCard\";\n\nexport const HomeOwnershipType = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n },\n } = useDemographics();\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.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 (\n <div className={styles.cardContainer}>\n <DemographicsTextCard {...chartOptions} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const TypeOfHousing = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { housing_type: housingType },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels: housingType?.variables.map((variable) => variable.label) || [],\n data:\n housingType?.variables.map((variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [housingType?.variables],\n );\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Housing = () => {\n const {\n demographicsState: {\n property_tenure: propertyTenure,\n housing_tenancy: housingTenancy,\n housing_type: housingType,\n },\n } = useDemographics();\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} data-size={\"half\"}>\n <HomeOwnershipType />\n </div>\n </div>\n )}\n {housingType && (\n <div className={styles.graphContainer} data-size={\"half\"}>\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const HouseholdComposition = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { household_composition: householdComposition },\n } = useDemographics();\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) => 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\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\";\nimport type { Variable } from \"@local-logic/client\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const EducationLevel = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { education_level: educationLevel },\n } = useDemographics();\n\n const dataset = useMemo(\n () => ({\n labels:\n educationLevel?.variables.map((variable: Variable) => variable.label) ||\n [],\n data:\n educationLevel?.variables.map((variable: Variable) =>\n Number((variable.value * 100).toFixed(1)),\n ) || [],\n }),\n [educationLevel?.variables],\n );\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\nexport const Education = () => (\n <div className={styles.graphLayoutWrapper}>\n <div className={styles.graphContainer}>\n <EducationLevel />\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const CommuteMode = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { commute_mode: commuteMode },\n } = useDemographics();\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) => 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\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\";\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const SpokenLanguages = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { official_language_knowledge: oficialLanguages },\n } = useDemographics();\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) => 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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { Chart } from \"~/components/deprecated\";\n\nexport const MotherTongue = () => {\n const { t } = useTranslation(\"localDemographics\");\n const {\n demographicsState: { mother_tongue: motherTongue },\n } = useDemographics();\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((variable: Variable) => variable.value > 0),\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 { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nexport const Languages = () => {\n const {\n demographicsState: { official_language_knowledge: oficialLanguages },\n } = useDemographics();\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\nexport const Root = ({ children }: { children: React.ReactNode }) => (\n <>{children}</>\n);\n\n// Export children\nexport { Income } from \"./Income\";\nexport { Population } from \"./Population\";\nexport { Housing } from \"./Housing\";\nexport { Household } from \"./Household\";\nexport { Education } from \"./Education\";\nexport { Commute } from \"./Commute\";\nexport { Languages } from \"./Languages\";\n","export 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","import React, { useEffect } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as DemographicsTabs from \"./DemographicsTabs\";\nimport * as ChartLayout from \"./ChartLayout\";\nimport * as styles from \"./styles\";\nimport { useDemographicsData } from \"~/hooks/useDemographicsData\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport {\n DEFAULT_RADIUS,\n DEFAULT_RADIUS_UNIT,\n} from \"~/sdks/LocalDemographics/constants\";\n\nimport { LoadingSpinner, Text } from \"~/components/deprecated\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { demographicsState, activeCategory, setDemographicsState } =\n useDemographics();\n const { data: demographicsData, isFetching: isDemographicsFetching } =\n useDemographicsData({\n lat: demographicsState.location.lat,\n lng: demographicsState.location.lng,\n radius: DEFAULT_RADIUS,\n radiusUnit: DEFAULT_RADIUS_UNIT,\n });\n\n useEffect(() => {\n if (!isDemographicsFetching && demographicsData) {\n setDemographicsState({\n ...demographicsData,\n });\n }\n }, [isDemographicsFetching]);\n\n const GetActiveTabContent = () => {\n if (isDemographicsFetching) {\n return (\n <div className={styles.spinner}>\n <LoadingSpinner />\n </div>\n );\n }\n\n if (demographicsData === undefined) {\n return (\n <div className={styles.noDataElement}>\n <Text variant=\"h6\" weight=\"--ll-font-weight-bold\">\n {t(\"noData\")}\n </Text>\n </div>\n );\n }\n\n switch (activeCategory) {\n case \"income\":\n return <ChartLayout.Income />;\n case \"population\":\n return <ChartLayout.Population />;\n case \"housing\":\n return <ChartLayout.Housing />;\n case \"household\":\n return <ChartLayout.Household />;\n case \"commute\":\n return <ChartLayout.Commute />;\n case \"education\":\n return <ChartLayout.Education />;\n case \"languages\":\n return <ChartLayout.Languages />;\n default:\n return <div>{activeCategory} tab</div>;\n }\n };\n\n return (\n <DemographicsTabs.Content options={{ value: activeCategory }}>\n <ChartLayout.Root>{GetActiveTabContent()}</ChartLayout.Root>\n </DemographicsTabs.Content>\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, { useMemo } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport * as styles from \"./styles\";\nimport { useDemographics } from \"~/sdks/LocalDemographics/context\";\n\nimport { DEFAULT_RADIUS } from \"~/sdks/LocalDemographics/constants\";\n\nimport { Text } from \"~/components/deprecated\";\nimport { AttributionDeprecated as Attribution } from \"~/components/Attribution\";\n\nexport const Footer = () => {\n const { t } = useTranslation([\"localDemographics\", \"common\"]);\n const { demographicsState, locale, hideAttribution } = useDemographics();\n\n const { country } = demographicsState;\n\n const value = useMemo(\n () =>\n country === \"CAN\"\n ? DEFAULT_RADIUS\n : (DEFAULT_RADIUS * 0.000621371).toFixed(2),\n [country],\n );\n\n const unit = useMemo(\n () => t(`common:distance.${country === \"CAN\" ? \"meter\" : \"mile\"}`),\n [locale, country],\n );\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\", { value, unit })}\n </Text>\n {!hideAttribution && (\n <Attribution sdkName=\"local-demographics\" locale={locale} />\n )}\n </div>\n );\n};\n","export const container = `\n flex flex-col flex-1 overflow-hidden box-border\n`;\n\n// Calculate height without the attribution and tabsroot\nexport const tabsRoot = `\n overflow-y-auto flex flex-col\n`;\n","import React from \"react\";\nimport \"~/assets/styles/old-tailwind.css\";\nimport { useTranslation } from \"react-i18next\";\nimport * as DemographicsTabs from \"./components/Content/DemographicsTabs\";\nimport { Content } from \"./components/Content\";\nimport { Footer } from \"./components/Footer\";\nimport { LocalDemographicsProvider } from \"./context\";\nimport * as styles from \"./styles\";\nimport { LocalDemographicsProps } from \"./types\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\nimport ResizeWrapper from \"~/components/ResizeWrapper\";\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\";\nimport { TitleHeader } from \"~/components/TitleHeader\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.localDemographics.key);\n\nconst LocalDemographics = () => {\n const { t } = useTranslation(\"localDemographics\");\n const { sdkState } = useStateManagerContext<LocalDemographicsProps>();\n const isMobile = useIsMobile();\n\n return (\n <ResizeWrapper>\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.LOCAL_DEMOGRAPHICS}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.localDemographics}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.LOCAL_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: sdkState.globalOptions?.locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <LocalDemographicsProvider>\n <div className={styles.container}>\n <div className={styles.tabsRoot}>\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 {!isMobile ? (\n <DemographicsTabs.Tabs />\n ) : (\n <DemographicsTabs.Select />\n )}\n <Content />\n <Footer />\n </div>\n </div>\n </LocalDemographicsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ResizeWrapper>\n );\n};\n\nexport default LocalDemographics;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
package/dist/assets/{LocalDemographics-legacy-BdndzMcL.js → LocalDemographics-legacy-BpeV7vKR.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){function e(e,a){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),l.push.apply(l,t)}return l}function a(a){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?e(Object(i),!0).forEach(function(e){l(a,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(i,e))})}return a}function l(e,a,l){return(a=function(e){var a=function(e,a){if("object"!=typeof e||!e)return e;var l=e[Symbol.toPrimitive];if(void 0!==l){var t=l.call(e,a||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(e)}(e,"string");return"symbol"==typeof a?a:a+""}(a))in e?Object.defineProperty(e,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[a]=l,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-BKNGokn5.js","./Buildings.es-legacy-Co4NgRzz.js","./GraduationCap.es-legacy-DDaS8ZM6.js","./useDemographicsData-legacy-DPnr3Jmh.js","./UsersThree.es-legacy-DZbZvazB.js","./IconBase.es-legacy-VUFA7Zpu.js","./index-legacy-4jEyS75d.js","./useLocation-legacy-CrONniQb.js","./Attribution-legacy-z2BjL7p0.js","./ResizeWrapper-legacy-CxGgsSO0.js","./useIsMobile-legacy-BCGf3xRg.js","./old-tailwind-legacy-BXYu_3FF.js","./dist-legacy-cfZE5xAd.js","./TitleHeader-legacy-BLb6gLY8.js"],function(e,l){var t,i,n,o,s,r,c,d,u,m,v,p,h,g,b,x,j,f,y,_,N,M,D,A,E,S,H,C,w,O,T,F,V,$,k,P,I,L,Z,z,B,K,R,W,G,U,q,Y,J,Q,X,ee,ae,le,te,ie,ne,oe,se,re,ce,de,ue,me,ve,pe,he,ge,be,xe,je,fe,ye,_e,Ne,Me,De,Ae,Ee,Se,He,Ce,we,Oe,Te,Fe,Ve,$e,ke,Pe,Ie;return{setters:[function(e){t=e.a},function(e){i=e.l},function(e){n=e.a,o=e.f,s=e.h,r=e.l,c=e.n,d=e.o,u=e.p,m=e.r,v=e.s,p=e.t,h=e.u},function(e){g=e.t},function(e){b=e.t},function(e){x=e.a,j=e.i,f=e.n,y=e.r,_=e.t},function(e){N=e.t},function(e){M=e.t},function(e){D=e.B,A=e.H,E=e.W,S=e._,H=e._t,C=e.c,w=e.g,O=e.l,T=e.q,F=e.r,V=e.t,$=e.u,k=e.v,P=e.y},function(e){I=e.t},function(e){L=e.n},function(e){Z=e.t},function(e){z=e.t},function(e){},function(e){B=e.i,K=e.n,R=e.r,W=e.t},function(e){G=e.t}],execute:function(){U=t(i(),1),q=new Map([["bold",U.createElement(U.Fragment,null,U.createElement("path",{d:"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z"}))],["duotone",U.createElement(U.Fragment,null,U.createElement("path",{d:"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z",opacity:"0.2"}),U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["fill",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z"}))],["light",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z"}))],["regular",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["thin",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z"}))]]),Y=U.forwardRef((e,l)=>U.createElement(M,a(a({ref:l},e),{},{weights:q}))),Y.displayName="WalletIcon",J=U.createContext({}),Q=()=>(0,U.useContext)(J),X=T(),ee=({children:e,options:{value:a,style:l}})=>(0,X.jsx)(W,{value:a,style:l,children:e},a),ae=["income","population","housing","household","education","commute","languages"],le={income:Y,population:y,housing:g,household:N,education:b,commute:x,languages:j},te=()=>{const{t:e}=s("localDemographics"),{options:a}=Q();let l=ae;return a.omitTabs&&(l=ae.filter(e=>{var l;return!(null!==(l=a.omitTabs)&&void 0!==l&&l.includes(e))})),(0,X.jsx)(K,{className:"\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n","aria-label":"Demographics tabs",children:l.map(l=>{const t=l===a.activeTab,i=le[l];return(0,X.jsx)(U.Fragment,{children:(0,X.jsxs)(B,{"data-active":t,className:"\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n",value:l,children:[(0,X.jsx)(i,{className:"\n w-6 h-6\n fill-inherit\n"}),(0,X.jsx)("p",{className:"\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n",children:e(`data.${l}.title`)})]})},l)})})},ie=()=>{const{t:e}=s("localDemographics"),{options:a,onChange:l}=Q();let t=ae;return a.omitTabs&&(t=ae.filter(e=>{var l;return!(null!==(l=a.omitTabs)&&void 0!==l&&l.includes(e))})),(0,X.jsx)("div",{className:"\n flex\n py-4 px-0\n z-[4]\n",children:(0,X.jsxs)(k,{value:a.activeTab,onValueChange:e=>{l({type:"tabs",data:e})},children:[(0,X.jsx)(P,{size:"large",children:(0,X.jsx)(A,{noMargin:!0,variant:"h6",color:"--ll-color-placeholder",children:e(`data.${a.activeTab}.title`)})}),(0,X.jsx)(w,{children:t.map(a=>(0,X.jsx)(S,{value:a,children:(0,X.jsx)(A,{noMargin:!0,variant:"h6",children:e(`data.${a}.title`)})},a))})]})})},ne=({options:e,onChange:a,children:l})=>(0,X.jsx)(J.Provider,{value:{options:e,onChange:a},children:(0,X.jsx)(R,{value:e.activeTab,onValueChange:e=>{a({type:"tabs",data:e})},children:l})}),oe="\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n",se="\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n",re="\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n",ce="text-ll-primary w-2/4 h-2/4",de="min-h-36 h-full",ue=function(e){return e.SDK_VIEWED="LD-Viewed",e.TAB_CLICKED="LD-Tab-Clicked",e}({}),me=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),ve=r({lat:h().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").required(),lng:h().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").required(),title:u().optional(),defaultTab:u().optional(),hideAttribution:o().optional()}).noUnknown(!0),pe=e=>ve.validate(e,{abortEarly:!1}),he=U.createContext({}),ge=()=>(0,U.useContext)(he),be=({children:e})=>{var l,t,i,n,o,s,r,c;const d=v(),{sdkState:u}=V(),[m,p]=(0,U.useState)(null!==(l=u.options)&&void 0!==l&&l.defaultTab&&ae.includes(null===(t=u.options)||void 0===t?void 0:t.defaultTab)?null===(i=u.options)||void 0===i?void 0:i.defaultTab:ae[0]),[h,g]=(0,U.useState)(!1),[b,x]=(0,U.useState)([]),{data:{country:j},isLoading:f}=I({lat:null===(n=u.options)||void 0===n?void 0:n.lat,lng:null===(o=u.options)||void 0===o?void 0:o.lng});F(()=>{d.postEvent({eventType:ue.SDK_VIEWED}),d.trackAnalyticsEvent({eventName:me.SDK_VIEWED})});const[y,_]=(0,U.useReducer)((e,l)=>a(a({},e),l),{location:{lat:(null===(s=u.options)||void 0===s?void 0:s.lat)||43.661337,lng:(null===(r=u.options)||void 0===r?void 0:r.lng)||-79.401903},country:"CAN"});(0,U.useEffect)(()=>{u&&_(a(a({},y),{},{country:j}))},[u,j]),F(()=>{h||(async()=>{try{H.addBreadCrumb("LocalDemographicsProvider","Validating state options",{options:u.options}),await pe(u.options),g(!0)}catch(e){const a=e;x(a.errors),H.addBreadCrumb("LocalDemographicsProvider","State option validation failed",{errors:a.errors})}})()});const N=(0,U.useMemo)(()=>{var e,a;return{country:j,demographicsState:y,setDemographicsState:_,activeCategory:m,setActiveCategory:p,locale:(null===(e=u.globalOptions)||void 0===e?void 0:e.locale)||"en",hideAttribution:null===(a=u.options)||void 0===a?void 0:a.hideAttribution}},[j,m,p,y,_,u.globalOptions,null===(c=u.options)||void 0===c?void 0:c.hideAttribution]),M=(0,U.useMemo)(()=>{const e=[];return Object.entries({income:"income",population:"population_age",housing:"housing_tenancy",household:"household_composition",education:"education_level",commute:"commute_mode",languages:"mother_tongue"}).forEach(([a,l])=>{Object.keys(y).includes(l)||e.push(a)}),H.addBreadCrumb("LocalDemographicsProvider","Updated tabs to omit",{tabsToOmit:e}),e},[y]);if(!h){if(b.length){const e="Could not load Demographics";return console.error(`${e}: ${b.join(", ")}`),(0,X.jsx)("p",{children:e})}return(0,X.jsx)(X.Fragment,{})}return(0,X.jsx)(he.Provider,{value:N,children:(0,X.jsx)(ne,{options:{activeTab:m,omitTabs:M},onChange:e=>{p(e.data),H.addBreadCrumb("LocalDemographicsProvider","handleTabsChange",{value:e}),d.postEvent({eventType:ue.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e.data}]}),d.trackAnalyticsEvent({eventName:me.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e.data}})},children:(0,X.jsx)("div",{style:{display:"flex",flexDirection:"column",background:`${E["--ll-color-background"]}`,padding:`${E["--ll-spacing-xx-small"]} ${E["--ll-spacing-small"]} 0`,borderRadius:`${E["--ll-border-radius-medium"]}`},children:!f&&e})})})},xe=()=>{const{t:e}=s("localDemographics"),{country:l,demographicsState:{income:t}}=ge(),i=(0,U.useMemo)(()=>{var e,a;return(null==t?void 0:t.variables.slice().reverse())||[{variable:"avg_individual_income",label:"Avg individual income",value:(null==t||null===(e=t.variables)||void 0===e||null===(e=e.find(e=>"inc_person"===e.variable))||void 0===e?void 0:e.value)||0},{variable:"avg_household_income",label:"Avg household income",value:(null==t||null===(a=t.variables)||void 0===a||null===(a=a.find(e=>"inc_home"===e.variable))||void 0===a?void 0:a.value)||0}]},[null==t?void 0:t.variables]),n=(0,U.useMemo)(()=>({options:{title:e("data.income.graphs.averageIncome.title",{context:l}),values:i.map(a=>{let t="";return"avg_household_income"===a.variable&&(t=e("data.income.graphs.averageIncome.types.avgHouseholdIncome",{context:l})),"avg_individual_income"===a.variable&&(t=e("data.income.graphs.averageIncome.types.avgIndividualIncome",{context:l})),{variable:a.variable,value:`${new Intl.NumberFormat("en-EN",{style:"currency",currency:"USD",maximumFractionDigits:1}).format(a.value/1e3)}${a.value>=1e3?"k":""}`,label:t}})}}),[i]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},n))})},je=()=>{const{t:e}=s("localDemographics"),{demographicsState:{employment_status:l}}=ge(),t=(0,U.useMemo)(()=>(null==l?void 0:l.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))})))||[],[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({options:{title:e("data.income.graphs.employment.title"),values:t.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[t]);return l?(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},i))}):null},fe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{income_level:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.income.graphs.incomeBrackets.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},ye=()=>{const{demographicsState:{income_level:e}}=ge();return(0,X.jsx)(X.Fragment,{children:e?(0,X.jsxs)("div",{className:oe,children:[(0,X.jsxs)("div",{className:se,children:[(0,X.jsx)("div",{className:re,children:(0,X.jsx)(xe,{})}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(je,{})})]}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(fe,{})})]}):(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"quarter",children:(0,X.jsx)(xe,{})})})})},_e=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_total:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables[0],[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({options:{title:e("data.population.graphs.totalPopulation.title"),values:[{variable:(null==t?void 0:t.variable)||"",value:`${new Intl.NumberFormat("en-EN").format(Math.round((null==t?void 0:t.value)||0))}`,label:e("data.population.graphs.totalPopulation.title"),icon:y}]}}),[t]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},i))})},Ne=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_age:l}}=ge(),t=(0,U.useMemo)(()=>{if(!l)return null;if((null==l?void 0:l.variables.length)>12){const e=null==l?void 0:l.variables.map(e=>{const a=e.label.split(" ");return a.splice(1,1),a}),a=[];return e.forEach((t,i)=>{0!==i&&i%2!=0||a.push({variable:`age_${t[0]}_${e[i+1][1]}`,value:l.variables[i].value+l.variables[i+1].value,label:`${t[0]} to ${e[i+1][1]}`})}),a}return l.variables},[l]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>e.label))||[],data:(null==t?void 0:t.map(e=>Number((100*e.value).toFixed(1))))||[]}),[t]),n=(0,U.useMemo)(()=>({title:e("data.population.graphs.populationByAgeGroup.title"),labels:i.labels,data:i.data,unit:"%"}),[i]);return(0,X.jsx)(O,a(a({},n),{},{children:(0,X.jsx)($,{})}))},Me=()=>{const{demographicsState:{population_total:e}}=ge();return(0,X.jsxs)("div",{className:oe,children:[e&&(0,X.jsx)("div",{className:se,children:(0,X.jsx)("div",{className:re,children:(0,X.jsx)(_e,{})})}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(Ne,{})})]})},De=()=>{const{t:e}=s("localDemographics"),{demographicsState:{property_tenure:l,housing_tenancy:t}}=ge(),i=(0,U.useMemo)(()=>t||l,[t,l]),n=(0,U.useMemo)(()=>(null==i?void 0:i.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))})))||[],[null==i?void 0:i.variables]),o=(0,U.useMemo)(()=>({options:{title:e("data.housing.graphs.homeOwnershipType.title"),values:n.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[n]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},o))})},Ae=()=>{const{t:e}=s("localDemographics"),{demographicsState:{housing_type:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.housing.graphs.typeOfHousing.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},Ee=()=>{const{demographicsState:{property_tenure:e,housing_tenancy:a,housing_type:l}}=ge(),t=a||e;return(0,X.jsxs)("div",{className:oe,children:[t&&(0,X.jsx)("div",{className:se,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(De,{})})}),l&&(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Ae,{})})]})},Se=()=>{const{t:e}=s("localDemographics"),{demographicsState:{household_composition:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.household.graphs.householdComposition.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(N,{className:ce})}),[i])))},He=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Se,{})})}),Ce=()=>{const{t:e}=s("localDemographics"),{demographicsState:{education_level:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.education.graphs.educationLevel.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},we=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,children:(0,X.jsx)(Ce,{})})}),Oe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{commute_mode:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.commute.graphs.commuteMode.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(x,{className:ce})}),[i])))},Te=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Oe,{})})}),Fe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{official_language_knowledge:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.languages.graphs.spokenLanguages.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(j,{className:ce})}),[i])))},Ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:{mother_tongue:l}}=ge(),t=(0,U.useMemo)(()=>{var e;return null==l||null===(e=l.variables.filter(e=>"french_and_non_official_language_s"!==e.variable&&"english_and_non_official_language_s"!==e.variable).slice(0,10))||void 0===e?void 0:e.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>e.value>0)},[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>e.label))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]),n=(0,U.useMemo)(()=>({title:e("data.languages.graphs.motherTongue.title"),labels:i.labels,data:i.data,unit:"%"}),[i]);return(0,X.jsx)(O,a(a({},n),{},{children:(0,X.jsx)($,{})}))},$e=()=>{const{demographicsState:{official_language_knowledge:e}}=ge();return(0,X.jsxs)("div",{className:oe,children:[e&&(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Fe,{})}),(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Ve,{})})]})},ke=({children:e})=>(0,X.jsx)(X.Fragment,{children:e}),Pe=()=>{const{t:e}=s("localDemographics"),{demographicsState:l,activeCategory:t,setDemographicsState:i}=ge(),{data:n,isFetching:o}=_({lat:l.location.lat,lng:l.location.lng,radius:400,radiusUnit:"meter"});(0,U.useEffect)(()=>{!o&&n&&i(a({},n))},[o]);return(0,X.jsx)(ee,{options:{value:t},children:(0,X.jsx)(ke,{children:(()=>{if(o)return(0,X.jsx)("div",{className:"\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n",children:(0,X.jsx)(D,{})});if(void 0===n)return(0,X.jsx)("div",{className:"\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n",children:(0,X.jsx)(A,{variant:"h6",weight:"--ll-font-weight-bold",children:e("noData")})});switch(t){case"income":return(0,X.jsx)(ye,{});case"population":return(0,X.jsx)(Me,{});case"housing":return(0,X.jsx)(Ee,{});case"household":return(0,X.jsx)(He,{});case"commute":return(0,X.jsx)(Te,{});case"education":return(0,X.jsx)(we,{});case"languages":return(0,X.jsx)($e,{});default:return(0,X.jsxs)("div",{children:[t," tab"]})}})()})})},Ie=()=>{const{t:e}=s(["localDemographics","common"]),{demographicsState:a,locale:l,hideAttribution:t}=ge(),{country:i}=a,n=(0,U.useMemo)(()=>"CAN"===i?400:.2485484.toFixed(2),[i]),o=(0,U.useMemo)(()=>e("common:distance."+("CAN"===i?"meter":"mile")),[l,i]);return(0,X.jsxs)("div",{className:"\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n",children:[(0,X.jsx)(A,{noMargin:!0,variant:"caption1",color:"--ll-color-on-background-variant1",children:e("note",{value:n,unit:o})}),!t&&(0,X.jsx)(L,{sdkName:"local-demographics",locale:l})]})},d(c.localDemographics.key),e("default",()=>{var e,a,l,t,i,o,r,d;const{t:u}=s("localDemographics"),{sdkState:v}=V(),h=z();return(0,X.jsx)(Z,{children:(0,X.jsx)(m,{environment:null===(e=v.globalOptions)||void 0===e||null===(e=e.environment)||void 0===e?void 0:e.api,apiKey:v.apiKey,appearance:null===(a=v.globalOptions)||void 0===a?void 0:a.appearance,locale:null===(l=v.globalOptions)||void 0===l?void 0:l.locale,product:p.LOCAL_DEMOGRAPHICS,children:(0,X.jsx)(n,{trackingPipelineSettings:{apiKey:v.apiKey||""},analyticsSettings:c.localDemographics,meta:{clientId:v.clientId,productName:p.LOCAL_DEMOGRAPHICS,productVersion:"1.24.40"},attributes:{location:{lat:null===(t=v.options)||void 0===t?void 0:t.lat,lng:null===(i=v.options)||void 0===i?void 0:i.lng},host:v.location,host_url:document.referrer,locale:null===(o=v.globalOptions)||void 0===o?void 0:o.locale,isMobile:h},flags:{isDebugMode:!1},children:(0,X.jsx)(be,{children:(0,X.jsx)("div",{className:"\n flex flex-col flex-1 overflow-hidden box-border\n",children:(0,X.jsxs)("div",{className:"\n overflow-y-auto flex flex-col\n",children:[(0,X.jsx)(G,{title:"string"==typeof(null===(r=v.options)||void 0===r?void 0:r.title)||!1===(null===(d=v.options)||void 0===d?void 0:d.title)?v.options.title:u("title")}),h?(0,X.jsx)(ie,{}):(0,X.jsx)(te,{}),(0,X.jsx)(Pe,{}),(0,X.jsx)(Ie,{})]})})})})})})})}}})}();
|
|
2
|
-
//# sourceMappingURL=LocalDemographics-legacy-
|
|
1
|
+
!function(){function e(e,a){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),l.push.apply(l,t)}return l}function a(a){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?e(Object(i),!0).forEach(function(e){l(a,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(i,e))})}return a}function l(e,a,l){return(a=function(e){var a=function(e,a){if("object"!=typeof e||!e)return e;var l=e[Symbol.toPrimitive];if(void 0!==l){var t=l.call(e,a||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(e)}(e,"string");return"symbol"==typeof a?a:a+""}(a))in e?Object.defineProperty(e,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[a]=l,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-CoLf_W4Z.js","./Buildings.es-legacy-Co4NgRzz.js","./GraduationCap.es-legacy-DDaS8ZM6.js","./useDemographicsData-legacy-BYnQNjDv.js","./UsersThree.es-legacy-DZbZvazB.js","./IconBase.es-legacy-VUFA7Zpu.js","./index-legacy-D77-aBOf.js","./useLocation-legacy-TYbGg3Qq.js","./Attribution-legacy-CdR3a3DX.js","./ResizeWrapper-legacy-DibF7KTC.js","./useIsMobile-legacy-BYXlMXeW.js","./old-tailwind-legacy-BXYu_3FF.js","./dist-legacy-DvNzEKrH.js","./TitleHeader-legacy-Dkn0qrYi.js"],function(e,l){var t,i,n,o,s,r,c,d,u,m,v,p,h,g,b,x,j,f,y,_,N,M,D,A,E,S,H,C,w,O,T,F,V,$,k,P,I,L,Z,z,B,K,R,W,G,U,q,Y,J,Q,X,ee,ae,le,te,ie,ne,oe,se,re,ce,de,ue,me,ve,pe,he,ge,be,xe,je,fe,ye,_e,Ne,Me,De,Ae,Ee,Se,He,Ce,we,Oe,Te,Fe,Ve,$e,ke,Pe,Ie;return{setters:[function(e){t=e.a},function(e){i=e.l},function(e){n=e.a,o=e.f,s=e.h,r=e.l,c=e.n,d=e.o,u=e.p,m=e.r,v=e.s,p=e.t,h=e.u},function(e){g=e.t},function(e){b=e.t},function(e){x=e.a,j=e.i,f=e.n,y=e.r,_=e.t},function(e){N=e.t},function(e){M=e.t},function(e){D=e.B,A=e.H,E=e.W,S=e._,H=e._t,C=e.c,w=e.g,O=e.l,T=e.q,F=e.r,V=e.t,$=e.u,k=e.v,P=e.y},function(e){I=e.t},function(e){L=e.n},function(e){Z=e.t},function(e){z=e.t},function(e){},function(e){B=e.i,K=e.n,R=e.r,W=e.t},function(e){G=e.t}],execute:function(){U=t(i(),1),q=new Map([["bold",U.createElement(U.Fragment,null,U.createElement("path",{d:"M196,136a16,16,0,1,1-16-16A16,16,0,0,1,196,136Zm40-36v80a32,32,0,0,1-32,32H60a32,32,0,0,1-32-32V60.92A32,32,0,0,1,60,28H192a12,12,0,0,1,0,24H60a8,8,0,0,0-8,8.26v.08A8.32,8.32,0,0,0,60.48,68H204A32,32,0,0,1,236,100Zm-24,0a8,8,0,0,0-8-8H60.48A33.72,33.72,0,0,1,52,90.92V180a8,8,0,0,0,8,8H204a8,8,0,0,0,8-8Z"}))],["duotone",U.createElement(U.Fragment,null,U.createElement("path",{d:"M224,80V192a8,8,0,0,1-8,8H56a16,16,0,0,1-16-16V56A16,16,0,0,0,56,72H216A8,8,0,0,1,224,80Z",opacity:"0.2"}),U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["fill",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm-36,80a12,12,0,1,1,12-12A12,12,0,0,1,180,144Z"}))],["light",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,66H56a10,10,0,0,1,0-20H192a6,6,0,0,0,0-12H56A22,22,0,0,0,34,56V184a22,22,0,0,0,22,22H216a14,14,0,0,0,14-14V80A14,14,0,0,0,216,66Zm2,126a2,2,0,0,1-2,2H56a10,10,0,0,1-10-10V75.59A21.84,21.84,0,0,0,56,78H216a2,2,0,0,1,2,2Zm-28-60a10,10,0,1,1-10-10A10,10,0,0,1,190,132Z"}))],["regular",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,64H56a8,8,0,0,1,0-16H192a8,8,0,0,0,0-16H56A24,24,0,0,0,32,56V184a24,24,0,0,0,24,24H216a16,16,0,0,0,16-16V80A16,16,0,0,0,216,64Zm0,128H56a8,8,0,0,1-8-8V78.63A23.84,23.84,0,0,0,56,80H216Zm-48-60a12,12,0,1,1,12,12A12,12,0,0,1,168,132Z"}))],["thin",U.createElement(U.Fragment,null,U.createElement("path",{d:"M216,68H56a12,12,0,0,1,0-24H192a4,4,0,0,0,0-8H56A20,20,0,0,0,36,56V184a20,20,0,0,0,20,20H216a12,12,0,0,0,12-12V80A12,12,0,0,0,216,68Zm4,124a4,4,0,0,1-4,4H56a12,12,0,0,1-12-12V72a19.86,19.86,0,0,0,12,4H216a4,4,0,0,1,4,4Zm-32-60a8,8,0,1,1-8-8A8,8,0,0,1,188,132Z"}))]]),Y=U.forwardRef((e,l)=>U.createElement(M,a(a({ref:l},e),{},{weights:q}))),Y.displayName="WalletIcon",J=U.createContext({}),Q=()=>(0,U.useContext)(J),X=T(),ee=({children:e,options:{value:a,style:l}})=>(0,X.jsx)(W,{value:a,style:l,children:e},a),ae=["income","population","housing","household","education","commute","languages"],le={income:Y,population:y,housing:g,household:N,education:b,commute:x,languages:j},te=()=>{const{t:e}=s("localDemographics"),{options:a}=Q();let l=ae;return a.omitTabs&&(l=ae.filter(e=>{var l;return!(null!==(l=a.omitTabs)&&void 0!==l&&l.includes(e))})),(0,X.jsx)(K,{className:"\n grid\n auto-cols-[minmax(0,80px)]\n grid-flow-col\n px-0 py-4\n","aria-label":"Demographics tabs",children:l.map(l=>{const t=l===a.activeTab,i=le[l];return(0,X.jsx)(U.Fragment,{children:(0,X.jsxs)(B,{"data-active":t,className:"\n bg-none\n border-none\n p-1\n flex\n flex-col\n items-center\n hover:cursor-pointer\n fill-ll-disabled\n text-ll-disabled\n hover:fill-ll-primary\n hover:text-ll-primary\n [&>div]:fill-inherit\n [&>div]:text-inherit\n data-[active=true]:fill-ll-primary\n data-[active=true]:text-ll-primary\n",value:l,children:[(0,X.jsx)(i,{className:"\n w-6 h-6\n fill-inherit\n"}),(0,X.jsx)("p",{className:"\n m-0 font-semibold\n text-ll-font-size-caption-1\n text-inherit\n",children:e(`data.${l}.title`)})]})},l)})})},ie=()=>{const{t:e}=s("localDemographics"),{options:a,onChange:l}=Q();let t=ae;return a.omitTabs&&(t=ae.filter(e=>{var l;return!(null!==(l=a.omitTabs)&&void 0!==l&&l.includes(e))})),(0,X.jsx)("div",{className:"\n flex\n py-4 px-0\n z-[4]\n",children:(0,X.jsxs)(k,{value:a.activeTab,onValueChange:e=>{l({type:"tabs",data:e})},children:[(0,X.jsx)(P,{size:"large",children:(0,X.jsx)(A,{noMargin:!0,variant:"h6",color:"--ll-color-placeholder",children:e(`data.${a.activeTab}.title`)})}),(0,X.jsx)(w,{children:t.map(a=>(0,X.jsx)(S,{value:a,children:(0,X.jsx)(A,{noMargin:!0,variant:"h6",children:e(`data.${a}.title`)})},a))})]})})},ne=({options:e,onChange:a,children:l})=>(0,X.jsx)(J.Provider,{value:{options:e,onChange:a},children:(0,X.jsx)(R,{value:e.activeTab,onValueChange:e=>{a({type:"tabs",data:e})},children:l})}),oe="\n flex flex-col justify-start self-stretch items-stretch\n md:justify-between md:flex-row gap-3\n",se="\n flex justify-between gap-3 flex-row min-w-[250px]\n md:flex-col items-stretch\n",re="\n w-full md:min-h-[240px]\n flex flex-col self-stretch\n",ce="text-ll-primary w-2/4 h-2/4",de="min-h-36 h-full",ue=function(e){return e.SDK_VIEWED="LD-Viewed",e.TAB_CLICKED="LD-Tab-Clicked",e}({}),me=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),ve=r({lat:h().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").required(),lng:h().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").required(),title:u().optional(),defaultTab:u().optional(),hideAttribution:o().optional()}).noUnknown(!0),pe=e=>ve.validate(e,{abortEarly:!1}),he=U.createContext({}),ge=()=>(0,U.useContext)(he),be=({children:e})=>{var l,t,i,n,o,s,r,c;const d=v(),{sdkState:u}=V(),[m,p]=(0,U.useState)(null!==(l=u.options)&&void 0!==l&&l.defaultTab&&ae.includes(null===(t=u.options)||void 0===t?void 0:t.defaultTab)?null===(i=u.options)||void 0===i?void 0:i.defaultTab:ae[0]),[h,g]=(0,U.useState)(!1),[b,x]=(0,U.useState)([]),{data:{country:j},isLoading:f}=I({lat:null===(n=u.options)||void 0===n?void 0:n.lat,lng:null===(o=u.options)||void 0===o?void 0:o.lng});F(()=>{d.postEvent({eventType:ue.SDK_VIEWED}),d.trackAnalyticsEvent({eventName:me.SDK_VIEWED})});const[y,_]=(0,U.useReducer)((e,l)=>a(a({},e),l),{location:{lat:(null===(s=u.options)||void 0===s?void 0:s.lat)||43.661337,lng:(null===(r=u.options)||void 0===r?void 0:r.lng)||-79.401903},country:"CAN"});(0,U.useEffect)(()=>{u&&_(a(a({},y),{},{country:j}))},[u,j]),F(()=>{h||(async()=>{try{H.addBreadCrumb("LocalDemographicsProvider","Validating state options",{options:u.options}),await pe(u.options),g(!0)}catch(e){const a=e;x(a.errors),H.addBreadCrumb("LocalDemographicsProvider","State option validation failed",{errors:a.errors})}})()});const N=(0,U.useMemo)(()=>{var e,a;return{country:j,demographicsState:y,setDemographicsState:_,activeCategory:m,setActiveCategory:p,locale:(null===(e=u.globalOptions)||void 0===e?void 0:e.locale)||"en",hideAttribution:null===(a=u.options)||void 0===a?void 0:a.hideAttribution}},[j,m,p,y,_,u.globalOptions,null===(c=u.options)||void 0===c?void 0:c.hideAttribution]),M=(0,U.useMemo)(()=>{const e=[];return Object.entries({income:"income",population:"population_age",housing:"housing_tenancy",household:"household_composition",education:"education_level",commute:"commute_mode",languages:"mother_tongue"}).forEach(([a,l])=>{Object.keys(y).includes(l)||e.push(a)}),H.addBreadCrumb("LocalDemographicsProvider","Updated tabs to omit",{tabsToOmit:e}),e},[y]);if(!h){if(b.length){const e="Could not load Demographics";return console.error(`${e}: ${b.join(", ")}`),(0,X.jsx)("p",{children:e})}return(0,X.jsx)(X.Fragment,{})}return(0,X.jsx)(he.Provider,{value:N,children:(0,X.jsx)(ne,{options:{activeTab:m,omitTabs:M},onChange:e=>{p(e.data),H.addBreadCrumb("LocalDemographicsProvider","handleTabsChange",{value:e}),d.postEvent({eventType:ue.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e.data}]}),d.trackAnalyticsEvent({eventName:me.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e.data}})},children:(0,X.jsx)("div",{style:{display:"flex",flexDirection:"column",background:`${E["--ll-color-background"]}`,padding:`${E["--ll-spacing-xx-small"]} ${E["--ll-spacing-small"]} 0`,borderRadius:`${E["--ll-border-radius-medium"]}`},children:!f&&e})})})},xe=()=>{const{t:e}=s("localDemographics"),{country:l,demographicsState:{income:t}}=ge(),i=(0,U.useMemo)(()=>{var e,a;return(null==t?void 0:t.variables.slice().reverse())||[{variable:"avg_individual_income",label:"Avg individual income",value:(null==t||null===(e=t.variables)||void 0===e||null===(e=e.find(e=>"inc_person"===e.variable))||void 0===e?void 0:e.value)||0},{variable:"avg_household_income",label:"Avg household income",value:(null==t||null===(a=t.variables)||void 0===a||null===(a=a.find(e=>"inc_home"===e.variable))||void 0===a?void 0:a.value)||0}]},[null==t?void 0:t.variables]),n=(0,U.useMemo)(()=>({options:{title:e("data.income.graphs.averageIncome.title",{context:l}),values:i.map(a=>{let t="";return"avg_household_income"===a.variable&&(t=e("data.income.graphs.averageIncome.types.avgHouseholdIncome",{context:l})),"avg_individual_income"===a.variable&&(t=e("data.income.graphs.averageIncome.types.avgIndividualIncome",{context:l})),{variable:a.variable,value:`${new Intl.NumberFormat("en-EN",{style:"currency",currency:"USD",maximumFractionDigits:1}).format(a.value/1e3)}${a.value>=1e3?"k":""}`,label:t}})}}),[i]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},n))})},je=()=>{const{t:e}=s("localDemographics"),{demographicsState:{employment_status:l}}=ge(),t=(0,U.useMemo)(()=>(null==l?void 0:l.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))})))||[],[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({options:{title:e("data.income.graphs.employment.title"),values:t.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[t]);return l?(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},i))}):null},fe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{income_level:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.income.graphs.incomeBrackets.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},ye=()=>{const{demographicsState:{income_level:e}}=ge();return(0,X.jsx)(X.Fragment,{children:e?(0,X.jsxs)("div",{className:oe,children:[(0,X.jsxs)("div",{className:se,children:[(0,X.jsx)("div",{className:re,children:(0,X.jsx)(xe,{})}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(je,{})})]}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(fe,{})})]}):(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"quarter",children:(0,X.jsx)(xe,{})})})})},_e=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_total:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables[0],[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({options:{title:e("data.population.graphs.totalPopulation.title"),values:[{variable:(null==t?void 0:t.variable)||"",value:`${new Intl.NumberFormat("en-EN").format(Math.round((null==t?void 0:t.value)||0))}`,label:e("data.population.graphs.totalPopulation.title"),icon:y}]}}),[t]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},i))})},Ne=()=>{const{t:e}=s("localDemographics"),{demographicsState:{population_age:l}}=ge(),t=(0,U.useMemo)(()=>{if(!l)return null;if((null==l?void 0:l.variables.length)>12){const e=null==l?void 0:l.variables.map(e=>{const a=e.label.split(" ");return a.splice(1,1),a}),a=[];return e.forEach((t,i)=>{0!==i&&i%2!=0||a.push({variable:`age_${t[0]}_${e[i+1][1]}`,value:l.variables[i].value+l.variables[i+1].value,label:`${t[0]} to ${e[i+1][1]}`})}),a}return l.variables},[l]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>e.label))||[],data:(null==t?void 0:t.map(e=>Number((100*e.value).toFixed(1))))||[]}),[t]),n=(0,U.useMemo)(()=>({title:e("data.population.graphs.populationByAgeGroup.title"),labels:i.labels,data:i.data,unit:"%"}),[i]);return(0,X.jsx)(O,a(a({},n),{},{children:(0,X.jsx)($,{})}))},Me=()=>{const{demographicsState:{population_total:e}}=ge();return(0,X.jsxs)("div",{className:oe,children:[e&&(0,X.jsx)("div",{className:se,children:(0,X.jsx)("div",{className:re,children:(0,X.jsx)(_e,{})})}),(0,X.jsx)("div",{className:re,children:(0,X.jsx)(Ne,{})})]})},De=()=>{const{t:e}=s("localDemographics"),{demographicsState:{property_tenure:l,housing_tenancy:t}}=ge(),i=(0,U.useMemo)(()=>t||l,[t,l]),n=(0,U.useMemo)(()=>(null==i?void 0:i.variables.map(e=>({label:e.label,data:Number((100*e.value).toFixed(1))})))||[],[null==i?void 0:i.variables]),o=(0,U.useMemo)(()=>({options:{title:e("data.housing.graphs.homeOwnershipType.title"),values:n.map(e=>({variable:e.label.replace(" ","_"),label:e.label,value:`${e.data}%`}))}}),[n]);return(0,X.jsx)("div",{className:de,children:(0,X.jsx)(f,a({},o))})},Ae=()=>{const{t:e}=s("localDemographics"),{demographicsState:{housing_type:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.housing.graphs.typeOfHousing.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},Ee=()=>{const{demographicsState:{property_tenure:e,housing_tenancy:a,housing_type:l}}=ge(),t=a||e;return(0,X.jsxs)("div",{className:oe,children:[t&&(0,X.jsx)("div",{className:se,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(De,{})})}),l&&(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Ae,{})})]})},Se=()=>{const{t:e}=s("localDemographics"),{demographicsState:{household_composition:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.household.graphs.householdComposition.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(N,{className:ce})}),[i])))},He=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Se,{})})}),Ce=()=>{const{t:e}=s("localDemographics"),{demographicsState:{education_level:l}}=ge(),t=(0,U.useMemo)(()=>({labels:(null==l?void 0:l.variables.map(e=>e.label))||[],data:(null==l?void 0:l.variables.map(e=>Number((100*e.value).toFixed(1))))||[]}),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({title:e("data.education.graphs.educationLevel.title"),labels:t.labels,data:t.data,unit:"%"}),[t]);return(0,X.jsx)(O,a(a({},i),{},{children:(0,X.jsx)($,{})}))},we=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,children:(0,X.jsx)(Ce,{})})}),Oe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{commute_mode:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.commute.graphs.commuteMode.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(x,{className:ce})}),[i])))},Te=()=>(0,X.jsx)("div",{className:oe,children:(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Oe,{})})}),Fe=()=>{const{t:e}=s("localDemographics"),{demographicsState:{official_language_knowledge:l}}=ge(),t=(0,U.useMemo)(()=>null==l?void 0:l.variables.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>Number((100*e.value).toFixed(1))>0),[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>`${e.value}% ${e.label}`))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]);return(0,X.jsx)(C,a({},(0,U.useMemo)(()=>({title:e("data.languages.graphs.spokenLanguages.title"),labels:i.labels,data:i.data,icon:(0,X.jsx)(j,{className:ce})}),[i])))},Ve=()=>{const{t:e}=s("localDemographics"),{demographicsState:{mother_tongue:l}}=ge(),t=(0,U.useMemo)(()=>{var e;return null==l||null===(e=l.variables.filter(e=>"french_and_non_official_language_s"!==e.variable&&"english_and_non_official_language_s"!==e.variable).slice(0,10))||void 0===e?void 0:e.map(e=>a(a({},e),{},{value:Number((100*e.value).toFixed(1))})).filter(e=>e.value>0)},[null==l?void 0:l.variables]),i=(0,U.useMemo)(()=>({labels:(null==t?void 0:t.map(e=>e.label))||[],data:(null==t?void 0:t.map(e=>e.value))||[]}),[t]),n=(0,U.useMemo)(()=>({title:e("data.languages.graphs.motherTongue.title"),labels:i.labels,data:i.data,unit:"%"}),[i]);return(0,X.jsx)(O,a(a({},n),{},{children:(0,X.jsx)($,{})}))},$e=()=>{const{demographicsState:{official_language_knowledge:e}}=ge();return(0,X.jsxs)("div",{className:oe,children:[e&&(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Fe,{})}),(0,X.jsx)("div",{className:re,"data-size":"half",children:(0,X.jsx)(Ve,{})})]})},ke=({children:e})=>(0,X.jsx)(X.Fragment,{children:e}),Pe=()=>{const{t:e}=s("localDemographics"),{demographicsState:l,activeCategory:t,setDemographicsState:i}=ge(),{data:n,isFetching:o}=_({lat:l.location.lat,lng:l.location.lng,radius:400,radiusUnit:"meter"});(0,U.useEffect)(()=>{!o&&n&&i(a({},n))},[o]);return(0,X.jsx)(ee,{options:{value:t},children:(0,X.jsx)(ke,{children:(()=>{if(o)return(0,X.jsx)("div",{className:"\n flex justify-center items-center \n px-3 pt-4 pb-3 height-[40px]\n",children:(0,X.jsx)(D,{})});if(void 0===n)return(0,X.jsx)("div",{className:"\n bg-ll-surface px-3 pt-4 pb-3 rounded-sm box-border\n",children:(0,X.jsx)(A,{variant:"h6",weight:"--ll-font-weight-bold",children:e("noData")})});switch(t){case"income":return(0,X.jsx)(ye,{});case"population":return(0,X.jsx)(Me,{});case"housing":return(0,X.jsx)(Ee,{});case"household":return(0,X.jsx)(He,{});case"commute":return(0,X.jsx)(Te,{});case"education":return(0,X.jsx)(we,{});case"languages":return(0,X.jsx)($e,{});default:return(0,X.jsxs)("div",{children:[t," tab"]})}})()})})},Ie=()=>{const{t:e}=s(["localDemographics","common"]),{demographicsState:a,locale:l,hideAttribution:t}=ge(),{country:i}=a,n=(0,U.useMemo)(()=>"CAN"===i?400:.2485484.toFixed(2),[i]),o=(0,U.useMemo)(()=>e("common:distance."+("CAN"===i?"meter":"mile")),[l,i]);return(0,X.jsxs)("div",{className:"\n py-3 items-center grid\n grid-cols-1 md:grid-cols-[2fr_1fr] \n [&>a]:justify-end\n",children:[(0,X.jsx)(A,{noMargin:!0,variant:"caption1",color:"--ll-color-on-background-variant1",children:e("note",{value:n,unit:o})}),!t&&(0,X.jsx)(L,{sdkName:"local-demographics",locale:l})]})},d(c.localDemographics.key),e("default",()=>{var e,a,l,t,i,o,r,d;const{t:u}=s("localDemographics"),{sdkState:v}=V(),h=z();return(0,X.jsx)(Z,{children:(0,X.jsx)(m,{environment:null===(e=v.globalOptions)||void 0===e||null===(e=e.environment)||void 0===e?void 0:e.api,apiKey:v.apiKey,appearance:null===(a=v.globalOptions)||void 0===a?void 0:a.appearance,locale:null===(l=v.globalOptions)||void 0===l?void 0:l.locale,product:p.LOCAL_DEMOGRAPHICS,children:(0,X.jsx)(n,{trackingPipelineSettings:{apiKey:v.apiKey||""},analyticsSettings:c.localDemographics,meta:{clientId:v.clientId,productName:p.LOCAL_DEMOGRAPHICS,productVersion:"1.24.41"},attributes:{location:{lat:null===(t=v.options)||void 0===t?void 0:t.lat,lng:null===(i=v.options)||void 0===i?void 0:i.lng},host:v.location,host_url:document.referrer,locale:null===(o=v.globalOptions)||void 0===o?void 0:o.locale,isMobile:h},flags:{isDebugMode:!1},children:(0,X.jsx)(be,{children:(0,X.jsx)("div",{className:"\n flex flex-col flex-1 overflow-hidden box-border\n",children:(0,X.jsxs)("div",{className:"\n overflow-y-auto flex flex-col\n",children:[(0,X.jsx)(G,{title:"string"==typeof(null===(r=v.options)||void 0===r?void 0:r.title)||!1===(null===(d=v.options)||void 0===d?void 0:d.title)?v.options.title:u("title")}),h?(0,X.jsx)(ie,{}):(0,X.jsx)(te,{}),(0,X.jsx)(Pe,{}),(0,X.jsx)(Ie,{})]})})})})})})})}}})}();
|
|
2
|
+
//# sourceMappingURL=LocalDemographics-legacy-BpeV7vKR.js.map
|