@redneckz/wildless-cms-uni-blocks 0.3.55 → 0.3.57

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 (201) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +69 -21
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/BlockContent.d.ts +2 -1
  5. package/dist/components/Blocks.d.ts +1 -0
  6. package/dist/components/Blocks.js +2 -0
  7. package/dist/components/Blocks.js.map +1 -1
  8. package/dist/components/ContentPage/ContentPage.js +3 -5
  9. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  10. package/dist/components/ContentPage/CustomContentPage.d.ts +30 -0
  11. package/dist/components/ContentPage/CustomContentPage.js +33 -0
  12. package/dist/components/ContentPage/CustomContentPage.js.map +1 -0
  13. package/dist/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  14. package/dist/components/GroupBlock/BlocksTypeProps.js +2 -0
  15. package/dist/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  16. package/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  17. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js +9 -0
  18. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  19. package/dist/components/GroupBlock/GroupBlock.d.ts +9 -0
  20. package/dist/components/GroupBlock/GroupBlock.js +19 -0
  21. package/dist/components/GroupBlock/GroupBlock.js.map +1 -0
  22. package/dist/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  23. package/dist/components/GroupBlock/GroupBlockContent.js +2 -0
  24. package/dist/components/GroupBlock/GroupBlockContent.js.map +1 -0
  25. package/dist/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  26. package/dist/components/GroupBlock/GroupBlockTabs.js +18 -0
  27. package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  28. package/dist/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  29. package/dist/components/GroupBlock/GroupBlocksItem.js +20 -0
  30. package/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  31. package/dist/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  32. package/dist/components/GroupBlock/filterBlocksByTag.js +7 -0
  33. package/dist/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  34. package/dist/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  35. package/dist/components/GroupBlock/renderBlocksTypes.js +16 -0
  36. package/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  37. package/dist/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  38. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  39. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  40. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +9 -11
  41. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  42. package/dist/types.d.ts +5 -0
  43. package/dist/utils/style2className.d.ts +1 -0
  44. package/dist/utils/style2className.js +7 -0
  45. package/dist/utils/style2className.js.map +1 -0
  46. package/lib/common.css +1 -1
  47. package/lib/components/BlockContent.d.ts +2 -1
  48. package/lib/components/Blocks.d.ts +1 -0
  49. package/lib/components/Blocks.js +2 -0
  50. package/lib/components/Blocks.js.map +1 -1
  51. package/lib/components/ContentPage/ContentPage.js +1 -3
  52. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  53. package/lib/components/ContentPage/CustomContentPage.d.ts +30 -0
  54. package/lib/components/ContentPage/CustomContentPage.js +31 -0
  55. package/lib/components/ContentPage/CustomContentPage.js.map +1 -0
  56. package/lib/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  57. package/lib/components/GroupBlock/BlocksTypeProps.js +2 -0
  58. package/lib/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  59. package/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  60. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js +7 -0
  61. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  62. package/lib/components/GroupBlock/GroupBlock.d.ts +9 -0
  63. package/lib/components/GroupBlock/GroupBlock.fixture.d.ts +4 -0
  64. package/lib/components/GroupBlock/GroupBlock.js +17 -0
  65. package/lib/components/GroupBlock/GroupBlock.js.map +1 -0
  66. package/lib/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  67. package/lib/components/GroupBlock/GroupBlockContent.js +2 -0
  68. package/lib/components/GroupBlock/GroupBlockContent.js.map +1 -0
  69. package/lib/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  70. package/lib/components/GroupBlock/GroupBlockTabs.js +16 -0
  71. package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  72. package/lib/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  73. package/lib/components/GroupBlock/GroupBlocksItem.js +17 -0
  74. package/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  75. package/lib/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  76. package/lib/components/GroupBlock/filterBlocksByTag.js +4 -0
  77. package/lib/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  78. package/lib/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  79. package/lib/components/GroupBlock/renderBlocksTypes.js +13 -0
  80. package/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  81. package/lib/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  82. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  83. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  84. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +9 -11
  85. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  86. package/lib/types.d.ts +5 -0
  87. package/lib/utils/style2className.d.ts +1 -0
  88. package/lib/utils/style2className.js +4 -0
  89. package/lib/utils/style2className.js.map +1 -0
  90. package/mobile/bundle/bundle.umd.js +4 -3
  91. package/mobile/bundle/bundle.umd.min.js +1 -1
  92. package/mobile/dist/components/BlockContent.d.ts +2 -1
  93. package/mobile/dist/components/ContentPage/ContentPage.js +3 -5
  94. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  95. package/mobile/dist/components/ContentPage/CustomContentPage.d.ts +30 -0
  96. package/mobile/dist/components/ContentPage/CustomContentPage.js +33 -0
  97. package/mobile/dist/components/ContentPage/CustomContentPage.js.map +1 -0
  98. package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  99. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js +2 -0
  100. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  101. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  102. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js +9 -0
  103. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  104. package/mobile/dist/components/GroupBlock/GroupBlock.d.ts +9 -0
  105. package/mobile/dist/components/GroupBlock/GroupBlock.js +19 -0
  106. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +1 -0
  107. package/mobile/dist/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  108. package/mobile/dist/components/GroupBlock/GroupBlockContent.js +2 -0
  109. package/mobile/dist/components/GroupBlock/GroupBlockContent.js.map +1 -0
  110. package/mobile/dist/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  111. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +18 -0
  112. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  113. package/mobile/dist/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  114. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js +20 -0
  115. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  116. package/mobile/dist/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  117. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js +7 -0
  118. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  119. package/mobile/dist/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  120. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js +16 -0
  121. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  122. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  123. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +9 -11
  124. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  125. package/mobile/dist/types.d.ts +5 -0
  126. package/mobile/dist/utils/style2className.d.ts +1 -0
  127. package/mobile/dist/utils/style2className.js +7 -0
  128. package/mobile/dist/utils/style2className.js.map +1 -0
  129. package/mobile/lib/components/BlockContent.d.ts +2 -1
  130. package/mobile/lib/components/ContentPage/ContentPage.js +1 -3
  131. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  132. package/mobile/lib/components/ContentPage/CustomContentPage.d.ts +30 -0
  133. package/mobile/lib/components/ContentPage/CustomContentPage.js +31 -0
  134. package/mobile/lib/components/ContentPage/CustomContentPage.js.map +1 -0
  135. package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  136. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js +2 -0
  137. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  138. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  139. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js +7 -0
  140. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  141. package/mobile/lib/components/GroupBlock/GroupBlock.d.ts +9 -0
  142. package/mobile/lib/components/GroupBlock/GroupBlock.js +17 -0
  143. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +1 -0
  144. package/mobile/lib/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  145. package/mobile/lib/components/GroupBlock/GroupBlockContent.js +2 -0
  146. package/mobile/lib/components/GroupBlock/GroupBlockContent.js.map +1 -0
  147. package/mobile/lib/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  148. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +16 -0
  149. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  150. package/mobile/lib/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  151. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js +17 -0
  152. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  153. package/mobile/lib/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  154. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js +4 -0
  155. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  156. package/mobile/lib/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  157. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js +13 -0
  158. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  159. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  160. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +9 -11
  161. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -1
  162. package/mobile/lib/types.d.ts +5 -0
  163. package/mobile/lib/utils/style2className.d.ts +1 -0
  164. package/mobile/lib/utils/style2className.js +4 -0
  165. package/mobile/lib/utils/style2className.js.map +1 -0
  166. package/mobile/src/components/BlockContent.ts +3 -1
  167. package/mobile/src/components/ContentPage/ContentPage.tsx +1 -4
  168. package/mobile/src/components/ContentPage/CustomContentPage.tsx +82 -0
  169. package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +40 -0
  170. package/mobile/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +7 -0
  171. package/mobile/src/components/GroupBlock/GroupBlock.example.json +27 -0
  172. package/mobile/src/components/GroupBlock/GroupBlock.tsx +43 -0
  173. package/mobile/src/components/GroupBlock/GroupBlockContent.ts +23 -0
  174. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +54 -0
  175. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +30 -0
  176. package/mobile/src/components/GroupBlock/filterBlocksByTag.ts +5 -0
  177. package/mobile/src/components/GroupBlock/renderBlocksTypes.tsx +27 -0
  178. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +4 -2
  179. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +8 -14
  180. package/mobile/src/types.ts +7 -1
  181. package/mobile/src/utils/style2className.ts +3 -0
  182. package/package.json +1 -1
  183. package/src/components/BlockContent.ts +3 -1
  184. package/src/components/Blocks.ts +2 -0
  185. package/src/components/ContentPage/ContentPage.tsx +1 -4
  186. package/src/components/ContentPage/CustomContentPage.tsx +82 -0
  187. package/src/components/GroupBlock/BlocksTypeProps.ts +40 -0
  188. package/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +7 -0
  189. package/src/components/GroupBlock/GroupBlock.example.json +27 -0
  190. package/src/components/GroupBlock/GroupBlock.fixture.tsx +51 -0
  191. package/src/components/GroupBlock/GroupBlock.tsx +43 -0
  192. package/src/components/GroupBlock/GroupBlockContent.ts +23 -0
  193. package/src/components/GroupBlock/GroupBlockTabs.tsx +54 -0
  194. package/src/components/GroupBlock/GroupBlocksItem.tsx +30 -0
  195. package/src/components/GroupBlock/filterBlocksByTag.ts +5 -0
  196. package/src/components/GroupBlock/renderBlocksTypes.tsx +27 -0
  197. package/src/components/OtherProducts/OtherProductsContent.ts +4 -2
  198. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  199. package/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +8 -14
  200. package/src/types.ts +7 -1
  201. package/src/utils/style2className.ts +3 -0
