@redneckz/wildless-cms-uni-blocks 0.14.595 → 0.14.596

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 (335) hide show
  1. package/bundle/EventBus/EventBus.d.ts +17 -4
  2. package/bundle/EventBus/defaultEventBus.d.ts +2 -13
  3. package/bundle/EventBus/useSubject.d.ts +2 -0
  4. package/bundle/EventBus/useSubjectState.d.ts +2 -0
  5. package/bundle/bundle.umd.js +131 -89
  6. package/bundle/bundle.umd.min.js +1 -1
  7. package/bundle/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  8. package/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  9. package/bundle/hooks/useLocation.d.ts +2 -1
  10. package/bundle/hooks/useReducer.d.ts +4 -0
  11. package/bundle/ui-kit/Foldable/Foldable.d.ts +11 -1
  12. package/bundle/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  13. package/dist/EventBus/EventBus.d.ts +17 -4
  14. package/dist/EventBus/EventBus.js +29 -10
  15. package/dist/EventBus/EventBus.js.map +1 -1
  16. package/dist/EventBus/defaultEventBus.d.ts +2 -13
  17. package/dist/EventBus/defaultEventBus.js.map +1 -1
  18. package/dist/EventBus/useSubject.d.ts +2 -0
  19. package/dist/EventBus/useSubject.js +17 -0
  20. package/dist/EventBus/useSubject.js.map +1 -0
  21. package/dist/EventBus/useSubjectState.d.ts +2 -0
  22. package/dist/EventBus/useSubjectState.js +10 -0
  23. package/dist/EventBus/useSubjectState.js.map +1 -0
  24. package/dist/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  25. package/dist/components/CarouselTariffsCard/CardCellsSection.js +18 -0
  26. package/dist/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  27. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +11 -25
  28. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  29. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  30. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  31. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  32. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  33. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  34. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  35. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  36. package/dist/components/OfficesAtmsMap/AtmsMap.js +1 -1
  37. package/dist/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  38. package/dist/components/OfficesAtmsMap/OfficesMap.js +1 -1
  39. package/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  40. package/dist/components/StickyBottomMenu/BurgerMenuDialog.js +1 -1
  41. package/dist/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  42. package/dist/hooks/useLocation.d.ts +2 -1
  43. package/dist/hooks/useLocation.js +27 -33
  44. package/dist/hooks/useLocation.js.map +1 -1
  45. package/dist/hooks/useReducer.d.ts +4 -0
  46. package/dist/hooks/useReducer.js +12 -0
  47. package/dist/hooks/useReducer.js.map +1 -0
  48. package/dist/hooks/useRegions.js +3 -1
  49. package/dist/hooks/useRegions.js.map +1 -1
  50. package/dist/ui-kit/DialogManager/useDialogManager.js +3 -3
  51. package/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  52. package/dist/ui-kit/DialogManager/useDialogsList.js +1 -1
  53. package/dist/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  54. package/dist/ui-kit/Foldable/Foldable.d.ts +11 -1
  55. package/dist/ui-kit/Foldable/Foldable.js +10 -2
  56. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  57. package/dist/ui-kit/FormField/constants.js +1 -0
  58. package/dist/ui-kit/FormField/constants.js.map +1 -1
  59. package/dist/ui-kit/FormField/getValidation.js +1 -0
  60. package/dist/ui-kit/FormField/getValidation.js.map +1 -1
  61. package/dist/ui-kit/LocationDialog/LocationDialog.js +9 -12
  62. package/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  63. package/dist/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  64. package/dist/ui-kit/LocationDialog/SelectedLocation.js +15 -0
  65. package/dist/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  66. package/dist/ui-kit/PopupManager/PopupManager.js +1 -1
  67. package/dist/ui-kit/PopupManager/PopupManager.js.map +1 -1
  68. package/dist/ui-kit/PopupManager/usePopupManager.js +3 -3
  69. package/dist/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  70. package/lib/EventBus/EventBus.d.ts +17 -4
  71. package/lib/EventBus/EventBus.js +29 -10
  72. package/lib/EventBus/EventBus.js.map +1 -1
  73. package/lib/EventBus/defaultEventBus.d.ts +2 -13
  74. package/lib/EventBus/defaultEventBus.js.map +1 -1
  75. package/lib/EventBus/useSubject.d.ts +2 -0
  76. package/lib/EventBus/useSubject.js +14 -0
  77. package/lib/EventBus/useSubject.js.map +1 -0
  78. package/lib/EventBus/useSubjectState.d.ts +2 -0
  79. package/lib/EventBus/useSubjectState.js +7 -0
  80. package/lib/EventBus/useSubjectState.js.map +1 -0
  81. package/lib/common.css +1 -1
  82. package/lib/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  83. package/lib/components/CarouselTariffsCard/CardCellsSection.js +16 -0
  84. package/lib/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  85. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -26
  86. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  87. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  88. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  89. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  90. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  91. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  92. package/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  93. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  94. package/lib/components/OfficesAtmsMap/AtmsMap.js +2 -2
  95. package/lib/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  96. package/lib/components/OfficesAtmsMap/OfficesMap.js +2 -2
  97. package/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  98. package/lib/components/StickyBottomMenu/BurgerMenuDialog.js +2 -2
  99. package/lib/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  100. package/lib/hooks/useLocation.d.ts +2 -1
  101. package/lib/hooks/useLocation.js +26 -33
  102. package/lib/hooks/useLocation.js.map +1 -1
  103. package/lib/hooks/useReducer.d.ts +4 -0
  104. package/lib/hooks/useReducer.js +9 -0
  105. package/lib/hooks/useReducer.js.map +1 -0
  106. package/lib/hooks/useRegions.js +3 -1
  107. package/lib/hooks/useRegions.js.map +1 -1
  108. package/lib/ui-kit/DialogManager/useDialogManager.js +3 -3
  109. package/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  110. package/lib/ui-kit/DialogManager/useDialogsList.js +1 -1
  111. package/lib/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  112. package/lib/ui-kit/Foldable/Foldable.d.ts +11 -1
  113. package/lib/ui-kit/Foldable/Foldable.js +10 -2
  114. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  115. package/lib/ui-kit/FormField/constants.js +1 -0
  116. package/lib/ui-kit/FormField/constants.js.map +1 -1
  117. package/lib/ui-kit/FormField/getValidation.js +1 -0
  118. package/lib/ui-kit/FormField/getValidation.js.map +1 -1
  119. package/lib/ui-kit/LocationDialog/LocationDialog.js +10 -13
  120. package/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  121. package/lib/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  122. package/lib/ui-kit/LocationDialog/SelectedLocation.js +13 -0
  123. package/lib/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  124. package/lib/ui-kit/PopupManager/PopupManager.js +1 -1
  125. package/lib/ui-kit/PopupManager/PopupManager.js.map +1 -1
  126. package/lib/ui-kit/PopupManager/usePopupManager.js +3 -3
  127. package/lib/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  128. package/mobile/bundle/EventBus/EventBus.d.ts +17 -4
  129. package/mobile/bundle/EventBus/defaultEventBus.d.ts +2 -13
  130. package/mobile/bundle/EventBus/useSubject.d.ts +2 -0
  131. package/mobile/bundle/EventBus/useSubjectState.d.ts +2 -0
  132. package/mobile/bundle/bundle.umd.js +131 -89
  133. package/mobile/bundle/bundle.umd.min.js +1 -1
  134. package/mobile/bundle/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  135. package/mobile/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  136. package/mobile/bundle/hooks/useLocation.d.ts +2 -1
  137. package/mobile/bundle/hooks/useReducer.d.ts +4 -0
  138. package/mobile/bundle/ui-kit/Foldable/Foldable.d.ts +11 -1
  139. package/mobile/bundle/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  140. package/mobile/dist/EventBus/EventBus.d.ts +17 -4
  141. package/mobile/dist/EventBus/EventBus.js +29 -10
  142. package/mobile/dist/EventBus/EventBus.js.map +1 -1
  143. package/mobile/dist/EventBus/defaultEventBus.d.ts +2 -13
  144. package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
  145. package/mobile/dist/EventBus/useSubject.d.ts +2 -0
  146. package/mobile/dist/EventBus/useSubject.js +17 -0
  147. package/mobile/dist/EventBus/useSubject.js.map +1 -0
  148. package/mobile/dist/EventBus/useSubjectState.d.ts +2 -0
  149. package/mobile/dist/EventBus/useSubjectState.js +10 -0
  150. package/mobile/dist/EventBus/useSubjectState.js.map +1 -0
  151. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  152. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.js +18 -0
  153. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  154. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +11 -25
  155. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  156. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  157. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  158. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  159. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  160. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  161. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  162. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  163. package/mobile/dist/components/OfficesAtmsMap/AtmsMap.js +1 -1
  164. package/mobile/dist/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  165. package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js +1 -1
  166. package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  167. package/mobile/dist/components/StickyBottomMenu/BurgerMenuDialog.js +1 -1
  168. package/mobile/dist/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  169. package/mobile/dist/hooks/useLocation.d.ts +2 -1
  170. package/mobile/dist/hooks/useLocation.js +27 -33
  171. package/mobile/dist/hooks/useLocation.js.map +1 -1
  172. package/mobile/dist/hooks/useReducer.d.ts +4 -0
  173. package/mobile/dist/hooks/useReducer.js +12 -0
  174. package/mobile/dist/hooks/useReducer.js.map +1 -0
  175. package/mobile/dist/hooks/useRegions.js +3 -1
  176. package/mobile/dist/hooks/useRegions.js.map +1 -1
  177. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js +3 -3
  178. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  179. package/mobile/dist/ui-kit/DialogManager/useDialogsList.js +1 -1
  180. package/mobile/dist/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  181. package/mobile/dist/ui-kit/Foldable/Foldable.d.ts +11 -1
  182. package/mobile/dist/ui-kit/Foldable/Foldable.js +10 -2
  183. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  184. package/mobile/dist/ui-kit/FormField/constants.js +1 -0
  185. package/mobile/dist/ui-kit/FormField/constants.js.map +1 -1
  186. package/mobile/dist/ui-kit/FormField/getValidation.js +1 -0
  187. package/mobile/dist/ui-kit/FormField/getValidation.js.map +1 -1
  188. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js +9 -12
  189. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  190. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  191. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.js +15 -0
  192. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  193. package/mobile/dist/ui-kit/PopupManager/PopupManager.js +1 -1
  194. package/mobile/dist/ui-kit/PopupManager/PopupManager.js.map +1 -1
  195. package/mobile/dist/ui-kit/PopupManager/usePopupManager.js +3 -3
  196. package/mobile/dist/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  197. package/mobile/lib/EventBus/EventBus.d.ts +17 -4
  198. package/mobile/lib/EventBus/EventBus.js +29 -10
  199. package/mobile/lib/EventBus/EventBus.js.map +1 -1
  200. package/mobile/lib/EventBus/defaultEventBus.d.ts +2 -13
  201. package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
  202. package/mobile/lib/EventBus/useSubject.d.ts +2 -0
  203. package/mobile/lib/EventBus/useSubject.js +14 -0
  204. package/mobile/lib/EventBus/useSubject.js.map +1 -0
  205. package/mobile/lib/EventBus/useSubjectState.d.ts +2 -0
  206. package/mobile/lib/EventBus/useSubjectState.js +7 -0
  207. package/mobile/lib/EventBus/useSubjectState.js.map +1 -0
  208. package/mobile/lib/common.css +1 -1
  209. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  210. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.js +16 -0
  211. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  212. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -26
  213. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  214. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  215. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  216. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  217. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  218. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  219. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  220. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  221. package/mobile/lib/components/OfficesAtmsMap/AtmsMap.js +2 -2
  222. package/mobile/lib/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  223. package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js +2 -2
  224. package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  225. package/mobile/lib/components/StickyBottomMenu/BurgerMenuDialog.js +2 -2
  226. package/mobile/lib/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  227. package/mobile/lib/hooks/useLocation.d.ts +2 -1
  228. package/mobile/lib/hooks/useLocation.js +26 -33
  229. package/mobile/lib/hooks/useLocation.js.map +1 -1
  230. package/mobile/lib/hooks/useReducer.d.ts +4 -0
  231. package/mobile/lib/hooks/useReducer.js +9 -0
  232. package/mobile/lib/hooks/useReducer.js.map +1 -0
  233. package/mobile/lib/hooks/useRegions.js +3 -1
  234. package/mobile/lib/hooks/useRegions.js.map +1 -1
  235. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js +3 -3
  236. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  237. package/mobile/lib/ui-kit/DialogManager/useDialogsList.js +1 -1
  238. package/mobile/lib/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  239. package/mobile/lib/ui-kit/Foldable/Foldable.d.ts +11 -1
  240. package/mobile/lib/ui-kit/Foldable/Foldable.js +10 -2
  241. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  242. package/mobile/lib/ui-kit/FormField/constants.js +1 -0
  243. package/mobile/lib/ui-kit/FormField/constants.js.map +1 -1
  244. package/mobile/lib/ui-kit/FormField/getValidation.js +1 -0
  245. package/mobile/lib/ui-kit/FormField/getValidation.js.map +1 -1
  246. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js +10 -13
  247. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  248. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  249. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.js +13 -0
  250. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  251. package/mobile/lib/ui-kit/PopupManager/PopupManager.js +1 -1
  252. package/mobile/lib/ui-kit/PopupManager/PopupManager.js.map +1 -1
  253. package/mobile/lib/ui-kit/PopupManager/usePopupManager.js +3 -3
  254. package/mobile/lib/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  255. package/mobile/src/EventBus/EventBus.ts +51 -15
  256. package/mobile/src/EventBus/defaultEventBus.ts +2 -14
  257. package/mobile/src/EventBus/useSubject.ts +19 -0
  258. package/mobile/src/EventBus/useSubjectState.ts +13 -0
  259. package/mobile/src/components/CarouselTariffsCard/CardCellsSection.tsx +54 -0
  260. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +23 -66
  261. package/mobile/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +11 -0
  262. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +2 -2
  263. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  264. package/mobile/src/components/OfficesAtmsMap/AtmsMap.tsx +2 -3
  265. package/mobile/src/components/OfficesAtmsMap/OfficesMap.tsx +2 -2
  266. package/mobile/src/components/StickyBottomMenu/BurgerMenuDialog.tsx +2 -2
  267. package/mobile/src/hooks/useLocation.ts +30 -44
  268. package/mobile/src/hooks/useReducer.ts +21 -0
  269. package/mobile/src/hooks/useRegions.ts +4 -1
  270. package/mobile/src/ui-kit/DialogManager/useDialogManager.ts +3 -3
  271. package/mobile/src/ui-kit/DialogManager/useDialogsList.ts +1 -1
  272. package/mobile/src/ui-kit/Foldable/Foldable.tsx +21 -5
  273. package/mobile/src/ui-kit/FormField/constants.tsx +1 -0
  274. package/mobile/src/ui-kit/FormField/getValidation.tsx +1 -0
  275. package/mobile/src/ui-kit/LocationDialog/LocationDialog.tsx +13 -25
  276. package/mobile/src/ui-kit/LocationDialog/SelectedLocation.tsx +27 -0
  277. package/mobile/src/ui-kit/PopupManager/PopupManager.tsx +1 -1
  278. package/mobile/src/ui-kit/PopupManager/usePopupManager.tsx +3 -3
  279. package/package.json +1 -1
  280. package/src/EventBus/EventBus.ts +51 -15
  281. package/src/EventBus/defaultEventBus.ts +2 -14
  282. package/src/EventBus/useSubject.ts +19 -0
  283. package/src/EventBus/useSubjectState.ts +13 -0
  284. package/src/components/CarouselTariffsCard/CardCellsSection.tsx +54 -0
  285. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +23 -66
  286. package/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +11 -0
  287. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +2 -2
  288. package/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  289. package/src/components/OfficesAtmsMap/AtmsMap.tsx +2 -3
  290. package/src/components/OfficesAtmsMap/OfficesMap.tsx +2 -2
  291. package/src/components/StickyBottomMenu/BurgerMenuDialog.tsx +2 -2
  292. package/src/hooks/useLocation.ts +30 -44
  293. package/src/hooks/useReducer.ts +21 -0
  294. package/src/hooks/useRegions.ts +4 -1
  295. package/src/ui-kit/DialogManager/useDialogManager.ts +3 -3
  296. package/src/ui-kit/DialogManager/useDialogsList.ts +1 -1
  297. package/src/ui-kit/Foldable/Foldable.tsx +21 -5
  298. package/src/ui-kit/FormField/constants.tsx +1 -0
  299. package/src/ui-kit/FormField/getValidation.tsx +1 -0
  300. package/src/ui-kit/LocationDialog/LocationDialog.tsx +13 -25
  301. package/src/ui-kit/LocationDialog/SelectedLocation.tsx +27 -0
  302. package/src/ui-kit/PopupManager/PopupManager.tsx +1 -1
  303. package/src/ui-kit/PopupManager/usePopupManager.tsx +3 -3
  304. package/bundle/EventBus/useLatestEvent.d.ts +0 -2
  305. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  306. package/dist/EventBus/useLatestEvent.d.ts +0 -2
  307. package/dist/EventBus/useLatestEvent.js +0 -11
  308. package/dist/EventBus/useLatestEvent.js.map +0 -1
  309. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  310. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  311. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  312. package/lib/EventBus/useLatestEvent.d.ts +0 -2
  313. package/lib/EventBus/useLatestEvent.js +0 -8
  314. package/lib/EventBus/useLatestEvent.js.map +0 -1
  315. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  316. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  317. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  318. package/mobile/bundle/EventBus/useLatestEvent.d.ts +0 -2
  319. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  320. package/mobile/dist/EventBus/useLatestEvent.d.ts +0 -2
  321. package/mobile/dist/EventBus/useLatestEvent.js +0 -11
  322. package/mobile/dist/EventBus/useLatestEvent.js.map +0 -1
  323. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  324. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  325. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  326. package/mobile/lib/EventBus/useLatestEvent.d.ts +0 -2
  327. package/mobile/lib/EventBus/useLatestEvent.js +0 -8
  328. package/mobile/lib/EventBus/useLatestEvent.js.map +0 -1
  329. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  330. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  331. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  332. package/mobile/src/EventBus/useLatestEvent.ts +0 -16
  333. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  334. package/src/EventBus/useLatestEvent.ts +0 -16
  335. package/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
