@redneckz/wildless-cms-uni-blocks 0.6.18 → 0.6.20

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 (437) hide show
  1. package/bin/migration-scripts/0.6.19.js +21 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +129 -77
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Blocks.d.ts +2 -41
  6. package/bundle/components/Blocks.mobile.d.ts +2 -18
  7. package/bundle/components/ContentPage/ContentPage.d.ts +2 -2
  8. package/bundle/components/ContentPage/mapSlot.d.ts +2 -0
  9. package/bundle/components/ContentPage/normalizeBlock.d.ts +3 -11
  10. package/bundle/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  11. package/bundle/components/ContentPage/renderBlock.d.ts +7 -3
  12. package/bundle/components/ContentPage/renderBlockList.d.ts +14 -0
  13. package/bundle/components/ContentPage/renderSlots.d.ts +12 -0
  14. package/bundle/components/StepsBlock/renderStepContent.d.ts +2 -2
  15. package/bundle/components/TariffsTable/EmbeddableCellData.d.ts +7 -1
  16. package/bundle/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  17. package/bundle/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  18. package/bundle/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  19. package/bundle/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  20. package/bundle/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  21. package/bundle/model/BlockDecorator.d.ts +4 -3
  22. package/bundle/model/BlocksRegistry.d.ts +1 -1
  23. package/bundle/model/ContentPageDef.d.ts +1 -4
  24. package/bundle/model/JSXBlock.d.ts +3 -1
  25. package/bundle/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  26. package/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  27. package/dist/components/Blocks.d.ts +2 -41
  28. package/dist/components/Blocks.js.map +1 -1
  29. package/dist/components/Blocks.mobile.d.ts +2 -18
  30. package/dist/components/Blocks.mobile.js.map +1 -1
  31. package/dist/components/Bonus/Bonus.js +1 -1
  32. package/dist/components/Bonus/Bonus.js.map +1 -1
  33. package/dist/components/ContentPage/ContentPage.d.ts +2 -2
  34. package/dist/components/ContentPage/ContentPage.js +12 -11
  35. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  36. package/dist/components/ContentPage/mapSlot.d.ts +2 -0
  37. package/dist/components/ContentPage/mapSlot.js +14 -0
  38. package/dist/components/ContentPage/mapSlot.js.map +1 -0
  39. package/dist/components/ContentPage/normalizeBlock.d.ts +3 -11
  40. package/dist/components/ContentPage/normalizeBlock.js +13 -3
  41. package/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  42. package/dist/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  43. package/dist/components/ContentPage/normalizeBlock.mobile.js +18 -3
  44. package/dist/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  45. package/dist/components/ContentPage/normalizePage.js +2 -14
  46. package/dist/components/ContentPage/normalizePage.js.map +1 -1
  47. package/dist/components/ContentPage/renderBlock.d.ts +7 -3
  48. package/dist/components/ContentPage/renderBlock.js +9 -9
  49. package/dist/components/ContentPage/renderBlock.js.map +1 -1
  50. package/dist/components/ContentPage/renderBlockList.d.ts +14 -0
  51. package/dist/components/ContentPage/renderBlockList.js +18 -0
  52. package/dist/components/ContentPage/renderBlockList.js.map +1 -0
  53. package/dist/components/ContentPage/renderSlots.d.ts +12 -0
  54. package/dist/components/ContentPage/renderSlots.js +17 -0
  55. package/dist/components/ContentPage/renderSlots.js.map +1 -0
  56. package/dist/components/ProductBlock/renderBackwardButton.js +1 -1
  57. package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  58. package/dist/components/SafeDepositRental/SafeDepositRental.js +1 -1
  59. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  60. package/dist/components/StepsBlock/StepsBlock.js +3 -3
  61. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  62. package/dist/components/StepsBlock/renderItems.js +1 -4
  63. package/dist/components/StepsBlock/renderItems.js.map +1 -1
  64. package/dist/components/StepsBlock/renderStepContent.d.ts +2 -2
  65. package/dist/components/StepsBlock/renderStepContent.js +13 -8
  66. package/dist/components/StepsBlock/renderStepContent.js.map +1 -1
  67. package/dist/components/TariffsTable/EmbeddableCellData.d.ts +7 -1
  68. package/dist/components/TariffsTable/EmbeddableCellData.js +4 -11
  69. package/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  70. package/dist/components/TariffsTable/TariffsTable.js +1 -1
  71. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  72. package/dist/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  73. package/dist/components/TariffsTable/TariffsTableCell.js +13 -18
  74. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  75. package/dist/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  76. package/dist/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  77. package/dist/components/TariffsTable/TariffsTableRenderCell.js +42 -0
  78. package/dist/components/TariffsTable/TariffsTableRenderCell.js.map +1 -0
  79. package/dist/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  80. package/dist/components/TariffsTable/TariffsTableRow.js +6 -2
  81. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  82. package/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  83. package/dist/components/TariffsTable/TariffsTableRowContainer.js +2 -8
  84. package/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -1
  85. package/dist/components/TariffsTable/TariffsTableTileCell.js +1 -1
  86. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  87. package/dist/model/BlockDecorator.d.ts +4 -3
  88. package/dist/model/BlockDecorator.js +1 -2
  89. package/dist/model/BlockDecorator.js.map +1 -1
  90. package/dist/model/BlocksRegistry.d.ts +1 -1
  91. package/dist/model/ContentPageDef.d.ts +1 -4
  92. package/dist/model/JSXBlock.d.ts +3 -1
  93. package/dist/model/getParentBlockDef.js +5 -2
  94. package/dist/model/getParentBlockDef.js.map +1 -1
  95. package/dist/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  96. package/dist/ui-kit/InnerTable/InnerTable.js +3 -2
  97. package/dist/ui-kit/InnerTable/InnerTable.js.map +1 -1
  98. package/dist/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  99. package/dist/ui-kit/InnerTable/InnerTableButton.js +2 -6
  100. package/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  101. package/dist/ui-kit/InputRange/InputRange.js +1 -1
  102. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  103. package/dist/ui-kit/Radio/Radio.js +1 -1
  104. package/dist/ui-kit/Radio/Radio.js.map +1 -1
  105. package/dist/ui-kit/Select/Select.js +1 -1
  106. package/dist/ui-kit/Select/Select.js.map +1 -1
  107. package/lib/common.css +1 -1
  108. package/lib/components/Blocks.d.ts +2 -41
  109. package/lib/components/Blocks.js.map +1 -1
  110. package/lib/components/Blocks.mobile.d.ts +2 -18
  111. package/lib/components/Blocks.mobile.js.map +1 -1
  112. package/lib/components/Bonus/Bonus.js +1 -1
  113. package/lib/components/Bonus/Bonus.js.map +1 -1
  114. package/lib/components/ContentPage/ContentPage.d.ts +2 -2
  115. package/lib/components/ContentPage/ContentPage.js +12 -11
  116. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  117. package/lib/components/ContentPage/mapSlot.d.ts +2 -0
  118. package/lib/components/ContentPage/mapSlot.js +11 -0
  119. package/lib/components/ContentPage/mapSlot.js.map +1 -0
  120. package/lib/components/ContentPage/normalizeBlock.d.ts +3 -11
  121. package/lib/components/ContentPage/normalizeBlock.js +13 -3
  122. package/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  123. package/lib/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  124. package/lib/components/ContentPage/normalizeBlock.mobile.js +18 -3
  125. package/lib/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  126. package/lib/components/ContentPage/normalizePage.js +2 -14
  127. package/lib/components/ContentPage/normalizePage.js.map +1 -1
  128. package/lib/components/ContentPage/renderBlock.d.ts +7 -3
  129. package/lib/components/ContentPage/renderBlock.js +9 -9
  130. package/lib/components/ContentPage/renderBlock.js.map +1 -1
  131. package/lib/components/ContentPage/renderBlockList.d.ts +14 -0
  132. package/lib/components/ContentPage/renderBlockList.js +15 -0
  133. package/lib/components/ContentPage/renderBlockList.js.map +1 -0
  134. package/lib/components/ContentPage/renderSlots.d.ts +12 -0
  135. package/lib/components/ContentPage/renderSlots.js +14 -0
  136. package/lib/components/ContentPage/renderSlots.js.map +1 -0
  137. package/lib/components/ProductBlock/renderBackwardButton.js +1 -1
  138. package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  139. package/lib/components/SafeDepositRental/SafeDepositRental.js +1 -1
  140. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  141. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +6 -2
  142. package/lib/components/StepsBlock/StepsBlock.js +3 -3
  143. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  144. package/lib/components/StepsBlock/renderItems.js +1 -4
  145. package/lib/components/StepsBlock/renderItems.js.map +1 -1
  146. package/lib/components/StepsBlock/renderStepContent.d.ts +2 -2
  147. package/lib/components/StepsBlock/renderStepContent.js +14 -9
  148. package/lib/components/StepsBlock/renderStepContent.js.map +1 -1
  149. package/lib/components/TariffsTable/EmbeddableCellData.d.ts +7 -1
  150. package/lib/components/TariffsTable/EmbeddableCellData.js +4 -11
  151. package/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  152. package/lib/components/TariffsTable/TariffsTable.js +1 -1
  153. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  154. package/lib/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  155. package/lib/components/TariffsTable/TariffsTableCell.js +14 -19
  156. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  157. package/lib/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  158. package/lib/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  159. package/lib/components/TariffsTable/TariffsTableRenderCell.js +39 -0
  160. package/lib/components/TariffsTable/TariffsTableRenderCell.js.map +1 -0
  161. package/lib/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  162. package/lib/components/TariffsTable/TariffsTableRow.js +6 -2
  163. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  164. package/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  165. package/lib/components/TariffsTable/TariffsTableRowContainer.js +2 -8
  166. package/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -1
  167. package/lib/components/TariffsTable/TariffsTableTileCell.js +1 -1
  168. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  169. package/lib/model/BlockDecorator.d.ts +4 -3
  170. package/lib/model/BlockDecorator.js +0 -1
  171. package/lib/model/BlockDecorator.js.map +1 -1
  172. package/lib/model/BlocksRegistry.d.ts +1 -1
  173. package/lib/model/ContentPageDef.d.ts +1 -4
  174. package/lib/model/JSXBlock.d.ts +3 -1
  175. package/lib/model/getParentBlockDef.js +5 -2
  176. package/lib/model/getParentBlockDef.js.map +1 -1
  177. package/lib/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  178. package/lib/ui-kit/InnerTable/InnerTable.js +3 -2
  179. package/lib/ui-kit/InnerTable/InnerTable.js.map +1 -1
  180. package/lib/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  181. package/lib/ui-kit/InnerTable/InnerTableButton.js +2 -6
  182. package/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  183. package/lib/ui-kit/InputRange/InputRange.js +1 -1
  184. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  185. package/lib/ui-kit/Radio/Radio.js +1 -1
  186. package/lib/ui-kit/Radio/Radio.js.map +1 -1
  187. package/lib/ui-kit/Select/Select.js +1 -1
  188. package/lib/ui-kit/Select/Select.js.map +1 -1
  189. package/mobile/bundle/bundle.umd.js +50 -23
  190. package/mobile/bundle/bundle.umd.min.js +1 -1
  191. package/mobile/bundle/components/Blocks.d.ts +2 -18
  192. package/mobile/bundle/components/ContentPage/ContentPage.d.ts +2 -2
  193. package/mobile/bundle/components/ContentPage/mapSlot.d.ts +2 -0
  194. package/mobile/bundle/components/ContentPage/normalizeBlock.d.ts +3 -2
  195. package/mobile/bundle/components/ContentPage/renderBlock.d.ts +7 -3
  196. package/mobile/bundle/components/ContentPage/renderBlockList.d.ts +14 -0
  197. package/mobile/bundle/components/ContentPage/renderSlots.d.ts +12 -0
  198. package/mobile/bundle/components/StepsBlock/renderStepContent.d.ts +2 -2
  199. package/mobile/bundle/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  200. package/mobile/bundle/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  201. package/mobile/bundle/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  202. package/mobile/bundle/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  203. package/mobile/bundle/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  204. package/mobile/bundle/model/BlockDecorator.d.ts +4 -3
  205. package/mobile/bundle/model/BlocksRegistry.d.ts +1 -1
  206. package/mobile/bundle/model/ContentPageDef.d.ts +1 -4
  207. package/mobile/bundle/model/JSXBlock.d.ts +3 -1
  208. package/mobile/bundle/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  209. package/mobile/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  210. package/mobile/dist/components/Blocks.d.ts +2 -18
  211. package/mobile/dist/components/Blocks.js.map +1 -1
  212. package/mobile/dist/components/Bonus/Bonus.js +1 -1
  213. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  214. package/mobile/dist/components/ContentPage/ContentPage.d.ts +2 -2
  215. package/mobile/dist/components/ContentPage/ContentPage.js +12 -11
  216. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  217. package/mobile/dist/components/ContentPage/mapSlot.d.ts +2 -0
  218. package/mobile/dist/components/ContentPage/mapSlot.js +14 -0
  219. package/mobile/dist/components/ContentPage/mapSlot.js.map +1 -0
  220. package/mobile/dist/components/ContentPage/normalizeBlock.d.ts +3 -2
  221. package/mobile/dist/components/ContentPage/normalizeBlock.js +18 -3
  222. package/mobile/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  223. package/mobile/dist/components/ContentPage/normalizePage.js +2 -14
  224. package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
  225. package/mobile/dist/components/ContentPage/renderBlock.d.ts +7 -3
  226. package/mobile/dist/components/ContentPage/renderBlock.js +9 -9
  227. package/mobile/dist/components/ContentPage/renderBlock.js.map +1 -1
  228. package/mobile/dist/components/ContentPage/renderBlockList.d.ts +14 -0
  229. package/mobile/dist/components/ContentPage/renderBlockList.js +18 -0
  230. package/mobile/dist/components/ContentPage/renderBlockList.js.map +1 -0
  231. package/mobile/dist/components/ContentPage/renderSlots.d.ts +12 -0
  232. package/mobile/dist/components/ContentPage/renderSlots.js +17 -0
  233. package/mobile/dist/components/ContentPage/renderSlots.js.map +1 -0
  234. package/mobile/dist/components/ProductBlock/renderBackwardButton.js +1 -1
  235. package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  236. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +1 -1
  237. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  238. package/mobile/dist/components/StepsBlock/renderItems.js +1 -4
  239. package/mobile/dist/components/StepsBlock/renderItems.js.map +1 -1
  240. package/mobile/dist/components/StepsBlock/renderStepContent.d.ts +2 -2
  241. package/mobile/dist/components/StepsBlock/renderStepContent.js +13 -8
  242. package/mobile/dist/components/StepsBlock/renderStepContent.js.map +1 -1
  243. package/mobile/dist/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  244. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +13 -18
  245. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  246. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  247. package/mobile/dist/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  248. package/mobile/dist/components/TariffsTable/TariffsTableRenderCell.js +42 -0
  249. package/mobile/dist/components/TariffsTable/TariffsTableRenderCell.js.map +1 -0
  250. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  251. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +6 -2
  252. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  253. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  254. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js +2 -8
  255. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -1
  256. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +1 -1
  257. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  258. package/mobile/dist/model/BlockDecorator.d.ts +4 -3
  259. package/mobile/dist/model/BlockDecorator.js +1 -2
  260. package/mobile/dist/model/BlockDecorator.js.map +1 -1
  261. package/mobile/dist/model/BlocksRegistry.d.ts +1 -1
  262. package/mobile/dist/model/ContentPageDef.d.ts +1 -4
  263. package/mobile/dist/model/JSXBlock.d.ts +3 -1
  264. package/mobile/dist/model/getParentBlockDef.js +5 -2
  265. package/mobile/dist/model/getParentBlockDef.js.map +1 -1
  266. package/mobile/dist/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  267. package/mobile/dist/ui-kit/InnerTable/InnerTable.js +3 -2
  268. package/mobile/dist/ui-kit/InnerTable/InnerTable.js.map +1 -1
  269. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  270. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js +2 -6
  271. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  272. package/mobile/dist/ui-kit/InputRange/InputRange.js +1 -1
  273. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  274. package/mobile/dist/ui-kit/Radio/Radio.js +1 -1
  275. package/mobile/dist/ui-kit/Radio/Radio.js.map +1 -1
  276. package/mobile/dist/ui-kit/Select/Select.js +1 -1
  277. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  278. package/mobile/lib/components/Blocks.d.ts +2 -18
  279. package/mobile/lib/components/Blocks.js.map +1 -1
  280. package/mobile/lib/components/Bonus/Bonus.js +1 -1
  281. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  282. package/mobile/lib/components/ContentPage/ContentPage.d.ts +2 -2
  283. package/mobile/lib/components/ContentPage/ContentPage.js +12 -11
  284. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  285. package/mobile/lib/components/ContentPage/mapSlot.d.ts +2 -0
  286. package/mobile/lib/components/ContentPage/mapSlot.js +11 -0
  287. package/mobile/lib/components/ContentPage/mapSlot.js.map +1 -0
  288. package/mobile/lib/components/ContentPage/normalizeBlock.d.ts +3 -2
  289. package/mobile/lib/components/ContentPage/normalizeBlock.js +18 -3
  290. package/mobile/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  291. package/mobile/lib/components/ContentPage/normalizePage.js +2 -14
  292. package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
  293. package/mobile/lib/components/ContentPage/renderBlock.d.ts +7 -3
  294. package/mobile/lib/components/ContentPage/renderBlock.js +9 -9
  295. package/mobile/lib/components/ContentPage/renderBlock.js.map +1 -1
  296. package/mobile/lib/components/ContentPage/renderBlockList.d.ts +14 -0
  297. package/mobile/lib/components/ContentPage/renderBlockList.js +15 -0
  298. package/mobile/lib/components/ContentPage/renderBlockList.js.map +1 -0
  299. package/mobile/lib/components/ContentPage/renderSlots.d.ts +12 -0
  300. package/mobile/lib/components/ContentPage/renderSlots.js +14 -0
  301. package/mobile/lib/components/ContentPage/renderSlots.js.map +1 -0
  302. package/mobile/lib/components/ProductBlock/renderBackwardButton.js +1 -1
  303. package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  304. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +1 -1
  305. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  306. package/mobile/lib/components/StepsBlock/renderItems.js +1 -4
  307. package/mobile/lib/components/StepsBlock/renderItems.js.map +1 -1
  308. package/mobile/lib/components/StepsBlock/renderStepContent.d.ts +2 -2
  309. package/mobile/lib/components/StepsBlock/renderStepContent.js +14 -9
  310. package/mobile/lib/components/StepsBlock/renderStepContent.js.map +1 -1
  311. package/mobile/lib/components/TariffsTable/TariffsTableCell.d.ts +8 -2
  312. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +14 -19
  313. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  314. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +3 -4
  315. package/mobile/lib/components/TariffsTable/TariffsTableRenderCell.d.ts +11 -0
  316. package/mobile/lib/components/TariffsTable/TariffsTableRenderCell.js +39 -0
  317. package/mobile/lib/components/TariffsTable/TariffsTableRenderCell.js.map +1 -0
  318. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +0 -1
  319. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +6 -2
  320. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  321. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +3 -1
  322. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js +2 -8
  323. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -1
  324. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +1 -1
  325. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  326. package/mobile/lib/model/BlockDecorator.d.ts +4 -3
  327. package/mobile/lib/model/BlockDecorator.js +0 -1
  328. package/mobile/lib/model/BlockDecorator.js.map +1 -1
  329. package/mobile/lib/model/BlocksRegistry.d.ts +1 -1
  330. package/mobile/lib/model/ContentPageDef.d.ts +1 -4
  331. package/mobile/lib/model/JSXBlock.d.ts +3 -1
  332. package/mobile/lib/model/getParentBlockDef.js +5 -2
  333. package/mobile/lib/model/getParentBlockDef.js.map +1 -1
  334. package/mobile/lib/ui-kit/InnerTable/InnerTable.d.ts +1 -0
  335. package/mobile/lib/ui-kit/InnerTable/InnerTable.js +3 -2
  336. package/mobile/lib/ui-kit/InnerTable/InnerTable.js.map +1 -1
  337. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.d.ts +1 -0
  338. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js +2 -6
  339. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  340. package/mobile/lib/ui-kit/InputRange/InputRange.js +1 -1
  341. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  342. package/mobile/lib/ui-kit/Radio/Radio.js +1 -1
  343. package/mobile/lib/ui-kit/Radio/Radio.js.map +1 -1
  344. package/mobile/lib/ui-kit/Select/Select.js +1 -1
  345. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  346. package/mobile/src/components/Blocks.ts +2 -1
  347. package/mobile/src/components/Bonus/Bonus.tsx +1 -1
  348. package/mobile/src/components/ContentPage/ContentPage.page.json +7 -10
  349. package/mobile/src/components/ContentPage/ContentPage.tsx +24 -28
  350. package/mobile/src/components/ContentPage/mapSlot.ts +17 -0
  351. package/mobile/src/components/ContentPage/normalizeBlock.ts +26 -4
  352. package/mobile/src/components/ContentPage/normalizePage.ts +3 -20
  353. package/mobile/src/components/ContentPage/renderBlock.tsx +16 -18
  354. package/mobile/src/components/ContentPage/renderBlockList.tsx +39 -0
  355. package/mobile/src/components/ContentPage/renderSlots.tsx +33 -0
  356. package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +5 -1
  357. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +6 -1
  358. package/mobile/src/components/StepsBlock/renderItems.tsx +5 -8
  359. package/mobile/src/components/StepsBlock/renderStepContent.tsx +40 -15
  360. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +39 -45
  361. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +3 -4
  362. package/mobile/src/components/TariffsTable/TariffsTableRenderCell.tsx +88 -0
  363. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +18 -9
  364. package/mobile/src/components/TariffsTable/TariffsTableRowContainer.tsx +5 -20
  365. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +3 -1
  366. package/mobile/src/model/BlockDecorator.ts +4 -4
  367. package/mobile/src/model/BlocksRegistry.ts +1 -1
  368. package/mobile/src/model/ContentPageDef.ts +1 -5
  369. package/mobile/src/model/JSXBlock.ts +3 -1
  370. package/mobile/src/model/getParentBlockDef.ts +6 -2
  371. package/mobile/src/ui-kit/InnerTable/InnerTable.tsx +13 -4
  372. package/mobile/src/ui-kit/InnerTable/InnerTableButton.tsx +20 -26
  373. package/mobile/src/ui-kit/InputRange/InputRange.tsx +1 -1
  374. package/mobile/src/ui-kit/Radio/Radio.tsx +2 -2
  375. package/mobile/src/ui-kit/Select/Select.tsx +1 -1
  376. package/package.json +1 -1
  377. package/src/components/Accordion/Accordion.fixture.mobile.tsx +16 -4
  378. package/src/components/Blocks.mobile.ts +2 -1
  379. package/src/components/Blocks.ts +2 -1
  380. package/src/components/Bonus/Bonus.tsx +1 -1
  381. package/src/components/ContentPage/ContentPage.page.json +7 -10
  382. package/src/components/ContentPage/ContentPage.tsx +24 -28
  383. package/src/components/ContentPage/mapSlot.ts +17 -0
  384. package/src/components/ContentPage/normalizeBlock.mobile.ts +26 -4
  385. package/src/components/ContentPage/normalizeBlock.ts +17 -4
  386. package/src/components/ContentPage/normalizePage.ts +3 -20
  387. package/src/components/ContentPage/renderBlock.tsx +16 -18
  388. package/src/components/ContentPage/renderBlockList.tsx +39 -0
  389. package/src/components/ContentPage/renderSlots.tsx +33 -0
  390. package/src/components/ProductBlock/renderBackwardButton.tsx +5 -1
  391. package/src/components/SafeDepositRental/SafeDepositRental.tsx +6 -1
  392. package/src/components/StepsBlock/StepsBlock.fixture.tsx +72 -81
  393. package/src/components/StepsBlock/StepsBlock.tsx +3 -3
  394. package/src/components/StepsBlock/renderItems.tsx +5 -8
  395. package/src/components/StepsBlock/renderStepContent.tsx +40 -15
  396. package/src/components/TariffsTable/EmbeddableCellData.tsx +20 -18
  397. package/src/components/TariffsTable/TariffsTable.tsx +1 -2
  398. package/src/components/TariffsTable/TariffsTableCell.tsx +39 -45
  399. package/src/components/TariffsTable/TariffsTableContent.ts +3 -4
  400. package/src/components/TariffsTable/TariffsTableRenderCell.tsx +88 -0
  401. package/src/components/TariffsTable/TariffsTableRow.tsx +18 -9
  402. package/src/components/TariffsTable/TariffsTableRowContainer.tsx +5 -20
  403. package/src/components/TariffsTable/TariffsTableTileCell.tsx +3 -1
  404. package/src/model/BlockDecorator.ts +4 -4
  405. package/src/model/BlocksRegistry.ts +1 -1
  406. package/src/model/ContentPageDef.ts +1 -5
  407. package/src/model/JSXBlock.ts +3 -1
  408. package/src/model/getParentBlockDef.ts +6 -2
  409. package/src/ui-kit/InnerTable/InnerTable.tsx +13 -4
  410. package/src/ui-kit/InnerTable/InnerTableButton.tsx +20 -26
  411. package/src/ui-kit/InputRange/InputRange.tsx +1 -1
  412. package/src/ui-kit/Radio/Radio.tsx +2 -2
  413. package/src/ui-kit/Select/Select.tsx +1 -1
  414. package/bundle/components/ContentPage/filterBlocks.d.ts +0 -12
  415. package/bundle/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  416. package/dist/components/ContentPage/filterBlocks.d.ts +0 -12
  417. package/dist/components/ContentPage/filterBlocks.js +0 -6
  418. package/dist/components/ContentPage/filterBlocks.js.map +0 -1
  419. package/dist/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  420. package/dist/components/ContentPage/filterBlocks.mobile.js +0 -8
  421. package/dist/components/ContentPage/filterBlocks.mobile.js.map +0 -1
  422. package/lib/components/ContentPage/filterBlocks.d.ts +0 -12
  423. package/lib/components/ContentPage/filterBlocks.js +0 -3
  424. package/lib/components/ContentPage/filterBlocks.js.map +0 -1
  425. package/lib/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  426. package/lib/components/ContentPage/filterBlocks.mobile.js +0 -5
  427. package/lib/components/ContentPage/filterBlocks.mobile.js.map +0 -1
  428. package/mobile/bundle/components/ContentPage/filterBlocks.d.ts +0 -3
  429. package/mobile/dist/components/ContentPage/filterBlocks.d.ts +0 -3
  430. package/mobile/dist/components/ContentPage/filterBlocks.js +0 -8
  431. package/mobile/dist/components/ContentPage/filterBlocks.js.map +0 -1
  432. package/mobile/lib/components/ContentPage/filterBlocks.d.ts +0 -3
  433. package/mobile/lib/components/ContentPage/filterBlocks.js +0 -5
  434. package/mobile/lib/components/ContentPage/filterBlocks.js.map +0 -1
  435. package/mobile/src/components/ContentPage/filterBlocks.ts +0 -11
  436. package/src/components/ContentPage/filterBlocks.mobile.ts +0 -11
  437. package/src/components/ContentPage/filterBlocks.ts +0 -6
