@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
@@ -1,116 +0,0 @@
1
- import { JSX } from '@redneckz/uni-jsx';
2
- import type { Picture } from '../../model/Picture';
3
- import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
- import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
5
- import { RichText } from '../../ui-kit/RichText/RichText';
6
- import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
7
- import { style } from '../../utils/style';
8
- import { Headline } from '../Headline/Headline';
9
- import { TabsLayout } from '../TabsLayout/TabsLayout';
10
- import type { Tab } from '../TabsLayout/TabsLayoutContent';
11
- import {
12
- type CalculatorParams,
13
- type CashbackCalculatorLayoutContent,
14
- type CashbackCalculatorType,
15
- } from './CashbackCalculatorLayoutContent';
16
-
17
- const CALCULATOR_TABS: Tab[] = [
18
- {
19
- type: 'group',
20
- description: 'с остатками на счетах до 2 999 999,99 руб*',
21
- text: 'Стандарт',
22
- tabName: 'standard',
23
- selected: true,
24
- },
25
- {
26
- type: 'group',
27
- description: 'с остатками на счетах от 3 000 000,00 руб*',
28
- text: 'Престиж',
29
- tabName: 'premium',
30
- selected: false,
31
- },
32
- ];
33
-
34
- const defaultInfoImage: Picture = {
35
- src: 'IconExchange.svg',
36
- format: 'webp',
37
- alt: 'Иконка информационного блока',
38
- };
39
-
40
- interface CashbackCalculatorProps extends CashbackCalculatorLayoutContent, UniBlockProps {}
41
-
42
- export const CashbackCalculatorLayout = JSX<CashbackCalculatorProps>(
43
- ({
44
- premiumCalculatorParams = {},
45
- standardCalculatorParams = {},
46
- image,
47
- deleteImage,
48
- infoImage = defaultInfoImage,
49
- button,
50
- className = '',
51
- options,
52
- title,
53
- description,
54
- subtitle,
55
- ...rest
56
- }) => {
57
- const calculatorProps = {
58
- button,
59
- deleteImage,
60
- infoImage,
61
- image,
62
- };
63
-
64
- const CalculatorStandardBlock = createCalculatorBlock(
65
- 'standard',
66
- calculatorProps,
67
- standardCalculatorParams,
68
- );
69
-
70
- const CalculatorPremiumBlock = createCalculatorBlock(
71
- 'premium',
72
- calculatorProps,
73
- premiumCalculatorParams,
74
- );
75
-
76
- const slots = {
77
- standard: [CalculatorStandardBlock],
78
- premium: [CalculatorPremiumBlock],
79
- };
80
-
81
- return (
82
- <BlockWrapper
83
- className={style('flex flex-col justify-center items-center gap-lg', className)}
84
- defaultPadding={style('p-6xl')}
85
- {...rest}
86
- >
87
- <Headline title={title} headlineVersion="XL" isEmbedded={true} />
88
- <RichText __html={description} className="text-center" />
89
- <Paragraph>{subtitle}</Paragraph>
90
- <div className="container grid grid-cols-12">
91
- <TabsLayout
92
- className="col-span-12"
93
- tabsType="animated"
94
- tabs={CALCULATOR_TABS}
95
- block={{ slots }}
96
- options={options}
97
- />
98
- </div>
99
- </BlockWrapper>
100
- );
101
- },
102
- );
103
-
104
- const createCalculatorBlock = (
105
- calculatorType: CashbackCalculatorType,
106
- calculatorProps: CashbackCalculatorLayoutContent,
107
- calculatorParams: CalculatorParams,
108
- ) => ({
109
- type: 'CashbackCalculator',
110
- content: {
111
- calculatorType: calculatorType,
112
- ...calculatorProps,
113
- ...calculatorParams,
114
- },
115
- style: ['col-span-12'],
116
- });
@@ -1,49 +0,0 @@
1
- import {
2
- type DescriptionProps,
3
- type SubtitleProps,
4
- type TitleProps,
5
- } from '../../model/HeadlineType';
6
- import { type Picture } from '../../model/Picture';
7
- import { type LinkButtonContent } from '../../ui-kit/LinkButton/LinkButtonContent';
8
- import { type Option } from '../../ui-kit/Select/Option';
9
- import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
10
-
11
- export type Cashback = {
12
- id: number;
13
- percent: Option;
14
- sum: number;
15
- };
16
-
17
- export type CalculatorParams = {
18
- /** @title Максимальное значение поля «Сумма покупок в категории» */
19
- maxInputRange?: number;
20
- /** @title Максимальное количество выбранных категорий */
21
- maxCategories?: number;
22
- /** @title Максимальное количество баллов в месяц */
23
- maxMonthCashback?: number;
24
- };
25
-
26
- /**
27
- * @title Блок калькулятора кэшбека
28
- */
29
- export type CashbackCalculatorLayoutContent = UniBlockContent &
30
- TitleProps &
31
- DescriptionProps &
32
- SubtitleProps & {
33
- /** @title Параметры калькулятора стандарт */
34
- standardCalculatorParams?: CalculatorParams;
35
- /** @title Параметры калькулятора престиж */
36
- premiumCalculatorParams?: CalculatorParams;
37
- /** @title Кнопка */
38
- button?: LinkButtonContent;
39
- /** @title Изображение */
40
- image?: Picture;
41
- /** @title Иконка кнопки удаления категории */
42
- deleteImage?: Picture;
43
- /** @title Иконка информационного блока */
44
- infoImage?: Picture;
45
- /** @hidden */
46
- calculatorType?: CashbackCalculatorType;
47
- };
48
-
49
- export type CashbackCalculatorType = 'standard' | 'premium';
@@ -1,97 +0,0 @@
1
- import type { Option } from '../../ui-kit/Select/Option';
2
- import { type Cashback } from '../CashbackCalculatorLayout/CashbackCalculatorLayoutContent';
3
-
4
- export const ALL_PERCENT_STANDARD_CATEGORIES: Option[] = [
5
- {
6
- text: 'Категория 1% «На всё»',
7
- key: '1-main',
8
- },
9
- {
10
- text: 'Категория 1,5%',
11
- key: '1.5',
12
- },
13
- {
14
- text: 'Категория 3%',
15
- key: '3',
16
- },
17
- {
18
- text: 'Категория 5%',
19
- key: '5',
20
- },
21
- {
22
- text: 'Категория 10%',
23
- key: '10',
24
- },
25
- {
26
- text: 'Категория 15%',
27
- key: '15',
28
- },
29
- ];
30
-
31
- export const ALL_PERCENT_PREMIUM_CATEGORIES: Option[] = [
32
- {
33
- text: 'Категория 1,5% «На всё»',
34
- key: '1.5-main',
35
- },
36
- {
37
- text: 'Категория 1,5%',
38
- key: '1.5',
39
- },
40
- {
41
- text: 'Категория 3%',
42
- key: '3',
43
- },
44
- {
45
- text: 'Категория 5%',
46
- key: '5',
47
- },
48
- {
49
- text: 'Категория 10%',
50
- key: '10',
51
- },
52
- {
53
- text: 'Категория 15%',
54
- key: '15',
55
- },
56
- ];
57
-
58
- export const MAIN_CASHBACK_KEY = {
59
- standard: '1-main',
60
- premium: '1.5-main',
61
- };
62
-
63
- export const DEFAULT_STANDARD_CASHBACK: Cashback[] = [
64
- {
65
- id: 0,
66
- percent: {
67
- text: 'Категория 1% «На всё»',
68
- key: '1-main',
69
- },
70
- sum: 5000,
71
- },
72
- ];
73
-
74
- export const DEFAULT_PREMIUM_CASHBACK: Cashback[] = [
75
- {
76
- id: 0,
77
- percent: {
78
- text: 'Категория 1,5% «На всё»',
79
- key: '1.5-main',
80
- },
81
- sum: 5000,
82
- },
83
- ];
84
-
85
- // export const INCREASED_PERCENTS = ['5', '10', '15'];
86
-
87
- export const MAX_CATEGORIES = {
88
- standard: 5,
89
- premium: 7,
90
- };
91
-
92
- export const INFO_BLOCK_HTML = `<p>Полученные баллы можно конвертировать в рубли и компенсировать покупки у партнеров.</p>`;
93
-
94
- export const MAX_MONTH_CASHBACK: Record<string, number> = {
95
- standard: 5000,
96
- premium: 15000,
97
- };
@@ -1,24 +0,0 @@
1
- import {
2
- ALL_PERCENT_PREMIUM_CATEGORIES,
3
- ALL_PERCENT_STANDARD_CATEGORIES,
4
- MAIN_CASHBACK_KEY,
5
- } from './constants';
6
-
7
- export const getPercentCategories = (isMainCashbackAdded: boolean, calculatorType: string) => {
8
- const allPercentCategories =
9
- calculatorType === 'premium' ? ALL_PERCENT_PREMIUM_CATEGORIES : ALL_PERCENT_STANDARD_CATEGORIES;
10
-
11
- let updatedCategories = allPercentCategories;
12
-
13
- if (!isMainCashbackAdded) {
14
- return allPercentCategories;
15
- }
16
-
17
- if (isMainCashbackAdded) {
18
- updatedCategories = updatedCategories.filter(
19
- (_) => _.key !== MAIN_CASHBACK_KEY[calculatorType],
20
- );
21
- }
22
-
23
- return updatedCategories;
24
- };
@@ -1,38 +0,0 @@
1
- import { Button } from '../../ui-kit/Button/Button';
2
- import { MAX_CATEGORIES } from './constants';
3
-
4
- type RenderButtonsProps = {
5
- cashbacksLength: number;
6
- onAddNewCashback: () => void;
7
- onResetCashback: () => void;
8
- calculatorType?: string;
9
- maxCategories?: number;
10
- };
11
-
12
- export const renderButtons = ({
13
- cashbacksLength,
14
- onAddNewCashback,
15
- onResetCashback,
16
- calculatorType = 'standard',
17
- maxCategories = MAX_CATEGORIES[calculatorType],
18
- }: RenderButtonsProps) => {
19
- return (
20
- <div className="w-full flex flex-col gap-lg">
21
- {cashbacksLength < maxCategories ? (
22
- <Button
23
- className="self-start text-primary-main"
24
- embedded
25
- version="secondary"
26
- onClick={onAddNewCashback}
27
- >
28
- {cashbacksLength ? 'Добавить ещё категорию' : 'Добавить категорию'}
29
- </Button>
30
- ) : null}
31
- {cashbacksLength > 2 ? (
32
- <Button className="self-start" version="secondary" onClick={onResetCashback}>
33
- Сбросить все категории
34
- </Button>
35
- ) : null}
36
- </div>
37
- );
38
- };
@@ -1,47 +0,0 @@
1
- {
2
- "content": {
3
- "title": "Калькулятор расчёта баллов",
4
- "description": "<p>Можно выбрать до 5 категорий для уровня программы лояльности «Стандарт», </br> до 7 категорий для уровня программы лояльности «Престиж»</p>",
5
- "subtitle": "Выберите уровень программы лояльности",
6
- "premiumCalculatorParams": {
7
- "maxInputRange": 300000,
8
- "maxCategories": 7,
9
- "maxMonthCashback": 15000
10
- },
11
- "standardCalculatorParams": {
12
- "maxInputRange": 300000,
13
- "maxCategories": 5,
14
- "maxMonthCashback": 5000
15
- },
16
- "deleteImage": {
17
- "src": "IconDelete.svg",
18
- "format": "webp",
19
- "alt": "Иконка кнопки удаления блока кэшбека"
20
- },
21
- "infoImage": {
22
- "src": "IconExchange.svg",
23
- "format": "webp",
24
- "alt": "Иконка информационного блока"
25
- },
26
- "image": {
27
- "src": "money-1.png",
28
- "format": "webp",
29
- "alt": "Калькулятор кэшбека",
30
- "size": {
31
- "width": 540,
32
- "height": 366
33
- }
34
- },
35
- "button": {
36
- "href": "/natural/debetcards/svoya-plus",
37
- "text": "Оформить карту",
38
- "target": "_self"
39
- }
40
- },
41
- "blocks": [
42
- {
43
- "content": {},
44
- "type": "CashbackCalculator"
45
- }
46
- ]
47
- }
@@ -1,61 +0,0 @@
1
- import { type Picture } from '../../model/Picture';
2
- import '../../setup-fixture';
3
- import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
-
5
- import type { BlockRendererOptions } from '../../BlockRenderer/BlockRendererOptions';
6
- import { Blocks } from '../Blocks';
7
- import { CashbackCalculatorLayout } from './CashbackCalculatorLayout';
8
-
9
- const image: Picture = {
10
- src: 'money-1.png',
11
- format: 'webp',
12
- alt: 'Потребительский кредит наличными',
13
- size: {
14
- width: 540,
15
- height: 366,
16
- },
17
- };
18
-
19
- const deleteImage: Picture = {
20
- src: 'IconDelete.svg',
21
- format: 'webp',
22
- alt: 'Иконка кнопки удаления блока кэшбека',
23
- };
24
-
25
- const infoImage: Picture = {
26
- src: 'IconExchange.svg',
27
- format: 'webp',
28
- alt: 'Иконка информационного блока',
29
- };
30
-
31
- const options: BlockRendererOptions = {
32
- blocksRegistry: Blocks,
33
- };
34
-
35
- export default {
36
- default: (
37
- <div className="container grid grid-cols-12">
38
- <CashbackCalculatorLayout
39
- title="Калькулятор расчёта баллов"
40
- description="<p>Можно выбрать до 5 категорий для уровня программы лояльности «Стандарт», </br> до 7 категорий для уровня программы лояльности «Престиж»</p>"
41
- subtitle="Выберите уровень программы лояльности"
42
- image={image}
43
- deleteImage={deleteImage}
44
- infoImage={infoImage}
45
- className="col-span-12"
46
- options={options}
47
- premiumCalculatorParams={{
48
- maxInputRange: 300000,
49
- maxCategories: 7,
50
- maxMonthCashback: 15000,
51
- }}
52
- standardCalculatorParams={{
53
- maxInputRange: 300000,
54
- maxCategories: 5,
55
- maxMonthCashback: 5000,
56
- }}
57
- />
58
- <PopupManager />
59
- </div>
60
- ),
61
- };
@@ -1,116 +0,0 @@
1
- import { JSX } from '@redneckz/uni-jsx';
2
- import type { Picture } from '../../model/Picture';
3
- import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
- import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
5
- import { RichText } from '../../ui-kit/RichText/RichText';
6
- import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
7
- import { style } from '../../utils/style';
8
- import { Headline } from '../Headline/Headline';
9
- import { TabsLayout } from '../TabsLayout/TabsLayout';
10
- import type { Tab } from '../TabsLayout/TabsLayoutContent';
11
- import {
12
- type CalculatorParams,
13
- type CashbackCalculatorLayoutContent,
14
- type CashbackCalculatorType,
15
- } from './CashbackCalculatorLayoutContent';
16
-
17
- const CALCULATOR_TABS: Tab[] = [
18
- {
19
- type: 'group',
20
- description: 'с остатками на счетах до 2 999 999,99 руб*',
21
- text: 'Стандарт',
22
- tabName: 'standard',
23
- selected: true,
24
- },
25
- {
26
- type: 'group',
27
- description: 'с остатками на счетах от 3 000 000,00 руб*',
28
- text: 'Престиж',
29
- tabName: 'premium',
30
- selected: false,
31
- },
32
- ];
33
-
34
- const defaultInfoImage: Picture = {
35
- src: 'IconExchange.svg',
36
- format: 'webp',
37
- alt: 'Иконка информационного блока',
38
- };
39
-
40
- interface CashbackCalculatorProps extends CashbackCalculatorLayoutContent, UniBlockProps {}
41
-
42
- export const CashbackCalculatorLayout = JSX<CashbackCalculatorProps>(
43
- ({
44
- premiumCalculatorParams = {},
45
- standardCalculatorParams = {},
46
- image,
47
- deleteImage,
48
- infoImage = defaultInfoImage,
49
- button,
50
- className = '',
51
- options,
52
- title,
53
- description,
54
- subtitle,
55
- ...rest
56
- }) => {
57
- const calculatorProps = {
58
- button,
59
- deleteImage,
60
- infoImage,
61
- image,
62
- };
63
-
64
- const CalculatorStandardBlock = createCalculatorBlock(
65
- 'standard',
66
- calculatorProps,
67
- standardCalculatorParams,
68
- );
69
-
70
- const CalculatorPremiumBlock = createCalculatorBlock(
71
- 'premium',
72
- calculatorProps,
73
- premiumCalculatorParams,
74
- );
75
-
76
- const slots = {
77
- standard: [CalculatorStandardBlock],
78
- premium: [CalculatorPremiumBlock],
79
- };
80
-
81
- return (
82
- <BlockWrapper
83
- className={style('flex flex-col justify-center items-center gap-lg', className)}
84
- defaultPadding={style('p-6xl')}
85
- {...rest}
86
- >
87
- <Headline title={title} headlineVersion="XL" isEmbedded={true} />
88
- <RichText __html={description} className="text-center" />
89
- <Paragraph>{subtitle}</Paragraph>
90
- <div className="container grid grid-cols-12">
91
- <TabsLayout
92
- className="col-span-12"
93
- tabsType="animated"
94
- tabs={CALCULATOR_TABS}
95
- block={{ slots }}
96
- options={options}
97
- />
98
- </div>
99
- </BlockWrapper>
100
- );
101
- },
102
- );
103
-
104
- const createCalculatorBlock = (
105
- calculatorType: CashbackCalculatorType,
106
- calculatorProps: CashbackCalculatorLayoutContent,
107
- calculatorParams: CalculatorParams,
108
- ) => ({
109
- type: 'CashbackCalculator',
110
- content: {
111
- calculatorType: calculatorType,
112
- ...calculatorProps,
113
- ...calculatorParams,
114
- },
115
- style: ['col-span-12'],
116
- });
@@ -1,49 +0,0 @@
1
- import {
2
- type DescriptionProps,
3
- type SubtitleProps,
4
- type TitleProps,
5
- } from '../../model/HeadlineType';
6
- import { type Picture } from '../../model/Picture';
7
- import { type LinkButtonContent } from '../../ui-kit/LinkButton/LinkButtonContent';
8
- import { type Option } from '../../ui-kit/Select/Option';
9
- import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
10
-
11
- export type Cashback = {
12
- id: number;
13
- percent: Option;
14
- sum: number;
15
- };
16
-
17
- export type CalculatorParams = {
18
- /** @title Максимальное значение поля «Сумма покупок в категории» */
19
- maxInputRange?: number;
20
- /** @title Максимальное количество выбранных категорий */
21
- maxCategories?: number;
22
- /** @title Максимальное количество баллов в месяц */
23
- maxMonthCashback?: number;
24
- };
25
-
26
- /**
27
- * @title Блок калькулятора кэшбека
28
- */
29
- export type CashbackCalculatorLayoutContent = UniBlockContent &
30
- TitleProps &
31
- DescriptionProps &
32
- SubtitleProps & {
33
- /** @title Параметры калькулятора стандарт */
34
- standardCalculatorParams?: CalculatorParams;
35
- /** @title Параметры калькулятора престиж */
36
- premiumCalculatorParams?: CalculatorParams;
37
- /** @title Кнопка */
38
- button?: LinkButtonContent;
39
- /** @title Изображение */
40
- image?: Picture;
41
- /** @title Иконка кнопки удаления категории */
42
- deleteImage?: Picture;
43
- /** @title Иконка информационного блока */
44
- infoImage?: Picture;
45
- /** @hidden */
46
- calculatorType?: CashbackCalculatorType;
47
- };
48
-
49
- export type CashbackCalculatorType = 'standard' | 'premium';