@redneckz/wildless-cms-uni-blocks 0.14.1073 → 0.14.1074

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 +274 -407
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  5. package/bundle/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  6. package/bundle/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  7. package/bundle/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  8. package/bundle/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  9. package/bundle/components/GalleryLayout/utils.d.ts +0 -1
  10. package/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -2
  11. package/dist/components/Blocks.js +2 -4
  12. package/dist/components/Blocks.js.map +1 -1
  13. package/dist/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  14. package/dist/components/CashbackCalculator/CashbackCalculator.js +14 -25
  15. package/dist/components/CashbackCalculator/CashbackCalculator.js.map +1 -1
  16. package/dist/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  17. package/dist/components/CashbackCalculator/CashbackCalculatorContent.js +1 -0
  18. package/dist/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  19. package/dist/components/CashbackCalculator/CashbackCalculatorResult.js +11 -9
  20. package/dist/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -1
  21. package/dist/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  22. package/dist/components/CashbackCalculator/CashbackCategory.js +54 -33
  23. package/dist/components/CashbackCalculator/CashbackCategory.js.map +1 -1
  24. package/dist/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  25. package/dist/components/CashbackCalculator/useCashbackCalculator.js +15 -17
  26. package/dist/components/CashbackCalculator/useCashbackCalculator.js.map +1 -1
  27. package/dist/components/GalleryLayout/utils.d.ts +0 -1
  28. package/dist/ui-kit/RichText/RichText.js +2 -2
  29. package/dist/ui-kit/RichText/RichText.js.map +1 -1
  30. package/dist/ui-kit/RichText/RichTextProps.d.ts +0 -2
  31. package/lib/common.css +1 -1
  32. package/lib/components/Blocks.js +2 -4
  33. package/lib/components/Blocks.js.map +1 -1
  34. package/lib/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  35. package/lib/components/CashbackCalculator/CashbackCalculator.js +14 -25
  36. package/lib/components/CashbackCalculator/CashbackCalculator.js.map +1 -1
  37. package/lib/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  38. package/lib/components/CashbackCalculator/CashbackCalculatorContent.js +1 -0
  39. package/lib/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  40. package/lib/components/CashbackCalculator/CashbackCalculatorResult.js +11 -9
  41. package/lib/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -1
  42. package/lib/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  43. package/lib/components/CashbackCalculator/CashbackCategory.js +54 -33
  44. package/lib/components/CashbackCalculator/CashbackCategory.js.map +1 -1
  45. package/lib/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  46. package/lib/components/CashbackCalculator/useCashbackCalculator.js +16 -18
  47. package/lib/components/CashbackCalculator/useCashbackCalculator.js.map +1 -1
  48. package/lib/components/GalleryLayout/utils.d.ts +0 -1
  49. package/lib/ui-kit/RichText/RichText.js +2 -2
  50. package/lib/ui-kit/RichText/RichText.js.map +1 -1
  51. package/lib/ui-kit/RichText/RichTextProps.d.ts +0 -2
  52. package/mobile/bundle/bundle.umd.js +67 -153
  53. package/mobile/bundle/bundle.umd.min.js +1 -1
  54. package/mobile/bundle/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  55. package/mobile/bundle/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  56. package/mobile/bundle/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  57. package/mobile/bundle/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  58. package/mobile/bundle/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  59. package/mobile/bundle/components/GalleryLayout/utils.d.ts +0 -1
  60. package/mobile/bundle/ui-kit/RichText/RichTextProps.d.ts +0 -2
  61. package/mobile/dist/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  62. package/mobile/dist/components/CashbackCalculator/CashbackCalculator.js +14 -25
  63. package/mobile/dist/components/CashbackCalculator/CashbackCalculator.js.map +1 -1
  64. package/mobile/dist/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  65. package/mobile/dist/components/CashbackCalculator/CashbackCalculatorContent.js +1 -0
  66. package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  67. package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.js +11 -9
  68. package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -1
  69. package/mobile/dist/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  70. package/mobile/dist/components/CashbackCalculator/CashbackCategory.js +54 -33
  71. package/mobile/dist/components/CashbackCalculator/CashbackCategory.js.map +1 -1
  72. package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  73. package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.js +15 -17
  74. package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.js.map +1 -1
  75. package/mobile/dist/components/GalleryLayout/utils.d.ts +0 -1
  76. package/mobile/dist/ui-kit/RichText/RichText.js +2 -2
  77. package/mobile/dist/ui-kit/RichText/RichText.js.map +1 -1
  78. package/mobile/dist/ui-kit/RichText/RichTextProps.d.ts +0 -2
  79. package/mobile/lib/common.css +1 -1
  80. package/mobile/lib/components/CashbackCalculator/CashbackCalculator.d.ts +2 -7
  81. package/mobile/lib/components/CashbackCalculator/CashbackCalculator.js +14 -25
  82. package/mobile/lib/components/CashbackCalculator/CashbackCalculator.js.map +1 -1
  83. package/mobile/lib/components/CashbackCalculator/CashbackCalculatorContent.d.ts +25 -0
  84. package/mobile/lib/components/CashbackCalculator/CashbackCalculatorContent.js +1 -0
  85. package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.d.ts +1 -2
  86. package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.js +11 -9
  87. package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -1
  88. package/mobile/lib/components/CashbackCalculator/CashbackCategory.d.ts +2 -6
  89. package/mobile/lib/components/CashbackCalculator/CashbackCategory.js +54 -33
  90. package/mobile/lib/components/CashbackCalculator/CashbackCategory.js.map +1 -1
  91. package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.d.ts +2 -4
  92. package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.js +16 -18
  93. package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.js.map +1 -1
  94. package/mobile/lib/components/GalleryLayout/utils.d.ts +0 -1
  95. package/mobile/lib/ui-kit/RichText/RichText.js +2 -2
  96. package/mobile/lib/ui-kit/RichText/RichText.js.map +1 -1
  97. package/mobile/lib/ui-kit/RichText/RichTextProps.d.ts +0 -2
  98. package/mobile/src/components/CashbackCalculator/CashbackCalculator.example.json +1 -0
  99. package/mobile/src/components/CashbackCalculator/CashbackCalculator.tsx +69 -73
  100. package/mobile/src/components/{CashbackCalculatorLayout/CashbackCalculatorLayout.ui.json → CashbackCalculator/CashbackCalculator.ui.json} +0 -6
  101. package/mobile/src/components/CashbackCalculator/CashbackCalculatorContent.ts +28 -0
  102. package/mobile/src/components/CashbackCalculator/CashbackCalculatorResult.tsx +23 -23
  103. package/mobile/src/components/CashbackCalculator/CashbackCategory.tsx +71 -69
  104. package/mobile/src/components/CashbackCalculator/useCashbackCalculator.ts +17 -26
  105. package/mobile/src/ui-kit/RichText/RichText.tsx +1 -9
  106. package/mobile/src/ui-kit/RichText/RichTextProps.ts +0 -2
  107. package/package.json +2 -2
  108. package/src/components/Blocks.ts +2 -4
  109. package/src/components/CashbackCalculator/CashbackCalculator.example.json +1 -0
  110. package/src/components/CashbackCalculator/CashbackCalculator.tsx +69 -73
  111. package/src/components/{CashbackCalculatorLayout/CashbackCalculatorLayout.ui.json → CashbackCalculator/CashbackCalculator.ui.json} +0 -6
  112. package/src/components/CashbackCalculator/CashbackCalculatorContent.ts +28 -0
  113. package/src/components/CashbackCalculator/CashbackCalculatorResult.tsx +23 -23
  114. package/src/components/CashbackCalculator/CashbackCategory.tsx +71 -69
  115. package/src/components/CashbackCalculator/useCashbackCalculator.ts +17 -26
  116. package/src/ui-kit/RichText/RichText.tsx +1 -9
  117. package/src/ui-kit/RichText/RichTextProps.ts +0 -2
  118. package/bundle/components/CashbackCalculator/constants.d.ts +0 -16
  119. package/bundle/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  120. package/bundle/components/CashbackCalculator/renderButtons.d.ts +0 -9
  121. package/bundle/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  122. package/bundle/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  123. package/dist/components/CashbackCalculator/constants.d.ts +0 -16
  124. package/dist/components/CashbackCalculator/constants.js +0 -89
  125. package/dist/components/CashbackCalculator/constants.js.map +0 -1
  126. package/dist/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  127. package/dist/components/CashbackCalculator/getPercentCategories.js +0 -16
  128. package/dist/components/CashbackCalculator/getPercentCategories.js.map +0 -1
  129. package/dist/components/CashbackCalculator/renderButtons.d.ts +0 -9
  130. package/dist/components/CashbackCalculator/renderButtons.js +0 -10
  131. package/dist/components/CashbackCalculator/renderButtons.js.map +0 -1
  132. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  133. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js +0 -56
  134. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js.map +0 -1
  135. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  136. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js +0 -2
  137. package/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js.map +0 -1
  138. package/lib/components/CashbackCalculator/constants.d.ts +0 -16
  139. package/lib/components/CashbackCalculator/constants.js +0 -87
  140. package/lib/components/CashbackCalculator/constants.js.map +0 -1
  141. package/lib/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  142. package/lib/components/CashbackCalculator/getPercentCategories.js +0 -13
  143. package/lib/components/CashbackCalculator/getPercentCategories.js.map +0 -1
  144. package/lib/components/CashbackCalculator/renderButtons.d.ts +0 -9
  145. package/lib/components/CashbackCalculator/renderButtons.js +0 -7
  146. package/lib/components/CashbackCalculator/renderButtons.js.map +0 -1
  147. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  148. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.fixture.d.ts +0 -5
  149. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js +0 -54
  150. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js.map +0 -1
  151. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  152. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js +0 -2
  153. package/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js.map +0 -1
  154. package/mobile/bundle/components/CashbackCalculator/constants.d.ts +0 -16
  155. package/mobile/bundle/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  156. package/mobile/bundle/components/CashbackCalculator/renderButtons.d.ts +0 -9
  157. package/mobile/bundle/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  158. package/mobile/bundle/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  159. package/mobile/dist/components/CashbackCalculator/constants.d.ts +0 -16
  160. package/mobile/dist/components/CashbackCalculator/constants.js +0 -89
  161. package/mobile/dist/components/CashbackCalculator/constants.js.map +0 -1
  162. package/mobile/dist/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  163. package/mobile/dist/components/CashbackCalculator/getPercentCategories.js +0 -16
  164. package/mobile/dist/components/CashbackCalculator/getPercentCategories.js.map +0 -1
  165. package/mobile/dist/components/CashbackCalculator/renderButtons.d.ts +0 -9
  166. package/mobile/dist/components/CashbackCalculator/renderButtons.js +0 -10
  167. package/mobile/dist/components/CashbackCalculator/renderButtons.js.map +0 -1
  168. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  169. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js +0 -56
  170. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js.map +0 -1
  171. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  172. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js +0 -2
  173. package/mobile/dist/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js.map +0 -1
  174. package/mobile/lib/components/CashbackCalculator/constants.d.ts +0 -16
  175. package/mobile/lib/components/CashbackCalculator/constants.js +0 -87
  176. package/mobile/lib/components/CashbackCalculator/constants.js.map +0 -1
  177. package/mobile/lib/components/CashbackCalculator/getPercentCategories.d.ts +0 -1
  178. package/mobile/lib/components/CashbackCalculator/getPercentCategories.js +0 -13
  179. package/mobile/lib/components/CashbackCalculator/getPercentCategories.js.map +0 -1
  180. package/mobile/lib/components/CashbackCalculator/renderButtons.d.ts +0 -9
  181. package/mobile/lib/components/CashbackCalculator/renderButtons.js +0 -7
  182. package/mobile/lib/components/CashbackCalculator/renderButtons.js.map +0 -1
  183. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.d.ts +0 -6
  184. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js +0 -54
  185. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayout.js.map +0 -1
  186. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.d.ts +0 -38
  187. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js +0 -2
  188. package/mobile/lib/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.js.map +0 -1
  189. package/mobile/src/components/CashbackCalculator/constants.ts +0 -97
  190. package/mobile/src/components/CashbackCalculator/getPercentCategories.ts +0 -24
  191. package/mobile/src/components/CashbackCalculator/renderButtons.tsx +0 -38
  192. package/mobile/src/components/CashbackCalculatorLayout/CashbackCalculatorLayout.example.json +0 -47
  193. package/mobile/src/components/CashbackCalculatorLayout/CashbackCalculatorLayout.tsx +0 -116
  194. package/mobile/src/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.ts +0 -49
  195. package/src/components/CashbackCalculator/constants.ts +0 -97
  196. package/src/components/CashbackCalculator/getPercentCategories.ts +0 -24
  197. package/src/components/CashbackCalculator/renderButtons.tsx +0 -38
  198. package/src/components/CashbackCalculatorLayout/CashbackCalculatorLayout.example.json +0 -47
  199. package/src/components/CashbackCalculatorLayout/CashbackCalculatorLayout.fixture.tsx +0 -61
  200. package/src/components/CashbackCalculatorLayout/CashbackCalculatorLayout.tsx +0 -116
  201. package/src/components/CashbackCalculatorLayout/CashbackCalculatorLayoutContent.ts +0 -49