@@ -1,4 +1,5 @@
1
- import type { BlockDef } from '../../model/ContentPageDef';
1
+ import { DEFAULT_SLOT_NAME } from '../../model/BlockDecorator';
2
+ import type { BlockDef, ContentPageDef } from '../../model/ContentPageDef';
2
3
  import { context } from '../../react/setup-fixture';
3
4
  import { AccordionItem } from '../AccordionItem/AccordionItem';
4
5
  import { Headline } from '../Headline/Headline';
@@ -10,6 +11,8 @@ import { TEXT_BLOCK } from '../TextBlock/TextBlock.fixture';
10
11
  import type { AccordionProps } from './Accordion';
11
12
  import { Accordion } from './Accordion';
12
13
 
14
+ const page = {} as ContentPageDef;
15
+
13
16
  const TEXT_BLOCK_ACCORDION_BLOCK = <TextBlock context={context} {...TEXT_BLOCK} />;
14
17
 
15
18
  const HEADLINE_ACCORDION_BLOCK = <Headline context={context} {...HEADLINE} />;
@@ -30,7 +33,10 @@ const ACCORDION_BLOCK_DEF: BlockDef = {
30
33
  export const ACCORDION_ITEM = (
31
34
  <AccordionItem
32
35
  context={context}
33
- ancestors={[null, ACCORDION_BLOCK_DEF]}
36
+ ancestors={[
37
+ [page, DEFAULT_SLOT_NAME],
38
+ [ACCORDION_BLOCK_DEF, DEFAULT_SLOT_NAME],
39
+ ]}
34
40
  label="Accordion label 1"
35
41
  labelIcon={{ icon: 'CardIcon' }}
36
42
  >
@@ -45,14 +51,20 @@ export default {
45
51
  {ACCORDION_ITEM}
46
52
  <AccordionItem
47
53
  context={context}
48
- ancestors={[null, ACCORDION_BLOCK_DEF]}
54
+ ancestors={[
55
+ [page, DEFAULT_SLOT_NAME],
56
+ [ACCORDION_BLOCK_DEF, DEFAULT_SLOT_NAME],
57
+ ]}
49
58
  label="Accordion label 2"
50
59
  >
51
60
  {[HEADLINE_ACCORDION_BLOCK]}
52
61
  </AccordionItem>
53
62
  <AccordionItem
54
63
  context={context}
55
- ancestors={[null, ACCORDION_BLOCK_DEF]}
64
+ ancestors={[
65
+ [page, DEFAULT_SLOT_NAME],
66
+ [ACCORDION_BLOCK_DEF, DEFAULT_SLOT_NAME],
67
+ ]}
56
68
  label="Accordion label 3"
57
69
  >
58
70
  {[LINK_DOCS_ACCORDION_BLOCK]}
@@ -1,3 +1,4 @@
1
+ import type { BlocksRegistry } from '../model/BlocksRegistry';
1
2
  import { Accordion } from './Accordion/Accordion';
2
3
  import { AccordionItem } from './AccordionItem/AccordionItem';
3
4
  import { ComparisonTable } from './ComparisonTable/ComparisonTable';
@@ -15,7 +16,7 @@ import { StepsBlock } from './StepsBlock/StepsBlock';
15
16
  import { TariffsTable } from './TariffsTable/TariffsTable';
16
17
  import { TextBlock } from './TextBlock/TextBlock';
17
18
 
18
- export const Blocks = {
19
+ export const Blocks: BlocksRegistry = {
19
20
  Accordion,
20
21
  AccordionItem,
21
22
  ComparisonTable,
@@ -1,3 +1,4 @@
1
+ import type { BlocksRegistry } from '../model/BlocksRegistry';
1
2
  import { Accordion } from './Accordion/Accordion';
2
3
  import { AccordionItem } from './AccordionItem/AccordionItem';
3
4
  import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
@@ -38,7 +39,7 @@ import { TariffsTable } from './TariffsTable/TariffsTable';
38
39
  import { TextBlock } from './TextBlock/TextBlock';
39
40
  import { Tile } from './Tile/Tile';
40
41
 
41
- export const Blocks = {
42
+ export const Blocks: BlocksRegistry = {
42
43
  Accordion,
43
44
  AccordionItem,
44
45
  BenefitsBlock,
@@ -32,7 +32,7 @@ export const Bonus = JSX<BonusProps>((props) => {
32
32
  return (
33
33
  <div
34
34
  key={String(i)}
35
- className="flex-grow w-[49%] border border-gray pl-9 pt-9 pr-6 pb-6 mb-3 mx-2 even:mr-0 odd:ml-0 last:odd:mx-0"
35
+ className="flex-grow w-[49%] border border-gray p-9 mb-3 mx-2 even:mr-0 odd:ml-0 last:odd:mx-0"
36
36
  >
37
37
  <div className="flex justify-between w-full">
38
38
  <div className="flex flex-col justify-between mr-4">
@@ -19,17 +19,14 @@
19
19
  "style": ["bg-main-divider"],
20
20
  "likeControl": true,
21
21
  "slots": {
22
- "header": {
23
- "style": ["mb-5", "shadow-[0_8px_32px_0px_#00000014]"],
24
- "blocks": [
25
- {
26
- "type": "Header",
27
- "content": {
28
- "defaultLocation": "Москва"
29
- }
22
+ "header": [
23
+ {
24
+ "type": "Header",
25
+ "content": {
26
+ "defaultLocation": "Москва"
30
27
  }
31
- ]
32
- }
28
+ }
29
+ ]
33
30
  },
34
31
  "blocks": [
35
32
  {
@@ -1,12 +1,14 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BlockAncestors, BlockDecorator } from '../../model/BlockDecorator';
2
+ import type { BlockDecorator } from '../../model/BlockDecorator';
3
3
  import type { BlocksRegistry } from '../../model/BlocksRegistry';
4
- import type { BlockDef, ContentPageDef } from '../../model/ContentPageDef';
5
- import type { UniBlockProps } from '../../model/JSXBlock';
4
+ import type { ContentPageDef } from '../../model/ContentPageDef';
5
+ import type { JSXBlock, UniBlockProps } from '../../model/JSXBlock';
6
6
  import { style2className } from '../../utils/style2className';
7
7
  import { LikeControl } from '../LikeControl/LikeControl';
8
8
  import type { ContentPageContext } from './ContentPageContext';
9
- import { renderBlock } from './renderBlock';
9
+ import { RenderBlockOptions } from './renderBlock';
10
+ import { renderBlocksList } from './renderBlockList';
11
+ import { renderSlots } from './renderSlots';
10
12
 
11
13
  interface ContentPageProps extends UniBlockProps {
12
14
  blocksRegistry: BlocksRegistry;
@@ -17,26 +19,34 @@ interface ContentPageProps extends UniBlockProps {
17
19
  const defaultBlockDecorator: BlockDecorator = ({ blockClassName, block, render }) =>
18
20
  render({ blockClassName, block });
19
21
 
20
- export const ContentPage = JSX<ContentPageProps>((props) => {
21
- const { className = '', context, data = {} } = props;
22
+ export const ContentPage: JSXBlock<ContentPageProps> = JSX<ContentPageProps>((props) => {
23
+ const { className = '', blocksRegistry, blockDecorator, context, data = {} } = props;
22
24
 
23
25
  const { style: pageStyle, blocks, slots, likeControl, colorPalette = 'pc' } = data;
24
26
 
25
- const blocksListRenderer = renderBlocksList(props);
27
+ const options: RenderBlockOptions = {
28
+ key: '',
29
+ blocksRegistry,
30
+ page: data,
31
+ blockDecorator: blockDecorator || defaultBlockDecorator,
32
+ context,
33
+ };
34
+
35
+ const pageSlots = renderSlots({ slots, parent: data, options });
26
36
 
27
37
  return (
28
38
  <section
29
39
  className={`relative ${style2className(pageStyle)} ${className}`}
30
40
  data-theme={colorPalette}
31
41
  >
32
- {slots?.header?.blocks?.length ? (
33
- <div className={`${style2className(slots.header.style)}`}>
34
- {blocksListRenderer(slots.header.blocks, ['header'])}
35
- </div>
42
+ {pageSlots?.header ? (
43
+ <div className="mb-5 shadow-[0_8px_32px_0px_#00000014]">{pageSlots.header}</div>
36
44
  ) : null}
37
45
 
38
46
  {blocks?.length ? (
39
- <div className="container grid grid-cols-12 gap-1">{blocksListRenderer(blocks)}</div>
47
+ <div className="container grid grid-cols-12 gap-1">
48
+ {renderBlocksList({ blocks, parent: data, options })}
49
+ </div>
40
50
  ) : null}
41
51
 
42
52
  {likeControl ? renderLikeControl(context) : null}
@@ -44,22 +54,8 @@ export const ContentPage = JSX<ContentPageProps>((props) => {
44
54
  );
45
55
  });
46
56
 
47
- function renderBlocksList({ blocksRegistry, data, blockDecorator, context }: ContentPageProps) {
48
- return (blocks: BlockDef[], ancestors?: BlockAncestors) =>
49
- blocks.map((block, i) =>
50
- renderBlock(
51
- block,
52
- {
53
- key: `${block.type || '#'}-${i}`,
54
- blocksRegistry,
55
- page: data || {},
56
- blockDecorator: blockDecorator || defaultBlockDecorator,
57
- context,
58
- },
59
- ancestors,
60
- ),
61
- );
62
- }
57
+ ContentPage.childrenTypes = [];
58
+ ContentPage.slots = () => ['header'];
63
59
 
64
60
  function renderLikeControl(context: ContentPageContext) {
65
61
  return (
@@ -0,0 +1,17 @@
1
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
2
+
3
+ export const mapSlot =
4
+ (mapper: (blocks?: BlockDef[]) => BlockDef[]) =>
5
+ <S extends Slot>(slot: S): S => ({
6
+ ...slot,
7
+ blocks: mapper(slot.blocks),
8
+ slots: slot.slots
9
+ ? Object.entries(slot.slots).reduce(
10
+ (res, [slotKey, slotBlocks]) => ({
11
+ ...res,
12
+ [slotKey]: mapper(slotBlocks),
13
+ }),
14
+ {},
15
+ )
16
+ : {},
17
+ });
@@ -1,7 +1,29 @@
1
- import { BlockDef } from '../../model/ContentPageDef';
1
+ import type { BlocksRegistry } from '../../model/BlocksRegistry';
2
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
3
+ import { mapSlot } from './mapSlot';
2
4
 
3
- export function normalizeBlock(block: BlockDef) {
4
- const { mobile, ...rest } = block;
5
+ export function normalizeBlock<S extends Slot>(block?: S, blocksRegistry?: BlocksRegistry): S {
6
+ const { mobile, ...rest } = (block || {}) as BlockDef;
5
7
 
6
- return mobile ? { ...rest, ...mobile, content: { ...rest.content, ...mobile.content } } : block;
8
+ const normalizedBlock = mobile
9
+ ? { ...rest, ...mobile, content: { ...rest.content, ...mobile.content } }
10
+ : block;
11
+
12
+ return {
13
+ ...mapSlot((blocks) => filterBlocks(blocks, blocksRegistry))(normalizedBlock || {}),
14
+ } as S;
7
15
  }
16
+
17
+ const filterBlocks = (blocks?: BlockDef[], blocksRegistry?: BlocksRegistry) =>
18
+ blocks
19
+ ? blocks
20
+ ?.filter(
21
+ (block) =>
22
+ blocksRegistry &&
23
+ (block?.type || block?.mobile?.type || '') in blocksRegistry &&
24
+ !block.mobile?.hidden,
25
+ )
26
+ .map((block) => ({
27
+ ...normalizeBlock(block, blocksRegistry),
28
+ }))
29
+ : [];
@@ -1,8 +1,21 @@
1
- import { BlockDef } from '../../model/ContentPageDef';
1
+ import type { BlocksRegistry } from '../../model/BlocksRegistry';
2
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
3
+ import { mapSlot } from './mapSlot';
2
4
 
3
- export function normalizeBlock(block: BlockDef) {
5
+ export function normalizeBlock<S extends Slot>(block?: S, blocksRegistry?: BlocksRegistry): S {
4
6
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
- const { mobile, ...rest } = block;
7
+ const { mobile, ...rest } = (block || {}) as BlockDef;
6
8
 
7
- return rest;
9
+ return {
10
+ ...mapSlot((blocks) => filterBlocks(blocks, blocksRegistry))({ ...rest }),
11
+ } as S;
8
12
  }
13
+
14
+ const filterBlocks = (blocks?: BlockDef[], blocksRegistry?: BlocksRegistry) =>
15
+ blocks
16
+ ? blocks
17
+ .filter((block) => blocksRegistry && (block?.type || '') in blocksRegistry)
18
+ .map((block) => ({
19
+ ...normalizeBlock(block, blocksRegistry),
20
+ }))
21
+ : [];
@@ -1,6 +1,6 @@
1
1
  import type { BlocksRegistry } from '../../model/BlocksRegistry';
2
- import type { ContentPageDef, Slot } from '../../model/ContentPageDef';
3
- import { filterBlocks } from './filterBlocks';
2
+ import type { ContentPageDef } from '../../model/ContentPageDef';
3
+ import { normalizeBlock } from './normalizeBlock';
4
4
 
5
5
  export const normalizePage =
6
6
  (blocksRegistry: BlocksRegistry) =>
@@ -9,22 +9,5 @@ export const normalizePage =
9
9
  return undefined;
10
10
  }
11
11
 
12
- const { blocks = [], slots } = contentPage;
13
-
14
- return {
15
- ...contentPage,
16
- blocks: filterBlocks(blocks, blocksRegistry),
17
- slots:
18
- slots &&
19
- Object.keys(slots).reduce(
20
- (res, key) => ({
21
- ...res,
22
- [key]: {
23
- ...slots[key],
24
- blocks: filterBlocks((slots[key] as Slot).blocks || [], blocksRegistry),
25
- },
26
- }),
27
- {},
28
- ),
29
- };
12
+ return normalizeBlock(contentPage, blocksRegistry);
30
13
  };
@@ -1,11 +1,12 @@
1
- import { BlockAncestors, BlockDecorator, DEFAULT_ANCESTORS } from '../../model/BlockDecorator';
1
+ import { BlockAncestors, BlockDecorator } from '../../model/BlockDecorator';
2
2
  import type { BlocksRegistry } from '../../model/BlocksRegistry';
3
3
  import type { BlockDef, ContentPageDef } from '../../model/ContentPageDef';
4
- import type { VNode } from '../../model/VNode';
5
4
  import { style2className } from '../../utils/style2className';
6
5
  import type { ContentPageContext } from './ContentPageContext';
6
+ import { renderBlocksList } from './renderBlockList';
7
+ import { renderSlots } from './renderSlots';
7
8
 
8
- interface RenderBlockOptions {
9
+ export interface RenderBlockOptions {
9
10
  key: string;
10
11
  page: ContentPageDef;
11
12
  blockDecorator: BlockDecorator;
@@ -13,15 +14,15 @@ interface RenderBlockOptions {
13
14
  context: ContentPageContext;
14
15
  }
15
16
 
16
- const defaultChildRenderer = (_: VNode) => _;
17
+ export interface RenderBlockProps {
18
+ block?: BlockDef;
19
+ options: RenderBlockOptions;
20
+ ancestors?: BlockAncestors; // Recursion context
21
+ }
17
22
 
18
- export function renderBlock(
19
- block: BlockDef,
20
- options: RenderBlockOptions,
21
- ancestors: BlockAncestors = DEFAULT_ANCESTORS, // Recursion context
22
- ) {
23
- const { key, page, blockDecorator, blocksRegistry, context } = options;
24
- const { type, blocks: childBlocks } = block;
23
+ export function renderBlock({ block = {}, options, ancestors = [] }: RenderBlockProps) {
24
+ const { key, page, blockDecorator, blocksRegistry = {}, context } = options;
25
+ const { type, slots, blocks: childBlocks } = block;
25
26
 
26
27
  if (!(type && type in blocksRegistry)) {
27
28
  console.warn(`No block with "${type}" is registered`);
@@ -29,13 +30,9 @@ export function renderBlock(
29
30
 
30
31
  const BlockComponent = type && blocksRegistry[type];
31
32
 
32
- const { renderChild = defaultChildRenderer } = BlockComponent || {};
33
- const renderChildBlock = (_: BlockDef, j: number) =>
34
- renderChild(
35
- renderBlock(_, { ...options, key: `${options.key}-${j}` }, [...ancestors, block]),
36
- j,
37
- );
38
- const children = childBlocks?.length ? childBlocks.map(renderChildBlock) : null;
33
+ const subBlockRenderProps = { parent: block, options, ancestors };
34
+ const children = renderBlocksList({ ...subBlockRenderProps, blocks: childBlocks });
35
+ const blockSlots = slots ? renderSlots({ ...subBlockRenderProps, slots }) : {};
39
36
 
40
37
  return blockDecorator(
41
38
  {
@@ -56,6 +53,7 @@ export function renderBlock(
56
53
  version={version}
57
54
  anchor={anchor}
58
55
  labels={labels}
56
+ slots={blockSlots}
59
57
  {...content}
60
58
  >
61
59
  {children}
@@ -0,0 +1,39 @@
1
+ import type { SlotName } from '../../model/BlockDecorator';
2
+ import { BlockAncestors, DEFAULT_SLOT_NAME } from '../../model/BlockDecorator';
3
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
4
+ import type { VNode } from '../../model/VNode';
5
+ import { renderBlock, RenderBlockOptions } from './renderBlock';
6
+
7
+ interface RenderBlockListProps {
8
+ blocks?: BlockDef[];
9
+ parent: Slot;
10
+ slotName?: SlotName;
11
+ options: RenderBlockOptions;
12
+ ancestors?: BlockAncestors; // Recursion context
13
+ }
14
+
15
+ const defaultChildRenderer = (_: VNode) => _;
16
+
17
+ export function renderBlocksList({
18
+ blocks = [],
19
+ parent,
20
+ slotName = DEFAULT_SLOT_NAME,
21
+ options,
22
+ ancestors = [],
23
+ }: RenderBlockListProps): Record<string, VNode> {
24
+ const { blocksRegistry = {} } = options;
25
+ const { type } = parent as BlockDef;
26
+ const BlockComponent = type && blocksRegistry[type];
27
+ const { renderChild = defaultChildRenderer } = BlockComponent || {};
28
+
29
+ return blocks.map((_: BlockDef, j: number) =>
30
+ renderChild(
31
+ renderBlock({
32
+ block: _,
33
+ options: { ...options, key: `${options.key ? options.key : _.type}-${j}` },
34
+ ancestors: [...ancestors, [parent, slotName]],
35
+ }),
36
+ j,
37
+ ),
38
+ );
39
+ }
@@ -0,0 +1,33 @@
1
+ import { BlockAncestors } from '../../model/BlockDecorator';
2
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
3
+ import type { VNode } from '../../model/VNode';
4
+ import type { RenderBlockOptions } from './renderBlock';
5
+ import { renderBlocksList } from './renderBlockList';
6
+
7
+ interface RenderSlotsProps {
8
+ slots?: Record<string, BlockDef[]>;
9
+ parent: Slot;
10
+ options: RenderBlockOptions;
11
+ ancestors?: BlockAncestors;
12
+ }
13
+
14
+ export function renderSlots({
15
+ slots = {},
16
+ parent,
17
+ options,
18
+ ancestors = [],
19
+ }: RenderSlotsProps): Record<string, VNode> {
20
+ return Object.entries(slots).reduce(
21
+ (res, [slotName, slotBlocks]) => ({
22
+ ...res,
23
+ [slotName]: renderBlocksList({
24
+ blocks: slotBlocks,
25
+ parent,
26
+ slotName,
27
+ options,
28
+ ancestors,
29
+ }),
30
+ }),
31
+ {},
32
+ );
33
+ }
@@ -22,7 +22,11 @@ export function renderBackwardButton(
22
22
  href={href}
23
23
  target={target}
24
24
  >
25
- <Img className="w-4 h-4" image={{ ...backwardIcon, iconVersion }} asSVG />
25
+ <Img
26
+ className="w-4 h-4"
27
+ image={{ ...backwardIcon, iconVersion: backwardIcon.iconVersion || iconVersion }}
28
+ asSVG
29
+ />
26
30
  </Button>
27
31
  {text ? <span className="text-m">{text}</span> : null}
28
32
  </div>
@@ -47,7 +47,12 @@ export const SafeDepositRental = JSX<SafeDepositRentalProps>(
47
47
  <BlockWrapper context={context} className={className} {...rest}>
48
48
  <div className="font-sans bg-white px-8 py-12">
49
49
  {title ? (
50
- <Heading title={title} headingType="h3" as="h2" className="mb-2.5 text-center" />
50
+ <Heading
51
+ title={title}
52
+ headingType="h3"
53
+ as="h2"
54
+ className="text-primary-text mb-2.5 text-center"
55
+ />
51
56
  ) : null}
52
57
  <SafeDepositRentalForm
53
58
  regions={regions}