@@ -411,39 +411,58 @@
411
411
  ].join(' ');
412
412
 
413
413
  class EventBus {
414
- subscribers = {};
414
+ subscribersMap = {};
415
415
  subjectsStateMap = {};
416
+ emitter = this;
417
+ observable = this;
416
418
  subscribe(type, listener) {
417
- this.subscribers[type] = (this.subscribers[type] || []).concat(listener);
418
- const latestEvent = this.subjectsStateMap[type];
419
- if (latestEvent) {
420
- listener(latestEvent);
421
- }
419
+ this.subscribersMap[type] ||= [];
420
+ this.subscribersMap[type]?.push(listener);
421
+ this.fireSubscribers([listener], this.subjectsStateMap[type]);
422
422
  return () => {
423
423
  this.unsubscribe(type, listener);
424
424
  };
425
425
  }
426
426
  unsubscribe(type, listener) {
427
- this.subscribers[type] = this.subscribers[type]?.filter((s) => s !== listener);
427
+ const index = this.subscribersMap[type]?.indexOf(listener);
428
+ if (index && index !== -1) {
429
+ this.subscribersMap[type]?.splice(index, 1);
430
+ }
428
431
  }
429
432
  fire(type, event) {
430
433
  const isSubjectDeclared = type in this.subjectsStateMap;
431
434
  if (isSubjectDeclared) {
432
- this.subjectsStateMap[type] = event;
435
+ this.subject(type, event);
436
+ }
437
+ else {
438
+ this.fireSubscribers(this.subscribersMap[type], event);
433
439
  }
434
- this.subscribers[type]?.forEach((s) => s(event));
435
440
  }
436
441
  subject(type, event) {
437
- this.subjectsStateMap[type] = event;
442
+ if (this.subjectsStateMap[type] !== event) {
443
+ this.subjectsStateMap[type] = event;
444
+ this.fireSubscribers(this.subscribersMap[type], event);
445
+ }
446
+ return () => {
447
+ delete this.subjectsStateMap[type];
448
+ };
449
+ }
450
+ fireSubscribers(subscribers, event) {
451
+ if (!subscribers || !event) {
452
+ return;
453
+ }
454
+ for (const _ of subscribers) {
455
+ _(event);
456
+ }
438
457
  }
439
458
  }
