@redneckz/wildless-cms-uni-blocks 0.9.4 → 0.9.6

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 (225) hide show
  1. package/bin/migration-scripts/0.8.29.js +1 -0
  2. package/bin/migration-scripts/0.9.1.js +5 -4
  3. package/bundle/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  4. package/bundle/BlockRenderer/renderBlock.d.ts +5 -1
  5. package/bundle/blocks.schema.json +1 -1
  6. package/bundle/bundle.umd.js +92 -58
  7. package/bundle/bundle.umd.min.js +1 -1
  8. package/bundle/components/Calculator/CalculatorContent.d.ts +15 -1
  9. package/bundle/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  10. package/bundle/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  11. package/bundle/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  12. package/bundle/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  13. package/bundle/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  14. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  15. package/bundle/ui-kit/BlockWrapper.d.ts +0 -1
  16. package/bundle/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  17. package/dist/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  18. package/dist/BlockRenderer/renderBlock.d.ts +5 -1
  19. package/dist/BlockRenderer/renderBlock.js +2 -2
  20. package/dist/BlockRenderer/renderBlock.js.map +1 -1
  21. package/dist/components/Calculator/CalculatorContent.d.ts +15 -1
  22. package/dist/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  23. package/dist/components/Calculator/CreditCalculatorForm.js +19 -4
  24. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  25. package/dist/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  26. package/dist/components/Calculator/constants.js +1 -0
  27. package/dist/components/Calculator/constants.js.map +1 -1
  28. package/dist/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  29. package/dist/components/Calculator/useCreditCalculatorParams.js +34 -8
  30. package/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  31. package/dist/components/Carousel/Carousel.js +11 -13
  32. package/dist/components/Carousel/Carousel.js.map +1 -1
  33. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  34. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  35. package/dist/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  36. package/dist/components/CarouselEventCard/CarouselEventCard.js +4 -7
  37. package/dist/components/CarouselEventCard/CarouselEventCard.js.map +1 -1
  38. package/dist/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  39. package/dist/components/CarouselProductCard/CarouselProductCard.js +6 -9
  40. package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  41. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +2 -5
  42. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  43. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  44. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -7
  45. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  46. package/dist/components/StepsBlock/renderStep.js +3 -7
  47. package/dist/components/StepsBlock/renderStep.js.map +1 -1
  48. package/dist/components/VerticalLayout/VerticalLayout.js +6 -2
  49. package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  50. package/dist/ui-kit/BlockWrapper.d.ts +0 -1
  51. package/dist/ui-kit/BlockWrapper.js +2 -2
  52. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  53. package/dist/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  54. package/dist/ui-kit/LinkWrapper/LinkWrapper.js +12 -0
  55. package/dist/ui-kit/LinkWrapper/LinkWrapper.js.map +1 -0
  56. package/lib/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  57. package/lib/BlockRenderer/renderBlock.d.ts +5 -1
  58. package/lib/BlockRenderer/renderBlock.js +2 -2
  59. package/lib/BlockRenderer/renderBlock.js.map +1 -1
  60. package/lib/common.css +1 -1
  61. package/lib/components/Calculator/CalculatorContent.d.ts +15 -1
  62. package/lib/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  63. package/lib/components/Calculator/CreditCalculatorForm.js +19 -4
  64. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  65. package/lib/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  66. package/lib/components/Calculator/constants.js +1 -0
  67. package/lib/components/Calculator/constants.js.map +1 -1
  68. package/lib/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  69. package/lib/components/Calculator/useCreditCalculatorParams.js +34 -8
  70. package/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  71. package/lib/components/Carousel/Carousel.js +11 -13
  72. package/lib/components/Carousel/Carousel.js.map +1 -1
  73. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  74. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  75. package/lib/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  76. package/lib/components/CarouselEventCard/CarouselEventCard.js +4 -7
  77. package/lib/components/CarouselEventCard/CarouselEventCard.js.map +1 -1
  78. package/lib/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  79. package/lib/components/CarouselProductCard/CarouselProductCard.js +6 -9
  80. package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  81. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +2 -5
  82. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  83. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  84. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -7
  85. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  86. package/lib/components/StepsBlock/renderStep.js +3 -7
  87. package/lib/components/StepsBlock/renderStep.js.map +1 -1
  88. package/lib/components/VerticalLayout/VerticalLayout.js +6 -2
  89. package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  90. package/lib/ui-kit/BlockWrapper.d.ts +0 -1
  91. package/lib/ui-kit/BlockWrapper.js +2 -2
  92. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  93. package/lib/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  94. package/lib/ui-kit/LinkWrapper/LinkWrapper.js +10 -0
  95. package/lib/ui-kit/LinkWrapper/LinkWrapper.js.map +1 -0
  96. package/mobile/bundle/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  97. package/mobile/bundle/BlockRenderer/renderBlock.d.ts +5 -1
  98. package/mobile/bundle/bundle.umd.js +10 -7
  99. package/mobile/bundle/bundle.umd.min.js +1 -1
  100. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +15 -1
  101. package/mobile/bundle/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  102. package/mobile/bundle/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  103. package/mobile/bundle/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  104. package/mobile/bundle/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  105. package/mobile/bundle/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  106. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  107. package/mobile/bundle/ui-kit/BlockWrapper.d.ts +0 -1
  108. package/mobile/bundle/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  109. package/mobile/dist/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  110. package/mobile/dist/BlockRenderer/renderBlock.d.ts +5 -1
  111. package/mobile/dist/BlockRenderer/renderBlock.js +2 -2
  112. package/mobile/dist/BlockRenderer/renderBlock.js.map +1 -1
  113. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +15 -1
  114. package/mobile/dist/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  115. package/mobile/dist/components/Calculator/CreditCalculatorForm.js +19 -4
  116. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  117. package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  118. package/mobile/dist/components/Calculator/constants.js +1 -0
  119. package/mobile/dist/components/Calculator/constants.js.map +1 -1
  120. package/mobile/dist/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  121. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js +34 -8
  122. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  123. package/mobile/dist/components/Carousel/Carousel.js +11 -13
  124. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  125. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  126. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  127. package/mobile/dist/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  128. package/mobile/dist/components/CarouselEventCard/CarouselEventCard.js +4 -7
  129. package/mobile/dist/components/CarouselEventCard/CarouselEventCard.js.map +1 -1
  130. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  131. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +6 -9
  132. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  133. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +2 -5
  134. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  135. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  136. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -7
  137. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  138. package/mobile/dist/components/StepsBlock/renderStep.js +3 -7
  139. package/mobile/dist/components/StepsBlock/renderStep.js.map +1 -1
  140. package/mobile/dist/components/VerticalLayout/VerticalLayout.js +6 -2
  141. package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  142. package/mobile/dist/ui-kit/BlockWrapper.d.ts +0 -1
  143. package/mobile/dist/ui-kit/BlockWrapper.js +2 -2
  144. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  145. package/mobile/dist/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  146. package/mobile/dist/ui-kit/LinkWrapper/LinkWrapper.js +12 -0
  147. package/mobile/dist/ui-kit/LinkWrapper/LinkWrapper.js.map +1 -0
  148. package/mobile/lib/BlockRenderer/BlockRendererOptions.d.ts +0 -2
  149. package/mobile/lib/BlockRenderer/renderBlock.d.ts +5 -1
  150. package/mobile/lib/BlockRenderer/renderBlock.js +2 -2
  151. package/mobile/lib/BlockRenderer/renderBlock.js.map +1 -1
  152. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +15 -1
  153. package/mobile/lib/components/Calculator/CreditCalculatorForm.d.ts +2 -2
  154. package/mobile/lib/components/Calculator/CreditCalculatorForm.js +19 -4
  155. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  156. package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  157. package/mobile/lib/components/Calculator/constants.js +1 -0
  158. package/mobile/lib/components/Calculator/constants.js.map +1 -1
  159. package/mobile/lib/components/Calculator/useCreditCalculatorParams.d.ts +3 -1
  160. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js +34 -8
  161. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  162. package/mobile/lib/components/Carousel/Carousel.js +11 -13
  163. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  164. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  165. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  166. package/mobile/lib/components/CarouselEventCard/CarouselEventCard.d.ts +1 -1
  167. package/mobile/lib/components/CarouselEventCard/CarouselEventCard.js +4 -7
  168. package/mobile/lib/components/CarouselEventCard/CarouselEventCard.js.map +1 -1
  169. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.d.ts +1 -1
  170. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +6 -9
  171. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  172. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +2 -5
  173. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  174. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +1 -1
  175. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +4 -7
  176. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  177. package/mobile/lib/components/StepsBlock/renderStep.js +3 -7
  178. package/mobile/lib/components/StepsBlock/renderStep.js.map +1 -1
  179. package/mobile/lib/components/VerticalLayout/VerticalLayout.js +6 -2
  180. package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  181. package/mobile/lib/ui-kit/BlockWrapper.d.ts +0 -1
  182. package/mobile/lib/ui-kit/BlockWrapper.js +2 -2
  183. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  184. package/mobile/lib/ui-kit/LinkWrapper/LinkWrapper.d.ts +8 -0
  185. package/mobile/lib/ui-kit/LinkWrapper/LinkWrapper.js +10 -0
  186. package/mobile/lib/ui-kit/LinkWrapper/LinkWrapper.js.map +1 -0
  187. package/mobile/src/BlockRenderer/BlockRendererOptions.ts +0 -2
  188. package/mobile/src/BlockRenderer/renderBlock.tsx +7 -3
  189. package/mobile/src/components/Calculator/Calculator.example.json +6 -0
  190. package/mobile/src/components/Calculator/CalculatorContent.ts +16 -1
  191. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +89 -29
  192. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +2 -2
  193. package/mobile/src/components/Calculator/constants.ts +1 -0
  194. package/mobile/src/components/Calculator/useCreditCalculatorParams.ts +46 -8
  195. package/mobile/src/components/Carousel/Carousel.tsx +9 -11
  196. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +2 -1
  197. package/mobile/src/components/CarouselEventCard/CarouselEventCard.tsx +19 -26
  198. package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +16 -18
  199. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -20
  200. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +28 -28
  201. package/mobile/src/components/StepsBlock/renderStep.tsx +6 -5
  202. package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +6 -2
  203. package/mobile/src/ui-kit/BlockWrapper.tsx +3 -6
  204. package/mobile/src/ui-kit/LinkWrapper/LinkWrapper.tsx +21 -0
  205. package/package.json +1 -1
  206. package/src/BlockRenderer/BlockRendererOptions.ts +0 -2
  207. package/src/BlockRenderer/renderBlock.tsx +7 -3
  208. package/src/components/Calculator/Calculator.example.json +6 -0
  209. package/src/components/Calculator/Calculator.fixture.tsx +6 -0
  210. package/src/components/Calculator/CalculatorContent.ts +16 -1
  211. package/src/components/Calculator/CreditCalculatorForm.tsx +89 -29
  212. package/src/components/Calculator/DepositCalculatorForm.tsx +2 -2
  213. package/src/components/Calculator/constants.ts +1 -0
  214. package/src/components/Calculator/useCreditCalculatorParams.ts +46 -8
  215. package/src/components/Carousel/Carousel.tsx +9 -11
  216. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +2 -1
  217. package/src/components/CarouselEventCard/CarouselEventCard.tsx +19 -26
  218. package/src/components/CarouselProductCard/CarouselProductCard.tsx +16 -18
  219. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -20
  220. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +28 -28
  221. package/src/components/StepsBlock/StepsBlock.fixture.tsx +3 -3
  222. package/src/components/StepsBlock/renderStep.tsx +6 -5
  223. package/src/components/VerticalLayout/VerticalLayout.tsx +6 -2
  224. package/src/ui-kit/BlockWrapper.tsx +3 -6
  225. package/src/ui-kit/LinkWrapper/LinkWrapper.tsx +21 -0