@@ -0,0 +1,36 @@
1
+ import type { ProductBlockContent } from '../../components/ProductBlock/ProductBlockContent';
2
+ import type { ProductTileContent } from '../../components/ProductTile/ProductTileContent';
3
+ import { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
4
+ export interface ActiveHandler {
5
+ context: ContentPageContext;
6
+ blocks?: GroupBlockDef[];
7
+ initialState?: boolean;
8
+ }
9
+ export interface GroupBlockCommonProps {
10
+ /** @title Стиль */
11
+ style?: string[];
12
+ /** @title Теги */
13
+ tags?: string[];
14
+ }
15
+ /**
16
+ * @title Продуктовый блок
17
+ * @default {"blockType": "ProductBlock"}
18
+ */
19
+ export declare type ProductBlockDef = ProductBlockContent & GroupBlockCommonProps & {
20
+ blockType: 'ProductBlock';
21
+ };
22
+ /**
23
+ * @title Продуктовая плитка
24
+ * @default {"blockType": "ProductTile"}
25
+ */
26
+ export declare type ProductTileDef = ProductTileContent & GroupBlockCommonProps & {
27
+ blockType: 'ProductTile';
28
+ };
29
+ /**
30
+ * @title Выберите блок
31
+ */
32
+ export declare type EmptyOption = null;
33
+ /**
34
+ * @title Содержимое блока
35
+ */
36
+ export declare type GroupBlockDef = EmptyOption | ProductBlockDef | ProductTileDef;
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ //# sourceMappingURL=BlocksTypeProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlocksTypeProps.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/BlocksTypeProps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare const EmbeddableGroupBlocks: {
2
+ ProductBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../ProductBlock/ProductBlock").ProductBlockProps, any>, context?: any) => any;
3
+ ProductTile: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../ProductTile/ProductTile").ProductTileProps, any>, context?: any) => any;
4
+ };
@@ -0,0 +1,9 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.EmbeddableGroupBlocks = void 0;
3
+ const ProductBlock_1 = require("../ProductBlock/ProductBlock");
4
+ const ProductTile_1 = require("../ProductTile/ProductTile");
5
+ exports.EmbeddableGroupBlocks = {
6
+ ProductBlock: ProductBlock_1.ProductBlock,
7
+ ProductTile: ProductTile_1.ProductTile,
8
+ };
9
+ //# sourceMappingURL=EmbeddableGroupBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddableGroupBlocks.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/EmbeddableGroupBlocks.tsx"],"names":[],"mappings":";;AAAA,+DAA4D;AAC5D,4DAAyD;AAE5C,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAZ,2BAAY;IACZ,WAAW,EAAX,yBAAW;CACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UniBlockProps } from '../../types';
2
+ import type { GroupBlockContent, GroupBlockTab } from './GroupBlockContent';
3
+ export interface TabsItemProps extends GroupBlockTab {
4
+ count?: number;
5
+ }
6
+ export interface GroupBlockProps extends GroupBlockContent, UniBlockProps {
7
+ tabs?: TabsItemProps[];
8
+ }
9
+ export declare const GroupBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<GroupBlockProps, any>, context?: any) => any;
@@ -0,0 +1,19 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.GroupBlock = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const GroupBlockTabs_1 = require("./GroupBlockTabs");
6
+ const GroupBlocksItem_1 = require("./GroupBlocksItem");
7
+ const filterBlocksByTag_1 = require("./filterBlocksByTag");
8
+ exports.GroupBlock = (0, uni_jsx_1.JSX)(({ className = '', tabs, context, anchor = null, groupBlocks = [] }) => {
9
+ const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
10
+ const filteredBlocks = (0, filterBlocksByTag_1.filterBlocksByTag)(groupBlocks, currentTag);
11
+ const tabsNewMap = tabs?.map((tab) => {
12
+ const count = tab.tag
13
+ ? groupBlocks.filter((block) => block?.tags?.includes(`${tab.tag}`)).length
14
+ : groupBlocks.length;
15
+ return { ...tab, count };
16
+ });
17
+ return ((0, jsx_runtime_1.jsxs)("section", { id: anchor, className: `box-border gap-1 h-12 ${className}`, children: [tabsNewMap?.length ? ((0, jsx_runtime_1.jsx)(GroupBlockTabs_1.GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap })) : null, groupBlocks.length ? ((0, jsx_runtime_1.jsx)("div", { className: "list-none", children: (0, jsx_runtime_1.jsx)(GroupBlocksItem_1.GroupBlocksItem, { context: context, groupBlocks: filteredBlocks }) })) : null] }));
18
+ });
19
+ //# sourceMappingURL=GroupBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupBlock.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlock.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAGxC,qDAAkD;AAClD,uDAAoD;AACpD,2DAAwD;AAU3C,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE,EAAE;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG;YACnB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;YAC3E,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QAEvB,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,qCAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,SAAS,EAAE,aACjE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CACpB,uBAAC,+BAAc,IAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAI,CACxF,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CACpB,gCAAK,SAAS,EAAC,WAAW,YACxB,uBAAC,iCAAe,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,GAAI,GAC9D,CACP,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { GroupBlockDef } from './BlocksTypeProps';
2
+ /**
3
+ * @title Таб
4
+ */
5
+ export interface GroupBlockTab {
6
+ /** @title Название */
7
+ title?: string;
8
+ /** @title Tег */
9
+ tag?: string;
10
+ }
11
+ /**
12
+ * @title Блок-группировки
13
+ */
14
+ export interface GroupBlockContent {
15
+ /** @title Блоки */
16
+ groupBlocks?: GroupBlockDef[];
17
+ /** @title Табы */
18
+ tabs?: GroupBlockTab[];
19
+ /** @title Показывать счетчик блоков во вкладках */
20
+ isShowCounter?: boolean;
21
+ }
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ //# sourceMappingURL=GroupBlockContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupBlockContent.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlockContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { TabsItemProps } from './GroupBlock';
2
+ export declare type TabClickHandler = (tag: any) => void;
3
+ export interface GroupBlockTabsProps {
4
+ onTabClick: TabClickHandler;
5
+ currentTag?: string;
6
+ className?: string;
7
+ tabs?: TabsItemProps[];
8
+ isShowCounter?: boolean;
9
+ }
10
+ export declare const GroupBlockTabs: (props: import("@redneckz/uni-jsx").PropsWithChildren<GroupBlockTabsProps, any>, context?: any) => any;
@@ -0,0 +1,18 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.GroupBlockTabs = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ exports.GroupBlockTabs = (0, uni_jsx_1.JSX)((props) => {
6
+ const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
7
+ return ((0, jsx_runtime_1.jsx)("div", { className: `mb-2 box-border flex gap-x-1 h-12 ${className}`, role: "tablist", children: tabs?.map(renderTab(onTabClick, isShowCounter, currentTag)) }));
8
+ });
9
+ const badgeStyle = 'w-[22px] h-[22px] rounded-full text-m-sm';
10
+ const renderTab = (onTabClick, isShowCounter, currentTag) => (tab, i) => {
11
+ const isActive = currentTag === tab.tag;
12
+ const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
13
+ const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
14
+ const counterBlockStyle = `${badgeStyle}
15
+ ${isActive ? 'bg-white/30 text-white' : 'bg-secondary-text/10 text-secondary-text'}`;
16
+ return ((0, jsx_runtime_1.jsx)("div", { className: `flex h-full w-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? (0, jsx_runtime_1.jsx)("h3", { className: `mr-8 ${tabText}`, children: tab?.title }) : null, isShowCounter ? ((0, jsx_runtime_1.jsx)("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: (0, jsx_runtime_1.jsx)("span", { children: tab.count }) })) : null] }) }, String(i)));
17
+ };
18
+ //# sourceMappingURL=GroupBlockTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupBlockTabs.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlockTabs.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAa3B,QAAA,cAAc,GAAG,IAAA,aAAG,EAAsB,CAAC,KAAK,EAAE,EAAE;IAC/D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAErF,OAAO,CACL,gCAAK,SAAS,EAAE,qCAAqC,SAAS,EAAE,EAAE,IAAI,EAAC,SAAS,YAC7E,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GACxD,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,0CAA0C,CAAC;AAE9D,MAAM,SAAS,GACb,CAAC,UAA2B,EAAE,aAAsB,EAAE,UAAmB,EAAE,EAAE,CAC7E,CAAC,GAAkB,EAAE,CAAS,EAAE,EAAE;IAChC,MAAM,QAAQ,GAAG,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mDAAmD,CAAC;IAC9F,MAAM,iBAAiB,GAAG,GAAG,UAAU;QACnC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,0CAA0C,EAAE,CAAC;IAEvF,OAAO,CACL,gCAEE,SAAS,EAAE,uEAAuE,KAAK,EAAE,EACzF,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mBACnB,MAAM,CAAC,QAAQ,CAAC,EAC/B,GAAG,EAAE,GAAG,EAAE,GAAG,YAEb,iCAAK,SAAS,EAAC,yCAAyC,aACrD,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,+BAAI,SAAS,EAAE,QAAQ,OAAO,EAAE,YAAG,GAAG,EAAE,KAAK,GAAM,CAAC,CAAC,CAAC,IAAI,EACvE,aAAa,CAAC,CAAC,CAAC,CACf,gCAAK,SAAS,EAAE,oCAAoC,iBAAiB,EAAE,YACrE,2CAAO,GAAG,CAAC,KAAK,GAAQ,GACpB,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IAdD,MAAM,CAAC,CAAC,CAAC,CAeV,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
2
+ import type { UniBlockProps } from '../../types';
3
+ import type { GroupBlockDef } from './BlocksTypeProps';
4
+ import { GroupBlockContent } from './GroupBlockContent';
5
+ export interface GroupBlocksProps extends GroupBlockContent, UniBlockProps {
6
+ }
7
+ export declare const GroupBlocksItem: (props: import("@redneckz/uni-jsx").PropsWithChildren<GroupBlocksProps, any>, context?: any) => any;
8
+ export declare const renderBlock: (context: ContentPageContext) => (block: GroupBlockDef, i: number) => any;
@@ -0,0 +1,20 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.renderBlock = exports.GroupBlocksItem = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const style2className_1 = require("../../utils/style2className");
6
+ const EmbeddableGroupBlocks_1 = require("./EmbeddableGroupBlocks");
7
+ exports.GroupBlocksItem = (0, uni_jsx_1.JSX)(({ groupBlocks, context }) => {
8
+ return ((0, jsx_runtime_1.jsx)("div", { className: 'grid grid-cols-12 gap-2 box-border', children: groupBlocks?.length ? groupBlocks.map((0, exports.renderBlock)(context)) : null }));
9
+ });
10
+ const renderBlock = (context) => (block, i) => {
11
+ const type = block?.blockType;
12
+ if (!type || !(type in EmbeddableGroupBlocks_1.EmbeddableGroupBlocks)) {
13
+ return null;
14
+ }
15
+ const classNameBlock = (0, style2className_1.style2className)(block?.style);
16
+ const EmbeddedBlock = EmbeddableGroupBlocks_1.EmbeddableGroupBlocks[type];
17
+ return ((0, jsx_runtime_1.jsx)(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
18
+ };
19
+ exports.renderBlock = renderBlock;
20
+ //# sourceMappingURL=GroupBlocksItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupBlocksItem.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlocksItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAIxC,iEAA8D;AAE9D,mEAAgE;AAKnD,QAAA,eAAe,GAAG,IAAA,aAAG,EAAmB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;IAChF,OAAO,CACL,gCAAK,SAAS,EAAE,oCAAoC,YACjD,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAC/D,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,MAAM,WAAW,GAAG,CAAC,OAA2B,EAAE,EAAE,CAAC,CAAC,KAAoB,EAAE,CAAS,EAAE,EAAE;IAC9F,MAAM,IAAI,GAAG,KAAK,EAAE,SAAS,CAAC;IAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,6CAAqB,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,cAAc,GAAG,IAAA,iCAAe,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,aAAa,GAAa,6CAAqB,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,CACL,uBAAC,aAAa,IAAoB,OAAO,EAAE,OAAO,KAAM,KAAK,EAAE,SAAS,EAAE,cAAc,IAApE,SAAS,CAAC,EAAE,CAA4D,CAC7F,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB"}
@@ -0,0 +1,2 @@
1
+ import { GroupBlockDef } from './BlocksTypeProps';
2
+ export declare const filterBlocksByTag: (blocks: GroupBlockDef[], tag?: string) => GroupBlockDef[];
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.filterBlocksByTag = void 0;
3
+ const filterBlocksByTag = (blocks, tag) => {
4
+ return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
5
+ };
6
+ exports.filterBlocksByTag = filterBlocksByTag;
7
+ //# sourceMappingURL=filterBlocksByTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterBlocksByTag.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/filterBlocksByTag.ts"],"names":[],"mappings":";;AAEO,MAAM,iBAAiB,GAAG,CAAC,MAAuB,EAAE,GAAY,EAAE,EAAE;IACzE,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -0,0 +1,9 @@
1
+ import type { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
2
+ import type { GroupBlockDef } from './BlocksTypeProps';
3
+ declare type EmbeddableBlocksProps = {
4
+ groupBlocks?: GroupBlockDef[];
5
+ context: ContentPageContext;
6
+ className?: string;
7
+ };
8
+ export declare const renderBlock: ({ context, className }: EmbeddableBlocksProps) => (block: GroupBlockDef, i: number) => any;
9
+ export {};
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.renderBlock = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const EmbeddableGroupBlocks_1 = require("./EmbeddableGroupBlocks");
5
+ const style2className_1 = require("../../utils/style2className");
6
+ const renderBlock = ({ context, className }) => (block, i) => {
7
+ const type = block?.blockType;
8
+ if (!type || !(type in EmbeddableGroupBlocks_1.EmbeddableGroupBlocks)) {
9
+ return null;
10
+ }
11
+ const classNameBlock = (0, style2className_1.style2className)(block?.style);
12
+ const EmbeddedBlock = EmbeddableGroupBlocks_1.EmbeddableGroupBlocks[type];
13
+ return ((0, jsx_runtime_1.jsx)("div", { className: className, children: (0, jsx_runtime_1.jsx)(EmbeddedBlock, { context: context, ...block, className: classNameBlock }) }, `block_${i}`));
14
+ };
15
+ exports.renderBlock = renderBlock;
16
+ //# sourceMappingURL=renderBlocksTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderBlocksTypes.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/renderBlocksTypes.tsx"],"names":[],"mappings":";;;AAGA,mEAAgE;AAChE,iEAA8D;AAQvD,MAAM,WAAW,GACtB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAyB,EAAE,EAAE,CAClD,CAAC,KAAoB,EAAE,CAAS,EAAE,EAAE;IAClC,MAAM,IAAI,GAAG,KAAK,EAAE,SAAS,CAAC;IAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,6CAAqB,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACb;IACD,MAAM,cAAc,GAAG,IAAA,iCAAe,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,aAAa,GAAa,6CAAqB,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,CACL,gCAAK,SAAS,EAAE,SAAS,YACvB,uBAAC,aAAa,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,EAAE,SAAS,EAAE,cAAc,GAAI,IAD3C,SAAS,CAAC,EAAE,CAEtC,CACP,CAAC;AACJ,CAAC,CAAC;AAdS,QAAA,WAAW,eAcpB"}
@@ -13,7 +13,10 @@ export interface BlockItemCommonProps {
13
13
  * @title Отображать в раскрытом виде
14
14
  */
15
15
  isExpanded?: boolean;
16
- /** @title Блоки */
16
+ /**
17
+ * @title Блоки
18
+ * @maxItems 10
19
+ */
17
20
  blocks?: BlockDef[];
18
21
  columns?: ColumnsCount;
19
22
  }
@@ -25,7 +28,6 @@ export interface OtherProductsContent {
25
28
  title?: string;
26
29
  /**
27
30
  * @title Список
28
- * @maxItems 10
29
31
  */
30
32
  blockItems?: BlockItemCommonProps[];
31
33
  colorPalette?: ColorPalette;
@@ -15,7 +15,7 @@ const productSlideStyleMap = {
15
15
  primary: 'bg-white text-primary-text',
16
16
  secondary: 'bg-primary-main text-white',
17
17
  };
18
- exports.ProductGalleryGreen = (0, uni_jsx_1.JSX)(({ className = '', context, slides = [], version = 'primary', duration = 0, anchor = null }) => {
18
+ exports.ProductGalleryGreen = (0, uni_jsx_1.JSX)(({ className = '', context, slides = [], version = 'primary', anchor = null }) => {
19
19
  const galleryNav = slides.map((s) => s.nav);
20
20
  const galleryBlocks = slides.map((s) => s.productBlock);
21
21
  const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
@@ -26,19 +26,18 @@ exports.ProductGalleryGreen = (0, uni_jsx_1.JSX)(({ className = '', context, sli
26
26
  activeSlideIndex,
27
27
  onClick: () => setActiveSlideIndex(i),
28
28
  version,
29
- duration,
30
29
  })) })] }));
31
30
  });
32
31
  function renderProductBlock(block, i, context) {
33
32
  const { version } = block;
34
33
  const additionalClass = version ? productBlockStyleMap[version].title : '';
35
- return ((0, jsx_runtime_1.jsx)("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: (0, jsx_runtime_1.jsx)("div", { className: "flex grow", children: (0, jsx_runtime_1.jsx)(ProductBlockInner_1.ProductBlockInner, { className: `pl-[50px] pr-2 z-[1] ${additionalClass}`, context: context, textBlockClassName: "mb-[154px]", ...block }) }) }, String(i)));
34
+ return ((0, jsx_runtime_1.jsx)("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: (0, jsx_runtime_1.jsx)("div", { className: "flex grow", children: (0, jsx_runtime_1.jsx)(ProductBlockInner_1.ProductBlockInner, { className: `pl-[50px] z-[1] ${additionalClass}`, context: context, textBlockClassName: "mb-[154px]", ...block }) }) }, String(i)));
36
35
  }
37
- function renderNavButton({ slide, i, activeSlideIndex, onClick, version, duration }) {
36
+ function renderNavButton({ slide, i, activeSlideIndex, onClick, version }) {
38
37
  const isActiveBtn = i === activeSlideIndex;
39
38
  const btnClassName = isActiveBtn
40
- ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0 border-none'
41
- : `min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300
39
+ ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] p-0 border-none'
40
+ : `min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300 bg-white/10
42
41
  ${productSlideStyleMap[version]}`;
43
42
  const btnTitleClassName = isActiveBtn
44
43
  ? 'text-primary-text text-title-2xs'
@@ -46,10 +45,9 @@ function renderNavButton({ slide, i, activeSlideIndex, onClick, version, duratio
46
45
  const btnDescClassName = isActiveBtn
47
46
  ? 'text-secondary-text text-m-title-xs mt-2.5'
48
47
  : `text-m-md mt-1.5 ${productBlockStyleMap[version].text}`;
49
- const additionalBorder = version === 'secondary' ? 'border-white/50' : '';
50
- const progressBarClassName = isActiveBtn ? 'animate-slide' : '';
51
- return ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `box-border font-sans group relative overflow-hidden border-[1px] cursor-pointer text-left mx-1 grow basis-0 backdrop-blur-sm
52
- ${btnClassName} ${additionalBorder}
53
- `, children: [(0, jsx_runtime_1.jsxs)("div", { className: "border-0 px-6", children: [(0, jsx_runtime_1.jsx)("div", { className: `font-medium ${btnTitleClassName}`, children: slide?.title }), (0, jsx_runtime_1.jsx)("div", { className: `text-secondary-text ${btnDescClassName}`, children: slide.description })] }), (0, jsx_runtime_1.jsx)("div", { className: `absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`, style: { animationDuration: `${duration}s`, animationFillMode: 'forwards' } })] }, String(i)));
48
+ const additionalBorder = version === 'secondary' ? 'border-white/50' : 'border-black/50';
49
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `box-border font-sans relative overflow-hidden border-[1px] border-white/50 cursor-pointer text-left mx-1 grow basis-0
50
+ ${btnClassName} ${additionalBorder}
51
+ `, children: (0, jsx_runtime_1.jsxs)("div", { className: "border-0 px-6", children: [(0, jsx_runtime_1.jsx)("div", { className: `font-medium ${btnTitleClassName}`, children: slide?.title }), (0, jsx_runtime_1.jsx)("div", { className: `text-secondary-text ${btnDescClassName}`, children: slide.description })] }) }, String(i)));
54
52
  }