440
459
 
441
460
  const defaultEventBus = new EventBus();
442
461
 
443
462
  const useDialogManager = () => ({
444
- open: (dialog, options = {}) => defaultEventBus.fire('dialog', { type: 'open', dialog, ...options }),
445
- close: () => defaultEventBus.fire('dialog', { type: 'close' }),
446
- closeAll: () => defaultEventBus.fire('dialog', { type: 'close', all: true }),
463
+ open: (dialog, options = {}) => defaultEventBus.emitter.fire('dialog', { type: 'open', dialog, ...options }),
464
+ close: () => defaultEventBus.emitter.fire('dialog', { type: 'close' }),
465
+ closeAll: () => defaultEventBus.emitter.fire('dialog', { type: 'close', all: true }),
447
466
  });
448
467
 
449
468
  const adjustBase = (href, basePath = '') => href.replace(basePath, '') || '/';
@@ -1098,6 +1117,7 @@
1098
1117
  { key: 'phone', text: 'Телефонный звонок' },
1099
1118
  { key: 'email', text: 'Электронное сообщение' },
1100
1119
  ];
1120
+ // TODO Тоже надо рефакторить - файлик constants
1101
1121
  const OUT_SERVICE_URL = '/api/v1/outservice/outserviceregions';
1102
1122
 
