@redneckz/wildless-cms-uni-blocks 0.5.3 → 0.5.5

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 (353) hide show
  1. package/README.md +10 -3
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +235 -77
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/cosmos-static/icons/MapMarkerClusterIcon.svg +1 -0
  6. package/cosmos-static/icons/MapMarkerSingleIcon.svg +1 -0
  7. package/dist/ProjectSettings.d.ts +2 -0
  8. package/dist/ProjectSettings.js +3 -0
  9. package/dist/ProjectSettings.js.map +1 -1
  10. package/dist/components/Bonus/Bonus.js +1 -1
  11. package/dist/components/Bonus/Bonus.js.map +1 -1
  12. package/dist/components/Calculator/Calculator.js +1 -1
  13. package/dist/components/Calculator/Calculator.js.map +1 -1
  14. package/dist/components/ErrorBlock/ErrorBlock.js +3 -3
  15. package/dist/components/ErrorBlock/ErrorBlock.js.map +1 -1
  16. package/dist/components/ErrorBlock/ErrorBlockContent.d.ts +6 -6
  17. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  18. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  19. package/dist/components/Navigation/Navigation.js +1 -1
  20. package/dist/components/Navigation/Navigation.js.map +1 -1
  21. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -3
  22. package/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  23. package/dist/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +2 -1
  24. package/dist/components/SafeDepositRental/RegionsAndBranches.d.ts +2 -2
  25. package/dist/components/SafeDepositRental/SafeBoxCases.d.ts +1 -1
  26. package/dist/components/SafeDepositRental/SafeDepositRental.js +14 -2
  27. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  28. package/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +2 -17
  29. package/dist/components/SafeDepositRental/SafeDepositRentalFields.d.ts +9 -0
  30. package/dist/components/SafeDepositRental/SafeDepositRentalFields.js +21 -0
  31. package/dist/components/SafeDepositRental/SafeDepositRentalFields.js.map +1 -0
  32. package/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +2 -0
  33. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js +33 -42
  34. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  35. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +1 -1
  36. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  37. package/dist/components/SafeDepositRental/SafeDepositRentalTypes.d.ts +10 -0
  38. package/dist/components/SafeDepositRental/SafeDepositRentalTypes.js +2 -0
  39. package/dist/components/SafeDepositRental/SafeDepositRentalTypes.js.map +1 -0
  40. package/dist/components/SafeDepositRental/WrapperSelect.js +2 -2
  41. package/dist/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  42. package/dist/components/SafeDepositRental/YandexMap.d.ts +5 -0
  43. package/dist/components/SafeDepositRental/YandexMap.js +24 -0
  44. package/dist/components/SafeDepositRental/YandexMap.js.map +1 -0
  45. package/dist/components/SafeDepositRental/renderClusterer.d.ts +1 -0
  46. package/dist/components/SafeDepositRental/renderClusterer.js +37 -0
  47. package/dist/components/SafeDepositRental/renderClusterer.js.map +1 -0
  48. package/dist/components/SafeDepositRental/useGetRegions.js +1 -1
  49. package/dist/components/SafeDepositRental/useGetRegions.js.map +1 -1
  50. package/dist/components/SafeDepositRental/utils.d.ts +3 -0
  51. package/dist/components/SafeDepositRental/utils.js +15 -0
  52. package/dist/components/SafeDepositRental/utils.js.map +1 -0
  53. package/dist/hooks/useFetchSafeBoxes.d.ts +22 -0
  54. package/dist/hooks/useFetchSafeBoxes.js +17 -0
  55. package/dist/hooks/useFetchSafeBoxes.js.map +1 -0
  56. package/dist/hooks/useScript.d.ts +6 -0
  57. package/dist/hooks/useScript.js +75 -0
  58. package/dist/hooks/useScript.js.map +1 -0
  59. package/dist/icons/IconName.d.ts +6 -2
  60. package/dist/icons/IconName.js +4 -0
  61. package/dist/icons/IconName.js.map +1 -1
  62. package/dist/react/setup-fixture.js +6 -0
  63. package/dist/react/setup-fixture.js.map +1 -1
  64. package/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  65. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  66. package/dist/ui-kit/Button/LikeButton.js +1 -1
  67. package/dist/ui-kit/Button/LikeButton.js.map +1 -1
  68. package/dist/ui-kit/SearchBar/SearchBarInner.js +1 -1
  69. package/dist/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  70. package/dist/wlc.json +5 -0
  71. package/lib/ProjectSettings.d.ts +2 -0
  72. package/lib/ProjectSettings.js +3 -0
  73. package/lib/ProjectSettings.js.map +1 -1
  74. package/lib/common.css +1 -1
  75. package/lib/components/Bonus/Bonus.js +1 -1
  76. package/lib/components/Bonus/Bonus.js.map +1 -1
  77. package/lib/components/Calculator/Calculator.js +1 -1
  78. package/lib/components/Calculator/Calculator.js.map +1 -1
  79. package/lib/components/ErrorBlock/ErrorBlock.js +3 -3
  80. package/lib/components/ErrorBlock/ErrorBlock.js.map +1 -1
  81. package/lib/components/ErrorBlock/ErrorBlockContent.d.ts +6 -6
  82. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  83. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  84. package/lib/components/Navigation/Navigation.js +1 -1
  85. package/lib/components/Navigation/Navigation.js.map +1 -1
  86. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -3
  87. package/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  88. package/lib/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +2 -1
  89. package/lib/components/SafeDepositRental/RegionsAndBranches.d.ts +2 -2
  90. package/lib/components/SafeDepositRental/SafeBoxCases.d.ts +1 -1
  91. package/lib/components/SafeDepositRental/SafeDepositRental.js +14 -2
  92. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  93. package/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +2 -17
  94. package/lib/components/SafeDepositRental/SafeDepositRentalFields.d.ts +9 -0
  95. package/lib/components/SafeDepositRental/SafeDepositRentalFields.js +19 -0
  96. package/lib/components/SafeDepositRental/SafeDepositRentalFields.js.map +1 -0
  97. package/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +2 -0
  98. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js +33 -42
  99. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  100. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +1 -1
  101. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  102. package/lib/components/SafeDepositRental/SafeDepositRentalTypes.d.ts +10 -0
  103. package/lib/components/SafeDepositRental/SafeDepositRentalTypes.js +2 -0
  104. package/lib/components/SafeDepositRental/SafeDepositRentalTypes.js.map +1 -0
  105. package/lib/components/SafeDepositRental/WrapperSelect.js +2 -2
  106. package/lib/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  107. package/lib/components/SafeDepositRental/YandexMap.d.ts +5 -0
  108. package/lib/components/SafeDepositRental/YandexMap.js +22 -0
  109. package/lib/components/SafeDepositRental/YandexMap.js.map +1 -0
  110. package/lib/components/SafeDepositRental/renderClusterer.d.ts +1 -0
  111. package/lib/components/SafeDepositRental/renderClusterer.js +34 -0
  112. package/lib/components/SafeDepositRental/renderClusterer.js.map +1 -0
  113. package/lib/components/SafeDepositRental/useGetRegions.js +1 -1
  114. package/lib/components/SafeDepositRental/useGetRegions.js.map +1 -1
  115. package/lib/components/SafeDepositRental/utils.d.ts +3 -0
  116. package/lib/components/SafeDepositRental/utils.js +11 -0
  117. package/lib/components/SafeDepositRental/utils.js.map +1 -0
  118. package/lib/hooks/useFetchSafeBoxes.d.ts +22 -0
  119. package/lib/hooks/useFetchSafeBoxes.js +14 -0
  120. package/lib/hooks/useFetchSafeBoxes.js.map +1 -0
  121. package/lib/hooks/useScript.d.ts +6 -0
  122. package/lib/hooks/useScript.js +72 -0
  123. package/lib/hooks/useScript.js.map +1 -0
  124. package/lib/icons/IconName.d.ts +6 -2
  125. package/lib/icons/IconName.js +4 -0
  126. package/lib/icons/IconName.js.map +1 -1
  127. package/lib/react/setup-fixture.js +3 -0
  128. package/lib/react/setup-fixture.js.map +1 -1
  129. package/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  130. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  131. package/lib/ui-kit/Button/LikeButton.js +1 -1
  132. package/lib/ui-kit/Button/LikeButton.js.map +1 -1
  133. package/lib/ui-kit/SearchBar/SearchBarInner.js +1 -1
  134. package/lib/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  135. package/lib/wlc.json +5 -0
  136. package/mobile/bundle/bundle.umd.js +29 -12
  137. package/mobile/bundle/bundle.umd.min.js +1 -1
  138. package/mobile/dist/ProjectSettings.d.ts +2 -0
  139. package/mobile/dist/ProjectSettings.js +3 -0
  140. package/mobile/dist/ProjectSettings.js.map +1 -1
  141. package/mobile/dist/components/Bonus/Bonus.js +1 -1
  142. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  143. package/mobile/dist/components/Calculator/Calculator.js +1 -1
  144. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  145. package/mobile/dist/components/ErrorBlock/ErrorBlock.js +3 -3
  146. package/mobile/dist/components/ErrorBlock/ErrorBlock.js.map +1 -1
  147. package/mobile/dist/components/ErrorBlock/ErrorBlockContent.d.ts +6 -6
  148. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  149. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  150. package/mobile/dist/components/Navigation/Navigation.js +1 -1
  151. package/mobile/dist/components/Navigation/Navigation.js.map +1 -1
  152. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -3
  153. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  154. package/mobile/dist/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +2 -1
  155. package/mobile/dist/components/SafeDepositRental/RegionsAndBranches.d.ts +2 -2
  156. package/mobile/dist/components/SafeDepositRental/SafeBoxCases.d.ts +1 -1
  157. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +14 -2
  158. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  159. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalContent.d.ts +2 -17
  160. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalFields.d.ts +9 -0
  161. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalFields.js +21 -0
  162. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalFields.js.map +1 -0
  163. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +2 -0
  164. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js +33 -42
  165. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  166. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +1 -1
  167. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  168. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTypes.d.ts +10 -0
  169. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTypes.js +2 -0
  170. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTypes.js.map +1 -0
  171. package/mobile/dist/components/SafeDepositRental/WrapperSelect.js +2 -2
  172. package/mobile/dist/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  173. package/mobile/dist/components/SafeDepositRental/YandexMap.d.ts +5 -0
  174. package/mobile/dist/components/SafeDepositRental/YandexMap.js +24 -0
  175. package/mobile/dist/components/SafeDepositRental/YandexMap.js.map +1 -0
  176. package/mobile/dist/components/SafeDepositRental/renderClusterer.d.ts +1 -0
  177. package/mobile/dist/components/SafeDepositRental/renderClusterer.js +37 -0
  178. package/mobile/dist/components/SafeDepositRental/renderClusterer.js.map +1 -0
  179. package/mobile/dist/components/SafeDepositRental/useGetRegions.js +1 -1
  180. package/mobile/dist/components/SafeDepositRental/useGetRegions.js.map +1 -1
  181. package/mobile/dist/components/SafeDepositRental/utils.d.ts +3 -0
  182. package/mobile/dist/components/SafeDepositRental/utils.js +15 -0
  183. package/mobile/dist/components/SafeDepositRental/utils.js.map +1 -0
  184. package/mobile/dist/hooks/useFetchSafeBoxes.d.ts +22 -0
  185. package/mobile/dist/hooks/useFetchSafeBoxes.js +17 -0
  186. package/mobile/dist/hooks/useFetchSafeBoxes.js.map +1 -0
  187. package/mobile/dist/hooks/useScript.d.ts +6 -0
  188. package/mobile/dist/hooks/useScript.js +75 -0
  189. package/mobile/dist/hooks/useScript.js.map +1 -0
  190. package/mobile/dist/icons/IconName.d.ts +6 -2
  191. package/mobile/dist/icons/IconName.js +4 -0
  192. package/mobile/dist/icons/IconName.js.map +1 -1
  193. package/mobile/dist/react/setup-fixture.js +6 -0
  194. package/mobile/dist/react/setup-fixture.js.map +1 -1
  195. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  196. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  197. package/mobile/dist/ui-kit/Button/LikeButton.js +1 -1
  198. package/mobile/dist/ui-kit/Button/LikeButton.js.map +1 -1
  199. package/mobile/dist/ui-kit/SearchBar/SearchBarInner.js +1 -1
  200. package/mobile/dist/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  201. package/mobile/dist/wlc.json +5 -0
  202. package/mobile/lib/ProjectSettings.d.ts +2 -0
  203. package/mobile/lib/ProjectSettings.js +3 -0
  204. package/mobile/lib/ProjectSettings.js.map +1 -1
  205. package/mobile/lib/components/Bonus/Bonus.js +1 -1
  206. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  207. package/mobile/lib/components/Calculator/Calculator.js +1 -1
  208. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  209. package/mobile/lib/components/ErrorBlock/ErrorBlock.js +3 -3
  210. package/mobile/lib/components/ErrorBlock/ErrorBlock.js.map +1 -1
  211. package/mobile/lib/components/ErrorBlock/ErrorBlockContent.d.ts +6 -6
  212. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  213. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  214. package/mobile/lib/components/Navigation/Navigation.js +1 -1
  215. package/mobile/lib/components/Navigation/Navigation.js.map +1 -1
  216. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js +3 -3
  217. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlock.js.map +1 -1
  218. package/mobile/lib/components/OfficeServicesBlock/OfficeServicesBlockContent.d.ts +2 -1
  219. package/mobile/lib/components/SafeDepositRental/RegionsAndBranches.d.ts +2 -2
  220. package/mobile/lib/components/SafeDepositRental/SafeBoxCases.d.ts +1 -1
  221. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +14 -2
  222. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  223. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalContent.d.ts +2 -17
  224. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalFields.d.ts +9 -0
  225. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalFields.js +19 -0
  226. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalFields.js.map +1 -0
  227. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +2 -0
  228. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js +33 -42
  229. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  230. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.d.ts +1 -1
  231. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  232. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTypes.d.ts +10 -0
  233. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTypes.js +2 -0
  234. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTypes.js.map +1 -0
  235. package/mobile/lib/components/SafeDepositRental/WrapperSelect.js +2 -2
  236. package/mobile/lib/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  237. package/mobile/lib/components/SafeDepositRental/YandexMap.d.ts +5 -0
  238. package/mobile/lib/components/SafeDepositRental/YandexMap.js +22 -0
  239. package/mobile/lib/components/SafeDepositRental/YandexMap.js.map +1 -0
  240. package/mobile/lib/components/SafeDepositRental/renderClusterer.d.ts +1 -0
  241. package/mobile/lib/components/SafeDepositRental/renderClusterer.js +34 -0
  242. package/mobile/lib/components/SafeDepositRental/renderClusterer.js.map +1 -0
  243. package/mobile/lib/components/SafeDepositRental/useGetRegions.js +1 -1
  244. package/mobile/lib/components/SafeDepositRental/useGetRegions.js.map +1 -1
  245. package/mobile/lib/components/SafeDepositRental/utils.d.ts +3 -0
  246. package/mobile/lib/components/SafeDepositRental/utils.js +11 -0
  247. package/mobile/lib/components/SafeDepositRental/utils.js.map +1 -0
  248. package/mobile/lib/hooks/useFetchSafeBoxes.d.ts +22 -0
  249. package/mobile/lib/hooks/useFetchSafeBoxes.js +14 -0
  250. package/mobile/lib/hooks/useFetchSafeBoxes.js.map +1 -0
  251. package/mobile/lib/hooks/useScript.d.ts +6 -0
  252. package/mobile/lib/hooks/useScript.js +72 -0
  253. package/mobile/lib/hooks/useScript.js.map +1 -0
  254. package/mobile/lib/icons/IconName.d.ts +6 -2
  255. package/mobile/lib/icons/IconName.js +4 -0
  256. package/mobile/lib/icons/IconName.js.map +1 -1
  257. package/mobile/lib/react/setup-fixture.js +3 -0
  258. package/mobile/lib/react/setup-fixture.js.map +1 -1
  259. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  260. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  261. package/mobile/lib/ui-kit/Button/LikeButton.js +1 -1
  262. package/mobile/lib/ui-kit/Button/LikeButton.js.map +1 -1
  263. package/mobile/lib/ui-kit/SearchBar/SearchBarInner.js +1 -1
  264. package/mobile/lib/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  265. package/mobile/lib/wlc.json +5 -0
  266. package/mobile/src/ProjectSettings.ts +4 -0
  267. package/mobile/src/components/Bonus/Bonus.tsx +1 -1
  268. package/mobile/src/components/Calculator/Calculator.tsx +1 -1
  269. package/mobile/src/components/ErrorBlock/ErrorBlock.example.json +5 -5
  270. package/mobile/src/components/ErrorBlock/ErrorBlock.tsx +12 -5
  271. package/mobile/src/components/ErrorBlock/ErrorBlockContent.ts +20 -6
  272. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  273. package/mobile/src/components/Navigation/Navigation.tsx +1 -1
  274. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.example.json +30 -16
  275. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +7 -6
  276. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlockContent.ts +2 -1
  277. package/mobile/src/components/SafeDepositRental/RegionsAndBranches.tsx +2 -2
  278. package/mobile/src/components/SafeDepositRental/SafeBoxCases.tsx +1 -1
  279. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +33 -9
  280. package/mobile/src/components/SafeDepositRental/SafeDepositRentalContent.ts +2 -21
  281. package/mobile/src/components/SafeDepositRental/SafeDepositRentalFields.tsx +77 -0
  282. package/mobile/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +57 -74
  283. package/mobile/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +1 -1
  284. package/mobile/src/components/SafeDepositRental/SafeDepositRentalTypes.ts +12 -0
  285. package/mobile/src/components/SafeDepositRental/WrapperSelect.tsx +2 -10
  286. package/mobile/src/components/SafeDepositRental/YandexMap.tsx +35 -0
  287. package/mobile/src/components/SafeDepositRental/renderClusterer.ts +45 -0
  288. package/mobile/src/components/SafeDepositRental/useGetRegions.ts +1 -1
  289. package/mobile/src/components/SafeDepositRental/utils.ts +17 -0
  290. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +231 -239
  291. package/mobile/src/hooks/useFetchSafeBoxes.ts +44 -0
  292. package/mobile/src/hooks/useScript.ts +97 -0
  293. package/mobile/src/icons/IconName.ts +4 -4
  294. package/mobile/src/icons/MapMarkerClusterIcon.svg +1 -0
  295. package/mobile/src/icons/MapMarkerSingleIcon.svg +1 -0
  296. package/mobile/src/react/setup-fixture.ts +4 -0
  297. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  298. package/mobile/src/ui-kit/Button/LikeButton.tsx +1 -1
  299. package/mobile/src/ui-kit/SearchBar/SearchBarInner.tsx +1 -1
  300. package/mobile/src/wlc.json +5 -0
  301. package/package.json +3 -2
  302. package/src/ProjectSettings.ts +4 -0
  303. package/src/components/Bonus/Bonus.tsx +1 -1
  304. package/src/components/Calculator/Calculator.tsx +1 -1
  305. package/src/components/ErrorBlock/ErrorBlock.example.json +5 -5
  306. package/src/components/ErrorBlock/ErrorBlock.fixture.tsx +3 -3
  307. package/src/components/ErrorBlock/ErrorBlock.tsx +12 -5
  308. package/src/components/ErrorBlock/ErrorBlockContent.ts +20 -6
  309. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  310. package/src/components/Navigation/Navigation.tsx +1 -1
  311. package/src/components/OfficeServicesBlock/OfficeServicesBlock.example.json +30 -16
  312. package/src/components/OfficeServicesBlock/OfficeServicesBlock.fixture.tsx +7 -7
  313. package/src/components/OfficeServicesBlock/OfficeServicesBlock.tsx +7 -6
  314. package/src/components/OfficeServicesBlock/OfficeServicesBlockContent.ts +2 -1
  315. package/src/components/SafeDepositRental/RegionsAndBranches.tsx +2 -2
  316. package/src/components/SafeDepositRental/SafeBoxCases.tsx +1 -1
  317. package/src/components/SafeDepositRental/SafeDepositRental.fixture.tsx +6 -1
  318. package/src/components/SafeDepositRental/SafeDepositRental.tsx +33 -9
  319. package/src/components/SafeDepositRental/SafeDepositRentalContent.ts +2 -21
  320. package/src/components/SafeDepositRental/SafeDepositRentalFields.tsx +77 -0
  321. package/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +57 -74
  322. package/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +1 -1
  323. package/src/components/SafeDepositRental/SafeDepositRentalTypes.ts +12 -0
  324. package/src/components/SafeDepositRental/WrapperSelect.tsx +2 -10
  325. package/src/components/SafeDepositRental/YandexMap.tsx +35 -0
  326. package/src/components/SafeDepositRental/renderClusterer.ts +45 -0
  327. package/src/components/SafeDepositRental/useGetRegions.ts +1 -1
  328. package/src/components/SafeDepositRental/utils.ts +17 -0
  329. package/src/components/__snapshots__/Blocks.spec.tsx.snap +231 -239
  330. package/src/hooks/useFetchSafeBoxes.ts +44 -0
  331. package/src/hooks/useScript.ts +97 -0
  332. package/src/icons/IconName.ts +7 -1
  333. package/src/icons/MapMarkerClusterIcon.svg +1 -0
  334. package/src/icons/MapMarkerSingleIcon.svg +1 -0
  335. package/src/react/setup-fixture.ts +4 -0
  336. package/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  337. package/src/ui-kit/Button/LikeButton.tsx +1 -1
  338. package/src/ui-kit/SearchBar/SearchBarInner.tsx +1 -1
  339. package/src/wlc.json +5 -0
  340. package/dist/components/SafeDepositRental/fetchBranches.d.ts +0 -2
  341. package/dist/components/SafeDepositRental/fetchBranches.js +0 -20
  342. package/dist/components/SafeDepositRental/fetchBranches.js.map +0 -1
  343. package/lib/components/SafeDepositRental/fetchBranches.d.ts +0 -2
  344. package/lib/components/SafeDepositRental/fetchBranches.js +0 -17
  345. package/lib/components/SafeDepositRental/fetchBranches.js.map +0 -1
  346. package/mobile/dist/components/SafeDepositRental/fetchBranches.d.ts +0 -2
  347. package/mobile/dist/components/SafeDepositRental/fetchBranches.js +0 -20
  348. package/mobile/dist/components/SafeDepositRental/fetchBranches.js.map +0 -1
  349. package/mobile/lib/components/SafeDepositRental/fetchBranches.d.ts +0 -2
  350. package/mobile/lib/components/SafeDepositRental/fetchBranches.js +0 -17
  351. package/mobile/lib/components/SafeDepositRental/fetchBranches.js.map +0 -1
  352. package/mobile/src/components/SafeDepositRental/fetchBranches.ts +0 -21
  353. package/src/components/SafeDepositRental/fetchBranches.ts +0 -21
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { Branch } from './SafeDepositRentalContent';
3
- import { Region } from './useGetRegions';
2
+ import type { Branch } from '../../hooks/useFetchSafeBoxes';
3
+ import type { Region } from './useGetRegions';
4
4
  import { WrapperSelect } from './WrapperSelect';