55
53
  //# sourceMappingURL=ProductGalleryGreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductGalleryGreen.js","sourceRoot":"","sources":["../../../src/components/ProductGalleryGreen/ProductGalleryGreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductGalleryGreen.js","sourceRoot":"","sources":["../../../src/components/ProductGalleryGreen/ProductGalleryGreen.tsx"],"names":[],"mappings":"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"}
@@ -37,10 +37,15 @@ export interface ContentPageMeta {
37
37
  twitter?: Record<string, string>;
38
38
  jsonLd?: string;
39
39
  }
40
+ export interface CustomPageTemplate {
41
+ content?: Record<string, any>;
42
+ type?: string;
43
+ }
40
44
  export interface ContentPageDef extends ContentPageMeta {
41
45
  style?: string[];
42
46
  blocks?: BlockDef[];
43
47
  slots?: SlotsMap;
48
+ customPageTmpl?: CustomPageTemplate;
44
49
  likeControl?: boolean;
45
50
  colorPalette?: ColorPalette;
46
51
  }
@@ -0,0 +1 @@
1
+ export declare function style2className(style: string[] | undefined | null): string;
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.style2className = void 0;
3
+ function style2className(style) {
4
+ return style ? style.filter(Boolean).join(' ') : '';
5
+ }
6
+ exports.style2className = style2className;
7
+ //# sourceMappingURL=style2className.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style2className.js","sourceRoot":"","sources":["../../src/utils/style2className.ts"],"names":[],"mappings":";;AAAA,SAAgB,eAAe,CAAC,KAAkC;IAChE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAFD,0CAEC"}
@@ -5,6 +5,7 @@ import type { ExchangeRateTileContent } from './ExchangeRateTile/ExchangeRateTil
5
5
  import type { FooterContent } from './Footer/FooterContent';
