@redneckz/wildless-cms-uni-blocks 0.14.964 → 0.14.965

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 (193) hide show
  1. package/bundle/bundle.umd.js +146 -30
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/retail/api/getTaskStatus.d.ts +3 -1
  4. package/bundle/retail/components/Fields/SelectField.d.ts +2 -0
  5. package/bundle/retail/model/LeadFormState.d.ts +1 -0
  6. package/bundle/retail/model/NameFieldDef.d.ts +1 -1
  7. package/bundle/ui-kit/DatePicker/Calendar.d.ts +1 -0
  8. package/bundle/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  9. package/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  10. package/bundle/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  11. package/dist/components/DebitForm/DebitFormStatusTracker.js +6 -5
  12. package/dist/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
  13. package/dist/components/DebitForm/DebitFormStepsData.js +67 -1
  14. package/dist/components/DebitForm/DebitFormStepsData.js.map +1 -1
  15. package/dist/components/DebitForm/formStateMap.js +1 -0
  16. package/dist/components/DebitForm/formStateMap.js.map +1 -1
  17. package/dist/components/DebitForm/useDebitFormAPI.js +1 -1
  18. package/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
  19. package/dist/retail/api/getTaskStatus.d.ts +3 -1
  20. package/dist/retail/api/getTaskStatus.js +2 -0
  21. package/dist/retail/api/getTaskStatus.js.map +1 -1
  22. package/dist/retail/components/Fields/CardCategoryField.js +18 -4
  23. package/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
  24. package/dist/retail/components/Fields/DeliveryDateFiels.js +18 -1
  25. package/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  26. package/dist/retail/components/Fields/DeliveryTimeField.js +14 -4
  27. package/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
  28. package/dist/retail/components/Fields/RegionRetailField.js +4 -4
  29. package/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
  30. package/dist/retail/components/Fields/SelectField.d.ts +2 -0
  31. package/dist/retail/components/Fields/SelectField.js +2 -2
  32. package/dist/retail/components/Fields/SelectField.js.map +1 -1
  33. package/dist/retail/model/LeadFormState.d.ts +1 -0
  34. package/dist/retail/model/NameFieldDef.d.ts +1 -1
  35. package/dist/ui-kit/DatePicker/Calendar.d.ts +1 -0
  36. package/dist/ui-kit/DatePicker/Calendar.js +2 -1
  37. package/dist/ui-kit/DatePicker/Calendar.js.map +1 -1
  38. package/dist/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  39. package/dist/ui-kit/DatePicker/DatePicker.js +2 -2
  40. package/dist/ui-kit/DatePicker/DatePicker.js.map +1 -1
  41. package/dist/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  42. package/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  43. package/dist/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  44. package/dist/ui-kit/DatePicker/renderCalendarCells.js +13 -4
  45. package/dist/ui-kit/DatePicker/renderCalendarCells.js.map +1 -1
  46. package/lib/components/DebitForm/DebitFormStatusTracker.js +6 -5
  47. package/lib/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
  48. package/lib/components/DebitForm/DebitFormStepsData.js +67 -1
  49. package/lib/components/DebitForm/DebitFormStepsData.js.map +1 -1
  50. package/lib/components/DebitForm/formStateMap.js +1 -0
  51. package/lib/components/DebitForm/formStateMap.js.map +1 -1
  52. package/lib/components/DebitForm/useDebitFormAPI.js +1 -1
  53. package/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
  54. package/lib/retail/api/getTaskStatus.d.ts +3 -1
  55. package/lib/retail/api/getTaskStatus.js +2 -0
  56. package/lib/retail/api/getTaskStatus.js.map +1 -1
  57. package/lib/retail/components/Fields/CardCategoryField.js +18 -4
  58. package/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
  59. package/lib/retail/components/Fields/DeliveryDateFiels.js +18 -1
  60. package/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  61. package/lib/retail/components/Fields/DeliveryTimeField.js +14 -4
  62. package/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
  63. package/lib/retail/components/Fields/RegionRetailField.js +4 -4
  64. package/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
  65. package/lib/retail/components/Fields/SelectField.d.ts +2 -0
  66. package/lib/retail/components/Fields/SelectField.js +2 -2
  67. package/lib/retail/components/Fields/SelectField.js.map +1 -1
  68. package/lib/retail/model/LeadFormState.d.ts +1 -0
  69. package/lib/retail/model/NameFieldDef.d.ts +1 -1
  70. package/lib/ui-kit/DatePicker/Calendar.d.ts +1 -0
  71. package/lib/ui-kit/DatePicker/Calendar.js +2 -1
  72. package/lib/ui-kit/DatePicker/Calendar.js.map +1 -1
  73. package/lib/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  74. package/lib/ui-kit/DatePicker/DatePicker.js +2 -2
  75. package/lib/ui-kit/DatePicker/DatePicker.js.map +1 -1
  76. package/lib/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  77. package/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  78. package/lib/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  79. package/lib/ui-kit/DatePicker/renderCalendarCells.js +13 -4
  80. package/lib/ui-kit/DatePicker/renderCalendarCells.js.map +1 -1
  81. package/mobile/bundle/bundle.umd.js +146 -30
  82. package/mobile/bundle/bundle.umd.min.js +1 -1
  83. package/mobile/bundle/retail/api/getTaskStatus.d.ts +3 -1
  84. package/mobile/bundle/retail/components/Fields/SelectField.d.ts +2 -0
  85. package/mobile/bundle/retail/model/LeadFormState.d.ts +1 -0
  86. package/mobile/bundle/retail/model/NameFieldDef.d.ts +1 -1
  87. package/mobile/bundle/ui-kit/DatePicker/Calendar.d.ts +1 -0
  88. package/mobile/bundle/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  89. package/mobile/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  90. package/mobile/bundle/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  91. package/mobile/dist/components/DebitForm/DebitFormStatusTracker.js +6 -5
  92. package/mobile/dist/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
  93. package/mobile/dist/components/DebitForm/DebitFormStepsData.js +67 -1
  94. package/mobile/dist/components/DebitForm/DebitFormStepsData.js.map +1 -1
  95. package/mobile/dist/components/DebitForm/formStateMap.js +1 -0
  96. package/mobile/dist/components/DebitForm/formStateMap.js.map +1 -1
  97. package/mobile/dist/components/DebitForm/useDebitFormAPI.js +1 -1
  98. package/mobile/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
  99. package/mobile/dist/retail/api/getTaskStatus.d.ts +3 -1
  100. package/mobile/dist/retail/api/getTaskStatus.js +2 -0
  101. package/mobile/dist/retail/api/getTaskStatus.js.map +1 -1
  102. package/mobile/dist/retail/components/Fields/CardCategoryField.js +18 -4
  103. package/mobile/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
  104. package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js +18 -1
  105. package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  106. package/mobile/dist/retail/components/Fields/DeliveryTimeField.js +14 -4
  107. package/mobile/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
  108. package/mobile/dist/retail/components/Fields/RegionRetailField.js +4 -4
  109. package/mobile/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
  110. package/mobile/dist/retail/components/Fields/SelectField.d.ts +2 -0
  111. package/mobile/dist/retail/components/Fields/SelectField.js +2 -2
  112. package/mobile/dist/retail/components/Fields/SelectField.js.map +1 -1
  113. package/mobile/dist/retail/model/LeadFormState.d.ts +1 -0
  114. package/mobile/dist/retail/model/NameFieldDef.d.ts +1 -1
  115. package/mobile/dist/ui-kit/DatePicker/Calendar.d.ts +1 -0
  116. package/mobile/dist/ui-kit/DatePicker/Calendar.js +2 -1
  117. package/mobile/dist/ui-kit/DatePicker/Calendar.js.map +1 -1
  118. package/mobile/dist/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  119. package/mobile/dist/ui-kit/DatePicker/DatePicker.js +2 -2
  120. package/mobile/dist/ui-kit/DatePicker/DatePicker.js.map +1 -1
  121. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  122. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  123. package/mobile/dist/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  124. package/mobile/dist/ui-kit/DatePicker/renderCalendarCells.js +13 -4
  125. package/mobile/dist/ui-kit/DatePicker/renderCalendarCells.js.map +1 -1
  126. package/mobile/lib/components/DebitForm/DebitFormStatusTracker.js +6 -5
  127. package/mobile/lib/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
  128. package/mobile/lib/components/DebitForm/DebitFormStepsData.js +67 -1
  129. package/mobile/lib/components/DebitForm/DebitFormStepsData.js.map +1 -1
  130. package/mobile/lib/components/DebitForm/formStateMap.js +1 -0
  131. package/mobile/lib/components/DebitForm/formStateMap.js.map +1 -1
  132. package/mobile/lib/components/DebitForm/useDebitFormAPI.js +1 -1
  133. package/mobile/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
  134. package/mobile/lib/retail/api/getTaskStatus.d.ts +3 -1
  135. package/mobile/lib/retail/api/getTaskStatus.js +2 -0
  136. package/mobile/lib/retail/api/getTaskStatus.js.map +1 -1
  137. package/mobile/lib/retail/components/Fields/CardCategoryField.js +18 -4
  138. package/mobile/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
  139. package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js +18 -1
  140. package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  141. package/mobile/lib/retail/components/Fields/DeliveryTimeField.js +14 -4
  142. package/mobile/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
  143. package/mobile/lib/retail/components/Fields/RegionRetailField.js +4 -4
  144. package/mobile/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
  145. package/mobile/lib/retail/components/Fields/SelectField.d.ts +2 -0
  146. package/mobile/lib/retail/components/Fields/SelectField.js +2 -2
  147. package/mobile/lib/retail/components/Fields/SelectField.js.map +1 -1
  148. package/mobile/lib/retail/model/LeadFormState.d.ts +1 -0
  149. package/mobile/lib/retail/model/NameFieldDef.d.ts +1 -1
  150. package/mobile/lib/ui-kit/DatePicker/Calendar.d.ts +1 -0
  151. package/mobile/lib/ui-kit/DatePicker/Calendar.js +2 -1
  152. package/mobile/lib/ui-kit/DatePicker/Calendar.js.map +1 -1
  153. package/mobile/lib/ui-kit/DatePicker/DatePicker.d.ts +1 -0
  154. package/mobile/lib/ui-kit/DatePicker/DatePicker.js +2 -2
  155. package/mobile/lib/ui-kit/DatePicker/DatePicker.js.map +1 -1
  156. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  157. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  158. package/mobile/lib/ui-kit/DatePicker/renderCalendarCells.d.ts +2 -1
  159. package/mobile/lib/ui-kit/DatePicker/renderCalendarCells.js +13 -4
  160. package/mobile/lib/ui-kit/DatePicker/renderCalendarCells.js.map +1 -1
  161. package/mobile/src/components/DebitForm/DebitFormStatusTracker.tsx +6 -6
  162. package/mobile/src/components/DebitForm/DebitFormStepsData.tsx +67 -1
  163. package/mobile/src/components/DebitForm/formStateMap.tsx +1 -0
  164. package/mobile/src/components/DebitForm/useDebitFormAPI.tsx +1 -1
  165. package/mobile/src/retail/api/getTaskStatus.ts +2 -0
  166. package/mobile/src/retail/components/Fields/CardCategoryField.tsx +24 -3
  167. package/mobile/src/retail/components/Fields/DeliveryDateFiels.tsx +29 -3
  168. package/mobile/src/retail/components/Fields/DeliveryTimeField.tsx +16 -8
  169. package/mobile/src/retail/components/Fields/RegionRetailField.tsx +5 -5
  170. package/mobile/src/retail/components/Fields/SelectField.tsx +3 -0
  171. package/mobile/src/retail/model/LeadFormState.ts +1 -0
  172. package/mobile/src/retail/model/NameFieldDef.ts +1 -0
  173. package/mobile/src/ui-kit/DatePicker/Calendar.tsx +3 -1
  174. package/mobile/src/ui-kit/DatePicker/DatePicker.tsx +13 -1
  175. package/mobile/src/ui-kit/DatePicker/DatePickerControl.tsx +1 -0
  176. package/mobile/src/ui-kit/DatePicker/renderCalendarCells.tsx +18 -5
  177. package/package.json +1 -1
  178. package/src/components/DebitForm/DebitFormStatusTracker.tsx +6 -6
  179. package/src/components/DebitForm/DebitFormStepsData.tsx +67 -1
  180. package/src/components/DebitForm/formStateMap.tsx +1 -0
  181. package/src/components/DebitForm/useDebitFormAPI.tsx +1 -1
  182. package/src/retail/api/getTaskStatus.ts +2 -0
  183. package/src/retail/components/Fields/CardCategoryField.tsx +24 -3
  184. package/src/retail/components/Fields/DeliveryDateFiels.tsx +29 -3
  185. package/src/retail/components/Fields/DeliveryTimeField.tsx +16 -8
  186. package/src/retail/components/Fields/RegionRetailField.tsx +5 -5
  187. package/src/retail/components/Fields/SelectField.tsx +3 -0
  188. package/src/retail/model/LeadFormState.ts +1 -0
  189. package/src/retail/model/NameFieldDef.ts +1 -0
  190. package/src/ui-kit/DatePicker/Calendar.tsx +3 -1
  191. package/src/ui-kit/DatePicker/DatePicker.tsx +13 -1
  192. package/src/ui-kit/DatePicker/DatePickerControl.tsx +1 -0
  193. package/src/ui-kit/DatePicker/renderCalendarCells.tsx +18 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.964",