1103
1123
  const getRegionUrl = (typeForm) => typeForm === 'OUTSERVICE' ? OUT_SERVICE_URL : undefined;
@@ -1275,9 +1295,9 @@
1275
1295
  };
1276
1296
 
1277
1297
  const usePopupManager = () => ({
1278
- open: (popup, options) => defaultEventBus.fire('popup', { type: 'open', popup, ...options }),
1279
- update: (popup, options) => defaultEventBus.fire('popup', { type: 'update', popup, ...options }),
1280
- close: () => defaultEventBus.fire('popup', { type: 'close' }),
1298
+ open: (popup, options) => defaultEventBus.emitter.fire('popup', { type: 'open', popup, ...options }),
1299
+ update: (popup, options) => defaultEventBus.emitter.fire('popup', { type: 'update', popup, ...options }),
1300
+ close: () => defaultEventBus.emitter.fire('popup', { type: 'close' }),
1281
1301
  });
1282
1302
 
1283
1303
  const InputPopup = JSX(({ options, onChange }) => (jsx("div", { className: "bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-2xl", role: "list", children: options?.map((item, key) => (jsx("div", { className: "flex px-m py-s cursor-pointer hover:bg-main-divider pr-5xl relative", role: "listitem", onMouseDown: () => onChange(item.processedValue), children: jsx("span", { className: "min-h-6", children: item.processedValue }) }, key.toString()))) })));