@@ -1,17 +1,17 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { BlockVersion } from '../../model/BlockVersion';
3
+ import type { UniBlockProps } from '../../model/JSXBlock';
4
+ import type { Picture } from '../../model/Picture';
2
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
3
- import { HEADLINE_SMALL_VERSION } from '../Headline/headlineVersionStyles';
6
+ import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
4
7
  import { Img } from '../../ui-kit/Img/Img';
8
+ import { LinkWrapper } from '../../ui-kit/LinkWrapper/LinkWrapper';
5
9
  import { List } from '../../ui-kit/List/List';
6
10
  import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
7
- import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
8
- import { style } from '../../utils/style';
9
11
  import { Text } from '../../ui-kit/Text/Text';
10
- import { useLink } from '../../hooks/useLink';
11
- import type { BlockVersion } from '../../model/BlockVersion';
12
+ import { style } from '../../utils/style';
13
+ import { HEADLINE_SMALL_VERSION } from '../Headline/headlineVersionStyles';
12
14
  import type { CarouselProductCardContent, ListProps } from './CarouselProductCardContent';
13
- import type { Picture } from '../../model/Picture';
14
- import type { UniBlockProps } from '../../model/JSXBlock';
15
15
 
16
16
  export interface CarouselProductCardProps extends CarouselProductCardContent, UniBlockProps {}