3
+ "version": "0.14.965",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -22,12 +22,10 @@ export const DebitFormStatusTracker = JSX(() => {
22
22
  signalType: 'FIND_PERSON_SIGNAL',
23
23
  taskId,
24
24
  });
25
- isOffice &&
26
- (await sendSignalToProcess({
27
- signalType: 'SET_PERSON_SIGNAL',
28
- taskId,
29
- }));
30
-
25
+ await sendSignalToProcess({
26
+ signalType: 'SET_PERSON_SIGNAL',
27
+ taskId,
28
+ });
31
29
  setStatus(statusCd || STATUS_TYPE.notFound);
32
30
  })();
33
31
  }, [taskId]);
@@ -40,6 +38,8 @@ const renderStatus = (status: STATUS_TYPE, isOffice: boolean, isSalaryCard: bool
40
38
  IN_PROCESS: <PendingStatusContent />,
41
39
  NOT_FOUND: <FailedStatusContent />,
42
40
  CLIENT_NOT_OK: <FailedStatusContent />,
41
+ NEW_CLIENT: <SuccessStatusContent isOffice={isOffice} />,
42
+ CLIENT_FOUND: <SuccessStatusContent isOffice={isOffice} />,
43
43
  DBO_CLIENT: isSalaryCard ? <SalaryDboClientStatusContent /> : <DboClientStatusContent />,
44
44
  PRE_DECISION: <SuccessStatusContent isOffice={isOffice} />, //
45
45
  };