@@ -1541,6 +1561,7 @@
1541
1561
  };
1542
1562
  };
1543
1563
 
1564
+ // TODO Зачем это?
1544
1565
  const getValidation = (field, validator, required = false) => required ? withValidator(field, validator) : field;
1545
1566
 
1546
1567
  const ACQUIRING_TYPES = [
@@ -2025,9 +2046,11 @@
2025
2046
  const LegalFormField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u041F\u0424", placeholder: "\u041E\u041E\u041E, \u041F\u0410\u041E \u0438 \u0434\u0440.", ...getValidation(field('legalForm'), validatorObj.legalForm, input?.required), ...input })));
2026
2047
 
2027
2048
  const REGIONS_URL = '/api/v1/regions';
2049
+ const EMPTY_REGIONS = [];
2050
+ // TODO Почему url можно менять? Разве смысл не в инкапсуляции api url. Тоже под рефакторинг попадает
2028
2051
  function useRegions(url = REGIONS_URL) {
2029
2052
  const { data } = useAsyncData(url, fetchJSONUnsafe);
2030
- return Array.isArray(data) ? data : [];
2053
+ return Array.isArray(data) ? data : EMPTY_REGIONS;
2031
2054
  }
2032
2055
 
2033
2056
  const LocalitiesField = JSX(({ field, input }) => {
@@ -2551,6 +2574,14 @@
2551
2574
  return { ...formState, typeForm: { key: typeForm, text: '' } };
2552
2575
  };
2553
2576
 
2577
+ const FoldableWrapper = JSX(({ className, children }) => (jsx("div", { className: className, role: "group", children: children })));
2578
+ /**
2579
+ * Какой то бесполезный компонент. Его можно заменить на useBool
2580
+ * Лучше оставить только обёрточный div с необходимой атрибутикой
2581
+ * и сделать пассивный компонент
2582
+ *
2583
+ * @deprecated
2584
+ */
2554
2585
  const Foldable = JSX(({ className = '', isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
2555
2586
  const [isUnfolded, setIsUnfolded] = useState(unfoldedByDefault);
2556
2587
  const onToggle = useCallback(() => {
@@ -2558,7 +2589,7 @@
2558
2589
  }, []);
2559
2590
  const sectionNode = renderFoldableSection({ isUnfolded, onToggle });
2560
2591
  const buttonNode = renderFoldButton ? renderFoldButton({ isUnfolded, onToggle }) : null;
2561
- return isFoldButtonOnTop ? (jsxs("div", { className: className, role: "group", children: [buttonNode, sectionNode] })) : (jsxs("div", { className: className, role: "group", children: [sectionNode, buttonNode] }));
2592
+ return isFoldButtonOnTop ? (jsxs(FoldableWrapper, { className: className, children: [buttonNode, sectionNode] })) : (jsxs(FoldableWrapper, { className: className, children: [sectionNode, buttonNode] }));
2562
2593
  });
2563
2594
 
2564
2595
  function useResizeObserver(callback, deps) {
@@ -4636,31 +4667,37 @@
4636
4667
  const CarouselRecommendationCard = JSX(({ className, padding, description, additionalDescription, href, icon, isDotted, __html, socialMedia = [], target, title, align = 'text-left', benefits, imageOptions: { directionRight = true, isImageAlwaysOnRight = ImageAlwaysOnRight, isImageSecondary = false, } = {}, data, ...rest }) => (jsx(BlockWrapper, { className: style('relative min-h-28 group-data-gray:bg-main-divider/50', className), defaultPadding: "p-0", ...rest, children: jsx(LinkWrapper, { href: href, target: target, className: "h-full", data: getAspectsWithInclude(data), children: jsxs(BaseTile, { className: "h-full", defaultPadding: "p-2xl", padding: padding, insetTitle: jsx(Headline, { title: title, description: description, headlineVersion: "XS", isEmbedded: true, align: align }), ...leftOrRightImage(isIcon(icon) ? jsx(Img, { image: icon }) : null, directionRight), buttons: socialMedia.length ? (jsx(SocialMedia, { media: socialMedia, stretched: true, showButtonText: true, version: rest?.version })) : null, isImageAlwaysOnRight: isImageAlwaysOnRight, isImageSecondary: isImageSecondary, imageAlign: "center", children: [jsx(BenefitsList, { benefits: benefits }), __html ? jsx(RichText, { __html: __html, isDotted: isDotted, itemSize: "list-s" }) : null, renderAdditionalDescription(additionalDescription, align)] }) }) })));
4637
4668
  const renderAdditionalDescription = (additionalDescription, align) => additionalDescription ? (jsx(Paragraph, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", align: align, children: additionalDescription })) : null;
4638
4669
 
4670
+ const useSubjectState = (eventBus, type, initialState) => {
4671
+ const [state, setState] = useState(initialState);
4672
+ useEffect(() => eventBus.subscribe(type, setState), [eventBus, type]);
4673
+ return state;
4674
+ };
4675
+
4639
4676
  const renderCardInfo = (cell, i) => {
4640
4677
  const { title, description, buttons } = cell;
4641
4678
  return (jsxs("div", { className: "py-lg border-b border-main-divider", children: [title ? (jsx("div", { className: "opacity-80", children: jsx(Text, { size: "text-m", color: "text-secondary-text", children: title }) })) : null, description ? (jsx("div", { className: "mt-2xs", children: jsx(Text, { size: "text-xl", color: "text-primary-text", children: description }) })) : null, buttons?.length ? (jsx("div", { className: "text-primary-main", children: renderButtonsSection(buttons) })) : null] }, String(i)));
4642
4679
  };
4643
4680
 
4644
- const CarouselTariffsCard = JSX(({ className = '', title, align = 'text-center', icon, button, visibleCellsCount = 1, cardCells = [], options, data, ...rest }) => {
4645
- const cellsNode = cardCells.map(renderCardInfo);
4646
- const [visibleCells, hiddenCells] = visibleCellsCount > 0
4647
- ? [cellsNode.slice(0, visibleCellsCount), cellsNode.slice(visibleCellsCount)]
4648
- : [cellsNode, []];
4649
- const [isVisible, setIsVisible] = useState(false);
4650
- useEffect(() => defaultEventBus.subscribe('fold', (event) => {
4651
- if (options?.parent !== undefined && event.parent === options?.parent) {
4652
- setIsVisible(event.isUnfolded);
4653
- }
4654
- }), [options?.parent]);
4655
- return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [isIcon(icon) ? (jsx("div", { className: "self-center", children: jsx(Img, { image: icon }) })) : null, title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsx(Foldable, { renderFoldableSection: () => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] })), renderFoldButton: cardCells.length >= visibleCellsCount
4656
- ? renderFoldButton$3(options?.parent, data, isVisible)
4657
- : null })) : (jsx("div", { children: visibleCells }))] }));
4658
- });
4659
- const renderFoldButton$3 = (parent, data, isUnfolded = false) => () => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-lg flex justify-between items-center", onClick: () => {
4660
- if (parent !== undefined) {
4661
- defaultEventBus.fire('fold', { type: 'fold', isUnfolded: !isUnfolded, parent });
4662
- }
4663
- }, type: "button", ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
4681
+ const CardCellsSection = JSX((props) => {
4682
+ const { cardCells = [], visibleCellsCount = 1, isUnfolded } = props;
4683
+ const [visibleCells, hiddenCells] = visibleCellsCount > 0 && cardCells.length >= visibleCellsCount
4684
+ ? [cardCells.slice(0, visibleCellsCount), cardCells.slice(visibleCellsCount)]
4685
+ : [cardCells, []];
4686
+ return hiddenCells.length ? (jsxs(FoldableWrapper, { children: [jsxs("div", { children: [visibleCells.map(renderCardInfo), jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenCells.map(renderCardInfo) })] }), jsx(FoldButton, { ...props })] })) : (jsx("div", { children: visibleCells.map(renderCardInfo) }));
4687
+ });
4688
+ const FoldButton = JSX(({ isUnfolded, data, onToggle }) => (jsxs("button", { type: "button", className: "w-full cursor-pointer text-primary-main pt-lg flex justify-between items-center", ...(isUnfolded ? getAspectsAttributes(data) : {}), onClick: onToggle, children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] })));
4689
+
4690
+ const carouselTariffsCardEventBus = new EventBus();
4691
+
4692
+ const CarouselTariffsCard = JSX(({ className, title, align = 'text-center', icon, button, visibleCellsCount = 1, cardCells = [], options, data, ...rest }) => {
4693
+ const { isUnfolded, parent: firedParent } = useSubjectState(carouselTariffsCardEventBus.observable, 'fold', {});
4694
+ const isVisible = isUnfolded && firedParent === options?.parent;
4695
+ const toggle = useCallback(() => carouselTariffsCardEventBus.emitter.fire('fold', {
4696
+ isUnfolded: !isVisible,
4697
+ parent: options?.parent,
4698
+ }), [isVisible, options?.parent]);
4699
+ return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [isIcon(icon) ? (jsx("div", { className: "self-center", children: jsx(Img, { image: icon }) })) : null, title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, jsx(CardCellsSection, { cardCells: cardCells, visibleCellsCount: visibleCellsCount, isUnfolded: isVisible, data: data, onToggle: toggle })] }));
4700
+ });
4664
4701
 
