@redneckz/wildless-cms-uni-blocks 0.14.57 → 0.14.59

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 (142) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +494 -479
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/AdTile/AdTile.d.ts +6 -0
  5. package/bundle/components/AdTile/AdTileContent.d.ts +5 -0
  6. package/bundle/components/AdTile/useAdTile.d.ts +2 -0
  7. package/bundle/components/ComparisonTable/TableCell.d.ts +1 -1
  8. package/bundle/components/ComparisonTable/TableCell.mobile.d.ts +1 -1
  9. package/bundle/components/ComparisonTable/TableColumn.d.ts +1 -1
  10. package/bundle/model/ContentPageDef.d.ts +1 -0
  11. package/bundle/utils/isOdd.d.ts +1 -0
  12. package/dist/components/AdTile/AdTile.d.ts +6 -0
  13. package/dist/components/AdTile/AdTile.js +12 -0
  14. package/dist/components/AdTile/AdTile.js.map +1 -0
  15. package/dist/components/AdTile/AdTileContent.d.ts +5 -0
  16. package/dist/components/AdTile/AdTileContent.js +2 -0
  17. package/dist/components/AdTile/AdTileContent.js.map +1 -0
  18. package/dist/components/AdTile/useAdTile.d.ts +2 -0
  19. package/dist/components/AdTile/useAdTile.js +12 -0
  20. package/dist/components/AdTile/useAdTile.js.map +1 -0
  21. package/dist/components/Blocks.js +4 -2
  22. package/dist/components/Blocks.js.map +1 -1
  23. package/dist/components/Blocks.mobile.js +2 -0
  24. package/dist/components/Blocks.mobile.js.map +1 -1
  25. package/dist/components/ComparisonTable/TableCell.d.ts +1 -1
  26. package/dist/components/ComparisonTable/TableCell.js +1 -1
  27. package/dist/components/ComparisonTable/TableCell.js.map +1 -1
  28. package/dist/components/ComparisonTable/TableCell.mobile.d.ts +1 -1
  29. package/dist/components/ComparisonTable/TableCell.mobile.js +1 -1
  30. package/dist/components/ComparisonTable/TableCell.mobile.js.map +1 -1
  31. package/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  32. package/dist/model/ContentPageDef.d.ts +1 -0
  33. package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +4 -2
  34. package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  35. package/dist/utils/isOdd.d.ts +1 -0
  36. package/dist/utils/isOdd.js +5 -0
  37. package/dist/utils/isOdd.js.map +1 -0
  38. package/lib/components/AdTile/AdTile.d.ts +6 -0
  39. package/lib/components/AdTile/AdTile.fixture.d.ts +6 -0
  40. package/lib/components/AdTile/AdTile.js +10 -0
  41. package/lib/components/AdTile/AdTile.js.map +1 -0
  42. package/lib/components/AdTile/AdTileContent.d.ts +5 -0
  43. package/lib/components/AdTile/AdTileContent.js +2 -0
  44. package/lib/components/AdTile/AdTileContent.js.map +1 -0
  45. package/lib/components/AdTile/useAdTile.d.ts +2 -0
  46. package/lib/components/AdTile/useAdTile.js +9 -0
  47. package/lib/components/AdTile/useAdTile.js.map +1 -0
  48. package/lib/components/Blocks.js +4 -2
  49. package/lib/components/Blocks.js.map +1 -1
  50. package/lib/components/Blocks.mobile.js +2 -0
  51. package/lib/components/Blocks.mobile.js.map +1 -1
  52. package/lib/components/ComparisonTable/TableCell.d.ts +1 -1
  53. package/lib/components/ComparisonTable/TableCell.js +1 -1
  54. package/lib/components/ComparisonTable/TableCell.js.map +1 -1
  55. package/lib/components/ComparisonTable/TableCell.mobile.d.ts +1 -1
  56. package/lib/components/ComparisonTable/TableCell.mobile.js +1 -1
  57. package/lib/components/ComparisonTable/TableCell.mobile.js.map +1 -1
  58. package/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  59. package/lib/model/ContentPageDef.d.ts +1 -0
  60. package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +4 -2
  61. package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  62. package/lib/utils/isOdd.d.ts +1 -0
  63. package/lib/utils/isOdd.js +2 -0
  64. package/lib/utils/isOdd.js.map +1 -0
  65. package/mobile/bundle/bundle.umd.js +451 -436
  66. package/mobile/bundle/bundle.umd.min.js +1 -1
  67. package/mobile/bundle/components/AdTile/AdTile.d.ts +6 -0
  68. package/mobile/bundle/components/AdTile/AdTileContent.d.ts +5 -0
  69. package/mobile/bundle/components/AdTile/useAdTile.d.ts +2 -0
  70. package/mobile/bundle/components/ComparisonTable/TableCell.d.ts +1 -1
  71. package/mobile/bundle/components/ComparisonTable/TableColumn.d.ts +1 -1
  72. package/mobile/bundle/model/ContentPageDef.d.ts +1 -0
  73. package/mobile/bundle/utils/isOdd.d.ts +1 -0
  74. package/mobile/dist/components/AdTile/AdTile.d.ts +6 -0
  75. package/mobile/dist/components/AdTile/AdTile.js +12 -0
  76. package/mobile/dist/components/AdTile/AdTile.js.map +1 -0
  77. package/mobile/dist/components/AdTile/AdTileContent.d.ts +5 -0
  78. package/mobile/dist/components/AdTile/AdTileContent.js +2 -0
  79. package/mobile/dist/components/AdTile/AdTileContent.js.map +1 -0
  80. package/mobile/dist/components/AdTile/useAdTile.d.ts +2 -0
  81. package/mobile/dist/components/AdTile/useAdTile.js +12 -0
  82. package/mobile/dist/components/AdTile/useAdTile.js.map +1 -0
  83. package/mobile/dist/components/Blocks.js +2 -0
  84. package/mobile/dist/components/Blocks.js.map +1 -1
  85. package/mobile/dist/components/ComparisonTable/TableCell.d.ts +1 -1
  86. package/mobile/dist/components/ComparisonTable/TableCell.js +1 -1
  87. package/mobile/dist/components/ComparisonTable/TableCell.js.map +1 -1
  88. package/mobile/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  89. package/mobile/dist/model/ContentPageDef.d.ts +1 -0
  90. package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +4 -2
  91. package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  92. package/mobile/dist/utils/isOdd.d.ts +1 -0
  93. package/mobile/dist/utils/isOdd.js +5 -0
  94. package/mobile/dist/utils/isOdd.js.map +1 -0
  95. package/mobile/lib/common.css +1 -1
  96. package/mobile/lib/components/AdTile/AdTile.d.ts +6 -0
  97. package/mobile/lib/components/AdTile/AdTile.js +10 -0
  98. package/mobile/lib/components/AdTile/AdTile.js.map +1 -0
  99. package/mobile/lib/components/AdTile/AdTileContent.d.ts +5 -0
  100. package/mobile/lib/components/AdTile/AdTileContent.js +2 -0
  101. package/mobile/lib/components/AdTile/AdTileContent.js.map +1 -0
  102. package/mobile/lib/components/AdTile/useAdTile.d.ts +2 -0
  103. package/mobile/lib/components/AdTile/useAdTile.js +9 -0
  104. package/mobile/lib/components/AdTile/useAdTile.js.map +1 -0
  105. package/mobile/lib/components/Blocks.js +2 -0
  106. package/mobile/lib/components/Blocks.js.map +1 -1
  107. package/mobile/lib/components/ComparisonTable/TableCell.d.ts +1 -1
  108. package/mobile/lib/components/ComparisonTable/TableCell.js +1 -1
  109. package/mobile/lib/components/ComparisonTable/TableCell.js.map +1 -1
  110. package/mobile/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  111. package/mobile/lib/model/ContentPageDef.d.ts +1 -0
  112. package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +4 -2
  113. package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  114. package/mobile/lib/utils/isOdd.d.ts +1 -0
  115. package/mobile/lib/utils/isOdd.js +2 -0
  116. package/mobile/lib/utils/isOdd.js.map +1 -0
  117. package/mobile/src/components/AdTile/AdTile.example.json +1 -0
  118. package/mobile/src/components/AdTile/AdTile.tsx +18 -0
  119. package/mobile/src/components/AdTile/AdTile.ui.json +1 -0
  120. package/mobile/src/components/AdTile/AdTileContent.ts +6 -0
  121. package/mobile/src/components/AdTile/useAdTile.ts +17 -0
  122. package/mobile/src/components/Blocks.ts +3 -0
  123. package/mobile/src/components/ComparisonTable/TableCell.tsx +2 -2
  124. package/mobile/src/components/ComparisonTable/TableColumn.tsx +1 -1
  125. package/mobile/src/model/ContentPageDef.ts +1 -0
  126. package/mobile/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +4 -0
  127. package/mobile/src/utils/isOdd.ts +1 -0
  128. package/package.json +1 -1
  129. package/src/components/AdTile/AdTile.example.json +1 -0
  130. package/src/components/AdTile/AdTile.fixture.tsx +11 -0
  131. package/src/components/AdTile/AdTile.tsx +18 -0
  132. package/src/components/AdTile/AdTile.ui.json +1 -0
  133. package/src/components/AdTile/AdTileContent.ts +6 -0
  134. package/src/components/AdTile/useAdTile.ts +17 -0
  135. package/src/components/Blocks.mobile.ts +3 -0
  136. package/src/components/Blocks.ts +5 -2
  137. package/src/components/ComparisonTable/TableCell.mobile.tsx +2 -2
  138. package/src/components/ComparisonTable/TableCell.tsx +2 -2
  139. package/src/components/ComparisonTable/TableColumn.tsx +1 -1
  140. package/src/model/ContentPageDef.ts +1 -0
  141. package/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +4 -0
  142. package/src/utils/isOdd.ts +1 -0