@@ -67,6 +67,30 @@ export const DELIVERY_DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
67
67
  },
68
68
  ],
69
69
  },
70
+ {
71
+ inputs: [
72
+ {
73
+ name: 'deliveryDate',
74
+ condition: {
75
+ name: 'methodObtain',
76
+ values: ['courier'],
77
+ },
78
+ required: true,
79
+ },
80
+ ],
81
+ },
82
+ {
83
+ inputs: [
84
+ {
85
+ name: 'deliveryTime',
86
+ condition: {
87
+ name: 'methodObtain',
88
+ values: ['courier'],
89
+ },
90
+ required: true,
91
+ },
92
+ ],
93
+ },
70
94
  {
71
95
  inputs: [
72
96
  {
@@ -143,6 +167,20 @@ const DEBIT_PERSONAL_INFO_CONTENT: SectionsRetailProps[] = [
143
167
  },
144
168
  ],
145
169
  },
170
+ {
171
+ inputs: [
172
+ {
173
+ name: 'infoCard',
174
+ condition: {
175
+ name: 'methodObtain',
176
+ values: ['courier'],
177
+ },
178
+ label:
179
+ // eslint-disable-next-line max-len
180
+ 'Проверьте полученные данные с портала Государственных услуг. При наличии ошибки, закройте заявку и оформите заявку заново без авторизации через портал Государственных услуг.',
181
+ },
182
+ ],
183
+ },
146
184
  ];
