@redneckz/wildless-cms-uni-blocks 0.6.19 → 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 (215) hide show
  1. package/bin/migration-scripts/0.6.19.js +21 -0
  2. package/bundle/bundle.umd.js +49 -22
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/Blocks.d.ts +2 -41
  5. package/bundle/components/Blocks.mobile.d.ts +2 -18
  6. package/bundle/components/ContentPage/ContentPage.d.ts +2 -2
  7. package/bundle/components/ContentPage/mapSlot.d.ts +2 -0
  8. package/bundle/components/ContentPage/normalizeBlock.d.ts +3 -11
  9. package/bundle/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  10. package/bundle/components/ContentPage/renderBlock.d.ts +7 -3
  11. package/bundle/components/ContentPage/renderBlockList.d.ts +14 -0
  12. package/bundle/components/ContentPage/renderSlots.d.ts +12 -0
  13. package/bundle/model/BlockDecorator.d.ts +4 -3
  14. package/bundle/model/BlocksRegistry.d.ts +1 -1
  15. package/bundle/model/ContentPageDef.d.ts +1 -4
  16. package/bundle/model/JSXBlock.d.ts +3 -1
  17. package/dist/components/Blocks.d.ts +2 -41
  18. package/dist/components/Blocks.js.map +1 -1
  19. package/dist/components/Blocks.mobile.d.ts +2 -18
  20. package/dist/components/Blocks.mobile.js.map +1 -1
  21. package/dist/components/ContentPage/ContentPage.d.ts +2 -2
  22. package/dist/components/ContentPage/ContentPage.js +12 -11
  23. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  24. package/dist/components/ContentPage/mapSlot.d.ts +2 -0
  25. package/dist/components/ContentPage/mapSlot.js +14 -0
  26. package/dist/components/ContentPage/mapSlot.js.map +1 -0
  27. package/dist/components/ContentPage/normalizeBlock.d.ts +3 -11
  28. package/dist/components/ContentPage/normalizeBlock.js +13 -3
  29. package/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  30. package/dist/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  31. package/dist/components/ContentPage/normalizeBlock.mobile.js +18 -3
  32. package/dist/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  33. package/dist/components/ContentPage/normalizePage.js +2 -14
  34. package/dist/components/ContentPage/normalizePage.js.map +1 -1
  35. package/dist/components/ContentPage/renderBlock.d.ts +7 -3
  36. package/dist/components/ContentPage/renderBlock.js +9 -9
  37. package/dist/components/ContentPage/renderBlock.js.map +1 -1
  38. package/dist/components/ContentPage/renderBlockList.d.ts +14 -0
  39. package/dist/components/ContentPage/renderBlockList.js +18 -0
  40. package/dist/components/ContentPage/renderBlockList.js.map +1 -0
  41. package/dist/components/ContentPage/renderSlots.d.ts +12 -0
  42. package/dist/components/ContentPage/renderSlots.js +17 -0
  43. package/dist/components/ContentPage/renderSlots.js.map +1 -0
  44. package/dist/model/BlockDecorator.d.ts +4 -3
  45. package/dist/model/BlockDecorator.js +1 -2
  46. package/dist/model/BlockDecorator.js.map +1 -1
  47. package/dist/model/BlocksRegistry.d.ts +1 -1
  48. package/dist/model/ContentPageDef.d.ts +1 -4
  49. package/dist/model/JSXBlock.d.ts +3 -1
  50. package/dist/model/getParentBlockDef.js +5 -2
  51. package/dist/model/getParentBlockDef.js.map +1 -1
  52. package/lib/components/Blocks.d.ts +2 -41
  53. package/lib/components/Blocks.js.map +1 -1
  54. package/lib/components/Blocks.mobile.d.ts +2 -18
  55. package/lib/components/Blocks.mobile.js.map +1 -1
  56. package/lib/components/ContentPage/ContentPage.d.ts +2 -2
  57. package/lib/components/ContentPage/ContentPage.js +12 -11
  58. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  59. package/lib/components/ContentPage/mapSlot.d.ts +2 -0
  60. package/lib/components/ContentPage/mapSlot.js +11 -0
  61. package/lib/components/ContentPage/mapSlot.js.map +1 -0
  62. package/lib/components/ContentPage/normalizeBlock.d.ts +3 -11
  63. package/lib/components/ContentPage/normalizeBlock.js +13 -3
  64. package/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  65. package/lib/components/ContentPage/normalizeBlock.mobile.d.ts +3 -2
  66. package/lib/components/ContentPage/normalizeBlock.mobile.js +18 -3
  67. package/lib/components/ContentPage/normalizeBlock.mobile.js.map +1 -1
  68. package/lib/components/ContentPage/normalizePage.js +2 -14
  69. package/lib/components/ContentPage/normalizePage.js.map +1 -1
  70. package/lib/components/ContentPage/renderBlock.d.ts +7 -3
  71. package/lib/components/ContentPage/renderBlock.js +9 -9
  72. package/lib/components/ContentPage/renderBlock.js.map +1 -1
  73. package/lib/components/ContentPage/renderBlockList.d.ts +14 -0
  74. package/lib/components/ContentPage/renderBlockList.js +15 -0
  75. package/lib/components/ContentPage/renderBlockList.js.map +1 -0
  76. package/lib/components/ContentPage/renderSlots.d.ts +12 -0
  77. package/lib/components/ContentPage/renderSlots.js +14 -0
  78. package/lib/components/ContentPage/renderSlots.js.map +1 -0
  79. package/lib/model/BlockDecorator.d.ts +4 -3
  80. package/lib/model/BlockDecorator.js +0 -1
  81. package/lib/model/BlockDecorator.js.map +1 -1
  82. package/lib/model/BlocksRegistry.d.ts +1 -1
  83. package/lib/model/ContentPageDef.d.ts +1 -4
  84. package/lib/model/JSXBlock.d.ts +3 -1
  85. package/lib/model/getParentBlockDef.js +5 -2
  86. package/lib/model/getParentBlockDef.js.map +1 -1
  87. package/mobile/bundle/bundle.umd.js +49 -22
  88. package/mobile/bundle/bundle.umd.min.js +1 -1
  89. package/mobile/bundle/components/Blocks.d.ts +2 -18
  90. package/mobile/bundle/components/ContentPage/ContentPage.d.ts +2 -2
  91. package/mobile/bundle/components/ContentPage/mapSlot.d.ts +2 -0
  92. package/mobile/bundle/components/ContentPage/normalizeBlock.d.ts +3 -2
  93. package/mobile/bundle/components/ContentPage/renderBlock.d.ts +7 -3
  94. package/mobile/bundle/components/ContentPage/renderBlockList.d.ts +14 -0
  95. package/mobile/bundle/components/ContentPage/renderSlots.d.ts +12 -0
  96. package/mobile/bundle/model/BlockDecorator.d.ts +4 -3
  97. package/mobile/bundle/model/BlocksRegistry.d.ts +1 -1
  98. package/mobile/bundle/model/ContentPageDef.d.ts +1 -4
  99. package/mobile/bundle/model/JSXBlock.d.ts +3 -1
  100. package/mobile/dist/components/Blocks.d.ts +2 -18
  101. package/mobile/dist/components/Blocks.js.map +1 -1
  102. package/mobile/dist/components/ContentPage/ContentPage.d.ts +2 -2
  103. package/mobile/dist/components/ContentPage/ContentPage.js +12 -11
  104. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  105. package/mobile/dist/components/ContentPage/mapSlot.d.ts +2 -0
  106. package/mobile/dist/components/ContentPage/mapSlot.js +14 -0
  107. package/mobile/dist/components/ContentPage/mapSlot.js.map +1 -0
  108. package/mobile/dist/components/ContentPage/normalizeBlock.d.ts +3 -2
  109. package/mobile/dist/components/ContentPage/normalizeBlock.js +18 -3
  110. package/mobile/dist/components/ContentPage/normalizeBlock.js.map +1 -1
  111. package/mobile/dist/components/ContentPage/normalizePage.js +2 -14
  112. package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
  113. package/mobile/dist/components/ContentPage/renderBlock.d.ts +7 -3
  114. package/mobile/dist/components/ContentPage/renderBlock.js +9 -9
  115. package/mobile/dist/components/ContentPage/renderBlock.js.map +1 -1
  116. package/mobile/dist/components/ContentPage/renderBlockList.d.ts +14 -0
  117. package/mobile/dist/components/ContentPage/renderBlockList.js +18 -0
  118. package/mobile/dist/components/ContentPage/renderBlockList.js.map +1 -0
  119. package/mobile/dist/components/ContentPage/renderSlots.d.ts +12 -0
  120. package/mobile/dist/components/ContentPage/renderSlots.js +17 -0
  121. package/mobile/dist/components/ContentPage/renderSlots.js.map +1 -0
  122. package/mobile/dist/model/BlockDecorator.d.ts +4 -3
  123. package/mobile/dist/model/BlockDecorator.js +1 -2
  124. package/mobile/dist/model/BlockDecorator.js.map +1 -1
  125. package/mobile/dist/model/BlocksRegistry.d.ts +1 -1
  126. package/mobile/dist/model/ContentPageDef.d.ts +1 -4
  127. package/mobile/dist/model/JSXBlock.d.ts +3 -1
  128. package/mobile/dist/model/getParentBlockDef.js +5 -2
  129. package/mobile/dist/model/getParentBlockDef.js.map +1 -1
  130. package/mobile/lib/components/Blocks.d.ts +2 -18
  131. package/mobile/lib/components/Blocks.js.map +1 -1
  132. package/mobile/lib/components/ContentPage/ContentPage.d.ts +2 -2
  133. package/mobile/lib/components/ContentPage/ContentPage.js +12 -11
  134. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  135. package/mobile/lib/components/ContentPage/mapSlot.d.ts +2 -0
  136. package/mobile/lib/components/ContentPage/mapSlot.js +11 -0
  137. package/mobile/lib/components/ContentPage/mapSlot.js.map +1 -0
  138. package/mobile/lib/components/ContentPage/normalizeBlock.d.ts +3 -2
  139. package/mobile/lib/components/ContentPage/normalizeBlock.js +18 -3
  140. package/mobile/lib/components/ContentPage/normalizeBlock.js.map +1 -1
  141. package/mobile/lib/components/ContentPage/normalizePage.js +2 -14
  142. package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
  143. package/mobile/lib/components/ContentPage/renderBlock.d.ts +7 -3
  144. package/mobile/lib/components/ContentPage/renderBlock.js +9 -9
  145. package/mobile/lib/components/ContentPage/renderBlock.js.map +1 -1
  146. package/mobile/lib/components/ContentPage/renderBlockList.d.ts +14 -0
  147. package/mobile/lib/components/ContentPage/renderBlockList.js +15 -0
  148. package/mobile/lib/components/ContentPage/renderBlockList.js.map +1 -0
  149. package/mobile/lib/components/ContentPage/renderSlots.d.ts +12 -0
  150. package/mobile/lib/components/ContentPage/renderSlots.js +14 -0
  151. package/mobile/lib/components/ContentPage/renderSlots.js.map +1 -0
  152. package/mobile/lib/model/BlockDecorator.d.ts +4 -3
  153. package/mobile/lib/model/BlockDecorator.js +0 -1
  154. package/mobile/lib/model/BlockDecorator.js.map +1 -1
  155. package/mobile/lib/model/BlocksRegistry.d.ts +1 -1
  156. package/mobile/lib/model/ContentPageDef.d.ts +1 -4
  157. package/mobile/lib/model/JSXBlock.d.ts +3 -1
  158. package/mobile/lib/model/getParentBlockDef.js +5 -2
  159. package/mobile/lib/model/getParentBlockDef.js.map +1 -1
  160. package/mobile/src/components/Blocks.ts +2 -1
  161. package/mobile/src/components/ContentPage/ContentPage.page.json +7 -10
  162. package/mobile/src/components/ContentPage/ContentPage.tsx +24 -28
  163. package/mobile/src/components/ContentPage/mapSlot.ts +17 -0
  164. package/mobile/src/components/ContentPage/normalizeBlock.ts +26 -4
  165. package/mobile/src/components/ContentPage/normalizePage.ts +3 -20
  166. package/mobile/src/components/ContentPage/renderBlock.tsx +16 -18
  167. package/mobile/src/components/ContentPage/renderBlockList.tsx +39 -0
  168. package/mobile/src/components/ContentPage/renderSlots.tsx +33 -0
  169. package/mobile/src/model/BlockDecorator.ts +4 -4
  170. package/mobile/src/model/BlocksRegistry.ts +1 -1
  171. package/mobile/src/model/ContentPageDef.ts +1 -5
  172. package/mobile/src/model/JSXBlock.ts +3 -1
  173. package/mobile/src/model/getParentBlockDef.ts +6 -2
  174. package/package.json +1 -1
  175. package/src/components/Accordion/Accordion.fixture.mobile.tsx +16 -4
  176. package/src/components/Blocks.mobile.ts +2 -1
  177. package/src/components/Blocks.ts +2 -1
  178. package/src/components/ContentPage/ContentPage.page.json +7 -10
  179. package/src/components/ContentPage/ContentPage.tsx +24 -28
  180. package/src/components/ContentPage/mapSlot.ts +17 -0
  181. package/src/components/ContentPage/normalizeBlock.mobile.ts +26 -4
  182. package/src/components/ContentPage/normalizeBlock.ts +17 -4
  183. package/src/components/ContentPage/normalizePage.ts +3 -20
  184. package/src/components/ContentPage/renderBlock.tsx +16 -18
  185. package/src/components/ContentPage/renderBlockList.tsx +39 -0
  186. package/src/components/ContentPage/renderSlots.tsx +33 -0
  187. package/src/model/BlockDecorator.ts +4 -4
  188. package/src/model/BlocksRegistry.ts +1 -1
  189. package/src/model/ContentPageDef.ts +1 -5
  190. package/src/model/JSXBlock.ts +3 -1
  191. package/src/model/getParentBlockDef.ts +6 -2
  192. package/bundle/components/ContentPage/filterBlocks.d.ts +0 -12
  193. package/bundle/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  194. package/dist/components/ContentPage/filterBlocks.d.ts +0 -12
  195. package/dist/components/ContentPage/filterBlocks.js +0 -6
  196. package/dist/components/ContentPage/filterBlocks.js.map +0 -1
  197. package/dist/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  198. package/dist/components/ContentPage/filterBlocks.mobile.js +0 -8
  199. package/dist/components/ContentPage/filterBlocks.mobile.js.map +0 -1
  200. package/lib/components/ContentPage/filterBlocks.d.ts +0 -12
  201. package/lib/components/ContentPage/filterBlocks.js +0 -3
  202. package/lib/components/ContentPage/filterBlocks.js.map +0 -1
  203. package/lib/components/ContentPage/filterBlocks.mobile.d.ts +0 -12
  204. package/lib/components/ContentPage/filterBlocks.mobile.js +0 -5
  205. package/lib/components/ContentPage/filterBlocks.mobile.js.map +0 -1
  206. package/mobile/bundle/components/ContentPage/filterBlocks.d.ts +0 -3
  207. package/mobile/dist/components/ContentPage/filterBlocks.d.ts +0 -3
  208. package/mobile/dist/components/ContentPage/filterBlocks.js +0 -8
  209. package/mobile/dist/components/ContentPage/filterBlocks.js.map +0 -1
  210. package/mobile/lib/components/ContentPage/filterBlocks.d.ts +0 -3
  211. package/mobile/lib/components/ContentPage/filterBlocks.js +0 -5
  212. package/mobile/lib/components/ContentPage/filterBlocks.js.map +0 -1
  213. package/mobile/src/components/ContentPage/filterBlocks.ts +0 -11
  214. package/src/components/ContentPage/filterBlocks.mobile.ts +0 -11
  215. package/src/components/ContentPage/filterBlocks.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,qBAAqB,GAAmB,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAClF,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAErD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEnF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEnD,OAAO,CACL,mBACE,SAAS,EAAE,YAAY,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,gBACpD,YAAY,aAEvB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAC/B,cAAK,SAAS,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,YACrD,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,GAChD,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,mCAAmC,YAAE,kBAAkB,CAAC,MAAM,CAAC,GAAO,CACtF,CAAC,CAAC,CAAC,IAAI,EAEP,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IACxC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAoB;IAC3F,OAAO,CAAC,MAAkB,EAAE,SAA0B,EAAE,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACtB,WAAW,CACT,KAAK,EACL;QACE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;QAChC,cAAc;QACd,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,cAAc,EAAE,cAAc,IAAI,qBAAqB;QACvD,OAAO;KACR,EACD,SAAS,CACV,CACF,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA2B;IACpD,OAAO,CACL,cAAK,SAAS,EAAC,qEAAqE,YAClF,KAAC,WAAW,IAEV,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,OAAO,IAFZ,aAAa,CAGjB,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,qBAAqB,GAAmB,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAClF,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAA+B,GAAG,CAAmB,CAAC,KAAK,EAAE,EAAE;IACrF,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAErF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEnF,MAAM,OAAO,GAAuB;QAClC,GAAG,EAAE,EAAE;QACP,cAAc;QACd,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,cAAc,IAAI,qBAAqB;QACvD,OAAO;KACR,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhE,OAAO,CACL,mBACE,SAAS,EAAE,YAAY,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,gBACpD,YAAY,aAEvB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CACnB,cAAK,SAAS,EAAC,wCAAwC,YAAE,SAAS,CAAC,MAAM,GAAO,CACjF,CAAC,CAAC,CAAC,IAAI,EAEP,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,mCAAmC,YAC/C,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAChD,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IACxC,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;AAC/B,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErC,SAAS,iBAAiB,CAAC,OAA2B;IACpD,OAAO,CACL,cAAK,SAAS,EAAC,qEAAqE,YAClF,KAAC,WAAW,IAEV,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,OAAO,IAFZ,aAAa,CAGjB,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
