@redneckz/wildless-cms-uni-blocks 0.5.10 → 0.5.11

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 (440) hide show
  1. package/bin/migration-scripts/0.4.5.js +1 -1
  2. package/bin/migration-scripts/0.5.10.js +36 -0
  3. package/bin/utils.js +0 -2
  4. package/bundle/blocks.schema.json +1 -1
  5. package/bundle/bundle.umd.js +164 -98
  6. package/bundle/bundle.umd.min.js +1 -1
  7. package/dist/EventBus/EventMap.d.ts +2 -1
  8. package/dist/components/Bonus/Bonus.js +11 -2
  9. package/dist/components/Bonus/Bonus.js.map +1 -1
  10. package/dist/components/Bonus/BonusContent.d.ts +30 -2
  11. package/dist/components/CardTransfer/CardTransfer.js +10 -11
  12. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  13. package/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
  14. package/dist/components/ComparisonTable/TableColumn.js +7 -2
  15. package/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  16. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  17. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -1
  18. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  19. package/dist/components/ExchangeRateTile/renderInput.js +2 -2
  20. package/dist/components/ExchangeRateTile/renderInput.js.map +1 -1
  21. package/dist/components/GracePeriod/GracePeriod.js +3 -3
  22. package/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  23. package/dist/components/GracePeriod/GracePeriodContent.d.ts +1 -1
  24. package/dist/components/MobileAppTile/MobileAppTile.js +2 -2
  25. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  26. package/dist/components/SafeDepositRental/RegionsAndBranches.js +1 -1
  27. package/dist/components/SafeDepositRental/RegionsAndBranches.js.map +1 -1
  28. package/dist/components/SafeDepositRental/SafeDepositRental.js +1 -1
  29. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  30. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +1 -1
  31. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  32. package/dist/components/SafeDepositRental/WrapperSelect.js +6 -3
  33. package/dist/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  34. package/dist/components/Tabs/Tabs.d.ts +4 -0
  35. package/dist/components/Tabs/Tabs.js +13 -3
  36. package/dist/components/Tabs/Tabs.js.map +1 -1
  37. package/dist/components/Tabs/TabsContent.d.ts +2 -0
  38. package/dist/components/Tabs/renderLinkTab.d.ts +3 -2
  39. package/dist/components/Tabs/renderLinkTab.js +4 -1
  40. package/dist/components/Tabs/renderLinkTab.js.map +1 -1
  41. package/dist/components/Tabs/renderTab.js +12 -2
  42. package/dist/components/Tabs/renderTab.js.map +1 -1
  43. package/dist/react/IntersectionObserverTag.js +7 -3
  44. package/dist/react/IntersectionObserverTag.js.map +1 -1
  45. package/dist/ui-kit/BlockWrapper.js +34 -12
  46. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  47. package/dist/ui-kit/CurrencyInput/CurrencyInput.js +11 -6
  48. package/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  49. package/dist/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +2 -7
  50. package/dist/ui-kit/CurrencyInput/adjustValue .d.ts +1 -0
  51. package/dist/ui-kit/CurrencyInput/adjustValue .js +15 -0
  52. package/dist/ui-kit/CurrencyInput/adjustValue .js.map +1 -0
  53. package/dist/ui-kit/Input/Input.d.ts +1 -1
  54. package/dist/ui-kit/Input/Input.js +7 -4
  55. package/dist/ui-kit/Input/Input.js.map +1 -1
  56. package/dist/ui-kit/Input/InputProps.d.ts +6 -3
  57. package/dist/ui-kit/Select/Select.d.ts +10 -4
  58. package/dist/ui-kit/Select/Select.js +23 -5
  59. package/dist/ui-kit/Select/Select.js.map +1 -1
  60. package/dist/utils/changeHashOnObserve.d.ts +9 -1
  61. package/dist/utils/changeHashOnObserve.js +12 -4
  62. package/dist/utils/changeHashOnObserve.js.map +1 -1
  63. package/lib/EventBus/EventMap.d.ts +2 -1
  64. package/lib/common.css +1 -1
  65. package/lib/components/Bonus/Bonus.js +11 -2
  66. package/lib/components/Bonus/Bonus.js.map +1 -1
  67. package/lib/components/Bonus/BonusContent.d.ts +30 -2
  68. package/lib/components/CardTransfer/CardTransfer.js +10 -11
  69. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  70. package/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
  71. package/lib/components/ComparisonTable/TableColumn.js +7 -2
  72. package/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  73. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  74. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -1
  75. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  76. package/lib/components/ExchangeRateTile/renderInput.js +2 -2
  77. package/lib/components/ExchangeRateTile/renderInput.js.map +1 -1
  78. package/lib/components/GracePeriod/GracePeriod.js +3 -3
  79. package/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  80. package/lib/components/GracePeriod/GracePeriodContent.d.ts +1 -1
  81. package/lib/components/MobileAppTile/MobileAppTile.js +2 -2
  82. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  83. package/lib/components/SafeDepositRental/RegionsAndBranches.js +1 -1
  84. package/lib/components/SafeDepositRental/RegionsAndBranches.js.map +1 -1
  85. package/lib/components/SafeDepositRental/SafeDepositRental.js +1 -1
  86. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  87. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +1 -1
  88. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  89. package/lib/components/SafeDepositRental/WrapperSelect.js +7 -4
  90. package/lib/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  91. package/lib/components/Tabs/Tabs.d.ts +4 -0
  92. package/lib/components/Tabs/Tabs.js +13 -3
  93. package/lib/components/Tabs/Tabs.js.map +1 -1
  94. package/lib/components/Tabs/TabsContent.d.ts +2 -0
  95. package/lib/components/Tabs/renderLinkTab.d.ts +3 -2
  96. package/lib/components/Tabs/renderLinkTab.js +5 -2
  97. package/lib/components/Tabs/renderLinkTab.js.map +1 -1
  98. package/lib/components/Tabs/renderTab.js +12 -2
  99. package/lib/components/Tabs/renderTab.js.map +1 -1
  100. package/lib/react/IntersectionObserverTag.js +7 -3
  101. package/lib/react/IntersectionObserverTag.js.map +1 -1
  102. package/lib/ui-kit/BlockWrapper.js +35 -13
  103. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  104. package/lib/ui-kit/CurrencyInput/CurrencyInput.js +12 -7
  105. package/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  106. package/lib/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +2 -7
  107. package/lib/ui-kit/CurrencyInput/adjustValue .d.ts +1 -0
  108. package/lib/ui-kit/CurrencyInput/adjustValue .js +12 -0
  109. package/lib/ui-kit/CurrencyInput/adjustValue .js.map +1 -0
  110. package/lib/ui-kit/Input/Input.d.ts +1 -1
  111. package/lib/ui-kit/Input/Input.js +8 -5
  112. package/lib/ui-kit/Input/Input.js.map +1 -1
  113. package/lib/ui-kit/Input/InputProps.d.ts +6 -3
  114. package/lib/ui-kit/Select/Select.d.ts +10 -4
  115. package/lib/ui-kit/{SelectCustom/SelectCustom.fixture.d.ts → Select/Select.fixture.d.ts} +0 -0
  116. package/lib/ui-kit/Select/Select.js +24 -6
  117. package/lib/ui-kit/Select/Select.js.map +1 -1
  118. package/lib/utils/changeHashOnObserve.d.ts +9 -1
  119. package/lib/utils/changeHashOnObserve.js +12 -4
  120. package/lib/utils/changeHashOnObserve.js.map +1 -1
  121. package/mobile/bundle/bundle.umd.js +90 -52
  122. package/mobile/bundle/bundle.umd.min.js +1 -1
  123. package/mobile/dist/EventBus/EventMap.d.ts +2 -1
  124. package/mobile/dist/components/Bonus/Bonus.js +11 -2
  125. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  126. package/mobile/dist/components/Bonus/BonusContent.d.ts +30 -2
  127. package/mobile/dist/components/CardTransfer/CardTransfer.js +10 -11
  128. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  129. package/mobile/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
  130. package/mobile/dist/components/ComparisonTable/TableColumn.js +7 -2
  131. package/mobile/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  132. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  133. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -1
  134. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  135. package/mobile/dist/components/ExchangeRateTile/renderInput.js +2 -2
  136. package/mobile/dist/components/ExchangeRateTile/renderInput.js.map +1 -1
  137. package/mobile/dist/components/GracePeriod/GracePeriod.js +3 -3
  138. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  139. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +1 -1
  140. package/mobile/dist/components/SafeDepositRental/RegionsAndBranches.js +1 -1
  141. package/mobile/dist/components/SafeDepositRental/RegionsAndBranches.js.map +1 -1
  142. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +1 -1
  143. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  144. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +1 -1
  145. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  146. package/mobile/dist/components/SafeDepositRental/WrapperSelect.js +6 -3
  147. package/mobile/dist/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  148. package/mobile/dist/components/Tabs/Tabs.d.ts +4 -0
  149. package/mobile/dist/components/Tabs/Tabs.js +13 -3
  150. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  151. package/mobile/dist/components/Tabs/TabsContent.d.ts +2 -0
  152. package/mobile/dist/components/Tabs/renderLinkTab.d.ts +3 -2
  153. package/mobile/dist/components/Tabs/renderLinkTab.js +4 -1
  154. package/mobile/dist/components/Tabs/renderLinkTab.js.map +1 -1
  155. package/mobile/dist/components/Tabs/renderTab.js +12 -2
  156. package/mobile/dist/components/Tabs/renderTab.js.map +1 -1
  157. package/mobile/dist/react/IntersectionObserverTag.js +7 -3
  158. package/mobile/dist/react/IntersectionObserverTag.js.map +1 -1
  159. package/mobile/dist/ui-kit/BlockWrapper.js +34 -12
  160. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  161. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js +11 -6
  162. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  163. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +2 -7
  164. package/mobile/dist/ui-kit/CurrencyInput/adjustValue .d.ts +1 -0
  165. package/mobile/dist/ui-kit/CurrencyInput/adjustValue .js +15 -0
  166. package/mobile/dist/ui-kit/CurrencyInput/adjustValue .js.map +1 -0
  167. package/mobile/dist/ui-kit/Input/Input.d.ts +1 -1
  168. package/mobile/dist/ui-kit/Input/Input.js +7 -4
  169. package/mobile/dist/ui-kit/Input/Input.js.map +1 -1
  170. package/mobile/dist/ui-kit/Input/InputProps.d.ts +6 -3
  171. package/mobile/dist/ui-kit/Select/Select.d.ts +10 -4
  172. package/mobile/dist/ui-kit/Select/Select.js +23 -5
  173. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  174. package/mobile/dist/utils/changeHashOnObserve.d.ts +9 -1
  175. package/mobile/dist/utils/changeHashOnObserve.js +12 -4
  176. package/mobile/dist/utils/changeHashOnObserve.js.map +1 -1
  177. package/mobile/lib/EventBus/EventMap.d.ts +2 -1
  178. package/mobile/lib/components/Bonus/Bonus.js +11 -2
  179. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  180. package/mobile/lib/components/Bonus/BonusContent.d.ts +30 -2
  181. package/mobile/lib/components/CardTransfer/CardTransfer.js +10 -11
  182. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  183. package/mobile/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
  184. package/mobile/lib/components/ComparisonTable/TableColumn.js +7 -2
  185. package/mobile/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  186. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  187. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +1 -1
  188. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  189. package/mobile/lib/components/ExchangeRateTile/renderInput.js +2 -2
  190. package/mobile/lib/components/ExchangeRateTile/renderInput.js.map +1 -1
  191. package/mobile/lib/components/GracePeriod/GracePeriod.js +3 -3
  192. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  193. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +1 -1
  194. package/mobile/lib/components/SafeDepositRental/RegionsAndBranches.js +1 -1
  195. package/mobile/lib/components/SafeDepositRental/RegionsAndBranches.js.map +1 -1
  196. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +1 -1
  197. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  198. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +1 -1
  199. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  200. package/mobile/lib/components/SafeDepositRental/WrapperSelect.js +7 -4
  201. package/mobile/lib/components/SafeDepositRental/WrapperSelect.js.map +1 -1
  202. package/mobile/lib/components/Tabs/Tabs.d.ts +4 -0
  203. package/mobile/lib/components/Tabs/Tabs.js +13 -3
  204. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  205. package/mobile/lib/components/Tabs/TabsContent.d.ts +2 -0
  206. package/mobile/lib/components/Tabs/renderLinkTab.d.ts +3 -2
  207. package/mobile/lib/components/Tabs/renderLinkTab.js +5 -2
  208. package/mobile/lib/components/Tabs/renderLinkTab.js.map +1 -1
  209. package/mobile/lib/components/Tabs/renderTab.js +12 -2
  210. package/mobile/lib/components/Tabs/renderTab.js.map +1 -1
  211. package/mobile/lib/react/IntersectionObserverTag.js +7 -3
  212. package/mobile/lib/react/IntersectionObserverTag.js.map +1 -1
  213. package/mobile/lib/ui-kit/BlockWrapper.js +35 -13
  214. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  215. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js +12 -7
  216. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  217. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +2 -7
  218. package/mobile/lib/ui-kit/CurrencyInput/adjustValue .d.ts +1 -0
  219. package/mobile/lib/ui-kit/CurrencyInput/adjustValue .js +12 -0
  220. package/mobile/lib/ui-kit/CurrencyInput/adjustValue .js.map +1 -0
  221. package/mobile/lib/ui-kit/Input/Input.d.ts +1 -1
  222. package/mobile/lib/ui-kit/Input/Input.js +8 -5
  223. package/mobile/lib/ui-kit/Input/Input.js.map +1 -1
  224. package/mobile/lib/ui-kit/Input/InputProps.d.ts +6 -3
  225. package/mobile/lib/ui-kit/Select/Select.d.ts +10 -4
  226. package/mobile/lib/ui-kit/Select/Select.js +24 -6
  227. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  228. package/mobile/lib/utils/changeHashOnObserve.d.ts +9 -1
  229. package/mobile/lib/utils/changeHashOnObserve.js +12 -4
  230. package/mobile/lib/utils/changeHashOnObserve.js.map +1 -1
  231. package/mobile/src/EventBus/EventMap.ts +3 -1
  232. package/mobile/src/components/Accordion/Accordion.ui.json +79 -0
  233. package/mobile/src/components/BenefitsBlock/BenefitsBlock.ui.json +16 -0
  234. package/mobile/src/components/Bonus/Bonus.example.json +5 -2
  235. package/mobile/src/components/Bonus/Bonus.tsx +44 -16
  236. package/mobile/src/components/Bonus/Bonus.ui.json +16 -0
  237. package/mobile/src/components/Bonus/BonusContent.ts +33 -2
  238. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -1
  239. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.ui.json +11 -0
  240. package/mobile/src/components/Calculator/Calculator.example.json +2 -1
  241. package/mobile/src/components/Calculator/Calculator.ui.json +31 -0
  242. package/mobile/src/components/CardTransfer/CardTransfer.example.json +7 -2
  243. package/mobile/src/components/CardTransfer/CardTransfer.tsx +22 -23
  244. package/mobile/src/components/CardTransfer/CardTransfer.ui.json +1 -0
  245. package/mobile/src/components/CardTransfer/CardTransferContent.ts +2 -2
  246. package/mobile/src/components/Catalog/Catalog.ui.json +1 -0
  247. package/mobile/src/components/ComparisonTable/ComparisonTable.ui.json +1 -0
  248. package/mobile/src/components/ComparisonTable/TableColumn.tsx +17 -11
  249. package/mobile/src/components/ContentPage/ContentPage.page.json +15 -1
  250. package/mobile/src/components/ErrorBlock/ErrorBlock.ui.json +12 -0
  251. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -3
  252. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.ui.json +1 -0
  253. package/mobile/src/components/ExchangeRateTile/renderInput.tsx +3 -3
  254. package/mobile/src/components/Footer/Footer.ui.json +11 -0
  255. package/mobile/src/components/Gallery/Gallery.ui.json +1 -0
  256. package/mobile/src/components/GracePeriod/GracePeriod.tsx +5 -4
  257. package/mobile/src/components/GracePeriod/GracePeriod.ui.json +15 -0
  258. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +1 -1
  259. package/mobile/src/components/Header/Header.ui.json +11 -0
  260. package/mobile/src/components/Headline/Headline.ui.json +1 -0
  261. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.ui.json +15 -0
  262. package/mobile/src/components/LinkDocs/LinkDocs.ui.json +1 -0
  263. package/mobile/src/components/LinkList/LinkList.ui.json +1 -0
  264. package/mobile/src/components/MiniGallery/MiniGallery.ui.json +1 -0
  265. package/mobile/src/components/MobileAppTile/MobileAppTile.ui.json +7 -0
  266. package/mobile/src/components/OfficeServicesBlock/OfficeServicesBlock.ui.json +11 -0
  267. package/mobile/src/components/OtherProducts/OtherProducts.ui.json +76 -0
  268. package/mobile/src/components/PictureText/PictureText.ui.json +1 -0
  269. package/mobile/src/components/Placeholder/Placeholder.ui.json +1 -0
  270. package/mobile/src/components/ProductBlock/ProductBlock.ui.json +12 -0
  271. package/mobile/src/components/ProductGallery/ProductGallery.ui.json +30 -0
  272. package/mobile/src/components/ProductTile/ProductTile.ui.json +1 -0
  273. package/mobile/src/components/PromoTile/PromoTile.ui.json +1 -0
  274. package/mobile/src/components/Recommendation/Recommendation.ui.json +11 -0
  275. package/mobile/src/components/SafeDepositRental/RegionsAndBranches.tsx +4 -4
  276. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +1 -1
  277. package/mobile/src/components/SafeDepositRental/SafeDepositRental.ui.json +1 -0
  278. package/mobile/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +2 -2
  279. package/mobile/src/components/SafeDepositRental/WrapperSelect.tsx +15 -20
  280. package/mobile/src/components/StepsBlock/StepsBlock.ui.json +11 -0
  281. package/mobile/src/components/Tabs/Tabs.tsx +25 -3
  282. package/mobile/src/components/Tabs/Tabs.ui.json +1 -0
  283. package/mobile/src/components/Tabs/TabsContent.ts +2 -0
  284. package/mobile/src/components/Tabs/renderLinkTab.tsx +28 -12
  285. package/mobile/src/components/Tabs/renderTab.tsx +13 -2
  286. package/mobile/src/components/TariffsTable/TariffsTable.ui.json +33 -0
  287. package/mobile/src/components/TextBlock/TextBlock.ui.json +1 -0
  288. package/mobile/src/components/Tile/Tile.ui.json +1 -0
  289. package/mobile/src/react/IntersectionObserverTag.tsx +10 -3
  290. package/mobile/src/ui-kit/BlockWrapper.tsx +45 -18
  291. package/mobile/src/ui-kit/CurrencyInput/CurrencyInput.tsx +21 -36
  292. package/mobile/src/ui-kit/CurrencyInput/CurrencyInputProps.ts +3 -7
  293. package/mobile/src/ui-kit/CurrencyInput/adjustValue .ts +17 -0
  294. package/mobile/src/ui-kit/Input/Input.tsx +37 -16
  295. package/mobile/src/ui-kit/Input/InputProps.ts +6 -3
  296. package/mobile/src/ui-kit/Select/Select.tsx +86 -20
  297. package/mobile/src/utils/changeHashOnObserve.ts +30 -10
  298. package/package.json +6 -3
  299. package/src/EventBus/EventMap.ts +3 -1
  300. package/src/components/Accordion/Accordion.ui.json +79 -0
  301. package/src/components/BenefitsBlock/BenefitsBlock.ui.json +16 -0
  302. package/src/components/Bonus/Bonus.example.json +5 -2
  303. package/src/components/Bonus/Bonus.fixture.tsx +37 -6
  304. package/src/components/Bonus/Bonus.tsx +44 -16
  305. package/src/components/Bonus/Bonus.ui.json +16 -0
  306. package/src/components/Bonus/BonusContent.ts +33 -2
  307. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -1
  308. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.ui.json +11 -0
  309. package/src/components/Calculator/Calculator.example.json +2 -1
  310. package/src/components/Calculator/Calculator.ui.json +31 -0
  311. package/src/components/CardTransfer/CardTransfer.example.json +7 -2
  312. package/src/components/CardTransfer/CardTransfer.fixture.tsx +9 -1
  313. package/src/components/CardTransfer/CardTransfer.tsx +22 -23
  314. package/src/components/CardTransfer/CardTransfer.ui.json +1 -0
  315. package/src/components/CardTransfer/CardTransferContent.ts +2 -2
  316. package/src/components/Catalog/Catalog.ui.json +1 -0
  317. package/src/components/ComparisonTable/ComparisonTable.ui.json +1 -0
  318. package/src/components/ComparisonTable/TableColumn.tsx +17 -11
  319. package/src/components/ContentPage/ContentPage.page.json +15 -1
  320. package/src/components/ErrorBlock/ErrorBlock.ui.json +12 -0
  321. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -3
  322. package/src/components/ExchangeRateTile/ExchangeRateTile.ui.json +1 -0
  323. package/src/components/ExchangeRateTile/renderInput.tsx +3 -3
  324. package/src/components/Footer/Footer.ui.json +11 -0
  325. package/src/components/Gallery/Gallery.ui.json +1 -0
  326. package/src/components/GracePeriod/GracePeriod.fixture.tsx +5 -5
  327. package/src/components/GracePeriod/GracePeriod.tsx +5 -4
  328. package/src/components/GracePeriod/GracePeriod.ui.json +15 -0
  329. package/src/components/GracePeriod/GracePeriodContent.ts +1 -1
  330. package/src/components/Header/Header.ui.json +11 -0
  331. package/src/components/Headline/Headline.ui.json +1 -0
  332. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.ui.json +15 -0
  333. package/src/components/LinkDocs/LinkDocs.ui.json +1 -0
  334. package/src/components/LinkList/LinkList.ui.json +1 -0
  335. package/src/components/MiniGallery/MiniGallery.ui.json +1 -0
  336. package/src/components/MobileAppTile/MobileAppTile.tsx +2 -2
  337. package/src/components/MobileAppTile/MobileAppTile.ui.json +7 -0
  338. package/src/components/OfficeServicesBlock/OfficeServicesBlock.ui.json +11 -0
  339. package/src/components/OtherProducts/OtherProducts.ui.json +76 -0
  340. package/src/components/PictureText/PictureText.ui.json +1 -0
  341. package/src/components/Placeholder/Placeholder.ui.json +1 -0
  342. package/src/components/ProductBlock/ProductBlock.ui.json +12 -0
  343. package/src/components/ProductGallery/ProductGallery.ui.json +30 -0
  344. package/src/components/ProductTile/ProductTile.ui.json +1 -0
  345. package/src/components/PromoTile/PromoTile.ui.json +1 -0
  346. package/src/components/Recommendation/Recommendation.ui.json +11 -0
  347. package/src/components/SafeDepositRental/RegionsAndBranches.tsx +4 -4
  348. package/src/components/SafeDepositRental/SafeDepositRental.tsx +1 -1
  349. package/src/components/SafeDepositRental/SafeDepositRental.ui.json +1 -0
  350. package/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +2 -2
  351. package/src/components/SafeDepositRental/WrapperSelect.tsx +15 -20
  352. package/src/components/StepsBlock/StepsBlock.ui.json +11 -0
  353. package/src/components/Tabs/Tabs.tsx +25 -3
  354. package/src/components/Tabs/Tabs.ui.json +1 -0
  355. package/src/components/Tabs/TabsContent.ts +2 -0
  356. package/src/components/Tabs/renderLinkTab.tsx +28 -12
  357. package/src/components/Tabs/renderTab.tsx +13 -2
  358. package/src/components/TariffsTable/TariffsTable.ui.json +33 -0
  359. package/src/components/TextBlock/TextBlock.ui.json +1 -0
  360. package/src/components/Tile/Tile.ui.json +1 -0
  361. package/src/react/IntersectionObserverTag.tsx +10 -3
  362. package/src/ui-kit/BlockWrapper.tsx +45 -18
  363. package/src/ui-kit/CurrencyInput/CurrencyInput.tsx +21 -36
  364. package/src/ui-kit/CurrencyInput/CurrencyInputProps.ts +3 -7
  365. package/src/ui-kit/CurrencyInput/adjustValue .ts +17 -0
  366. package/src/ui-kit/Input/Input.tsx +37 -16
  367. package/src/ui-kit/Input/InputProps.ts +6 -3
  368. package/src/ui-kit/{SelectCustom/SelectCustom.fixture.tsx → Select/Select.fixture.tsx} +2 -2
  369. package/src/ui-kit/Select/Select.tsx +86 -20
  370. package/src/utils/changeHashOnObserve.ts +30 -10
  371. package/bin/migration-scripts/0.4.5.spec.ts +0 -352
  372. package/dist/components/ExchangeRateTile/renderButton.d.ts +0 -3
  373. package/dist/components/ExchangeRateTile/renderButton.js +0 -9
  374. package/dist/components/ExchangeRateTile/renderButton.js.map +0 -1
  375. package/dist/ui-kit/Select/SelectOption.d.ts +0 -7
  376. package/dist/ui-kit/Select/SelectOption.js +0 -8
  377. package/dist/ui-kit/Select/SelectOption.js.map +0 -1
  378. package/dist/ui-kit/SelectCustom/SelectCustom.d.ts +0 -13
  379. package/dist/ui-kit/SelectCustom/SelectCustom.js +0 -30
  380. package/dist/ui-kit/SelectCustom/SelectCustom.js.map +0 -1
  381. package/lib/components/ExchangeRateTile/renderButton.d.ts +0 -3
  382. package/lib/components/ExchangeRateTile/renderButton.js +0 -6
  383. package/lib/components/ExchangeRateTile/renderButton.js.map +0 -1
  384. package/lib/ui-kit/Select/SelectOption.d.ts +0 -7
  385. package/lib/ui-kit/Select/SelectOption.js +0 -6
  386. package/lib/ui-kit/Select/SelectOption.js.map +0 -1
  387. package/lib/ui-kit/SelectCustom/SelectCustom.d.ts +0 -13
  388. package/lib/ui-kit/SelectCustom/SelectCustom.js +0 -28
  389. package/lib/ui-kit/SelectCustom/SelectCustom.js.map +0 -1
  390. package/mobile/dist/components/ExchangeRateTile/renderButton.d.ts +0 -3
  391. package/mobile/dist/components/ExchangeRateTile/renderButton.js +0 -9
  392. package/mobile/dist/components/ExchangeRateTile/renderButton.js.map +0 -1
  393. package/mobile/dist/ui-kit/Select/SelectOption.d.ts +0 -7
  394. package/mobile/dist/ui-kit/Select/SelectOption.js +0 -8
  395. package/mobile/dist/ui-kit/Select/SelectOption.js.map +0 -1
  396. package/mobile/dist/ui-kit/SelectCustom/SelectCustom.d.ts +0 -13
  397. package/mobile/dist/ui-kit/SelectCustom/SelectCustom.js +0 -30
  398. package/mobile/dist/ui-kit/SelectCustom/SelectCustom.js.map +0 -1
  399. package/mobile/lib/components/ExchangeRateTile/renderButton.d.ts +0 -3
  400. package/mobile/lib/components/ExchangeRateTile/renderButton.js +0 -6
  401. package/mobile/lib/components/ExchangeRateTile/renderButton.js.map +0 -1
  402. package/mobile/lib/ui-kit/Select/SelectOption.d.ts +0 -7
  403. package/mobile/lib/ui-kit/Select/SelectOption.js +0 -6
  404. package/mobile/lib/ui-kit/Select/SelectOption.js.map +0 -1
  405. package/mobile/lib/ui-kit/SelectCustom/SelectCustom.d.ts +0 -13
  406. package/mobile/lib/ui-kit/SelectCustom/SelectCustom.js +0 -28
  407. package/mobile/lib/ui-kit/SelectCustom/SelectCustom.js.map +0 -1
  408. package/mobile/src/components/Blocks.spec.tsx +0 -66
  409. package/mobile/src/components/ContentPage/computeAPIFallback.spec.ts +0 -63
  410. package/mobile/src/components/ContentPage/normalizeBlock.spec.ts +0 -50
  411. package/mobile/src/components/ExchangeRateTile/renderButton.tsx +0 -10
  412. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +0 -1206
  413. package/mobile/src/content-page-repository/mapJSON.spec.ts +0 -28
  414. package/mobile/src/services/sitemap/checkIsHrefSameOrigin.spec.ts +0 -20
  415. package/mobile/src/services/sitemap/isTopItemActive.spec.ts +0 -60
  416. package/mobile/src/services/sitemap/mergeTopItems.spec.ts +0 -20
  417. package/mobile/src/ui-kit/Select/SelectOption.tsx +0 -18
  418. package/mobile/src/ui-kit/SelectCustom/SelectCustom.tsx +0 -91
  419. package/mobile/src/ui-kit/SwipeListControl/utils/getIndexParts.spec.ts +0 -19
  420. package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +0 -42
  421. package/mobile/src/utils/adjustHref.spec.ts +0 -25
  422. package/mobile/src/utils/maxBy.spec.ts +0 -11
  423. package/mobile/src/utils/url.spec.ts +0 -17
  424. package/src/components/Blocks.spec.tsx +0 -66
  425. package/src/components/ContentPage/computeAPIFallback.spec.ts +0 -63
  426. package/src/components/ContentPage/normalizeBlock.mobile.spec.ts +0 -71
  427. package/src/components/ContentPage/normalizeBlock.spec.ts +0 -50
  428. package/src/components/ExchangeRateTile/renderButton.tsx +0 -10
  429. package/src/components/__snapshots__/Blocks.spec.tsx.snap +0 -1206
  430. package/src/content-page-repository/mapJSON.spec.ts +0 -28
  431. package/src/services/sitemap/checkIsHrefSameOrigin.spec.ts +0 -20
  432. package/src/services/sitemap/isTopItemActive.spec.ts +0 -60
  433. package/src/services/sitemap/mergeTopItems.spec.ts +0 -20
  434. package/src/ui-kit/Select/SelectOption.tsx +0 -18
  435. package/src/ui-kit/SelectCustom/SelectCustom.tsx +0 -91
  436. package/src/ui-kit/SwipeListControl/utils/getIndexParts.spec.ts +0 -19
  437. package/src/ui-kit/SwipeListControl/utils/getScrollPoints.spec.ts +0 -42
  438. package/src/utils/adjustHref.spec.ts +0 -25
  439. package/src/utils/maxBy.spec.ts +0 -11
  440. package/src/utils/url.spec.ts +0 -17
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { Select } from '../../ui-kit/Select/Select';
3
- import { SelectOption } from '../../ui-kit/Select/SelectOption';
2
+ import { OptionProps, Select } from '../../ui-kit/Select/Select';
3
+ import { Currency } from '../ExchangeRateTile/CurrencyProps';
4
4
 