@@ -4,46 +4,67 @@ import { useState } from '@redneckz/uni-jsx/lib/hooks';
4
4
  import { Button } from '../../ui-kit/Button/Button.js';
5
5
  import { Img } from '../../ui-kit/Img/Img.js';
6
6
  import { InputRange } from '../../ui-kit/InputRange/InputRange.js';
7
- import { Paragraph } from '../../ui-kit/Paragraph/Paragraph.js';
8
7
  import { Select } from '../../ui-kit/Select/Select.js';
9
8
  import { Text } from '../../ui-kit/Text/Text.js';
10
- import { noop } from '../../utils/noop.js';
11
- import { MAIN_CASHBACK_KEY } from './constants.js';
12
- import { getPercentCategories } from './getPercentCategories.js';
13
- const defaultDeleteImage = {
14
- src: 'IconDelete.svg',
15
- format: 'webp',
16
- alt: 'Иконка кнопки удаления блока кэшбека',
17
- };
18
- export const CashbackCategory = JSX(({ categories, cashback, maxInputRange, deleteImage = defaultDeleteImage, isMainCashbackAdded = false, calculatorType = 'standard', onDelete, onChange, isShowDisclaimer = false, onChangeCategory = noop, }) => {
9
+ const AllPercentCategories = [
10
+ {
11
+ text: 'Категория 1,5%',
12
+ key: '1.5',
13
+ },
14
+ {
15
+ text: 'Категория 3%',
16
+ key: '3',
17
+ },
18
+ {
19
+ text: 'Категория 5%',
20
+ key: '5',
21
+ },
22
+ {
23
+ text: 'Категория 10%',
24
+ key: '10',
25
+ },
26
+ {
27
+ text: 'Категория 15%',
28
+ key: '15',
29
+ },
30
+ ];
31
+ const PercentCategoriesWithoutIncreased = [
32
+ {
33
+ text: 'Категория 1,5%',
34
+ key: '1.5',
35
+ },
36
+ {
37
+ text: 'Категория 3%',
38
+ key: '3',
39
+ },
40
+ ];
41
+ export const CashbackCategory = JSX(({ categories, cashback, showIncreasedPercents, maxInputRange, deleteImage, onDelete, onChange, }) => {
19
42
  const [currentCategory, setCurrentCategory] = useState(getRandomElement(categories));
20
- const isMainCashback = cashback.percent.key === MAIN_CASHBACK_KEY[calculatorType];
21
- const onChangePercent = createChangeHandler(cashback, 'percent', onChange);
22
- const onChangeSum = createChangeHandler(cashback, 'sum', onChange);
23
- const onChangeCashbackCategory = (value) => {
24
- setCurrentCategory(value);
25
- onChangeCategory((prev) => updateSelectedCategories(prev, cashback, value));
43
+ const isMainCashback = cashback.id === 0;
44
+ const onChangePercent = (value) => {
45
+ onChange({
46
+ ...cashback,
47
+ percent: value,
48
+ });
49
+ };
50
+ const onChangeSum = (value) => {
51
+ onChange({
52
+ ...cashback,
53
+ sum: value,
54
+ });
26
55
  };
27
- return (_jsxs("div", { className: "w-full space-y-m", children: [_jsxs("div", { className: "space-y-xs", children: [_jsx(Paragraph, { size: "text-m", color: "text-primary-text", font: "font-light", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E" }), isShowDisclaimer ? (_jsx(Text, { size: "text-s", color: "text-primary-text", font: "font-light", className: "italic", children: "\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0434\u043B\u044F \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0431\u0430\u043B\u043B\u043E\u0432 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435" })) : null, _jsxs("div", { className: "flex gap-m", children: [_jsx(Select, { className: "w-full", isManualInput: isMainCashback, placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E", options: getPercentCategories(isMainCashbackAdded, calculatorType), value: cashback.percent, onChange: onChangePercent }), _jsx(Button, { version: "secondary", onClick: () => onDelete(cashback.id), shape: "round", className: "px-4 rounded-md", children: _jsx(Img, { image: deleteImage }) })] })] }), categories?.length && !isMainCashback ? (_jsx(Select, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", options: categories, value: currentCategory, onChange: onChangeCashbackCategory })) : null, _jsx(InputRange, { step: 500, title: "\u0421\u0443\u043C\u043C\u0430 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", min: 0, max: maxInputRange, value: cashback.sum, onChange: onChangeSum })] }));
56
+ return (_jsxs("div", { className: "w-full space-y-m", children: [_jsxs("div", { className: "space-y-xs", children: [_jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E" }), _jsxs("div", { className: "flex gap-m", children: [_jsx(Select, { className: "w-full", isManualInput: isMainCashback, placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E", options: getPercentCategories(isMainCashback, showIncreasedPercents), value: cashback.percent, onChange: onChangePercent }), !isMainCashback ? (_jsx(Button, { version: "secondary", onClick: () => onDelete(cashback.id), shape: "round", className: "px-4 rounded-md", children: _jsx(Img, { image: deleteImage }) })) : null] })] }), categories?.length && !isMainCashback ? (_jsx(Select, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", options: categories, value: currentCategory, onChange: setCurrentCategory })) : null, _jsx(InputRange, { step: 500, title: "\u0421\u0443\u043C\u043C\u0430 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", min: 0, max: maxInputRange, value: cashback.sum, onChange: onChangeSum })] }));
28
57
  });
29
58
  const getRandomElement = (arr) => arr?.[new Date().getTime().toString().slice(-1)];
30
- const createChangeHandler = (obj, field, onChange) => (value) => {
31
- onChange({
32
- ...obj,
33
- [field]: value,
34
- });
35
- };
36
- const updateSelectedCategories = (prev, cashback, value) => {
37
- const newItem = { id: cashback.id, category: value };
38
- if (prev.length === 0) {
39
- return [newItem];
59
+ const getPercentCategories = (isMainCashback, showIncreasedPercents) => {
60
+ if (isMainCashback) {
61
+ return [];
62
+ }
63
+ else if (showIncreasedPercents) {
64
+ return AllPercentCategories;
40
65
  }
41
- const index = prev.findIndex((item) => item.id === cashback.id);
42
- if (index !== -1) {
43
- const updated = [...prev];
44
- updated[index] = newItem;
45
- return updated;
66
+ else {
67
+ return PercentCategoriesWithoutIncreased;
46
68
  }
47
- return [...prev, newItem];
48
69
  };
49
70
  //# sourceMappingURL=CashbackCategory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CashbackCategory.js","sourceRoot":"","sources":["../../../src/components/CashbackCalculator/CashbackCategory.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CashbackCategory.js","sourceRoot":"","sources":["../../../src/components/CashbackCalculator/CashbackCategory.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  import { type Option } from '../../ui-kit/Select/Option';
2
- import { type Cashback, type CashbackCalculatorType } from '../CashbackCalculatorLayout/CashbackCalculatorLayoutContent';
3
- import { type SelectedCategory } from './CashbackCalculator';
4
- export declare const useCashbackCalculator: (calculatorType: CashbackCalculatorType) => {
2
+ import { type Cashback } from './CashbackCalculatorContent';
3
+ export declare const useCashbackCalculator: () => {
5
4
  cashbacks: Cashback[];
6
5
  categories: Option[];
7
6
  onAddNewCashback: () => void;
8
7
  onChangeCashback: (item: Cashback) => void;
9
8
  onDeleteCashback: (id: number) => void;
10
9
  onResetCashback: () => void;
11
- onChangeCategory: (value: SelectedCategory[] | ((prevState: SelectedCategory[]) => SelectedCategory[])) => void;
12
10
  };
@@ -1,27 +1,26 @@
1
- import { useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
1
+ import { useState } from '@redneckz/uni-jsx/lib/hooks';
2
2
  import { useLeadFormData } from '../../retail/hooks/useLeadFormData.js';
3
- import { DEFAULT_PREMIUM_CASHBACK, DEFAULT_STANDARD_CASHBACK } from './constants.js';
4
- const CashbackType = {
5
- standard: DEFAULT_STANDARD_CASHBACK,
6
- premium: DEFAULT_PREMIUM_CASHBACK,
7
- };
8
- export const useCashbackCalculator = (calculatorType) => {
3
+ const DEFAULT_CASHBACK = [
4
+ {
5
+ id: 0,
6
+ percent: {
7
+ text: 'Категория 1% "На всё"',
8
+ key: '1',
9
+ },
10
+ sum: 5000,
11
+ },
12
+ ];
13
+ export const useCashbackCalculator = () => {
9
14
  const { data } = useLeadFormData('CASHBACK_CATEGORY');
10
- const [cashbacks, setCashbacks] = useState(CashbackType[calculatorType]);
11
- const [selectedCategories, setSelectedCategories] = useState([]);
15
+ const [cashbacks, setCashbacks] = useState(DEFAULT_CASHBACK);
12
16
  const categories = data?.map((_) => ({
13
17
  key: _.key || '',
14
18
  text: _.value,
15
19
  })) || [];
16
- const filteredCategories = useMemo(() => {
17
- const categoriesToRemove = selectedCategories.map((obj) => obj.category);
18
- const keysToRemove = new Set(categoriesToRemove.map((item) => item.key));
19
- return categories.filter((item) => !keysToRemove.has(item.key));
20
- }, [selectedCategories, categories]);
21
20
  const onAddNewCashback = () => setCashbacks((_) => [
22
21
  ..._,
23
22
  {
24
- id: _ && _.length > 0 ? _[_.length - 1]?.id + 1 : 1,
23
+ id: _[_.length - 1].id + 1,
25
24
  percent: {
26
25
  text: 'Категория 1,5%',
27
26
  key: '1.5',
@@ -36,15 +35,14 @@ export const useCashbackCalculator = (calculatorType) => {
36
35
  return _;
37
36
  }));
38
37
  const onDeleteCashback = (id) => setCashbacks((prev) => prev.filter((_) => _.id !== id));
39
- const onResetCashback = () => setCashbacks(CashbackType[calculatorType]);
38
+ const onResetCashback = () => setCashbacks(DEFAULT_CASHBACK);
40
39
  return {
41
40
  cashbacks,
42
- categories: filteredCategories,
41
+ categories,
43
42
  onAddNewCashback,
44
43
  onChangeCashback,
45
44
  onDeleteCashback,
46
45
  onResetCashback,
47
- onChangeCategory: setSelectedCategories,
48
46
  };
49
47
  };
50
48
  //# sourceMappingURL=useCashbackCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCashbackCalculator.js","sourceRoot":"","sources":["../../../src/components/CashbackCalculator/useCashbackCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCashbackCalculator.js","sourceRoot":"","sources":["../../../src/components/CashbackCalculator/useCashbackCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAKrE,MAAM,gBAAgB,GAAe;IACnC;QACE,EAAE,EAAE,CAAC;QACL,OAAO,EAAE;YACP,IAAI,EAAE,uBAAuB;YAC7B,GAAG,EAAE,GAAG;SACT;QACD,GAAG,EAAE,IAAI;KACV;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,gBAAgB,CAAC,CAAC;IAEzE,MAAM,UAAU,GACd,IAAI,EAAE,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,KAAK;KACd,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClB,GAAG,CAAC;QACJ;YACE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;gBACtB,GAAG,EAAE,KAAK;aACX;YACD,GAAG,EAAE,IAAI;SACV;KACF,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,CAAC,IAAc,EAAE,EAAE,CAC1C,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACpB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CACH,CAAC;IAEJ,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEjG,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE7D,OAAO;QACL,SAAS;QACT,UAAU;QACV,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
@@ -8,7 +8,6 @@ export declare const modifyBlock: (block: BlockDef, i: number) => {
8
8
  __html?: string | undefined;
9
9
  richVersion?: import("../../ui-kit/RichText/RichTextProps").RichVersion | undefined;
10
10
  itemSize?: import("../../ui-kit/RichText/RichTextProps").RichTextItemSize | undefined;
11
- className?: string | undefined;
12
11
  } & import("../../ui-kit/Tags/TagsContent").TagsContent & import("../../ui-kit/LinkButton/ButtonsSectionContent").ButtonsSectionContent & import("../../ui-kit/Img/ImgProps").ImageContent & import("../../ui-kit/BaseProductTile/BaseProductTileContent").PriceListProps & {
13
12
  imageOptions?: import("../../ui-kit/BaseProductTile/BaseProductTileContent").TileImageOptions | undefined;
14
13
  isFullWidthTitle?: boolean | undefined;
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  import { style } from '../../utils/style.js';
4
- export const RichText = JSX(({ __html = '', richVersion = '', itemSize = 'list-m', className, isDotted = true, children, }) => {
4
+ export const RichText = JSX(({ __html = '', richVersion = '', itemSize = 'list-m', isDotted = true, children }) => {
5
5
  const dotStyle = isDotted ? '' : 'without-dots';
6
6
  return __html || children ? (
7
7
  /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
8
- _jsx("div", { "data-component": "rich-text-container", children: _jsx("div", { className: style(richVersion, itemSize, 'md-container group-data-secondary:text-white group-data-gray:text-secondary-text', dotStyle, className), dangerouslySetInnerHTML: __html ? { __html } : undefined, children: children }) })) : null;
8
+ _jsx("div", { "data-component": "rich-text-container", children: _jsx("div", { className: style(richVersion, itemSize, 'md-container group-data-secondary:text-white group-data-gray:text-secondary-text', dotStyle), dangerouslySetInnerHTML: __html ? { __html } : undefined, children: children }) })) : null;
9
9
  });
10
10
  //# sourceMappingURL=RichText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CACzB,CAAC,EACC,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,EAAE,EAChB,QAAQ,GAAG,QAAQ,EACnB,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAEhD,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC;IAC1B,uFAAuF;IACvF,gCAAoB,qBAAqB,YACvC,cACE,SAAS,EAAE,KAAK,CACd,WAAW,EACX,QAAQ,EACR,kFAAkF,EAClF,QAAQ,EACR,SAAS,CACV,EACD,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAEvD,QAAQ,GACL,GACF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../../src/ui-kit/RichText/RichText.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CACzB,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpF,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAEhD,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC;IAC1B,uFAAuF;IACvF,gCAAoB,qBAAqB,YACvC,cACE,SAAS,EAAE,KAAK,CACd,WAAW,EACX,QAAQ,EACR,kFAAkF,EAClF,QAAQ,CACT,EACD,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAEvD,QAAQ,GACL,GACF,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
@@ -16,7 +16,5 @@ export declare type RichTextProps = BulletsProps & {
16
16
  richVersion?: RichVersion;
17
17
  /** @hidden */
18
18
  itemSize?: RichTextItemSize;
19
- /** @hidden */
20
- className?: string;
21
19
  };
22
20
  export {};
@@ -831,11 +831,11 @@
831
831
  ? 'bg-secondary-light text-primary-main'
832
832
  : 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
833
833
 
834
- const RichText = JSX(({ __html = '', richVersion = '', itemSize = 'list-m', className, isDotted = true, children, }) => {
834
+ const RichText = JSX(({ __html = '', richVersion = '', itemSize = 'list-m', isDotted = true, children }) => {
835
835
  const dotStyle = isDotted ? '' : 'without-dots';
836
836
  return __html || children ? (
837
837
  /* Attribute [data-component] need for correct render in wcms editor. Do not remove. */
838
- jsx("div", { "data-component": "rich-text-container", children: jsx("div", { className: style(richVersion, itemSize, 'md-container group-data-secondary:text-white group-data-gray:text-secondary-text', dotStyle, className), dangerouslySetInnerHTML: __html ? { __html } : undefined, children: children }) })) : null;
838
+ jsx("div", { "data-component": "rich-text-container", children: jsx("div", { className: style(richVersion, itemSize, 'md-container group-data-secondary:text-white group-data-gray:text-secondary-text', dotStyle), dangerouslySetInnerHTML: __html ? { __html } : undefined, children: children }) })) : null;
839
839
  });
840
840
 
841
841
  const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
@@ -6974,7 +6974,7 @@
6974
6974
  'bg-white': 'text-primary-main',
6975
6975
  transparent: 'text-white',
6976
6976
  };
6977
- const renderImage$1 = (bgColor, image, size) => {
6977
+ const renderImage = (bgColor, image, size) => {
6978
6978
  const img = image?.src
6979
6979
  ? image
6980
6980
  : {
@@ -6988,7 +6988,7 @@
6988
6988
  'bg-white': 'text-primary-text',
6989
6989
  transparent: 'text-white',
6990
6990
  };
6991
- const Logo = JSX(({ className, href = '/', logo, children, targetBlank, bgColor = 'bg-white', showTitle = true, data, size = ICON_SIZE, }) => (jsxs("a", { className: style('inline-flex items-center font-sans no-underline', className), href: logo?.href ?? href, target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title ?? 'Россельхозбанк', ...getAspectsAttributes(data), children: [renderImage$1(bgColor, logo?.image, size), showTitle
6991
+ const Logo = JSX(({ className, href = '/', logo, children, targetBlank, bgColor = 'bg-white', showTitle = true, data, size = ICON_SIZE, }) => (jsxs("a", { className: style('inline-flex items-center font-sans no-underline', className), href: logo?.href ?? href, target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title ?? 'Россельхозбанк', ...getAspectsAttributes(data), children: [renderImage(bgColor, logo?.image, size), showTitle
6992
6992
  ? children ?? (jsx("div", { className: "ml-s", children: jsx(Text, { font: "font-medium", color: TEXT_COLOR[bgColor], size: logoTitleSizeStyle, children: logo?.title ?? 'Россельхозбанк' }) }))
6993
6993
  : null] })));
6994
6994
 
@@ -10256,30 +10256,27 @@
10256
10256
  return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [jsx(Img, { className: "self-center", image: icon }), title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsxs(Foldable, { children: [jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] }), cardCells.length >= visibleCellsCount ? (jsx(DefaultFoldButton, { className: "mt-m", label: isVisible ? 'Скрыть' : 'Подробнее о тарифе', isUnfolded: isVisible, embedded: true, data: data, onClick: handleFold })) : null] })) : (jsx("div", { children: visibleCells }))] }));
10257
10257
  });
10258
10258
 
10259
+ const MAX_MONTH_CASHBACK = 5000;
10260
+ const MAX_YEAR_CASHBACK = 60000;
10259
10261
  const ResultText = JSX(({ text, value }) => (jsxs("div", { className: "space-y-xs w-full", children: [jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: text }), jsx("div", { className: "w-full text-2xl bg-main-gray px-4 py-3 rounded-md", children: toLocalNumberFormat()(value) })] })));
10260
- const CashbackCalculatorResult = JSX(({ cashbacks, maxMonthCashback }) => {
10261
- const { month, year } = getResult(cashbacks, maxMonthCashback);
10262
- return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [jsx(Heading, { className: "text-left", headingType: "h5", as: "h2", title: "\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430" }), jsxs("div", { className: "flex flex-col @xs:flex-row gap-lg", children: [jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u043C\u0435\u0441\u044F\u0446", value: month }), jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u0433\u043E\u0434", value: year })] })] }));
10262
+ const CashbackCalculatorResult = JSX(({ cashbacks }) => {
10263
+ const { mounth, year } = getResult(cashbacks);
10264
+ return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [jsx(Heading, { className: "text-left", headingType: "h5", as: "h2", title: "\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430" }), jsx(RichText, { __html: '\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0434\u043B\u044F \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0431\u0430\u043B\u043B\u043E\u0432 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435.<br />\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043F\u043E \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u043C \u0438 \u043D\u0430\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F\u043C \u043C\u043E\u0436\u043D\u043E \u0443\u0437\u043D\u0430\u0442\u044C \u0432\u043E \u0432\u043A\u043B\u0430\u0434\u043A\u0435 <a href="#docs">\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B</a>' }), jsxs("div", { className: "flex flex-col @xs:flex-row gap-lg", children: [jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u043C\u0435\u0441\u044F\u0446", value: mounth }), jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u0433\u043E\u0434", value: year })] })] }));
10263
10265
  });
10264
- const getResult = (cashbacks, maxMonthCashback) => {
10266
+ const getResult = (cashbacks) => {
10265
10267
  return cashbacks.reduce((acc, val) => {
10266
- const mounthSum = (formatKey(val.percent.key) / 100) * val.sum;
10268
+ const mounthSum = (Number(val.percent.key) / 100) * val.sum;
10267
10269
  return {
10268
- month: Math.min(acc.month + mounthSum, maxMonthCashback),
10269
- year: Math.min(acc.year + mounthSum * 12, maxMonthCashback * 12),
10270
+ mounth: Math.min(acc.mounth + mounthSum, MAX_MONTH_CASHBACK),
10271
+ year: Math.min(acc.year + mounthSum * 12, MAX_YEAR_CASHBACK),
10270
10272
  };
10271
10273
  }, {
10272
- month: 0,
10274
+ mounth: 0,
10273
10275
  year: 0,
10274
10276
  });
10275
10277
  };
10276
- const formatKey = (key) => Number(key.replace('-main', ''));
10277
10278
 
10278
- const ALL_PERCENT_STANDARD_CATEGORIES = [
10279
- {
10280
- text: 'Категория 1% «На всё»',
10281
- key: '1-main',
10282
- },
10279
+ const AllPercentCategories = [
10283
10280
  {
10284
10281
  text: 'Категория 1,5%',
10285
10282
  key: '1.5',
@@ -10301,11 +10298,7 @@
10301
10298
  key: '15',
10302
10299
  },
10303
10300
  ];
10304
- const ALL_PERCENT_PREMIUM_CATEGORIES = [
10305
- {
10306
- text: 'Категория 1,5% «На всё»',
10307
- key: '1.5-main',
10308
- },
10301
+ const PercentCategoriesWithoutIncreased = [
10309
10302
  {
10310
10303
  text: 'Категория 1,5%',
10311
10304
  key: '1.5',
@@ -10314,128 +10307,58 @@
10314
10307
  text: 'Категория 3%',
10315
10308
  key: '3',
10316
10309
  },
10317
- {
10318
- text: 'Категория 5%',
10319
- key: '5',
10320
- },
10321
- {
10322
- text: 'Категория 10%',
10323
- key: '10',
10324
- },
10325
- {
10326
- text: 'Категория 15%',
10327
- key: '15',
10328
- },
10329
- ];
10330
- const MAIN_CASHBACK_KEY = {
10331
- standard: '1-main',
10332
- premium: '1.5-main',
10333
- };
10334
- const DEFAULT_STANDARD_CASHBACK = [
10335
- {
10336
- id: 0,
10337
- percent: {
10338
- text: 'Категория 1% «На всё»',
10339
- key: '1-main',
10340
- },
10341
- sum: 5000,
10342
- },
10343
- ];
10344
- const DEFAULT_PREMIUM_CASHBACK = [
10345
- {
10346
- id: 0,
10347
- percent: {
10348
- text: 'Категория 1,5% «На всё»',
10349
- key: '1.5-main',
10350
- },
10351
- sum: 5000,
10352
- },
10353
10310
  ];
10354
- // export const INCREASED_PERCENTS = ['5', '10', '15'];
10355
- const MAX_CATEGORIES = {
10356
- standard: 5,
10357
- premium: 7,
10358
- };
10359
- const INFO_BLOCK_HTML = `<p>Полученные баллы можно конвертировать в рубли и компенсировать покупки у партнеров.</p>`;
10360
- const MAX_MONTH_CASHBACK = {
10361
- standard: 5000,
10362
- premium: 15000,
10363
- };
10364
-
10365
- const getPercentCategories = (isMainCashbackAdded, calculatorType) => {
10366
- const allPercentCategories = calculatorType === 'premium' ? ALL_PERCENT_PREMIUM_CATEGORIES : ALL_PERCENT_STANDARD_CATEGORIES;
10367
- let updatedCategories = allPercentCategories;
10368
- if (!isMainCashbackAdded) {
10369
- return allPercentCategories;
10370
- }
10371
- if (isMainCashbackAdded) {
10372
- updatedCategories = updatedCategories.filter((_) => _.key !== MAIN_CASHBACK_KEY[calculatorType]);
10373
- }
10374
- return updatedCategories;
10375
- };
10376
-
10377
- const defaultDeleteImage = {
10378
- src: 'IconDelete.svg',
10379
- format: 'webp',
10380
- alt: 'Иконка кнопки удаления блока кэшбека',
10381
- };
10382
- const CashbackCategory = JSX(({ categories, cashback, maxInputRange, deleteImage = defaultDeleteImage, isMainCashbackAdded = false, calculatorType = 'standard', onDelete, onChange, isShowDisclaimer = false, onChangeCategory = noop, }) => {
10311
+ const CashbackCategory = JSX(({ categories, cashback, showIncreasedPercents, maxInputRange, deleteImage, onDelete, onChange, }) => {
10383
10312
  const [currentCategory, setCurrentCategory] = useState(getRandomElement(categories));
10384
- const isMainCashback = cashback.percent.key === MAIN_CASHBACK_KEY[calculatorType];
10385
- const onChangePercent = createChangeHandler(cashback, 'percent', onChange);
10386
- const onChangeSum = createChangeHandler(cashback, 'sum', onChange);
10387
- const onChangeCashbackCategory = (value) => {
10388
- setCurrentCategory(value);
10389
- onChangeCategory((prev) => updateSelectedCategories(prev, cashback, value));
10313
+ const isMainCashback = cashback.id === 0;
10314
+ const onChangePercent = (value) => {
10315
+ onChange({
10316
+ ...cashback,
10317
+ percent: value,
10318
+ });
10319
+ };
10320
+ const onChangeSum = (value) => {
10321
+ onChange({
10322
+ ...cashback,
10323
+ sum: value,
10324
+ });
10390
10325
  };
10391
- return (jsxs("div", { className: "w-full space-y-m", children: [jsxs("div", { className: "space-y-xs", children: [jsx(Paragraph, { size: "text-m", color: "text-primary-text", font: "font-light", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E" }), isShowDisclaimer ? (jsx(Text, { size: "text-s", color: "text-primary-text", font: "font-light", className: "italic", children: "\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0434\u043B\u044F \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0431\u0430\u043B\u043B\u043E\u0432 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435" })) : null, jsxs("div", { className: "flex gap-m", children: [jsx(Select, { className: "w-full", isManualInput: isMainCashback, placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E", options: getPercentCategories(isMainCashbackAdded, calculatorType), value: cashback.percent, onChange: onChangePercent }), jsx(Button, { version: "secondary", onClick: () => onDelete(cashback.id), shape: "round", className: "px-4 rounded-md", children: jsx(Img, { image: deleteImage }) })] })] }), categories?.length && !isMainCashback ? (jsx(Select, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", options: categories, value: currentCategory, onChange: onChangeCashbackCategory })) : null, jsx(InputRange, { step: 500, title: "\u0421\u0443\u043C\u043C\u0430 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", min: 0, max: maxInputRange, value: cashback.sum, onChange: onChangeSum })] }));
10326
+ return (jsxs("div", { className: "w-full space-y-m", children: [jsxs("div", { className: "space-y-xs", children: [jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E" }), jsxs("div", { className: "flex gap-m", children: [jsx(Select, { className: "w-full", isManualInput: isMainCashback, placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E", options: getPercentCategories(isMainCashback, showIncreasedPercents), value: cashback.percent, onChange: onChangePercent }), !isMainCashback ? (jsx(Button, { version: "secondary", onClick: () => onDelete(cashback.id), shape: "round", className: "px-4 rounded-md", children: jsx(Img, { image: deleteImage }) })) : null] })] }), categories?.length && !isMainCashback ? (jsx(Select, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043F\u043E\u043A\u0443\u043F\u043E\u043A", options: categories, value: currentCategory, onChange: setCurrentCategory })) : null, jsx(InputRange, { step: 500, title: "\u0421\u0443\u043C\u043C\u0430 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", min: 0, max: maxInputRange, value: cashback.sum, onChange: onChangeSum })] }));
10392
10327
  });
10393
10328
  const getRandomElement = (arr) => arr?.[new Date().getTime().toString().slice(-1)];
10394
- const createChangeHandler = (obj, field, onChange) => (value) => {
10395
- onChange({
10396
- ...obj,
10397
- [field]: value,
10398
- });
10399
- };
10400
- const updateSelectedCategories = (prev, cashback, value) => {
10401
- const newItem = { id: cashback.id, category: value };
10402
- if (prev.length === 0) {
10403
- return [newItem];
10329
+ const getPercentCategories = (isMainCashback, showIncreasedPercents) => {
10330
+ if (isMainCashback) {
10331
+ return [];
10404
10332
  }
10405
- const index = prev.findIndex((item) => item.id === cashback.id);
10406
- if (index !== -1) {
10407
- const updated = [...prev];
10408
- updated[index] = newItem;
10409
- return updated;
10333
+ else if (showIncreasedPercents) {
10334
+ return AllPercentCategories;
10335
+ }
10336
+ else {
10337
+ return PercentCategoriesWithoutIncreased;
10410
10338
  }
10411
- return [...prev, newItem];
10412
- };
10413
-
10414
- const renderButtons$1 = ({ cashbacksLength, onAddNewCashback, onResetCashback, calculatorType = 'standard', maxCategories = MAX_CATEGORIES[calculatorType], }) => {
10415
- return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [cashbacksLength < maxCategories ? (jsx(Button, { className: "self-start text-primary-main", embedded: true, version: "secondary", onClick: onAddNewCashback, children: cashbacksLength ? 'Добавить ещё категорию' : 'Добавить категорию' })) : null, cashbacksLength > 2 ? (jsx(Button, { className: "self-start", version: "secondary", onClick: onResetCashback, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438" })) : null] }));
10416
10339
  };
10417
10340
 
10418
- const CashbackType = {
10419
- standard: DEFAULT_STANDARD_CASHBACK,
10420
- premium: DEFAULT_PREMIUM_CASHBACK,
10421
- };
10422
- const useCashbackCalculator = (calculatorType) => {
10341
+ const DEFAULT_CASHBACK = [
10342
+ {
10343
+ id: 0,
10344
+ percent: {
10345
+ text: 'Категория 1% "На всё"',
10346
+ key: '1',
10347
+ },
10348
+ sum: 5000,
10349
+ },
10350
+ ];
10351
+ const useCashbackCalculator = () => {
10423
10352
  const { data } = useLeadFormData('CASHBACK_CATEGORY');
10424
- const [cashbacks, setCashbacks] = useState(CashbackType[calculatorType]);
10425
- const [selectedCategories, setSelectedCategories] = useState([]);
10353
+ const [cashbacks, setCashbacks] = useState(DEFAULT_CASHBACK);
10426
10354
  const categories = data?.map((_) => ({
10427
10355
  key: _.key || '',
10428
10356
  text: _.value,
10429
10357
  })) || [];
10430
- const filteredCategories = useMemo(() => {
10431
- const categoriesToRemove = selectedCategories.map((obj) => obj.category);
10432
- const keysToRemove = new Set(categoriesToRemove.map((item) => item.key));
10433
- return categories.filter((item) => !keysToRemove.has(item.key));
10434
- }, [selectedCategories, categories]);
10435
10358
  const onAddNewCashback = () => setCashbacks((_) => [
10436
10359
  ..._,
10437
10360
  {
10438
- id: _ && _.length > 0 ? _[_.length - 1]?.id + 1 : 1,
10361
+ id: _[_.length - 1].id + 1,
10439
10362
  percent: {
10440
10363
  text: 'Категория 1,5%',
10441
10364
  key: '1.5',
@@ -10450,15 +10373,14 @@
10450
10373
  return _;
10451
10374
  }));
10452
10375
  const onDeleteCashback = (id) => setCashbacks((prev) => prev.filter((_) => _.id !== id));
10453
- const onResetCashback = () => setCashbacks(CashbackType[calculatorType]);
10376
+ const onResetCashback = () => setCashbacks(DEFAULT_CASHBACK);
10454
10377
  return {
10455
10378
  cashbacks,
10456
- categories: filteredCategories,
10379
+ categories,
10457
10380
  onAddNewCashback,
10458
10381
  onChangeCashback,
10459
10382
  onDeleteCashback,
10460
10383
  onResetCashback,
10461
- onChangeCategory: setSelectedCategories,
10462
10384
  };
10463
10385
  };
10464
10386
 
@@ -10467,27 +10389,19 @@
10467
10389
  text: 'Оформить карту',
10468
10390
  target: '_self',
10469
10391
  };
10470
- const CashbackCalculator = JSX(
10471
- // eslint-disable-next-line max-lines-per-function
10472
- ({ maxInputRange = 300000, maxCategories, calculatorType = 'standard', maxMonthCashback = MAX_MONTH_CASHBACK[calculatorType], button = defaultButton, className = '', ...rest }) => {
10473
- const { cashbacks, categories, onAddNewCashback, onChangeCashback, onDeleteCashback, onResetCashback, onChangeCategory, } = useCashbackCalculator(calculatorType);
10474
- const { deleteImage, infoImage, image } = rest;
10475
- const [isMainCashbackAdded, setIsMainCashbackAdded] = useState(false);
10476
- useEffect(() => {
10477
- setIsMainCashbackAdded(Boolean(cashbacks.find((item) => item.percent.key === MAIN_CASHBACK_KEY[calculatorType])));
10478
- }, [cashbacks]);
10479
- return (jsx(BlockWrapper, { className: style('flex flex-col justify-center items-center gap-lg', className), defaultPadding: style('p-0'), ...rest, children: jsxs("div", { className: "flex flex-row items-start gap-lg mt-5", children: [jsxs("div", { className: "w-full flex flex-col justify-center items-center gap-lg", children: [cashbacks.length
10480
- ? cashbacks.map((_, index) => (jsx(CashbackCategory, { categories: categories, cashback: _, maxInputRange: maxInputRange, deleteImage: deleteImage, onDelete: onDeleteCashback, onChange: onChangeCashback, isMainCashbackAdded: isMainCashbackAdded, calculatorType: calculatorType, isShowDisclaimer: index === 0, onChangeCategory: onChangeCategory }, String(_.id))))
10481
- : renderNoCategoryText(), renderButtons$1({
10482
- cashbacksLength: cashbacks.length,
10483
- onAddNewCashback: onAddNewCashback,
10484
- onResetCashback: onResetCashback,
10485
- calculatorType: calculatorType,
10486
- maxCategories,
10487
- }), jsx(CashbackCalculatorResult, { cashbacks: cashbacks, maxMonthCashback: maxMonthCashback }), jsx(InfoCard, { __html: INFO_BLOCK_HTML, image: infoImage }), jsx(RichText, { __html: '* \u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043F\u043E \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u043C \u0438 \u043D\u0430\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F\u043C \u043C\u043E\u0436\u043D\u043E \u0443\u0437\u043D\u0430\u0442\u044C \u0432\u043E \u0432\u043A\u043B\u0430\u0434\u043A\u0435 <a href="#docs">\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B</a>' }), jsx(LinkButton, { className: "w-full @lg:w-auto self-start", href: button.href, text: button.text, target: button.target, version: "primary" })] }), renderImage(image)] }) }));
10488
- });
10489
- const renderNoCategoryText = () => (jsx(Text, { align: "text-left", className: "w-full", children: "\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u0430" }));
10490
- const renderImage = (image = {}) => image?.src ? (jsx(Img, { image: image, className: "hidden w-full @xl:block", imageClassName: "justify-self-center" })) : null;
10392
+ const INCREASED_PERCENTS = ['5', '10', '15'];
10393
+ const MAX_CATEGORIES = 5;
10394
+ const INFO_BLOCK_HTML = `<p>Полученные баллы можно конвертировать в рубли и компенсировать покупки у партнеров. Подробнее в <a href='#docs'>документах</a></p>`;
10395
+ const CashbackCalculator = JSX(({ maxInputRange = 300000, image, deleteImage, infoImage, className = '', button = defaultButton, ...rest }) => {
10396
+ const { cashbacks, categories, onAddNewCashback, onChangeCashback, onDeleteCashback, onResetCashback, } = useCashbackCalculator();
10397
+ const img = image?.src ? (jsx(Img, { image: image, className: "hidden w-full @xl:block", imageClassName: "justify-self-center" })) : null;
10398
+ return (jsxs(BlockWrapper, { className: style('flex flex-col justify-center items-center gap-lg', className), defaultPadding: style('p-6xl'), ...rest, children: [jsx(Headline, { title: "\u041A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0431\u0430\u043B\u043B\u043E\u0432", description: "\u041C\u043E\u0436\u043D\u043E \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 5 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439, \u043E\u0434\u043D\u0430 \u0438\u0437 \u043D\u0438\u0445 \u0438\u0437 \u043F\u043E\u0432\u044B\u0448\u0435\u043D\u043D\u043E\u0439 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", headlineVersion: "XL", isEmbedded: true }), jsxs("div", { className: "flex flex-row items-start gap-lg", children: [jsxs("div", { className: "w-full flex flex-col justify-center items-center gap-lg", children: [cashbacks.map((_) => (jsx(CashbackCategory, { categories: categories, cashback: _, showIncreasedPercents: showIncreasedPercents(_, cashbacks), maxInputRange: maxInputRange, deleteImage: deleteImage, onDelete: onDeleteCashback, onChange: onChangeCashback }, String(_.id)))), renderButtons$1(cashbacks.length, onAddNewCashback, onResetCashback), jsx(CashbackCalculatorResult, { cashbacks: cashbacks }), jsx(InfoCard, { __html: INFO_BLOCK_HTML, image: infoImage }), jsx(LinkButton, { className: "w-full @lg:w-auto self-start", href: button.href, text: button.text, target: button.target, version: "primary" })] }), img] })] }));
10399
+ });
10400
+ const renderButtons$1 = (cashbacksLength, onAddNewCashback, onResetCashback) => {
10401
+ return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [cashbacksLength < MAX_CATEGORIES ? (jsx(Button, { className: "self-start text-primary-main", embedded: true, version: "secondary", onClick: onAddNewCashback, children: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0435\u0449\u0435" })) : null, cashbacksLength > 2 ? (jsx(Button, { className: "self-start", version: "secondary", onClick: onResetCashback, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438" })) : null] }));
10402
+ };
10403
+ const showIncreasedPercents = (currentCashback, cashback) => INCREASED_PERCENTS.includes(currentCashback.percent.key) ||
10404
+ !cashback.some((_) => INCREASED_PERCENTS.includes(_.percent.key));
10491
10405
 
10492
10406
  const CreditCardFormProgress = JSX(({ step = 1, totalSteps = 6, stepsTitles = [] }) => {
10493
10407
  const progress = useMemo(() => ((step + 1) / totalSteps) * 100, [step, totalSteps]);
@@ -14768,7 +14682,7 @@
14768
14682
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
14769
14683
  });
14770
14684
 
14771
- const packageVersion = "0.14.1072";
14685
+ const packageVersion = "0.14.1073";
14772
14686
 
14773
14687
  exports.Blocks = Blocks;
14774
14688
  exports.ContentPage = ContentPage;