@redneckz/wildless-cms-uni-blocks 0.14.534 → 0.14.536

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 (234) hide show
  1. package/bin/migration-scripts/0.14.530.js +38 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +94 -51
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Carousel/CarouselContent.d.ts +2 -0
  6. package/bundle/components/Carousel/renderCarouselCards.d.ts +2 -1
  7. package/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  8. package/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  9. package/bundle/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  10. package/bundle/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  11. package/bundle/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  12. package/bundle/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  13. package/bundle/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  14. package/bundle/ui-kit/SwipeListControl/renderDotButton.d.ts +3 -0
  15. package/bundle/ui-kit/SwipeListControl/renderNavButton.d.ts +3 -0
  16. package/dist/components/ApplicationForm/ApplicationForm.js +1 -1
  17. package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  18. package/dist/components/ApplicationForm/getField.js +1 -1
  19. package/dist/components/ApplicationForm/getField.js.map +1 -1
  20. package/dist/components/Carousel/Carousel.js +8 -3
  21. package/dist/components/Carousel/Carousel.js.map +1 -1
  22. package/dist/components/Carousel/CarouselContent.d.ts +2 -0
  23. package/dist/components/Carousel/renderCarouselCards.d.ts +2 -1
  24. package/dist/components/Carousel/renderCarouselCards.js +3 -1
  25. package/dist/components/Carousel/renderCarouselCards.js.map +1 -1
  26. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  27. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  28. package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  29. package/dist/ui-kit/LinkButton/ButtonInner.js +2 -2
  30. package/dist/ui-kit/LinkButton/ButtonInner.js.map +1 -1
  31. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  32. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +7 -2
  33. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  34. package/dist/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  35. package/dist/ui-kit/ResponseTypeDialog/useResponseTypeDialog.js.map +1 -1
  36. package/dist/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  37. package/dist/ui-kit/SwipeListControl/NavButtonProp.js +2 -0
  38. package/dist/ui-kit/SwipeListControl/NavButtonProp.js.map +1 -0
  39. package/dist/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  40. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  41. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  42. package/dist/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  43. package/dist/ui-kit/SwipeListControl/SwipeListDots.js +32 -16
  44. package/dist/ui-kit/SwipeListControl/SwipeListDots.js.map +1 -1
  45. package/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  46. package/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.js +4 -3
  47. package/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.js.map +1 -1
  48. package/dist/ui-kit/SwipeListControl/renderDotButton.d.ts +3 -0
  49. package/dist/ui-kit/SwipeListControl/renderDotButton.js +13 -0
  50. package/dist/ui-kit/SwipeListControl/renderDotButton.js.map +1 -0
  51. package/dist/ui-kit/SwipeListControl/renderNavButton.d.ts +3 -0
  52. package/dist/ui-kit/SwipeListControl/renderNavButton.js +17 -0
  53. package/dist/ui-kit/SwipeListControl/renderNavButton.js.map +1 -0
  54. package/dist/ui-kit/SwipeListControl/useSwipeListScroll.js +1 -1
  55. package/dist/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -1
  56. package/lib/common.css +1 -1
  57. package/lib/components/ApplicationForm/ApplicationForm.js +1 -1
  58. package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  59. package/lib/components/ApplicationForm/getField.js +1 -1
  60. package/lib/components/ApplicationForm/getField.js.map +1 -1
  61. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -0
  62. package/lib/components/Carousel/Carousel.fixture.mobile.d.ts +1 -0
  63. package/lib/components/Carousel/Carousel.js +8 -3
  64. package/lib/components/Carousel/Carousel.js.map +1 -1
  65. package/lib/components/Carousel/CarouselContent.d.ts +2 -0
  66. package/lib/components/Carousel/renderCarouselCards.d.ts +2 -1
  67. package/lib/components/Carousel/renderCarouselCards.js +3 -1
  68. package/lib/components/Carousel/renderCarouselCards.js.map +1 -1
  69. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  70. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  71. package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  72. package/lib/ui-kit/LinkButton/ButtonInner.js +2 -2
  73. package/lib/ui-kit/LinkButton/ButtonInner.js.map +1 -1
  74. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  75. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +7 -2
  76. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  77. package/lib/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  78. package/lib/ui-kit/ResponseTypeDialog/useResponseTypeDialog.js.map +1 -1
  79. package/lib/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  80. package/lib/ui-kit/SwipeListControl/NavButtonProp.js +2 -0
  81. package/lib/ui-kit/SwipeListControl/NavButtonProp.js.map +1 -0
  82. package/lib/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  83. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  84. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  85. package/lib/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  86. package/lib/ui-kit/SwipeListControl/SwipeListDots.js +32 -16
  87. package/lib/ui-kit/SwipeListControl/SwipeListDots.js.map +1 -1
  88. package/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  89. package/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.js +4 -3
  90. package/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.js.map +1 -1
  91. package/lib/ui-kit/SwipeListControl/renderDotButton.d.ts +2 -0
  92. package/lib/ui-kit/SwipeListControl/renderDotButton.js +10 -0
  93. package/lib/ui-kit/SwipeListControl/renderDotButton.js.map +1 -0
  94. package/lib/ui-kit/SwipeListControl/renderNavButton.d.ts +2 -0
  95. package/lib/ui-kit/SwipeListControl/renderNavButton.js +14 -0
  96. package/lib/ui-kit/SwipeListControl/renderNavButton.js.map +1 -0
  97. package/lib/ui-kit/SwipeListControl/useSwipeListScroll.js +1 -1
  98. package/lib/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -1
  99. package/mobile/bundle/bundle.umd.js +94 -51
  100. package/mobile/bundle/bundle.umd.min.js +1 -1
  101. package/mobile/bundle/components/Carousel/CarouselContent.d.ts +2 -0
  102. package/mobile/bundle/components/Carousel/renderCarouselCards.d.ts +2 -1
  103. package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  104. package/mobile/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  105. package/mobile/bundle/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  106. package/mobile/bundle/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  107. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  108. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  109. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  110. package/mobile/bundle/ui-kit/SwipeListControl/renderDotButton.d.ts +3 -0
  111. package/mobile/bundle/ui-kit/SwipeListControl/renderNavButton.d.ts +3 -0
  112. package/mobile/dist/components/ApplicationForm/ApplicationForm.js +1 -1
  113. package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  114. package/mobile/dist/components/ApplicationForm/getField.js +1 -1
  115. package/mobile/dist/components/ApplicationForm/getField.js.map +1 -1
  116. package/mobile/dist/components/Carousel/Carousel.js +8 -3
  117. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  118. package/mobile/dist/components/Carousel/CarouselContent.d.ts +2 -0
  119. package/mobile/dist/components/Carousel/renderCarouselCards.d.ts +2 -1
  120. package/mobile/dist/components/Carousel/renderCarouselCards.js +3 -1
  121. package/mobile/dist/components/Carousel/renderCarouselCards.js.map +1 -1
  122. package/mobile/dist/components/ProductBlock/ProductBlock.js +1 -1
  123. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  124. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  125. package/mobile/dist/ui-kit/LinkButton/ButtonInner.js +2 -2
  126. package/mobile/dist/ui-kit/LinkButton/ButtonInner.js.map +1 -1
  127. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  128. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +7 -2
  129. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  130. package/mobile/dist/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  131. package/mobile/dist/ui-kit/ResponseTypeDialog/useResponseTypeDialog.js.map +1 -1
  132. package/mobile/dist/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  133. package/mobile/dist/ui-kit/SwipeListControl/NavButtonProp.js +2 -0
  134. package/mobile/dist/ui-kit/SwipeListControl/NavButtonProp.js.map +1 -0
  135. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  136. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  137. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  138. package/mobile/dist/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  139. package/mobile/dist/ui-kit/SwipeListControl/SwipeListDots.js +32 -16
  140. package/mobile/dist/ui-kit/SwipeListControl/SwipeListDots.js.map +1 -1
  141. package/mobile/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  142. package/mobile/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.js +4 -3
  143. package/mobile/dist/ui-kit/SwipeListControl/SwipeListScrollButtons.js.map +1 -1
  144. package/mobile/dist/ui-kit/SwipeListControl/renderDotButton.d.ts +3 -0
  145. package/mobile/dist/ui-kit/SwipeListControl/renderDotButton.js +13 -0
  146. package/mobile/dist/ui-kit/SwipeListControl/renderDotButton.js.map +1 -0
  147. package/mobile/dist/ui-kit/SwipeListControl/renderNavButton.d.ts +3 -0
  148. package/mobile/dist/ui-kit/SwipeListControl/renderNavButton.js +17 -0
  149. package/mobile/dist/ui-kit/SwipeListControl/renderNavButton.js.map +1 -0
  150. package/mobile/dist/ui-kit/SwipeListControl/useSwipeListScroll.js +1 -1
  151. package/mobile/dist/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -1
  152. package/mobile/lib/common.css +1 -1
  153. package/mobile/lib/components/ApplicationForm/ApplicationForm.js +1 -1
  154. package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  155. package/mobile/lib/components/ApplicationForm/getField.js +1 -1
  156. package/mobile/lib/components/ApplicationForm/getField.js.map +1 -1
  157. package/mobile/lib/components/Carousel/Carousel.js +8 -3
  158. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  159. package/mobile/lib/components/Carousel/CarouselContent.d.ts +2 -0
  160. package/mobile/lib/components/Carousel/renderCarouselCards.d.ts +2 -1
  161. package/mobile/lib/components/Carousel/renderCarouselCards.js +3 -1
  162. package/mobile/lib/components/Carousel/renderCarouselCards.js.map +1 -1
  163. package/mobile/lib/components/ProductBlock/ProductBlock.js +1 -1
  164. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  165. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -1
  166. package/mobile/lib/ui-kit/LinkButton/ButtonInner.js +2 -2
  167. package/mobile/lib/ui-kit/LinkButton/ButtonInner.js.map +1 -1
  168. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -0
  169. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +7 -2
  170. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  171. package/mobile/lib/ui-kit/ResponseTypeDialog/useResponseTypeDialog.d.ts +1 -0
  172. package/mobile/lib/ui-kit/ResponseTypeDialog/useResponseTypeDialog.js.map +1 -1
  173. package/mobile/lib/ui-kit/SwipeListControl/NavButtonProp.d.ts +9 -0
  174. package/mobile/lib/ui-kit/SwipeListControl/NavButtonProp.js +2 -0
  175. package/mobile/lib/ui-kit/SwipeListControl/NavButtonProp.js.map +1 -0
  176. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.d.ts +2 -0
  177. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  178. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  179. package/mobile/lib/ui-kit/SwipeListControl/SwipeListDots.d.ts +8 -3
  180. package/mobile/lib/ui-kit/SwipeListControl/SwipeListDots.js +32 -16
  181. package/mobile/lib/ui-kit/SwipeListControl/SwipeListDots.js.map +1 -1
  182. package/mobile/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.d.ts +1 -0
  183. package/mobile/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.js +4 -3
  184. package/mobile/lib/ui-kit/SwipeListControl/SwipeListScrollButtons.js.map +1 -1
  185. package/mobile/lib/ui-kit/SwipeListControl/renderDotButton.d.ts +3 -0
  186. package/mobile/lib/ui-kit/SwipeListControl/renderDotButton.js +10 -0
  187. package/mobile/lib/ui-kit/SwipeListControl/renderDotButton.js.map +1 -0
  188. package/mobile/lib/ui-kit/SwipeListControl/renderNavButton.d.ts +3 -0
  189. package/mobile/lib/ui-kit/SwipeListControl/renderNavButton.js +14 -0
  190. package/mobile/lib/ui-kit/SwipeListControl/renderNavButton.js.map +1 -0
  191. package/mobile/lib/ui-kit/SwipeListControl/useSwipeListScroll.js +1 -1
  192. package/mobile/lib/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -1
  193. package/mobile/src/components/ApplicationForm/ApplicationForm.example.json +5 -0
  194. package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +1 -1
  195. package/mobile/src/components/ApplicationForm/getField.tsx +1 -0
  196. package/mobile/src/components/Carousel/Carousel.tsx +28 -17
  197. package/mobile/src/components/Carousel/CarouselContent.ts +2 -0
  198. package/mobile/src/components/Carousel/renderCarouselCards.tsx +8 -1
  199. package/mobile/src/components/ProductBlock/ProductBlock.tsx +7 -2
  200. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  201. package/mobile/src/ui-kit/LinkButton/ButtonInner.tsx +2 -2
  202. package/mobile/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +12 -4
  203. package/mobile/src/ui-kit/ResponseTypeDialog/useResponseTypeDialog.tsx +1 -0
  204. package/mobile/src/ui-kit/SwipeListControl/NavButtonProp.ts +11 -0
  205. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +7 -1
  206. package/mobile/src/ui-kit/SwipeListControl/SwipeListDots.tsx +69 -46
  207. package/mobile/src/ui-kit/SwipeListControl/SwipeListScrollButtons.tsx +9 -5
  208. package/mobile/src/ui-kit/SwipeListControl/renderDotButton.tsx +29 -0
  209. package/mobile/src/ui-kit/SwipeListControl/renderNavButton.tsx +33 -0
  210. package/mobile/src/ui-kit/SwipeListControl/useSwipeListScroll.ts +1 -1
  211. package/package.json +2 -2
  212. package/src/components/ApplicationForm/ApplicationForm.example.json +5 -0
  213. package/src/components/ApplicationForm/ApplicationForm.fixture.mobile.tsx +5 -0
  214. package/src/components/ApplicationForm/ApplicationForm.fixture.tsx +5 -0
  215. package/src/components/ApplicationForm/ApplicationForm.tsx +1 -1
  216. package/src/components/ApplicationForm/getField.tsx +1 -0
  217. package/src/components/Carousel/Carousel.fixture.mobile.tsx +57 -0
  218. package/src/components/Carousel/Carousel.fixture.tsx +56 -0
  219. package/src/components/Carousel/Carousel.tsx +28 -17
  220. package/src/components/Carousel/CarouselContent.ts +2 -0
  221. package/src/components/Carousel/renderCarouselCards.tsx +8 -1
  222. package/src/components/ProductBlock/ProductBlock.tsx +7 -2
  223. package/src/components/ProductBlock/ProductBlockContent.ts +3 -1
  224. package/src/components/ProductGallery/ProductGallery.fixture.tsx +17 -84
  225. package/src/ui-kit/LinkButton/ButtonInner.tsx +2 -2
  226. package/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +12 -4
  227. package/src/ui-kit/ResponseTypeDialog/useResponseTypeDialog.tsx +1 -0
  228. package/src/ui-kit/SwipeListControl/NavButtonProp.ts +11 -0
  229. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +7 -1
  230. package/src/ui-kit/SwipeListControl/SwipeListDots.tsx +69 -46
  231. package/src/ui-kit/SwipeListControl/SwipeListScrollButtons.tsx +9 -5
  232. package/src/ui-kit/SwipeListControl/renderDotButton.tsx +29 -0
  233. package/src/ui-kit/SwipeListControl/renderNavButton.tsx +33 -0
  234. package/src/ui-kit/SwipeListControl/useSwipeListScroll.ts +1 -1