4665
4702
  const isRateRow = (rateRow) => typeof rateRow?.minMonths === 'number' && typeof rateRow?.maxMonths === 'number';
4666
4703
 
@@ -4827,47 +4864,46 @@
4827
4864
  };
4828
4865
  const ErrorBlock = JSX(({ className = '', title, description, error, button, ...rest }) => (jsxs(BlockWrapper, { className: style('flex flex-col justify-center items-center', className), defaultPadding: style('p-6xl'), version: "transparent", ...rest, children: [jsx("div", { className: "flex justify-center", children: renderErrorContent(error) }), jsx(Headline, { title: title, description: description, headlineVersion: "XL", isEmbedded: true, className: "mb-2xl last:mb-0" }), button?.text ? (jsx(LinkButton, { version: button?.version, text: button?.text, ...button })) : null] })));
4829
4866
 
4830
- const useLatestEvent = (eventBus, type, initialEvent) => {
4831
- const [latestEvent, setLatestEvent] = useState(initialEvent || null);
4832
- useEffect(() => eventBus.subscribe(type, (_) => setLatestEvent(_)), [eventBus, type]);
4833
- const fireEvent = useCallback((_) => eventBus.fire(type, _), [eventBus, type]);
4834
- return [latestEvent, fireEvent];
4835
- };
4867
+ function useSubject(eventBus, type, initialState) {
4868
+ useEffect(() => {
4869
+ const state = initialState instanceof Function ? initialState() : initialState;
4870
+ if (state instanceof Promise) {
4871
+ state.then((_) => eventBus.subject(type, _), console.warn);
4872
+ }
4873
+ else {
4874
+ eventBus.subject(type, state);
4875
+ }
4876
+ }, [eventBus, type]);
4877
+ return useCallback((_) => eventBus.fire(type, _), [eventBus, type]);
4878
+ }
4836
4879
 