6
6
  import type { GalleryContent } from './Gallery/GalleryContent';
7
7
  import type { GracePeriodContent } from './GracePeriod/GracePeriodContent';
8
+ import type { GroupBlockContent } from './GroupBlock/GroupBlockContent';
8
9
  import type { HeaderContent } from './Header/HeaderContent';
9
10
  import type { LinkDocsContent } from './LinkDocs/LinkDocsContent';
10
11
  import type { LinkListContent } from './LinkList/LinkListContent';
@@ -24,4 +25,4 @@ import type { TileContent } from './Tile/TileContent';
24
25
  /**
25
26
  * @hidden
26
27
  */
27
- export declare type BlockContent = BenefitsBlockContent | BonusContent | ComparisonTableContent | ExchangeRateTileContent | FooterContent | GalleryContent | GracePeriodContent | HeaderContent | LinkDocsContent | MobileAppTileContent | NavigatorTabsContent | PictureTextContent | PlaceholderContent | ProductBlockContent | ProductGalleryContent | ProductTileContent | PromoTileContent | StepsBlockContent | TariffsTableContent | TextBlockContent | TileContent | NavigationContent | LinkListContent;
28
+ export declare type BlockContent = BenefitsBlockContent | BonusContent | ComparisonTableContent | ExchangeRateTileContent | FooterContent | GalleryContent | GracePeriodContent | HeaderContent | LinkDocsContent | MobileAppTileContent | NavigatorTabsContent | PictureTextContent | PlaceholderContent | ProductBlockContent | ProductGalleryContent | ProductTileContent | PromoTileContent | StepsBlockContent | TariffsTableContent | TextBlockContent | TileContent | NavigationContent | LinkListContent | GroupBlockContent;
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { changeHashOnScroll } from '../../utils/changeHashOnScroll.js';
4
4
  import { isSSR } from '../../utils/isSSR.js';
