@local-logic/sdks-app 1.24.42 → 1.24.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/dist/assets/{Attribution-ClwsOk3e.js → Attribution-D012fWNs.js} +2 -2
  2. package/dist/assets/{Attribution-ClwsOk3e.js.map → Attribution-D012fWNs.js.map} +1 -1
  3. package/dist/assets/{Attribution-legacy-CtNhDTV1.js → Attribution-legacy-DSXG-3Q0.js} +2 -2
  4. package/dist/assets/{Attribution-legacy-CtNhDTV1.js.map → Attribution-legacy-DSXG-3Q0.js.map} +1 -1
  5. package/dist/assets/Cluster-BHQcO6iC-_jL_0N39.js +2 -0
  6. package/dist/assets/{Cluster-BHQcO6iC-BLUKMpub.js.map → Cluster-BHQcO6iC-_jL_0N39.js.map} +1 -1
  7. package/dist/assets/{Cluster-BHQcO6iC-legacy-CP0b8zks.js → Cluster-BHQcO6iC-legacy-3UMx26D5.js} +2 -2
  8. package/dist/assets/{Cluster-BHQcO6iC-legacy-CP0b8zks.js.map → Cluster-BHQcO6iC-legacy-3UMx26D5.js.map} +1 -1
  9. package/dist/assets/{Google-DScXSvYv-6gBja-_g.js → Google-BFAJ84CT-Dh97X1sB.js} +2 -2
  10. package/dist/assets/{Google-DScXSvYv-6gBja-_g.js.map → Google-BFAJ84CT-Dh97X1sB.js.map} +1 -1
  11. package/dist/assets/{Google-DScXSvYv-legacy-Bud-7LK1.js → Google-BFAJ84CT-legacy-D0OGURqq.js} +2 -2
  12. package/dist/assets/{Google-DScXSvYv-legacy-Bud-7LK1.js.map → Google-BFAJ84CT-legacy-D0OGURqq.js.map} +1 -1
  13. package/dist/assets/{Google-qvGtRAuh-D3JlAgXq.js → Google-BS41ufih-Cc3f5UsV.js} +2 -2
  14. package/dist/assets/{Google-qvGtRAuh-D3JlAgXq.js.map → Google-BS41ufih-Cc3f5UsV.js.map} +1 -1
  15. package/dist/assets/{Google-qvGtRAuh-legacy-CMkNx5pn.js → Google-BS41ufih-legacy-BnojXQoy.js} +2 -2
  16. package/dist/assets/{Google-qvGtRAuh-legacy-CMkNx5pn.js.map → Google-BS41ufih-legacy-BnojXQoy.js.map} +1 -1
  17. package/dist/assets/Google-CH7a2yx--CBaNUH_8.js +2 -0
  18. package/dist/assets/{Google-CH7a2yx--B615NdD8.js.map → Google-CH7a2yx--CBaNUH_8.js.map} +1 -1
  19. package/dist/assets/{Google-CH7a2yx--legacy-BUUPS1d_.js → Google-CH7a2yx--legacy-C_ip84Oz.js} +2 -2
  20. package/dist/assets/{Google-CH7a2yx--legacy-BUUPS1d_.js.map → Google-CH7a2yx--legacy-C_ip84Oz.js.map} +1 -1
  21. package/dist/assets/Google-CXGCn-oJ-i9rxhVJh.js +2 -0
  22. package/dist/assets/{Google-CXGCn-oJ-AkqBPqrT.js.map → Google-CXGCn-oJ-i9rxhVJh.js.map} +1 -1
  23. package/dist/assets/{Google-CXGCn-oJ-legacy-wLFeZbs8.js → Google-CXGCn-oJ-legacy-OuENT3oi.js} +2 -2
  24. package/dist/assets/{Google-CXGCn-oJ-legacy-wLFeZbs8.js.map → Google-CXGCn-oJ-legacy-OuENT3oi.js.map} +1 -1
  25. package/dist/assets/Google-DbOLrYJn-bogicaOo.js +2 -0
  26. package/dist/assets/Google-DbOLrYJn-bogicaOo.js.map +1 -0
  27. package/dist/assets/Google-DbOLrYJn-legacy-B95opCm9.js +2 -0
  28. package/dist/assets/Google-DbOLrYJn-legacy-B95opCm9.js.map +1 -0
  29. package/dist/assets/{GridGraph-CA6dQSnE.js → GridGraph-_rWMkwNI.js} +2 -2
  30. package/dist/assets/{GridGraph-CA6dQSnE.js.map → GridGraph-_rWMkwNI.js.map} +1 -1
  31. package/dist/assets/{GridGraph-legacy-C-SnA-yN.js → GridGraph-legacy-CsgF_9Vx.js} +2 -2
  32. package/dist/assets/{GridGraph-legacy-C-SnA-yN.js.map → GridGraph-legacy-CsgF_9Vx.js.map} +1 -1
  33. package/dist/assets/{HouseLine.es-MMviG6cm.js → HouseLine.es-UbY1cmCw.js} +2 -2
  34. package/dist/assets/{HouseLine.es-MMviG6cm.js.map → HouseLine.es-UbY1cmCw.js.map} +1 -1
  35. package/dist/assets/{HouseLine.es-legacy-Cif7XvRo.js → HouseLine.es-legacy-rIusAPcN.js} +2 -2
  36. package/dist/assets/{HouseLine.es-legacy-Cif7XvRo.js.map → HouseLine.es-legacy-rIusAPcN.js.map} +1 -1
  37. package/dist/assets/{IconBase.es-sTzPkmtv.js → IconBase.es-C5evOQSf.js} +1 -1
  38. package/dist/assets/{IconBase.es-sTzPkmtv.js.map → IconBase.es-C5evOQSf.js.map} +1 -1
  39. package/dist/assets/{IconBase.es-legacy-CLUwC2Iu.js → IconBase.es-legacy-jtD2YQt-.js} +1 -1
  40. package/dist/assets/{IconBase.es-legacy-CLUwC2Iu.js.map → IconBase.es-legacy-jtD2YQt-.js.map} +1 -1
  41. package/dist/assets/{LeadCapture-DYBfiSUq.js → LeadCapture-IqeCbA_u.js} +2 -2
  42. package/dist/assets/{LeadCapture-DYBfiSUq.js.map → LeadCapture-IqeCbA_u.js.map} +1 -1
  43. package/dist/assets/{LeadCapture-legacy-B2kUL7l2.js → LeadCapture-legacy-D_miey0j.js} +2 -2
  44. package/dist/assets/{LeadCapture-legacy-B2kUL7l2.js.map → LeadCapture-legacy-D_miey0j.js.map} +1 -1
  45. package/dist/assets/{LocalContent-CdwC5dim.js → LocalContent-DL6Y67Ne.js} +2 -2
  46. package/dist/assets/{LocalContent-CdwC5dim.js.map → LocalContent-DL6Y67Ne.js.map} +1 -1
  47. package/dist/assets/{LocalContent-legacy-is3KMNbp.js → LocalContent-legacy-BBB-ST51.js} +2 -2
  48. package/dist/assets/{LocalContent-legacy-is3KMNbp.js.map → LocalContent-legacy-BBB-ST51.js.map} +1 -1
  49. package/dist/assets/{LocalDemographics-CfkSaIaw.js → LocalDemographics-DcirUh9h.js} +2 -2
  50. package/dist/assets/{LocalDemographics-CfkSaIaw.js.map → LocalDemographics-DcirUh9h.js.map} +1 -1
  51. package/dist/assets/{LocalDemographics-legacy-jYYfhemY.js → LocalDemographics-legacy-rmGYdILu.js} +2 -2
  52. package/dist/assets/{LocalDemographics-legacy-jYYfhemY.js.map → LocalDemographics-legacy-rmGYdILu.js.map} +1 -1
  53. package/dist/assets/{Mapbox-B7oionsm-CxTuYnPt.js → Mapbox-CpLnA607-CKDrFvU5.js} +2 -2
  54. package/dist/assets/{Mapbox-B7oionsm-CxTuYnPt.js.map → Mapbox-CpLnA607-CKDrFvU5.js.map} +1 -1
  55. package/dist/assets/{Mapbox-B7oionsm-legacy-BRIsIA0a.js → Mapbox-CpLnA607-legacy-Bx1JnBMX.js} +2 -2
  56. package/dist/assets/{Mapbox-B7oionsm-legacy-BRIsIA0a.js.map → Mapbox-CpLnA607-legacy-Bx1JnBMX.js.map} +1 -1
  57. package/dist/assets/{Mapbox-DDJ1gHRb-BBMjbLph.js → Mapbox-DDJ1gHRb-BrLhMxW4.js} +2 -2
  58. package/dist/assets/{Mapbox-DDJ1gHRb-BBMjbLph.js.map → Mapbox-DDJ1gHRb-BrLhMxW4.js.map} +1 -1
  59. package/dist/assets/{Mapbox-DDJ1gHRb-legacy-OengExoB.js → Mapbox-DDJ1gHRb-legacy-DtASaFMy.js} +2 -2
  60. package/dist/assets/{Mapbox-DDJ1gHRb-legacy-OengExoB.js.map → Mapbox-DDJ1gHRb-legacy-DtASaFMy.js.map} +1 -1
  61. package/dist/assets/Mapbox-DiD9etYJ-BMtTiGO7.js +2 -0
  62. package/dist/assets/Mapbox-DiD9etYJ-BMtTiGO7.js.map +1 -0
  63. package/dist/assets/Mapbox-DiD9etYJ-legacy-WIywO1-w.js +2 -0
  64. package/dist/assets/Mapbox-DiD9etYJ-legacy-WIywO1-w.js.map +1 -0
  65. package/dist/assets/{Mapbox-DtZmt1D_-Bx6ckAkh.js → Mapbox-DtZmt1D_-Dq1UD7au.js} +2 -2
  66. package/dist/assets/{Mapbox-DtZmt1D_-Bx6ckAkh.js.map → Mapbox-DtZmt1D_-Dq1UD7au.js.map} +1 -1
  67. package/dist/assets/{Mapbox-DtZmt1D_-legacy-CjIWGIob.js → Mapbox-DtZmt1D_-legacy-CXP5-C49.js} +2 -2
  68. package/dist/assets/{Mapbox-DtZmt1D_-legacy-CjIWGIob.js.map → Mapbox-DtZmt1D_-legacy-CXP5-C49.js.map} +1 -1
  69. package/dist/assets/{Mapbox-vp91lH9I-CFYg9mW4.js → Mapbox-u11C3LWs-DuakH8Ji.js} +2 -2
  70. package/dist/assets/{Mapbox-vp91lH9I-CFYg9mW4.js.map → Mapbox-u11C3LWs-DuakH8Ji.js.map} +1 -1
  71. package/dist/assets/{Mapbox-vp91lH9I-legacy-GApHnB0z.js → Mapbox-u11C3LWs-legacy-ChrUMjPl.js} +2 -2
  72. package/dist/assets/{Mapbox-vp91lH9I-legacy-GApHnB0z.js.map → Mapbox-u11C3LWs-legacy-ChrUMjPl.js.map} +1 -1
  73. package/dist/assets/Maptiler-C0oTROMk-Dz6Vkl6m.js +2 -0
  74. package/dist/assets/Maptiler-C0oTROMk-Dz6Vkl6m.js.map +1 -0
  75. package/dist/assets/Maptiler-C0oTROMk-legacy-B6L6FzM1.js +2 -0
  76. package/dist/assets/Maptiler-C0oTROMk-legacy-B6L6FzM1.js.map +1 -0
  77. package/dist/assets/{Maptiler-DJScKW8p-_Xood8h4.js → Maptiler-DJScKW8p-6YGAe8cE.js} +2 -2
  78. package/dist/assets/{Maptiler-DJScKW8p-_Xood8h4.js.map → Maptiler-DJScKW8p-6YGAe8cE.js.map} +1 -1
  79. package/dist/assets/{Maptiler-DJScKW8p-legacy-BLJl42xt.js → Maptiler-DJScKW8p-legacy-DEW3rPcZ.js} +2 -2
  80. package/dist/assets/{Maptiler-DJScKW8p-legacy-BLJl42xt.js.map → Maptiler-DJScKW8p-legacy-DEW3rPcZ.js.map} +1 -1
  81. package/dist/assets/{Maptiler-BQliPE7n-B8SIuLJ2.js → Maptiler-DdeFS4iM-Brs-80yb.js} +2 -2
  82. package/dist/assets/{Maptiler-BQliPE7n-B8SIuLJ2.js.map → Maptiler-DdeFS4iM-Brs-80yb.js.map} +1 -1
  83. package/dist/assets/{Maptiler-BQliPE7n-legacy-Dbs_BWos.js → Maptiler-DdeFS4iM-legacy-Ci9oroQC.js} +2 -2
  84. package/dist/assets/{Maptiler-BQliPE7n-legacy-Dbs_BWos.js.map → Maptiler-DdeFS4iM-legacy-Ci9oroQC.js.map} +1 -1
  85. package/dist/assets/{Maptiler-DqeshLom-DEBJexij.js → Maptiler-DqeshLom-B0jdRE1n.js} +2 -2
  86. package/dist/assets/{Maptiler-DqeshLom-DEBJexij.js.map → Maptiler-DqeshLom-B0jdRE1n.js.map} +1 -1
  87. package/dist/assets/{Maptiler-DqeshLom-legacy-DKFe6w2r.js → Maptiler-DqeshLom-legacy-CurUmtTs.js} +2 -2
  88. package/dist/assets/{Maptiler-DqeshLom-legacy-DKFe6w2r.js.map → Maptiler-DqeshLom-legacy-CurUmtTs.js.map} +1 -1
  89. package/dist/assets/{Maptiler-BtYYeJoo-A8qgmLuQ.js → Maptiler-YjlcPccn-BeECNaQc.js} +2 -2
  90. package/dist/assets/{Maptiler-BtYYeJoo-A8qgmLuQ.js.map → Maptiler-YjlcPccn-BeECNaQc.js.map} +1 -1
  91. package/dist/assets/{Maptiler-BtYYeJoo-legacy-6p_OzxFA.js → Maptiler-YjlcPccn-legacy-DUPM1fwa.js} +2 -2
  92. package/dist/assets/{Maptiler-BtYYeJoo-legacy-6p_OzxFA.js.map → Maptiler-YjlcPccn-legacy-DUPM1fwa.js.map} +1 -1
  93. package/dist/assets/{MarkerIcon-Bc3X9WQk-BiE4oWxC.js → MarkerIcon-Bc3X9WQk-BuSzLTIC.js} +2 -2
  94. package/dist/assets/{MarkerIcon-Bc3X9WQk-BiE4oWxC.js.map → MarkerIcon-Bc3X9WQk-BuSzLTIC.js.map} +1 -1
  95. package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-D006OcWh.js → MarkerIcon-Bc3X9WQk-legacy-0n6adFAI.js} +2 -2
  96. package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-D006OcWh.js.map → MarkerIcon-Bc3X9WQk-legacy-0n6adFAI.js.map} +1 -1
  97. package/dist/assets/{NeighborhoodCard-CjddOmMg.js → NeighborhoodCard-ePSiX1h0.js} +2 -2
  98. package/dist/assets/{NeighborhoodCard-CjddOmMg.js.map → NeighborhoodCard-ePSiX1h0.js.map} +1 -1
  99. package/dist/assets/{NeighborhoodCard-legacy-BXbEUaCk.js → NeighborhoodCard-legacy-B7hL1XOX.js} +2 -2
  100. package/dist/assets/{NeighborhoodCard-legacy-BXbEUaCk.js.map → NeighborhoodCard-legacy-B7hL1XOX.js.map} +1 -1
  101. package/dist/assets/{NeighborhoodCharacteristics-rVjVJZhq.js → NeighborhoodCharacteristics-__nE9rKT.js} +2 -2
  102. package/dist/assets/{NeighborhoodCharacteristics-rVjVJZhq.js.map → NeighborhoodCharacteristics-__nE9rKT.js.map} +1 -1
  103. package/dist/assets/{NeighborhoodCharacteristics-legacy-N-y878TT.js → NeighborhoodCharacteristics-legacy-zcamdTX5.js} +2 -2
  104. package/dist/assets/{NeighborhoodCharacteristics-legacy-N-y878TT.js.map → NeighborhoodCharacteristics-legacy-zcamdTX5.js.map} +1 -1
  105. package/dist/assets/{NeighborhoodDemographics-CS-v8EiF.js → NeighborhoodDemographics-5cGgXnRY.js} +2 -2
  106. package/dist/assets/{NeighborhoodDemographics-CS-v8EiF.js.map → NeighborhoodDemographics-5cGgXnRY.js.map} +1 -1
  107. package/dist/assets/{NeighborhoodDemographics-legacy-Dm5pQwht.js → NeighborhoodDemographics-legacy-c3eDH26X.js} +2 -2
  108. package/dist/assets/{NeighborhoodDemographics-legacy-Dm5pQwht.js.map → NeighborhoodDemographics-legacy-c3eDH26X.js.map} +1 -1
  109. package/dist/assets/{NeighborhoodFeatured-s-u9pUbm.js → NeighborhoodFeatured-DIXhmlRC.js} +2 -2
  110. package/dist/assets/{NeighborhoodFeatured-s-u9pUbm.js.map → NeighborhoodFeatured-DIXhmlRC.js.map} +1 -1
  111. package/dist/assets/{NeighborhoodFeatured-legacy-DFs2mouX.js → NeighborhoodFeatured-legacy-lDme45yC.js} +2 -2
  112. package/dist/assets/{NeighborhoodFeatured-legacy-DFs2mouX.js.map → NeighborhoodFeatured-legacy-lDme45yC.js.map} +1 -1
  113. package/dist/assets/{NeighborhoodHero-BywJZ-xz.js → NeighborhoodHero-Bj4FlQVV.js} +2 -2
  114. package/dist/assets/{NeighborhoodHero-BywJZ-xz.js.map → NeighborhoodHero-Bj4FlQVV.js.map} +1 -1
  115. package/dist/assets/{NeighborhoodHero-legacy-DBXy8A9v.js → NeighborhoodHero-legacy-C6T-qgPK.js} +2 -2
  116. package/dist/assets/{NeighborhoodHero-legacy-DBXy8A9v.js.map → NeighborhoodHero-legacy-C6T-qgPK.js.map} +1 -1
  117. package/dist/assets/{NeighborhoodHighlights-C7wjbeds.js → NeighborhoodHighlights-BBmVnaLl.js} +2 -2
  118. package/dist/assets/{NeighborhoodHighlights-C7wjbeds.js.map → NeighborhoodHighlights-BBmVnaLl.js.map} +1 -1
  119. package/dist/assets/{NeighborhoodHighlights-legacy-DuaIiUeU.js → NeighborhoodHighlights-legacy-B2x36QRC.js} +2 -2
  120. package/dist/assets/{NeighborhoodHighlights-legacy-DuaIiUeU.js.map → NeighborhoodHighlights-legacy-B2x36QRC.js.map} +1 -1
  121. package/dist/assets/{NeighborhoodMap-chAy5ObD.js → NeighborhoodMap-DwMQLhkw.js} +2 -2
  122. package/dist/assets/{NeighborhoodMap-chAy5ObD.js.map → NeighborhoodMap-DwMQLhkw.js.map} +1 -1
  123. package/dist/assets/{NeighborhoodMap-legacy-qKRq45VQ.js → NeighborhoodMap-legacy-CugKbgSp.js} +2 -2
  124. package/dist/assets/{NeighborhoodMap-legacy-qKRq45VQ.js.map → NeighborhoodMap-legacy-CugKbgSp.js.map} +1 -1
  125. package/dist/assets/{NeighborhoodMarketTrends-DyzBmnXU.js → NeighborhoodMarketTrends-COqvs4Fz.js} +3 -3
  126. package/dist/assets/{NeighborhoodMarketTrends-DyzBmnXU.js.map → NeighborhoodMarketTrends-COqvs4Fz.js.map} +1 -1
  127. package/dist/assets/{NeighborhoodMarketTrends-legacy-DflW5bwf.js → NeighborhoodMarketTrends-legacy-DSHDUUH_.js} +2 -2
  128. package/dist/assets/{NeighborhoodMarketTrends-legacy-DflW5bwf.js.map → NeighborhoodMarketTrends-legacy-DSHDUUH_.js.map} +1 -1
  129. package/dist/assets/{NeighborhoodMatch-B0NunmQ1.js → NeighborhoodMatch-GqzEoreu.js} +2 -2
  130. package/dist/assets/{NeighborhoodMatch-B0NunmQ1.js.map → NeighborhoodMatch-GqzEoreu.js.map} +1 -1
  131. package/dist/assets/{NeighborhoodMatch-legacy-C9pmkVI0.js → NeighborhoodMatch-legacy-SGEcOXuf.js} +2 -2
  132. package/dist/assets/{NeighborhoodMatch-legacy-C9pmkVI0.js.map → NeighborhoodMatch-legacy-SGEcOXuf.js.map} +1 -1
  133. package/dist/assets/{NeighborhoodPropertyValueDrivers-pcHUQKLk.js → NeighborhoodPropertyValueDrivers-Cz4cawqR.js} +2 -2
  134. package/dist/assets/{NeighborhoodPropertyValueDrivers-pcHUQKLk.js.map → NeighborhoodPropertyValueDrivers-Cz4cawqR.js.map} +1 -1
  135. package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-CSn26WOI.js → NeighborhoodPropertyValueDrivers-legacy-7gVUrIgh.js} +2 -2
  136. package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-CSn26WOI.js.map → NeighborhoodPropertyValueDrivers-legacy-7gVUrIgh.js.map} +1 -1
  137. package/dist/assets/{NeighborhoodSchools-mOJqjm1x.js → NeighborhoodSchools-D6CPTgGE.js} +2 -2
  138. package/dist/assets/{NeighborhoodSchools-mOJqjm1x.js.map → NeighborhoodSchools-D6CPTgGE.js.map} +1 -1
  139. package/dist/assets/{NeighborhoodSchools-legacy-DZOdDDpP.js → NeighborhoodSchools-legacy-0G_dtI8q.js} +2 -2
  140. package/dist/assets/{NeighborhoodSchools-legacy-DZOdDDpP.js.map → NeighborhoodSchools-legacy-0G_dtI8q.js.map} +1 -1
  141. package/dist/assets/{NeighborhoodShowcase-DB50zUgk.js → NeighborhoodShowcase-CRlKc8OL.js} +2 -2
  142. package/dist/assets/{NeighborhoodShowcase-DB50zUgk.js.map → NeighborhoodShowcase-CRlKc8OL.js.map} +1 -1
  143. package/dist/assets/{NeighborhoodShowcase-legacy-BkNvt6P2.js → NeighborhoodShowcase-legacy-Bjz5_C24.js} +2 -2
  144. package/dist/assets/{NeighborhoodShowcase-legacy-BkNvt6P2.js.map → NeighborhoodShowcase-legacy-Bjz5_C24.js.map} +1 -1
  145. package/dist/assets/{NoDataContent-DMnLpuKS.js → NoDataContent-CTxzT718.js} +2 -2
  146. package/dist/assets/{NoDataContent-DMnLpuKS.js.map → NoDataContent-CTxzT718.js.map} +1 -1
  147. package/dist/assets/{NoDataContent-legacy-V241YjyB.js → NoDataContent-legacy-BWvHzb0g.js} +2 -2
  148. package/dist/assets/{NoDataContent-legacy-V241YjyB.js.map → NoDataContent-legacy-BWvHzb0g.js.map} +1 -1
  149. package/dist/assets/{ResizeWrapper-DWV5t91u.js → ResizeWrapper-DbYmMKOU.js} +2 -2
  150. package/dist/assets/{ResizeWrapper-DWV5t91u.js.map → ResizeWrapper-DbYmMKOU.js.map} +1 -1
  151. package/dist/assets/{ResizeWrapper-legacy-DGnrE5zr.js → ResizeWrapper-legacy-C0ua6RC5.js} +2 -2
  152. package/dist/assets/{ResizeWrapper-legacy-DGnrE5zr.js.map → ResizeWrapper-legacy-C0ua6RC5.js.map} +1 -1
  153. package/dist/assets/{ScoreCardList-BFPj6mZA.js → ScoreCardList-B4NURGgK.js} +2 -2
  154. package/dist/assets/{ScoreCardList-BFPj6mZA.js.map → ScoreCardList-B4NURGgK.js.map} +1 -1
  155. package/dist/assets/{ScoreCardList-legacy-D8n8_vhM.js → ScoreCardList-legacy-BTRPIWUP.js} +2 -2
  156. package/dist/assets/{ScoreCardList-legacy-D8n8_vhM.js.map → ScoreCardList-legacy-BTRPIWUP.js.map} +1 -1
  157. package/dist/assets/{ScoreIcon-legacy-x5Tn3nV1.js → ScoreIcon-legacy-D9igp8MS.js} +2 -2
  158. package/dist/assets/{ScoreIcon-legacy-x5Tn3nV1.js.map → ScoreIcon-legacy-D9igp8MS.js.map} +1 -1
  159. package/dist/assets/{ScoreIcon-e7HkxsIV.js → ScoreIcon-s5-ehfPP.js} +2 -2
  160. package/dist/assets/{ScoreIcon-e7HkxsIV.js.map → ScoreIcon-s5-ehfPP.js.map} +1 -1
  161. package/dist/assets/{Testing--n5Ro0Ek-C9V56Cfj.js → Testing--n5Ro0Ek-Cc3RGltv.js} +2 -2
  162. package/dist/assets/{Testing--n5Ro0Ek-C9V56Cfj.js.map → Testing--n5Ro0Ek-Cc3RGltv.js.map} +1 -1
  163. package/dist/assets/{Testing--n5Ro0Ek-legacy-D_AkmmzN.js → Testing--n5Ro0Ek-legacy-BB0u0086.js} +2 -2
  164. package/dist/assets/{Testing--n5Ro0Ek-legacy-D_AkmmzN.js.map → Testing--n5Ro0Ek-legacy-BB0u0086.js.map} +1 -1
  165. package/dist/assets/{Testing-BNJwzbRK-BsZQEhVn.js → Testing-BNJwzbRK-C1viHx8M.js} +2 -2
  166. package/dist/assets/{Testing-BNJwzbRK-BsZQEhVn.js.map → Testing-BNJwzbRK-C1viHx8M.js.map} +1 -1
  167. package/dist/assets/{Testing-BNJwzbRK-legacy-DWOKVB8F.js → Testing-BNJwzbRK-legacy-XPR_-0Eg.js} +2 -2
  168. package/dist/assets/{Testing-BNJwzbRK-legacy-DWOKVB8F.js.map → Testing-BNJwzbRK-legacy-XPR_-0Eg.js.map} +1 -1
  169. package/dist/assets/{Testing-CoRLhmNT-D1AEkx8H.js → Testing-CoRLhmNT-B4pOjeZH.js} +2 -2
  170. package/dist/assets/{Testing-CoRLhmNT-D1AEkx8H.js.map → Testing-CoRLhmNT-B4pOjeZH.js.map} +1 -1
  171. package/dist/assets/{Testing-CoRLhmNT-legacy-C2PTG7qO.js → Testing-CoRLhmNT-legacy-BFVvx40w.js} +2 -2
  172. package/dist/assets/{Testing-CoRLhmNT-legacy-C2PTG7qO.js.map → Testing-CoRLhmNT-legacy-BFVvx40w.js.map} +1 -1
  173. package/dist/assets/{Testing-DGUeGxdc-ixrV0Uct.js → Testing-DGUeGxdc-CKSlgBDu.js} +2 -2
  174. package/dist/assets/{Testing-DGUeGxdc-ixrV0Uct.js.map → Testing-DGUeGxdc-CKSlgBDu.js.map} +1 -1
  175. package/dist/assets/{Testing-DGUeGxdc-legacy-qdFrcrxK.js → Testing-DGUeGxdc-legacy-B2yBRluh.js} +2 -2
  176. package/dist/assets/{Testing-DGUeGxdc-legacy-qdFrcrxK.js.map → Testing-DGUeGxdc-legacy-B2yBRluh.js.map} +1 -1
  177. package/dist/assets/{Testing-DzWAcbhL-6k6EztCf.js → Testing-DzWAcbhL-B5JOmJod.js} +2 -2
  178. package/dist/assets/{Testing-DzWAcbhL-6k6EztCf.js.map → Testing-DzWAcbhL-B5JOmJod.js.map} +1 -1
  179. package/dist/assets/{Testing-DzWAcbhL-legacy-CVi7-xZq.js → Testing-DzWAcbhL-legacy-20VBltE2.js} +2 -2
  180. package/dist/assets/{Testing-DzWAcbhL-legacy-CVi7-xZq.js.map → Testing-DzWAcbhL-legacy-20VBltE2.js.map} +1 -1
  181. package/dist/assets/{TitleHeader-mQeQYQpJ.js → TitleHeader-Be2YRN93.js} +2 -2
  182. package/dist/assets/{TitleHeader-mQeQYQpJ.js.map → TitleHeader-Be2YRN93.js.map} +1 -1
  183. package/dist/assets/{TitleHeader-legacy-BxGrZ-6z.js → TitleHeader-legacy-CzXSoMFC.js} +2 -2
  184. package/dist/assets/{TitleHeader-legacy-BxGrZ-6z.js.map → TitleHeader-legacy-CzXSoMFC.js.map} +1 -1
  185. package/dist/assets/{Trans-C0JSM2OQ.js → Trans-DntniXa9.js} +2 -2
  186. package/dist/assets/{Trans-C0JSM2OQ.js.map → Trans-DntniXa9.js.map} +1 -1
  187. package/dist/assets/{Trans-legacy-Ce8Vb50C.js → Trans-legacy-B9t4MV_C.js} +2 -2
  188. package/dist/assets/{Trans-legacy-Ce8Vb50C.js.map → Trans-legacy-B9t4MV_C.js.map} +1 -1
  189. package/dist/assets/{ValidateOptions-0362goEF.js → ValidateOptions-BqL9iY9R.js} +2 -2
  190. package/dist/assets/{ValidateOptions-0362goEF.js.map → ValidateOptions-BqL9iY9R.js.map} +1 -1
  191. package/dist/assets/{ValidateOptions-legacy-DzEh45h5.js → ValidateOptions-legacy-BQ69tin-.js} +2 -2
  192. package/dist/assets/{ValidateOptions-legacy-DzEh45h5.js.map → ValidateOptions-legacy-BQ69tin-.js.map} +1 -1
  193. package/dist/assets/constants-BcJ_mS91-kGN6qniT.js +2 -0
  194. package/dist/assets/constants-BcJ_mS91-kGN6qniT.js.map +1 -0
  195. package/dist/assets/constants-BcJ_mS91-legacy-akzQjFeX.js +2 -0
  196. package/dist/assets/constants-BcJ_mS91-legacy-akzQjFeX.js.map +1 -0
  197. package/dist/assets/{context-BrD4AniQ-DZ0ZiGRI.js → context-BrD4AniQ-D7UQulkM.js} +1 -1
  198. package/dist/assets/{context-BrD4AniQ-DZ0ZiGRI.js.map → context-BrD4AniQ-D7UQulkM.js.map} +1 -1
  199. package/dist/assets/{context-BrD4AniQ-legacy-BySS42Wf.js → context-BrD4AniQ-legacy-Ct6QKrhb.js} +1 -1
  200. package/dist/assets/{context-BrD4AniQ-legacy-BySS42Wf.js.map → context-BrD4AniQ-legacy-Ct6QKrhb.js.map} +1 -1
  201. package/dist/assets/{dist-3L6XR49Y.js → dist-C_ktdPsv.js} +2 -2
  202. package/dist/assets/{dist-3L6XR49Y.js.map → dist-C_ktdPsv.js.map} +1 -1
  203. package/dist/assets/{dist-legacy-B55wY-DS.js → dist-legacy-DIwOLBcZ.js} +2 -2
  204. package/dist/assets/{dist-legacy-B55wY-DS.js.map → dist-legacy-DIwOLBcZ.js.map} +1 -1
  205. package/dist/assets/{esm-Be30MpcN-ls4GMpDI.js → esm-Be30MpcN-C7eJiqee.js} +1 -1
  206. package/dist/assets/{esm-Be30MpcN-ls4GMpDI.js.map → esm-Be30MpcN-C7eJiqee.js.map} +1 -1
  207. package/dist/assets/{esm-Be30MpcN-legacy-D8iPI9WH.js → esm-Be30MpcN-legacy-MIXlHUgH.js} +1 -1
  208. package/dist/assets/{esm-Be30MpcN-legacy-D8iPI9WH.js.map → esm-Be30MpcN-legacy-MIXlHUgH.js.map} +1 -1
  209. package/dist/assets/{getMapProviderConfig-CdGY8cWm.js → getMapProviderConfig-D9e8KNYU.js} +3 -3
  210. package/dist/assets/{getMapProviderConfig-CdGY8cWm.js.map → getMapProviderConfig-D9e8KNYU.js.map} +1 -1
  211. package/dist/assets/{getMapProviderConfig-legacy-wmAHunfq.js → getMapProviderConfig-legacy-DVBUhWqR.js} +2 -2
  212. package/dist/assets/{getMapProviderConfig-legacy-wmAHunfq.js.map → getMapProviderConfig-legacy-DVBUhWqR.js.map} +1 -1
  213. package/dist/assets/getPaddedBounds-CbCVe2M3-CYpTak_b.js +2 -0
  214. package/dist/assets/getPaddedBounds-CbCVe2M3-CYpTak_b.js.map +1 -0
  215. package/dist/assets/getPaddedBounds-CbCVe2M3-legacy-1z3vtmVe.js +2 -0
  216. package/dist/assets/getPaddedBounds-CbCVe2M3-legacy-1z3vtmVe.js.map +1 -0
  217. package/dist/assets/{index-CNd7hC6B.js → index-PbHyodiU.js} +3 -3
  218. package/dist/assets/index-PbHyodiU.js.map +1 -0
  219. package/dist/assets/index-legacy-CYps6nGB.js +2 -0
  220. package/dist/assets/index-legacy-CYps6nGB.js.map +1 -0
  221. package/dist/assets/{index.es-CXXRBE7A.js → index.es-DuM-WVhV.js} +2 -2
  222. package/dist/assets/{index.es-CXXRBE7A.js.map → index.es-DuM-WVhV.js.map} +1 -1
  223. package/dist/assets/{index.es-legacy-CAykU5jw.js → index.es-legacy-Cz2m6e4L.js} +2 -2
  224. package/dist/assets/{index.es-legacy-CAykU5jw.js.map → index.es-legacy-Cz2m6e4L.js.map} +1 -1
  225. package/dist/assets/{mapbox-jb8Zev6T-Dc19y3gY.js → mapbox-jb8Zev6T-BgSpiKob.js} +2 -2
  226. package/dist/assets/{mapbox-jb8Zev6T-Dc19y3gY.js.map → mapbox-jb8Zev6T-BgSpiKob.js.map} +1 -1
  227. package/dist/assets/{mapbox-jb8Zev6T-legacy-BeyVAwDw.js → mapbox-jb8Zev6T-legacy-hBjjoWXX.js} +2 -2
  228. package/dist/assets/{mapbox-jb8Zev6T-legacy-BeyVAwDw.js.map → mapbox-jb8Zev6T-legacy-hBjjoWXX.js.map} +1 -1
  229. package/dist/assets/{maplibre-CUYkxr-D-BzuGVu1-.js → maplibre-CUYkxr-D-BJWmGVry.js} +2 -2
  230. package/dist/assets/{maplibre-CUYkxr-D-BzuGVu1-.js.map → maplibre-CUYkxr-D-BJWmGVry.js.map} +1 -1
  231. package/dist/assets/{maplibre-CUYkxr-D-legacy-9NqXov2x.js → maplibre-CUYkxr-D-legacy-BNqtRzVB.js} +2 -2
  232. package/dist/assets/{maplibre-CUYkxr-D-legacy-9NqXov2x.js.map → maplibre-CUYkxr-D-legacy-BNqtRzVB.js.map} +1 -1
  233. package/dist/assets/neighborhood-fallback-CizB5oi9.js.map +1 -1
  234. package/dist/assets/{sdks-Bxf4c2j1.js → sdks-BTkz21XL.js} +2 -2
  235. package/dist/assets/{sdks-Bxf4c2j1.js.map → sdks-BTkz21XL.js.map} +1 -1
  236. package/dist/assets/{sdks-legacy-DYYmSGi_.js → sdks-legacy-3sJ2n28B.js} +2 -2
  237. package/dist/assets/{sdks-legacy-DYYmSGi_.js.map → sdks-legacy-3sJ2n28B.js.map} +1 -1
  238. package/dist/assets/styles-C6SoSE0g-DVodK__e.js +2 -0
  239. package/dist/assets/styles-C6SoSE0g-DVodK__e.js.map +1 -0
  240. package/dist/assets/styles-C6SoSE0g-legacy-DQucoUvA.js +2 -0
  241. package/dist/assets/styles-C6SoSE0g-legacy-DQucoUvA.js.map +1 -0
  242. package/dist/assets/{styles-CJwaJsrY-B7fRLA0K.js → styles-CJwaJsrY-BTp6ht1Q.js} +1 -1
  243. package/dist/assets/{styles-CJwaJsrY-B7fRLA0K.js.map → styles-CJwaJsrY-BTp6ht1Q.js.map} +1 -1
  244. package/dist/assets/{styles-CJwaJsrY-legacy-DpdECtH-.js → styles-CJwaJsrY-legacy-DDFkoq39.js} +1 -1
  245. package/dist/assets/{styles-CJwaJsrY-legacy-DpdECtH-.js.map → styles-CJwaJsrY-legacy-DDFkoq39.js.map} +1 -1
  246. package/dist/assets/{useDemographicsData-BvaNug6u.js → useDemographicsData-DKScK522.js} +2 -2
  247. package/dist/assets/{useDemographicsData-BvaNug6u.js.map → useDemographicsData-DKScK522.js.map} +1 -1
  248. package/dist/assets/{useDemographicsData-legacy-Ce1DyoWD.js → useDemographicsData-legacy-BsoUaI9P.js} +2 -2
  249. package/dist/assets/{useDemographicsData-legacy-Ce1DyoWD.js.map → useDemographicsData-legacy-BsoUaI9P.js.map} +1 -1
  250. package/dist/assets/{useGeographies-PyhHBRG7.js → useGeographies-DejQbRC9.js} +2 -2
  251. package/dist/assets/{useGeographies-PyhHBRG7.js.map → useGeographies-DejQbRC9.js.map} +1 -1
  252. package/dist/assets/{useGeographies-legacy-D9GtGYxP.js → useGeographies-legacy-B5ciev2M.js} +2 -2
  253. package/dist/assets/{useGeographies-legacy-D9GtGYxP.js.map → useGeographies-legacy-B5ciev2M.js.map} +1 -1
  254. package/dist/assets/{useIsMobile-CFx2Xa3X.js → useIsMobile-Co5SddxR.js} +2 -2
  255. package/dist/assets/{useIsMobile-CFx2Xa3X.js.map → useIsMobile-Co5SddxR.js.map} +1 -1
  256. package/dist/assets/{useIsMobile-legacy-CAXdJOlD.js → useIsMobile-legacy-B53LlWR8.js} +2 -2
  257. package/dist/assets/{useIsMobile-legacy-CAXdJOlD.js.map → useIsMobile-legacy-B53LlWR8.js.map} +1 -1
  258. package/dist/assets/{useLocation-CgVyB4mN.js → useLocation-DUSQPRn5.js} +2 -2
  259. package/dist/assets/{useLocation-CgVyB4mN.js.map → useLocation-DUSQPRn5.js.map} +1 -1
  260. package/dist/assets/{useLocation-legacy-CoN_4aWO.js → useLocation-legacy-CYzO18ij.js} +2 -2
  261. package/dist/assets/{useLocation-legacy-CoN_4aWO.js.map → useLocation-legacy-CYzO18ij.js.map} +1 -1
  262. package/dist/assets/{useProfiles-CleTbooi.js → useProfiles-Dv9s6TWw.js} +2 -2
  263. package/dist/assets/{useProfiles-CleTbooi.js.map → useProfiles-Dv9s6TWw.js.map} +1 -1
  264. package/dist/assets/{useProfiles-legacy-CLlZc_oV.js → useProfiles-legacy-DF0NXWwe.js} +2 -2
  265. package/dist/assets/{useProfiles-legacy-CLlZc_oV.js.map → useProfiles-legacy-DF0NXWwe.js.map} +1 -1
  266. package/dist/assets/{useSchools-CKXVMLym.js → useSchools-Dqdy1J-D.js} +2 -2
  267. package/dist/assets/{useSchools-CKXVMLym.js.map → useSchools-Dqdy1J-D.js.map} +1 -1
  268. package/dist/assets/{useSchools-legacy-BvZM00mn.js → useSchools-legacy-CCHNqc2P.js} +2 -2
  269. package/dist/assets/{useSchools-legacy-BvZM00mn.js.map → useSchools-legacy-CCHNqc2P.js.map} +1 -1
  270. package/dist/assets/{useScores-BYLlfjJr.js → useScores-C4T2-LUO.js} +2 -2
  271. package/dist/assets/{useScores-BYLlfjJr.js.map → useScores-C4T2-LUO.js.map} +1 -1
  272. package/dist/assets/{useScores-legacy-BtklhLy-.js → useScores-legacy-BludORUw.js} +2 -2
  273. package/dist/assets/{useScores-legacy-BtklhLy-.js.map → useScores-legacy-BludORUw.js.map} +1 -1
  274. package/dist/assets/utils-DuZH7Cmm-CGFseyIn.js +2 -0
  275. package/dist/assets/utils-DuZH7Cmm-CGFseyIn.js.map +1 -0
  276. package/dist/assets/utils-DuZH7Cmm-legacy-vOQGld7w.js +2 -0
  277. package/dist/assets/utils-DuZH7Cmm-legacy-vOQGld7w.js.map +1 -0
  278. package/dist/index.html +2 -2
  279. package/dist/types/context/stateManager/index.d.ts.map +1 -1
  280. package/dist/types/context/stateManager/index.js +50 -3
  281. package/dist/types/context/stateManager/index.js.map +1 -1
  282. package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/SurveyTriggerProvider/index.test.js +11 -9
  283. package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/SurveyTriggerProvider/index.test.js.map +1 -1
  284. package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/index.test.js +19 -5
  285. package/dist/types/sdks/LocalContent/hooks/useSurveyTrigger/index.test.js.map +1 -1
  286. package/dist/types/sdks/NeighborhoodMap/constants.d.ts +1 -1
  287. package/dist/types/sdks/NeighborhoodMap/constants.js +1 -1
  288. package/dist/types/utils/errorTracker/index.d.ts.map +1 -1
  289. package/dist/types/utils/errorTracker/index.js +6 -5
  290. package/dist/types/utils/errorTracker/index.js.map +1 -1
  291. package/dist/types/utils/normalizeLocale/index.d.ts +18 -0
  292. package/dist/types/utils/normalizeLocale/index.d.ts.map +1 -0
  293. package/dist/types/utils/normalizeLocale/index.js +24 -0
  294. package/dist/types/utils/normalizeLocale/index.js.map +1 -0
  295. package/dist/types/utils/normalizeLocale/index.test.d.ts +2 -0
  296. package/dist/types/utils/normalizeLocale/index.test.d.ts.map +1 -0
  297. package/dist/types/utils/normalizeLocale/index.test.js +35 -0
  298. package/dist/types/utils/normalizeLocale/index.test.js.map +1 -0
  299. package/package.json +2 -2
  300. package/dist/assets/Cluster-BHQcO6iC-BLUKMpub.js +0 -2
  301. package/dist/assets/Google-CH7a2yx--B615NdD8.js +0 -2
  302. package/dist/assets/Google-CXGCn-oJ-AkqBPqrT.js +0 -2
  303. package/dist/assets/Google-D1kMMDIv-BsfRv65Q.js +0 -2
  304. package/dist/assets/Google-D1kMMDIv-BsfRv65Q.js.map +0 -1
  305. package/dist/assets/Google-D1kMMDIv-legacy-VjXA4xrw.js +0 -2
  306. package/dist/assets/Google-D1kMMDIv-legacy-VjXA4xrw.js.map +0 -1
  307. package/dist/assets/Mapbox-CIislOVu-DF1r9xj3.js +0 -2
  308. package/dist/assets/Mapbox-CIislOVu-DF1r9xj3.js.map +0 -1
  309. package/dist/assets/Mapbox-CIislOVu-legacy-BL-N58pQ.js +0 -2
  310. package/dist/assets/Mapbox-CIislOVu-legacy-BL-N58pQ.js.map +0 -1
  311. package/dist/assets/Maptiler-Cy2r6w4G-SVyBwt0g.js +0 -2
  312. package/dist/assets/Maptiler-Cy2r6w4G-SVyBwt0g.js.map +0 -1
  313. package/dist/assets/Maptiler-Cy2r6w4G-legacy-Bhbgroyv.js +0 -2
  314. package/dist/assets/Maptiler-Cy2r6w4G-legacy-Bhbgroyv.js.map +0 -1
  315. package/dist/assets/constants-DOpa8YMW-CAHGepUD.js +0 -2
  316. package/dist/assets/constants-DOpa8YMW-CAHGepUD.js.map +0 -1
  317. package/dist/assets/constants-DOpa8YMW-legacy-TnabVEaS.js +0 -2
  318. package/dist/assets/constants-DOpa8YMW-legacy-TnabVEaS.js.map +0 -1
  319. package/dist/assets/esm-k7KI3vER-DWALg7MX.js +0 -2
  320. package/dist/assets/esm-k7KI3vER-DWALg7MX.js.map +0 -1
  321. package/dist/assets/esm-k7KI3vER-legacy-DjAkR8OT.js +0 -2
  322. package/dist/assets/esm-k7KI3vER-legacy-DjAkR8OT.js.map +0 -1
  323. package/dist/assets/index-CNd7hC6B.js.map +0 -1
  324. package/dist/assets/index-legacy-C3WMF-is.js +0 -2
  325. package/dist/assets/index-legacy-C3WMF-is.js.map +0 -1
  326. package/dist/assets/styles-hx5_Dz4D-CjeaMkGu.js +0 -2
  327. package/dist/assets/styles-hx5_Dz4D-CjeaMkGu.js.map +0 -1
  328. package/dist/assets/styles-hx5_Dz4D-legacy-CNN4CNPX.js +0 -2
  329. package/dist/assets/styles-hx5_Dz4D-legacy-CNN4CNPX.js.map +0 -1
  330. package/dist/assets/utils-CjIvvA5e-DRv4kcQu.js +0 -2
  331. package/dist/assets/utils-CjIvvA5e-DRv4kcQu.js.map +0 -1
  332. package/dist/assets/utils-CjIvvA5e-legacy-BArgSH63.js +0 -2
  333. package/dist/assets/utils-CjIvvA5e-legacy-BArgSH63.js.map +0 -1