147
185
  const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
148
186
  {
@@ -159,16 +197,40 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
159
197
  {
160
198
  title: 'Отображение на карте',
161
199
  inputs: [],
200
+ condition: {
201
+ name: 'isMomentDebitCard',
202
+ values: [false],
203
+ },
162
204
  },
163
205
  {
164
206
  columns: 2,
165
- inputs: [{ name: 'latinName' }, { name: 'latinSurname', required: true }],
207
+ inputs: [
208
+ {
209
+ name: 'latinName',
210
+ condition: {
211
+ name: 'isMomentDebitCard',
212
+ values: [false],
213
+ },
214
+ },
215
+ {
216
+ name: 'latinSurname',
217
+ required: true,
218
+ condition: {
219
+ name: 'isMomentDebitCard',
220
+ values: [false],
221
+ },
222
+ },
223
+ ],
166
224
  },
167
225
  {
168
226
  inputs: [
169
227
  {
170
228
  name: 'infoCard',
171
229
  label: 'Проверьте корректность заполненных полей, при необходимости внесите изменения.',
230
+ condition: {
231
+ name: 'isMomentDebitCard',
232
+ values: [false],
233
+ },
172
234
  },
173
235
  ],
174
236
  },
@@ -182,6 +244,10 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
182
244
  label:
183
245
  // eslint-disable-next-line max-len
184
246
  'Количество символов ограничивается 20. При этом, если фамилия и имя на карте содержит более 21 символа, то необходимо сократить имя и указывать на карте только первую букву имени и фамилию, если при таком сокращении фамилия и имя не умещается в количество символов – 20, то указывать только фамилию.',
247
+ condition: {
248
+ name: 'isMomentDebitCard',
249
+ values: [false],
250
+ },
185
251
  },
