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

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 (514) 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/api/dadataHints/dadataHintsType.d.ts +20 -4
  6. package/bundle/api/dadataHints/hintsListsOptions.d.ts +2 -24
  7. package/bundle/bundle.umd.js +208 -109
  8. package/bundle/bundle.umd.min.js +1 -1
  9. package/bundle/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  10. package/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  11. package/bundle/hooks/useLocation.d.ts +2 -1
  12. package/bundle/hooks/useReducer.d.ts +4 -0
  13. package/bundle/ui-kit/Foldable/Foldable.d.ts +11 -1
  14. package/bundle/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  15. package/bundle/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  16. package/bundle/ui-kit/Input/InputPopup.d.ts +1 -1
  17. package/bundle/ui-kit/Input/InputProps.d.ts +3 -0
  18. package/bundle/ui-kit/Input/useInputPopup.d.ts +4 -1
  19. package/bundle/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  20. package/dist/EventBus/EventBus.d.ts +17 -4
  21. package/dist/EventBus/EventBus.js +29 -10
  22. package/dist/EventBus/EventBus.js.map +1 -1
  23. package/dist/EventBus/defaultEventBus.d.ts +2 -13
  24. package/dist/EventBus/defaultEventBus.js.map +1 -1
  25. package/dist/EventBus/useSubject.d.ts +2 -0
  26. package/dist/EventBus/useSubject.js +17 -0
  27. package/dist/EventBus/useSubject.js.map +1 -0
  28. package/dist/EventBus/useSubjectState.d.ts +2 -0
  29. package/dist/EventBus/useSubjectState.js +10 -0
  30. package/dist/EventBus/useSubjectState.js.map +1 -0
  31. package/dist/api/dadataHints/dadataHints.js +15 -8
  32. package/dist/api/dadataHints/dadataHints.js.map +1 -1
  33. package/dist/api/dadataHints/dadataHintsType.d.ts +20 -4
  34. package/dist/api/dadataHints/hintsListsOptions.d.ts +2 -24
  35. package/dist/api/dadataHints/hintsListsOptions.js +31 -9
  36. package/dist/api/dadataHints/hintsListsOptions.js.map +1 -1
  37. package/dist/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  38. package/dist/components/CarouselTariffsCard/CardCellsSection.js +18 -0
  39. package/dist/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  40. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +11 -25
  41. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  42. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  43. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  44. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  45. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  46. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  47. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  48. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  49. package/dist/components/OfficesAtmsMap/AtmsMap.js +1 -1
  50. package/dist/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  51. package/dist/components/OfficesAtmsMap/OfficesMap.js +1 -1
  52. package/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  53. package/dist/components/StickyBottomMenu/BurgerMenuDialog.js +1 -1
  54. package/dist/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  55. package/dist/hooks/useLocation.d.ts +2 -1
  56. package/dist/hooks/useLocation.js +27 -33
  57. package/dist/hooks/useLocation.js.map +1 -1
  58. package/dist/hooks/useReducer.d.ts +4 -0
  59. package/dist/hooks/useReducer.js +12 -0
  60. package/dist/hooks/useReducer.js.map +1 -0
  61. package/dist/hooks/useRegions.js +3 -1
  62. package/dist/hooks/useRegions.js.map +1 -1
  63. package/dist/ui-kit/DialogManager/useDialogManager.js +3 -3
  64. package/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  65. package/dist/ui-kit/DialogManager/useDialogsList.js +1 -1
  66. package/dist/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  67. package/dist/ui-kit/Foldable/Foldable.d.ts +11 -1
  68. package/dist/ui-kit/Foldable/Foldable.js +10 -2
  69. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  70. package/dist/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  71. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js +16 -0
  72. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -0
  73. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  74. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +15 -0
  75. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -0
  76. package/dist/ui-kit/FormField/Fields/InnField.js +8 -1
  77. package/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  78. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js +8 -1
  79. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  80. package/dist/ui-kit/FormField/constants.js +1 -0
  81. package/dist/ui-kit/FormField/constants.js.map +1 -1
  82. package/dist/ui-kit/FormField/getField.js +4 -4
  83. package/dist/ui-kit/FormField/getField.js.map +1 -1
  84. package/dist/ui-kit/FormField/getValidation.js +1 -0
  85. package/dist/ui-kit/FormField/getValidation.js.map +1 -1
  86. package/dist/ui-kit/Input/InputControl.js +3 -1
  87. package/dist/ui-kit/Input/InputControl.js.map +1 -1
  88. package/dist/ui-kit/Input/InputPopup.d.ts +1 -1
  89. package/dist/ui-kit/Input/InputPopup.js +1 -1
  90. package/dist/ui-kit/Input/InputPopup.js.map +1 -1
  91. package/dist/ui-kit/Input/InputProps.d.ts +3 -0
  92. package/dist/ui-kit/Input/useInputPopup.d.ts +4 -1
  93. package/dist/ui-kit/Input/useInputPopup.js +7 -4
  94. package/dist/ui-kit/Input/useInputPopup.js.map +1 -1
  95. package/dist/ui-kit/LocationDialog/LocationDialog.js +9 -12
  96. package/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  97. package/dist/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  98. package/dist/ui-kit/LocationDialog/SelectedLocation.js +15 -0
  99. package/dist/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  100. package/dist/ui-kit/PopupManager/PopupManager.js +1 -1
  101. package/dist/ui-kit/PopupManager/PopupManager.js.map +1 -1
  102. package/dist/ui-kit/PopupManager/usePopupManager.js +3 -3
  103. package/dist/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  104. package/lib/EventBus/EventBus.d.ts +17 -4
  105. package/lib/EventBus/EventBus.js +29 -10
  106. package/lib/EventBus/EventBus.js.map +1 -1
  107. package/lib/EventBus/defaultEventBus.d.ts +2 -13
  108. package/lib/EventBus/defaultEventBus.js.map +1 -1
  109. package/lib/EventBus/useSubject.d.ts +2 -0
  110. package/lib/EventBus/useSubject.js +14 -0
  111. package/lib/EventBus/useSubject.js.map +1 -0
  112. package/lib/EventBus/useSubjectState.d.ts +2 -0
  113. package/lib/EventBus/useSubjectState.js +7 -0
  114. package/lib/EventBus/useSubjectState.js.map +1 -0
  115. package/lib/api/dadataHints/dadataHints.js +15 -8
  116. package/lib/api/dadataHints/dadataHints.js.map +1 -1
  117. package/lib/api/dadataHints/dadataHintsType.d.ts +20 -4
  118. package/lib/api/dadataHints/hintsListsOptions.d.ts +2 -24
  119. package/lib/api/dadataHints/hintsListsOptions.js +26 -4
  120. package/lib/api/dadataHints/hintsListsOptions.js.map +1 -1
  121. package/lib/common.css +1 -1
  122. package/lib/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  123. package/lib/components/CarouselTariffsCard/CardCellsSection.js +16 -0
  124. package/lib/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  125. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -26
  126. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  127. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  128. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  129. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  130. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  131. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  132. package/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  133. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  134. package/lib/components/OfficesAtmsMap/AtmsMap.js +2 -2
  135. package/lib/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  136. package/lib/components/OfficesAtmsMap/OfficesMap.js +2 -2
  137. package/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  138. package/lib/components/StickyBottomMenu/BurgerMenuDialog.js +2 -2
  139. package/lib/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  140. package/lib/hooks/useLocation.d.ts +2 -1
  141. package/lib/hooks/useLocation.js +26 -33
  142. package/lib/hooks/useLocation.js.map +1 -1
  143. package/lib/hooks/useReducer.d.ts +4 -0
  144. package/lib/hooks/useReducer.js +9 -0
  145. package/lib/hooks/useReducer.js.map +1 -0
  146. package/lib/hooks/useRegions.js +3 -1
  147. package/lib/hooks/useRegions.js.map +1 -1
  148. package/lib/ui-kit/DialogManager/useDialogManager.js +3 -3
  149. package/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  150. package/lib/ui-kit/DialogManager/useDialogsList.js +1 -1
  151. package/lib/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  152. package/lib/ui-kit/Foldable/Foldable.d.ts +11 -1
  153. package/lib/ui-kit/Foldable/Foldable.js +10 -2
  154. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  155. package/lib/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  156. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js +14 -0
  157. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -0
  158. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  159. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +13 -0
  160. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -0
  161. package/lib/ui-kit/FormField/Fields/InnField.js +8 -1
  162. package/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  163. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js +8 -1
  164. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  165. package/lib/ui-kit/FormField/constants.js +1 -0
  166. package/lib/ui-kit/FormField/constants.js.map +1 -1
  167. package/lib/ui-kit/FormField/getField.js +4 -4
  168. package/lib/ui-kit/FormField/getField.js.map +1 -1
  169. package/lib/ui-kit/FormField/getValidation.js +1 -0
  170. package/lib/ui-kit/FormField/getValidation.js.map +1 -1
  171. package/lib/ui-kit/Input/InputControl.js +3 -1
  172. package/lib/ui-kit/Input/InputControl.js.map +1 -1
  173. package/lib/ui-kit/Input/InputPopup.d.ts +1 -1
  174. package/lib/ui-kit/Input/InputPopup.js +1 -1
  175. package/lib/ui-kit/Input/InputPopup.js.map +1 -1
  176. package/lib/ui-kit/Input/InputProps.d.ts +3 -0
  177. package/lib/ui-kit/Input/useInputPopup.d.ts +4 -1
  178. package/lib/ui-kit/Input/useInputPopup.js +7 -4
  179. package/lib/ui-kit/Input/useInputPopup.js.map +1 -1
  180. package/lib/ui-kit/LocationDialog/LocationDialog.js +10 -13
  181. package/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  182. package/lib/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  183. package/lib/ui-kit/LocationDialog/SelectedLocation.js +13 -0
  184. package/lib/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  185. package/lib/ui-kit/PopupManager/PopupManager.js +1 -1
  186. package/lib/ui-kit/PopupManager/PopupManager.js.map +1 -1
  187. package/lib/ui-kit/PopupManager/usePopupManager.js +3 -3
  188. package/lib/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  189. package/mobile/bundle/EventBus/EventBus.d.ts +17 -4
  190. package/mobile/bundle/EventBus/defaultEventBus.d.ts +2 -13
  191. package/mobile/bundle/EventBus/useSubject.d.ts +2 -0
  192. package/mobile/bundle/EventBus/useSubjectState.d.ts +2 -0
  193. package/mobile/bundle/api/dadataHints/dadataHintsType.d.ts +20 -4
  194. package/mobile/bundle/api/dadataHints/hintsListsOptions.d.ts +2 -24
  195. package/mobile/bundle/bundle.umd.js +208 -109
  196. package/mobile/bundle/bundle.umd.min.js +1 -1
  197. package/mobile/bundle/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  198. package/mobile/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  199. package/mobile/bundle/hooks/useLocation.d.ts +2 -1
  200. package/mobile/bundle/hooks/useReducer.d.ts +4 -0
  201. package/mobile/bundle/ui-kit/Foldable/Foldable.d.ts +11 -1
  202. package/mobile/bundle/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  203. package/mobile/bundle/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  204. package/mobile/bundle/ui-kit/Input/InputPopup.d.ts +1 -1
  205. package/mobile/bundle/ui-kit/Input/InputProps.d.ts +3 -0
  206. package/mobile/bundle/ui-kit/Input/useInputPopup.d.ts +4 -1
  207. package/mobile/bundle/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  208. package/mobile/dist/EventBus/EventBus.d.ts +17 -4
  209. package/mobile/dist/EventBus/EventBus.js +29 -10
  210. package/mobile/dist/EventBus/EventBus.js.map +1 -1
  211. package/mobile/dist/EventBus/defaultEventBus.d.ts +2 -13
  212. package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
  213. package/mobile/dist/EventBus/useSubject.d.ts +2 -0
  214. package/mobile/dist/EventBus/useSubject.js +17 -0
  215. package/mobile/dist/EventBus/useSubject.js.map +1 -0
  216. package/mobile/dist/EventBus/useSubjectState.d.ts +2 -0
  217. package/mobile/dist/EventBus/useSubjectState.js +10 -0
  218. package/mobile/dist/EventBus/useSubjectState.js.map +1 -0
  219. package/mobile/dist/api/dadataHints/dadataHints.js +15 -8
  220. package/mobile/dist/api/dadataHints/dadataHints.js.map +1 -1
  221. package/mobile/dist/api/dadataHints/dadataHintsType.d.ts +20 -4
  222. package/mobile/dist/api/dadataHints/hintsListsOptions.d.ts +2 -24
  223. package/mobile/dist/api/dadataHints/hintsListsOptions.js +31 -9
  224. package/mobile/dist/api/dadataHints/hintsListsOptions.js.map +1 -1
  225. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  226. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.js +18 -0
  227. package/mobile/dist/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  228. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +11 -25
  229. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  230. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  231. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  232. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  233. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  234. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  235. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  236. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  237. package/mobile/dist/components/OfficesAtmsMap/AtmsMap.js +1 -1
  238. package/mobile/dist/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  239. package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js +1 -1
  240. package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  241. package/mobile/dist/components/StickyBottomMenu/BurgerMenuDialog.js +1 -1
  242. package/mobile/dist/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  243. package/mobile/dist/hooks/useLocation.d.ts +2 -1
  244. package/mobile/dist/hooks/useLocation.js +27 -33
  245. package/mobile/dist/hooks/useLocation.js.map +1 -1
  246. package/mobile/dist/hooks/useReducer.d.ts +4 -0
  247. package/mobile/dist/hooks/useReducer.js +12 -0
  248. package/mobile/dist/hooks/useReducer.js.map +1 -0
  249. package/mobile/dist/hooks/useRegions.js +3 -1
  250. package/mobile/dist/hooks/useRegions.js.map +1 -1
  251. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js +3 -3
  252. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  253. package/mobile/dist/ui-kit/DialogManager/useDialogsList.js +1 -1
  254. package/mobile/dist/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  255. package/mobile/dist/ui-kit/Foldable/Foldable.d.ts +11 -1
  256. package/mobile/dist/ui-kit/Foldable/Foldable.js +10 -2
  257. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  258. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  259. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js +16 -0
  260. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -0
  261. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  262. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +15 -0
  263. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -0
  264. package/mobile/dist/ui-kit/FormField/Fields/InnField.js +8 -1
  265. package/mobile/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  266. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js +8 -1
  267. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  268. package/mobile/dist/ui-kit/FormField/constants.js +1 -0
  269. package/mobile/dist/ui-kit/FormField/constants.js.map +1 -1
  270. package/mobile/dist/ui-kit/FormField/getField.js +4 -4
  271. package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
  272. package/mobile/dist/ui-kit/FormField/getValidation.js +1 -0
  273. package/mobile/dist/ui-kit/FormField/getValidation.js.map +1 -1
  274. package/mobile/dist/ui-kit/Input/InputControl.js +3 -1
  275. package/mobile/dist/ui-kit/Input/InputControl.js.map +1 -1
  276. package/mobile/dist/ui-kit/Input/InputPopup.d.ts +1 -1
  277. package/mobile/dist/ui-kit/Input/InputPopup.js +1 -1
  278. package/mobile/dist/ui-kit/Input/InputPopup.js.map +1 -1
  279. package/mobile/dist/ui-kit/Input/InputProps.d.ts +3 -0
  280. package/mobile/dist/ui-kit/Input/useInputPopup.d.ts +4 -1
  281. package/mobile/dist/ui-kit/Input/useInputPopup.js +7 -4
  282. package/mobile/dist/ui-kit/Input/useInputPopup.js.map +1 -1
  283. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js +9 -12
  284. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  285. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  286. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.js +15 -0
  287. package/mobile/dist/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  288. package/mobile/dist/ui-kit/PopupManager/PopupManager.js +1 -1
  289. package/mobile/dist/ui-kit/PopupManager/PopupManager.js.map +1 -1
  290. package/mobile/dist/ui-kit/PopupManager/usePopupManager.js +3 -3
  291. package/mobile/dist/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  292. package/mobile/lib/EventBus/EventBus.d.ts +17 -4
  293. package/mobile/lib/EventBus/EventBus.js +29 -10
  294. package/mobile/lib/EventBus/EventBus.js.map +1 -1
  295. package/mobile/lib/EventBus/defaultEventBus.d.ts +2 -13
  296. package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
  297. package/mobile/lib/EventBus/useSubject.d.ts +2 -0
  298. package/mobile/lib/EventBus/useSubject.js +14 -0
  299. package/mobile/lib/EventBus/useSubject.js.map +1 -0
  300. package/mobile/lib/EventBus/useSubjectState.d.ts +2 -0
  301. package/mobile/lib/EventBus/useSubjectState.js +7 -0
  302. package/mobile/lib/EventBus/useSubjectState.js.map +1 -0
  303. package/mobile/lib/api/dadataHints/dadataHints.js +15 -8
  304. package/mobile/lib/api/dadataHints/dadataHints.js.map +1 -1
  305. package/mobile/lib/api/dadataHints/dadataHintsType.d.ts +20 -4
  306. package/mobile/lib/api/dadataHints/hintsListsOptions.d.ts +2 -24
  307. package/mobile/lib/api/dadataHints/hintsListsOptions.js +26 -4
  308. package/mobile/lib/api/dadataHints/hintsListsOptions.js.map +1 -1
  309. package/mobile/lib/common.css +1 -1
  310. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.d.ts +9 -0
  311. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.js +16 -0
  312. package/mobile/lib/components/CarouselTariffsCard/CardCellsSection.js.map +1 -0
  313. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -26
  314. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  315. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +9 -0
  316. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  317. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  318. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +2 -2
  319. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  320. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  321. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  322. package/mobile/lib/components/OfficesAtmsMap/AtmsMap.js +2 -2
  323. package/mobile/lib/components/OfficesAtmsMap/AtmsMap.js.map +1 -1
  324. package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js +2 -2
  325. package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
  326. package/mobile/lib/components/StickyBottomMenu/BurgerMenuDialog.js +2 -2
  327. package/mobile/lib/components/StickyBottomMenu/BurgerMenuDialog.js.map +1 -1
  328. package/mobile/lib/hooks/useLocation.d.ts +2 -1
  329. package/mobile/lib/hooks/useLocation.js +26 -33
  330. package/mobile/lib/hooks/useLocation.js.map +1 -1
  331. package/mobile/lib/hooks/useReducer.d.ts +4 -0
  332. package/mobile/lib/hooks/useReducer.js +9 -0
  333. package/mobile/lib/hooks/useReducer.js.map +1 -0
  334. package/mobile/lib/hooks/useRegions.js +3 -1
  335. package/mobile/lib/hooks/useRegions.js.map +1 -1
  336. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js +3 -3
  337. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -1
  338. package/mobile/lib/ui-kit/DialogManager/useDialogsList.js +1 -1
  339. package/mobile/lib/ui-kit/DialogManager/useDialogsList.js.map +1 -1
  340. package/mobile/lib/ui-kit/Foldable/Foldable.d.ts +11 -1
  341. package/mobile/lib/ui-kit/Foldable/Foldable.js +10 -2
  342. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  343. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.d.ts +2 -0
  344. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js +14 -0
  345. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -0
  346. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.d.ts +2 -0
  347. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +13 -0
  348. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -0
  349. package/mobile/lib/ui-kit/FormField/Fields/InnField.js +8 -1
  350. package/mobile/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  351. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js +8 -1
  352. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  353. package/mobile/lib/ui-kit/FormField/constants.js +1 -0
  354. package/mobile/lib/ui-kit/FormField/constants.js.map +1 -1
  355. package/mobile/lib/ui-kit/FormField/getField.js +4 -4
  356. package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
  357. package/mobile/lib/ui-kit/FormField/getValidation.js +1 -0
  358. package/mobile/lib/ui-kit/FormField/getValidation.js.map +1 -1
  359. package/mobile/lib/ui-kit/Input/InputControl.js +3 -1
  360. package/mobile/lib/ui-kit/Input/InputControl.js.map +1 -1
  361. package/mobile/lib/ui-kit/Input/InputPopup.d.ts +1 -1
  362. package/mobile/lib/ui-kit/Input/InputPopup.js +1 -1
  363. package/mobile/lib/ui-kit/Input/InputPopup.js.map +1 -1
  364. package/mobile/lib/ui-kit/Input/InputProps.d.ts +3 -0
  365. package/mobile/lib/ui-kit/Input/useInputPopup.d.ts +4 -1
  366. package/mobile/lib/ui-kit/Input/useInputPopup.js +7 -4
  367. package/mobile/lib/ui-kit/Input/useInputPopup.js.map +1 -1
  368. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js +10 -13
  369. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  370. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.d.ts +5 -0
  371. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.js +13 -0
  372. package/mobile/lib/ui-kit/LocationDialog/SelectedLocation.js.map +1 -0
  373. package/mobile/lib/ui-kit/PopupManager/PopupManager.js +1 -1
  374. package/mobile/lib/ui-kit/PopupManager/PopupManager.js.map +1 -1
  375. package/mobile/lib/ui-kit/PopupManager/usePopupManager.js +3 -3
  376. package/mobile/lib/ui-kit/PopupManager/usePopupManager.js.map +1 -1
  377. package/mobile/src/EventBus/EventBus.ts +51 -15
  378. package/mobile/src/EventBus/defaultEventBus.ts +2 -14
  379. package/mobile/src/EventBus/useSubject.ts +19 -0
  380. package/mobile/src/EventBus/useSubjectState.ts +13 -0
  381. package/mobile/src/api/dadataHints/dadataHints.ts +27 -10
  382. package/mobile/src/api/dadataHints/dadataHintsType.ts +21 -4
  383. package/mobile/src/api/dadataHints/hintsListsOptions.ts +34 -4
  384. package/mobile/src/components/CarouselTariffsCard/CardCellsSection.tsx +54 -0
  385. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +23 -66
  386. package/mobile/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +11 -0
  387. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +2 -2
  388. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  389. package/mobile/src/components/OfficesAtmsMap/AtmsMap.tsx +2 -3
  390. package/mobile/src/components/OfficesAtmsMap/OfficesMap.tsx +2 -2
  391. package/mobile/src/components/StickyBottomMenu/BurgerMenuDialog.tsx +2 -2
  392. package/mobile/src/hooks/useLocation.ts +30 -44
  393. package/mobile/src/hooks/useReducer.ts +21 -0
  394. package/mobile/src/hooks/useRegions.ts +4 -1
  395. package/mobile/src/ui-kit/DialogManager/useDialogManager.ts +3 -3
  396. package/mobile/src/ui-kit/DialogManager/useDialogsList.ts +1 -1
  397. package/mobile/src/ui-kit/Foldable/Foldable.tsx +21 -5
  398. package/mobile/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +26 -0
  399. package/mobile/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +27 -0
  400. package/mobile/src/ui-kit/FormField/Fields/InnField.tsx +18 -7
  401. package/mobile/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +17 -7
  402. package/mobile/src/ui-kit/FormField/constants.tsx +1 -0
  403. package/mobile/src/ui-kit/FormField/getField.tsx +4 -4
  404. package/mobile/src/ui-kit/FormField/getValidation.tsx +1 -0
  405. package/mobile/src/ui-kit/Input/InputControl.tsx +4 -0
  406. package/mobile/src/ui-kit/Input/InputPopup.tsx +2 -2
  407. package/mobile/src/ui-kit/Input/InputProps.ts +3 -0
  408. package/mobile/src/ui-kit/Input/useInputPopup.tsx +17 -5
  409. package/mobile/src/ui-kit/LocationDialog/LocationDialog.tsx +13 -25
  410. package/mobile/src/ui-kit/LocationDialog/SelectedLocation.tsx +27 -0
  411. package/mobile/src/ui-kit/PopupManager/PopupManager.tsx +1 -1
  412. package/mobile/src/ui-kit/PopupManager/usePopupManager.tsx +3 -3
  413. package/package.json +1 -1
  414. package/src/EventBus/EventBus.ts +51 -15
  415. package/src/EventBus/defaultEventBus.ts +2 -14
  416. package/src/EventBus/useSubject.ts +19 -0
  417. package/src/EventBus/useSubjectState.ts +13 -0
  418. package/src/api/dadataHints/dadataHints.ts +27 -10
  419. package/src/api/dadataHints/dadataHintsType.ts +21 -4
  420. package/src/api/dadataHints/hintsListsOptions.ts +34 -4
  421. package/src/components/ApplicationLeadForm/ApplicationLeadForm.fixture.tsx +10 -15
  422. package/src/components/CarouselTariffsCard/CardCellsSection.tsx +54 -0
  423. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +23 -66
  424. package/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +11 -0
  425. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +2 -2
  426. package/src/components/Header/HeaderSecondaryMenu.tsx +2 -2
  427. package/src/components/OfficesAtmsMap/AtmsMap.tsx +2 -3
  428. package/src/components/OfficesAtmsMap/OfficesMap.tsx +2 -2
  429. package/src/components/StickyBottomMenu/BurgerMenuDialog.tsx +2 -2
  430. package/src/hooks/useLocation.ts +30 -44
  431. package/src/hooks/useReducer.ts +21 -0
  432. package/src/hooks/useRegions.ts +4 -1
  433. package/src/ui-kit/DialogManager/useDialogManager.ts +3 -3
  434. package/src/ui-kit/DialogManager/useDialogsList.ts +1 -1
  435. package/src/ui-kit/Foldable/Foldable.tsx +21 -5
  436. package/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +26 -0
  437. package/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +27 -0
  438. package/src/ui-kit/FormField/Fields/InnField.tsx +18 -7
  439. package/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +17 -7
  440. package/src/ui-kit/FormField/constants.tsx +1 -0
  441. package/src/ui-kit/FormField/getField.tsx +4 -4
  442. package/src/ui-kit/FormField/getValidation.tsx +1 -0
  443. package/src/ui-kit/Input/InputControl.tsx +4 -0
  444. package/src/ui-kit/Input/InputPopup.tsx +2 -2
  445. package/src/ui-kit/Input/InputProps.ts +3 -0
  446. package/src/ui-kit/Input/useInputPopup.tsx +17 -5
  447. package/src/ui-kit/LocationDialog/LocationDialog.tsx +13 -25
  448. package/src/ui-kit/LocationDialog/SelectedLocation.tsx +27 -0
  449. package/src/ui-kit/PopupManager/PopupManager.tsx +1 -1
  450. package/src/ui-kit/PopupManager/usePopupManager.tsx +3 -3
  451. package/bundle/EventBus/useLatestEvent.d.ts +0 -2
  452. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  453. package/bundle/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  454. package/bundle/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  455. package/dist/EventBus/useLatestEvent.d.ts +0 -2
  456. package/dist/EventBus/useLatestEvent.js +0 -11
  457. package/dist/EventBus/useLatestEvent.js.map +0 -1
  458. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  459. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  460. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  461. package/dist/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  462. package/dist/ui-kit/FormField/Fields/DulIssuedBy.js +0 -9
  463. package/dist/ui-kit/FormField/Fields/DulIssuedBy.js.map +0 -1
  464. package/dist/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  465. package/dist/ui-kit/FormField/Fields/DulSubdivisionCode.js +0 -9
  466. package/dist/ui-kit/FormField/Fields/DulSubdivisionCode.js.map +0 -1
  467. package/lib/EventBus/useLatestEvent.d.ts +0 -2
  468. package/lib/EventBus/useLatestEvent.js +0 -8
  469. package/lib/EventBus/useLatestEvent.js.map +0 -1
  470. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  471. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  472. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  473. package/lib/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  474. package/lib/ui-kit/FormField/Fields/DulIssuedBy.js +0 -7
  475. package/lib/ui-kit/FormField/Fields/DulIssuedBy.js.map +0 -1
  476. package/lib/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  477. package/lib/ui-kit/FormField/Fields/DulSubdivisionCode.js +0 -7
  478. package/lib/ui-kit/FormField/Fields/DulSubdivisionCode.js.map +0 -1
  479. package/mobile/bundle/EventBus/useLatestEvent.d.ts +0 -2
  480. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  481. package/mobile/bundle/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  482. package/mobile/bundle/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  483. package/mobile/dist/EventBus/useLatestEvent.d.ts +0 -2
  484. package/mobile/dist/EventBus/useLatestEvent.js +0 -11
  485. package/mobile/dist/EventBus/useLatestEvent.js.map +0 -1
  486. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  487. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  488. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  489. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  490. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedBy.js +0 -9
  491. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedBy.js.map +0 -1
  492. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  493. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCode.js +0 -9
  494. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCode.js.map +0 -1
  495. package/mobile/lib/EventBus/useLatestEvent.d.ts +0 -2
  496. package/mobile/lib/EventBus/useLatestEvent.js +0 -8
  497. package/mobile/lib/EventBus/useLatestEvent.js.map +0 -1
  498. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  499. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  500. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  501. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedBy.d.ts +0 -2
  502. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedBy.js +0 -7
  503. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedBy.js.map +0 -1
  504. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCode.d.ts +0 -2
  505. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCode.js +0 -7
  506. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCode.js.map +0 -1
  507. package/mobile/src/EventBus/useLatestEvent.ts +0 -16
  508. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  509. package/mobile/src/ui-kit/FormField/Fields/DulIssuedBy.tsx +0 -12
  510. package/mobile/src/ui-kit/FormField/Fields/DulSubdivisionCode.tsx +0 -17
  511. package/src/EventBus/useLatestEvent.ts +0 -16
  512. package/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  513. package/src/ui-kit/FormField/Fields/DulIssuedBy.tsx +0 -12
  514. package/src/ui-kit/FormField/Fields/DulSubdivisionCode.tsx +0 -17