2
+ export declare const mapSlot: (mapper: (blocks?: BlockDef[]) => BlockDef[]) => <S extends Slot>(slot: S) => S;
@@ -0,0 +1,11 @@
1
+ export const mapSlot = (mapper) => (slot) => ({
2
+ ...slot,
3
+ blocks: mapper(slot.blocks),
4
+ slots: slot.slots
5
+ ? Object.entries(slot.slots).reduce((res, [slotKey, slotBlocks]) => ({
6
+ ...res,
7
+ [slotKey]: mapper(slotBlocks),
8
+ }), {})
9
+ : {},
10
+ });
11
+ //# sourceMappingURL=mapSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapSlot.js","sourceRoot":"","sources":["../../../src/components/ContentPage/mapSlot.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAClB,CAAC,MAA2C,EAAE,EAAE,CAChD,CAAiB,IAAO,EAAK,EAAE,CAAC,CAAC;IAC/B,GAAG,IAAI;IACP,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACf,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,GAAG;YACN,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;SAC9B,CAAC,EACF,EAAE,CACH;QACH,CAAC,CAAC,EAAE;CACP,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- import { BlockDef } from '../../model/ContentPageDef';
2
- export declare function normalizeBlock(block: BlockDef): BlockDef;
1
+ import type { BlocksRegistry } from '../../model/BlocksRegistry';
2
+ import type { Slot } from '../../model/ContentPageDef';
3
+ export declare function normalizeBlock<S extends Slot>(block?: S, blocksRegistry?: BlocksRegistry): S;
@@ -1,5 +1,20 @@
1
- export function normalizeBlock(block) {
2
- const { mobile, ...rest } = block;
3
- return mobile ? { ...rest, ...mobile, content: { ...rest.content, ...mobile.content } } : block;
1
+ import { mapSlot } from './mapSlot.js';
2
+ export function normalizeBlock(block, blocksRegistry) {
3
+ const { mobile, ...rest } = (block || {});
4
+ const normalizedBlock = mobile
5
+ ? { ...rest, ...mobile, content: { ...rest.content, ...mobile.content } }
6
+ : block;
7
+ return {
8
+ ...mapSlot((blocks) => filterBlocks(blocks, blocksRegistry))(normalizedBlock || {}),
9
+ };
4
10
  }
11
+ const filterBlocks = (blocks, blocksRegistry) => blocks
12
+ ? blocks
13
+ ?.filter((block) => blocksRegistry &&
14
+ (block?.type || block?.mobile?.type || '') in blocksRegistry &&
15
+ !block.mobile?.hidden)
16
+ .map((block) => ({
17
+ ...normalizeBlock(block, blocksRegistry),
18
+ }))
19
+ : [];
5
20
  //# sourceMappingURL=normalizeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeBlock.js","sourceRoot":"","sources":["../../../src/components/ContentPage/normalizeBlock.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAElC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"normalizeBlock.js","sourceRoot":"","sources":["../../../src/components/ContentPage/normalizeBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,cAAc,CAAiB,KAAS,EAAE,cAA+B;IACvF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAa,CAAC;IAEtD,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE;QACzE,CAAC,CAAC,KAAK,CAAC;IAEV,OAAO;QACL,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;KAC/E,CAAC;AACT,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,cAA+B,EAAE,EAAE,CAC5E,MAAM;IACJ,CAAC,CAAC,MAAM;QACJ,EAAE,MAAM,CACN,CAAC,KAAK,EAAE,EAAE,CACR,cAAc;QACd,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,cAAc;QAC5D,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CACxB;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC;KACzC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC"}
@@ -1,20 +1,8 @@
1
- import { filterBlocks } from './filterBlocks.js';
1
+ import { normalizeBlock } from './normalizeBlock.js';
2
2
  export const normalizePage = (blocksRegistry) => (contentPage) => {
3
3
  if (!contentPage) {
4
4
  return undefined;
5
5
  }
6
- const { blocks = [], slots } = contentPage;
7
- return {
8
- ...contentPage,
9
- blocks: filterBlocks(blocks, blocksRegistry),
10
- slots: slots &&
11
- Object.keys(slots).reduce((res, key) => ({
12
- ...res,
13
- [key]: {
14
- ...slots[key],
15
- blocks: filterBlocks(slots[key].blocks || [], blocksRegistry),
16
- },
17
- }), {}),
18
- };
6
+ return normalizeBlock(contentPage, blocksRegistry);
19
7
  };
20
8
  //# sourceMappingURL=normalizePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizePage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/normalizePage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,cAA8B,EAAE,EAAE,CACnC,CAAC,WAA8C,EAA8B,EAAE;IAC7E,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAE3C,OAAO;QACL,GAAG,WAAW;QACd,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC;QAC5C,KAAK,EACH,KAAK;YACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,GAAG,GAAG;gBACN,CAAC,GAAG,CAAC,EAAE;oBACL,GAAG,KAAK,CAAC,GAAG,CAAC;oBACb,MAAM,EAAE,YAAY,CAAE,KAAK,CAAC,GAAG,CAAU,CAAC,MAAM,IAAI,EAAE,EAAE,cAAc,CAAC;iBACxE;aACF,CAAC,EACF,EAAE,CACH;KACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"normalizePage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/normalizePage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,cAA8B,EAAE,EAAE,CACnC,CAAC,WAA8C,EAA8B,EAAE;IAC7E,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -2,12 +2,16 @@ import { BlockAncestors, BlockDecorator } from '../../model/BlockDecorator';
2
2
  import type { BlocksRegistry } from '../../model/BlocksRegistry';
3
3
  import type { BlockDef, ContentPageDef } from '../../model/ContentPageDef';
4
4
  import type { ContentPageContext } from './ContentPageContext';
5
- interface RenderBlockOptions {
5
+ export interface RenderBlockOptions {
6
6
  key: string;
7
7
  page: ContentPageDef;
8
8
  blockDecorator: BlockDecorator;
9
9
  blocksRegistry: BlocksRegistry;
10
10
  context: ContentPageContext;
11
11
  }
12
- export declare function renderBlock(block: BlockDef, options: RenderBlockOptions, ancestors?: BlockAncestors): any;
13
- export {};
12
+ export interface RenderBlockProps {
13
+ block?: BlockDef;
14
+ options: RenderBlockOptions;
15
+ ancestors?: BlockAncestors;
16
+ }
17
+ export declare function renderBlock({ block, options, ancestors }: RenderBlockProps): any;
@@ -1,17 +1,17 @@
1
1
  import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
- import { DEFAULT_ANCESTORS } from '../../model/BlockDecorator.js';
3
2
  import { style2className } from '../../utils/style2className.js';
4
- const defaultChildRenderer = (_) => _;
5
- export function renderBlock(block, options, ancestors = DEFAULT_ANCESTORS) {
6
- const { key, page, blockDecorator, blocksRegistry, context } = options;
7
- const { type, blocks: childBlocks } = block;
3
+ import { renderBlocksList } from './renderBlockList.js';
4
+ import { renderSlots } from './renderSlots.js';
5
+ export function renderBlock({ block = {}, options, ancestors = [] }) {
6
+ const { key, page, blockDecorator, blocksRegistry = {}, context } = options;
7
+ const { type, slots, blocks: childBlocks } = block;
8
8
  if (!(type && type in blocksRegistry)) {
9
9
  console.warn(`No block with "${type}" is registered`);
10
10
  }
11
11
  const BlockComponent = type && blocksRegistry[type];
12
- const { renderChild = defaultChildRenderer } = BlockComponent || {};
13
- const renderChildBlock = (_, j) => renderChild(renderBlock(_, { ...options, key: `${options.key}-${j}` }, [...ancestors, block]), j);
14
- const children = childBlocks?.length ? childBlocks.map(renderChildBlock) : null;
12
+ const subBlockRenderProps = { parent: block, options, ancestors };
13
+ const children = renderBlocksList({ ...subBlockRenderProps, blocks: childBlocks });
14
+ const blockSlots = slots ? renderSlots({ ...subBlockRenderProps, slots }) : {};
15
15
  return blockDecorator({
16
16
  blockClassName: `scroll-mt-12 ${style2className(block.style)}`,
17
17
  block,
@@ -19,7 +19,7 @@ export function renderBlock(block, options, ancestors = DEFAULT_ANCESTORS) {
19
19
  // Adjusted by decorator block and blockClassName
20
20
  render: ({ block: adjustedBlock, blockClassName: adjustedBlockClassName }) => {
21
21
  const { version, anchor, labels, content } = adjustedBlock;
22
- return BlockComponent ? (_jsx(BlockComponent, { className: adjustedBlockClassName, context: context, page: page, ancestors: ancestors, version: version, anchor: anchor, labels: labels, ...content, children: children }, key)) : null;
22
+ return BlockComponent ? (_jsx(BlockComponent, { className: adjustedBlockClassName, context: context, page: page, ancestors: ancestors, version: version, anchor: anchor, labels: labels, slots: blockSlots, ...content, children: children }, key)) : null;
23
23
  },
24
24
  }, key);
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renderBlock.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkC,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAI/F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAW9D,MAAM,oBAAoB,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE7C,MAAM,UAAU,WAAW,CACzB,KAAe,EACf,OAA2B,EAC3B,YAA4B,iBAAiB;IAE7C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE5C,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,cAAc,CAAC,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,CAAC;KACvD;IAED,MAAM,cAAc,GAAG,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,EAAE,WAAW,GAAG,oBAAoB,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IACpE,MAAM,gBAAgB,GAAG,CAAC,CAAW,EAAE,CAAS,EAAE,EAAE,CAClD,WAAW,CACT,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,EACjF,CAAC,CACF,CAAC;IACJ,MAAM,QAAQ,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhF,OAAO,cAAc,CACnB;QACE,cAAc,EAAE,gBAAgB,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC9D,KAAK;QACL,SAAS;QACT,iDAAiD;QACjD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,EAAE;YAC3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;YAE3D,OAAO,cAAc,CAAC,CAAC,CAAC,CACtB,KAAC,cAAc,IAEb,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KACV,OAAO,YAEV,QAAQ,IAVJ,GAAG,CAWO,CAClB,CAAC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;KACF,EACD,GAAG,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"renderBlock.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderBlock.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAoB;IACnF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEnD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,cAAc,CAAC,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,CAAC;KACvD;IAED,MAAM,cAAc,GAAG,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,mBAAmB,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,GAAG,mBAAmB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,OAAO,cAAc,CACnB;QACE,cAAc,EAAE,gBAAgB,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC9D,KAAK;QACL,SAAS;QACT,iDAAiD;QACjD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,EAAE;YAC3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;YAE3D,OAAO,cAAc,CAAC,CAAC,CAAC,CACtB,KAAC,cAAc,IAEb,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,KACb,OAAO,YAEV,QAAQ,IAXJ,GAAG,CAYO,CAClB,CAAC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;KACF,EACD,GAAG,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { SlotName } from '../../model/BlockDecorator';
2
+ import { BlockAncestors } from '../../model/BlockDecorator';
3
+ import type { BlockDef, Slot } from '../../model/ContentPageDef';
4
+ import type { VNode } from '../../model/VNode';
5
+ import { RenderBlockOptions } from './renderBlock';
6
+ interface RenderBlockListProps {
7
+ blocks?: BlockDef[];
8
+ parent: Slot;
9
+ slotName?: SlotName;
10
+ options: RenderBlockOptions;
11
+ ancestors?: BlockAncestors;
12
+ }
13
+ export declare function renderBlocksList({ blocks, parent, slotName, options, ancestors, }: RenderBlockListProps): Record<string, VNode>;
14
+ export {};
@@ -0,0 +1,15 @@
1
+ import { DEFAULT_SLOT_NAME } from '../../model/BlockDecorator.js';
2
+ import { renderBlock } from './renderBlock.js';
3
+ const defaultChildRenderer = (_) => _;
4
+ export function renderBlocksList({ blocks = [], parent, slotName = DEFAULT_SLOT_NAME, options, ancestors = [], }) {
5
+ const { blocksRegistry = {} } = options;
6
+ const { type } = parent;
7
+ const BlockComponent = type && blocksRegistry[type];
8
+ const { renderChild = defaultChildRenderer } = BlockComponent || {};
9
+ return blocks.map((_, j) => renderChild(renderBlock({
10
+ block: _,
11
+ options: { ...options, key: `${options.key ? options.key : _.type}-${j}` },
12
+ ancestors: [...ancestors, [parent, slotName]],
13
+ }), j));
14
+ }
15
+ //# sourceMappingURL=renderBlockList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderBlockList.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderBlockList.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/E,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAC;AAUhE,MAAM,oBAAoB,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE7C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,GAAG,EAAE,EACX,MAAM,EACN,QAAQ,GAAG,iBAAiB,EAC5B,OAAO,EACP,SAAS,GAAG,EAAE,GACO;IACrB,MAAM,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAkB,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,WAAW,GAAG,oBAAoB,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IAEpE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAW,EAAE,CAAS,EAAE,EAAE,CAC3C,WAAW,CACT,WAAW,CAAC;QACV,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;QAC1E,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KAC9C,CAAC,EACF,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
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
+ interface RenderSlotsProps {
6
+ slots?: Record<string, BlockDef[]>;
7
+ parent: Slot;
8
+ options: RenderBlockOptions;
9
+ ancestors?: BlockAncestors;
10
+ }
11
+ export declare function renderSlots({ slots, parent, options, ancestors, }: RenderSlotsProps): Record<string, VNode>;
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { renderBlocksList } from './renderBlockList.js';
2
+ export function renderSlots({ slots = {}, parent, options, ancestors = [], }) {
3
+ return Object.entries(slots).reduce((res, [slotName, slotBlocks]) => ({
4
+ ...res,
5
+ [slotName]: renderBlocksList({
6
+ blocks: slotBlocks,
7
+ parent,
8
+ slotName,
9
+ options,
10
+ ancestors,
11
+ }),
12
+ }), {});
13
+ }
14
+ //# sourceMappingURL=renderSlots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderSlots.js","sourceRoot":"","sources":["../../../src/components/ContentPage/renderSlots.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AASrD,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,GAAG,EAAE,EACV,MAAM,EACN,OAAO,EACP,SAAS,GAAG,EAAE,GACG;IACjB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,GAAG;QACN,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;YAC3B,MAAM,EAAE,UAAU;YAClB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,SAAS;SACV,CAAC;KACH,CAAC,EACF,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -1,7 +1,8 @@
1
- import type { BlockDef, Slot, SlotsMap } from './ContentPageDef';
1
+ import type { BlockDef, Slot } from './ContentPageDef';
2
2
  export declare const DEFAULT_SLOT_NAME: null;
3
- export declare type BlockAncestors = [keyof SlotsMap | typeof DEFAULT_SLOT_NAME, ...Slot[]];
4
- export declare const DEFAULT_ANCESTORS: BlockAncestors;
3
+ export declare type SlotName = string | typeof DEFAULT_SLOT_NAME;
4
+ export declare type BlockAncestorItem = [Slot, SlotName];
5
+ export declare type BlockAncestors = BlockAncestorItem[];
5
6
  interface BlockDecoratorProps<VNode> {
6
7
  blockClassName: string;
7
8
  block: BlockDef;
@@ -1,3 +1,2 @@
1
1
  export const DEFAULT_SLOT_NAME = null;
2
- export const DEFAULT_ANCESTORS = [DEFAULT_SLOT_NAME];
3
2
  //# sourceMappingURL=BlockDecorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockDecorator.js","sourceRoot":"","sources":["../../src/model/BlockDecorator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAItC,MAAM,CAAC,MAAM,iBAAiB,GAAmB,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"BlockDecorator.js","sourceRoot":"","sources":["../../src/model/BlockDecorator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import type { JSXBlock } from './JSXBlock';
2
- export declare type BlocksRegistry<BlockProps = Record<string, any>> = Record<string, JSXBlock<BlockProps>>;
2
+ export declare type BlocksRegistry = Record<string, JSXBlock<any>>;
@@ -18,9 +18,7 @@ export interface BlockDef extends BaseBlockDef {
18
18
  export interface Slot {
19
19
  style?: string[];
20
20
  blocks?: BlockDef[];
21
- }
22
- export interface SlotsMap {
23
- header?: Slot;
21
+ slots?: Record<string, BlockDef[]>;
24
22
  }
25
23
  export interface ContentPageMeta {
26
24
  title?: string;
@@ -37,7 +35,6 @@ export interface ContentPageMeta {
37
35
  }
38
36
  export interface ContentPageDef extends ContentPageMeta, Slot {
39
37
  _customPageType?: string;
40
- slots?: SlotsMap;
41
38
  fallback?: Record<string, unknown>;
42
39
  likeControl?: boolean;
43
40
  colorPalette?: ColorPalette;
@@ -1,6 +1,6 @@
1
1
  import type { UNIComponent } from '@redneckz/uni-jsx';
2
2
  import type { ContentPageContext } from '../components/ContentPage/ContentPageContext';
3
- import type { BlockAncestors } from './BlockDecorator';
3
+ import type { BlockAncestors, SlotName } from './BlockDecorator';
4
4
  import type { ContentPageDef } from './ContentPageDef';
5
5
  import type { VNode } from './VNode';
6
6
  export interface UniBlockProps {
@@ -10,8 +10,10 @@ export interface UniBlockProps {
10
10
  ancestors?: BlockAncestors;
11
11
  labels?: string[];
12
12
  anchor?: string;
13
+ slots?: Record<string, VNode>;
13
14
  }
14
15
  export declare type JSXBlock<BlockProps = Record<string, any>> = UNIComponent<BlockProps & UniBlockProps, any, VNode | VNode[]> & {
15
16
  childrenTypes?: string[];
17
+ slots?: (props: BlockProps) => SlotName[];
16
18
  renderChild?: (child: VNode, i: number) => VNode;
17
19
  };
@@ -1,5 +1,8 @@
1
1
  export function getParentBlockDef(ancestors, type) {
2
- const [, ...blocks] = ancestors || [];
3
- return blocks.reverse().find((_) => !type || type === _?.type) || {};
2
+ const [block] = (ancestors || [])
3
+ .map((item) => item)
4
+ .reverse()
5
+ .find(([_]) => _ && 'type' in _ && (!type || type === _.type)) || [];
6
+ return block || {};
4
7
  }
5
8
  //# sourceMappingURL=getParentBlockDef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParentBlockDef.js","sourceRoot":"","sources":["../../src/model/getParentBlockDef.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,SAAqC,EAAE,IAAa;IACpF,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC;IAEtC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAM,CAAc,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"getParentBlockDef.js","sourceRoot":"","sources":["../../src/model/getParentBlockDef.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,SAAqC,EAAE,IAAa;IACpF,MAAM,CAAC,KAAK,CAAC,GACX,CAAC,SAAS,IAAI,EAAE,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;SACnB,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,KAAM,CAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvF,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC"}
@@ -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,
@@ -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,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}