5
+ import { style2className } from '../../utils/style2className.js';
5
6
  import { LikeControl } from '../LikeControl/LikeControl.js';
6
7
  import { Placeholder } from '../Placeholder/Placeholder.js';
7
8
  const isClient = !isSSR();
@@ -32,7 +33,4 @@ function renderBlock({ block, blockDecorator, blocksRegistry, context }, i) {
32
33
  },
33
34
  }, `block-${i}`);
34
35
  }
35
- function style2className(style) {
36
- return style ? style.join(' ') : '';
37
- }
38
36
  //# sourceMappingURL=ContentPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/ContentPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ContentPageDef, CustomPageTemplate, UniBlockProps } from '../../types';
2
+ import { ContentPageContext } from './ContentPageContext';
3
+ interface PageDecoratorProps<VNode> {
4
+ pageClassName: string;
5
+ pageTemplate: CustomPageTemplate;
6
+ render: (props: {
7
+ pageClassName: string;
8
+ pageTemplate: CustomPageTemplate;
9
+ }) => VNode;
10
+ }
11
+ export declare type PageDecorator<VNode = any> = (props: PageDecoratorProps<VNode>, index?: number | string) => any;
12
+ export interface PageTemplate {
13
+ name: string;
14
+ template: any;
15
+ }
16
+ export declare type PageTemplatesRegistry = Record<string, PageTemplate>;
17
+ export interface CustomContentPageProps extends UniBlockProps {
18
+ pageTemplatesRegistry: PageTemplatesRegistry;
19
+ data: ContentPageDef;
20
+ pageDecorator?: PageDecorator;
21
+ }
22
+ export interface RenderPageFunc {
23
+ pageTemplate: CustomPageTemplate;
24
+ pageClassName: string;
25
+ pageDecorator: PageDecorator;
26
+ pageTemplatesRegistry: PageTemplatesRegistry;
27
+ context: ContentPageContext;
28
+ }
29
+ export declare const CustomContentPage: (props: import("@redneckz/uni-jsx").PropsWithChildren<CustomContentPageProps, any>, context?: any) => any;
30
+ export {};
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { style2className } from '../../utils/style2className.js';
4
+ const defaultPageDecorator = ({ pageClassName, pageTemplate, render }) => render({ pageClassName, pageTemplate });
5
+ export const CustomContentPage = JSX(({ className = '', context, pageTemplatesRegistry, data: { style: pageStyle, customPageTmpl: pageTemplate }, pageDecorator = defaultPageDecorator, }) => {
6
+ return pageTemplate
7
+ ? renderPage({
8
+ pageTemplate,
9
+ pageClassName: `${style2className(pageStyle)} ${className}`,
10
+ pageDecorator,
11
+ pageTemplatesRegistry,
12
+ context,
13
+ })
14
+ : null;
15
+ });
16
+ function renderPage({ pageTemplate, pageClassName, pageDecorator, pageTemplatesRegistry, context, }) {
17
+ const { type } = pageTemplate;
18
+ if (!(type && type in pageTemplatesRegistry) || !pageTemplatesRegistry[type].template) {
19
+ throw new Error(`No page template with "${type}" is registered`);
20
+ }
21
+ const { template: PageComponent } = pageTemplatesRegistry[type];
22
+ return pageDecorator({
23
+ pageClassName,
24
+ pageTemplate,
25
+ render: (props) => {
26
+ const { content } = props.pageTemplate;
27
+ return _jsx(PageComponent, { className: props.pageClassName, context: context, ...content });
28
+ },
29
+ });
30
+ }
31
+ //# sourceMappingURL=CustomContentPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomContentPage.js","sourceRoot":"","sources":["../../../src/components/ContentPage/CustomContentPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAmC9D,MAAM,oBAAoB,GAAkB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CACtF,MAAM,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;AAE1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAClC,CAAC,EACC,SAAS,GAAG,EAAE,EACd,OAAO,EACP,qBAAqB,EACrB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,EACxD,aAAa,GAAG,oBAAoB,GACrC,EAAE,EAAE;IACH,OAAO,YAAY;QACjB,CAAC,CAAC,UAAU,CAAC;YACT,YAAY;YACZ,aAAa,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE;YAC3D,aAAa;YACb,qBAAqB;YACrB,OAAO;SACR,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC;AAEF,SAAS,UAAU,CAAC,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,OAAO,GACQ;IACf,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QACrF,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,iBAAiB,CAAC,CAAC;KAClE;IAED,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,aAAa,CAAC;QACnB,aAAa;QACb,YAAY;QACZ,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;YACvC,OAAO,KAAC,aAAa,IAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,KAAM,OAAO,GAAI,CAAC;QAC1F,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { ProductBlockContent } from '../../components/ProductBlock/ProductBlockContent';
2
+ import type { ProductTileContent } from '../../components/ProductTile/ProductTileContent';
3
+ import { ContentPageContext } from '../../components/ContentPage/ContentPageContext';
4
+ export interface ActiveHandler {
5
+ context: ContentPageContext;
6
+ blocks?: GroupBlockDef[];
7
+ initialState?: boolean;
8
+ }
9
+ export interface GroupBlockCommonProps {
10
+ /** @title Стиль */
11
+ style?: string[];
12
+ /** @title Теги */
13
+ tags?: string[];
14
+ }
15
+ /**
16
+ * @title Продуктовый блок
17
+ * @default {"blockType": "ProductBlock"}
18
+ */
19
+ export declare type ProductBlockDef = ProductBlockContent & GroupBlockCommonProps & {
20
+ blockType: 'ProductBlock';
21
+ };
22
+ /**
23
+ * @title Продуктовая плитка
24
+ * @default {"blockType": "ProductTile"}
25
+ */
26
+ export declare type ProductTileDef = ProductTileContent & GroupBlockCommonProps & {
27
+ blockType: 'ProductTile';
28
+ };
29
+ /**
30
+ * @title Выберите блок
31
+ */
32
+ export declare type EmptyOption = null;
33
+ /**
34
+ * @title Содержимое блока
35
+ */
36
+ export declare type GroupBlockDef = EmptyOption | ProductBlockDef | ProductTileDef;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BlocksTypeProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlocksTypeProps.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/BlocksTypeProps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare const EmbeddableGroupBlocks: {
2
+ ProductBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../ProductBlock/ProductBlock").ProductBlockProps, any>, context?: any) => any;
3
+ ProductTile: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("../ProductTile/ProductTile").ProductTileProps, any>, context?: any) => any;
4
+ };
@@ -0,0 +1,7 @@
1
+ import { ProductBlock } from '../ProductBlock/ProductBlock.js';
2
+ import { ProductTile } from '../ProductTile/ProductTile.js';
3
+ export const EmbeddableGroupBlocks = {
4
+ ProductBlock,
5
+ ProductTile,
6
+ };
7
+ //# sourceMappingURL=EmbeddableGroupBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddableGroupBlocks.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/EmbeddableGroupBlocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,WAAW;CACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UniBlockProps } from '../../types';
2
+ import type { GroupBlockContent, GroupBlockTab } from './GroupBlockContent';
3
+ export interface TabsItemProps extends GroupBlockTab {
4
+ count?: number;
5
+ }
6
+ export interface GroupBlockProps extends GroupBlockContent, UniBlockProps {
7
+ tabs?: TabsItemProps[];
8
+ }
9
+ export declare const GroupBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<GroupBlockProps, any>, context?: any) => any;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { GroupBlockTabs } from './GroupBlockTabs.js';
4
+ import { GroupBlocksItem } from './GroupBlocksItem.js';
5
+ import { filterBlocksByTag } from './filterBlocksByTag.js';
6
+ export const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [] }) => {
7
+ const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
8
+ const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
9
+ const tabsNewMap = tabs?.map((tab) => {
10
+ const count = tab.tag
11
+ ? groupBlocks.filter((block) => block?.tags?.includes(`${tab.tag}`)).length
12
+ : groupBlocks.length;
13
+ return { ...tab, count };
14
+ });
15
+ return (_jsxs("section", { id: anchor, className: `box-border gap-1 h-12 ${className}`, children: [tabsNewMap?.length ? (_jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap })) : null, groupBlocks.length ? (_jsx("div", { className: "list-none", children: _jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks }) })) : null] }));
16
+ });
17
+ //# sourceMappingURL=GroupBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupBlock.js","sourceRoot":"","sources":["../../../src/components/GroupBlock/GroupBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE,EAAE;IACrE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG;YACnB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;YAC3E,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QAEvB,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,mBAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,SAAS,EAAE,aACjE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CACpB,KAAC,cAAc,IAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAI,CACxF,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CACpB,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,GAAI,GAC9D,CACP,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}