17
17
 
@@ -32,31 +32,25 @@ export const CarouselProductCard = JSX<CarouselProductCardProps>(
32
32
  version = 'primary',
33
33
  ...rest
34
34
  }) => {
35
- const link = useLink();
36
- const adjustedProps = link({ href, target });
37
- const tagName = href ? 'a' : 'section';
38
-
39
35
  return (
40
36
  <BlockWrapper
41
37
  className={style(
42
- 'flex flex-col justify-between items-stretch min-w-[260px] h-full w-full p-6',
38
+ 'justify-between min-w-[260px]',
43
39
  'box-border border-solid border border-gray',
44
40
  align,
45
41
  className,
46
42
  )}
47
- extraProps={adjustedProps}
48
- tag={tagName}
49
43
  version={version}
50
44
  {...rest}
51
45
  >
52
- <div className="flex flex-col h-full">
46
+ <LinkWrapper className="p-6" href={href} target={target}>
53
47
  {renderImage(icon)}
54
48
  {renderCardTitle(headlineSmallVersion, title)}
55
49
  {renderDescription(description, title)}
56
50
  {renderItems(items, isDotted, version)}
57
51
  {renderAdditionalDescription(additionalDescription)}
58
- </div>
59
- {renderButtonsSection([button], { buttonClassName: 'mt-6 w-full' })}
52
+ </LinkWrapper>
53
+ {renderButtonsSection([button], { className: 'p-6 pt-0', isVertical: true })}
60
54
  </BlockWrapper>
61
55
  );
62
56
  },