186
252
  ],
187
253
  },
@@ -38,6 +38,7 @@ export const formStateMap: Partial<LeadFormState>[] = [
38
38
  },
39
39
  {
40
40
  paymentSystem: { key: '', text: '' },
41
+ isMomentDebitCard: true,
41
42
  currency: '810',
42
43
  codeWord: '',
43
44
  latinName: '',
@@ -55,7 +55,7 @@ export const useDebitFormAPI = ({
55
55
  );
56
56
  }
57
57
 
58
- if (isFinalStep || formData.methodObtain === 'courier') {
58
+ if (isFinalStep) {
59
59
  onFinish?.();
60
60
  resetForm();
61
61
  } else {
@@ -13,6 +13,8 @@ export enum STATUS_TYPE {
13
13
  dboClient = 'DBO_CLIENT',
14
14
  clientNotOk = 'CLIENT_NOT_OK',
15
15
  notFound = 'NOT_FOUND',
16
+ clientFound = 'CLIENT_FOUND',
17
+ newClient = 'NEW_CLIENT',
16
18
  }
17
19
 
18
20
  export interface GetTaskStatusResponse {
@@ -5,13 +5,19 @@ import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProp
5
5
  import { InfoCard } from '../../../ui-kit/InfoCard/InfoCard';
6
6
  import { type Option } from '../../../ui-kit/Select/Option';
7
7
  import { getCardTypes, type CardTypeData } from '../../api/getCardTypes';
8
+ import { useRetailFormStore } from '../../hooks/useRetailFormStore';
8
9
  import { SelectField } from './SelectField';
9
10
 
10
11
  export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
11
12
  const [cardTypes, setCardTypes] = useState<CardTypeData[]>([]);
12
13
  const [programId] = useLocalStorage<string>('programId');
14
+ const { productType } = useRetailFormStore();
15
+ const isSalaryCard = programId === '38';
16
+ const isDebit = productType === 'debitCard';
17
+ const isEsiaAuth = Boolean(field('esiaAccountTypeCd')?.value?.key);
13
18
  const { value: selectedCardCategory, onChange: cardCategoryChange } = field('cardCategory');
14
19
  const selectedPaymentSystem = field('paymentSystem')?.value?.key;
20
+ const handleChangeIsMomentDebitCard = field('isMomentDebitCard')?.onChange;
15
21
 
16
22
  const getCardCategoryValue = useCallback(
17
23
  (fetchedCardTypes: CardTypeData[]) =>
@@ -24,14 +30,23 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
24
30
  [],
25
31
  );
26
32
 
33
+ const onChange = useCallback((value: Option) => {
34
+ cardCategoryChange?.(value);
35
+ handleChangeIsMomentDebitCard?.(value?.text?.toLowerCase()?.includes('неимен'));
36
+ }, []);
37
+
27
38
  useEffect(() => {
28
39
  if (selectedPaymentSystem && programId) {
29
40
  (async () => {
30
41
  const fetchedCardTypes = await getCardTypes(selectedPaymentSystem as string, programId);
31
- setCardTypes(fetchedCardTypes);
42
+ const actualCardTypes =
43
+ isDebit && !isEsiaAuth && !isSalaryCard
44
+ ? excludeSomeСategoriesCards(fetchedCardTypes)
45
+ : fetchedCardTypes;
46
+ setCardTypes(actualCardTypes);
32
47
 
33
- if (!isValidCardCategory(fetchedCardTypes, selectedCardCategory as Option)) {
34
- cardCategoryChange?.(getCardCategoryValue(fetchedCardTypes));
48
+ if (!isValidCardCategory(actualCardTypes, selectedCardCategory as Option)) {
49
+ cardCategoryChange?.(getCardCategoryValue(actualCardTypes));
35
50
  }
36
51
  })();
37
52
  }
@@ -50,6 +65,7 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
50
65
  label="Категория карты"
51
66
  fieldName="cardCategory"
52
67
  input={input}
68
+ onChange={onChange}
53
69
  />
54
70
  {description ? <InfoCard __html={description} /> : null}
55
71
  </div>
@@ -58,3 +74,8 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
58
74
 
59
75
  const isValidCardCategory = (cardTypes: CardTypeData[], selectedCardCategory: Option | null) =>
60
76
  cardTypes.some((cardType) => cardType.key === selectedCardCategory?.key);
77
+
78
+ const excludeSomeСategoriesCards = (cardTypes: CardTypeData[]) =>
79
+ cardTypes.filter(
80
+ (cardType) => cardType.value && cardType.value.toLowerCase().includes(' именная'),
81
+ );
@@ -1,7 +1,33 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
3
  import { DatePickerControl } from '../../../ui-kit/DatePicker/DatePickerControl';
3
4
  import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
5
+ import { useLeadFormData } from '../../hooks/useLeadFormData';
6
+ import { useRetailFormStore } from '../../hooks/useRetailFormStore';
4
7
 
5
- export const DeliveryDateFiels = JSX<CustomFieldProps>(({ field, input }) => (
6
- <DatePickerControl label="Дата доставки" {...field(input?.name ?? '')} minDate={new Date()} />
7
- ));
8
+ const MIN_DATE = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000);
9
+
10
+ export const DeliveryDateFiels = JSX<CustomFieldProps>(({ field, input }) => {
11
+ const { productType } = useRetailFormStore();
12
+ const isDebit = productType === 'debitCard';
13
+ const minDate = isDebit ? MIN_DATE : new Date();
14
+ const { data } = useLeadFormData('DAYS_DELIVERY_SETTINGS');
15
+
16
+ const weekends: number[] = useMemo(() => {
17
+ const weekendItem = data?.find((item) => item.key === 'WEEKEND');
18
+ if (weekendItem && weekendItem.value) {
19
+ return weekendItem.value.split(',').map(Number);
20
+ }
21
+
22
+ return [];
23
+ }, [data]);
24
+
25
+ return (
26
+ <DatePickerControl
27
+ label="Дата доставки"
28
+ {...field(input?.name ?? '')}
29
+ minDate={minDate}
30
+ weekends={isDebit ? weekends : []}
31
+ />
32
+ );
33
+ });
@@ -4,17 +4,25 @@ import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProp
4
4
  import { type RadioButtonItem } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroup';
5
5
  import { RadioButtonGroupControl } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroupControl';
6
6
  import { useLeadFormData } from '../../hooks/useLeadFormData';
7
+ import { useRetailFormStore } from '../../hooks/useRetailFormStore';
7
8
 
8
9
  export const DeliveryTimeField = JSX<CustomFieldProps>(({ field, input }) => {
10
+ const { productType } = useRetailFormStore();
11
+ const isDebit = productType === 'debitCard';
9
12
  const { data } = useLeadFormData('COURIER_DELIVERY_TIME');
10
- const deliveryTime: RadioButtonItem[] = useMemo(
11
- () =>
12
- data?.map((_) => ({
13
- id: _.key as string,
14
- text: _.value,
15
- })) ?? [],
16
- [data],
17
- );
13
+ const creditDeliveryTime = ['TIME_1', 'TIME_2', 'TIME_3'];
14
+ const debitDeliveryTime = ['TIME_4', 'TIME_5'];
15
+
16
+ const deliveryTime: RadioButtonItem[] = useMemo(() => {
17
+ const allowedTimes = isDebit ? debitDeliveryTime : creditDeliveryTime;
18
+
19
+ return (data || [])
20
+ .filter((item) => item.key && allowedTimes.includes(item.key))
21
+ .map((item) => ({
22
+ id: item.key as string,
23
+ text: item.value,
24
+ }));
25
+ }, [data, isDebit]);
18
26
 
19
27
  return (
20
28
  <RadioButtonGroupControl
@@ -10,12 +10,11 @@ import { useLeadFormData } from '../../hooks/useLeadFormData';
10
10
  import { useRetailFormStore } from '../../hooks/useRetailFormStore';
11
11
 
12
12
  export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
13
- const { programId, productType } = useRetailFormStore();
13
+ const { productType } = useRetailFormStore();
14
14
  const { data: regions } = useLeadFormData('REGION_RF');
15
15
  const { data: regionsDelivery } = useAsyncData('regionsDelivery', getRegionsCardDelivery);
16
16
  const { data: productSettings } = useLeadFormData(getCurrentProductSettings(productType));
17
-
18
- const isSalaryCard = programId === '38';
17
+ const isEsiaAuth = field('esiaAccountTypeCd')?.value?.key;
19
18
  const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
20
19
  const isDeliveryActive =
21
20
  productSettings?.find((_) => _?.key === 'DELIVERY_ACTIVE')?.value === 'true';
@@ -28,12 +27,13 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
28
27
  const regionHasDelivery =
29
28
  isDeliveryActive &&
30
29
  regionsDelivery?.find((_) => _.regionCode === value.key)?.deliveryFlg &&
31
- !isSalaryCard;
30
+ Boolean(isEsiaAuth);
31
+
32
32
  handleChangeRegionHasDelivery?.(regionHasDelivery);
33
33
  handleChangeMethodObtain?.(regionHasDelivery ? 'courier' : 'office');
34
34
  handleChangeRegion?.(value);
35
35
  },
36
- [regionsDelivery, isDeliveryActive],
36
+ [regionsDelivery, isDeliveryActive, isEsiaAuth],
37
37
  );
38
38
 
39
39
  return (
@@ -18,6 +18,7 @@ export interface SelectFieldProps
18
18
  fieldName: string;
19
19
  isSearch?: boolean;
20
20
  isManualInput?: boolean;
21
+ onChange?: (value: Option) => void;
21
22
  }
22
23
 
23
24
  export const SelectField = UniBlock<SelectFieldProps>(
@@ -28,6 +29,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
28
29
  placeholder = 'Выберите из списка',
29
30
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
31
  options,
32
+ onChange,
31
33
  ...rest
32
34
  }) => {
33
35
  const leadOptions: Option[] =
@@ -42,6 +44,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
42
44
  options={leadOptions}
43
45
  {...field(fieldName)}
44
46
  {...rest}
47
+ onChange={onChange ?? field(fieldName)?.onChange}
45
48
  />
46
49
  );
47
50
  },
@@ -186,6 +186,7 @@ export interface LeadFormState extends FormRetailConsents, FormStateDeliveryType
186
186
  latinName?: string;
187
187
  latinSurname?: string;
188
188
  regionHasDelivery?: boolean;
189
+ isMomentDebitCard?: boolean;
189
190
  files?: File[];
190
191
  deliveryTime?: string;
191
192
  }
@@ -28,6 +28,7 @@ type NameFieldCreditCardDef =
28
28
  | 'deliveryDate'
29
29
  | 'regionHasDelivery'
30
30
  | 'latinName'
31
+ | 'isMomentDebitCard'
31
32
  | 'latinSurname';
32
33
 
33
34
  type NameFieldRetailDef =
@@ -11,11 +11,12 @@ interface CalendarProps {
11
11
  currentYear: number;
12
12
  min?: Date;
13
13
  max?: Date;
14
+ weekends?: number[];
14
15
  onDateSelect?: (date: Date) => void;
15
16
  }
16
17
 
17
18
  export const Calendar = JSX<CalendarProps>(
18
- ({ today, currentMonth, currentYear, min, max, onDateSelect = noop }) => {
19
+ ({ today, currentMonth, currentYear, min, max, weekends, onDateSelect = noop }) => {
19
20
  const { firstDayOfWeek, totalDays } = useMemo(
20
21
  () => ({
21
22
  firstDayOfWeek: new Date(currentYear, currentMonth, 1).getDay() - 1,
@@ -44,6 +45,7 @@ export const Calendar = JSX<CalendarProps>(
44
45
  currentMonth,
45
46
  min,
46
47
  max,
48
+ weekends,
47
49
  onDateClick: onDateSelect,
48
50
  })}
49
51
  </tbody>
@@ -34,11 +34,22 @@ interface DatePickerProps extends ControlProps<Date>, ComponentType, LabelProps,
34
34
  minDate?: Date;
35
35
  maxDate?: Date;
36
36
  valid?: boolean;
37
+ weekends?: number[];
37
38
  }
38
39
 
39
40
  export const DatePicker = JSX<DatePickerProps>(
40
41
  // eslint-disable-next-line max-lines-per-function
41
- ({ className = '', label = '', value, valid = true, minDate, maxDate, disabled, onChange }) => {
42
+ ({
43
+ className = '',
44
+ label = '',
45
+ value,
46
+ valid = true,
47
+ minDate,
48
+ maxDate,
49
+ disabled,
50
+ weekends,
51
+ onChange,
52
+ }) => {
42
53
  const [isCalendarVisible, { setValue, setFalse: hideCalendar }] = useBool(false);
43
54
  const [selectedMonth, setSelectedMonth] = useState(value?.getMonth() || new Date().getMonth());
44
55
  const [selectedYear, setSelectedYear] = useState(
@@ -120,6 +131,7 @@ export const DatePicker = JSX<DatePickerProps>(
120
131
  currentYear={selectedYear}
121
132
  min={minDate}
122
133
  max={maxDate}
134
+ weekends={weekends}
123
135
  onDateSelect={handleDateSelect}
124
136
  />
125
137
  </div>
@@ -9,6 +9,7 @@ import { DatePicker } from './DatePicker';
9
9
  export interface DatePickerControlProps extends DefaultControlType, ControlProps<Date> {
10
10
  minDate?: Date;
11
11
  maxDate?: Date;
12
+ weekends?: number[];
12
13
  }
13
14
 
14
15
  export const DatePickerControl = JSX<DatePickerControlProps>(
@@ -12,6 +12,7 @@ interface RenderCalendarCellsParams {
12
12
  currentMonth: number;
13
13
  min?: Date;
14
14
  max?: Date;
15
+ weekends?: number[];
15
16
  onDateClick: (date: Date) => void;
16
17
  }
17
18
 
@@ -23,11 +24,11 @@ export const renderCalendarCells = ({
23
24
  currentYear,
24
25
  min,
25
26
  max,
27
+ weekends,
26
28
  onDateClick,
27
29
  }: RenderCalendarCellsParams) => {
28
30
  const calendarCells: VNode = [];
29
31
  let dayCounter = 1;
30
-
31
32
  for (let i = 0; i < DAY_COUNT; i++) {
32
33
  const rowCells: VNode = [];
33
34
 
@@ -40,12 +41,15 @@ export const renderCalendarCells = ({
40
41
  const currentDate = new Date(currentYear, currentMonth, dayCounter);
41
42
  const isToday = checkIsToday(currentDate, today);
42
43
  const isDisabled = checkIsDisabled(currentDate, min, max);
44
+ const isWeekend = checkIsWeekend(currentDate, weekends);
45
+
46
+ const isBlocked = isDisabled || isWeekend;
43
47
 
44
48
  rowCells.push(
45
49
  <td key={`day-${dayCounter}`}>
46
50
  <div
47
- className={getDayStyles(isToday, isDisabled)}
48
- onClick={() => !isDisabled && onDateClick(currentDate)}
51
+ className={getDayStyles(isToday, isBlocked)}
52
+ onClick={() => !isBlocked && onDateClick(currentDate)}
49
53
  >
50
54
  {dayCounter}
51
55
  </div>
@@ -68,11 +72,20 @@ const checkIsToday = (currentDate: Date, today: Date | undefined) =>
68
72
  const checkIsDisabled = (currentDate: Date, min: Date | undefined, max: Date | undefined) =>
69
73
  (min && currentDate.getTime() < min.getTime()) || (max && currentDate.getTime() > max.getTime());
70
74
 
71
- const getDayStyles = (isToday = false, isDisabled = false) =>
75
+ const checkIsWeekend = (currentDate: Date, weekends?: number[]) => {
76
+ if (!weekends || weekends.length === 0) {
77
+ return false;
78
+ }
79
+ const dayOfWeek = currentDate.getDay() === 0 ? 7 : currentDate.getDay();
80
+
81
+ return weekends.includes(dayOfWeek);
82
+ };
83
+
84
+ const getDayStyles = (isToday = false, isBlocked = false) =>
72
85
  style(
73
86
  'p-s text-center rounded-md border',
74
87
  {
75
88
  'border-transparent hover:bg-gray': !isToday,
76
89
  },
77
- isDisabled ? 'text-gray hover:bg-transparent' : 'cursor-pointer',
90
+ isBlocked ? 'text-gray hover:bg-transparent' : 'cursor-pointer',
78
91
  );