@@ -2,6 +2,7 @@ import '../../setup-fixture';
2
2
 
3
3
  import { type Picture } from '../../model/Picture';
4
4
  import { type LinkButtonContent } from '../../ui-kit/LinkButton/LinkButtonContent';
5
+ import { type ProductBlockContent } from '../ProductBlock/ProductBlockContent';
5
6
  import { ProductGallery } from './ProductGallery';
6
7
 
7
8
  const percentImage: Picture = {
@@ -14,24 +15,6 @@ const percentImage: Picture = {
14
15
  alt: 'Ставка от 3,6% годовых',
15
16
  };
16
17
 
17
- const worker: Picture = {
18
- src: 'money-2.png',
19
- format: 'webp',
20
- size: {
21
- width: 280,
22
- height: 280,
23
- },
24
- };
25
-
26
- const creditCard: Picture = {
27
- src: 'credit-card-1.png',
28
- format: 'webp',
29
- size: {
30
- width: 280,
31
- height: 280,
32
- },
33
- };
34
-
35
18
  const __html = `
36
19
  <ul>
37
20
  <li>Потребительский кредит по специальной процентной ставке</li>
@@ -49,14 +32,14 @@ const buttons: LinkButtonContent[] = [
49
32
  },
50
33
  ];
51
34
 
52
- const buttonsSecondary: LinkButtonContent[] = [
53
- {
54
- href: 'https://rshb.ru',
55
- text: 'Подробнее',
56
- target: '_blank',
57
- version: 'white',
58
- },
59
- ];
35
+ const productBlock: ProductBlockContent = {
36
+ title: 'Кредит по одному документу',
37
+ description: 'Ставка от 5,5% годовых',
38
+ headlineVersion: 'L',
39
+ __html,
40
+ buttons,
41
+ image: percentImage,
42
+ };
60
43
 
61
44
  export default {
62
45
  default: (
@@ -69,53 +52,28 @@ export default {
69
52
  title: 'Кредит по одному документу',
70
53
  description: 'Ставка от 5,5% годовых',
71
54
  },
72
- productBlock: {
73
- title: 'Кредит по одному документу',
74
- description: 'Ставка от 5,5% годовых',
75
- headlineVersion: 'L',
76
- __html,
77
- buttons,
78
- image: percentImage,
79
- },
55
+ productBlock,
80
56
  },
81
57
  {
82
58
  nav: {
83
59
  title: 'Для людей в возрасте',
84
60
  description: 'Ставка до 7% годовых',
85
61
  },
86
- productBlock: {
87
- title: 'Ставка от 12,5% годовых на срок до 3 лет!',
88
- headlineVersion: 'L',
89
- __html,
90
- buttons,
91
- image: worker,
92
- },
62
+ productBlock,
93
63
  },
94
64
  {
95
65
  nav: {
96
66
  title: 'Выгодно покупать',
97
67
  description: 'Ставка от 5% годовых',
98
68
  },
99
- productBlock: {
100
- title: 'Дополнительные бонусные баллы за покупки!',
101
- headlineVersion: 'L',
102
- __html,
103
- buttons,
104
- image: creditCard,
105
- },
69
+ productBlock,
106
70
  },
107
71
  {
108
72
  nav: {
109
73
  title: 'Карты Unionpay',
110
74
  description: '120 дней льготный период',
111
75
  },
112
- productBlock: {
113
- title: 'Карты Unionpay',
114
- headlineVersion: 'L',
115
- __html,
116
- buttons,
117
- image: creditCard,
118
- },
76
+ productBlock,
119
77
  },
120
78
  ]}
121
79
  />
@@ -132,53 +90,28 @@ export default {
132
90
  title: 'Кредит по одному документу',
133
91
  description: 'Ставка от 5,5% годовых',
134
92
  },
135
- productBlock: {
136
- title: 'Кредит по одному документу',
137
- description: 'Кредит наличными без залога и поручительства, только по паспорту',
138
- headlineVersion: 'L',
139
- __html,
140
- buttons: buttonsSecondary,
141
- image: percentImage,
142
- },
93
+ productBlock,
143
94
  },
144
95
  {
145
96
  nav: {
146
97
  title: 'Для людей в возрасте',
147
98
  description: 'Ставка до 7% годовых',
148
99
  },
149
- productBlock: {
150
- title: 'Ставка от 12,5% годовых на срок до 3 лет!',
151
- headlineVersion: 'L',
152
- __html,
153
- buttons: buttonsSecondary,
154
- image: worker,
155
- },
100
+ productBlock,
156
101
  },
157
102
  {
158
103
  nav: {
159
104
  title: 'Выгодно покупать',
160
105
  description: 'Ставка от 5% годовых',
161
106
  },
162
- productBlock: {
163
- title: 'Дополнительные бонусные баллы за покупки!',
164
- headlineVersion: 'L',
165
- __html,
166
- buttons: buttonsSecondary,
167
- image: creditCard,
168
- },
107
+ productBlock,
169
108
  },
170
109
  {
171
110
  nav: {
172
111
  title: 'Карты Unionpay',
173
112
  description: '120 дней льготный период',
174
113
  },
175
- productBlock: {
176
- title: 'Карты Unionpay',
177
- headlineVersion: 'L',
178
- __html,
179
- buttons: buttonsSecondary,
180
- image: creditCard,
181
- },
114
+ productBlock,
182
115
  },
183
116
  ]}
184
117
  />
@@ -10,7 +10,7 @@ export const ButtonInner = JSX<LinkButtonProps>((props) => {
10
10
  const iconHideStyle = isWithText(props) ? 'hidden lg:block' : '';
11
11
 
12
12
  return (
13
- <div className={style(getButtonStyle(props), 'flex gap-xs')}>
13
+ <div className={style(buttonStyle(props), 'flex gap-xs')}>
14
14
  {appendLeft ? (
15
15
  <div className={style(iconHideStyle, iconStyleMap[version])}>{appendLeft}</div>
16
16
  ) : null}
@@ -27,7 +27,7 @@ export const ButtonInner = JSX<LinkButtonProps>((props) => {
27
27
  );
28
28
  });
29
29
 
30
- const getButtonStyle = (props: LinkButtonContent) => {
30
+ const buttonStyle = (props: LinkButtonContent) => {
31
31
  const { version, aboveText, rounded } = props;
32
32
 
33
33
  if (version === 'link') {
@@ -7,15 +7,25 @@ import { useDialogManager } from '../DialogManager/useDialogManager';
7
7
  import { Img } from '../Img/Img';
8
8
  export interface ResponseNotificationProps {
9
9
  responseType?: 'OK' | 'Fail';
10
+ typeForm?: string;
10
11
  }
11
12
 
12
- export const ResponseTypeDialog = JSX<ResponseNotificationProps>(function ({ responseType }) {
13
+ export const ResponseTypeDialog = JSX<ResponseNotificationProps>(function ({
14
+ responseType,
15
+ typeForm,
16
+ }) {
13
17
  const responseOK = responseType === 'OK';
14
18
  const statusIcon = responseOK ? 'ResponseOKIcon' : 'ResponseFailIcon';
15
19
  const { close } = useDialogManager();
16
20
  const handleClose = useCallback(() => {
17
21
  close();
18
22
  }, []);
23
+ const responseOKDescription =
24
+ typeForm === 'ANTIFRAUD'
25
+ ? `Сообщение отправлено. Для уточнения информации с Вами могут связаться работники Банка либо Вы
26
+ можете самостоятельно позвонить по номеру контакт-центра +78001000100. Будьте внимательны, работники Банка
27
+ не звонят с использованием мессенджеров.`
28
+ : 'Совсем скоро мы с вами свяжемся';
19
29
 
20
30
  return (
21
31
  <Dialog className="my-6xl max-w-lg w-full min-h-fit mx-auto ">
@@ -24,9 +34,7 @@ export const ResponseTypeDialog = JSX<ResponseNotificationProps>(function ({ res
24
34
  <Headline
25
35
  className="w-full"
26
36
  title={responseOK ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку'}
27
- description={
28
- responseOK ? 'Совсем скоро мы с вами свяжемся' : 'Пожалуйста, повторите позднее'
29
- }
37
+ description={responseOK ? responseOKDescription : 'Пожалуйста, повторите позднее'}
30
38
  headlineVersion="XS"
31
39
  isEmbedded={true}
32
40
  />
@@ -3,6 +3,7 @@ import { ResponseTypeDialog } from './ResponseTypeDialog';
3
3
 
4
4
  export interface ResponseTypeDialogProps {
5
5
  responseType?: 'OK' | 'Fail';
6
+ typeForm?: string;
6
7
  }
7
8
 
8
9
  export const useResponseTypeDialog = (props: ResponseTypeDialogProps) => {
@@ -0,0 +1,11 @@
1
+ import { type DescriptionProps, type TitleProps } from '../../model/HeadlineType';
2
+ import type { SwipeListControlType } from './SwipeListControlContent';
3
+
4
+ export interface DotProp {
5
+ activeIndex?: number;
6
+ onClick: (i: number) => void;
7
+ listType?: SwipeListControlType;
8
+ }
9
+
10
+ /** @title Кнопка под слайдом */
11
+ export type NavButtonProp = TitleProps & DescriptionProps;
@@ -1,6 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { type BlockVersion } from '../../model/BlockVersion';
3
3
  import { style } from '../../utils/style';
4
+ import { type NavButtonProp } from './NavButtonProp';
4
5
  import { SwipeListContainer, type SnapAlign } from './SwipeListContainer';
5
6
  import { type SwipeListControlContent } from './SwipeListControlContent';
6
7
  import { SwipeListDots } from './SwipeListDots';
@@ -24,6 +25,7 @@ interface SwipeListControlProps extends SwipeListControlContent {
24
25
  snapAlign?: SnapAlign;
25
26
  hasBlur?: boolean;
26
27
  onVisibleIndicesChange?: (indices: number[]) => void;
28
+ navButtons?: NavButtonProp[];
27
29
  }
28
30
 
29
31
  export const SwipeListControl = JSX<SwipeListControlProps>(
@@ -42,6 +44,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
42
44
  showDots,
43
45
  children,
44
46
  onVisibleIndicesChange,
47
+ navButtons,
45
48
  }) => {
46
49
  const itemCount = Array.isArray(children) ? children.length : 0;
47
50
 
@@ -71,14 +74,17 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
71
74
  scroll={scroll}
72
75
  hasBlur={hasBlur}
73
76
  arrowsPadded={arrowsPadded}
77
+ isBottom={Boolean(navButtons?.length)}
74
78
  />
75
79
  <SwipeListDots
76
80
  className={style(!showDots && 'lg:hidden')}
77
- containerRef={containerRef}
78
81
  activeIndex={activeIndex}
79
82
  dotCount={itemCount}
80
83
  listType={listType}
81
84
  version={version}
85
+ navButtons={navButtons}
86
+ containerRef={containerRef}
87
+ containerScroll={scroll}
82
88
  />
83
89
  </div>
84
90
  );
@@ -1,74 +1,97 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback, useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useMobileMode } from '../../hooks/useMobileMode';
2
4
  import { type BlockVersion } from '../../model/BlockVersion';
3
5
  import { style } from '../../utils/style';
6
+ import { type NavButtonProp } from './NavButtonProp';
7
+ import { renderDotButton } from './renderDotButton';
8
+ import { renderNavButton } from './renderNavButton';
9
+ import { SwipeListContainer } from './SwipeListContainer';
4
10
  import { type SwipeListControlType } from './SwipeListControlContent';
11
+ import { useSwipeListScroll, type SwipeListScroll } from './useSwipeListScroll';
5
12
 
6
13
  const containerStyles: Record<SwipeListControlType, string> = {
7
14
  'horizontal-list': 'mx-auto mt-lg w-fit',
8
15
  'vertical-list': 'absolute flex-col justify-center h-full top-0 left-4',
9
16
  };
10
17
 
11
- const activeDotStyles: Record<SwipeListControlType, string> = {
12
- 'horizontal-list': 'w-6',
13
- 'vertical-list': 'h-6',
14
- };
15
-
16
- const dotStyle =
17
- 'cursor-pointer rounded-full transition-width duration-300 bg-primary-main group-data-secondary:bg-white';
18
-
19
- const inactiveDotStyle = 'w-2 h-2 opacity-30';
20
-
21
18
  interface SwipeListDotsProps {
22
19
  className?: string;
23
- containerRef?: { current: HTMLDivElement | null };
24
20
  activeIndex?: number;
25
21
  dotCount?: number;
26
22
  listType?: SwipeListControlType;
27
23
  version?: BlockVersion;
24
+ navButtons?: NavButtonProp[];
25
+ onVisibleIndicesChange?: (indices: number[]) => void;
26
+ containerRef?: { current: HTMLDivElement | null };
27
+ containerScroll?: SwipeListScroll;
28
28
  }
29
-
30
29
  export const SwipeListDots = JSX<SwipeListDotsProps>(
31
30
  ({
32
31
  className = '',
33
- containerRef,
34
- activeIndex,
32
+ activeIndex = 0,
35
33
  dotCount = 0,
36
34
  listType = 'horizontal-list',
37
35
  version,
36
+ navButtons = [],
37
+ containerRef,
38
+ containerScroll,
38
39
  }) => {
39
- const handleClick = (idx: number) => {
40
- if (idx !== activeIndex && containerRef?.current) {
41
- containerRef.current.children[idx]?.scrollIntoView({
42
- behavior: 'smooth',
43
- block: 'nearest',
44
- });
40
+ const isMobileMode = useMobileMode();
41
+ const [navRef, navScroll] = useSwipeListScroll<HTMLDivElement>({
42
+ itemCount: navButtons.length,
43
+ });
44
+ const scrollOption = getOptions(Boolean(navButtons?.length));
45
+
46
+ useEffect(() => {
47
+ if (navButtons?.length && activeIndex >= 0 && navRef?.current) {
48
+ navScroll.scrollTo(activeIndex, scrollOption);
45
49
  }
46
- };
50
+ }, [activeIndex]);
47
51
 
48
- return dotCount ? (
49
- <div
50
- className={style(
51
- 'flex gap-xs',
52
- containerStyles[listType],
53
- version ? 'group' : '',
54
- className,
55
- )}
56
- data-ver={version}
57
- >
58
- {Array.from({ length: dotCount })
59
- .fill(null)
60
- .map((_, idx: number) => (
61
- <div
62
- key={String(idx)}
63
- className={`${dotStyle} ${
64
- idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle
65
- }`}
66
- role="button"
67
- aria-hidden
68
- onClick={() => handleClick(idx)}
69
- />
70
- ))}
71
- </div>
72
- ) : null;
52
+ const onChangeActiveIndex = useCallback(
53
+ (idx: number) => {
54
+ if (idx !== activeIndex && containerRef?.current) {
55
+ containerScroll?.scrollTo(idx, scrollOption);
56
+ }
57
+ },
58
+ [containerRef?.current],
59
+ );
60
+
61
+ if (navButtons?.length && !isMobileMode) {
62
+ return (
63
+ <SwipeListContainer
64
+ containerRef={navRef}
65
+ snapAlign="snap-start"
66
+ itemClassName="h-36 flex items-stretch w-screen"
67
+ gap={8}
68
+ >
69
+ {navButtons.map(renderNavButton({ activeIndex, onClick: onChangeActiveIndex }))}
70
+ </SwipeListContainer>
71
+ );
72
+ } else if (dotCount) {
73
+ return (
74
+ <div
75
+ className={style(
76
+ 'flex gap-xs',
77
+ containerStyles[listType],
78
+ version ? 'group' : '',
79
+ className,
80
+ { 'pb-xl': navButtons?.length && isMobileMode },
81
+ )}
82
+ data-ver={version}
83
+ >
84
+ {Array.from({ length: dotCount })
85
+ .fill(null)
86
+ .map(renderDotButton({ activeIndex, onClick: onChangeActiveIndex, listType }))}
87
+ </div>
88
+ );
89
+ }
90
+
91
+ return null;
73
92
  },
74
93
  );
94
+
95
+ const getOptions = (isAuto = false): ScrollIntoViewOptions => ({
96
+ behavior: isAuto ? 'auto' : 'smooth',
97
+ });
@@ -4,31 +4,32 @@ import { ScrollLeftButton, ScrollRightButton } from '../LinkButton/ArrowButton';
4
4
  import { type SwipeListScrollButtonsContent } from './SwipeListControlContent';
5
5
  import { type SwipeListScroll } from './useSwipeListScroll';
6
6
 
7
- const scrollButtonStyle = 'absolute top-[calc(50%-24px)] z-40';
8
7
  const blurBaseStyle = 'absolute top-0 bottom-0 z-40 hidden @lg:block w-20 pointer-events-none';
9
8
 
10
9
  export interface SwipeListScrollButtonsProps extends SwipeListScrollButtonsContent {
11
10
  className?: string;
12
11
  scroll: SwipeListScroll;
13
12
  hasBlur?: boolean;
13
+ isBottom?: boolean;
14
14
  }
15
15
 
16
16
  export const SwipeListScrollButtons = JSX<SwipeListScrollButtonsProps>(
17
- ({ className, scroll, hasBlur, arrowsPadded }) => {
17
+ ({ className, scroll, hasBlur, arrowsPadded, isBottom }) => {
18
18
  const { canScrollLeft, canScrollRight, scrollLeft, scrollRight } = scroll;
19
+ const isArrowPadded = arrowsPadded && !isBottom;
19
20
 
20
21
  return (
21
- <div className={style(className)}>
22
+ <div className={className}>
22
23
  {hasBlur ? renderBlur(scroll) : null}
23
24
  {canScrollLeft ? (
24
25
  <ScrollLeftButton
25
- className={style(scrollButtonStyle, arrowsPadded ? 'left-1' : 'left-0')}
26
+ className={style(buttonStyle(isBottom), isArrowPadded ? 'left-1' : 'left-0')}
26
27
  onClick={scrollLeft}
27
28
  />
28
29
  ) : null}
29
30
  {canScrollRight ? (
30
31
  <ScrollRightButton
31
- className={style(scrollButtonStyle, arrowsPadded ? 'right-1' : 'right-0')}
32
+ className={style(buttonStyle(isBottom), isArrowPadded ? 'right-1' : 'right-0')}
32
33
  onClick={scrollRight}
33
34
  />
34
35
  ) : null}
@@ -54,3 +55,6 @@ const renderBlur = (scroll: SwipeListScroll) => (
54
55
  ) : null}
55
56
  </div>
56
57
  );
58
+
59
+ const buttonStyle = (isBottom = false) =>
60
+ style('absolute z-40', isBottom ? 'bottom-[56px]' : 'top-[calc(50%-24px)]');
@@ -0,0 +1,29 @@
1
+ import { style } from '../../utils/style';
2
+ import type { DotProp } from './NavButtonProp';
3
+ import type { SwipeListControlType } from './SwipeListControlContent';
4
+
5
+ const activeDotStyles: Record<SwipeListControlType, string> = {
6
+ 'horizontal-list': 'w-6',
7
+ 'vertical-list': 'h-6',
8
+ };
9
+
10
+ const dotStyle =
11
+ 'cursor-pointer rounded-full transition-width duration-300 bg-primary-main group-data-secondary:bg-white';
12
+
13
+ const inactiveDotStyle = 'w-2 h-2 opacity-30';
14
+
15
+ export const renderDotButton =
16
+ ({ activeIndex, onClick, listType = 'horizontal-list' }: DotProp) =>
17
+ (_: any, idx: number) =>
18
+ (
19
+ <div
20
+ key={String(idx)}
21
+ className={style(
22
+ dotStyle,
23
+ idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle,
24
+ )}
25
+ role="button"
26
+ aria-hidden
27
+ onClick={() => onClick(idx)}
28
+ />
29
+ );
@@ -0,0 +1,33 @@
1
+ import { style } from '../../utils/style';
2
+ import { type DotProp, type NavButtonProp } from './NavButtonProp';
3
+
4
+ export const renderNavButton =
5
+ ({ activeIndex, onClick }: DotProp) =>
6
+ (nav: NavButtonProp, i: number) => {
7
+ const isActive = i === activeIndex;
8
+ const btnClassName = isActive
9
+ ? 'min-w-[350px] bg-white shadow-dark-blue border-none p-6'
10
+ : 'min-w-72 ease-in duration-300 bg-white/10 px-xl py-lg hover:backdrop-blur';
11
+ const btnTitleClassName = isActive
12
+ ? 'text-primary-text text-h6 py-xs'
13
+ : 'text-l pb-2xs text-secondary-text group-data-secondary:text-white';
14
+ const btnDescClassName = isActive ? 'text-l' : 'text-m group-data-secondary:text-white/80';
15
+
16
+ return (
17
+ <button
18
+ type="button"
19
+ key={String(i)}
20
+ onClick={() => onClick(i)}
21
+ aria-label={nav?.title}
22
+ className={style(
23
+ 'max-h-28 mt-xs ml-xs relative px-xl box-border overflow-hidden text-left grow basis-0 border border-gray group-data-secondary:border-white/50 whitespace-nowrap',
24
+ btnClassName,
25
+ )}
26
+ >
27
+ <div className={btnTitleClassName}>{nav?.title}</div>
28
+ <div className={style('text-secondary-text font-light', btnDescClassName)}>
29
+ {nav?.description}
30
+ </div>
31
+ </button>
32
+ );
33
+ };
@@ -35,7 +35,7 @@ export const useSwipeListScroll = <E extends HTMLElement>({
35
35
  );
36
36
  onVisibleIndicesChange && onVisibleIndicesChange(indices);
37
37
  },
38
- [itemCount],
38
+ [onVisibleIndicesChange],
39
39
  );
40
40
 
41
41
  const [minIndex, maxIndex] = visibleIndices.length