5
5
 
6
6
  interface RegionsAndBranchesProps {
@@ -1,5 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { SafeBoxCase, SafeBoxCaseVolume } from './SafeDepositRentalContent';
2
+ import type { SafeBoxCase, SafeBoxCaseVolume } from '../../hooks/useFetchSafeBoxes';
3
3
  import { WrapperSelect } from './WrapperSelect';
4
4
 
5
5
  interface SafeBoxCasesProps {
@@ -4,7 +4,12 @@ import { SafeDepositRental } from './SafeDepositRental';
4
4
  export default {
5
5
  default: (
6
6
  <div className="container grid grid-cols-12 mb-1">
7
- <SafeDepositRental className="col-span-12" context={context} />
7
+ <SafeDepositRental
8
+ className="col-span-12"
9
+ context={context}
10
+ footnote="Аренда СЯ, в случае проведения процедуры купли-продажи, с использованием наличных денег
11
+ или процедуры ипотечной сделки"
12
+ />
8
13
  </div>
9
14
  ),
10
15
  };
@@ -1,27 +1,51 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useScript } from '../../hooks/useScript';
4
+ import { projectSettings } from '../../ProjectSettings';
2
5
  import type { UniBlockProps } from '../../types';
3
6
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
7
  import { Heading } from '../../ui-kit/Heading/Heading';
5
8
  import type { SafeDepositRentalContent } from './SafeDepositRentalContent';
6
9
  import { SafeDepositRentalForm } from './SafeDepositRentalForm';
7
10
  import { useGetRegions } from './useGetRegions';
11
+ import { YandexMap } from './YandexMap';
8
12
 
9
13
  export interface SafeDepositRentalProps extends SafeDepositRentalContent, UniBlockProps {}
10
14
 
11
15
  export const SafeDepositRental = JSX<SafeDepositRentalProps>(
12
- ({ title, context, className = '', ...rest }) => {
16
+ ({ title, footnote, context, className = '', ...rest }) => {
17
+ const [points, setPoints] = useState<number[][]>([]);
18
+ const [showMap, setShowMap] = useState<boolean>(false);
19
+
13
20
  const regions = useGetRegions();
14
21
 
22
+ const statusScript = useScript(
23
+ `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY}&lang=ru_RU`,
24
+ {
25
+ removeOnUnmount: true,
26
+ },
27
+ );
28
+
29
+ const toggleShowMap = () => {
30
+ setShowMap(!showMap);
31
+ };
32
+
15
33
  return (
16
- <BlockWrapper context={context} className={`bg-white px-8 py-12 ${className}`} {...rest}>
17
- {title ? (
18
- <Heading title={title} headingType="h3" as="h2" className="mb-2.5 text-center" />
34
+ <BlockWrapper context={context} className={className} {...rest}>
35
+ <div className="bg-white px-8 py-12">
36
+ {title ? (
37
+ <Heading title={title} headingType="h3" as="h2" className="mb-2.5 text-center" />
38
+ ) : null}
39
+ <SafeDepositRentalForm
40
+ regions={regions}
41
+ setPoints={setPoints}
42
+ toggleShowMap={toggleShowMap}
43
+ />
44
+ {footnote ? <p className="text-s-light text-secondary-text">{footnote}</p> : null}
45
+ </div>
46
+ {statusScript === 'ready' && points.length && showMap ? (
47
+ <YandexMap points={points} />
19
48
  ) : null}
20
- <SafeDepositRentalForm regions={regions} />
21
- <p className="text-s-light text-secondary-text">
22
- Аренда СЯ, в случае проведения процедуры купли-продажи, с использованием наличных денег
23
- или процедуры ипотечной сделки
24
- </p>
25
49
  </BlockWrapper>
26
50
  );
27
51
  },
@@ -1,28 +1,9 @@
1
- export interface Tariff {
2
- tariffType?: string;
3
- tariffValue?: number;
4
- }
5
-
6
- export interface SafeBoxCase {
7
- safeBoxCasesSize?: string;
8
- tariffs?: Tariff[];
9
- }
10
-
11
- export interface SafeBoxCaseVolume {
12
- volume?: string;
13
- safeBoxCases?: SafeBoxCase[];
14
- }
15
-
16
- export interface Branch {
17
- branchCode?: string;
18
- address?: string;
19
- safeBoxCaseVolumes?: SafeBoxCaseVolume[];
20
- }
21
-
22
1
  /**
23
2
  * @title Аренда сейфовых ячеек
24
3
  */
25
4
  export interface SafeDepositRentalContent {
26
5
  /** @title Заголовок */
27
6
  title?: string;
7
+ /** @title Сноска */
8
+ footnote?: string;
28
9
  }
@@ -0,0 +1,77 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { Branch, SafeBoxCase, SafeBoxCaseVolume } from '../../hooks/useFetchSafeBoxes';
3
+ import { Button } from '../../ui-kit/Button/Button';
4
+ import { RegionsAndBranches } from './RegionsAndBranches';
5
+ import { RenderRadioButtons } from './RenderRadioButtons';
6
+ import { RentalPeriod } from './RentalPeriod';
7
+ import { SafeBoxCases } from './SafeBoxCases';
8
+ import type { SafeDepositRentalFormProps } from './SafeDepositRentalForm';
9
+ import type { HandleChangeState, SafeDepositRentalState } from './SafeDepositRentalTypes';
10
+ import { getBranch, getCoordinates } from './utils';
11
+
12
+ export interface SafeDepositRentalFieldsProps
13
+ extends SafeDepositRentalState,
14
+ SafeDepositRentalFormProps {
15
+ onChange: HandleChangeState;
16
+ safeBoxCases?: SafeBoxCase[];
17
+ caseVolumes?: SafeBoxCaseVolume[];
18
+ }
19
+
20
+ export const SafeDepositRentalFields = JSX<SafeDepositRentalFieldsProps>(
21
+ ({
22
+ regions,
23
+ selectedRegion,
24
+ branches,
25
+ selectedBranch,
26
+ days,
27
+ selectedCaseVolume,
28
+ selectedBoxSize,
29
+ safeBoxCases,
30
+ caseVolumes,
31
+ setPoints,
32
+ onChange,
33
+ toggleShowMap,
34
+ }) => {
35
+ return (
36
+ <div className="flex-1 mr-9">
37
+ <RegionsAndBranches
38
+ regions={regions}
39
+ selectedRegion={selectedRegion}
40
+ onSelectedRegion={(value) => onChange({ selectedRegion: value })}
41
+ branches={branches}
42
+ selectedBranch={selectedBranch}
43
+ onSelectedBranch={onSelectedBranch(onChange, setPoints, branches)}
44
+ />
45
+ <RentalPeriod days={days} setDays={(value) => onChange({ days: value })} />
46
+ <SafeBoxCases
47
+ caseVolumes={caseVolumes}
48
+ selectedCaseVolume={selectedCaseVolume}
49
+ onSelectedCaseVolume={onSelectedCaseVolume(onChange)}
50
+ safeBoxCases={safeBoxCases}
51
+ selectedBoxSize={selectedBoxSize}
52
+ onSelectedBoxSize={(value) => onChange({ selectedBoxSize: value })}
53
+ />
54
+ <span className="text-secondary-text text-l-light">Тип договора</span>
55
+ <div className="flex justify-between items-center mt-5">
56
+ <RenderRadioButtons />
57
+ <Button text="Офисы на карте" version="primary" onClick={toggleShowMap} />
58
+ </div>
59
+ </div>
60
+ );
61
+ },
62
+ );
63
+
64
+ const onSelectedBranch =
65
+ (
66
+ onChange: HandleChangeState,
67
+ setPoints: SafeDepositRentalFieldsProps['setPoints'],
68
+ branches: Branch[],
69
+ ) =>
70
+ (value: string) => {
71
+ onChange({ selectedBranch: value, selectedCaseVolume: '', selectedBoxSize: '' });
72
+ setPoints(getCoordinates(value ? getBranch(branches, value) : branches));
73
+ };
74
+
75
+ const onSelectedCaseVolume = (onChange: HandleChangeState) => (value: string) => {
76
+ onChange({ selectedCaseVolume: value, selectedBoxSize: '' });
77
+ };
@@ -1,101 +1,84 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks/core';
3
- import { Button } from '../../ui-kit/Button/Button';
4
- import { fetchBranches } from './fetchBranches';
5
- import { RegionsAndBranches } from './RegionsAndBranches';
6
- import { RenderRadioButtons } from './RenderRadioButtons';
7
- import { RentalPeriod } from './RentalPeriod';
8
- import { SafeBoxCases } from './SafeBoxCases';
9
- import { Branch, SafeBoxCase, SafeBoxCaseVolume } from './SafeDepositRentalContent';
3
+ import { SafeBoxCase, SafeBoxCaseVolume, useFetchSafeBoxes } from '../../hooks/useFetchSafeBoxes';
4
+ import { SafeDepositRentalFields } from './SafeDepositRentalFields';
10
5
  import { SafeDepositRentalTotal } from './SafeDepositRentalTotal';
6
+ import type { HandleChangeState, SafeDepositRentalState } from './SafeDepositRentalTypes';
11
7
  import type { Region } from './useGetRegions';
8
+ import { getBranch, getCoordinates } from './utils';
9
+
10
+ const DEFAULT_DAYS = 26;
12
11
 
13
12
  export interface SafeDepositRentalFormProps {
14
13
  regions?: Region[];
14
+ setPoints: (points: number[][]) => void;
15
+ toggleShowMap: () => void;
15
16
  }
16
17
 
17
- const DEFAULT_DAYS = 26;
18
-
19
- export const SafeDepositRentalForm = JSX<SafeDepositRentalFormProps>(({ regions }) => {
20
- const [selectedRegion, setSelectedRegion] = useState<string>('');
21
- const [branches, setBranches] = useState<Branch[]>([]);
22
- const [selectedBranch, setSelectedBranch] = useState<string>('');
23
- const [selectedCaseVolume, setSelectedCaseVolume] = useState<string>('');
24
- const [selectedBoxSize, setSelectedBoxSize] = useState<string>('');
25
- const [days, setDays] = useState<number>(DEFAULT_DAYS);
26
-
27
- useEffect(() => {
28
- setSelectedRegion(getInitialValueSelectedRegion(regions));
29
- }, [regions]);
18
+ export const SafeDepositRentalForm = JSX<SafeDepositRentalFormProps>((props) => {
19
+ const [safeDepositState, setStateDepositState] = useState<SafeDepositRentalState>({
20
+ selectedRegion: '',
21
+ selectedBranch: '',
22
+ selectedCaseVolume: '',
23
+ selectedBoxSize: '',
24
+ days: DEFAULT_DAYS,
25
+ branches: [],
26
+ });
27
+
28
+ const resultBranches = useFetchSafeBoxes(safeDepositState.selectedRegion);
29
+
30
+ const handleChangeSafeDepositState: HandleChangeState = (state) =>
31
+ setStateDepositState((oldState) => ({ ...oldState, ...state }));
32
+
33
+ useEffect(
34
+ () =>
35
+ handleChangeSafeDepositState({
36
+ selectedRegion: getInitialValueSelectedRegion(props.regions),
37
+ }),
38
+ [props.regions],
39
+ );
30
40
 
31
41
  useEffect(() => {
32
- if (selectedRegion) {
33
- fetchBranches(selectedRegion).then((result) => {
34
- setBranches(result);
35
- });
36
- } else {
37
- setBranches([]);
42
+ if (Array.isArray(resultBranches) && resultBranches.length) {
43
+ handleChangeSafeDepositState({ branches: resultBranches });
44
+ props.setPoints(getCoordinates(resultBranches));
38
45
  }
46
+ }, [resultBranches]);
39
47
 
40
- setSelectedBranch('');
41
- setSelectedCaseVolume('');
42
- setSelectedBoxSize('');
43
- }, [regions, selectedRegion]);
44
-
45
- const onSelectedBranch = (value: string) => {
46
- setSelectedBranch(value);
47
- setSelectedCaseVolume('');
48
- setSelectedBoxSize('');
49
- };
50
-
51
- const onSelectedCaseVolume = (value: string) => {
52
- setSelectedCaseVolume(value);
53
- setSelectedBoxSize('');
54
- };
55
-
56
- const branch = getBranch(branches, selectedBranch);
48
+ useEffect(() => {
49
+ handleChangeSafeDepositState({
50
+ selectedBranch: '',
51
+ selectedCaseVolume: '',
52
+ selectedBoxSize: '',
53
+ });
54
+ }, [safeDepositState.selectedRegion]);
55
+
56
+ const branch = getBranch(safeDepositState.branches, safeDepositState.selectedBranch);
57
57
  const caseVolumes = getCaseVolumes(branch?.safeBoxCaseVolumes);
58
58
 
59
- const safeBoxCases = getCaseVolume(branch?.safeBoxCaseVolumes, selectedCaseVolume)?.safeBoxCases;
59
+ const safeBoxCases = getCaseVolume(
60
+ branch?.safeBoxCaseVolumes,
61
+ safeDepositState.selectedCaseVolume,
62
+ )?.safeBoxCases;
60
63
 
61
- const tariffs = getTariffs(safeBoxCases, selectedBoxSize);
64
+ const tariffs = getTariffs(safeBoxCases, safeDepositState.selectedBoxSize);
62
65
 
63
66
  return (
64
67
  <div className="flex justify-between align-top mb-6">
65
- <div className="flex-1 mr-9">
66
- <RegionsAndBranches
67
- regions={regions}
68
- selectedRegion={selectedRegion}
69
- onSelectedRegion={setSelectedRegion}
70
- branches={branches}
71
- selectedBranch={selectedBranch}
72
- onSelectedBranch={onSelectedBranch}
73
- />
74
- <RentalPeriod days={days} setDays={setDays} />
75
- <SafeBoxCases
76
- caseVolumes={caseVolumes}
77
- selectedCaseVolume={selectedCaseVolume}
78
- onSelectedCaseVolume={onSelectedCaseVolume}
79
- safeBoxCases={safeBoxCases}
80
- selectedBoxSize={selectedBoxSize}
81
- onSelectedBoxSize={setSelectedBoxSize}
82
- />
83
- <span className="text-secondary-text text-l-light">Тип договора</span>
84
- <div className="flex justify-between items-center mt-5">
85
- <RenderRadioButtons />
86
- <Button text="Офисы на карте" version="primary" />
87
- </div>
88
- </div>
89
- <SafeDepositRentalTotal days={days} tariffs={tariffs} />
68
+ <SafeDepositRentalFields
69
+ {...safeDepositState}
70
+ {...props}
71
+ caseVolumes={caseVolumes}
72
+ safeBoxCases={safeBoxCases}
73
+ onChange={handleChangeSafeDepositState}
74
+ />
75
+ <SafeDepositRentalTotal days={safeDepositState.days} tariffs={tariffs} />
90
76
  </div>
91
77
  );
92
78
  });
93
79
 
94
80
  const getInitialValueSelectedRegion = (regions?: Region[]) =>
95
- regions?.find((_) => _.name === 'Москва')?.code || '';
96
-
97
- const getBranch = (branches: Branch[], selectedBranch: string) =>
98
- branches.find((_) => _.branchCode === selectedBranch);
81
+ regions?.length && regions[0]?.code ? regions[0].code : '';
99
82
 
100
83
  const getCaseVolumes = (safeBoxCaseVolumes?: SafeBoxCaseVolume[]) =>
101
84
  safeBoxCaseVolumes?.length ? safeBoxCaseVolumes?.filter((_) => _?.safeBoxCases?.length) : [];
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { Tariff } from '../../hooks/useFetchSafeBoxes';
2
3
  import { Img } from '../../ui-kit/Img/Img';
3
- import { Tariff } from './SafeDepositRentalContent';
4
4
 
5
5
  export interface SafeDepositRentalTotalProps {
6
6
  days: number;
@@ -0,0 +1,12 @@
1
+ import type { Branch } from '../../hooks/useFetchSafeBoxes';
2
+
3
+ export interface SafeDepositRentalState {
4
+ selectedRegion: string;
5
+ selectedBranch: string;
6
+ selectedCaseVolume: string;
7
+ selectedBoxSize: string;
8
+ days: number;
9
+ branches: Branch[];
10
+ }
11
+
12
+ export type HandleChangeState = (state: Partial<SafeDepositRentalState>) => void;
@@ -13,15 +13,7 @@ interface WrapperSelectProps {
13
13
  }
14
14
 
15
15
  export const WrapperSelect = JSX<WrapperSelectProps>(
16
- ({
17
- data,
18
- fieldLabel,
19
- fieldValue,
20
- selected,
21
- placeholder = 'Выберите значение',
22
- setSelected,
23
- label,
24
- }) => {
16
+ ({ data, fieldLabel, fieldValue, selected, placeholder, setSelected, label }) => {
25
17
  return (
26
18
  <div>
27
19
  <span className="block text-m-light mb-2">{label}</span>
@@ -32,7 +24,7 @@ export const WrapperSelect = JSX<WrapperSelectProps>(
32
24
  value={selected}
33
25
  onChange={(_) => setSelected(_)}
34
26
  >
35
- <SelectOption value="">{placeholder}</SelectOption>
27
+ {placeholder ? <SelectOption value="">{placeholder}</SelectOption> : null}
36
28
  {data.map((_, i) => (
37
29
  <SelectOption key={String(i)} value={_?.[fieldValue || fieldLabel]}>
38
30
  {_?.[fieldLabel]}
@@ -0,0 +1,35 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { Heading } from '../../ui-kit/Heading/Heading';
4
+ import { renderClusterer } from './renderClusterer';
5
+
6
+ declare let ymaps: any;
7
+
8
+ interface YandexMapProps {
9
+ points: number[][];
10
+ }
11
+
12
+ let Map = null;
13
+
14
+ export const YandexMap = JSX<YandexMapProps>(({ points }) => {
15
+ useEffect(() => {
16
+ ymaps.ready(() => {
17
+ Map = new ymaps.Map('map', {
18
+ center: points[0],
19
+ zoom: 10,
20
+ });
21
+ renderClusterer(Map, points);
22
+ });
23
+ }, []);
24
+
25
+ if (Map && points) {
26
+ renderClusterer(Map, points);
27
+ }
28
+
29
+ return (
30
+ <div className="pt-12 mt-1 bg-white">
31
+ <Heading title="Офисы на карте" headingType="h3" className="mb-8 text-center" />
32
+ <div id="map" className="h-[640px]" />
33
+ </div>
34
+ );
35
+ });
@@ -0,0 +1,45 @@
1
+ declare let ymaps: any;
2
+
3
+ export function renderClusterer(Map, points) {
4
+ Map.geoObjects.removeAll();
5
+
6
+ const pointsList = points;
7
+
8
+ const clusterIconContentLayout = ymaps.templateLayoutFactory.createClass(
9
+ '<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>',
10
+ );
11
+
12
+ const clusterer = new ymaps.Clusterer({
13
+ clusterIcons: [
14
+ {
15
+ href: 'icons/MapMarkerClusterIcon.svg',
16
+ size: [78, 84],
17
+ offset: [-35, -50],
18
+ },
19
+ ],
20
+ clusterIconContentLayout,
21
+ clusterHideIconOnBalloonOpen: false,
22
+ geoObjectHideIconOnBalloonOpen: false,
23
+ });
24
+
25
+ const geoObjects: any = [];
26
+
27
+ for (let i = 0, len = pointsList.length; i < len; i++) {
28
+ geoObjects[i] = new ymaps.Placemark(pointsList[i], null, {
29
+ iconLayout: 'default#image',
30
+ iconImageHref: 'icons/MapMarkerSingleIcon.svg',
31
+ iconImageSize: [78, 84],
32
+ iconImageOffset: [-35, -50],
33
+ });
34
+ }
35
+
36
+ clusterer.add(geoObjects);
37
+
38
+ Map.geoObjects.add(clusterer);
39
+
40
+ Map.setBounds(ymaps.util.bounds.fromPoints(pointsList)).then(() => {
41
+ if (Map.getZoom() > 10) {
42
+ Map.setZoom(10);
43
+ }
44
+ });
45
+ }
@@ -1,7 +1,7 @@
1
1
  import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
2
2
  import { fetchJSONUnsafe } from '../../utils/fetchJSON';
3
3
 
4
- const REGIONS_URL = '/api/v1/admin/regions';
4
+ const REGIONS_URL = '/api/v1/regions';
5
5
 
6
6
  export interface Region {
7
7
  id?: number;
@@ -0,0 +1,17 @@
1
+ import type { Branch } from '../../hooks/useFetchSafeBoxes';
2
+
3
+ export const getCoordinates = (data?: Branch | Branch[]): number[][] => {
4
+ if (Array.isArray(data)) {
5
+ return data.map((_) =>
6
+ _.gpsLatitude && _.gpsLongitude ? [_.gpsLatitude, _.gpsLongitude] : [],
7
+ );
8
+ }
9
+ if (data?.gpsLatitude && data?.gpsLongitude) {
10
+ return [[data.gpsLatitude, data.gpsLongitude]];
11
+ }
12
+
13
+ return [];
14
+ };
15
+
16
+ export const getBranch = (branches: Branch[], selectedBranch: string) =>
17
+ branches.find((_) => _.branchCode === selectedBranch);