5
5
  interface WrapperSelectProps {
6
6
  data: Record<string, any>[];
@@ -13,25 +13,20 @@ interface WrapperSelectProps {
13
13
  }
14
14
 
15
15
  export const WrapperSelect = JSX<WrapperSelectProps>(
16
- ({ data, fieldLabel, fieldValue, selected, placeholder, setSelected, label }) => {
16
+ ({ data, fieldLabel, fieldValue, selected, placeholder = '', setSelected, label }) => {
17
+ const dataFormat: OptionProps[] = data
18
+ .filter(Boolean)
19
+ .map((_) => ({ key: _?.[fieldValue || fieldLabel], text: _?.[fieldLabel] }));
20
+ const selectedObj = dataFormat.find((_) => _.key === selected);
21
+
17
22
  return (
18
- <div>
19
- <span className="block text-m-light mb-2">{label}</span>
20
- <Select
21
- className={`h-14 border border-gray p-4 rounded-md text-s w-full cursor-pointer ${
22
- !selected ? 'text-secondary-text' : ''
23
- }`}
24
- value={selected}
25
- onChange={(_) => setSelected(_)}
26
- >
27
- {placeholder ? <SelectOption value="">{placeholder}</SelectOption> : null}
28
- {data.map((_, i) => (
29
- <SelectOption key={String(i)} value={_?.[fieldValue || fieldLabel]}>
30
- {_?.[fieldLabel]}
31
- </SelectOption>
32
- ))}
33
- </Select>
34
- </div>
23
+ <Select
24
+ options={dataFormat}
25
+ label={label}
26
+ placeholder={placeholder || selected}
27
+ onChange={(_) => setSelected(_.key as Currency)}
28
+ value={selectedObj}
29
+ />
35
30
  );
36
31
  },
37
32
  );
@@ -0,0 +1,11 @@
1
+ {
2
+ "content": {
3
+ "steps": {
4
+ "items": {
5
+ "icon": {
6
+ "ui:field": "icon"
7
+ }
8
+ }
9
+ }
10
+ }
11
+ }
@@ -11,13 +11,32 @@ export interface TabActivationEvent {
11
11
  label?: string;
12
12
  }
13
13
 
14
+ export interface AnchorClickScrollingEvent {
15
+ isScrolling?: boolean;
16
+ label?: string;
17
+ }
18
+
14
19
  export interface TabsBlockProps extends TabsContent, UniBlockProps {}
15
20
 
16
21
  export const Tabs = JSX<TabsBlockProps>((props) => {
17
- const { context, className, tabs, page, showCounter } = props;
22
+ const { context, className = '', tabs, page, showCounter, isSticky } = props;
18
23
 
19
24
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
20
25
 
26
+ useEffect(
27
+ () =>
28
+ EventBus.inst.subscribe('tab', (event) => {
29
+ if (!tabs) {
30
+ return;
31
+ }
32
+ const tab = tabs.find(checkTab(event));
33
+ if (event.type === 'link' && tab) {
34
+ setCurrentTab(tab);
35
+ }
36
+ }),
37
+ [tabs],
38
+ );
39
+
21
40
  useEffect(() => {
22
41
  if (currentTab?.type === 'group') {
23
42
  return EventBus.inst.subject('tab', { label: currentTab.ref });
@@ -29,17 +48,20 @@ export const Tabs = JSX<TabsBlockProps>((props) => {
29
48
  const handleClick = (selectedTab: Tab) => {
30
49
  if (selectedTab?.type === 'group') {
31
50
  EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
32
- setCurrentTab(selectedTab);
33
51
  }
52
+ setCurrentTab(selectedTab);
34
53
  };
35
54
 
36
55
  return (
37
56
  <BlockWrapper
38
57
  context={context}
39
- className={`mb-2 box-border flex gap-x-1 ${className}`}
58
+ className={`${isSticky ? 'sticky top-1 z-20 ' : ''}box-border flex gap-x-1 ${className}`}
40
59
  role="tablist"
41
60
  >
42
61
  {tabs?.map(renderTab({ onClick: handleClick, currentTab, page, showCounter, context }))}
43
62
  </BlockWrapper>
44
63
  );
45
64
  });
65
+
66
+ const checkTab = (event: TabActivationEvent) => (_: Tab) =>
67
+ _.type === 'link' && _.href === `#${event.label}`;
@@ -0,0 +1 @@
1
+ {}
@@ -33,6 +33,8 @@ export type Tab = GroupTab | LinkTab;
33
33
  export interface TabsContent {
34
34
  /** @title Табы */
35
35
  tabs?: Tab[];
36
+ /** @title Закрепить сверху */
37
+ isSticky?: boolean;
36
38
  /** @title Показывать счетчик блоков во вкладках */
37
39
  showCounter?: boolean;
38
40
  }
@@ -1,25 +1,41 @@
1
1
  import type { LinkProps } from '../../model/LinkProps';
2
2
  import {
3
+ ACTIVE_LINK_CLASSES,
4
+ ACTIVE_TEXT_CLASSES,
3
5
  INACTIVE_LINK_CLASSES,
4
6
  INACTIVE_TEXT_CLASSES,
5
7
  LINK_CLASSES,
6
8
  TEXT_CLASSES,
7
9
  } from './tabItemClasses';
10
+ import type { Tab } from './TabsContent';
8
11
 
9
12
  export interface RenderLinkTabProps extends LinkProps {
10
- active?: boolean;
11
13
  onClick?: () => void;
12
14
  i: number;
15
+ currentTab?: Tab;
13
16
  }
14
17
 
15
- export const renderLinkTab = ({ text, onClick, href, target = '_self', i }: RenderLinkTabProps) => (
16
- <a
17
- key={String(i)}
18
- className={`${LINK_CLASSES} ${INACTIVE_LINK_CLASSES}`}
19
- target={target}
20
- href={href}
21
- onClick={onClick}
22
- >
23
- <span className={`${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`}>{text}</span>
24
- </a>
25
- );
18
+ export const renderLinkTab = ({
19
+ text,
20
+ currentTab,
21
+ onClick,
22
+ href,
23
+ target = '_self',
24
+ i,
25
+ }: RenderLinkTabProps) => {
26
+ const active = currentTab?.type === 'link' && currentTab.href === href;
27
+
28
+ return (
29
+ <a
30
+ key={String(i)}
31
+ className={`${LINK_CLASSES} ${active ? ACTIVE_LINK_CLASSES : INACTIVE_LINK_CLASSES}`}
32
+ target={target}
33
+ href={href}
34
+ onClick={onClick}
35
+ >
36
+ <span className={`${TEXT_CLASSES} ${active ? ACTIVE_TEXT_CLASSES : INACTIVE_TEXT_CLASSES}`}>
37
+ {text}
38
+ </span>
39
+ </a>
40
+ );
41
+ };
@@ -1,3 +1,4 @@
1
+ import { EventBus } from '../../EventBus/EventBus';
1
2
  import { useLink } from '../../hooks/useLink';
2
3
  import type { ContentPageDef } from '../../model/ContentPageDef';
3
4
  import { assertUnreachable } from '../../utils/assertUnreachable';
@@ -31,11 +32,21 @@ export const renderTab =
31
32
  switch (type) {
32
33
  case 'group':
33
34
  return renderGroupTab({ onClick, currentTab, showCounter, page, context })(tab, i);
34
- case 'link':
35
+ case 'link': {
36
+ const link = useLink({ router, handlerDecorator }, tab);
37
+ const linkClick = link.onClick;
38
+
35
39
  return renderLinkTab({
36
- ...useLink({ router, handlerDecorator }, tab),
40
+ ...link,
41
+ onClick: (ev?: { preventDefault: () => void }) => {
42
+ linkClick(ev);
43
+ onClick(tab);
44
+ EventBus.inst.fire('anchorClick', { isScrolling: true, label: tab.href });
45
+ },
46
+ currentTab,
37
47
  i,
38
48
  });
49
+ }
39
50
  default:
40
51
  assertUnreachable(type);
41
52
  }
@@ -0,0 +1,33 @@
1
+ {
2
+ "content": {
3
+ "tariffsColumns": {
4
+ "items": {
5
+ "data": {
6
+ "items": {
7
+ "items": {
8
+ "tableCellType": {
9
+ "ui:widget": "hidden"
10
+ },
11
+ "image": {
12
+ "ui:field": "picture"
13
+ },
14
+ "buttons": {
15
+ "items": {
16
+ "icon": {
17
+ "ui:field": "icon"
18
+ },
19
+ "iconRight": {
20
+ "ui:field": "icon"
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ },
29
+ "hiddenRowsNum": {
30
+ "ui:field": "number"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1 @@
1
+ {}
@@ -12,12 +12,19 @@ export const IntersectionObserverTag: IntersectionObserverComponent = (props) =>
12
12
  } = props;
13
13
 
14
14
  const intersectionObserver = useRef<IntersectionObserver>();
15
+
15
16
  const ref = useCallback(
16
17
  (tag: HTMLElement | null | undefined) => {
17
- if (tag && !intersectionObserver.current) {
18
- intersectionObserver.current = new IntersectionObserver(observerCallback, observerOptions);
19
- intersectionObserver.current.observe(tag);
18
+ if (!tag) {
19
+ return;
20
+ }
21
+
22
+ if (intersectionObserver.current) {
23
+ intersectionObserver.current.disconnect();
20
24
  }
25
+
26
+ intersectionObserver.current = new IntersectionObserver(observerCallback, observerOptions);
27
+ intersectionObserver.current.observe(tag);
21
28
  },
22
29
  [observerCallback, observerOptions],
23
30
  );
@@ -1,6 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useEffect, useMemo, useRef, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import type { ContentPageContext } from '../components/ContentPage/ContentPageContext';
4
+ import { AnchorClickScrollingEvent } from '../components/Tabs/Tabs';
4
5
  import { EventBus } from '../EventBus/EventBus';
5
6
  import type { UniBlockProps } from '../model/ContentPageDef';
6
7
  import { changeHashOnObserve } from '../utils/changeHashOnObserve';
@@ -12,26 +13,44 @@ interface BlockWrapperProps extends UniBlockProps, Record<string, any> {
12
13
  tag?: keyof HTMLElementTagNameMap;
13
14
  }
14
15
 
16
+ const THRESHOLD_ACCURACY = 100; // Decimals number (100 is for two decimals number, 0.**)
17
+ const THRESHOLD_ARRAY_LENGTH = 18;
18
+ const THRESHOLD_ARRAY_START_VALUE =
19
+ (THRESHOLD_ACCURACY - THRESHOLD_ARRAY_LENGTH) / THRESHOLD_ACCURACY;
20
+
15
21
  export const BlockWrapper = JSX<BlockWrapperProps>(
16
22
  ({ anchor, className, context, children, tag = 'section', labels }) => {
17
23
  const Tag: any = tag;
18
24
 
19
25
  const { IntersectionObserverTag } = context;
26
+
20
27
  const [shouldRenderBlock, setShouldRenderBlock] = useState(true);
28
+ const anchorClickRef = useRef<AnchorClickScrollingEvent>({});
21
29
 
22
- useEffect(
23
- () =>
24
- EventBus.inst.subscribe('tab', (event) => {
25
- if (event.type === 'group') {
26
- setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
27
- } else {
28
- setShouldRenderBlock(true);
29
- scrollToBlock(event.label);
30
- }
31
- }),
32
- [labels],
30
+ const observerCallback = useMemo(
31
+ () => changeHashOnObserve({ anchor, anchorClickRef }),
32
+ [anchor, anchorClickRef],
33
33
  );
34
34
 
35
+ useEffect(() => {
36
+ const anchorClickCleanup = EventBus.inst.subscribe('anchorClick', (e) => {
37
+ anchorClickRef.current = e;
38
+ });
39
+ const tabCleanup = EventBus.inst.subscribe('tab', (event) => {
40
+ if (event.type === 'group') {
41
+ setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
42
+ } else {
43
+ changeHash(event.label);
44
+ setShouldRenderBlock(true);
45
+ }
46
+ });
47
+
48
+ return () => {
49
+ anchorClickCleanup();
50
+ tabCleanup();
51
+ };
52
+ }, [anchorClickRef]);
53
+
35
54
  if (!shouldRenderBlock) {
36
55
  return null;
37
56
  }
@@ -40,8 +59,10 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
40
59
  <IntersectionObserverTag
41
60
  tag={tag}
42
61
  className={className}
43
- observerCallback={changeHashOnObserve}
44
- observerOptions={{ threshold: 1 }} // Lower threshold when hash change needed
62
+ observerCallback={observerCallback}
63
+ observerOptions={{
64
+ threshold: new Array(THRESHOLD_ARRAY_LENGTH).fill(0).map(getIntersectionThreshold),
65
+ }}
45
66
  anchor={anchor}
46
67
  >
47
68
  {children}
@@ -52,8 +73,14 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
52
73
  },
53
74
  );
54
75
 
55
- function scrollToBlock(label?: string) {
56
- setTimeout(() =>
57
- globalThis.document.getElementById(`#${label}`)?.scrollIntoView({ behavior: 'smooth' }),
58
- );
76
+ function getIntersectionThreshold(_: number, i: number): number {
77
+ const value = (i + 1) / THRESHOLD_ACCURACY + THRESHOLD_ARRAY_START_VALUE;
78
+
79
+ return Math.round(value * THRESHOLD_ACCURACY) / THRESHOLD_ACCURACY;
80
+ }
81
+
82
+ function changeHash(label?: string) {
83
+ if (label) {
84
+ globalThis.document.location.hash = label;
85
+ }
59
86
  }
@@ -1,46 +1,31 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { clamp } from '../../utils/clamp';
3
+ import { adjustValue } from './adjustValue ';
4
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
5
+ import { Input } from '../Input/Input';
3
6
  import type { CurrencyInputProps } from './CurrencyInputProps';
4
7
 
5
8
  export const CurrencyInput = JSX<CurrencyInputProps>(
6
- ({
7
- className = '',
8
- label,
9
- onChange,
10
- value = '',
11
- minValue = 0,
12
- maxValue = 300000,
13
- ...inputProps
14
- }) => {
15
- const handleChange = (e: any) => {
16
- if (!onChange) {
17
- return;
18
- }
19
-
20
- const newValue =
21
- e.target.value === '' ? '' : String(clamp(e.target.value as number, minValue, maxValue));
22
-
23
- onChange(newValue);
24
- };
9
+ ({ className = '', onChange, minValue = 0, maxValue = 300000, ...inputProps }) => {
10
+ const handleChange = useCallback(
11
+ (inputValue: string) => {
12
+ if (!onChange) {
13
+ return;
14
+ }
15
+ const adjustedVal = adjustValue(inputValue);
16
+ const clampVal = getClampValue(adjustedVal, clamp(Number(adjustedVal), minValue, maxValue));
17
+ onChange(String(clampVal));
18
+ },
19
+ [onChange],
20
+ );
25
21
 
26
22
  return (
27
- <div className={className}>
28
- {label ? <label className="block text-m-light mb-2">{label}</label> : null}
29
- <div className="h-[56px] relative flex items-center">
30
- <input
31
- type="number"
32
- className={
33
- 'text-l pl-4 pr-8 w-full h-full rounded-md border border-solid border-main-stroke hover:border-primary-hover active:border-primary-text focus:border-primary-text'
34
- }
35
- onChange={handleChange}
36
- value={value}
37
- min={minValue}
38
- max={maxValue}
39
- {...inputProps}
40
- />
41
- <span className="text-xl-light absolute right-4">₽</span>
42
- </div>
43
- </div>
23
+ <Input className={className} inputClassName="w-full" onChange={handleChange} {...inputProps}>
24
+ <span className="text-xl-light absolute right-4 bottom-4">₽</span>
25
+ </Input>
44
26
  );
45
27
  },
46
28
  );
29
+
30
+ const getClampValue = (val: string, clampVal) =>
31
+ Number(val) === clampVal ? val : String(clampVal);
@@ -1,10 +1,6 @@
1
- export type CurrencyInputProps = {
2
- className?: string;
3
- label?: string;
4
- onChange?: (value: string) => void;
5
- name?: string;
6
- value?: string;
7
- placeholder?: string;
1
+ import type { InputProps } from '../Input/InputProps';
2
+
3
+ export type CurrencyInputProps = InputProps & {
8
4
  minValue?: number;
9
5
  maxValue?: number;
10
6
  };
@@ -0,0 +1,17 @@
1
+ export const adjustValue = (val: string) => onlyOneDot(setZeroStart(replaceCommaToDot(val)));
2
+
3
+ const onlyOneDot = (val: string): string => {
4
+ const matches = val.match(/\./g) || [];
5
+
6
+ return matches.length > 1 ? val.slice(0, val.lastIndexOf('.')) : val;
7
+ };
8
+
9
+ const setZeroStart = (val: string): string => {
10
+ const isZeroStart = val.indexOf('0') === 0 && val.length === 2;
11
+ const newVal = isZeroStart ? val.replace('0', '0.') : val;
12
+
13
+ return newVal.startsWith('.') ? newVal.replace('.', '0.') : newVal;
14
+ };
15
+
16
+ const replaceCommaToDot = (val: string): string =>
17
+ String(val.replace(',', '.').replace(/[^.\d]/g, ''));
@@ -1,24 +1,45 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { InputProps } from './InputProps';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import type { InputProps } from './InputProps';
3
4
 
4
5
  export const Input = JSX<InputProps>(
5
- ({ className = '', id, name, type = 'text', placeholder, pattern, value, onChange }) => {
6
- const handleChange = (e) => {
7
- const validInputValue = e.target.validity.valid ? (e.target.value as string) : value;
8
- onChange(validInputValue);
9
- };
6
+ ({
7
+ className = '',
8
+ inputClassName = '',
9
+ id,
10
+ name,
11
+ type = 'text',
12
+ label,
13
+ value = '',
14
+ children,
15
+ onChange,
16
+ ...inputProps
17
+ }) => {
18
+ const handleChange = useCallback(
19
+ (e) => {
20
+ const validInputValue = e.target.validity.valid ? (e.target.value as string) : value;
21
+ onChange(validInputValue);
22
+ },
23
+ [onChange],
24
+ );
25
+
26
+ const paddingStyle = children ? 'pr-8' : '';
10
27
 
11
28
  return (
12
- <input
13
- className={`border rounded-md border-main-stroke hover:border-primary-hover active:border-primary-text focus:border-primary-text text-primary-text outline-none ${className}`}
14
- id={id}
15
- name={name || id}
16
- type={type}
17
- pattern={pattern}
18
- placeholder={placeholder}
19
- value={value}
20
- onChange={handleChange}
21
- />
29
+ <div className={`relative ${className}`}>
30
+ {label ? <label className="block text-m-light mb-2">{label}</label> : null}
31
+ <input
32
+ className={`w-full border rounded-md border-main-stroke hover:border-primary-hover active:border-primary-text
33
+ focus:border-primary-text text-primary-text outline-none p-4 ${paddingStyle} ${inputClassName}`}
34
+ id={id}
35
+ name={name || id}
36
+ type={type}
37
+ value={value}
38
+ onChange={handleChange}
39
+ {...inputProps}
40
+ />
41
+ {children}
42
+ </div>
22
43
  );
23
44
  },
24
45
  );
@@ -1,12 +1,15 @@
1
1
  import type { InputTypes } from '../../model/InputTypes';
2
+ import type { LabelProps } from '../../model/HeadlineType';
2
3
 
3
- export interface InputProps {
4
+ export type InputProps = LabelProps & {
4
5
  className?: string;
6
+ label?: string;
7
+ inputClassName?: string;
5
8
  id?: string;
6
9
  name?: string;
7
10
  type?: InputTypes;
8
11
  placeholder?: string;
9
12
  pattern?: string;
10
- value: string;
13
+ value?: string;
11
14
  onChange: (value: string) => void;
12
- }
15
+ };
@@ -1,4 +1,4 @@
1
- import { SelectCustom } from './SelectCustom';
1
+ import { Select } from './Select';
2
2
 
3
3
  const rates = [
4
4
  { text: 'USD', key: '1' },
@@ -9,7 +9,7 @@ const rates = [
9
9
  export default {
10
10
  default: (
11
11
  <div className="w-[1280px] ml-10 flex flex-col">
12
- <SelectCustom options={rates} label="Заголовок" onChange={(_) => console.log(_)} />
12
+ <Select options={rates} label="Заголовок" onChange={(_) => console.log(_)} />
13
13
  </div>
14
14
  ),
15
15
  };