@@ -1,6 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { renderBlocksList } from '../../BlockRenderer/renderBlockList.js';
4
+ import { AdTile } from '../../components/AdTile/AdTile.js';
5
+ import { isOdd } from '../../utils/isOdd.js';
4
6
  import { style } from '../../utils/style.js';
5
7
  import { DefaultFoldButton } from '../Foldable/DefaultFoldButton.js';
6
8
  import { Foldable } from '../Foldable/Foldable.js';
@@ -12,8 +14,8 @@ export const BaseFiltrationInner = JSX(({ label = '', blocksToRender = [], topIt
12
14
  const [visibleBlocks, hiddenBlocks] = topItemsCount > 0
13
15
  ? [blocksToRender.slice(0, topItemsCount), blocksToRender.slice(topItemsCount)]
14
16
  : [blocksToRender, []];
15
- return (_jsxs("div", { children: [_jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? _jsx(NotFound, { ...notFound }) : null }), _jsxs("div", { className: style('space-y-2xs', blocksToRender.length ? '' : 'hidden'), children: [_jsx("div", { className: style(resultsGridStyle), children: renderBlocksList(visibleBlocks, { ...rest.options, parent: block }) }), _jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => {
16
- return (_jsx(FoldableSection, { className: style(resultsGridStyle), isUnfolded: isUnfolded, children: renderBlocksList(hiddenBlocks, { ...rest.options, parent: block }) }));
17
+ return (_jsxs("div", { children: [_jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? _jsx(NotFound, { ...notFound }) : null }), _jsxs("div", { className: style('space-y-2xs', blocksToRender.length ? '' : 'hidden'), children: [_jsxs("div", { className: style(resultsGridStyle), children: [renderBlocksList(visibleBlocks, { ...rest.options, parent: block }), isOdd(visibleBlocks.length) ? _jsx(AdTile, { className: "col-span-6" }) : null] }), _jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => {
18
+ return (_jsxs(FoldableSection, { className: style(resultsGridStyle), isUnfolded: isUnfolded, children: [renderBlocksList(hiddenBlocks, { ...rest.options, parent: block }), isOdd(hiddenBlocks.length) ? _jsx(AdTile, { className: "col-span-6" }) : null] }));
17
19
  }, renderFoldButton: ({ isUnfolded, onToggle }) => (_jsx(DefaultFoldButton, { className: style(topItemsCount < 1 ? 'hidden' : ''), disabled: !hiddenBlocks?.length, label: label, icon: ICONS[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette, onClick: onToggle })) })] })] }));
18
20
  });
19
21
  //# sourceMappingURL=BaseFiltrationInner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFiltrationInner.js","sourceRoot":"","sources":["../../../src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAIvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,gBAAgB,GAAG,oEAAoE,CAAC;AAM9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACnF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GACjC,aAAa,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE3B,OAAO,CACL,0BACE,cAAK,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAC9D,QAAQ,CAAC,CAAC,CAAC,KAAC,QAAQ,OAAK,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GACzC,EACN,eAAK,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aACzE,cAAK,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,YACpC,gBAAgB,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAChE,EACN,KAAC,QAAQ,IACP,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;4BACxC,OAAO,CACL,KAAC,eAAe,IAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,UAAU,YACxE,gBAAgB,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GACnD,CACnB,CAAC;wBACJ,CAAC,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,KAAC,iBAAiB,IAChB,SAAS,EAAE,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EACnD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAC3C,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,IACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"BaseFiltrationInner.js","sourceRoot":"","sources":["../../../src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAIxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,gBAAgB,GAAG,oEAAoE,CAAC;AAM9F,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACnF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GACjC,aAAa,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE3B,OAAO,CACL,0BACE,cAAK,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAC9D,QAAQ,CAAC,CAAC,CAAC,KAAC,QAAQ,OAAK,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,GACzC,EACN,eAAK,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aACzE,eAAK,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,aACpC,gBAAgB,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EACnE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,IACnE,EACN,KAAC,QAAQ,IACP,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;4BACxC,OAAO,CACL,MAAC,eAAe,IAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,UAAU,aACxE,gBAAgB,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAClE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,EAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,IACtD,CACnB,CAAC;wBACJ,CAAC,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,KAAC,iBAAiB,IAChB,SAAS,EAAE,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EACnD,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAC3C,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,IACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isOdd: (n: number) => boolean;
@@ -0,0 +1,2 @@
1
+ export const isOdd = (n) => n % 2 !== 0;
2
+ //# sourceMappingURL=isOdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOdd.js","sourceRoot":"","sources":["../../src/utils/isOdd.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { type UniBlockProps } from '../../model/JSXBlock';
3
+ import { ClientOnly } from '../../ui-kit/ClientOnly';
4
+ import { ProductBlock } from '../ProductBlock/ProductBlock';
5
+ import { type AdTileContent } from './AdTileContent';
6
+ import { useAdTile } from './useAdTile';
7
+
8
+ interface AdTileProps extends AdTileContent, UniBlockProps {}
9
+
10
+ export const AdTile = JSX<AdTileProps>((props) => {
11
+ const content = useAdTile(props.options?.page?.adSourceBook);
12
+
13
+ return content ? (
14
+ <ClientOnly>
15
+ <ProductBlock {...content} {...props} />
16
+ </ClientOnly>
17
+ ) : null;
18
+ });
@@ -0,0 +1,6 @@
1
+ import { type UniBlockContent } from '../../model/JSXBlock';
2
+
3
+ /**
4
+ * @title Рекламная плитка
5
+ */
6
+ export type AdTileContent = UniBlockContent;
@@ -0,0 +1,17 @@
1
+ import { useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useSWRResource } from '../../hooks/useSWRResource';
3
+ import { type ProductBlockContent } from '../ProductBlock/ProductBlockContent';
4
+
5
+ interface AdvertisingTileSourceBook {
6
+ items?: ProductBlockContent[];
7
+ }
8
+
9
+ export const useAdTile = (sourceBook = 'reklamnaya-plitka'): ProductBlockContent | undefined => {
10
+ const data = useSWRResource<AdvertisingTileSourceBook>(sourceBook);
11
+
12
+ const tileIndex = useMemo(() => randomNumInRange(0, data?.items?.length), [data]);
13
+
14
+ return data?.items?.[tileIndex];
15
+ };
16
+
17
+ const randomNumInRange = (min = 0, max = 0) => Math.floor(Math.random() * (max - min) + min);
@@ -1,4 +1,6 @@
1
1
  import { type BlocksRegistry } from '../model/BlocksRegistry';
2
+
3
+ import { AdTile } from './AdTile/AdTile';
2
4
  import { ApplicationForm } from './ApplicationForm/ApplicationForm';
3
5
  import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
4
6
  import { Bonus } from './Bonus/Bonus';
@@ -41,6 +43,7 @@ import { TextBlock } from './TextBlock/TextBlock';
41
43
  import { VerticalLayout } from './VerticalLayout/VerticalLayout';
42
44
 
43
45
  export const Blocks: BlocksRegistry = {
46
+ AdTile,
44
47
  ApplicationForm,
45
48
  BenefitsBlock,
46
49
  Bonus,
@@ -4,7 +4,7 @@ import { type CellData } from './ComparisonTableContent';
4
4
  import { dividerStyle } from './constants';
5
5
 
6
6
  export interface TableCellProps {
7
- cell: CellData[];
7
+ cell?: CellData[];
8
8
  rowHeader?: string;
9
9
  isLastRow?: boolean;
10
10
  isFirstRow?: boolean;
@@ -16,7 +16,7 @@ const cellWrapperStyle = `box-border flex flex-col`;
16
16
  export const TableCell = JSX<TableCellProps>(({ cell, rowHeader, isFillGradient = false }) => (
17
17
  <div className={cellWrapperStyle} role="cell">
18
18
  <div className={style('h-full', dividerStyle)}>
19
- {cell.map(renderCellInner(isFillGradient, rowHeader))}
19
+ {cell ? cell.map(renderCellInner(isFillGradient, rowHeader)) : null}
20
20
  </div>
21
21
  </div>
22
22
  ));
@@ -10,7 +10,7 @@ import { TableCell } from './TableCell';
10
10
 
11
11
  export interface TableColumnData {
12
12
  rowHeader?: string;
13
- cell: CellData[];
13
+ cell?: CellData[];
14
14
  }
15
15
 
16
16
  export interface TableColumnProps extends UniBlockProps {
@@ -41,4 +41,5 @@ export interface ContentPageDef extends ContentPageMeta, Slot {
41
41
  fallback?: Record<string, unknown>;
42
42
  likeControl?: boolean;
43
43
  colorPalette?: ColorPalette;
44
+ adSourceBook?: string;
44
45
  }
@@ -1,8 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { renderBlocksList } from '../../BlockRenderer/renderBlockList';
3
+ import { AdTile } from '../../components/AdTile/AdTile';
3
4
  import { type IconName } from '../../icons/IconName';
4
5
  import { type BlockDef } from '../../model/ContentPageDef';
5
6
  import { type UniBlockProps } from '../../model/JSXBlock';
7
+ import { isOdd } from '../../utils/isOdd';
6
8
  import { style } from '../../utils/style';
7
9
  import { DefaultFoldButton } from '../Foldable/DefaultFoldButton';
8
10
  import { Foldable } from '../Foldable/Foldable';
@@ -33,12 +35,14 @@ export const BaseFiltrationInner = JSX<BaseFiltrationInnerProps>(
33
35
  <div className={style('space-y-2xs', blocksToRender.length ? '' : 'hidden')}>
34
36
  <div className={style(resultsGridStyle)}>
35
37
  {renderBlocksList(visibleBlocks, { ...rest.options, parent: block })}
38
+ {isOdd(visibleBlocks.length) ? <AdTile className="col-span-6" /> : null}
36
39
  </div>
37
40
  <Foldable
38
41
  renderFoldableSection={({ isUnfolded }) => {
39
42
  return (
40
43
  <FoldableSection className={style(resultsGridStyle)} isUnfolded={isUnfolded}>
41
44
  {renderBlocksList(hiddenBlocks, { ...rest.options, parent: block })}
45
+ {isOdd(hiddenBlocks.length) ? <AdTile className="col-span-6" /> : null}
42
46
  </FoldableSection>
43
47
  );
44
48
  }}
@@ -0,0 +1 @@
1
+ export const isOdd = (n: number) => n % 2 !== 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.57",
3
+ "version": "0.14.59",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -0,0 +1,11 @@
1
+ import '../../setup-fixture';
2
+
3
+ import { AdTile } from './AdTile';
4
+
5
+ export default {
6
+ default: (
7
+ <div className="container grid grid-cols-12">
8
+ <AdTile className="col-span-12" />
9
+ </div>
10
+ ),
11
+ };
@@ -0,0 +1,18 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { type UniBlockProps } from '../../model/JSXBlock';
3
+ import { ClientOnly } from '../../ui-kit/ClientOnly';
4
+ import { ProductBlock } from '../ProductBlock/ProductBlock';
5
+ import { type AdTileContent } from './AdTileContent';
6
+ import { useAdTile } from './useAdTile';
7
+
8
+ interface AdTileProps extends AdTileContent, UniBlockProps {}
9
+
10
+ export const AdTile = JSX<AdTileProps>((props) => {
11
+ const content = useAdTile(props.options?.page?.adSourceBook);
12
+
13
+ return content ? (
14
+ <ClientOnly>
15
+ <ProductBlock {...content} {...props} />
16
+ </ClientOnly>
17
+ ) : null;
18
+ });
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,6 @@
1
+ import { type UniBlockContent } from '../../model/JSXBlock';
2
+
3
+ /**
4
+ * @title Рекламная плитка
5
+ */
6
+ export type AdTileContent = UniBlockContent;
@@ -0,0 +1,17 @@
1
+ import { useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useSWRResource } from '../../hooks/useSWRResource';
3
+ import { type ProductBlockContent } from '../ProductBlock/ProductBlockContent';
4
+
5
+ interface AdvertisingTileSourceBook {
6
+ items?: ProductBlockContent[];
7
+ }
8
+
9
+ export const useAdTile = (sourceBook = 'reklamnaya-plitka'): ProductBlockContent | undefined => {
10
+ const data = useSWRResource<AdvertisingTileSourceBook>(sourceBook);
11
+
12
+ const tileIndex = useMemo(() => randomNumInRange(0, data?.items?.length), [data]);
13
+
14
+ return data?.items?.[tileIndex];
15
+ };
16
+
17
+ const randomNumInRange = (min = 0, max = 0) => Math.floor(Math.random() * (max - min) + min);
@@ -1,4 +1,6 @@
1
1
  import { type BlocksRegistry } from '../model/BlocksRegistry';
2
+
3
+ import { AdTile } from './AdTile/AdTile';
2
4
  import { ApplicationForm } from './ApplicationForm/ApplicationForm';
3
5
  import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
4
6
  import { Bonus } from './Bonus/Bonus';
@@ -41,6 +43,7 @@ import { TextBlock } from './TextBlock/TextBlock';
41
43
  import { VerticalLayout } from './VerticalLayout/VerticalLayout';
42
44
 
43
45
  export const Blocks: BlocksRegistry = {
46
+ AdTile,
44
47
  ApplicationForm,
45
48
  BenefitsBlock,
46
49
  Bonus,
@@ -1,4 +1,6 @@
1
1
  import { type BlocksRegistry } from '../model/BlocksRegistry';
2
+
3
+ import { AdTile } from './AdTile/AdTile';
2
4
  import { ApplicationForm } from './ApplicationForm/ApplicationForm';
3
5
  import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
4
6
  import { Bonus } from './Bonus/Bonus';
@@ -50,6 +52,7 @@ import { VerticalLayout } from './VerticalLayout/VerticalLayout';
50
52
  import { Video } from './Video/Video';
51
53
 
52
54
  export const Blocks: BlocksRegistry = {
55
+ AdTile,
53
56
  ApplicationForm,
54
57
  BenefitsBlock,
55
58
  Bonus,
@@ -67,8 +70,8 @@ export const Blocks: BlocksRegistry = {
67
70
  CarouselTariffsCard,
68
71
  ComparisonTable,
69
72
  ContactsBlock,
70
- Depository,
71
73
  DepositFiltration,
74
+ Depository,
72
75
  ErrorBlock,
73
76
  ExchangeRateTile,
74
77
  Footer,
@@ -92,8 +95,8 @@ export const Blocks: BlocksRegistry = {
92
95
  RollupItem,
93
96
  SafeDepositRental,
94
97
  StepsBlock,
95
- SwipeListControlBlock,
96
98
  StickyBottomMenu,
99
+ SwipeListControlBlock,
97
100
  Tabs,
98
101
  TariffsTable,
99
102
  TextBlock,
@@ -4,7 +4,7 @@ import { type CellData } from './ComparisonTableContent';
4
4
  import { dividerStyle } from './constants';
5
5
 
6
6
  export interface TableCellProps {
7
- cell: CellData[];
7
+ cell?: CellData[];
8
8
  rowHeader?: string;
9
9
  isLastRow?: boolean;
10
10
  isFirstRow?: boolean;
@@ -16,7 +16,7 @@ const cellWrapperStyle = `box-border flex flex-col`;
16
16
  export const TableCell = JSX<TableCellProps>(({ cell, rowHeader, isFillGradient = false }) => (
17
17
  <div className={cellWrapperStyle} role="cell">
18
18
  <div className={style('h-full', dividerStyle)}>
19
- {cell.map(renderCellInner(isFillGradient, rowHeader))}
19
+ {cell ? cell.map(renderCellInner(isFillGradient, rowHeader)) : null}
20
20
  </div>
21
21
  </div>
22
22
  ));
@@ -4,7 +4,7 @@ import { type CellData } from './ComparisonTableContent';
4
4
  import { borderStyle, dividerStyle, gradientStyle } from './constants';
5
5
 
6
6
  export interface TableCellProps {
7
- cell: CellData[];
7
+ cell?: CellData[];
8
8
  isLastRow?: boolean;
9
9
  isFirstRow?: boolean;
10
10
  rowHeader?: string;
@@ -29,7 +29,7 @@ export const TableCell = JSX<TableCellProps>(({ cell, isFirstRow, isLastRow, isF
29
29
  return (
30
30
  <div className={cellWrapperStyle} role="cell">
31
31
  <div className={cellStyle}>
32
- {cell.map((item, i) => renderCellInner(item, i, isFillGradient))}
32
+ {cell ? cell.map((item, i) => renderCellInner(item, i, isFillGradient)) : null}
33
33
  </div>
34
34
  </div>
35
35
  );
@@ -10,7 +10,7 @@ import { TableCell } from './TableCell';
10
10
 
11
11
  export interface TableColumnData {
12
12
  rowHeader?: string;
13
- cell: CellData[];
13
+ cell?: CellData[];
14
14
  }
15
15
 
16
16
  export interface TableColumnProps extends UniBlockProps {
@@ -41,4 +41,5 @@ export interface ContentPageDef extends ContentPageMeta, Slot {
41
41
  fallback?: Record<string, unknown>;
42
42
  likeControl?: boolean;
43
43
  colorPalette?: ColorPalette;
44
+ adSourceBook?: string;
44
45
  }
@@ -1,8 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { renderBlocksList } from '../../BlockRenderer/renderBlockList';
3
+ import { AdTile } from '../../components/AdTile/AdTile';
3
4
  import { type IconName } from '../../icons/IconName';
4
5
  import { type BlockDef } from '../../model/ContentPageDef';
5
6
  import { type UniBlockProps } from '../../model/JSXBlock';
7
+ import { isOdd } from '../../utils/isOdd';
6
8
  import { style } from '../../utils/style';
7
9
  import { DefaultFoldButton } from '../Foldable/DefaultFoldButton';
8
10
  import { Foldable } from '../Foldable/Foldable';
@@ -33,12 +35,14 @@ export const BaseFiltrationInner = JSX<BaseFiltrationInnerProps>(
33
35
  <div className={style('space-y-2xs', blocksToRender.length ? '' : 'hidden')}>
34
36
  <div className={style(resultsGridStyle)}>
35
37
  {renderBlocksList(visibleBlocks, { ...rest.options, parent: block })}
38
+ {isOdd(visibleBlocks.length) ? <AdTile className="col-span-6" /> : null}
36
39
  </div>
37
40
  <Foldable
38
41
  renderFoldableSection={({ isUnfolded }) => {
39
42
  return (
40
43
  <FoldableSection className={style(resultsGridStyle)} isUnfolded={isUnfolded}>
41
44
  {renderBlocksList(hiddenBlocks, { ...rest.options, parent: block })}
45
+ {isOdd(hiddenBlocks.length) ? <AdTile className="col-span-6" /> : null}
42
46
  </FoldableSection>
43
47
  );
44
48
  }}
@@ -0,0 +1 @@
1
+ export const isOdd = (n: number) => n % 2 !== 0;