@@ -1,54 +1,40 @@
1
- import { useCallback, useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
- import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
2
  import { defaultEventBus } from '../EventBus/defaultEventBus';
4
- import { useLatestEvent } from '../EventBus/useLatestEvent';
5
- import { fetchJSONUnsafe, type FetchJSONUnsafeType } from '../utils/fetchJSON';
3
+ import { useSubject } from '../EventBus/useSubject';
4
+ import { useSubjectState } from '../EventBus/useSubjectState';
5
+ import { fetchJSON } from '../utils/fetchJSON';
6
6
  import { type Region } from './useRegions';
7
7
 
8
8
  const REGION_URL = '/api/v1/region';
9
9
  const LOCATION_STORAGE_KEY = 'location';
10
10
 
11
- export function useLocation(defaultLocation = 'Москва'): [Region, (_: Region) => void] {
12
- const [currentLocation, fireCurrentLocation] = useLatestEvent(
13
- defaultEventBus,
14
- 'location',
15
- restoreLocation() ?? { name: defaultLocation },
16
- );
17
-
18
- const selectCurrentLocation = useCallback((_: Region) => {
19
- storeLocation(_);
20
- fireCurrentLocation(_);
21
- }, []);
22
-
23
- const { data } = useAsyncData(
24
- hasStoredLocation() ? null : REGION_URL,
25
- fetchJSONUnsafe as FetchJSONUnsafeType<Region>,
26
- );
27
- useEffect(() => {
28
- if (data && !hasStoredLocation()) {
29
- fireCurrentLocation(data);
11
+ export function useLocation(defaultLocation = 'Москва'): (_: Region) => void {
12
+ useEffect(() => defaultEventBus.subscribe('location', storeLocation), []);
13
+
14
+ return useSubject(defaultEventBus.emitter, 'location', restoreLocation(defaultLocation));
15
+ }
16
+
17
+ export function useLocationState(defaultLocation = 'Москва'): Region {
18
+ return useSubjectState(defaultEventBus.observable, 'location', { name: defaultLocation });
19
+ }
20
+
21
+ function restoreLocation(defaultLocation: string) {
22
+ return async (): Promise<Region> => {
23
+ if (!globalThis.localStorage?.hasItem(LOCATION_STORAGE_KEY)) {
24
+ storeLocation(await fetchJSON<Region>(REGION_URL));
25
+ }
26
+
27
+ const storedLocation = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
28
+ try {
29
+ return storedLocation && JSON.parse(storedLocation);
30
+ } catch (ex) {
31
+ // Do nothing
30
32
  }
31
- }, [data]);
32
33
 
33
- return [currentLocation ?? { name: defaultLocation }, selectCurrentLocation];
34
+ return { name: defaultLocation };
35
+ };
34
36
  }
35
37
 
36
- const hasStoredLocation = () => Boolean(globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY));
37
-
38
- const restoreLocation = (): Region | null => {
39
- try {
40
- const data = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
41
-
42
- return data && JSON.parse(data);
43
- } catch (ex) {
44
- return null;
45
- }
46
- };
47
-
48
- const storeLocation = (_: Region) => {
49
- try {
50
- globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
51
- } catch (ex) {
52
- // Do nothing
53
- }
54
- };
38
+ function storeLocation(_: Region | null | undefined) {
39
+ _ && globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
40
+ }
@@ -0,0 +1,21 @@
1
+ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export type NotUndefined = object | null;
4
+ export type Reducer<S, A extends NotUndefined> = (state: S, action: A) => S;
5
+ export type Dispatch<A extends NotUndefined> = (action: A) => void;
6
+
7
+ export function useReducer<S, A extends NotUndefined>(
8
+ reducer: Reducer<S, A>,
9
+ initialArg: S,
10
+ ): [state: S, dispatch: Dispatch<A>] {
11
+ const [state, setState] = useState(initialArg);
12
+
13
+ const dispatch = useCallback(
14
+ (action: A) => {
15
+ setState((_) => reducer(_, action));
16
+ },
17
+ [reducer],
18
+ );
19
+
20
+ return [state, dispatch];
21
+ }
@@ -11,8 +11,11 @@ export interface Region {
11
11
  localities?: string[];
12
12
  }
13
13
 
14
+ const EMPTY_REGIONS: Region[] = [];
15
+
16
+ // TODO Почему url можно менять? Разве смысл не в инкапсуляции api url. Тоже под рефакторинг попадает
14
17
  export function useRegions(url: string = REGIONS_URL): Region[] {
15
18
  const { data } = useAsyncData(url, fetchJSONUnsafe as FetchJSONUnsafeType<Region[]>);
16
19
 
17
- return Array.isArray(data) ? data : [];
20
+ return Array.isArray(data) ? data : EMPTY_REGIONS;
18
21
  }
@@ -8,7 +8,7 @@ export interface DialogOptions {
8
8
 
9
9
  export const useDialogManager = () => ({
10
10
  open: (dialog: VNode, options: DialogOptions = {}) =>
11
- defaultEventBus.fire('dialog', { type: 'open', dialog, ...options }),
12
- close: () => defaultEventBus.fire('dialog', { type: 'close' }),
13
- closeAll: () => defaultEventBus.fire('dialog', { type: 'close', all: true }),
11
+ defaultEventBus.emitter.fire('dialog', { type: 'open', dialog, ...options }),
12
+ close: () => defaultEventBus.emitter.fire('dialog', { type: 'close' }),
13
+ closeAll: () => defaultEventBus.emitter.fire('dialog', { type: 'close', all: true }),
14
14
  });
@@ -27,7 +27,7 @@ export const useDialogsList = ({
27
27
 
28
28
  useEffect(
29
29
  () =>
30
- defaultEventBus.subscribe('dialog', (action) => {
30
+ defaultEventBus.observable.subscribe('dialog', (action) => {
31
31
  switch (action.type) {
32
32
  case 'open':
33
33
  push(action);
@@ -3,14 +3,30 @@ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { type VNode } from '../../model/VNode';
4
4
  import { type FoldablePartProps } from './FoldablePartProps';
5
5
 
6
- export interface FoldableProps {
6
+ export interface FoldableWrapperProps {
7
7
  className?: string;
8
+ }
9
+
10
+ export interface FoldableProps extends FoldableWrapperProps {
8
11
  unfoldedByDefault?: boolean;
9
12
  isFoldButtonOnTop?: boolean;
10
13
  renderFoldableSection: (props: FoldablePartProps) => VNode;
11
14
  renderFoldButton?: ((props: FoldablePartProps) => VNode) | null;
12
15
  }
13
16
 
17
+ export const FoldableWrapper = JSX<FoldableWrapperProps>(({ className, children }) => (
18
+ <div className={className} role="group">
19
+ {children}
20
+ </div>
21
+ ));
22
+
23
+ /**
24
+ * Какой то бесполезный компонент. Его можно заменить на useBool
25
+ * Лучше оставить только обёрточный div с необходимой атрибутикой
26
+ * и сделать пассивный компонент
27
+ *
28
+ * @deprecated
29
+ */
14
30
  export const Foldable = JSX<FoldableProps>(
15
31
  ({
16
32
  className = '',
@@ -29,15 +45,15 @@ export const Foldable = JSX<FoldableProps>(
29
45
  const buttonNode = renderFoldButton ? renderFoldButton({ isUnfolded, onToggle }) : null;
30
46
 
31
47
  return isFoldButtonOnTop ? (
32
- <div className={className} role="group">
48
+ <FoldableWrapper className={className}>
33
49
  {buttonNode}
34
50
  {sectionNode}
35
- </div>
51
+ </FoldableWrapper>
36
52
  ) : (
37
- <div className={className} role="group">
53
+ <FoldableWrapper className={className}>
38
54
  {sectionNode}
39
55
  {buttonNode}
40
- </div>
56
+ </FoldableWrapper>
41
57
  );
42
58
  },
43
59
  );
@@ -0,0 +1,26 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { type DaDataSuggestion } from '../../../api/dadataHints/dadataHintsType';
4
+ import { InputControl } from '../../Input/InputControl';
5
+ import { type CustomFieldProps } from '../CustomFieldProps';
6
+ import { validatorObj } from '../getObjectValidator';
7
+ import { getValidation } from '../getValidation';
8
+
9
+ export const DulIssuedByField = JSX<CustomFieldProps>(({ field, input }) => {
10
+ const { value: dulSubdivisionCode, onChange: changeDulSubdivisionCode } =
11
+ field('dulSubdivisionCode');
12
+
13
+ const onDaDataChange = useCallback((item: DaDataSuggestion) => {
14
+ changeDulSubdivisionCode?.(item?.data?.code?.replace('-', ''));
15
+ }, []);
16
+
17
+ return (
18
+ <InputControl
19
+ label="Кем выдан"
20
+ {...input}
21
+ {...getValidation(field('dulIssuedBy'), validatorObj.dulIssuedBy, input?.required)}
22
+ onDaDataChange={onDaDataChange}
23
+ daDataQueryPrefix={dulSubdivisionCode}
24
+ />
25
+ );
26
+ });
@@ -0,0 +1,27 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { type DaDataSuggestion } from '../../../api/dadataHints/dadataHintsType';
4
+ import { InputControl } from '../../Input/InputControl';
5
+ import { type CustomFieldProps } from '../CustomFieldProps';
6
+ import { validatorObj } from '../getObjectValidator';
7
+ import { getValidation } from '../getValidation';
8
+
9
+ export const DulSubdivisionCodeField = JSX<CustomFieldProps>(({ field, input }) => {
10
+ const onDaDataChange = useCallback((item: DaDataSuggestion) => {
11
+ field?.('dulIssuedBy')?.onChange?.(item?.data?.name);
12
+ }, []);
13
+
14
+ return (
15
+ <InputControl
16
+ label="Код подразделения"
17
+ type="number"
18
+ {...input}
19
+ {...getValidation(
20
+ field('dulSubdivisionCode'),
21
+ validatorObj.dulSubdivisionCode,
22
+ input?.required,
23
+ )}
24
+ onDaDataChange={onDaDataChange}
25
+ />
26
+ );
27
+ });
@@ -1,13 +1,24 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { type DaDataSuggestion } from '../../../api/dadataHints/dadataHintsType';
2
4
  import { InputControl } from '../../Input/InputControl';
3
5
  import { type CustomFieldProps } from '../CustomFieldProps';
4
6
  import { validatorObj } from '../getObjectValidator';
5
7
  import { getValidation } from '../getValidation';
6
8
 
7
- export const InnField = JSX<CustomFieldProps>(({ field, input }) => (
8
- <InputControl
9
- label="ИНН"
10
- type="number"
11
- {...getValidation(field('inn'), validatorObj.inn, input?.required)}
12
- />
13
- ));
9
+ export const InnField = JSX<CustomFieldProps>(({ field, input }) => {
10
+ const onDaDataChange = useCallback((item: DaDataSuggestion) => {
11
+ field?.('organizationName')?.onChange?.(item.data?.name?.short_with_opf);
12
+ field?.('legalForm')?.onChange?.(item.data?.opf?.short);
13
+ }, []);
14
+
15
+ return (
16
+ <InputControl
17
+ label="ИНН"
18
+ type="number"
19
+ {...input}
20
+ {...getValidation(field('inn'), validatorObj.inn, input?.required)}
21
+ onDaDataChange={onDaDataChange}
22
+ />
23
+ );
24
+ });
@@ -1,13 +1,23 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { type DaDataSuggestion } from '../../../api/dadataHints/dadataHintsType';
2
4
  import { InputControl } from '../../Input/InputControl';
3
5
  import { type CustomFieldProps } from '../CustomFieldProps';
4
6
  import { validatorObj } from '../getObjectValidator';
5
7
  import { getValidation } from '../getValidation';
6
8
 
7
- export const OrganizationNameField = JSX<CustomFieldProps>(({ field, input }) => (
8
- <InputControl
9
- label="Наименование организации"
10
- {...getValidation(field('organizationName'), validatorObj.organizationName, input?.required)}
11
- {...input}
12
- />
13
- ));
9
+ export const OrganizationNameField = JSX<CustomFieldProps>(({ field, input }) => {
10
+ const onDaDataChange = useCallback((item: DaDataSuggestion) => {
11
+ field?.('inn')?.onChange?.(item.data?.inn);
12
+ field?.('legalForm')?.onChange?.(item.data?.opf?.short);
13
+ }, []);
14
+
15
+ return (
16
+ <InputControl
17
+ label="Наименование организации"
18
+ {...input}
19
+ {...getValidation(field('organizationName'), validatorObj.organizationName, input?.required)}
20
+ onDaDataChange={onDaDataChange}
21
+ />
22
+ );
23
+ });
@@ -26,4 +26,5 @@ export const FEEDBACK_METHOD: Option[] = [
26
26
  { key: 'email', text: 'Электронное сообщение' },
27
27
  ];
28
28
 
29
+ // TODO Тоже надо рефакторить - файлик constants
29
30
  export const OUT_SERVICE_URL = '/api/v1/outservice/outserviceregions';
@@ -26,10 +26,10 @@ import { ConsentToReceiveMaterialsField } from './Fields/ConsentToReceiveMateria
26
26
  import { DependentsField } from './Fields/DependentsField';
27
27
  import { DesiredMeetingDateField } from './Fields/DesiredMeetingDateField';
28
28
  import { DulIssueDateField } from './Fields/DulIssueDateField';
29
- import { DulIssuedBy } from './Fields/DulIssuedBy';
29
+ import { DulIssuedByField } from './Fields/DulIssuedByField';
30
30
  import { DulNumberField } from './Fields/DulNumberField';
31
31
  import { DulSerieField } from './Fields/DulSerieField';
32
- import { DulSubdivisionCode } from './Fields/DulSubdivisionCode';
32
+ import { DulSubdivisionCodeField } from './Fields/DulSubdivisionCodeField';
33
33
  import { EducationField } from './Fields/EducationField';
34
34
  import { EmailField } from './Fields/EmailField';
35
35
  import { EmployerActivitiesField } from './Fields/EmployerActivitiesField';
@@ -163,8 +163,8 @@ export const getField =
163
163
  dulSerie: <DulSerieField field={field} input={input} />,
164
164
  dulNumber: <DulNumberField field={field} input={input} />,
165
165
  dulIssueDateField: <DulIssueDateField field={field} input={input} />,
166
- dulSubdivisionCode: <DulSubdivisionCode field={field} input={input} />,
167
- dulIssuedBy: <DulIssuedBy field={field} input={input} />,
166
+ dulSubdivisionCode: <DulSubdivisionCodeField field={field} input={input} />,
167
+ dulIssuedBy: <DulIssuedByField field={field} input={input} />,
168
168
  participantAddress: <ParticipantAddressField field={field} input={input} />,
169
169
  participantDateRegistration: <ParticipantDateRegistrationField field={field} input={input} />,
170
170
  };
@@ -2,5 +2,6 @@ import { type FieldProps } from '../../hooks/useForm';
2
2
  import { type Validator } from '../../validation/validator';
3
3
  import { withValidator } from '../../validation/withValidator';
4
4
 
5
+ // TODO Зачем это?
5
6
  export const getValidation = (field: FieldProps<any>, validator: Validator, required = false) =>
6
7
  required ? withValidator(field, validator) : field;
@@ -18,10 +18,12 @@ export const InputControl = JSX<InputProps>(
18
18
  error,
19
19
  errors,
20
20
  onChange = noop,
21
+ onDaDataChange,
21
22
  onBlur,
22
23
  isTextarea,
23
24
  type,
24
25
  name = '',
26
+ daDataQueryPrefix,
25
27
  dadata = false,
26
28
  }) => {
27
29
  const [isOpen, { setFalse: close, setTrue: open }] = useBool();
@@ -31,7 +33,9 @@ export const InputControl = JSX<InputProps>(
31
33
  isOpen: isOpen && dadata,
32
34
  name,
33
35
  value,
36
+ daDataQueryPrefix,
34
37
  onChange,
38
+ onDaDataChange,
35
39
  });
36
40
 
37
41
  return (
@@ -3,7 +3,7 @@ import { type DaDataSuggestion } from '../../api/dadataHints/dadataHintsType';
3
3
 
4
4
  export interface InputPopupProps {
5
5
  options?: Array<DaDataSuggestion>;
6
- onChange: (e: string) => void;
6
+ onChange: (e: DaDataSuggestion) => void;
7
7
  value?: string;
8
8
  }
9
9
 
@@ -17,7 +17,7 @@ export const InputPopup = JSX<InputPopupProps>(({ options, onChange }) => (
17
17
  key={key.toString()}
18
18
  className="flex px-m py-s cursor-pointer hover:bg-main-divider pr-5xl relative"
19
19
  role="listitem"
20
- onMouseDown={() => onChange(item.processedValue)}
20
+ onMouseDown={() => onChange(item)}
21
21
  >
22
22
  <span className="min-h-6">{item.processedValue}</span>
23
23
  </div>
@@ -1,4 +1,5 @@
1
1
  import { type DefaultControlType } from '../../model/DefaultControlType';
2
+ import { type DaDataSuggestion } from '../../api/dadataHints/dadataHintsType';
2
3
  import { type InputTypes } from '../../model/InputTypes';
3
4
  import { type ControlProps } from '../ControlProps';
4
5
  import { type PreventableEventWithTarget } from '../PreventableEvent';
@@ -10,6 +11,8 @@ export interface InputProps<V = string> extends DefaultControlType, ControlProps
10
11
  pattern?: string;
11
12
  onFocus?: (ev: PreventableEventWithTarget) => void;
12
13
  onBlur?: (ev?: PreventableEventWithTarget) => void;
14
+ onDaDataChange?: (ev: DaDataSuggestion) => void;
15
+ daDataQueryPrefix?: string;
13
16
  valid?: boolean;
14
17
  disabled?: boolean;
15
18
  autoFocus?: boolean;
@@ -10,10 +10,19 @@ interface InputPopupOptions {
10
10
  isOpen?: boolean;
11
11
  name: string;
12
12
  value?: string;
13
+ daDataQueryPrefix?: string;
13
14
  onChange: (e: string) => void;
15
+ onDaDataChange?: (e: DaDataSuggestion) => void;
14
16
  }
15
17
 
16
- export function useInputPopup({ isOpen, value, name, onChange }: InputPopupOptions) {
18
+ export function useInputPopup({
19
+ isOpen,
20
+ value,
21
+ name,
22
+ onChange,
23
+ onDaDataChange,
24
+ daDataQueryPrefix,
25
+ }: InputPopupOptions) {
17
26
  const prevInputValue = useRef(value);
18
27
  const currentInputValue = useRef(value);
19
28
  const [hintsList, setHintsList] = useState<Array<DaDataSuggestion>>([]);
@@ -27,10 +36,11 @@ export function useInputPopup({ isOpen, value, name, onChange }: InputPopupOptio
27
36
  }, [value]);
28
37
 
29
38
  const handleChange = useCallback(
30
- (option: string) => {
39
+ (option: DaDataSuggestion) => {
31
40
  close();
32
- currentInputValue.current = option;
33
- onChange && onChange(option);
41
+ currentInputValue.current = option.processedValue;
42
+ onChange && onChange(option.processedValue);
43
+ onDaDataChange && onDaDataChange(option);
34
44
  },
35
45
  [close, onChange],
36
46
  );
@@ -44,16 +54,18 @@ export function useInputPopup({ isOpen, value, name, onChange }: InputPopupOptio
44
54
  }
45
55
  const result = await getDaDataHints({
46
56
  url: defaultHintsListOptions.url,
57
+ responseItemHandler: defaultHintsListOptions.responseItemHandler,
47
58
  requestData: {
48
59
  ...defaultHintsListOptions?.requestData,
49
60
  },
50
61
  query: searchValue,
62
+ queryPrefix: daDataQueryPrefix,
51
63
  });
52
64
  if (result?.length) {
53
65
  setHintsList(result);
54
66
  }
55
67
  },
56
- [],
68
+ [daDataQueryPrefix],
57
69
  );
58
70
 
59
71
  const debouncedGetHintsList = useMemo(() => debounce(getHintsList, 300), [getHintsList]);
@@ -1,20 +1,18 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useCallback, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { type BranchesHeader, type ForeignOfficeProps } from '../../data/HeaderData';
4
- import { useLink } from '../../hooks/useLink';
5
4
  import { useLocation } from '../../hooks/useLocation';
6
5
  import { useRegions, type Region } from '../../hooks/useRegions';
7
6
  import { groupBy } from '../../utils/groupBy';
8
7
  import { jaroWinklerDistance } from '../../utils/jaroWinklerDistance';
9
8
  import { Dialog } from '../DialogManager/Dialog';
10
9
  import { useDialogManager } from '../DialogManager/useDialogManager';
11
- import { LinkWrapper } from '../LinkWrapper/LinkWrapper';
12
- import { Paragraph } from '../Paragraph/Paragraph';
13
10
  import { Text } from '../Text/Text';
14
11
  import { renderForeignOffices } from './renderForeignOffices';
15
12
  import { renderRegion } from './renderRegion';
16
13
  import { renderRegionGroup } from './renderRegionGroup';
17
14
  import { SearchBar } from './SearchBar';
15
+ import { SelectedLocation } from './SelectedLocation';
18
16
 
19
17
  const SEARCH_TERM_MIN_LENGTH = 3;
20
18
 
@@ -24,22 +22,21 @@ export interface LocationDialogProps {
24
22
  }
25
23
 
26
24
  export const LocationDialog = JSX<LocationDialogProps>(({ foreignOffices, branches }) => {
27
- const [currentLocation, selectCurrentLocation] = useLocation(branches?.default);
28
-
29
- const link = useLink();
30
- const { href } = link({ href: `/branches/${currentLocation.slug}` });
25
+ const selectLocation = useLocation(branches?.default);
31
26
 
32
27
  const [query, setQuery] = useState('');
33
28
 
34
- const regions: Region[] = cleanUpRegions(useRegions()).sort((a, b) =>
35
- a.name.localeCompare(b.name),
29
+ const rawRegions = useRegions();
30
+ const regions = useMemo(
31
+ () => cleanUpRegions(rawRegions).sort((a, b) => (a.name ?? '').localeCompare(b.name ?? '')),
32
+ [rawRegions],
36
33
  );
37
- const regionsGroupByLetter: Map<string, Region[]> = groupBy(regions, regionFirstLetter);
34
+ const regionsGroupByLetter = useMemo(() => groupBy(regions, regionFirstLetter), [regions]);
38
35
 
39
36
  const { close } = useDialogManager();
40
37
 
41
38
  const handleChangeLocation = useCallback((region: Region) => {
42
- selectCurrentLocation(region);
39
+ selectLocation(region);
43
40
  close();
44
41
  }, []);
45
42
 
@@ -51,16 +48,7 @@ export const LocationDialog = JSX<LocationDialogProps>(({ foreignOffices, branch
51
48
  <Text size="text-h4" color="text-primary-text">
52
49
  Выберите филиал
53
50
  </Text>
54
- {currentLocation ? (
55
- <div className="mb-s">
56
- <Paragraph size="text-l" color="text-primary-text">
57
- Сейчас выбран:
58
- <LinkWrapper href={href} className="inline mx-2xs text-primary-main">
59
- {currentLocation.name}
60
- </LinkWrapper>
61
- </Paragraph>
62
- </div>
63
- ) : null}
51
+ <SelectedLocation defaultLocation={branches?.default} />
64
52
  <SearchBar onSearch={setQuery} searchTerm={query} />
65
53
  </div>
66
54
  }
@@ -86,10 +74,10 @@ export const LocationDialog = JSX<LocationDialogProps>(({ foreignOffices, branch
86
74
  );
87
75
  });
88
76
 
89
- const regionFirstLetter = (region: Region) => region.name?.charAt(0) || '';
77
+ const regionFirstLetter = (region: Region) => region.name?.charAt(0) ?? '';
90
78
 
91
- const cleanUpRegions = (regions: Region[]) =>
79
+ const cleanUpRegions = (regions: Region[]): Region[] =>
92
80
  regions.map((region) => ({
93
81
  ...region,
94
- name: region.name?.replace(/республика|область|край'/gi, '').trim() || '',
82
+ name: region.name?.replace(/республика|область|край'/gi, '').trim() ?? '',
95
83
  }));
@@ -0,0 +1,27 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import { useLocationState } from '../../hooks/useLocation';
4
+ import { LinkWrapper } from '../LinkWrapper/LinkWrapper';
5
+ import { Paragraph } from '../Paragraph/Paragraph';
6
+
7
+ interface SelectedLocationProps {
8
+ defaultLocation?: string;
9
+ }
10
+
11
+ export const SelectedLocation = JSX<SelectedLocationProps>(({ defaultLocation }) => {
12
+ const currentLocation = useLocationState(defaultLocation);
13
+
14
+ const link = useLink();
15
+ const { href } = link({ href: `/branches/${currentLocation.slug}` });
16
+
17
+ return currentLocation ? (
18
+ <div className="mb-s">
19
+ <Paragraph size="text-l" color="text-primary-text">
20
+ Сейчас выбран:
21
+ <LinkWrapper href={href} className="inline mx-2xs text-primary-main">
22
+ {currentLocation.name}
23
+ </LinkWrapper>
24
+ </Paragraph>
25
+ </div>
26
+ ) : null;
27
+ });
@@ -15,7 +15,7 @@ export const PopupManager = JSX(() => {
15
15
 
16
16
  useEffect(
17
17
  () =>
18
- defaultEventBus.subscribe('popup', (action) => {
18
+ defaultEventBus.observable.subscribe('popup', (action) => {
19
19
  switch (action.type) {
20
20
  case 'open':
21
21
  case 'update':
@@ -4,8 +4,8 @@ import { type PopupOptions } from './PopupAction';
4
4
 
5
5
  export const usePopupManager = () => ({
6
6
  open: (popup: VNode, options: PopupOptions) =>
7
- defaultEventBus.fire('popup', { type: 'open', popup, ...options }),
7
+ defaultEventBus.emitter.fire('popup', { type: 'open', popup, ...options }),
8
8
  update: (popup: VNode, options: PopupOptions) =>
9
- defaultEventBus.fire('popup', { type: 'update', popup, ...options }),
10
- close: () => defaultEventBus.fire('popup', { type: 'close' }),
9
+ defaultEventBus.emitter.fire('popup', { type: 'update', popup, ...options }),
10
+ close: () => defaultEventBus.emitter.fire('popup', { type: 'close' }),
11
11
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.595",
3
+ "version": "0.14.597",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",