@@ -72,7 +66,11 @@ const renderImage = (image?: Picture) => (
72
66
  );
73
67
 
74
68
  const renderCardTitle = (headlineSmallVersion: string, title?: string) =>
75
- title ? <Text size={HEADLINE_SMALL_VERSION[headlineSmallVersion]}>{title}</Text> : null;
69
+ title ? (
70
+ <div>
71
+ <Text size={HEADLINE_SMALL_VERSION[headlineSmallVersion]}>{title}</Text>
72
+ </div>
73
+ ) : null;
76
74
 
77
75
  const renderDescription = (description?: string, title?: string) =>
78
76
  description ? (
@@ -4,34 +4,29 @@ import type { UniBlockProps } from '../../model/JSXBlock';
4
4
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
5
  import { Heading } from '../../ui-kit/Heading/Heading';
6
6
  import { Img } from '../../ui-kit/Img/Img';
7
+ import { LinkWrapper } from '../../ui-kit/LinkWrapper/LinkWrapper';
7
8
  import { getIconWithVersion } from '../../utils/getIconWithVersion';
8
- import type { CarouselProgramsCardContent } from './CarouselProgramsCardContent';
9
- import { useLink } from '../../hooks/useLink';
10
9
  import { style } from '../../utils/style';
10
+ import type { CarouselProgramsCardContent } from './CarouselProgramsCardContent';
11
11
 
12
12
  export interface CarouselTariffsCardProps extends CarouselProgramsCardContent, UniBlockProps {}
13
13
 
14
14
  export const CarouselProgramsCard = JSX<CarouselTariffsCardProps>(
15
15
  ({ className = '', title, icon, list = [], href, target, ...rest }) => {
16
- const link = useLink();
17
- const adjustedProps = link({ href, target });
18
- const tagName = href ? 'a' : 'section';
19
-
20
16
  return (
21
- <BlockWrapper
22
- tag={tagName}
23
- className={style('border border-gray flex min-w-[536px]', className)}
24
- extraProps={adjustedProps}
25
- {...rest}
26
- >
27
- <div className="w-[200px] min-w-[200px] self-center">
28
- {icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
29
- {icon?.src ? <Img image={icon} /> : null}
30
- </div>
31
- <div className="p-8 pl-3 w-full">
32
- {title ? <Heading className=" mb-3.5" headingType="h5" title={title} /> : null}
33
- {list.length ? <div className="flex flex-col gap-3">{list?.map(renderList)}</div> : null}
34
- </div>
17
+ <BlockWrapper className={style('border border-gray min-w-[536px]', className)} {...rest}>
18
+ <LinkWrapper className="flex" href={href} target={target}>
19
+ <div className="w-[200px] min-w-[200px] self-center">
20
+ {icon?.icon ? <Img image={getIconWithVersion(icon)} asSVG /> : null}
21
+ {icon?.src ? <Img image={icon} /> : null}
22
+ </div>
23
+ <div className="p-8 pl-3 w-full">
24
+ {title ? <Heading className=" mb-3.5" headingType="h5" title={title} /> : null}
25
+ {list.length ? (
26
+ <div className="flex flex-col gap-3">{list?.map(renderList)}</div>
27
+ ) : null}
28
+ </div>
29
+ </LinkWrapper>
35
30
  </BlockWrapper>
36
31
  );
37
32
  },
@@ -1,16 +1,16 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../model/JSXBlock';
3
+ import type { Picture } from '../../model/Picture';
2
4
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
3
- import { getIconWithVersion } from '../../utils/getIconWithVersion';
4
5
  import { Heading } from '../../ui-kit/Heading/Heading';
5
6
  import { Img } from '../../ui-kit/Img/Img';
7
+ import { LinkWrapper } from '../../ui-kit/LinkWrapper/LinkWrapper';
6
8
  import { List } from '../../ui-kit/List/List';
7
9
  import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
8
- import { SocialMedia } from '../Footer/SocialMedia';
10
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
9
11
  import { style } from '../../utils/style';
10
- import { useLink } from '../../hooks/useLink';
12
+ import { SocialMedia } from '../Footer/SocialMedia';
11
13
  import type { CarouselRecommendationCardContent } from './CarouselRecommendationCardContent';
12
- import type { UniBlockProps } from '../../model/JSXBlock';
13
- import type { Picture } from '../../model/Picture';
14
14
 
15
15
  const BORDER_STYLE =
16
16
  'border border-solid border-gray group-data-secondary:border-white/50 group-data-gray:border-main-divider';
@@ -33,10 +33,6 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
33
33
  version = 'primary',
34
34
  ...rest
35
35
  }) => {
36
- const link = useLink();
37
- const adjustedProps = link({ href, target });
38
- const tagName = href ? 'a' : 'section';
39
-
40
36
  return (
41
37
  <BlockWrapper
42
38
  className={style(
@@ -44,30 +40,34 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
44
40
  BORDER_STYLE,
45
41
  className,
46
42
  )}
47
- extraProps={adjustedProps}
48
- tag={tagName}
49
43
  version={version}
50
44
  {...rest}
51
45
  >
52
- <div className="self-center">
53
- {title ? <Heading headingType="h3" as="h3" className="mb-8" title={title} /> : null}
54
- </div>
55
- <div className="mb-5">
56
- {description ? (
57
- <Paragraph size="text-xl" font="font-light" color="group-data-gray:text-secondary-text">
58
- {description}
59
- </Paragraph>
60
- ) : null}
61
- </div>
62
- <div className="flex align-center w-full">
63
- <div className="w-1/2 h-full flex flex-col flex-1 justify-end">
64
- {items.length ? (
65
- <List className="text-xl-light flex flex-col gap-2 pb-16 mb-3" items={items} />
46
+ <LinkWrapper className="flex flex-col" href={href} target={target}>
47
+ <div className="self-center">
48
+ {title ? <Heading headingType="h3" as="h3" className="mb-8" title={title} /> : null}
49
+ </div>
50
+ <div className="mb-5">
51
+ {description ? (
52
+ <Paragraph
53
+ size="text-xl"
54
+ font="font-light"
55
+ color="group-data-gray:text-secondary-text"
56
+ >
57
+ {description}
58
+ </Paragraph>
66
59
  ) : null}
67
- {socialMedia.length ? <SocialMedia className="pb-0" media={socialMedia} /> : null}
68
60
  </div>
69
- {renderIconBlock(icon, items)}
70
- </div>
61
+ <div className="flex align-center w-full">
62
+ <div className="w-1/2 h-full flex flex-col flex-1 justify-end">
63
+ {items.length ? (
64
+ <List className="text-xl-light flex flex-col gap-2 pb-16 mb-3" items={items} />
65
+ ) : null}
66
+ {socialMedia.length ? <SocialMedia className="pb-0" media={socialMedia} /> : null}
67
+ </div>
68
+ {renderIconBlock(icon, items)}
69
+ </div>
70
+ </LinkWrapper>
71
71
  </BlockWrapper>
72
72
  );
73
73
  },
@@ -5,7 +5,6 @@ import { Button } from '../../ui-kit/Button/Button';
5
5
  import { List } from '../../ui-kit/List/List';
6
6
  import { RichText } from '../../ui-kit/RichText/RichText';
7
7
  import { Text } from '../../ui-kit/Text/Text';
8
- import { assertUnreachable } from '../../utils/assertUnreachable';
9
8
  import { style } from '../../utils/style';
10
9
  import type { DefaultStep, Step } from './StepsBlockContent';
11
10
  import type { StyleType } from './StepsBlockStyleMaps';
@@ -19,8 +18,6 @@ interface RenderStepProps {
19
18
  // TODO: Create universal function for this case
20
19
  export const renderStep =
21
20
  (props: RenderStepProps) =>
22
- // Linter doesn't understand that switch processes all cases
23
- // eslint-disable-next-line consistent-return
24
21
  (step: Step, i: number, arr: Step[]): VNode => {
25
22
  const { type } = step;
26
23
 
@@ -32,9 +29,13 @@ export const renderStep =
32
29
  case 'default':
33
30
  return renderDefaultStep(props)(step, i, arr);
34
31
  case 'rte':
35
- return <RichText __html={step.__html} />;
32
+ return (
33
+ <div key={String(i)} className={style('text-center', getContainerWidth(arr.length))}>
34
+ <RichText __html={step.__html} />
35
+ </div>
36
+ );
36
37
  default:
37
- assertUnreachable(step);
38
+ return null;
38
39
  }
39
40
  };
40
41
 
@@ -1,4 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { renderBlock } from '../../BlockRenderer/renderBlock';
2
3
  import { renderChildren } from '../../BlockRenderer/renderChildren';
3
4
  import type { AlignTypeWithStretch } from '../../model/AlignType';
4
5
  import type { JSXBlock, UniBlockProps } from '../../model/JSXBlock';
@@ -25,7 +26,6 @@ export const VerticalLayout: JSXBlock<VerticalLayoutProps> = JSX<VerticalLayoutP
25
26
  isInnerPadding = true,
26
27
  version = 'transparent',
27
28
  isTheme = false,
28
- options,
29
29
  ...rest
30
30
  }) => {
31
31
  const innerPaddingStyle = isInnerPadding ? '' : '!p-0';
@@ -43,7 +43,11 @@ export const VerticalLayout: JSXBlock<VerticalLayoutProps> = JSX<VerticalLayoutP
43
43
  isTheme={isTheme}
44
44
  {...rest}
45
45
  >
46
- {renderChildren({ ...rest, options: { ...options, className: innerPaddingStyle } })}
46
+ {renderChildren({
47
+ ...rest,
48
+ renderProps: (block, options) =>
49
+ renderBlock(block, options, { className: innerPaddingStyle }),
50
+ })}
47
51
  </BlockWrapper>
48
52
  );
49
53
  },