@@ -1,2 +1,2 @@
1
- !function(){const e=["children"];function t(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function o(e){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?t(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function i(e,t,o){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-DYYmSGi_.js","./getMapProviderConfig-legacy-wmAHunfq.js","./index-legacy-C3WMF-is.js","./index.es-legacy-CAykU5jw.js","./useGeographies-legacy-D9GtGYxP.js","./useResponsiveBreakpoints-legacy-CHMcuyvR.js","./Attribution-legacy-CtNhDTV1.js","./globals-legacy-BkBmZmLf.js","./ValidateOptions-legacy-DzEh45h5.js","./useIsMobile-legacy-CAXdJOlD.js"],function(t,i){var r,n,l,a,s,c,d,u,p,g,v,m,y,h,f,b,k,j,C,O,_,P,I,E,x,M,A,L,D,w,S,K,N,R,G,T,z,V,$,F,B,W,H,Y,q,U;function Z(){const{geography:e,activeMarkerDetails:t}=F(),o=(0,N.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||W,[]),i=(0,N.useMemo)(()=>{const t=[];if(!(void 0===(null==e?void 0:e.geometry)||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{t.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:o},{type:"line",color:o}],geometry:[e]})}),t},[e,o]),r=(0,N.useMemo)(()=>{var e;const o=t;if(void 0===(null==o?void 0:o.catchments)||0===(null===(e=o.catchments)||void 0===e?void 0:e.length))return;const i=[];return o.catchments.forEach((e,t)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,o)=>{i.push({key:`school-catchment-${t}-geom-${o}`,layer:[{type:"fill",color:H},{type:"line",color:H}],geometry:[e]})})}),i},[t]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(f.Layers,{sources:i}),(0,V.jsx)(f.Layers,{sources:r})]})}function J(){const e=m(),{isLoading:t,activePoiCategory:o,markersData:i,handleMarkerClick:r}=F(),n=(0,N.useMemo)(()=>{if(void 0!==o)return C[o]},[o]),l=(0,N.useMemo)(()=>void 0===o?[]:Array.from((i||[]).map(e=>({id:k(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:n})).reduce((e,t)=>(e.set(t.id,t),e),new Map).values()),[i,n,o]);return(0,V.jsx)(f.Markers,{isLoading:t,markers:l,clusterIcon:n,onClick:t=>{if(r(t),!o||!t)return;const i={category:o};t.markers.length>1?(i.isCluster=!0,i.clusterSize=t.markers.length,i.lat=t.latitude,i.lng=t.longitude):1===t.markers.length&&Object.entries(t.markers[0]).forEach(([e,t])=>{if("boolean"==typeof t||"string"==typeof t||"number"==typeof t){if("id"===e)return;i[e]=t}}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})}})}function Q(){const e=m(),{activePoiCategory:t,activeMarker:o,activeMarkerDetails:i,handleMarkerClick:r,showSchoolRatings:n}=F(),l=o=>{if(!t||!i)return;const r={category:t};Object.entries(i).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(r[e]=t)}),r.clickedUrl=o,e.postEvent({eventType:R.POI_LINK_CLICKED,eventAttributes:Object.entries(r).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_LINK_CLICKED,eventAttributes:r})};return(0,V.jsxs)(f.Popup,{latitude:null==o?void 0:o.latitude,longitude:null==o?void 0:o.longitude,onClose:()=>r(void 0),children:[(0,V.jsx)(b,{activeMarker:o,onMarkerSelected:o=>{if(r({id:o.id,latitude:o.latitude,longitude:o.longitude,markers:[o]}),!t)return;const i={category:t};Object.entries(o).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(i[e]=t)}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})},onClose:r}),(0,V.jsx)(j,{marker:i,poiCategory:t,onLocationLinkClick:l,onSchoolLinkClick:l,onClose:r,showSchoolRatings:n})]})}function X(t){var i,r,n;let{children:l}=t,a=function(e,t){if(null==e)return{};var o,i,r=function(e,t){if(null==e)return{};var o={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;o[i]=e[i]}return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)o=n[i],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(t,e);const s=D(),{locale:c,map:d,activeMarker:u,geography:p}=F(),g=(0,N.useMemo)(()=>{var e,t,o;return O(null===(e=d.mapProvider)||void 0===e?void 0:e.name,null===(t=d.mapProvider)||void 0===t?void 0:t.key,null===(o=d.mapProvider)||void 0===o?void 0:o.theme)},[null===(i=d.mapProvider)||void 0===i?void 0:i.name,null===(r=d.mapProvider)||void 0===r?void 0:r.key,null===(n=d.mapProvider)||void 0===n?void 0:n.theme]),v=(0,N.useMemo)(()=>{if(void 0===p||null==p||!p.geometry)return;const e=p.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[p]);return(0,V.jsxs)("div",o(o({className:Y},a),{},{children:[void 0!==p&&(0,V.jsx)(f.Root,{locale:c,mapProvider:g,mapPadding:T[s.sm?"mobile":"desktop"],locationBoundary:v,center:{latitude:null==p?void 0:p.centroid.lat,longitude:null==p?void 0:p.centroid.lng},zoom:d.zoom,minZoom:6,maxZoom:17,zoomPosition:s.sm?"bottom-right":void 0,pitch:d.pitch,bearing:d.bearing,cooperativeGestures:d.cooperativeGestures,activeMarker:u,children:(0,V.jsxs)(f.BaseMap,{children:[(0,V.jsx)(Z,{}),(0,V.jsx)(J,{}),(0,V.jsx)(Q,{})]})}),l]}))}return{setters:[function(e){r=e.a},function(e){n=e.l},function(e){l=e.a,a=e.d,s=e.f,c=e.g,d=e.m,u=e.n,p=e.o,g=e.p,v=e.r,m=e.s,y=e.t,h=e.u},function(e){f=e.c,b=e.i,k=e.l,j=e.n,C=e.o,O=e.t,_=e.u},function(e){P=e._t,I=e.q,E=e.r,x=e.t,M=e.vt},function(e){A=e.t},function(e){L=e.t},function(e){D=e.t},function(e){w=e.t},function(e){},function(e){S=e.t},function(e){K=e.t}],execute:function(){N=r(n(),1),R=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),G=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),T={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},z=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],V=I(),$=N.createContext({}),F=()=>(0,N.useContext)($),B=({children:e})=>{var t,o,i,r,n,l,a,s,c,d,u;const{sdkState:p}=x(),g=(null===(t=p.globalOptions)||void 0===t?void 0:t.locale)||"en",v=m(),[y,h]=(0,N.useState)(),[f,b]=(0,N.useState)();E(()=>{v.postEvent({eventType:R.SDK_VIEWED,eventAttributes:[{label:"default_category",data:f}]}),v.trackAnalyticsEvent({eventName:G.SDK_VIEWED,eventAttributes:{ll_default_category:f}})});const{isLoading:j,data:C}=L({geogID:null===(o=p.options)||void 0===o?void 0:o.geographyId,location:{lat:null===(i=p.options)||void 0===i?void 0:i.lat,lng:null===(r=p.options)||void 0===r?void 0:r.lng},include:"geometry"}),{geographyId:O,geography:I}=(0,N.useMemo)(()=>{var e,t;const o=Object.entries(C||{});return{geographyId:null===(e=o[0])||void 0===e?void 0:e[0],geography:null===(t=o[0])||void 0===t?void 0:t[1]}},[j,C]),{data:M,isLoading:A}=_({geogId:O,limit:500,categories:f?[f]:void 0}),D=(0,N.useMemo)(()=>[].concat(...Object.values(M||{})),[M]),w=(0,N.useCallback)(e=>{(null==y?void 0:y.latitude)!==(null==e?void 0:e.latitude)||(null==y?void 0:y.longitude)!==(null==e?void 0:e.longitude)?h(e):h(void 0)},[y]),S=(0,N.useMemo)(()=>D&&y&&1===y.markers.length&&D.find(e=>y.markers[0].id===k(e.lat,e.lng,e.name))||null,[y,D]),K=(0,N.useMemo)(()=>j||A,[j,A]);return(0,V.jsx)($.Provider,{value:{locale:g,isLoading:K,map:{mapProvider:null===(n=p.options)||void 0===n?void 0:n.mapProvider,zoom:null===(l=p.options)||void 0===l?void 0:l.zoom,pitch:null===(a=p.options)||void 0===a?void 0:a.pitch,bearing:null===(s=p.options)||void 0===s?void 0:s.bearing,cooperativeGestures:null===(c=p.options)||void 0===c?void 0:c.cooperativeGestures},geography:I,activeMarker:y,activeMarkerDetails:S,handleMarkerClick:w,activePoiCategory:f,onSelectPoiCategory:e=>{P.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),b(f===e?void 0:e)},markersData:D,hideAttribution:null===(d=p.options)||void 0===d?void 0:d.hideAttribution,showSchoolRatings:null===(u=p.options)||void 0===u?void 0:u.showSchoolRatings},children:e})},W="#008491",H="#9333ea",Y="relative w-full overflow-hidden grow",q=()=>{const{t:e}=c(["neighborhoodMap","common"]),t=M(),o=m(),{locale:i,handleMarkerClick:r,activePoiCategory:n,onSelectPoiCategory:l,hideAttribution:a}=F(),[s,d]=(0,N.useState)();(0,N.useEffect)(()=>{r(void 0),d(n)},[n]);const u=(0,N.useMemo)(()=>z.map(e=>({key:e,icon:C[e]})),[t]),p=e=>{l(e),o.postEvent({eventType:R.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),o.trackAnalyticsEvent({eventName:G.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},g=e=>{d(s===e?void 0:e)};return(0,V.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,V.jsxs)(A.Root,{children:[(0,V.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,V.jsx)(A.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:u.map(({key:t,icon:o})=>(0,V.jsx)(A.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===n,onSelectFilter:p},`category-${t}`))}),(0,V.jsx)(A.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,V.jsx)(A.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{l(void 0)},onApply:()=>{l(s)},children:u.map(({key:t,icon:o})=>(0,V.jsx)(A.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===s,onSelectFilter:g},`dialog-category-${t}`))})]}),(0,V.jsx)(X,{}),(0,V.jsx)(w,{sdkName:"neighborhood-map",locale:i,isHidden:a})]})},U=h({theme:s().oneOf(["day","night"]).optional(),lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),zoom:a().optional(),pitch:a().optional(),bearing:a().optional(),cooperativeGestures:g().optional(),mapProvider:d().optional(),hideAttribution:g().optional(),showSchoolRatings:g().optional()}).noUnknown(!0),p(u.neighborhoodWrap.key),t("default",()=>{var e,t,o,i,r,n,a;const{sdkState:s}=x(),c=K(),d=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",p=(0,N.useMemo)(()=>{var e,t,o,i;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=s.options)||void 0===t?void 0:t.geographyId}:{lat:null===(o=s.options)||void 0===o?void 0:o.lat,lng:null===(i=s.options)||void 0===i?void 0:i.lng}},[null===(t=s.options)||void 0===t?void 0:t.lat,null===(o=s.options)||void 0===o?void 0:o.lng,null===(i=s.options)||void 0===i?void 0:i.geographyId]);return(0,V.jsx)(S,{sdk:"Neighborhood Map",schema:U,options:s.options,children:(0,V.jsx)(v,{environment:null===(r=s.globalOptions)||void 0===r||null===(r=r.environment)||void 0===r?void 0:r.api,apiKey:s.apiKey,appearance:null===(n=s.globalOptions)||void 0===n?void 0:n.appearance,locale:null===(a=s.globalOptions)||void 0===a?void 0:a.locale,product:y.NEIGHBORHOOD_MAP,children:(0,V.jsx)(l,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:u.neighborhoodWrap,meta:{clientId:s.clientId,productName:y.NEIGHBORHOOD_MAP,productVersion:"1.24.42"},attributes:{location:p,host:s.location,host_url:document.referrer,locale:d,isMobile:c},flags:{isDebugMode:!1},children:(0,V.jsx)(B,{children:(0,V.jsx)(q,{})})})})})})}}})}();
2
- //# sourceMappingURL=NeighborhoodMap-legacy-qKRq45VQ.js.map
1
+ !function(){const e=["children"];function t(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function o(e){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?t(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function i(e,t,o){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var i=o.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-3sJ2n28B.js","./getMapProviderConfig-legacy-DVBUhWqR.js","./index-legacy-CYps6nGB.js","./index.es-legacy-Cz2m6e4L.js","./useGeographies-legacy-B5ciev2M.js","./useResponsiveBreakpoints-legacy-CHMcuyvR.js","./Attribution-legacy-DSXG-3Q0.js","./globals-legacy-BkBmZmLf.js","./ValidateOptions-legacy-BQ69tin-.js","./useIsMobile-legacy-B53LlWR8.js"],function(t,i){var r,n,l,a,s,c,d,u,p,g,v,m,y,h,f,b,k,j,C,O,_,P,I,E,x,M,A,L,D,w,S,K,N,R,G,T,z,V,$,F,B,W,H,Y,q,U;function Z(){const{geography:e,activeMarkerDetails:t}=F(),o=(0,N.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue("--ll-colors-primary-100")||W,[]),i=(0,N.useMemo)(()=>{const t=[];if(!(void 0===(null==e?void 0:e.geometry)||Array.isArray(e.geometry)&&0===e.geometry.length))return e.geometry.forEach((e,i)=>{t.push({key:`neighborhood-geometry-${i}`,layer:[{type:"fill",color:o},{type:"line",color:o}],geometry:[e]})}),t},[e,o]),r=(0,N.useMemo)(()=>{var e;const o=t;if(void 0===(null==o?void 0:o.catchments)||0===(null===(e=o.catchments)||void 0===e?void 0:e.length))return;const i=[];return o.catchments.forEach((e,t)=>{Array.isArray(e.geometry)&&e.geometry.length>0&&e.geometry.forEach((e,o)=>{i.push({key:`school-catchment-${t}-geom-${o}`,layer:[{type:"fill",color:H},{type:"line",color:H}],geometry:[e]})})}),i},[t]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(f.Layers,{sources:i}),(0,V.jsx)(f.Layers,{sources:r})]})}function J(){const e=m(),{isLoading:t,activePoiCategory:o,markersData:i,handleMarkerClick:r}=F(),n=(0,N.useMemo)(()=>{if(void 0!==o)return C[o]},[o]),l=(0,N.useMemo)(()=>void 0===o?[]:Array.from((i||[]).map(e=>({id:k(e.lat,e.lng,e.name),latitude:e.lat,longitude:e.lng,name:e.name,icon:n})).reduce((e,t)=>(e.set(t.id,t),e),new Map).values()),[i,n,o]);return(0,V.jsx)(f.Markers,{isLoading:t,markers:l,clusterIcon:n,onClick:t=>{if(r(t),!o||!t)return;const i={category:o};t.markers.length>1?(i.isCluster=!0,i.clusterSize=t.markers.length,i.lat=t.latitude,i.lng=t.longitude):1===t.markers.length&&Object.entries(t.markers[0]).forEach(([e,t])=>{if("boolean"==typeof t||"string"==typeof t||"number"==typeof t){if("id"===e)return;i[e]=t}}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})}})}function Q(){const e=m(),{activePoiCategory:t,activeMarker:o,activeMarkerDetails:i,handleMarkerClick:r,showSchoolRatings:n}=F(),l=o=>{if(!t||!i)return;const r={category:t};Object.entries(i).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(r[e]=t)}),r.clickedUrl=o,e.postEvent({eventType:R.POI_LINK_CLICKED,eventAttributes:Object.entries(r).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_LINK_CLICKED,eventAttributes:r})};return(0,V.jsxs)(f.Popup,{latitude:null==o?void 0:o.latitude,longitude:null==o?void 0:o.longitude,onClose:()=>r(void 0),children:[(0,V.jsx)(b,{activeMarker:o,onMarkerSelected:o=>{if(r({id:o.id,latitude:o.latitude,longitude:o.longitude,markers:[o]}),!t)return;const i={category:t};Object.entries(o).forEach(([e,t])=>{"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t||(i[e]=t)}),e.postEvent({eventType:R.POI_CLICKED,eventAttributes:Object.entries(i).map(([e,t])=>({label:e,data:t}))}),e.trackAnalyticsEvent({eventName:G.POI_CLICKED,eventAttributes:i})},onClose:r}),(0,V.jsx)(j,{marker:i,poiCategory:t,onLocationLinkClick:l,onSchoolLinkClick:l,onClose:r,showSchoolRatings:n})]})}function X(t){var i,r,n;let{children:l}=t,a=function(e,t){if(null==e)return{};var o,i,r=function(e,t){if(null==e)return{};var o={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;o[i]=e[i]}return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i<n.length;i++)o=n[i],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}(t,e);const s=D(),{locale:c,map:d,activeMarker:u,geography:p}=F(),g=(0,N.useMemo)(()=>{var e,t,o;return O(null===(e=d.mapProvider)||void 0===e?void 0:e.name,null===(t=d.mapProvider)||void 0===t?void 0:t.key,null===(o=d.mapProvider)||void 0===o?void 0:o.theme)},[null===(i=d.mapProvider)||void 0===i?void 0:i.name,null===(r=d.mapProvider)||void 0===r?void 0:r.key,null===(n=d.mapProvider)||void 0===n?void 0:n.theme]),v=(0,N.useMemo)(()=>{if(void 0===p||null==p||!p.geometry)return;const e=p.geometry.flatMap(e=>e[0]||[]);return e&&0!==e.length?e.map(e=>[e[1],e[0]]):void 0},[p]);return(0,V.jsxs)("div",o(o({className:Y},a),{},{children:[void 0!==p&&(0,V.jsx)(f.Root,{locale:c,mapProvider:g,mapPadding:T[s.sm?"mobile":"desktop"],locationBoundary:v,center:{latitude:null==p?void 0:p.centroid.lat,longitude:null==p?void 0:p.centroid.lng},zoom:d.zoom,minZoom:2,maxZoom:17,zoomPosition:s.sm?"bottom-right":void 0,pitch:d.pitch,bearing:d.bearing,cooperativeGestures:d.cooperativeGestures,activeMarker:u,children:(0,V.jsxs)(f.BaseMap,{children:[(0,V.jsx)(Z,{}),(0,V.jsx)(J,{}),(0,V.jsx)(Q,{})]})}),l]}))}return{setters:[function(e){r=e.a},function(e){n=e.l},function(e){l=e.a,a=e.d,s=e.f,c=e.g,d=e.m,u=e.n,p=e.o,g=e.p,v=e.r,m=e.s,y=e.t,h=e.u},function(e){f=e.c,b=e.i,k=e.l,j=e.n,C=e.o,O=e.t,_=e.u},function(e){P=e._t,I=e.q,E=e.r,x=e.t,M=e.vt},function(e){A=e.t},function(e){L=e.t},function(e){D=e.t},function(e){w=e.t},function(e){},function(e){S=e.t},function(e){K=e.t}],execute:function(){N=r(n(),1),R=function(e){return e.SDK_VIEWED="neighborhood-map-Viewed",e.CATEGORY_CLICKED="neighborhood-map-Category-Clicked",e.POI_CLICKED="neighborhood-map-Poi-Clicked",e.POI_LINK_CLICKED="neighborhood-map-Poi-Link-Clicked",e}({}),G=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_CLICKED="category_clicked",e.POI_CLICKED="poi_clicked",e.POI_LINK_CLICKED="poi_link_clicked",e}({}),T={desktop:{top:30,bottom:30,left:30,right:30},mobile:{top:15,bottom:15,left:15,right:15}},z=["primary_schools","high_schools","restaurants","groceries","groceries_specialized","non_food_shops","nightlife","cafes","daycares","bus_stops","rapid_transit_stations","train_stations","parks","fitness","sport_facilities","health_care","pet_care","car_fueling_stations","art_culture_science","home_improvement","personal_care"],V=I(),$=N.createContext({}),F=()=>(0,N.useContext)($),B=({children:e})=>{var t,o,i,r,n,l,a,s,c,d,u;const{sdkState:p}=x(),g=(null===(t=p.globalOptions)||void 0===t?void 0:t.locale)||"en",v=m(),[y,h]=(0,N.useState)(),[f,b]=(0,N.useState)();E(()=>{v.postEvent({eventType:R.SDK_VIEWED,eventAttributes:[{label:"default_category",data:f}]}),v.trackAnalyticsEvent({eventName:G.SDK_VIEWED,eventAttributes:{ll_default_category:f}})});const{isLoading:j,data:C}=L({geogID:null===(o=p.options)||void 0===o?void 0:o.geographyId,location:{lat:null===(i=p.options)||void 0===i?void 0:i.lat,lng:null===(r=p.options)||void 0===r?void 0:r.lng},include:"geometry"}),{geographyId:O,geography:I}=(0,N.useMemo)(()=>{var e,t;const o=Object.entries(C||{});return{geographyId:null===(e=o[0])||void 0===e?void 0:e[0],geography:null===(t=o[0])||void 0===t?void 0:t[1]}},[j,C]),{data:M,isLoading:A}=_({geogId:O,limit:500,categories:f?[f]:void 0}),D=(0,N.useMemo)(()=>[].concat(...Object.values(M||{})),[M]),w=(0,N.useCallback)(e=>{(null==y?void 0:y.latitude)!==(null==e?void 0:e.latitude)||(null==y?void 0:y.longitude)!==(null==e?void 0:e.longitude)?h(e):h(void 0)},[y]),S=(0,N.useMemo)(()=>D&&y&&1===y.markers.length&&D.find(e=>y.markers[0].id===k(e.lat,e.lng,e.name))||null,[y,D]),K=(0,N.useMemo)(()=>j||A,[j,A]);return(0,V.jsx)($.Provider,{value:{locale:g,isLoading:K,map:{mapProvider:null===(n=p.options)||void 0===n?void 0:n.mapProvider,zoom:null===(l=p.options)||void 0===l?void 0:l.zoom,pitch:null===(a=p.options)||void 0===a?void 0:a.pitch,bearing:null===(s=p.options)||void 0===s?void 0:s.bearing,cooperativeGestures:null===(c=p.options)||void 0===c?void 0:c.cooperativeGestures},geography:I,activeMarker:y,activeMarkerDetails:S,handleMarkerClick:w,activePoiCategory:f,onSelectPoiCategory:e=>{P.addBreadCrumb("NeighborhoodMapProvider","handleSelectPoiCategory",{category:e}),b(f===e?void 0:e)},markersData:D,hideAttribution:null===(d=p.options)||void 0===d?void 0:d.hideAttribution,showSchoolRatings:null===(u=p.options)||void 0===u?void 0:u.showSchoolRatings},children:e})},W="#008491",H="#9333ea",Y="relative w-full overflow-hidden grow",q=()=>{const{t:e}=c(["neighborhoodMap","common"]),t=M(),o=m(),{locale:i,handleMarkerClick:r,activePoiCategory:n,onSelectPoiCategory:l,hideAttribution:a}=F(),[s,d]=(0,N.useState)();(0,N.useEffect)(()=>{r(void 0),d(n)},[n]);const u=(0,N.useMemo)(()=>z.map(e=>({key:e,icon:C[e]})),[t]),p=e=>{l(e),o.postEvent({eventType:R.CATEGORY_CLICKED,eventAttributes:[{label:"category",data:e}]}),o.trackAnalyticsEvent({eventName:G.CATEGORY_CLICKED,eventAttributes:{ll_category:e}})},g=e=>{d(s===e?void 0:e)};return(0,V.jsxs)("div",{className:"relative bg-base-white w-full h-screen flex flex-col",children:[(0,V.jsxs)(A.Root,{children:[(0,V.jsxs)("div",{className:"w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row",children:[(0,V.jsx)(A.ScrollList,{activeFilter:n,leftArrowAriaLabel:e("filters.navigation.scrollLeftAriaLabel"),rightArrowAriaLabel:e("filters.navigation.scrollRightAriaLabel"),children:u.map(({key:t,icon:o})=>(0,V.jsx)(A.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===n,onSelectFilter:p},`category-${t}`))}),(0,V.jsx)(A.DialogTrigger,{label:e("filters.navigation.allFiltersAriaLabel")})]}),(0,V.jsx)(A.Dialog,{title:e("filters.popup.title"),description:e("filters.popup.description"),applyLabel:e("filters.popup.cta.apply"),resetLabel:e("filters.popup.cta.reset"),onReset:()=>{l(void 0)},onApply:()=>{l(s)},children:u.map(({key:t,icon:o})=>(0,V.jsx)(A.Filter,{filter:t,label:e(`common:pois.${t}`),icon:o,isActive:t===s,onSelectFilter:g},`dialog-category-${t}`))})]}),(0,V.jsx)(X,{}),(0,V.jsx)(w,{sdkName:"neighborhood-map",locale:i,isHidden:a})]})},U=h({theme:s().oneOf(["day","night"]).optional(),lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),zoom:a().optional(),pitch:a().optional(),bearing:a().optional(),cooperativeGestures:g().optional(),mapProvider:d().optional(),hideAttribution:g().optional(),showSchoolRatings:g().optional()}).noUnknown(!0),p(u.neighborhoodWrap.key),t("default",()=>{var e,t,o,i,r,n,a;const{sdkState:s}=x(),c=K(),d=(null===(e=s.globalOptions)||void 0===e?void 0:e.locale)||"en",p=(0,N.useMemo)(()=>{var e,t,o,i;return null!==(e=s.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=s.options)||void 0===t?void 0:t.geographyId}:{lat:null===(o=s.options)||void 0===o?void 0:o.lat,lng:null===(i=s.options)||void 0===i?void 0:i.lng}},[null===(t=s.options)||void 0===t?void 0:t.lat,null===(o=s.options)||void 0===o?void 0:o.lng,null===(i=s.options)||void 0===i?void 0:i.geographyId]);return(0,V.jsx)(S,{sdk:"Neighborhood Map",schema:U,options:s.options,children:(0,V.jsx)(v,{environment:null===(r=s.globalOptions)||void 0===r||null===(r=r.environment)||void 0===r?void 0:r.api,apiKey:s.apiKey,appearance:null===(n=s.globalOptions)||void 0===n?void 0:n.appearance,locale:null===(a=s.globalOptions)||void 0===a?void 0:a.locale,product:y.NEIGHBORHOOD_MAP,children:(0,V.jsx)(l,{trackingPipelineSettings:{apiKey:s.apiKey||""},analyticsSettings:u.neighborhoodWrap,meta:{clientId:s.clientId,productName:y.NEIGHBORHOOD_MAP,productVersion:"1.24.44"},attributes:{location:p,host:s.location,host_url:document.referrer,locale:d,isMobile:c},flags:{isDebugMode:!1},children:(0,V.jsx)(B,{children:(0,V.jsx)(q,{})})})})})})}}})}();
2
+ //# sourceMappingURL=NeighborhoodMap-legacy-CugKbgSp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborhoodMap-legacy-qKRq45VQ.js","names":[],"sources":["../../src/sdks/NeighborhoodMap/types.ts","../../src/sdks/NeighborhoodMap/constants.ts","../../src/sdks/NeighborhoodMap/context.tsx","../../src/sdks/NeighborhoodMap/components/Map/Layers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Markers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Popup/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/styles.ts","../../src/sdks/NeighborhoodMap/components/Map/index.tsx","../../src/sdks/NeighborhoodMap/components/Content/styles.ts","../../src/sdks/NeighborhoodMap/components/Content/index.tsx","../../src/sdks/NeighborhoodMap/schema.ts","../../src/sdks/NeighborhoodMap/index.tsx"],"sourcesContent":["import type { POI, EnhancedPOIs, School, Schools } from \"@local-logic/client\";\nimport { POICategories } from \"@local-logic/client\";\nimport type { SDKOptions, MapProviderNames } from \"~/types/options\";\n\nexport type MapProvider = {\n name: MapProviderNames;\n key?: string;\n theme?: string;\n};\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n zoom?: number;\n pitch?: number;\n bearing?: number;\n cooperativeGestures?: boolean;\n mapProvider?: MapProvider;\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nexport type NeighborhoodMapProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport type POICategory = EnhancedPOIs | keyof Schools;\nexport type POIGroup = (keyof typeof POICategories)[];\nexport type SchoolGroup = (keyof Schools)[];\nexport type Marker = POI | School;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-map-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-map-Category-Clicked\",\n POI_CLICKED = \"neighborhood-map-Poi-Clicked\",\n POI_LINK_CLICKED = \"neighborhood-map-Poi-Link-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n POI_CLICKED = \"poi_clicked\",\n POI_LINK_CLICKED = \"poi_link_clicked\",\n}\n","import type { POICategory } from \"./types\";\n\nexport const DEFAULT_MIN_ZOOM = 6; // Default minimum zoom level for the map\nexport const DEFAULT_MAX_ZOOM = 17; // Default maximum zoom level for the map\n\nexport const MAX_POI_LIMIT = 500;\n\nexport const MAP_PADDING = {\n desktop: {\n top: 30,\n bottom: 30,\n left: 30,\n right: 30,\n },\n mobile: {\n top: 15,\n bottom: 15,\n left: 15,\n right: 15,\n },\n};\n\nexport const categories: POICategory[] = [\n \"primary_schools\",\n \"high_schools\",\n \"restaurants\",\n \"groceries\",\n \"groceries_specialized\",\n \"non_food_shops\",\n \"nightlife\",\n \"cafes\",\n \"daycares\",\n \"bus_stops\",\n \"rapid_transit_stations\",\n \"train_stations\",\n \"parks\",\n \"fitness\",\n \"sport_facilities\",\n \"health_care\",\n \"pet_care\",\n \"car_fueling_stations\",\n \"art_culture_science\",\n \"home_improvement\",\n \"personal_care\",\n];\n","import React, { useContext, useState, useMemo, useCallback } from \"react\";\nimport type { Geography, POI, School } from \"@local-logic/client\";\nimport type { MarkerPoint } from \"@local-logic/maps\";\nimport {\n type NeighborhoodMapProps,\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { MAX_POI_LIMIT } from \"./constants\";\n\nimport { useTracking } from \"~/tracking\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport errorTracker from \"~/utils/errorTracker\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\nimport { useMarkers } from \"~/hooks/useMarkers\";\n\ninterface Location {\n lat: number;\n lng: number;\n}\n\nexport type DefaultContext = {\n locale: \"en\" | \"fr\";\n isLoading: boolean;\n map: {\n mapProvider: NeighborhoodMapProps[\"options\"][\"mapProvider\"];\n zoom: NeighborhoodMapProps[\"options\"][\"zoom\"];\n pitch: NeighborhoodMapProps[\"options\"][\"pitch\"];\n bearing: NeighborhoodMapProps[\"options\"][\"bearing\"];\n cooperativeGestures: NeighborhoodMapProps[\"options\"][\"cooperativeGestures\"];\n };\n geography?: Geography;\n activeMarker?: MarkerPoint;\n activeMarkerDetails: POI | School | null;\n activePoiCategory?: POICategory;\n onSelectPoiCategory: (category?: POICategory) => void;\n handleMarkerClick: (marker?: MarkerPoint) => void;\n markersData?: POI[] | School[];\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nconst NeighborhoodMapContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodMap = () => useContext(NeighborhoodMapContext);\n\nconst NeighborhoodMapProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\n const tracking = useTracking();\n const [activeMarker, setActiveMarker] = useState<MarkerPoint>();\n const [activePoiCategory, setActivePoiCategory] =\n useState<DefaultContext[\"activePoiCategory\"]>();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n eventAttributes: [\n {\n label: \"default_category\",\n data: activePoiCategory,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n eventAttributes: {\n ll_default_category: activePoiCategory,\n },\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n geogID: sdkState.options?.geographyId,\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\n include: \"geometry\",\n },\n );\n\n const { geographyId, geography } = useMemo(() => {\n const geographiesArray = Object.entries(geographyData || {});\n\n return {\n geographyId: geographiesArray[0]?.[0],\n geography: geographiesArray[0]?.[1],\n };\n }, [isGeographyLoading, geographyData]);\n\n const { data: markersDataRaw, isLoading: isMarkersLoading } = useMarkers({\n geogId: geographyId,\n limit: MAX_POI_LIMIT,\n categories: activePoiCategory ? [activePoiCategory] : undefined,\n });\n\n // Flatten the markers data into a single array\n const markersData = useMemo(\n () =>\n ([] as (POI | School)[]).concat(...Object.values(markersDataRaw || {})),\n [markersDataRaw],\n );\n\n const handleSelectPoiCategory = (category?: POICategory) => {\n errorTracker.addBreadCrumb(\n \"NeighborhoodMapProvider\",\n \"handleSelectPoiCategory\",\n {\n category,\n },\n );\n\n setActivePoiCategory(activePoiCategory === category ? undefined : category);\n };\n\n const handleMarkerClick = useCallback(\n (marker?: MarkerPoint) => {\n if (\n activeMarker?.latitude === marker?.latitude &&\n activeMarker?.longitude === marker?.longitude\n ) {\n setActiveMarker(undefined);\n return;\n }\n\n setActiveMarker(marker);\n },\n [activeMarker],\n );\n\n const activeMarkerDetails = useMemo(() => {\n if (!markersData || !activeMarker || activeMarker.markers.length !== 1) {\n return null;\n }\n\n return (\n markersData.find(\n (marker) =>\n activeMarker.markers[0].id ===\n getIdFromMarker(marker.lat, marker.lng, marker.name),\n ) || null\n );\n }, [activeMarker, markersData]);\n\n const isLoading = useMemo(\n () => isGeographyLoading || isMarkersLoading,\n [isGeographyLoading, isMarkersLoading],\n );\n\n return (\n <NeighborhoodMapContext.Provider\n value={{\n locale,\n isLoading,\n map: {\n mapProvider: sdkState.options?.mapProvider,\n zoom: sdkState.options?.zoom,\n pitch: sdkState.options?.pitch,\n bearing: sdkState.options?.bearing,\n cooperativeGestures: sdkState.options?.cooperativeGestures,\n },\n geography,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory: handleSelectPoiCategory,\n markersData,\n hideAttribution: sdkState.options?.hideAttribution,\n showSchoolRatings: sdkState.options?.showSchoolRatings,\n }}\n >\n {children}\n </NeighborhoodMapContext.Provider>\n );\n};\n\nexport { useNeighborhoodMap, NeighborhoodMapProvider, type Location };\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Source, type LayerType } from \"@local-logic/maps\";\n\nimport type { School } from \"@local-logic/client\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nconst GEOGRAPHY_LAYER_COLOR = \"#008491\";\nconst SCHOOL_CATCHMENT_COLOR = \"#9333ea\";\n\nexport function Layers() {\n const { geography, activeMarkerDetails } = useNeighborhoodMap();\n\n const primaryColor = useMemo(\n () =>\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--ll-colors-primary-100\",\n ) || GEOGRAPHY_LAYER_COLOR,\n [],\n );\n\n const neighborhoodLayerSources = useMemo(() => {\n const sources: Source[] = [];\n\n if (\n typeof geography?.geometry === \"undefined\" ||\n (Array.isArray(geography.geometry) && geography.geometry.length === 0)\n ) {\n return undefined;\n }\n\n geography.geometry.forEach((geometry, index) => {\n sources.push({\n key: `neighborhood-geometry-${index}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: primaryColor,\n },\n {\n type: \"line\" as LayerType,\n color: primaryColor,\n },\n ],\n geometry: [geometry],\n });\n });\n\n return sources;\n }, [geography, primaryColor]);\n\n const schoolLayerSources = useMemo(() => {\n const activeSchoolMarkerDetails = activeMarkerDetails as School;\n if (\n typeof activeSchoolMarkerDetails?.catchments === \"undefined\" ||\n activeSchoolMarkerDetails.catchments?.length === 0\n ) {\n return undefined;\n }\n\n const sources: Source[] = [];\n\n activeSchoolMarkerDetails.catchments.forEach(\n (catchment, catchmentIndex) => {\n if (\n Array.isArray(catchment.geometry) &&\n catchment.geometry.length > 0\n ) {\n catchment.geometry.forEach((geometry, geomIndex) => {\n sources.push({\n key: `school-catchment-${catchmentIndex}-geom-${geomIndex}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n {\n type: \"line\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n ],\n geometry: [geometry],\n });\n });\n }\n },\n );\n\n return sources;\n }, [activeMarkerDetails]);\n\n return (\n <>\n <LocalLogicMap.Layers sources={neighborhoodLayerSources} />\n <LocalLogicMap.Layers sources={schoolLayerSources} />\n </>\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Marker } from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\n\nexport function Markers() {\n const tracking = useTracking();\n const { isLoading, activePoiCategory, markersData, handleMarkerClick } =\n useNeighborhoodMap();\n\n const icon = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return undefined;\n }\n\n return poiIcons[activePoiCategory] as Marker[\"icon\"];\n }, [activePoiCategory]);\n\n const mapMarkers = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return [];\n }\n\n // Filter out duplicate markers by ID\n // This is because we combine multiple data sources that may have overlapping POIs\n return Array.from(\n (markersData || [])\n .map(\n (marker) =>\n ({\n id: getIdFromMarker(marker.lat, marker.lng, marker.name),\n latitude: marker.lat,\n longitude: marker.lng,\n name: marker.name,\n icon,\n }) as Marker,\n )\n .reduce((acc, marker) => {\n acc.set(marker.id, marker);\n return acc;\n }, new Map<string, Marker>())\n .values(),\n );\n }, [markersData, icon, activePoiCategory]);\n\n /**\n * Handles clicking on a map marker. This includes both single markers and cluster markers.\n *\n * @param marker\n * @returns\n */\n const handleMapMarkerClick = (\n marker: Parameters<typeof handleMarkerClick>[0],\n ) => {\n handleMarkerClick(marker);\n\n if (!activePoiCategory || !marker) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n if (marker.markers.length > 1) {\n eventAttributes.isCluster = true;\n eventAttributes.clusterSize = marker.markers.length;\n eventAttributes.lat = marker.latitude;\n eventAttributes.lng = marker.longitude;\n } else if (marker.markers.length === 1) {\n Object.entries(marker.markers[0]).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n // Remove sdk id before sending to tracking\n if (key === \"id\") {\n return;\n }\n eventAttributes[key] = value;\n }\n });\n }\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Markers\n isLoading={isLoading}\n markers={mapMarkers}\n clusterIcon={icon}\n onClick={handleMapMarkerClick}\n />\n );\n}\n","import React from \"react\";\n\nimport {\n LocalLogicMap,\n type Marker,\n type MarkerPoint,\n} from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nimport { ClusterPopupContent } from \"~/components/map/ClusterPopupContent\";\nimport { POIPopupContent } from \"~/components/map/POIPopupContent\";\n\nexport function Popup() {\n const tracking = useTracking();\n const {\n activePoiCategory,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n showSchoolRatings,\n } = useNeighborhoodMap();\n\n /**\n * Handles selecting a marker from within a cluster popup.\n *\n * @param marker\n * @returns\n */\n const handleClusterMarkerSelected = (marker: Marker) => {\n handleMarkerClick({\n id: marker.id,\n latitude: marker.latitude,\n longitude: marker.longitude,\n markers: [marker],\n } as MarkerPoint);\n\n if (!activePoiCategory) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(marker).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n const handleLinkClick = (url: string) => {\n if (!activePoiCategory || !activeMarkerDetails) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(activeMarkerDetails).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n eventAttributes.clickedUrl = url;\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_LINK_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_LINK_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Popup\n latitude={activeMarker?.latitude}\n longitude={activeMarker?.longitude}\n onClose={() => handleMarkerClick(undefined)}\n >\n <ClusterPopupContent\n activeMarker={activeMarker}\n onMarkerSelected={handleClusterMarkerSelected}\n onClose={handleMarkerClick}\n />\n <POIPopupContent\n marker={activeMarkerDetails}\n poiCategory={activePoiCategory}\n onLocationLinkClick={handleLinkClick}\n onSchoolLinkClick={handleLinkClick}\n onClose={handleMarkerClick}\n showSchoolRatings={showSchoolRatings}\n />\n </LocalLogicMap.Popup>\n );\n}\n","export const container = `relative w-full overflow-hidden grow`;\n","import React, { useMemo } from \"react\";\n\nimport \"@local-logic/maps/style.css\";\n\nimport { LocalLogicMap } from \"@local-logic/maps\";\n\nimport { Layers } from \"./Layers\";\nimport { Markers } from \"./Markers\";\nimport { Popup } from \"./Popup\";\n\nimport * as styles from \"./styles\";\nimport { getMapProviderConfig } from \"~/utils/map/getMapProviderConfig\";\nimport {\n DEFAULT_MIN_ZOOM,\n DEFAULT_MAX_ZOOM,\n MAP_PADDING,\n} from \"~/sdks/NeighborhoodMap/constants\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nexport function Map({\n children,\n ...rest\n}: {\n children?: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const breakpoints = useResponsiveBreakpoints();\n const { locale, map, activeMarker, geography } = useNeighborhoodMap();\n\n const mapProviderConfig = useMemo(\n () =>\n getMapProviderConfig(\n map.mapProvider?.name,\n map.mapProvider?.key,\n map.mapProvider?.theme,\n ),\n [map.mapProvider?.name, map.mapProvider?.key, map.mapProvider?.theme],\n );\n\n const locationBoundary = useMemo(() => {\n if (typeof geography === \"undefined\" || !geography?.geometry) {\n return undefined;\n }\n\n const outerRing = geography.geometry.flatMap((polygon) => polygon[0] || []);\n\n if (!outerRing || outerRing.length === 0) {\n return undefined;\n }\n return outerRing.map((point: number[]) => [point[1], point[0]]);\n }, [geography]);\n\n return (\n <div className={styles.container} {...rest}>\n {typeof geography !== \"undefined\" && (\n <LocalLogicMap.Root\n locale={locale}\n mapProvider={mapProviderConfig}\n mapPadding={MAP_PADDING[breakpoints.sm ? \"mobile\" : \"desktop\"]}\n locationBoundary={locationBoundary}\n center={{\n latitude: geography?.centroid.lat,\n longitude: geography?.centroid.lng,\n }}\n zoom={map.zoom}\n minZoom={DEFAULT_MIN_ZOOM}\n maxZoom={DEFAULT_MAX_ZOOM}\n zoomPosition={breakpoints.sm ? \"bottom-right\" : undefined}\n pitch={map.pitch}\n bearing={map.bearing}\n cooperativeGestures={map.cooperativeGestures}\n activeMarker={activeMarker}\n >\n <LocalLogicMap.BaseMap>\n <Layers />\n <Markers />\n <Popup />\n </LocalLogicMap.BaseMap>\n </LocalLogicMap.Root>\n )}\n\n {children}\n </div>\n );\n}\n","export const container = `relative bg-base-white w-full h-screen flex flex-col`;\nexport const header = `w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row`;\n","import React, { useMemo, useState, useEffect } from \"react\";\n\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\nimport { useTranslation } from \"react-i18next\";\nimport { HorizontalScrollFilters } from \"@local-logic/design-system\";\nimport { Map } from \"../Map\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\nimport { useTracking } from \"~/tracking\";\n\nimport { Attribution } from \"~/components/Attribution\";\n\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\nimport { categories } from \"~/sdks/NeighborhoodMap/constants\";\n\nimport {\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nexport const Content = () => {\n const { t } = useTranslation([\"neighborhoodMap\", \"common\"]);\n const flags = useFlags();\n const tracking = useTracking();\n\n const {\n locale,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory,\n hideAttribution,\n } = useNeighborhoodMap();\n const [dialogSelectedPoiCategory, setDialogSelectedPoiCategory] = useState<\n POICategory | undefined\n >();\n\n useEffect(() => {\n handleMarkerClick(undefined);\n setDialogSelectedPoiCategory(activePoiCategory);\n }, [activePoiCategory]);\n\n const poiCategories = useMemo(\n () =>\n categories.map((category) => ({\n key: category as POICategory,\n icon: poiIcons[category],\n })),\n [flags],\n );\n\n const handleOnSelectCategory = (category: POICategory) => {\n onSelectPoiCategory(category);\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: category,\n },\n });\n };\n\n const handleOnDialogSelectCategory = (category: POICategory) => {\n setDialogSelectedPoiCategory(\n dialogSelectedPoiCategory === category ? undefined : category,\n );\n };\n\n const handleResetFilters = () => {\n onSelectPoiCategory(undefined);\n };\n\n const handleApplyFilter = () => {\n onSelectPoiCategory(dialogSelectedPoiCategory);\n };\n\n return (\n <div className={styles.container}>\n <HorizontalScrollFilters.Root>\n <div className={styles.header}>\n <HorizontalScrollFilters.ScrollList\n activeFilter={activePoiCategory}\n leftArrowAriaLabel={t(\"filters.navigation.scrollLeftAriaLabel\")}\n rightArrowAriaLabel={t(\"filters.navigation.scrollRightAriaLabel\")}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === activePoiCategory}\n onSelectFilter={handleOnSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.ScrollList>\n <HorizontalScrollFilters.DialogTrigger\n label={t(\"filters.navigation.allFiltersAriaLabel\")}\n />\n </div>\n\n <HorizontalScrollFilters.Dialog\n title={t(\"filters.popup.title\")}\n description={t(\"filters.popup.description\")}\n applyLabel={t(\"filters.popup.cta.apply\")}\n resetLabel={t(\"filters.popup.cta.reset\")}\n onReset={handleResetFilters}\n onApply={handleApplyFilter}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`dialog-category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === dialogSelectedPoiCategory}\n onSelectFilter={handleOnDialogSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.Dialog>\n </HorizontalScrollFilters.Root>\n\n <Map />\n\n <Attribution\n sdkName=\"neighborhood-map\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </div>\n );\n};\n","import { ObjectSchema, number, object, mixed, string, boolean } from \"yup\";\nimport { Options } from \"./types\";\nimport { MapProvider } from \"~/types/options\";\n\nexport const schema: ObjectSchema<Options> = object({\n theme: string().oneOf([\"day\", \"night\"]).optional(),\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n zoom: number().optional(),\n pitch: number().optional(),\n bearing: number().optional(),\n cooperativeGestures: boolean().optional(),\n mapProvider: mixed<MapProvider>().optional(),\n hideAttribution: boolean().optional(),\n showSchoolRatings: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\n\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodMapProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodMapProps } from \"./types\";\n\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodMap = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ValidateOptions\n sdk=\"Neighborhood Map\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_MAP}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_MAP,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodMapProvider>\n <Content />\n </NeighborhoodMapProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n );\n};\n\nexport default NeighborhoodMap;\n"],"mappings":"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"}
1
+ {"version":3,"file":"NeighborhoodMap-legacy-CugKbgSp.js","names":[],"sources":["../../src/sdks/NeighborhoodMap/types.ts","../../src/sdks/NeighborhoodMap/constants.ts","../../src/sdks/NeighborhoodMap/context.tsx","../../src/sdks/NeighborhoodMap/components/Map/Layers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Markers/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/Popup/index.tsx","../../src/sdks/NeighborhoodMap/components/Map/styles.ts","../../src/sdks/NeighborhoodMap/components/Map/index.tsx","../../src/sdks/NeighborhoodMap/components/Content/styles.ts","../../src/sdks/NeighborhoodMap/components/Content/index.tsx","../../src/sdks/NeighborhoodMap/schema.ts","../../src/sdks/NeighborhoodMap/index.tsx"],"sourcesContent":["import type { POI, EnhancedPOIs, School, Schools } from \"@local-logic/client\";\nimport { POICategories } from \"@local-logic/client\";\nimport type { SDKOptions, MapProviderNames } from \"~/types/options\";\n\nexport type MapProvider = {\n name: MapProviderNames;\n key?: string;\n theme?: string;\n};\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n zoom?: number;\n pitch?: number;\n bearing?: number;\n cooperativeGestures?: boolean;\n mapProvider?: MapProvider;\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nexport type NeighborhoodMapProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport type POICategory = EnhancedPOIs | keyof Schools;\nexport type POIGroup = (keyof typeof POICategories)[];\nexport type SchoolGroup = (keyof Schools)[];\nexport type Marker = POI | School;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-map-Viewed\",\n CATEGORY_CLICKED = \"neighborhood-map-Category-Clicked\",\n POI_CLICKED = \"neighborhood-map-Poi-Clicked\",\n POI_LINK_CLICKED = \"neighborhood-map-Poi-Link-Clicked\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n CATEGORY_CLICKED = \"category_clicked\",\n POI_CLICKED = \"poi_clicked\",\n POI_LINK_CLICKED = \"poi_link_clicked\",\n}\n","import type { POICategory } from \"./types\";\n\nexport const DEFAULT_MIN_ZOOM = 2; // Default minimum zoom level for the map\nexport const DEFAULT_MAX_ZOOM = 17; // Default maximum zoom level for the map\n\nexport const MAX_POI_LIMIT = 500;\n\nexport const MAP_PADDING = {\n desktop: {\n top: 30,\n bottom: 30,\n left: 30,\n right: 30,\n },\n mobile: {\n top: 15,\n bottom: 15,\n left: 15,\n right: 15,\n },\n};\n\nexport const categories: POICategory[] = [\n \"primary_schools\",\n \"high_schools\",\n \"restaurants\",\n \"groceries\",\n \"groceries_specialized\",\n \"non_food_shops\",\n \"nightlife\",\n \"cafes\",\n \"daycares\",\n \"bus_stops\",\n \"rapid_transit_stations\",\n \"train_stations\",\n \"parks\",\n \"fitness\",\n \"sport_facilities\",\n \"health_care\",\n \"pet_care\",\n \"car_fueling_stations\",\n \"art_culture_science\",\n \"home_improvement\",\n \"personal_care\",\n];\n","import React, { useContext, useState, useMemo, useCallback } from \"react\";\nimport type { Geography, POI, School } from \"@local-logic/client\";\nimport type { MarkerPoint } from \"@local-logic/maps\";\nimport {\n type NeighborhoodMapProps,\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { MAX_POI_LIMIT } from \"./constants\";\n\nimport { useTracking } from \"~/tracking\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport errorTracker from \"~/utils/errorTracker\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\nimport { useMarkers } from \"~/hooks/useMarkers\";\n\ninterface Location {\n lat: number;\n lng: number;\n}\n\nexport type DefaultContext = {\n locale: \"en\" | \"fr\";\n isLoading: boolean;\n map: {\n mapProvider: NeighborhoodMapProps[\"options\"][\"mapProvider\"];\n zoom: NeighborhoodMapProps[\"options\"][\"zoom\"];\n pitch: NeighborhoodMapProps[\"options\"][\"pitch\"];\n bearing: NeighborhoodMapProps[\"options\"][\"bearing\"];\n cooperativeGestures: NeighborhoodMapProps[\"options\"][\"cooperativeGestures\"];\n };\n geography?: Geography;\n activeMarker?: MarkerPoint;\n activeMarkerDetails: POI | School | null;\n activePoiCategory?: POICategory;\n onSelectPoiCategory: (category?: POICategory) => void;\n handleMarkerClick: (marker?: MarkerPoint) => void;\n markersData?: POI[] | School[];\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nconst NeighborhoodMapContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\nconst useNeighborhoodMap = () => useContext(NeighborhoodMapContext);\n\nconst NeighborhoodMapProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\n const tracking = useTracking();\n const [activeMarker, setActiveMarker] = useState<MarkerPoint>();\n const [activePoiCategory, setActivePoiCategory] =\n useState<DefaultContext[\"activePoiCategory\"]>();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n eventAttributes: [\n {\n label: \"default_category\",\n data: activePoiCategory,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n eventAttributes: {\n ll_default_category: activePoiCategory,\n },\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n geogID: sdkState.options?.geographyId,\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\n include: \"geometry\",\n },\n );\n\n const { geographyId, geography } = useMemo(() => {\n const geographiesArray = Object.entries(geographyData || {});\n\n return {\n geographyId: geographiesArray[0]?.[0],\n geography: geographiesArray[0]?.[1],\n };\n }, [isGeographyLoading, geographyData]);\n\n const { data: markersDataRaw, isLoading: isMarkersLoading } = useMarkers({\n geogId: geographyId,\n limit: MAX_POI_LIMIT,\n categories: activePoiCategory ? [activePoiCategory] : undefined,\n });\n\n // Flatten the markers data into a single array\n const markersData = useMemo(\n () =>\n ([] as (POI | School)[]).concat(...Object.values(markersDataRaw || {})),\n [markersDataRaw],\n );\n\n const handleSelectPoiCategory = (category?: POICategory) => {\n errorTracker.addBreadCrumb(\n \"NeighborhoodMapProvider\",\n \"handleSelectPoiCategory\",\n {\n category,\n },\n );\n\n setActivePoiCategory(activePoiCategory === category ? undefined : category);\n };\n\n const handleMarkerClick = useCallback(\n (marker?: MarkerPoint) => {\n if (\n activeMarker?.latitude === marker?.latitude &&\n activeMarker?.longitude === marker?.longitude\n ) {\n setActiveMarker(undefined);\n return;\n }\n\n setActiveMarker(marker);\n },\n [activeMarker],\n );\n\n const activeMarkerDetails = useMemo(() => {\n if (!markersData || !activeMarker || activeMarker.markers.length !== 1) {\n return null;\n }\n\n return (\n markersData.find(\n (marker) =>\n activeMarker.markers[0].id ===\n getIdFromMarker(marker.lat, marker.lng, marker.name),\n ) || null\n );\n }, [activeMarker, markersData]);\n\n const isLoading = useMemo(\n () => isGeographyLoading || isMarkersLoading,\n [isGeographyLoading, isMarkersLoading],\n );\n\n return (\n <NeighborhoodMapContext.Provider\n value={{\n locale,\n isLoading,\n map: {\n mapProvider: sdkState.options?.mapProvider,\n zoom: sdkState.options?.zoom,\n pitch: sdkState.options?.pitch,\n bearing: sdkState.options?.bearing,\n cooperativeGestures: sdkState.options?.cooperativeGestures,\n },\n geography,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory: handleSelectPoiCategory,\n markersData,\n hideAttribution: sdkState.options?.hideAttribution,\n showSchoolRatings: sdkState.options?.showSchoolRatings,\n }}\n >\n {children}\n </NeighborhoodMapContext.Provider>\n );\n};\n\nexport { useNeighborhoodMap, NeighborhoodMapProvider, type Location };\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Source, type LayerType } from \"@local-logic/maps\";\n\nimport type { School } from \"@local-logic/client\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nconst GEOGRAPHY_LAYER_COLOR = \"#008491\";\nconst SCHOOL_CATCHMENT_COLOR = \"#9333ea\";\n\nexport function Layers() {\n const { geography, activeMarkerDetails } = useNeighborhoodMap();\n\n const primaryColor = useMemo(\n () =>\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--ll-colors-primary-100\",\n ) || GEOGRAPHY_LAYER_COLOR,\n [],\n );\n\n const neighborhoodLayerSources = useMemo(() => {\n const sources: Source[] = [];\n\n if (\n typeof geography?.geometry === \"undefined\" ||\n (Array.isArray(geography.geometry) && geography.geometry.length === 0)\n ) {\n return undefined;\n }\n\n geography.geometry.forEach((geometry, index) => {\n sources.push({\n key: `neighborhood-geometry-${index}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: primaryColor,\n },\n {\n type: \"line\" as LayerType,\n color: primaryColor,\n },\n ],\n geometry: [geometry],\n });\n });\n\n return sources;\n }, [geography, primaryColor]);\n\n const schoolLayerSources = useMemo(() => {\n const activeSchoolMarkerDetails = activeMarkerDetails as School;\n if (\n typeof activeSchoolMarkerDetails?.catchments === \"undefined\" ||\n activeSchoolMarkerDetails.catchments?.length === 0\n ) {\n return undefined;\n }\n\n const sources: Source[] = [];\n\n activeSchoolMarkerDetails.catchments.forEach(\n (catchment, catchmentIndex) => {\n if (\n Array.isArray(catchment.geometry) &&\n catchment.geometry.length > 0\n ) {\n catchment.geometry.forEach((geometry, geomIndex) => {\n sources.push({\n key: `school-catchment-${catchmentIndex}-geom-${geomIndex}`,\n layer: [\n {\n type: \"fill\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n {\n type: \"line\" as LayerType,\n color: SCHOOL_CATCHMENT_COLOR,\n },\n ],\n geometry: [geometry],\n });\n });\n }\n },\n );\n\n return sources;\n }, [activeMarkerDetails]);\n\n return (\n <>\n <LocalLogicMap.Layers sources={neighborhoodLayerSources} />\n <LocalLogicMap.Layers sources={schoolLayerSources} />\n </>\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { LocalLogicMap, type Marker } from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport { getIdFromMarker } from \"~/utils/map/getIdFromMarker\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\n\nexport function Markers() {\n const tracking = useTracking();\n const { isLoading, activePoiCategory, markersData, handleMarkerClick } =\n useNeighborhoodMap();\n\n const icon = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return undefined;\n }\n\n return poiIcons[activePoiCategory] as Marker[\"icon\"];\n }, [activePoiCategory]);\n\n const mapMarkers = useMemo(() => {\n if (typeof activePoiCategory === \"undefined\") {\n return [];\n }\n\n // Filter out duplicate markers by ID\n // This is because we combine multiple data sources that may have overlapping POIs\n return Array.from(\n (markersData || [])\n .map(\n (marker) =>\n ({\n id: getIdFromMarker(marker.lat, marker.lng, marker.name),\n latitude: marker.lat,\n longitude: marker.lng,\n name: marker.name,\n icon,\n }) as Marker,\n )\n .reduce((acc, marker) => {\n acc.set(marker.id, marker);\n return acc;\n }, new Map<string, Marker>())\n .values(),\n );\n }, [markersData, icon, activePoiCategory]);\n\n /**\n * Handles clicking on a map marker. This includes both single markers and cluster markers.\n *\n * @param marker\n * @returns\n */\n const handleMapMarkerClick = (\n marker: Parameters<typeof handleMarkerClick>[0],\n ) => {\n handleMarkerClick(marker);\n\n if (!activePoiCategory || !marker) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n if (marker.markers.length > 1) {\n eventAttributes.isCluster = true;\n eventAttributes.clusterSize = marker.markers.length;\n eventAttributes.lat = marker.latitude;\n eventAttributes.lng = marker.longitude;\n } else if (marker.markers.length === 1) {\n Object.entries(marker.markers[0]).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n // Remove sdk id before sending to tracking\n if (key === \"id\") {\n return;\n }\n eventAttributes[key] = value;\n }\n });\n }\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Markers\n isLoading={isLoading}\n markers={mapMarkers}\n clusterIcon={icon}\n onClick={handleMapMarkerClick}\n />\n );\n}\n","import React from \"react\";\n\nimport {\n LocalLogicMap,\n type Marker,\n type MarkerPoint,\n} from \"@local-logic/maps\";\nimport { useTracking } from \"~/tracking\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nimport {\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nimport { ClusterPopupContent } from \"~/components/map/ClusterPopupContent\";\nimport { POIPopupContent } from \"~/components/map/POIPopupContent\";\n\nexport function Popup() {\n const tracking = useTracking();\n const {\n activePoiCategory,\n activeMarker,\n activeMarkerDetails,\n handleMarkerClick,\n showSchoolRatings,\n } = useNeighborhoodMap();\n\n /**\n * Handles selecting a marker from within a cluster popup.\n *\n * @param marker\n * @returns\n */\n const handleClusterMarkerSelected = (marker: Marker) => {\n handleMarkerClick({\n id: marker.id,\n latitude: marker.latitude,\n longitude: marker.longitude,\n markers: [marker],\n } as MarkerPoint);\n\n if (!activePoiCategory) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(marker).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_CLICKED,\n eventAttributes,\n });\n };\n\n const handleLinkClick = (url: string) => {\n if (!activePoiCategory || !activeMarkerDetails) {\n return;\n }\n\n const eventAttributes: Record<string, boolean | string | number> = {\n category: activePoiCategory,\n };\n\n Object.entries(activeMarkerDetails).forEach(([key, value]) => {\n if (\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n eventAttributes[key] = value;\n }\n });\n eventAttributes.clickedUrl = url;\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.POI_LINK_CLICKED,\n eventAttributes: Object.entries(eventAttributes).map(([key, value]) => ({\n label: key,\n data: value,\n })),\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.POI_LINK_CLICKED,\n eventAttributes,\n });\n };\n\n return (\n <LocalLogicMap.Popup\n latitude={activeMarker?.latitude}\n longitude={activeMarker?.longitude}\n onClose={() => handleMarkerClick(undefined)}\n >\n <ClusterPopupContent\n activeMarker={activeMarker}\n onMarkerSelected={handleClusterMarkerSelected}\n onClose={handleMarkerClick}\n />\n <POIPopupContent\n marker={activeMarkerDetails}\n poiCategory={activePoiCategory}\n onLocationLinkClick={handleLinkClick}\n onSchoolLinkClick={handleLinkClick}\n onClose={handleMarkerClick}\n showSchoolRatings={showSchoolRatings}\n />\n </LocalLogicMap.Popup>\n );\n}\n","export const container = `relative w-full overflow-hidden grow`;\n","import React, { useMemo } from \"react\";\n\nimport \"@local-logic/maps/style.css\";\n\nimport { LocalLogicMap } from \"@local-logic/maps\";\n\nimport { Layers } from \"./Layers\";\nimport { Markers } from \"./Markers\";\nimport { Popup } from \"./Popup\";\n\nimport * as styles from \"./styles\";\nimport { getMapProviderConfig } from \"~/utils/map/getMapProviderConfig\";\nimport {\n DEFAULT_MIN_ZOOM,\n DEFAULT_MAX_ZOOM,\n MAP_PADDING,\n} from \"~/sdks/NeighborhoodMap/constants\";\nimport { useResponsiveBreakpoints } from \"~/hooks/useResponsiveBreakpoints\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\n\nexport function Map({\n children,\n ...rest\n}: {\n children?: React.ReactNode;\n} & React.HTMLAttributes<HTMLDivElement>) {\n const breakpoints = useResponsiveBreakpoints();\n const { locale, map, activeMarker, geography } = useNeighborhoodMap();\n\n const mapProviderConfig = useMemo(\n () =>\n getMapProviderConfig(\n map.mapProvider?.name,\n map.mapProvider?.key,\n map.mapProvider?.theme,\n ),\n [map.mapProvider?.name, map.mapProvider?.key, map.mapProvider?.theme],\n );\n\n const locationBoundary = useMemo(() => {\n if (typeof geography === \"undefined\" || !geography?.geometry) {\n return undefined;\n }\n\n const outerRing = geography.geometry.flatMap((polygon) => polygon[0] || []);\n\n if (!outerRing || outerRing.length === 0) {\n return undefined;\n }\n return outerRing.map((point: number[]) => [point[1], point[0]]);\n }, [geography]);\n\n return (\n <div className={styles.container} {...rest}>\n {typeof geography !== \"undefined\" && (\n <LocalLogicMap.Root\n locale={locale}\n mapProvider={mapProviderConfig}\n mapPadding={MAP_PADDING[breakpoints.sm ? \"mobile\" : \"desktop\"]}\n locationBoundary={locationBoundary}\n center={{\n latitude: geography?.centroid.lat,\n longitude: geography?.centroid.lng,\n }}\n zoom={map.zoom}\n minZoom={DEFAULT_MIN_ZOOM}\n maxZoom={DEFAULT_MAX_ZOOM}\n zoomPosition={breakpoints.sm ? \"bottom-right\" : undefined}\n pitch={map.pitch}\n bearing={map.bearing}\n cooperativeGestures={map.cooperativeGestures}\n activeMarker={activeMarker}\n >\n <LocalLogicMap.BaseMap>\n <Layers />\n <Markers />\n <Popup />\n </LocalLogicMap.BaseMap>\n </LocalLogicMap.Root>\n )}\n\n {children}\n </div>\n );\n}\n","export const container = `relative bg-base-white w-full h-screen flex flex-col`;\nexport const header = `w-full flex items-center mb-4 gap-4 flex-row-reverse md:flex-row`;\n","import React, { useMemo, useState, useEffect } from \"react\";\n\nimport { useFlags } from \"launchdarkly-react-client-sdk\";\nimport { useTranslation } from \"react-i18next\";\nimport { HorizontalScrollFilters } from \"@local-logic/design-system\";\nimport { Map } from \"../Map\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodMap } from \"~/sdks/NeighborhoodMap/context\";\nimport { useTracking } from \"~/tracking\";\n\nimport { Attribution } from \"~/components/Attribution\";\n\nimport { icons as poiIcons } from \"~/components/PoiIcon\";\nimport { categories } from \"~/sdks/NeighborhoodMap/constants\";\n\nimport {\n type POICategory,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"~/sdks/NeighborhoodMap/types\";\n\nexport const Content = () => {\n const { t } = useTranslation([\"neighborhoodMap\", \"common\"]);\n const flags = useFlags();\n const tracking = useTracking();\n\n const {\n locale,\n handleMarkerClick,\n activePoiCategory,\n onSelectPoiCategory,\n hideAttribution,\n } = useNeighborhoodMap();\n const [dialogSelectedPoiCategory, setDialogSelectedPoiCategory] = useState<\n POICategory | undefined\n >();\n\n useEffect(() => {\n handleMarkerClick(undefined);\n setDialogSelectedPoiCategory(activePoiCategory);\n }, [activePoiCategory]);\n\n const poiCategories = useMemo(\n () =>\n categories.map((category) => ({\n key: category as POICategory,\n icon: poiIcons[category],\n })),\n [flags],\n );\n\n const handleOnSelectCategory = (category: POICategory) => {\n onSelectPoiCategory(category);\n\n tracking.postEvent({\n eventType: TrackingPipelineEvents.CATEGORY_CLICKED,\n eventAttributes: [\n {\n label: \"category\",\n data: category,\n },\n ],\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.CATEGORY_CLICKED,\n eventAttributes: {\n ll_category: category,\n },\n });\n };\n\n const handleOnDialogSelectCategory = (category: POICategory) => {\n setDialogSelectedPoiCategory(\n dialogSelectedPoiCategory === category ? undefined : category,\n );\n };\n\n const handleResetFilters = () => {\n onSelectPoiCategory(undefined);\n };\n\n const handleApplyFilter = () => {\n onSelectPoiCategory(dialogSelectedPoiCategory);\n };\n\n return (\n <div className={styles.container}>\n <HorizontalScrollFilters.Root>\n <div className={styles.header}>\n <HorizontalScrollFilters.ScrollList\n activeFilter={activePoiCategory}\n leftArrowAriaLabel={t(\"filters.navigation.scrollLeftAriaLabel\")}\n rightArrowAriaLabel={t(\"filters.navigation.scrollRightAriaLabel\")}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === activePoiCategory}\n onSelectFilter={handleOnSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.ScrollList>\n <HorizontalScrollFilters.DialogTrigger\n label={t(\"filters.navigation.allFiltersAriaLabel\")}\n />\n </div>\n\n <HorizontalScrollFilters.Dialog\n title={t(\"filters.popup.title\")}\n description={t(\"filters.popup.description\")}\n applyLabel={t(\"filters.popup.cta.apply\")}\n resetLabel={t(\"filters.popup.cta.reset\")}\n onReset={handleResetFilters}\n onApply={handleApplyFilter}\n >\n {poiCategories.map(({ key, icon }) => (\n <HorizontalScrollFilters.Filter<POICategory>\n key={`dialog-category-${key}`}\n filter={key}\n label={t(`common:pois.${key}`)}\n icon={icon}\n isActive={key === dialogSelectedPoiCategory}\n onSelectFilter={handleOnDialogSelectCategory}\n />\n ))}\n </HorizontalScrollFilters.Dialog>\n </HorizontalScrollFilters.Root>\n\n <Map />\n\n <Attribution\n sdkName=\"neighborhood-map\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </div>\n );\n};\n","import { ObjectSchema, number, object, mixed, string, boolean } from \"yup\";\nimport { Options } from \"./types\";\nimport { MapProvider } from \"~/types/options\";\n\nexport const schema: ObjectSchema<Options> = object({\n theme: string().oneOf([\"day\", \"night\"]).optional(),\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n zoom: number().optional(),\n pitch: number().optional(),\n bearing: number().optional(),\n cooperativeGestures: boolean().optional(),\n mapProvider: mixed<MapProvider>().optional(),\n hideAttribution: boolean().optional(),\n showSchoolRatings: boolean().optional(),\n}).noUnknown(true);\n","import React, { useMemo } from \"react\";\n\nimport { Content } from \"./components/Content\";\nimport { NeighborhoodMapProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { NeighborhoodMapProps } from \"./types\";\n\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\n\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodMap = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodMapProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ValidateOptions\n sdk=\"Neighborhood Map\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_MAP}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_MAP,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodMapProvider>\n <Content />\n </NeighborhoodMapProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n );\n};\n\nexport default NeighborhoodMap;\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GridGraph-CA6dQSnE.js","assets/index-CNd7hC6B.js","assets/rolldown-runtime-C_ttsnZz.js","assets/google-maps-vendor-DvfEEdRU.js","assets/index-BeGXeG6-.css","assets/apexcharts-vendor-DL0uDIMv.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as r}from"./google-maps-vendor-DvfEEdRU.js";import{a as t,d as a,f as s,g as i,h as n,i as l,m as o,n as c,o as d,p as m,r as p,s as h,t as u,u as _}from"./sdks-Bxf4c2j1.js";import{t as v}from"./CaretDown.es-nJe-LNlT.js";import{n as g,t as y}from"./HandCoins.es-CC012gfJ.js";import{t as x}from"./X.es-6bJd6-yU.js";import{t as j}from"./IconBase.es-CEehl5AX.js";import{B as f,F as b,G as k,I as M,L as C,M as N,N as A,R as w,V as I,d as T,f as E,h as V,j as H,m as L,o as Z,p as D,q as O,r as S,t as P,vt as R,z as F}from"./index-CNd7hC6B.js";import{t as $}from"./useGeographies-PyhHBRG7.js";import{n as q}from"./Attribution-ClwsOk3e.js";import{t as K}from"./ResizeWrapper-DWV5t91u.js";import{t as G}from"./ValidateOptions-0362goEF.js";import{t as z}from"./useIsMobile-CFx2Xa3X.js";/* empty css */import{i as B,n as W,r as U,t as Y}from"./dist-3L6XR49Y.js";import{t as X}from"./TitleHeader-mQeQYQpJ.js";import{n as J}from"./NoDataContent-DMnLpuKS.js";var Q=e(r(),1),ee=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M200,144l-72,72L56,144Z",opacity:"0.2"}),Q.createElement("path",{d:"M207.39,140.94A8,8,0,0,0,200,136H136V40a8,8,0,0,0-16,0v96H56a8,8,0,0,0-5.66,13.66l72,72a8,8,0,0,0,11.32,0l72-72A8,8,0,0,0,207.39,140.94ZM128,204.69,75.31,152H180.69Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,5.66,13.66Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M204.24,148.24l-72,72a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L122,201.51V40a6,6,0,0,1,12,0V201.51l61.76-61.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M202.83,146.83l-72,72a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L124,206.34V40a4,4,0,0,1,8,0V206.34l65.17-65.17a4,4,0,0,1,5.66,5.66Z"}))]]),re=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,204H228V144a12,12,0,0,0,12.49-19.78L142.14,25.85a20,20,0,0,0-28.28,0L15.51,124.2A12,12,0,0,0,28,144v60H16a12,12,0,0,0,0,24H240a12,12,0,0,0,0-24ZM52,121.65l76-76,76,76V204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52ZM140,204H116V164h24Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M216,116.69V216H152V152H104v64H40V116.69l82.34-82.35a8,8,0,0,1,11.32,0Z",opacity:"0.2"}),Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM48,120l80-80,80,80v88H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48Zm96,88H112V160h32Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-88,0H104V160a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,210H222V131.17l5.76,5.76a6,6,0,0,0,8.48-8.49L137.9,30.09a14,14,0,0,0-19.8,0L19.76,128.44a6,6,0,0,0,8.48,8.49L34,131.17V210H16a6,6,0,0,0,0,12H240a6,6,0,0,0,0-12ZM46,119.17l80.58-80.59a2,2,0,0,1,2.84,0L210,119.17V210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46ZM146,210H110V158h36Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM48,120l80-80,80,80v88H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48Zm96,88H112V160h32Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,212H220V126.34l9.17,9.17a4,4,0,1,0,5.66-5.66L136.49,31.51a12,12,0,0,0-17,0L21.17,129.85a4,4,0,1,0,5.66,5.66L36,126.34V212H16a4,4,0,0,0,0,8H240a4,4,0,0,0,0-8ZM44,118.34l81.17-81.17a4,4,0,0,1,5.66,0L212,118.34V212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44ZM148,212H108V156h40Z"}))]]),te=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),Q.createElement("path",{d:"M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),ae=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:ee}));ae.displayName="ArrowDownIcon";var se=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:re}));se.displayName="HouseLineIcon";var ie=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:te}));ie.displayName="InfoIcon";var ne=(e,r="en-US",t="USD",a=0)=>new Intl.NumberFormat(r,{style:"currency",currency:t,maximumFractionDigits:a}).format(e??0),le=function(e){return e.marketConditions="market-conditions",e.recentTrends="recent-trends",e.currentActivity="current-activity",e}({}),oe=function(e){return e.SDK_VIEWED="neighborhood-market-trends-Viewed",e.TAB_CLICKED="neighborhood-market-trends-Tab-Clicked",e}({}),ce=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),de={all:()=>["marketActivity"],list:e=>[...de.all(),e]};var me=O(),pe=Q.createContext({}),he=()=>(0,Q.useContext)(pe),ue=({children:e})=>{const{sdkState:r}=P(),t=r.globalOptions?.locale||"en",a=h(),s=(0,Q.useMemo)(()=>{const e=[],r=new Date;for(let t=0;t<=12;t+=1){const t=r.getFullYear(),a=r.getMonth(),s=`${t}-${String(a+1).padStart(2,"0")}`;e.push(s),r.setMonth(r.getMonth()-1)}return e.reverse()},[]);S(()=>{a.postEvent({eventType:oe.SDK_VIEWED}),a.trackAnalyticsEvent({eventName:ce.SDK_VIEWED})});const{isLoading:i,data:o}=$({location:{lat:void 0===r.options?.geographyId?r.options?.lat:void 0,lng:void 0===r.options?.geographyId?r.options?.lng:void 0},geogID:r.options?.geographyId||void 0,externalId:r?.globalOptions?.externalId}),{geographyId:c,geography:d}=(0,Q.useMemo)(()=>{const e=Object.entries(o||{});return{geographyId:e[0]?.[0],geography:e[0]?.[1]}},[i,o]),{data:m,isFetching:p}=function({geographyId:e,propertyTypes:r,intervals:t}){const{client:a}=l(),s=R();return n({queryKey:de.list({geogId:e}),queryFn:async()=>{const s=await a.getMarketActivity({geogId:e,propertyTypes:r,intervals:t});return void 0===s?null:s},enabled:!(!e||!s.marketTrendsSdk)})}({geographyId:c,propertyTypes:["all_residential_properties"],intervals:["30d","31-60d","12m","13-24m",...s]}),u=(0,Q.useMemo)(()=>{const e=m?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.sold_homes_count||0,r=m?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.sold_homes_with_sold_price_count||0;return e>0?r/e:0},[m]),_=(0,Q.useMemo)(()=>i||p,[i,p]),v=(0,Q.useMemo)(()=>({isLoading:_,homesSoldPercentage:u,marketActivity:m??null,appearance:r?.options?.appearance,locale:t,geography:d}),[m,_,u,t,d,c]);return(0,me.jsx)(pe.Provider,{value:v,children:e})},_e="Collapsible",[ve,ge]=w(_e),[ye,xe]=ve(_e),je=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,open:a,defaultOpen:s,disabled:i,onOpenChange:n,...l}=e,[o,c]=H({prop:a,defaultProp:s??!1,onChange:n,caller:_e});return(0,me.jsx)(ye,{scope:t,disabled:i,contentId:N(),open:o,onOpenToggle:Q.useCallback(()=>c(e=>!e),[c]),children:(0,me.jsx)(b.div,{"data-state":Ne(o),"data-disabled":i?"":void 0,...l,ref:r})})});je.displayName=_e;var fe="CollapsibleTrigger",be=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,...a}=e,s=xe(fe,t);return(0,me.jsx)(b.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":Ne(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...a,ref:r,onClick:F(e.onClick,s.onOpenToggle)})});be.displayName=fe;var ke="CollapsibleContent",Me=Q.forwardRef((e,r)=>{const{forceMount:t,...a}=e,s=xe(ke,e.__scopeCollapsible);return(0,me.jsx)(V,{present:t||s.open,children:({present:e})=>(0,me.jsx)(Ce,{...a,ref:r,present:e})})});Me.displayName=ke;var Ce=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,present:a,children:s,...i}=e,n=xe(ke,t),[l,o]=Q.useState(a),c=Q.useRef(null),d=I(r,c),m=Q.useRef(0),p=m.current,h=Q.useRef(0),u=h.current,_=n.open||l,v=Q.useRef(_),g=Q.useRef(void 0);return Q.useEffect(()=>{const e=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(e)},[]),A(()=>{const e=c.current;if(e){g.current=g.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";const r=e.getBoundingClientRect();m.current=r.height,h.current=r.width,v.current||(e.style.transitionDuration=g.current.transitionDuration,e.style.animationName=g.current.animationName),o(a)}},[n.open,a]),(0,me.jsx)(b.div,{"data-state":Ne(n.open),"data-disabled":n.disabled?"":void 0,id:n.contentId,hidden:!_,...i,ref:d,style:{"--radix-collapsible-content-height":p?`${p}px`:void 0,"--radix-collapsible-content-width":u?`${u}px`:void 0,...e.style},children:_&&s})});function Ne(e){return e?"open":"closed"}var Ae=je,we=be,Ie=Me,Te="Accordion",Ee=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[Ve,He,Le]=C(Te),[Ze,De]=w(Te,[Le,ge]),Oe=ge(),Se=Q.forwardRef((e,r)=>{const{type:t,...a}=e,s=a,i=a;return(0,me.jsx)(Ve.Provider,{scope:e.__scopeAccordion,children:"multiple"===t?(0,me.jsx)(Ke,{...i,ref:r}):(0,me.jsx)(qe,{...s,ref:r})})});Se.displayName=Te;var[Pe,Re]=Ze(Te),[Fe,$e]=Ze(Te,{collapsible:!1}),qe=Q.forwardRef((e,r)=>{const{value:t,defaultValue:a,onValueChange:s=()=>{},collapsible:i=!1,...n}=e,[l,o]=H({prop:t,defaultProp:a??"",onChange:s,caller:Te});return(0,me.jsx)(Pe,{scope:e.__scopeAccordion,value:Q.useMemo(()=>l?[l]:[],[l]),onItemOpen:o,onItemClose:Q.useCallback(()=>i&&o(""),[i,o]),children:(0,me.jsx)(Fe,{scope:e.__scopeAccordion,collapsible:i,children:(0,me.jsx)(Be,{...n,ref:r})})})}),Ke=Q.forwardRef((e,r)=>{const{value:t,defaultValue:a,onValueChange:s=()=>{},...i}=e,[n,l]=H({prop:t,defaultProp:a??[],onChange:s,caller:Te}),o=Q.useCallback(e=>l((r=[])=>[...r,e]),[l]),c=Q.useCallback(e=>l((r=[])=>r.filter(r=>r!==e)),[l]);return(0,me.jsx)(Pe,{scope:e.__scopeAccordion,value:n,onItemOpen:o,onItemClose:c,children:(0,me.jsx)(Fe,{scope:e.__scopeAccordion,collapsible:!0,children:(0,me.jsx)(Be,{...i,ref:r})})})}),[Ge,ze]=Ze(Te),Be=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,disabled:a,dir:s,orientation:i="vertical",...n}=e,l=I(Q.useRef(null),r),o=He(t),c="ltr"===M(s),d=F(e.onKeyDown,e=>{if(!Ee.includes(e.key))return;const r=e.target,t=o().filter(e=>!e.ref.current?.disabled),a=t.findIndex(e=>e.ref.current===r),s=t.length;if(-1===a)return;e.preventDefault();let n=a;const l=s-1,d=()=>{n=a+1,n>l&&(n=0)},m=()=>{n=a-1,n<0&&(n=l)};switch(e.key){case"Home":n=0;break;case"End":n=l;break;case"ArrowRight":"horizontal"===i&&(c?d():m());break;case"ArrowDown":"vertical"===i&&d();break;case"ArrowLeft":"horizontal"===i&&(c?m():d());break;case"ArrowUp":"vertical"===i&&m()}t[n%s].ref.current?.focus()});return(0,me.jsx)(Ge,{scope:t,disabled:a,direction:s,orientation:i,children:(0,me.jsx)(Ve.Slot,{scope:t,children:(0,me.jsx)(b.div,{...n,"data-orientation":i,ref:l,onKeyDown:a?void 0:d})})})}),We="AccordionItem",[Ue,Ye]=Ze(We),Xe=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,value:a,...s}=e,i=ze(We,t),n=Re(We,t),l=Oe(t),o=N(),c=a&&n.value.includes(a)||!1,d=i.disabled||e.disabled;return(0,me.jsx)(Ue,{scope:t,open:c,disabled:d,triggerId:o,children:(0,me.jsx)(Ae,{"data-orientation":i.orientation,"data-state":ar(c),...l,...s,ref:r,disabled:d,open:c,onOpenChange:e=>{e?n.onItemOpen(a):n.onItemClose(a)}})})});Xe.displayName=We;var Je="AccordionHeader";Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(Je,t);return(0,me.jsx)(b.h3,{"data-orientation":s.orientation,"data-state":ar(i.open),"data-disabled":i.disabled?"":void 0,...a,ref:r})}).displayName=Je;var Qe="AccordionTrigger",er=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(Qe,t),n=$e(Qe,t),l=Oe(t);return(0,me.jsx)(Ve.ItemSlot,{scope:t,children:(0,me.jsx)(we,{"aria-disabled":i.open&&!n.collapsible||void 0,"data-orientation":s.orientation,id:i.triggerId,...l,...a,ref:r})})});er.displayName=Qe;var rr="AccordionContent",tr=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(rr,t),n=Oe(t);return(0,me.jsx)(Ie,{role:"region","aria-labelledby":i.triggerId,"data-orientation":s.orientation,...n,...a,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});function ar(e){return e?"open":"closed"}tr.displayName=rr;var sr=Se,ir=Xe,nr=er,lr=tr,or=({value:e,children:r,className:t})=>(0,me.jsx)(ir,{className:`\n border\n rounded-md\n py-4 px-3\n overflow-hidden\n ${t}`,value:e,children:r}),cr=({children:e,className:r})=>(0,me.jsx)(lr,{className:`\n flex\n gap-2\n overflow-hidden\n data-[state=open]:animate-slideDown\n ${r}`,children:e}),dr=({children:e,icon:r})=>(0,me.jsxs)(nr,{className:'\n flex gap-4 w-full\n group\n text-stone-500\n data-[state="open"]:border-b\n data-[state="open"]:pb-3\n data-[state="open"]:mb-4\n data-[state="open"]:text-ll-primary\n',children:[void 0!==r&&(0,me.jsx)(r,{className:"\n w-6\n"}),(0,me.jsxs)("div",{className:"\n grow\n text-left\n",children:[" ",e]}),(0,me.jsx)(v,{className:'\n h-3\n transition-transform duration-300 ease-[cubic-bezier(0.87,_0,_0.13,_1)]\n group-data-[state="open"]:rotate-180\n'})]}),mr=({defaultValue:e,children:r})=>(0,me.jsx)(sr,{defaultValue:e,collapsible:!0,type:"single",className:"\n flex\n flex-col\n gap-2\n",children:r}),pr=Q.createContext({}),hr=({tabId:e,icon:r,children:t,className:a})=>(0,me.jsxs)(B,{className:`\n flex\n gap-2\n text-stone-500\n justify-center\n w-full\n py-4\n border-b-4\n cursor-pointer\n select-none\n data-[state="active"]:border-b-ll-primary\n data-[state="active"]:text-ll-primary\n ${a}`,value:e,children:[void 0!==r&&(0,me.jsx)(r,{className:"\n w-6 h-6\n"}),t]}),ur=({tabId:e,children:r,className:t})=>(0,me.jsx)(Y,{value:e,className:t,children:r}),_r=({children:e,className:r})=>(0,me.jsx)(W,{className:`\n flex\n flex-row\n justify-between\n relative\n ${r}`,children:e}),vr=({defaultValue:e,onChange:r,children:t})=>(0,me.jsx)(pr.Provider,{value:{defaultValue:e,onChange:r,children:t},children:(0,me.jsx)(U,{defaultValue:e,onValueChange:e=>{r&&r(e)},children:t})}),gr="\n border border-gray-100 md:border-ll-border rounded-md md:min-h-40 w-full flex flex-col md:flex-row\n",yr="\n md:border border-gray-100 md:border-ll-border rounded-md md:min-h-40 w-full flex flex-col md:p-6\n",xr="\n flex flex-col justify-between min-w-60 p-2 md:p-4 border border-transparent border-b-gray-100 md:border-r-gray-300 md:w-5/12\n",jr="\n font-semibold text-ll-font-size-caption-1 text-ll-placeholder flex gap-x-1 items-center\n",fr="md:h-22 lg:h-11",br="\n text-xxs text-ll-placeholder\n",kr="\n text-ll-font-size-h4 font-semibold text-ll-on-surface\n leading-7 mt-6 mb-2\n";function Mr({children:e,change:r}){const t=z(),a=(0,Q.useMemo)(()=>t?"bottom":"right",[t]);return null===r||0===r?null:(0,me.jsxs)(D,{children:[(0,me.jsx)(L,{children:(0,me.jsx)(ie,{className:"w-4 h-4 cursor-pointer"})}),(0,me.jsxs)(E,{className:"bg-white py-2 pl-3 pr-8 relative shadow z-10 text-black max-w-80 font-normal text-xs rounded-lg",side:a,sideOffset:4,children:[e,(0,me.jsx)(T,{children:(0,me.jsx)(x,{className:"absolute right-2 top-1/2 transform -translate-y-1/2 cursor-pointer w-4 h-4",weight:"bold"})})]})]})}var Cr=({yearlyChange:e,disclaimer:r,fieldTitle:t})=>{const{t:a}=i("neighborhoodMarketTrends"),{appearance:s}=he(),n=e&&e>=0,l=(0,Q.useMemo)(()=>n?s?.colors?.increaseColor||Z.increaseColor:s?.colors?.decreaseColor||Z.decreaseColor,[s,n]);return(0,me.jsx)(me.Fragment,{children:e?(0,me.jsxs)("div",{className:"\n flex flex-wrap items-center\n",children:[(0,me.jsx)(ae,{className:"\n w-3 h-3 mr-1 data-[is-increase=true]:rotate-180\n",style:{color:l},weight:"bold","data-is-increase":n}),(0,me.jsxs)("div",{className:"\n flex gap-x-1 items-center\n",style:{color:l},children:[(0,me.jsxs)("p",{className:"\n text-ll-font-size-caption-1 leading-4\n",children:[(100*e).toFixed(2),"%"," ",a("marketIndicator."+(n?"increase":"decrease"))]}),r&&(0,me.jsx)(Mr,{children:r})]})]}):(0,me.jsx)("p",{className:"\n text-ll-font-size-caption-1 leading-4\n text-ll-placeholder\n",children:t&&a("marketIndicator.noChangeDisclaimer",{fieldTitle:t.toLocaleLowerCase()})})})},Nr=Q.createContext({}),Ar=()=>(0,Q.useContext)(Nr);function wr({sellerColor:e,neutralColor:r,buyerColor:t}){return(0,me.jsxs)("div",{className:"relative flex aspect-[2] items-center justify-center overflow-hidden rounded-t-full w-[218px] h-[109px]",children:[(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[17deg] transition-transform duration-500",style:{backgroundImage:`linear-gradient(to right top, ${e} 50%, rgba(0, 0, 0, 0) 50%)`}}),(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[17deg] transition-transform duration-500 opacity-30",style:{backgroundImage:`linear-gradient(to right top, rgba(0, 0, 0, 0) 50%, ${r} 50%)`}}),(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[73deg] transition-transform duration-500",style:{backgroundImage:`linear-gradient(to right top, rgba(0, 0, 0, 0) 50%, ${t} 50%)`}}),(0,me.jsx)("div",{className:"absolute inset-7 flex aspect-[2] items-center justify-center overflow-hidden rounded-t-full",children:(0,me.jsx)("div",{className:"absolute top-0 flex aspect-square w-full justify-center rounded-full bg-white"})})]})}var Ir="#272525";function Tr(){return(0,me.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 13 93",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,me.jsx)("path",{d:"M6.3151 0.683594L11.6802 88.9218H0.949947L3.63252 44.8027L6.3151 0.683594Z",fill:Ir}),(0,me.jsx)("path",{d:"M12.1458 86.9782C12.1458 90.1985 9.53531 92.809 6.3151 92.809C3.09488 92.809 0.484375 90.1985 0.484375 86.9782C0.484375 83.758 3.09488 81.1475 6.3151 81.1475C9.53531 81.1475 12.1458 83.758 12.1458 86.9782Z",fill:Ir})]})}var Er="\n text-stone-400\n text-sm\n w-11\n",Vr=({buyerSellerPercentage:e,labels:r})=>{const{sellerColor:t,neutralColor:a,buyerColor:s}=Ar(),i=(0,Q.useMemo)(()=>({transform:`translate(-50%, 0) rotate(${1.8*e-90}deg)`,transformOrigin:"50% 100%"}),[e]);return(0,me.jsxs)("div",{className:"\n flex\n flex-col\n items-center\n gap-2.5\n max-w-80\n",children:[(0,me.jsx)("span",{className:Er,children:r.neutral}),(0,me.jsxs)("div",{className:"\n flex\n items-end\n gap-2.5\n",children:[(0,me.jsx)("span",{className:Er,children:r.seller}),(0,me.jsxs)("div",{className:"\n relative\n",children:[(0,me.jsx)(wr,{sellerColor:t,neutralColor:a,buyerColor:s}),(0,me.jsx)("div",{className:"\n absolute\n left-1/2\n w-5/6\n h-5/6\n -translate-x-1/2\n bottom-1\n",style:i,children:(0,me.jsx)(Tr,{})})]}),(0,me.jsx)("span",{className:Er,children:r.buyer})]})]})},Hr=(0,Q.lazy)(()=>k(()=>import("./GridGraph-CA6dQSnE.js").then(e=>({default:e.GridGraph})),__vite__mapDeps([0,1,2,3,4,5]))),Lr=e=>(0,me.jsx)(Q.Suspense,{fallback:(0,me.jsx)("div",{style:{height:"400px"}}),children:(0,me.jsx)(Hr,{...e})}),Zr=({yAxisTitle:e,isIncrease:r})=>{const{isLoading:t,marketActivity:a}=he(),{increaseColor:s,decreaseColor:i}=Ar(),n=(0,Q.useMemo)(()=>t||!a?[]:Object.entries(a.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[a,t]),l=(0,Q.useMemo)(()=>n.length<1?[]:n.map(([e,r])=>r.market_activity?.stats_at_period_end?.active_listings_count??null).reverse().filter(e=>null!==e),[n]),o=(0,Q.useMemo)(()=>n?n.map(([e,r])=>e).reverse():[],[n]),c=(0,Q.useMemo)(()=>{const e=Math.max(...l),r=Math.min(...l);return 100*Math.ceil((e+.2*(e-r))/100)},[l]);return a?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Active Listings",data:l}],categories:o,type:"homes",yaxis:{title:{text:e},max:c},markerColor:r?s:i})}):null},Dr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_at_period_end?.home_asking_prices?.median_price??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median asking price",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Or=({yAxisTitle:e,isIncrease:r})=>{const{isLoading:t,marketActivity:a}=he(),{increaseColor:s,decreaseColor:i}=Ar(),n=(0,Q.useMemo)(()=>t||!a?[]:Object.entries(a.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[a,t]),l=(0,Q.useMemo)(()=>n.length<1?[]:n.map(([e,r])=>r.market_activity?.stats_over_period?.market_speed?.median_days_on_market??null).reverse(),[n]),o=(0,Q.useMemo)(()=>n?n.map(([e,r])=>e).reverse():[],[n]),c=(0,Q.useMemo)(()=>{const e=l.filter(e=>void 0!==e),r=Math.max(...e),t=Math.min(...e);return{max:10*Math.ceil((r+.2*(r-t))/10),min:Math.max(0,10*Math.floor((t-.2*(r-t))/10))}},[l]);return a?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median Days On Market",data:l}],categories:o,type:"homes",yaxis:{title:{text:e},max:c.max,min:c.min},markerColor:r?s:i})}):null},Sr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>{const t=r.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent??null;return null!==t?t>0?t-100:0:null}).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median Sale vs Asking Price",data:n}],categories:l,type:"percentage",chartType:"bar",showGrid:!0,showYAxisAnnotation:!0,markerColor:e?a:s})}):null},Pr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.home_selling_prices.median_price??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median sales price",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Rr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.home_selling_prices.median_price_per_square_foot??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median sales price per square foot",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Fr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.sold_homes_count??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Homes Sold",data:n}],categories:l,type:"homes",markerColor:e?a:s})}):null},$r=()=>{const{isLoading:e,marketActivity:r}=he(),{sellerColor:t,neutralColor:a,buyerColor:s}=Ar(),i=(0,Q.useMemo)(()=>e||!r?[]:Object.entries(r.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[r,e]),n=(0,Q.useMemo)(()=>i.length<1?{numericValues:[],stringValues:[]}:{numericValues:i.map(([e,r])=>r.market_activity?.stats_over_period?.market_conditions_indicator_MOI_12month??null).reverse().map(e=>null!==e&&e>100?100:e),stringValues:i.map(([e,r])=>r.market_activity?.stats_over_period?.market_conditions_assessment??0).reverse()},[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return r?(0,me.jsx)("div",{className:"-mr-2",children:(0,me.jsx)(Lr,{series:[{name:"Housing Market Conditions",data:n.numericValues}],categories:l,type:"homes",chartType:"bar",showGrid:!1,yaxis:{min:0,labels:{show:!1}},height:"150%",colorAssignmentRule:({dataPointIndex:e})=>{const r=n.stringValues;return"sellers_market"===r[e]?t:"neutral_market"===r[e]?a:s}})}):null},qr=({className:e,children:r,colors:t={}})=>{const{buyerColor:a=Z.buyerColor,sellerColor:s=Z.sellerColor,decreaseColor:i=Z.decreaseColor,neutralColor:n=Z.neutralColor,increaseColor:l=Z.increaseColor}=t;return(0,me.jsx)(Nr.Provider,{value:{buyerColor:a,sellerColor:s,decreaseColor:i,neutralColor:n,increaseColor:l},children:(0,me.jsx)("div",{className:`flex flex-col w-full pr-2 md:p-0 -mt-2 -mb-6 md:m-0 ${e||""}`,children:r})})},Kr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_at_period_end?.active_listings_count,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_at_period_end?.active_listings_count}:null,[r]),s=(0,Q.useMemo)(()=>a&&0!==a.previous?(a.current-a.previous)/a.previous:0,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.activeListings.title")}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.activeListings.title")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Zr,{yAxisTitle:e("graphs.activeListings.yAxisTitle"),isIncrease:s>=0})})]}):null},Gr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>{const e=r?.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity.stats_over_period?.market_conditions_indicator_MOI_12month;return"number"!=typeof e?null:e>=9?100:e/9*100},[r?.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity.stats_over_period?.market_conditions_indicator_MOI_12month]);return a?(0,me.jsxs)("div",{className:yr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.marketType.title")}),(0,me.jsx)("h4",{className:br,children:e("graphs.marketType.disclaimer")}),(0,me.jsx)("div",{className:"\n w-full\n flex\n justify-center\n mt-2\n",children:(0,me.jsx)(qr,{colors:t?.colors,className:"items-center !p-0 !m-0",children:(0,me.jsx)(Vr,{buyerSellerPercentage:a,labels:{buyer:e("graphs.marketType.marketTypes.buyer"),seller:e("graphs.marketType.marketTypes.seller"),neutral:e("graphs.marketType.marketTypes.neutral")}})})})]}):null},zr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_at_period_end?.home_asking_prices?.median_price,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_at_period_end?.home_asking_prices?.median_price}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianAskingPrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianAskingPrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianAskingPrice.title"),disclaimer:e("graphs.medianAskingPrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Dr,{isIncrease:!s||s>=0})})]}):null},Br=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_over_period?.market_speed?.median_days_on_market,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_over_period?.market_speed?.median_days_on_market}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianDaysOnMarket.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianDaysOnMarket.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianDaysOnMarket.title"),disclaimer:e("graphs.medianDaysOnMarket.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Or,{yAxisTitle:e("graphs.medianDaysOnMarket.yAxisTitle"),isIncrease:!s||s>=0})})]}):null},Wr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSalePrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSalePrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSalePrice.title"),disclaimer:e("graphs.medianSalePrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Pr,{isIncrease:!s||s>=0})})]}):null},Ur=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>{if(!r)return null;const t=r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent;return{current:t,currentInPercentChange:(()=>{if(!t)return null;const r=Math.abs(Math.round(10*(t-100))/10);return 0===r?e("valueComparison.equal"):`${r}% ${e(t>100?"valueComparison.higher":"valueComparison.lower")}`})(),previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent}},[r,e]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSaleVsAskingPrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSaleVsAskingPrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.currentInPercentChange})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSaleVsAskingPrice.title"),disclaimer:e("graphs.medianSaleVsAskingPrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Sr,{isIncrease:!s||s>=0})})]}):null},Yr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r}=he(),t=(0,Q.useMemo)(()=>r?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.median_construction_year_sold_homes,[r]);return t?(0,me.jsx)("div",{className:"\n border border-gray-100 md:border-ll-border rounded-md\n p-2 md:p-4 w-fit\n",children:(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianConstructionYear.title"),(0,me.jsx)("span",{className:"\n text-sm\n text-ll-on-surface\n",children:t}),"."]})}):null},Xr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price_per_square_foot,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price_per_square_foot}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.previous&&a.current?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSalePricePerSqft.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSalePricePerSqft.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSalePricePerSqft.title"),disclaimer:e("graphs.medianSalePricePerSqft.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Rr,{isIncrease:!s||s>=0})})]}):null},Jr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.sold_homes_count,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.sold_homes_count}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.homesSold.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.homesSold.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.homesSold.title"),disclaimer:e("graphs.homesSold.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Fr,{isIncrease:!s||s>=0})})]}):null},Qr="w-2 h-2 rounded-full mr-1.5",et="\n flex items-center mr-4\n",rt=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he();return r?(0,me.jsxs)("div",{className:yr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.housingMarketConditions.title")}),(0,me.jsx)("h4",{className:br,children:e("graphs.housingMarketConditions.subtitle")}),(0,me.jsxs)("div",{className:"\n flex\n",children:[(0,me.jsxs)("div",{className:"\n flex flex-col justify-between py-12 items-center w-10 -mr-4 md:-mr-2\n",children:[(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.buyer")}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.neutral")}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.seller")})]}),(0,me.jsx)("div",{className:"\n flex-1\n",children:(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)($r,{})})})]}),(0,me.jsxs)("div",{className:"\n flex items-center justify-start mt-8 md:mt-2 ml-14\n",children:[(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.sellerColor||Z.sellerColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.seller")})]}),(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.neutralColor||Z.neutralColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.neutral")})]}),(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.buyerColor||Z.buyerColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.buyer")})]})]})]}):null},tt=({className:e,children:r})=>(0,me.jsx)("div",{className:`\n flex flex-col w-full justify-between gap-2\n ${e||""}`,children:r}),at="\n flex\n flex-col\n gap-4\n",st=({omitTabs:e})=>{const{t:r}=i("neighborhoodMarketTrends"),t=h(),{isLoading:a,marketActivity:s,homesSoldPercentage:n}=he(),l=s?.market_activity_by_property_type?.all_residential_properties.intervals,o=(0,Q.useMemo)(()=>{const t=l?.["12m"]?.market_activity.stats_over_period,a=l?.["12m"]?.market_activity.stats_at_period_end,s=l?.["30d"]?.market_activity.stats_over_period,i=Object.entries(l??{}).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),o=0===i.length||i.every(([e,r])=>0===(r.market_activity?.stats_over_period?.market_conditions_indicator_MOI_12month??0))||i.every(([e,r])=>!r.market_activity?.stats_over_period?.market_conditions_assessment);return[{id:le.marketConditions,icon:y,label:r("tabs.marketConditions.title"),content:[...o||void 0===s?.market_conditions_indicator_MOI_12month?[]:[(0,me.jsx)(Gr,{},"market-type"),(0,me.jsx)(rt,{},"market-conditions")]]},{id:le.currentActivity,icon:se,label:r("tabs.currentActivity.title"),content:[...void 0!==a?.home_asking_prices.median_price?[(0,me.jsx)(zr,{},"median-asking-price")]:[],...void 0!==t?.market_speed.median_days_on_market?[(0,me.jsx)(Br,{},"median-days-on-market")]:[],...void 0!==l?.["30d"]?.market_activity?.stats_at_period_end?.active_listings_count?[(0,me.jsx)(Kr,{},"active-listings")]:[],...void 0!==t?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent&&n>=.75?[(0,me.jsx)(Ur,{},"median-sales-vs-asking-price")]:[]]},{id:le.recentTrends,icon:g,label:r("tabs.recentTrends.title"),content:[...void 0!==t?.median_construction_year_sold_homes?[(0,me.jsx)(Yr,{},"median-construction-year")]:[],...void 0!==t?.sold_homes_count&&n>=.75?[(0,me.jsx)(Wr,{},"median-sale-price")]:[],...void 0!==t?.home_selling_prices.median_price_per_square_foot&&n>=.75?[(0,me.jsx)(Xr,{},"median-sale-price-sq-ft")]:[],...void 0!==t?.sold_homes_count?[(0,me.jsx)(Jr,{},"homes-sold")]:[]]}].filter(r=>!e?.includes(r.id)&&r.content.length>0)},[l]);return a?(0,me.jsx)("div",{className:"w-full h-full flex justify-center align-cennter",children:(0,me.jsx)(f,{image:!0})}):!s||!l||l&&0===Object.keys(l).length?(0,me.jsx)(J,{text:r("noData")}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)("div",{className:"\n border\n rounded-md\n hidden\n md:block\n",children:(0,me.jsxs)(vr,{defaultValue:o[0]?.id,onChange:e=>{t.postEvent({eventType:oe.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e}]}),t.trackAnalyticsEvent({eventName:ce.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e}})},children:[(0,me.jsx)(_r,{children:o.map(e=>(0,me.jsx)(hr,{icon:e.icon,tabId:e.id,className:"\n border-r-2\n last:border-r-0\n",children:e.label},e.id))}),(0,me.jsx)("div",{className:"\n py-8\n px-4\n",children:(0,me.jsx)(tt,{children:o.map(e=>(0,me.jsx)(ur,{tabId:e.id,className:at,children:e.content},`tab-content-${e.id}`))})})]})}),(0,me.jsx)("div",{className:"\n md:hidden\n",children:(0,me.jsx)(mr,{defaultValue:o[0]?.id,children:o.map(e=>(0,me.jsxs)(or,{value:e.id,children:[(0,me.jsx)(dr,{icon:e.icon,children:e.label}),(0,me.jsx)(cr,{className:at,children:e.content})]},e.id))})})]})},it=({hideAttribution:e})=>{const{t:r}=i("neighborhoodMarketTrends"),{locale:t,geography:a}=he();return(0,me.jsxs)("div",{className:"mt-2 md:mt-0 md:flex items-center bg-ll-background [&>a]:justify-end",children:[(0,me.jsx)("p",{className:"flex-1 text-sm p-3 text-ll-placeholder",children:r("disclaimer.footer",{context:(a?.level||10)>=30?"large":void 0})}),!e&&(0,me.jsx)(q,{sdkName:"neighborhood-market-trends",locale:t})]})},nt=_({lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),title:o().optional(),hideAttribution:m().optional(),omitTabs:o().optional(),appearance:_({colors:_({buyerColor:s().optional(),sellerColor:s().optional(),decreaseColor:s().optional(),neutralColor:s().optional(),increaseColor:s().optional()}).optional()}).optional()}).noUnknown(!0);d(c.neighborhoodWrap.key);var lt=()=>{const{t:e}=i("neighborhoodMarketTrends"),{sdkState:r}=P(),a=z(),s=r.globalOptions?.locale||"en",n=(0,Q.useMemo)(()=>r.options?.geographyId?{geographyId:r.options?.geographyId}:{lat:r.options?.lat,lng:r.options?.lng},[r.options?.lat,r.options?.lng,r.options?.geographyId]);return(0,me.jsx)(K,{children:(0,me.jsx)(G,{sdk:"Neighborhood Market Trends",schema:nt,options:r.options,children:(0,me.jsx)(p,{environment:r.globalOptions?.environment?.api,apiKey:r.apiKey,appearance:r.globalOptions?.appearance,locale:r.globalOptions?.locale,product:u.NEIGHBORHOOD_MARKET_TRENDS,children:(0,me.jsx)(t,{trackingPipelineSettings:{apiKey:r.apiKey||""},analyticsSettings:c.neighborhoodWrap,meta:{clientId:r.clientId,productName:u.NEIGHBORHOOD_MARKET_TRENDS,productVersion:"1.24.42"},attributes:{location:n,host:r.location,host_url:document.referrer,locale:s,isMobile:a},flags:{isDebugMode:!1},children:(0,me.jsxs)(ue,{children:[(0,me.jsx)(X,{title:"string"==typeof r.options?.title||!1===r.options?.title?r.options.title:e("title")}),(0,me.jsx)("p",{className:"\n mb-6\n text-xs\n text-neutral-800\n",children:e("disclaimer.header")}),(0,me.jsx)(st,{omitTabs:r.options?.omitTabs}),(0,me.jsx)(it,{hideAttribution:r.options?.hideAttribution})]})})})})})};export{lt as default};
3
- //# sourceMappingURL=NeighborhoodMarketTrends-DyzBmnXU.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GridGraph-_rWMkwNI.js","assets/index-PbHyodiU.js","assets/rolldown-runtime-C_ttsnZz.js","assets/google-maps-vendor-DvfEEdRU.js","assets/index-BeGXeG6-.css","assets/apexcharts-vendor-DL0uDIMv.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-C_ttsnZz.js";import{l as r}from"./google-maps-vendor-DvfEEdRU.js";import{a as t,d as a,f as s,g as i,h as n,i as l,m as o,n as c,o as d,p as m,r as p,s as h,t as u,u as _}from"./sdks-BTkz21XL.js";import{t as v}from"./CaretDown.es-nJe-LNlT.js";import{n as g,t as y}from"./HandCoins.es-CC012gfJ.js";import{t as x}from"./X.es-6bJd6-yU.js";import{t as j}from"./IconBase.es-CEehl5AX.js";import{B as f,F as b,G as k,I as M,L as C,M as N,N as A,R as w,V as I,d as T,f as E,h as V,j as H,m as L,o as Z,p as D,q as O,r as S,t as P,vt as R,z as F}from"./index-PbHyodiU.js";import{t as $}from"./useGeographies-DejQbRC9.js";import{n as q}from"./Attribution-D012fWNs.js";import{t as K}from"./ResizeWrapper-DbYmMKOU.js";import{t as G}from"./ValidateOptions-BqL9iY9R.js";import{t as z}from"./useIsMobile-Co5SddxR.js";/* empty css */import{i as B,n as W,r as U,t as Y}from"./dist-C_ktdPsv.js";import{t as X}from"./TitleHeader-Be2YRN93.js";import{n as J}from"./NoDataContent-CTxzT718.js";var Q=e(r(),1),ee=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M200,144l-72,72L56,144Z",opacity:"0.2"}),Q.createElement("path",{d:"M207.39,140.94A8,8,0,0,0,200,136H136V40a8,8,0,0,0-16,0v96H56a8,8,0,0,0-5.66,13.66l72,72a8,8,0,0,0,11.32,0l72-72A8,8,0,0,0,207.39,140.94ZM128,204.69,75.31,152H180.69Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72A8,8,0,0,1,56,136h64V40a8,8,0,0,1,16,0v96h64a8,8,0,0,1,5.66,13.66Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M204.24,148.24l-72,72a6,6,0,0,1-8.48,0l-72-72a6,6,0,0,1,8.48-8.48L122,201.51V40a6,6,0,0,1,12,0V201.51l61.76-61.75a6,6,0,0,1,8.48,8.48Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M205.66,149.66l-72,72a8,8,0,0,1-11.32,0l-72-72a8,8,0,0,1,11.32-11.32L120,196.69V40a8,8,0,0,1,16,0V196.69l58.34-58.35a8,8,0,0,1,11.32,11.32Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M202.83,146.83l-72,72a4,4,0,0,1-5.66,0l-72-72a4,4,0,0,1,5.66-5.66L124,206.34V40a4,4,0,0,1,8,0V206.34l65.17-65.17a4,4,0,0,1,5.66,5.66Z"}))]]),re=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,204H228V144a12,12,0,0,0,12.49-19.78L142.14,25.85a20,20,0,0,0-28.28,0L15.51,124.2A12,12,0,0,0,28,144v60H16a12,12,0,0,0,0,24H240a12,12,0,0,0,0-24ZM52,121.65l76-76,76,76V204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52ZM140,204H116V164h24Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M216,116.69V216H152V152H104v64H40V116.69l82.34-82.35a8,8,0,0,1,11.32,0Z",opacity:"0.2"}),Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM48,120l80-80,80,80v88H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48Zm96,88H112V160h32Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16Zm-88,0H104V160a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,210H222V131.17l5.76,5.76a6,6,0,0,0,8.48-8.49L137.9,30.09a14,14,0,0,0-19.8,0L19.76,128.44a6,6,0,0,0,8.48,8.49L34,131.17V210H16a6,6,0,0,0,0,12H240a6,6,0,0,0,0-12ZM46,119.17l80.58-80.59a2,2,0,0,1,2.84,0L210,119.17V210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46ZM146,210H110V158h36Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,208H224V136l2.34,2.34A8,8,0,0,0,237.66,127L139.31,28.68a16,16,0,0,0-22.62,0L18.34,127a8,8,0,0,0,11.32,11.31L32,136v72H16a8,8,0,0,0,0,16H240a8,8,0,0,0,0-16ZM48,120l80-80,80,80v88H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48Zm96,88H112V160h32Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M240,212H220V126.34l9.17,9.17a4,4,0,1,0,5.66-5.66L136.49,31.51a12,12,0,0,0-17,0L21.17,129.85a4,4,0,1,0,5.66,5.66L36,126.34V212H16a4,4,0,0,0,0,8H240a4,4,0,0,0,0-8ZM44,118.34l81.17-81.17a4,4,0,0,1,5.66,0L212,118.34V212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44ZM148,212H108V156h40Z"}))]]),te=new Map([["bold",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M108,84a16,16,0,1,1,16,16A16,16,0,0,1,108,84Zm128,44A108,108,0,1,1,128,20,108.12,108.12,0,0,1,236,128Zm-24,0a84,84,0,1,0-84,84A84.09,84.09,0,0,0,212,128Zm-72,36.68V132a20,20,0,0,0-20-20,12,12,0,0,0-4,23.32V168a20,20,0,0,0,20,20,12,12,0,0,0,4-23.32Z"}))],["duotone",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),Q.createElement("path",{d:"M144,176a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176Zm88-48A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128ZM124,96a12,12,0,1,0-12-12A12,12,0,0,0,124,96Z"}))],["fill",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"}))],["light",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M142,176a6,6,0,0,1-6,6,14,14,0,0,1-14-14V128a2,2,0,0,0-2-2,6,6,0,0,1,0-12,14,14,0,0,1,14,14v40a2,2,0,0,0,2,2A6,6,0,0,1,142,176ZM124,94a10,10,0,1,0-10-10A10,10,0,0,0,124,94Zm106,34A102,102,0,1,1,128,26,102.12,102.12,0,0,1,230,128Zm-12,0a90,90,0,1,0-90,90A90.1,90.1,0,0,0,218,128Z"}))],["regular",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"}))],["thin",Q.createElement(Q.Fragment,null,Q.createElement("path",{d:"M140,176a4,4,0,0,1-4,4,12,12,0,0,1-12-12V128a4,4,0,0,0-4-4,4,4,0,0,1,0-8,12,12,0,0,1,12,12v40a4,4,0,0,0,4,4A4,4,0,0,1,140,176ZM124,92a8,8,0,1,0-8-8A8,8,0,0,0,124,92Zm104,36A100,100,0,1,1,128,28,100.11,100.11,0,0,1,228,128Zm-8,0a92,92,0,1,0-92,92A92.1,92.1,0,0,0,220,128Z"}))]]),ae=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:ee}));ae.displayName="ArrowDownIcon";var se=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:re}));se.displayName="HouseLineIcon";var ie=Q.forwardRef((e,r)=>Q.createElement(j,{ref:r,...e,weights:te}));ie.displayName="InfoIcon";var ne=(e,r="en-US",t="USD",a=0)=>new Intl.NumberFormat(r,{style:"currency",currency:t,maximumFractionDigits:a}).format(e??0),le=function(e){return e.marketConditions="market-conditions",e.recentTrends="recent-trends",e.currentActivity="current-activity",e}({}),oe=function(e){return e.SDK_VIEWED="neighborhood-market-trends-Viewed",e.TAB_CLICKED="neighborhood-market-trends-Tab-Clicked",e}({}),ce=function(e){return e.SDK_VIEWED="sdk_viewed",e.CATEGORY_SELECTED="category_selected",e}({}),de={all:()=>["marketActivity"],list:e=>[...de.all(),e]};var me=O(),pe=Q.createContext({}),he=()=>(0,Q.useContext)(pe),ue=({children:e})=>{const{sdkState:r}=P(),t=r.globalOptions?.locale||"en",a=h(),s=(0,Q.useMemo)(()=>{const e=[],r=new Date;for(let t=0;t<=12;t+=1){const t=r.getFullYear(),a=r.getMonth(),s=`${t}-${String(a+1).padStart(2,"0")}`;e.push(s),r.setMonth(r.getMonth()-1)}return e.reverse()},[]);S(()=>{a.postEvent({eventType:oe.SDK_VIEWED}),a.trackAnalyticsEvent({eventName:ce.SDK_VIEWED})});const{isLoading:i,data:o}=$({location:{lat:void 0===r.options?.geographyId?r.options?.lat:void 0,lng:void 0===r.options?.geographyId?r.options?.lng:void 0},geogID:r.options?.geographyId||void 0,externalId:r?.globalOptions?.externalId}),{geographyId:c,geography:d}=(0,Q.useMemo)(()=>{const e=Object.entries(o||{});return{geographyId:e[0]?.[0],geography:e[0]?.[1]}},[i,o]),{data:m,isFetching:p}=function({geographyId:e,propertyTypes:r,intervals:t}){const{client:a}=l(),s=R();return n({queryKey:de.list({geogId:e}),queryFn:async()=>{const s=await a.getMarketActivity({geogId:e,propertyTypes:r,intervals:t});return void 0===s?null:s},enabled:!(!e||!s.marketTrendsSdk)})}({geographyId:c,propertyTypes:["all_residential_properties"],intervals:["30d","31-60d","12m","13-24m",...s]}),u=(0,Q.useMemo)(()=>{const e=m?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.sold_homes_count||0,r=m?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.sold_homes_with_sold_price_count||0;return e>0?r/e:0},[m]),_=(0,Q.useMemo)(()=>i||p,[i,p]),v=(0,Q.useMemo)(()=>({isLoading:_,homesSoldPercentage:u,marketActivity:m??null,appearance:r?.options?.appearance,locale:t,geography:d}),[m,_,u,t,d,c]);return(0,me.jsx)(pe.Provider,{value:v,children:e})},_e="Collapsible",[ve,ge]=w(_e),[ye,xe]=ve(_e),je=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,open:a,defaultOpen:s,disabled:i,onOpenChange:n,...l}=e,[o,c]=H({prop:a,defaultProp:s??!1,onChange:n,caller:_e});return(0,me.jsx)(ye,{scope:t,disabled:i,contentId:N(),open:o,onOpenToggle:Q.useCallback(()=>c(e=>!e),[c]),children:(0,me.jsx)(b.div,{"data-state":Ne(o),"data-disabled":i?"":void 0,...l,ref:r})})});je.displayName=_e;var fe="CollapsibleTrigger",be=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,...a}=e,s=xe(fe,t);return(0,me.jsx)(b.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":Ne(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...a,ref:r,onClick:F(e.onClick,s.onOpenToggle)})});be.displayName=fe;var ke="CollapsibleContent",Me=Q.forwardRef((e,r)=>{const{forceMount:t,...a}=e,s=xe(ke,e.__scopeCollapsible);return(0,me.jsx)(V,{present:t||s.open,children:({present:e})=>(0,me.jsx)(Ce,{...a,ref:r,present:e})})});Me.displayName=ke;var Ce=Q.forwardRef((e,r)=>{const{__scopeCollapsible:t,present:a,children:s,...i}=e,n=xe(ke,t),[l,o]=Q.useState(a),c=Q.useRef(null),d=I(r,c),m=Q.useRef(0),p=m.current,h=Q.useRef(0),u=h.current,_=n.open||l,v=Q.useRef(_),g=Q.useRef(void 0);return Q.useEffect(()=>{const e=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(e)},[]),A(()=>{const e=c.current;if(e){g.current=g.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";const r=e.getBoundingClientRect();m.current=r.height,h.current=r.width,v.current||(e.style.transitionDuration=g.current.transitionDuration,e.style.animationName=g.current.animationName),o(a)}},[n.open,a]),(0,me.jsx)(b.div,{"data-state":Ne(n.open),"data-disabled":n.disabled?"":void 0,id:n.contentId,hidden:!_,...i,ref:d,style:{"--radix-collapsible-content-height":p?`${p}px`:void 0,"--radix-collapsible-content-width":u?`${u}px`:void 0,...e.style},children:_&&s})});function Ne(e){return e?"open":"closed"}var Ae=je,we=be,Ie=Me,Te="Accordion",Ee=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[Ve,He,Le]=C(Te),[Ze,De]=w(Te,[Le,ge]),Oe=ge(),Se=Q.forwardRef((e,r)=>{const{type:t,...a}=e,s=a,i=a;return(0,me.jsx)(Ve.Provider,{scope:e.__scopeAccordion,children:"multiple"===t?(0,me.jsx)(Ke,{...i,ref:r}):(0,me.jsx)(qe,{...s,ref:r})})});Se.displayName=Te;var[Pe,Re]=Ze(Te),[Fe,$e]=Ze(Te,{collapsible:!1}),qe=Q.forwardRef((e,r)=>{const{value:t,defaultValue:a,onValueChange:s=()=>{},collapsible:i=!1,...n}=e,[l,o]=H({prop:t,defaultProp:a??"",onChange:s,caller:Te});return(0,me.jsx)(Pe,{scope:e.__scopeAccordion,value:Q.useMemo(()=>l?[l]:[],[l]),onItemOpen:o,onItemClose:Q.useCallback(()=>i&&o(""),[i,o]),children:(0,me.jsx)(Fe,{scope:e.__scopeAccordion,collapsible:i,children:(0,me.jsx)(Be,{...n,ref:r})})})}),Ke=Q.forwardRef((e,r)=>{const{value:t,defaultValue:a,onValueChange:s=()=>{},...i}=e,[n,l]=H({prop:t,defaultProp:a??[],onChange:s,caller:Te}),o=Q.useCallback(e=>l((r=[])=>[...r,e]),[l]),c=Q.useCallback(e=>l((r=[])=>r.filter(r=>r!==e)),[l]);return(0,me.jsx)(Pe,{scope:e.__scopeAccordion,value:n,onItemOpen:o,onItemClose:c,children:(0,me.jsx)(Fe,{scope:e.__scopeAccordion,collapsible:!0,children:(0,me.jsx)(Be,{...i,ref:r})})})}),[Ge,ze]=Ze(Te),Be=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,disabled:a,dir:s,orientation:i="vertical",...n}=e,l=I(Q.useRef(null),r),o=He(t),c="ltr"===M(s),d=F(e.onKeyDown,e=>{if(!Ee.includes(e.key))return;const r=e.target,t=o().filter(e=>!e.ref.current?.disabled),a=t.findIndex(e=>e.ref.current===r),s=t.length;if(-1===a)return;e.preventDefault();let n=a;const l=s-1,d=()=>{n=a+1,n>l&&(n=0)},m=()=>{n=a-1,n<0&&(n=l)};switch(e.key){case"Home":n=0;break;case"End":n=l;break;case"ArrowRight":"horizontal"===i&&(c?d():m());break;case"ArrowDown":"vertical"===i&&d();break;case"ArrowLeft":"horizontal"===i&&(c?m():d());break;case"ArrowUp":"vertical"===i&&m()}t[n%s].ref.current?.focus()});return(0,me.jsx)(Ge,{scope:t,disabled:a,direction:s,orientation:i,children:(0,me.jsx)(Ve.Slot,{scope:t,children:(0,me.jsx)(b.div,{...n,"data-orientation":i,ref:l,onKeyDown:a?void 0:d})})})}),We="AccordionItem",[Ue,Ye]=Ze(We),Xe=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,value:a,...s}=e,i=ze(We,t),n=Re(We,t),l=Oe(t),o=N(),c=a&&n.value.includes(a)||!1,d=i.disabled||e.disabled;return(0,me.jsx)(Ue,{scope:t,open:c,disabled:d,triggerId:o,children:(0,me.jsx)(Ae,{"data-orientation":i.orientation,"data-state":ar(c),...l,...s,ref:r,disabled:d,open:c,onOpenChange:e=>{e?n.onItemOpen(a):n.onItemClose(a)}})})});Xe.displayName=We;var Je="AccordionHeader";Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(Je,t);return(0,me.jsx)(b.h3,{"data-orientation":s.orientation,"data-state":ar(i.open),"data-disabled":i.disabled?"":void 0,...a,ref:r})}).displayName=Je;var Qe="AccordionTrigger",er=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(Qe,t),n=$e(Qe,t),l=Oe(t);return(0,me.jsx)(Ve.ItemSlot,{scope:t,children:(0,me.jsx)(we,{"aria-disabled":i.open&&!n.collapsible||void 0,"data-orientation":s.orientation,id:i.triggerId,...l,...a,ref:r})})});er.displayName=Qe;var rr="AccordionContent",tr=Q.forwardRef((e,r)=>{const{__scopeAccordion:t,...a}=e,s=ze(Te,t),i=Ye(rr,t),n=Oe(t);return(0,me.jsx)(Ie,{role:"region","aria-labelledby":i.triggerId,"data-orientation":s.orientation,...n,...a,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});function ar(e){return e?"open":"closed"}tr.displayName=rr;var sr=Se,ir=Xe,nr=er,lr=tr,or=({value:e,children:r,className:t})=>(0,me.jsx)(ir,{className:`\n border\n rounded-md\n py-4 px-3\n overflow-hidden\n ${t}`,value:e,children:r}),cr=({children:e,className:r})=>(0,me.jsx)(lr,{className:`\n flex\n gap-2\n overflow-hidden\n data-[state=open]:animate-slideDown\n ${r}`,children:e}),dr=({children:e,icon:r})=>(0,me.jsxs)(nr,{className:'\n flex gap-4 w-full\n group\n text-stone-500\n data-[state="open"]:border-b\n data-[state="open"]:pb-3\n data-[state="open"]:mb-4\n data-[state="open"]:text-ll-primary\n',children:[void 0!==r&&(0,me.jsx)(r,{className:"\n w-6\n"}),(0,me.jsxs)("div",{className:"\n grow\n text-left\n",children:[" ",e]}),(0,me.jsx)(v,{className:'\n h-3\n transition-transform duration-300 ease-[cubic-bezier(0.87,_0,_0.13,_1)]\n group-data-[state="open"]:rotate-180\n'})]}),mr=({defaultValue:e,children:r})=>(0,me.jsx)(sr,{defaultValue:e,collapsible:!0,type:"single",className:"\n flex\n flex-col\n gap-2\n",children:r}),pr=Q.createContext({}),hr=({tabId:e,icon:r,children:t,className:a})=>(0,me.jsxs)(B,{className:`\n flex\n gap-2\n text-stone-500\n justify-center\n w-full\n py-4\n border-b-4\n cursor-pointer\n select-none\n data-[state="active"]:border-b-ll-primary\n data-[state="active"]:text-ll-primary\n ${a}`,value:e,children:[void 0!==r&&(0,me.jsx)(r,{className:"\n w-6 h-6\n"}),t]}),ur=({tabId:e,children:r,className:t})=>(0,me.jsx)(Y,{value:e,className:t,children:r}),_r=({children:e,className:r})=>(0,me.jsx)(W,{className:`\n flex\n flex-row\n justify-between\n relative\n ${r}`,children:e}),vr=({defaultValue:e,onChange:r,children:t})=>(0,me.jsx)(pr.Provider,{value:{defaultValue:e,onChange:r,children:t},children:(0,me.jsx)(U,{defaultValue:e,onValueChange:e=>{r&&r(e)},children:t})}),gr="\n border border-gray-100 md:border-ll-border rounded-md md:min-h-40 w-full flex flex-col md:flex-row\n",yr="\n md:border border-gray-100 md:border-ll-border rounded-md md:min-h-40 w-full flex flex-col md:p-6\n",xr="\n flex flex-col justify-between min-w-60 p-2 md:p-4 border border-transparent border-b-gray-100 md:border-r-gray-300 md:w-5/12\n",jr="\n font-semibold text-ll-font-size-caption-1 text-ll-placeholder flex gap-x-1 items-center\n",fr="md:h-22 lg:h-11",br="\n text-xxs text-ll-placeholder\n",kr="\n text-ll-font-size-h4 font-semibold text-ll-on-surface\n leading-7 mt-6 mb-2\n";function Mr({children:e,change:r}){const t=z(),a=(0,Q.useMemo)(()=>t?"bottom":"right",[t]);return null===r||0===r?null:(0,me.jsxs)(D,{children:[(0,me.jsx)(L,{children:(0,me.jsx)(ie,{className:"w-4 h-4 cursor-pointer"})}),(0,me.jsxs)(E,{className:"bg-white py-2 pl-3 pr-8 relative shadow z-10 text-black max-w-80 font-normal text-xs rounded-lg",side:a,sideOffset:4,children:[e,(0,me.jsx)(T,{children:(0,me.jsx)(x,{className:"absolute right-2 top-1/2 transform -translate-y-1/2 cursor-pointer w-4 h-4",weight:"bold"})})]})]})}var Cr=({yearlyChange:e,disclaimer:r,fieldTitle:t})=>{const{t:a}=i("neighborhoodMarketTrends"),{appearance:s}=he(),n=e&&e>=0,l=(0,Q.useMemo)(()=>n?s?.colors?.increaseColor||Z.increaseColor:s?.colors?.decreaseColor||Z.decreaseColor,[s,n]);return(0,me.jsx)(me.Fragment,{children:e?(0,me.jsxs)("div",{className:"\n flex flex-wrap items-center\n",children:[(0,me.jsx)(ae,{className:"\n w-3 h-3 mr-1 data-[is-increase=true]:rotate-180\n",style:{color:l},weight:"bold","data-is-increase":n}),(0,me.jsxs)("div",{className:"\n flex gap-x-1 items-center\n",style:{color:l},children:[(0,me.jsxs)("p",{className:"\n text-ll-font-size-caption-1 leading-4\n",children:[(100*e).toFixed(2),"%"," ",a("marketIndicator."+(n?"increase":"decrease"))]}),r&&(0,me.jsx)(Mr,{children:r})]})]}):(0,me.jsx)("p",{className:"\n text-ll-font-size-caption-1 leading-4\n text-ll-placeholder\n",children:t&&a("marketIndicator.noChangeDisclaimer",{fieldTitle:t.toLocaleLowerCase()})})})},Nr=Q.createContext({}),Ar=()=>(0,Q.useContext)(Nr);function wr({sellerColor:e,neutralColor:r,buyerColor:t}){return(0,me.jsxs)("div",{className:"relative flex aspect-[2] items-center justify-center overflow-hidden rounded-t-full w-[218px] h-[109px]",children:[(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[17deg] transition-transform duration-500",style:{backgroundImage:`linear-gradient(to right top, ${e} 50%, rgba(0, 0, 0, 0) 50%)`}}),(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[17deg] transition-transform duration-500 opacity-30",style:{backgroundImage:`linear-gradient(to right top, rgba(0, 0, 0, 0) 50%, ${r} 50%)`}}),(0,me.jsx)("div",{className:"absolute aspect-square top-0 w-full rotate-[73deg] transition-transform duration-500",style:{backgroundImage:`linear-gradient(to right top, rgba(0, 0, 0, 0) 50%, ${t} 50%)`}}),(0,me.jsx)("div",{className:"absolute inset-7 flex aspect-[2] items-center justify-center overflow-hidden rounded-t-full",children:(0,me.jsx)("div",{className:"absolute top-0 flex aspect-square w-full justify-center rounded-full bg-white"})})]})}var Ir="#272525";function Tr(){return(0,me.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 13 93",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,me.jsx)("path",{d:"M6.3151 0.683594L11.6802 88.9218H0.949947L3.63252 44.8027L6.3151 0.683594Z",fill:Ir}),(0,me.jsx)("path",{d:"M12.1458 86.9782C12.1458 90.1985 9.53531 92.809 6.3151 92.809C3.09488 92.809 0.484375 90.1985 0.484375 86.9782C0.484375 83.758 3.09488 81.1475 6.3151 81.1475C9.53531 81.1475 12.1458 83.758 12.1458 86.9782Z",fill:Ir})]})}var Er="\n text-stone-400\n text-sm\n w-11\n",Vr=({buyerSellerPercentage:e,labels:r})=>{const{sellerColor:t,neutralColor:a,buyerColor:s}=Ar(),i=(0,Q.useMemo)(()=>({transform:`translate(-50%, 0) rotate(${1.8*e-90}deg)`,transformOrigin:"50% 100%"}),[e]);return(0,me.jsxs)("div",{className:"\n flex\n flex-col\n items-center\n gap-2.5\n max-w-80\n",children:[(0,me.jsx)("span",{className:Er,children:r.neutral}),(0,me.jsxs)("div",{className:"\n flex\n items-end\n gap-2.5\n",children:[(0,me.jsx)("span",{className:Er,children:r.seller}),(0,me.jsxs)("div",{className:"\n relative\n",children:[(0,me.jsx)(wr,{sellerColor:t,neutralColor:a,buyerColor:s}),(0,me.jsx)("div",{className:"\n absolute\n left-1/2\n w-5/6\n h-5/6\n -translate-x-1/2\n bottom-1\n",style:i,children:(0,me.jsx)(Tr,{})})]}),(0,me.jsx)("span",{className:Er,children:r.buyer})]})]})},Hr=(0,Q.lazy)(()=>k(()=>import("./GridGraph-_rWMkwNI.js").then(e=>({default:e.GridGraph})),__vite__mapDeps([0,1,2,3,4,5]))),Lr=e=>(0,me.jsx)(Q.Suspense,{fallback:(0,me.jsx)("div",{style:{height:"400px"}}),children:(0,me.jsx)(Hr,{...e})}),Zr=({yAxisTitle:e,isIncrease:r})=>{const{isLoading:t,marketActivity:a}=he(),{increaseColor:s,decreaseColor:i}=Ar(),n=(0,Q.useMemo)(()=>t||!a?[]:Object.entries(a.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[a,t]),l=(0,Q.useMemo)(()=>n.length<1?[]:n.map(([e,r])=>r.market_activity?.stats_at_period_end?.active_listings_count??null).reverse().filter(e=>null!==e),[n]),o=(0,Q.useMemo)(()=>n?n.map(([e,r])=>e).reverse():[],[n]),c=(0,Q.useMemo)(()=>{const e=Math.max(...l),r=Math.min(...l);return 100*Math.ceil((e+.2*(e-r))/100)},[l]);return a?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Active Listings",data:l}],categories:o,type:"homes",yaxis:{title:{text:e},max:c},markerColor:r?s:i})}):null},Dr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_at_period_end?.home_asking_prices?.median_price??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median asking price",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Or=({yAxisTitle:e,isIncrease:r})=>{const{isLoading:t,marketActivity:a}=he(),{increaseColor:s,decreaseColor:i}=Ar(),n=(0,Q.useMemo)(()=>t||!a?[]:Object.entries(a.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[a,t]),l=(0,Q.useMemo)(()=>n.length<1?[]:n.map(([e,r])=>r.market_activity?.stats_over_period?.market_speed?.median_days_on_market??null).reverse(),[n]),o=(0,Q.useMemo)(()=>n?n.map(([e,r])=>e).reverse():[],[n]),c=(0,Q.useMemo)(()=>{const e=l.filter(e=>void 0!==e),r=Math.max(...e),t=Math.min(...e);return{max:10*Math.ceil((r+.2*(r-t))/10),min:Math.max(0,10*Math.floor((t-.2*(r-t))/10))}},[l]);return a?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median Days On Market",data:l}],categories:o,type:"homes",yaxis:{title:{text:e},max:c.max,min:c.min},markerColor:r?s:i})}):null},Sr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>{const t=r.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent??null;return null!==t?t>0?t-100:0:null}).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median Sale vs Asking Price",data:n}],categories:l,type:"percentage",chartType:"bar",showGrid:!0,showYAxisAnnotation:!0,markerColor:e?a:s})}):null},Pr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.home_selling_prices.median_price??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median sales price",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Rr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.home_selling_prices.median_price_per_square_foot??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Median sales price per square foot",data:n}],categories:l,type:"price",markerColor:e?a:s})}):null},Fr=({isIncrease:e})=>{const{isLoading:r,marketActivity:t}=he(),{increaseColor:a,decreaseColor:s}=Ar(),i=(0,Q.useMemo)(()=>r||!t?[]:Object.entries(t.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[t,r]),n=(0,Q.useMemo)(()=>i.length<1?[]:i.map(([e,r])=>r.market_activity?.stats_over_period?.sold_homes_count??null).reverse(),[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return t?(0,me.jsx)("div",{children:(0,me.jsx)(Lr,{series:[{name:"Homes Sold",data:n}],categories:l,type:"homes",markerColor:e?a:s})}):null},$r=()=>{const{isLoading:e,marketActivity:r}=he(),{sellerColor:t,neutralColor:a,buyerColor:s}=Ar(),i=(0,Q.useMemo)(()=>e||!r?[]:Object.entries(r.market_activity_by_property_type?.all_residential_properties.intervals).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),[r,e]),n=(0,Q.useMemo)(()=>i.length<1?{numericValues:[],stringValues:[]}:{numericValues:i.map(([e,r])=>r.market_activity?.stats_over_period?.market_conditions_indicator_MOI_12month??null).reverse().map(e=>null!==e&&e>100?100:e),stringValues:i.map(([e,r])=>r.market_activity?.stats_over_period?.market_conditions_assessment??0).reverse()},[i]),l=(0,Q.useMemo)(()=>i?i.map(([e,r])=>e).reverse():[],[i]);return r?(0,me.jsx)("div",{className:"-mr-2",children:(0,me.jsx)(Lr,{series:[{name:"Housing Market Conditions",data:n.numericValues}],categories:l,type:"homes",chartType:"bar",showGrid:!1,yaxis:{min:0,labels:{show:!1}},height:"150%",colorAssignmentRule:({dataPointIndex:e})=>{const r=n.stringValues;return"sellers_market"===r[e]?t:"neutral_market"===r[e]?a:s}})}):null},qr=({className:e,children:r,colors:t={}})=>{const{buyerColor:a=Z.buyerColor,sellerColor:s=Z.sellerColor,decreaseColor:i=Z.decreaseColor,neutralColor:n=Z.neutralColor,increaseColor:l=Z.increaseColor}=t;return(0,me.jsx)(Nr.Provider,{value:{buyerColor:a,sellerColor:s,decreaseColor:i,neutralColor:n,increaseColor:l},children:(0,me.jsx)("div",{className:`flex flex-col w-full pr-2 md:p-0 -mt-2 -mb-6 md:m-0 ${e||""}`,children:r})})},Kr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_at_period_end?.active_listings_count,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_at_period_end?.active_listings_count}:null,[r]),s=(0,Q.useMemo)(()=>a&&0!==a.previous?(a.current-a.previous)/a.previous:0,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.activeListings.title")}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.activeListings.title")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Zr,{yAxisTitle:e("graphs.activeListings.yAxisTitle"),isIncrease:s>=0})})]}):null},Gr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>{const e=r?.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity.stats_over_period?.market_conditions_indicator_MOI_12month;return"number"!=typeof e?null:e>=9?100:e/9*100},[r?.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity.stats_over_period?.market_conditions_indicator_MOI_12month]);return a?(0,me.jsxs)("div",{className:yr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.marketType.title")}),(0,me.jsx)("h4",{className:br,children:e("graphs.marketType.disclaimer")}),(0,me.jsx)("div",{className:"\n w-full\n flex\n justify-center\n mt-2\n",children:(0,me.jsx)(qr,{colors:t?.colors,className:"items-center !p-0 !m-0",children:(0,me.jsx)(Vr,{buyerSellerPercentage:a,labels:{buyer:e("graphs.marketType.marketTypes.buyer"),seller:e("graphs.marketType.marketTypes.seller"),neutral:e("graphs.marketType.marketTypes.neutral")}})})})]}):null},zr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_at_period_end?.home_asking_prices?.median_price,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_at_period_end?.home_asking_prices?.median_price}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianAskingPrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianAskingPrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianAskingPrice.title"),disclaimer:e("graphs.medianAskingPrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Dr,{isIncrease:!s||s>=0})})]}):null},Br=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_over_period?.market_speed?.median_days_on_market,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_over_period?.market_speed?.median_days_on_market}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianDaysOnMarket.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianDaysOnMarket.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianDaysOnMarket.title"),disclaimer:e("graphs.medianDaysOnMarket.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Or,{yAxisTitle:e("graphs.medianDaysOnMarket.yAxisTitle"),isIncrease:!s||s>=0})})]}):null},Wr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSalePrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSalePrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSalePrice.title"),disclaimer:e("graphs.medianSalePrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Pr,{isIncrease:!s||s>=0})})]}):null},Ur=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>{if(!r)return null;const t=r.market_activity_by_property_type?.all_residential_properties.intervals["30d"]?.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent;return{current:t,currentInPercentChange:(()=>{if(!t)return null;const r=Math.abs(Math.round(10*(t-100))/10);return 0===r?e("valueComparison.equal"):`${r}% ${e(t>100?"valueComparison.higher":"valueComparison.lower")}`})(),previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["31-60d"]?.market_activity?.stats_over_period?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent}},[r,e]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSaleVsAskingPrice.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSaleVsAskingPrice.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.currentInPercentChange})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSaleVsAskingPrice.title"),disclaimer:e("graphs.medianSaleVsAskingPrice.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Sr,{isIncrease:!s||s>=0})})]}):null},Yr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r}=he(),t=(0,Q.useMemo)(()=>r?.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.median_construction_year_sold_homes,[r]);return t?(0,me.jsx)("div",{className:"\n border border-gray-100 md:border-ll-border rounded-md\n p-2 md:p-4 w-fit\n",children:(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianConstructionYear.title"),(0,me.jsx)("span",{className:"\n text-sm\n text-ll-on-surface\n",children:t}),"."]})}):null},Xr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price_per_square_foot,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.home_selling_prices?.median_price_per_square_foot}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.previous&&a.current?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.medianSalePricePerSqft.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.medianSalePricePerSqft.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current&&ne(a.current)})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.medianSalePricePerSqft.title"),disclaimer:e("graphs.medianSalePricePerSqft.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Rr,{isIncrease:!s||s>=0})})]}):null},Jr=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he(),a=(0,Q.useMemo)(()=>r?{current:r.market_activity_by_property_type?.all_residential_properties.intervals["12m"]?.market_activity?.stats_over_period?.sold_homes_count,previous:r.market_activity_by_property_type?.all_residential_properties?.intervals["13-24m"]?.market_activity?.stats_over_period?.sold_homes_count}:null,[r]),s=(0,Q.useMemo)(()=>a&&a.current&&a.previous?(a.current-a.previous)/a.previous:null,[a]);return a?(0,me.jsxs)("div",{className:gr,children:[(0,me.jsxs)("div",{className:xr,children:[(0,me.jsx)("div",{children:(0,me.jsxs)("div",{className:fr,children:[(0,me.jsxs)("h3",{className:jr,children:[e("graphs.homesSold.title"),(0,me.jsx)(Mr,{change:s,children:e("graphs.homesSold.disclaimer")})]}),(0,me.jsx)("h4",{className:kr,children:a.current})]})}),(0,me.jsx)(Cr,{yearlyChange:s,fieldTitle:e("graphs.homesSold.title"),disclaimer:e("graphs.homesSold.changeDisclaimer")})]}),(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)(Fr,{isIncrease:!s||s>=0})})]}):null},Qr="w-2 h-2 rounded-full mr-1.5",et="\n flex items-center mr-4\n",rt=()=>{const{t:e}=i("neighborhoodMarketTrends"),{marketActivity:r,appearance:t}=he();return r?(0,me.jsxs)("div",{className:yr,children:[(0,me.jsx)("h3",{className:jr,children:e("graphs.housingMarketConditions.title")}),(0,me.jsx)("h4",{className:br,children:e("graphs.housingMarketConditions.subtitle")}),(0,me.jsxs)("div",{className:"\n flex\n",children:[(0,me.jsxs)("div",{className:"\n flex flex-col justify-between py-12 items-center w-10 -mr-4 md:-mr-2\n",children:[(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.buyer")}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.neutral")}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.seller")})]}),(0,me.jsx)("div",{className:"\n flex-1\n",children:(0,me.jsx)(qr,{colors:t?.colors,children:(0,me.jsx)($r,{})})})]}),(0,me.jsxs)("div",{className:"\n flex items-center justify-start mt-8 md:mt-2 ml-14\n",children:[(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.sellerColor||Z.sellerColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.seller")})]}),(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.neutralColor||Z.neutralColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.neutral")})]}),(0,me.jsxs)("div",{className:et,children:[(0,me.jsx)("div",{className:Qr,style:{backgroundColor:t?.colors?.buyerColor||Z.buyerColor}}),(0,me.jsx)("p",{className:br,children:e("graphs.housingMarketConditions.marketTypes.buyer")})]})]})]}):null},tt=({className:e,children:r})=>(0,me.jsx)("div",{className:`\n flex flex-col w-full justify-between gap-2\n ${e||""}`,children:r}),at="\n flex\n flex-col\n gap-4\n",st=({omitTabs:e})=>{const{t:r}=i("neighborhoodMarketTrends"),t=h(),{isLoading:a,marketActivity:s,homesSoldPercentage:n}=he(),l=s?.market_activity_by_property_type?.all_residential_properties.intervals,o=(0,Q.useMemo)(()=>{const t=l?.["12m"]?.market_activity.stats_over_period,a=l?.["12m"]?.market_activity.stats_at_period_end,s=l?.["30d"]?.market_activity.stats_over_period,i=Object.entries(l??{}).filter(([e])=>e.match(/^\d{4}-\d{2}$/)),o=0===i.length||i.every(([e,r])=>0===(r.market_activity?.stats_over_period?.market_conditions_indicator_MOI_12month??0))||i.every(([e,r])=>!r.market_activity?.stats_over_period?.market_conditions_assessment);return[{id:le.marketConditions,icon:y,label:r("tabs.marketConditions.title"),content:[...o||void 0===s?.market_conditions_indicator_MOI_12month?[]:[(0,me.jsx)(Gr,{},"market-type"),(0,me.jsx)(rt,{},"market-conditions")]]},{id:le.currentActivity,icon:se,label:r("tabs.currentActivity.title"),content:[...void 0!==a?.home_asking_prices.median_price?[(0,me.jsx)(zr,{},"median-asking-price")]:[],...void 0!==t?.market_speed.median_days_on_market?[(0,me.jsx)(Br,{},"median-days-on-market")]:[],...void 0!==l?.["30d"]?.market_activity?.stats_at_period_end?.active_listings_count?[(0,me.jsx)(Kr,{},"active-listings")]:[],...void 0!==t?.home_selling_prices?.median_ratio_of_sold_to_asking_price_percent&&n>=.75?[(0,me.jsx)(Ur,{},"median-sales-vs-asking-price")]:[]]},{id:le.recentTrends,icon:g,label:r("tabs.recentTrends.title"),content:[...void 0!==t?.median_construction_year_sold_homes?[(0,me.jsx)(Yr,{},"median-construction-year")]:[],...void 0!==t?.sold_homes_count&&n>=.75?[(0,me.jsx)(Wr,{},"median-sale-price")]:[],...void 0!==t?.home_selling_prices.median_price_per_square_foot&&n>=.75?[(0,me.jsx)(Xr,{},"median-sale-price-sq-ft")]:[],...void 0!==t?.sold_homes_count?[(0,me.jsx)(Jr,{},"homes-sold")]:[]]}].filter(r=>!e?.includes(r.id)&&r.content.length>0)},[l]);return a?(0,me.jsx)("div",{className:"w-full h-full flex justify-center align-cennter",children:(0,me.jsx)(f,{image:!0})}):!s||!l||l&&0===Object.keys(l).length?(0,me.jsx)(J,{text:r("noData")}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)("div",{className:"\n border\n rounded-md\n hidden\n md:block\n",children:(0,me.jsxs)(vr,{defaultValue:o[0]?.id,onChange:e=>{t.postEvent({eventType:oe.TAB_CLICKED,eventAttributes:[{label:"activeCategory",data:e}]}),t.trackAnalyticsEvent({eventName:ce.CATEGORY_SELECTED,eventAttributes:{ll_selected_category:e}})},children:[(0,me.jsx)(_r,{children:o.map(e=>(0,me.jsx)(hr,{icon:e.icon,tabId:e.id,className:"\n border-r-2\n last:border-r-0\n",children:e.label},e.id))}),(0,me.jsx)("div",{className:"\n py-8\n px-4\n",children:(0,me.jsx)(tt,{children:o.map(e=>(0,me.jsx)(ur,{tabId:e.id,className:at,children:e.content},`tab-content-${e.id}`))})})]})}),(0,me.jsx)("div",{className:"\n md:hidden\n",children:(0,me.jsx)(mr,{defaultValue:o[0]?.id,children:o.map(e=>(0,me.jsxs)(or,{value:e.id,children:[(0,me.jsx)(dr,{icon:e.icon,children:e.label}),(0,me.jsx)(cr,{className:at,children:e.content})]},e.id))})})]})},it=({hideAttribution:e})=>{const{t:r}=i("neighborhoodMarketTrends"),{locale:t,geography:a}=he();return(0,me.jsxs)("div",{className:"mt-2 md:mt-0 md:flex items-center bg-ll-background [&>a]:justify-end",children:[(0,me.jsx)("p",{className:"flex-1 text-sm p-3 text-ll-placeholder",children:r("disclaimer.footer",{context:(a?.level||10)>=30?"large":void 0})}),!e&&(0,me.jsx)(q,{sdkName:"neighborhood-market-trends",locale:t})]})},nt=_({lat:a().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:a().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:s().optional(),title:o().optional(),hideAttribution:m().optional(),omitTabs:o().optional(),appearance:_({colors:_({buyerColor:s().optional(),sellerColor:s().optional(),decreaseColor:s().optional(),neutralColor:s().optional(),increaseColor:s().optional()}).optional()}).optional()}).noUnknown(!0);d(c.neighborhoodWrap.key);var lt=()=>{const{t:e}=i("neighborhoodMarketTrends"),{sdkState:r}=P(),a=z(),s=r.globalOptions?.locale||"en",n=(0,Q.useMemo)(()=>r.options?.geographyId?{geographyId:r.options?.geographyId}:{lat:r.options?.lat,lng:r.options?.lng},[r.options?.lat,r.options?.lng,r.options?.geographyId]);return(0,me.jsx)(K,{children:(0,me.jsx)(G,{sdk:"Neighborhood Market Trends",schema:nt,options:r.options,children:(0,me.jsx)(p,{environment:r.globalOptions?.environment?.api,apiKey:r.apiKey,appearance:r.globalOptions?.appearance,locale:r.globalOptions?.locale,product:u.NEIGHBORHOOD_MARKET_TRENDS,children:(0,me.jsx)(t,{trackingPipelineSettings:{apiKey:r.apiKey||""},analyticsSettings:c.neighborhoodWrap,meta:{clientId:r.clientId,productName:u.NEIGHBORHOOD_MARKET_TRENDS,productVersion:"1.24.44"},attributes:{location:n,host:r.location,host_url:document.referrer,locale:s,isMobile:a},flags:{isDebugMode:!1},children:(0,me.jsxs)(ue,{children:[(0,me.jsx)(X,{title:"string"==typeof r.options?.title||!1===r.options?.title?r.options.title:e("title")}),(0,me.jsx)("p",{className:"\n mb-6\n text-xs\n text-neutral-800\n",children:e("disclaimer.header")}),(0,me.jsx)(st,{omitTabs:r.options?.omitTabs}),(0,me.jsx)(it,{hideAttribution:r.options?.hideAttribution})]})})})})})};export{lt as default};
3
+ //# sourceMappingURL=NeighborhoodMarketTrends-COqvs4Fz.js.map