4837
4880
  const REGION_URL = '/api/v1/region';
4838
4881
  const LOCATION_STORAGE_KEY = 'location';
4839
4882
  function useLocation(defaultLocation = 'Москва') {
4840
- const [currentLocation, fireCurrentLocation] = useLatestEvent(defaultEventBus, 'location', restoreLocation() ?? { name: defaultLocation });
4841
- const selectCurrentLocation = useCallback((_) => {
4842
- storeLocation(_);
4843
- fireCurrentLocation(_);
4844
- }, []);
4845
- const { data } = useAsyncData(hasStoredLocation() ? null : REGION_URL, fetchJSONUnsafe);
4846
- useEffect(() => {
4847
- if (data && !hasStoredLocation()) {
4848
- fireCurrentLocation(data);
4883
+ useEffect(() => defaultEventBus.subscribe('location', storeLocation), []);
4884
+ return useSubject(defaultEventBus.emitter, 'location', restoreLocation(defaultLocation));
4885
+ }
4886
+ function useLocationState(defaultLocation = 'Москва') {
4887
+ return useSubjectState(defaultEventBus.observable, 'location', { name: defaultLocation });
4888
+ }
4889
+ function restoreLocation(defaultLocation) {
4890
+ return async () => {
4891
+ if (!globalThis.localStorage?.hasItem(LOCATION_STORAGE_KEY)) {
4892
+ storeLocation(await fetchJSON(REGION_URL));
4893
+ }
4894
+ const storedLocation = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
4895
+ try {
4896
+ return storedLocation && JSON.parse(storedLocation);
4897
+ }
4898
+ catch (ex) {
4899
+ // Do nothing
4849
4900
  }
4850
- }, [data]);
4851
- return [currentLocation ?? { name: defaultLocation }, selectCurrentLocation];
4901
+ return { name: defaultLocation };
4902
+ };
4903
+ }
4904
+ function storeLocation(_) {
4905
+ _ && globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
4852
4906
  }
4853
- const hasStoredLocation = () => Boolean(globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY));
4854
- const restoreLocation = () => {
4855
- try {
4856
- const data = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
4857
- return data && JSON.parse(data);
4858
- }
4859
- catch (ex) {
4860
- return null;
4861
- }
4862
- };
4863
- const storeLocation = (_) => {
4864
- try {
4865
- globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
4866
- }
4867
- catch (ex) {
4868
- // Do nothing
4869
- }
4870
- };
4871
4907
 
4872
4908
  var Currency;