@@ -1,15 +1,14 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { defaultEventBus } from '../EventBus/defaultEventBus';
4
- import { useBlockIntersectionObserver } from '../services/BlockRouter/useBlockIntersectionObserver';
5
- import { style } from '../utils/style';
6
4
  import type { BlockVersion } from '../model/BlockVersion';
7
5
  import type { UniBlockProps } from '../model/JSXBlock';
6
+ import { useBlockIntersectionObserver } from '../services/BlockRouter/useBlockIntersectionObserver';
7
+ import { style } from '../utils/style';
8
8
 
9
9
  interface BlockWrapperProps extends UniBlockProps {
10
10
  tag?: keyof HTMLElementTagNameMap;
11
11
  role?: string;
12
- extraProps?: Record<string, any>;
13
12
  }
14
13
 
15
14
  export const blockStyles: Record<BlockVersion, string> = {
@@ -24,11 +23,10 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
24
23
  ({
25
24
  className = '',
26
25
  version = 'primary',
26
+ isTheme = true,
27
27
  block,
28
28
  tag = 'section',
29
29
  role,
30
- isTheme = true,
31
- extraProps = {},
32
30
  children,
33
31
  }) => {
34
32
  const Tag: any = tag;
@@ -57,7 +55,6 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
57
55
  {...(version && isTheme ? { 'data-ver': version } : {})}
58
56
  {...(block?.anchor ? { id: block.anchor, ref } : {})}
59
57
  role={role}
60
- {...extraProps}
61
58
  >
62
59
  {children}
63
60
  </Tag>
@@ -0,0 +1,21 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import type { Target } from '../../model/LinkProps';
4
+
5
+ interface LinkWrapperProps {
6
+ className?: string;
7
+ href?: string;
8
+ target?: Target;
9
+ }
10
+
11
+ export const LinkWrapper = JSX<LinkWrapperProps>(({ className = '', href, target, children }) => {
12
+ const link = useLink();
13
+ const linkProps = link({ href, target });
14
+ const Tag = href ? 'a' : 'div';
15
+
16
+ return (
17
+ <Tag className={className} {...(href ? linkProps : {})}>
18
+ {children}
19
+ </Tag>
20
+ );
21
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.9.4",
3
+ "version": "0.9.6",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -9,6 +9,4 @@ export interface BlockRendererOptions {
9
9
  blocksRegistry?: BlocksRegistry;
10
10
  parent?: Slot;
11
11
  ancestors?: BlockAncestors;
12
- className?: string;
13
- extraProps?: Record<string, any>;
14
12
  }
@@ -8,14 +8,18 @@ const DEFAULT_ANCESTORS: BlockAncestors = [];
8
8
 
9
9
  const defaultStyle = 'col-span-12';
10
10
 
11
- export function renderBlock(block: BlockDef, options: BlockRendererOptions) {
11
+ type ExtraProps = Partial<Record<string, any> & { className: string }>;
12
+
13
+ export function renderBlock(
14
+ block: BlockDef,
15
+ options: BlockRendererOptions,
16
+ { className, ...extraProps }: ExtraProps = {},
17
+ ) {
12
18
  const {
13
19
  key,
14
20
  blockDecorator = defaultBlockDecorator,
15
21
  blocksRegistry = {},
16
22
  ancestors = DEFAULT_ANCESTORS,
17
- className = '',
18
- extraProps = {},
19
23
  } = options;
20
24
  const { type } = block;
21
25
 
@@ -16,6 +16,12 @@
16
16
  "version": "primary"
17
17
  }
18
18
  ],
19
+ "paramsViewSettings": {
20
+ "isShowSalaryClient": true,
21
+ "isShowStateEmployee": true,
22
+ "isShowPensionClient": true,
23
+ "isShowInsurance": true
24
+ },
19
25
  "footnote": "Расчёт является предварительным. Точные условия будут предоставлены в отделении Банка. "
20
26
  }
21
27
  }
@@ -32,6 +32,12 @@ const bottomFootnote =
32
32
 
33
33
  const CREDIT_CALCULATOR_BLOCK: CreditCalculatorParamsDef = {
34
34
  calcType: 'CreditCalculatorForm',
35
+ paramsViewSettings: {
36
+ isShowSalaryClient: true,
37
+ isShowStateEmployee: true,
38
+ isShowPensionClient: true,
39
+ isShowInsurance: true,
40
+ },
35
41
  buttons: buttons,
36
42
  footnote,
37
43
  };
@@ -10,6 +10,21 @@ export type CommonCalculatorProps = Footnote &
10
10
  sourceBookDir?: string;
11
11
  };
12
12
 
13
+ export interface CreditCalculatorParamsViewSettings {
14
+ /** @title Получаю зарплату на счёт в Россельхозбанке */
15
+ isShowSalaryClient?: boolean;
16
+ /** @title Работаю в бюджетной организации */
17
+ isShowStateEmployee?: boolean;
18
+ /** @title Получаю пенсию на карту Россельхозбанка */
19
+ isShowPensionClient?: boolean;
20
+ /** @title Комплексная страховая защита */
21
+ isShowInsurance?: boolean;
22
+ }
23
+ export interface CreditCalculatorProps extends CommonCalculatorProps {
24
+ /** @title Настройка отображения чекбоксов */
25
+ paramsViewSettings?: CreditCalculatorParamsViewSettings;
26
+ }
27
+
13
28
  export interface BusinessDepositCalculatorProps extends CommonCalculatorProps {
14
29
  /** @title Сноска снизу блока */
15
30
  bottomFootnote?: string;
@@ -53,7 +68,7 @@ export interface CalculatorParams {
53
68
  * @default {"calcType": "CreditCalculatorForm"}
54
69
  */
55
70
  export type CreditCalculatorParamsDef = TitleProps &
56
- CommonCalculatorProps & {
71
+ CreditCalculatorProps & {
57
72
  calcType: 'CreditCalculatorForm';
58
73
  };
59
74
 
@@ -3,7 +3,10 @@ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
4
4
  import { Checkbox } from '../../ui-kit/Checkbox/Checkbox';
5
5
  import { style } from '../../utils/style';
6
- import type { CommonCalculatorProps } from './CalculatorContent';
6
+ import type {
7
+ CreditCalculatorParamsViewSettings,
8
+ CreditCalculatorProps,
9
+ } from './CalculatorContent';
7
10
  import { CalculatorValueBlock } from './CalculatorValueBlock';
8
11
  import { DEFAULT_MONTHS, DEFAULT_SUM } from './constants';
9
12
  import { Rate } from './Rate';
@@ -11,18 +14,23 @@ import { renderFootnote } from './renderFootnote';
11
14
  import { renderMonthsInput } from './renderMonthsInput';
12
15
  import { renderPaymentType } from './renderPaymentType';
13
16
  import { renderWantedSumInput } from './renderWantedSumInput';
14
- import { useCreditCalculatorParams } from './useCreditCalculatorParams';
17
+ import { CreditCalculatorParams, useCreditCalculatorParams } from './useCreditCalculatorParams';
15
18
 
16
- export interface CreditCalculatorProp extends CommonCalculatorProps {
19
+ export interface CreditCalculatorProp extends CreditCalculatorProps {
17
20
  className?: string;
18
21
  }
19
22
 
20
23
  export const CreditCalculatorForm = JSX<CreditCalculatorProp>(
21
- ({ className = '', sourceBookDir, buttons, footnote }) => {
24
+ ({ className = '', sourceBookDir, buttons, footnote, paramsViewSettings }) => {
22
25
  const [isAnnuity, toggleIsAnnuity] = useState(false);
23
- const [isInsurance, toggleIsInsurance] = useState(true);
24
26
  const [isSalaryClient, toggleIsSalaryClient] = useState(false);
27
+ const handleIsSalaryClient = useCallback((_: boolean) => toggleIsSalaryClient(_), []);
25
28
  const [isStateEmployee, toggleIsStateEmployee] = useState(false);
29
+ const handleIsStateEmployee = useCallback((_: boolean) => toggleIsStateEmployee(_), []);
30
+ const [isPensionClient, toggleIsPensionClient] = useState(false);
31
+ const handleIsPensionClient = useCallback((_: boolean) => toggleIsPensionClient(_), []);
32
+ const [isInsurance, toggleIsInsurance] = useState(true);
33
+ const handleIsInsurance = useCallback((_: boolean) => toggleIsInsurance(_), []);
26
34
  const [moneyValue, setMoneyValue] = useState(DEFAULT_SUM);
27
35
  const handleMoneyValue = useCallback((_: number) => setMoneyValue(_), []);
28
36
  const [monthsValue, setMonthsValue] = useState(DEFAULT_MONTHS);
@@ -31,11 +39,16 @@ export const CreditCalculatorForm = JSX<CreditCalculatorProp>(
31
39
  isAnnuity,
32
40
  isInsurance,
33
41
  isSalaryClient,
42
+ isPensionClient,
34
43
  isStateEmployee,
35
44
  moneyValue,
36
45
  monthsValue,
37
46
  };
38
- const calculatorParams = useCreditCalculatorParams(userInputParams, sourceBookDir);
47
+ const calculatorParams = useCreditCalculatorParams(
48
+ userInputParams,
49
+ sourceBookDir,
50
+ paramsViewSettings,
51
+ );
39
52
 
40
53
  return (
41
54
  <section className={style('flex justify-between', className)}>
@@ -47,31 +60,17 @@ export const CreditCalculatorForm = JSX<CreditCalculatorProp>(
47
60
  )}
48
61
  {renderMonthsInput('Срок кредита, месяцев', calculatorParams, handleMonthsValue)}
49
62
  <div className="mt-7">
50
- <Checkbox
51
- text="Получаю зарплату на счёт в Россельхозбанке"
52
- checked={isSalaryClient}
53
- onChange={toggleIsSalaryClient}
54
- />
55
- <Checkbox
56
- className="mt-3"
57
- text="Работаю в бюджетной организации"
58
- checked={isStateEmployee}
59
- onChange={toggleIsStateEmployee}
60
- />
61
- <Checkbox
62
- className="mt-3"
63
- text="Комплексная страховая защита"
64
- checked={isInsurance}
65
- onChange={toggleIsInsurance}
66
- />
63
+ {renderCreditParamsForm({
64
+ ...calculatorParams,
65
+ ...paramsViewSettings,
66
+ handleIsSalaryClient,
67
+ handleIsStateEmployee,
68
+ handleIsPensionClient,
69
+ handleIsInsurance,
70
+ })}
67
71
  </div>
68
72
  </div>
69
- <Rate
70
- title="Ставка"
71
- rate={calculatorParams.rate}
72
- rateBlockClassName="tracking-[-25px]"
73
- unit="%"
74
- />
73
+ {renderRate(calculatorParams.rate)}
75
74
  <div className="w-full max-w-[350px]">
76
75
  <CalculatorValueBlock
77
76
  title={'Ежемесячный платеж'}
@@ -90,3 +89,64 @@ export const CreditCalculatorForm = JSX<CreditCalculatorProp>(
90
89
  );
91
90
  },
92
91
  );
92
+
93
+ const renderRate = (rate: number) => (
94
+ <Rate title="Ставка" rate={rate} rateBlockClassName="tracking-[-25px]" unit="%" />
95
+ );
96
+
97
+ type CreditParamsFormProps = CreditCalculatorParams &
98
+ CreditCalculatorParamsViewSettings & {
99
+ handleIsSalaryClient?: (value: boolean) => void;
100
+ handleIsStateEmployee?: (value: boolean) => void;
101
+ handleIsPensionClient?: (value: boolean) => void;
102
+ handleIsInsurance?: (value: boolean) => void;
103
+ };
104
+
105
+ const renderCreditParamsForm = ({
106
+ isSalaryClient,
107
+ isStateEmployee,
108
+ isPensionClient,
109
+ isInsurance,
110
+ isShowSalaryClient,
111
+ isShowStateEmployee,
112
+ isShowPensionClient,
113
+ isShowInsurance,
114
+ handleIsSalaryClient,
115
+ handleIsStateEmployee,
116
+ handleIsPensionClient,
117
+ handleIsInsurance,
118
+ }: CreditParamsFormProps) => (
119
+ <div>
120
+ {isShowSalaryClient ? (
121
+ <Checkbox
122
+ text="Получаю зарплату на счёт в Россельхозбанке"
123
+ checked={isSalaryClient}
124
+ onChange={handleIsSalaryClient}
125
+ />
126
+ ) : null}
127
+ {isShowStateEmployee ? (
128
+ <Checkbox
129
+ className="mt-3"
130
+ text="Работаю в бюджетной организации"
131
+ checked={isStateEmployee}
132
+ onChange={handleIsStateEmployee}
133
+ />
134
+ ) : null}
135
+ {isShowPensionClient ? (
136
+ <Checkbox
137
+ className="mt-3"
138
+ text="Получаю пенсию на карту Россельхозбанка"
139
+ checked={isPensionClient}
140
+ onChange={handleIsPensionClient}
141
+ />
142
+ ) : null}
143
+ {isShowInsurance ? (
144
+ <Checkbox
145
+ className="mt-3"
146
+ text="Комплексная страховая защита"
147
+ checked={isInsurance}
148
+ onChange={handleIsInsurance}
149
+ />
150
+ ) : null}
151
+ </div>
152
+ );
@@ -4,7 +4,7 @@ import { JSX } from '@redneckz/uni-jsx';
4
4
  import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
5
5
  import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
6
6
  import { style } from '../../utils/style';
7
- import { CommonCalculatorProps, DepositCalculatorParams } from './CalculatorContent';
7
+ import { CommonCalculatorProps } from './CalculatorContent';
8
8
  import { CalculatorValueBlock } from './CalculatorValueBlock';
9
9
  import { DEFAULT_MONTHS, DEFAULT_SUM } from './constants';
10
10
  import { Rate } from './Rate';
@@ -15,7 +15,7 @@ import { renderRegistrationType } from './renderRegistrationType';
15
15
  import { renderWantedSumInput } from './renderWantedSumInput';
16
16
  import { useDepositCalculatorParams } from './useDepositCalculatorParams';
17
17
 
18
- export interface DepositCalculatorProp extends DepositCalculatorParams, CommonCalculatorProps {
18
+ export interface DepositCalculatorProp extends CommonCalculatorProps {
19
19
  className?: string;
20
20
  }
21
21
 
@@ -27,6 +27,7 @@ export const DEFAULT_CREDIT_CALCULATOR_PARAMS: CreditCalculatorSourceBookParams
27
27
  maxMonths: DEFAULT_MAX_MONTHS,
28
28
  rate: 0,
29
29
  isSalaryClient: true,
30
+ isPensionClient: false,
30
31
  isStateEmployee: true,
31
32
  isInsurance: true,
32
33
  };