4873
4909
  (function (Currency) {
@@ -5009,7 +5045,7 @@
5009
5045
  }
5010
5046
 
5011
5047
  const ExchangeRateTile = JSX(({ className = '', title = 'Курсы обмена валют', button, ...rest }) => {
5012
- const [currentLocation] = useLocation();
5048
+ const currentLocation = useLocationState();
5013
5049
  const exchangeRates = useFetchExchangeRateData(currentLocation);
5014
5050
  const currencyRates = getCurrencyRates(exchangeRates?.exchangeRate?.currencies);
5015
5051
  const currencyRatesBuy = currencyRates.filter((_) => _.buyExchangeRate);
@@ -5862,7 +5898,7 @@
5862
5898
  designDisabledPeople: (item) => Boolean(item.designDisabledPeople),
5863
5899
  };
5864
5900
  const AtmsMap = JSX(({ descriptionData, className }) => {
5865
- const [currentLocation] = useLocation();
5901
+ const currentLocation = useLocationState();
5866
5902
  const regionCode = currentLocation?.code ?? '000';
5867
5903
  const { data: officesData, isLoad } = useAtms(regionCode);
5868
5904
  return (jsx(OfficesAtmsMapLayout, { className: className, filterItems: filterItems, data: officesData, isLoad: isLoad, initFilterState: INITIAL_FILTRATION_STATE, renderCard: renderAtmCard, getBalloon: getAtmPoint, title: `Банкоматы филиала ${currentLocation?.name}`, descriptionData: descriptionData }));
@@ -6081,7 +6117,7 @@
6081
6117
  };
6082
6118
 
6083
6119
  const OfficesMap = JSX(({ className }) => {
6084
- const [currentLocation] = useLocation();
6120
+ const currentLocation = useLocationState();
6085
6121
  const regionCode = currentLocation?.code ?? '000';
6086
6122
  const { data, isLoad } = useOffices(regionCode);
6087
6123
  return (jsx(OfficesAtmsMapLayout, { className: className, data: data?.branches, isLoad: isLoad, remoteWorkplaces: data?.remoteWorkplaces, renderCard: renderOfficeCard, renderRemoteWorkplaceCard: renderRemoteWorkplaceCard, getBalloon: getOfficePoint, getBalloonRemoteWorkplaces: getRemoteWorkplacePoint, title: `Офисы филиала ${currentLocation?.name}` }));
@@ -6329,7 +6365,7 @@
6329
6365
  onClose && onClose(dialogs[dialogs.length - 1]);
6330
6366
  pop();
6331
6367
  }, [dialogs, onClose]);
6332
- useEffect(() => defaultEventBus.subscribe('dialog', (action) => {
6368
+ useEffect(() => defaultEventBus.observable.subscribe('dialog', (action) => {
6333
6369
  switch (action.type) {
6334
6370
  case 'open':
6335
6371
  push(action);
@@ -6438,27 +6474,33 @@
6438
6474
  return (jsxs("form", { className: `font-sans relative ${className}`, children: [jsx("div", { className: "absolute rounded h-full flex items-center justify-center pl-m max-w-44 gap-s pointer-events-none", children: searchTerm ? null : (jsx("label", { htmlFor: "search-bar-input", className: `text-secondary-text `, children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0444\u0438\u043B\u0438\u0430\u043B\u0430\u043C" })) }), jsx("input", { id: "search-bar-input", className: style(inputValidStyle, `h-12 pl-m w-full peer text-l text-black rounded-md box-border`), value: searchTerm, onChange: (e) => onSearch(e.target.value.toLowerCase()), type: "text", name: "location-search-bar-input" })] }));
6439
6475
  });
6440
6476
 
6441
- const SEARCH_TERM_MIN_LENGTH = 3;
6442
- const LocationDialog = JSX(({ foreignOffices, branches }) => {
6443
- const [currentLocation, selectCurrentLocation] = useLocation(branches?.default);
6477
+ const SelectedLocation = JSX(({ defaultLocation }) => {
6478
+ const currentLocation = useLocationState(defaultLocation);
6444
6479
  const link = useLink();
6445
6480
  const { href } = link({ href: `/branches/${currentLocation.slug}` });
6481
+ return currentLocation ? (jsx("div", { className: "mb-s", children: jsxs(Paragraph, { size: "text-l", color: "text-primary-text", children: ["\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044B\u0431\u0440\u0430\u043D:", jsx(LinkWrapper, { href: href, className: "inline mx-2xs text-primary-main", children: currentLocation.name })] }) })) : null;
6482
+ });
6483
+
6484
+ const SEARCH_TERM_MIN_LENGTH = 3;
6485
+ const LocationDialog = JSX(({ foreignOffices, branches }) => {
6486
+ const selectLocation = useLocation(branches?.default);
6446
6487
  const [query, setQuery] = useState('');
6447
- const regions = cleanUpRegions(useRegions()).sort((a, b) => a.name.localeCompare(b.name));
6448
- const regionsGroupByLetter = groupBy(regions, regionFirstLetter);
6488
+ const rawRegions = useRegions();
6489
+ const regions = useMemo(() => cleanUpRegions(rawRegions).sort((a, b) => (a.name ?? '').localeCompare(b.name ?? '')), [rawRegions]);
6490
+ const regionsGroupByLetter = useMemo(() => groupBy(regions, regionFirstLetter), [regions]);
6449
6491
  const { close } = useDialogManager();
6450
6492
  const handleChangeLocation = useCallback((region) => {
6451
- selectCurrentLocation(region);
6493
+ selectLocation(region);
6452
6494
  close();
6453
6495
  }, []);
6454
- return (jsxs(Dialog, { className: "pb-20", head: jsxs("div", { children: [jsx(Text, { size: "text-h4", color: "text-primary-text", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B" }), currentLocation ? (jsx("div", { className: "mb-s", children: jsxs(Paragraph, { size: "text-l", color: "text-primary-text", children: ["\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044B\u0431\u0440\u0430\u043D:", jsx(LinkWrapper, { href: href, className: "inline mx-2xs text-primary-main", children: currentLocation.name })] }) })) : null, jsx(SearchBar, { onSearch: setQuery, searchTerm: query })] }), children: [query && query.length >= SEARCH_TERM_MIN_LENGTH ? (jsx("div", { children: regions
6496
+ return (jsxs(Dialog, { className: "pb-20", head: jsxs("div", { children: [jsx(Text, { size: "text-h4", color: "text-primary-text", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B" }), jsx(SelectedLocation, { defaultLocation: branches?.default }), jsx(SearchBar, { onSearch: setQuery, searchTerm: query })] }), children: [query && query.length >= SEARCH_TERM_MIN_LENGTH ? (jsx("div", { children: regions
6455
6497
  .filter(({ name }) => name && jaroWinklerDistance(name.toLowerCase())(query.toLowerCase()) >= 0.8)
6456
6498
  .map(renderRegion(branches?.dataSelect, handleChangeLocation)) })) : (jsx("div", { className: "columns-1 sm:columns-3 md:columns-4 lg:columns-5", children: Array.from(regionsGroupByLetter.entries()).map(renderRegionGroup(handleChangeLocation, branches?.dataSelect)) })), renderForeignOffices(foreignOffices)] }));
6457
6499
  });
6458
- const regionFirstLetter = (region) => region.name?.charAt(0) || '';
6500
+ const regionFirstLetter = (region) => region.name?.charAt(0) ?? '';
6459
6501
  const cleanUpRegions = (regions) => regions.map((region) => ({
6460
6502
  ...region,
6461
- name: region.name?.replace(/республика|область|край'/gi, '').trim() || '',
6503
+ name: region.name?.replace(/республика|область|край'/gi, '').trim() ?? '',
6462
6504
  }));
6463
6505
 
6464
6506
  const useLocationDialog = (props) => {
@@ -6471,7 +6513,7 @@
6471
6513
 
6472
6514
  const BurgerMenuDialog = JSX(({ menuRef, menuItem, locationDialogProps, closeAll }) => {
6473
6515
  const locationDialog = useLocationDialog(locationDialogProps || {});
6474
- const [{ name: location }] = useLocation();
6516
+ const { name: location } = useLocationState();
6475
6517
  const menuDimensions = menuRef?.current?.getBoundingClientRect();
6476
6518
  const basePath = getBasePath(env.SITE_URL);
6477
6519
  const handleIframeLoad = () => {
@@ -7031,7 +7073,7 @@
7031
7073
  const close = useCallback(() => {
7032
7074
  setPopup(null);
7033
7075
  }, []);
7034
- useEffect(() => defaultEventBus.subscribe('popup', (action) => {
7076
+ useEffect(() => defaultEventBus.observable.subscribe('popup', (action) => {
7035
7077
  switch (action.type) {
7036
7078
  case 'open':
7037
7079
  case 'update':
@@ -7086,7 +7128,7 @@
7086
7128
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
7087
7129
  });
7088
7130
 
7089
- const packageVersion = "0.14.594";
7131
+ const packageVersion = "0.14.595";
7090
7132
 
7091
7133
  exports.Blocks = Blocks;
7092
7134
  exports.ContentPage = ContentPage;