@redneckz/wildless-cms-uni-blocks 0.14.229 → 0.14.231
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.
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +44 -33
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
- package/bundle/components/Calculator/constants.d.ts +1 -1
- package/bundle/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
- package/bundle/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/dist/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/CalculatorContent.d.ts +27 -1
- package/dist/components/Calculator/constants.d.ts +1 -1
- package/dist/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
- package/dist/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +8 -6
- package/dist/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
- package/dist/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/dist/components/Calculator/useBusinessDepositRates.js +15 -0
- package/dist/components/Calculator/useBusinessDepositRates.js.map +1 -0
- package/lib/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/CalculatorContent.d.ts +27 -1
- package/lib/components/Calculator/constants.d.ts +1 -1
- package/lib/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
- package/lib/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +6 -4
- package/lib/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
- package/lib/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/lib/components/Calculator/useBusinessDepositRates.js +12 -0
- package/lib/components/Calculator/useBusinessDepositRates.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +44 -33
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
- package/mobile/bundle/components/Calculator/constants.d.ts +1 -1
- package/mobile/bundle/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
- package/mobile/bundle/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/CalculatorContent.d.ts +27 -1
- package/mobile/dist/components/Calculator/constants.d.ts +1 -1
- package/mobile/dist/components/Calculator/useBusinessDepositCalculatorParams.d.ts +25 -0
- package/mobile/dist/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +8 -6
- package/mobile/dist/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
- package/mobile/dist/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/mobile/dist/components/Calculator/useBusinessDepositRates.js +15 -0
- package/mobile/dist/components/Calculator/useBusinessDepositRates.js.map +1 -0
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/CalculatorContent.d.ts +27 -1
- package/mobile/lib/components/Calculator/constants.d.ts +1 -1
- package/mobile/lib/components/Calculator/useBusinessDepositCalculatorParams.d.ts +25 -0
- package/mobile/lib/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +6 -4
- package/mobile/lib/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
- package/mobile/lib/components/Calculator/useBusinessDepositRates.d.ts +4 -0
- package/mobile/lib/components/Calculator/useBusinessDepositRates.js +12 -0
- package/mobile/lib/components/Calculator/useBusinessDepositRates.js.map +1 -0
- package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +7 -10
- package/mobile/src/components/Calculator/CalculatorContent.ts +31 -1
- package/mobile/src/components/Calculator/constants.ts +1 -1
- package/mobile/src/components/Calculator/{getBusinessDepositCalculatorParams.ts → useBusinessDepositCalculatorParams.ts} +8 -9
- package/mobile/src/components/Calculator/useBusinessDepositRates.ts +22 -0
- package/mobile/src/components/TabsLayout/TabsLayout.ui.json +1 -1
- package/package.json +1 -1
- package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +7 -10
- package/src/components/Calculator/Calculator.fixture.tsx +2 -2
- package/src/components/Calculator/CalculatorContent.ts +31 -1
- package/src/components/Calculator/constants.ts +1 -1
- package/src/components/Calculator/{getBusinessDepositCalculatorParams.ts → useBusinessDepositCalculatorParams.ts} +8 -9
- package/src/components/Calculator/useBusinessDepositRates.ts +22 -0
- package/src/components/TabsLayout/TabsLayout.ui.json +1 -1
- package/dist/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
- package/lib/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
- package/mobile/dist/components/Calculator/getBusinessDepositCalculatorParams.d.ts +0 -27
- package/mobile/dist/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
- package/mobile/lib/components/Calculator/getBusinessDepositCalculatorParams.d.ts +0 -27
- package/mobile/lib/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { type JSONRefObject } from '../../data/JSONRefObject';
|
|
2
1
|
import { type BusinessDepositCalculatorProps } from './CalculatorContent';
|
|
3
|
-
import { type BusinessDepositCalculatorData } from './getBusinessDepositCalculatorParams';
|
|
4
2
|
export interface BusinessDepositCalculatorProp extends BusinessDepositCalculatorProps {
|
|
5
3
|
className?: string;
|
|
6
|
-
calcSource?: BusinessDepositCalculatorData & JSONRefObject;
|
|
7
4
|
}
|
|
8
5
|
export declare const BusinessDepositCalculatorForm: import("@redneckz/uni-jsx").UNIComponent<BusinessDepositCalculatorProp, any, any>;
|
|
@@ -4,6 +4,30 @@ import { type Footnote } from '../../model/Footnote';
|
|
|
4
4
|
import { type HeadlineCommonProps, type TitleProps } from '../../model/HeadlineType';
|
|
5
5
|
import { type IconProps } from '../../model/Picture';
|
|
6
6
|
import { type ButtonsSectionContent } from '../../ui-kit/LinkButton/ButtonsSectionContent';
|
|
7
|
+
/**
|
|
8
|
+
* @title ЮЛ
|
|
9
|
+
* @default {"rateType": "UL"}
|
|
10
|
+
*/
|
|
11
|
+
export declare type ULRateDef = {
|
|
12
|
+
rateType: 'UL';
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @title ИП
|
|
16
|
+
* @default {"rateType": "IP"}
|
|
17
|
+
*/
|
|
18
|
+
export declare type IPRateDef = {
|
|
19
|
+
rateType: 'IP';
|
|
20
|
+
};
|
|
21
|
+
/** @title Не выбрано * */
|
|
22
|
+
export declare type EmptyRateParams = {
|
|
23
|
+
/** @default "" */
|
|
24
|
+
rateType: '';
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @title Назначение ставки
|
|
28
|
+
* @default {"rateType": ""}
|
|
29
|
+
*/
|
|
30
|
+
export declare type RateParamsDef = EmptyRateParams | ULRateDef | IPRateDef;
|
|
7
31
|
export declare type CommonCalculatorProps = Footnote & ButtonsSectionContent & {
|
|
8
32
|
/** @title Данные калькулятора */
|
|
9
33
|
calcSource?: JSONRefObject;
|
|
@@ -80,7 +104,9 @@ export interface BusinessDepositDefaultParams extends CommonDefaultParams {
|
|
|
80
104
|
/** @title Выплата процентов */
|
|
81
105
|
isMonthlyInterestPayment?: boolean;
|
|
82
106
|
}
|
|
83
|
-
export interface BusinessDepositCalculatorProps extends
|
|
107
|
+
export interface BusinessDepositCalculatorProps extends Footnote, ButtonsSectionContent {
|
|
108
|
+
/** @title Ставка для */
|
|
109
|
+
rateParams?: RateParamsDef;
|
|
84
110
|
/** @title Сноска снизу блока */
|
|
85
111
|
bottomFootnote?: string;
|
|
86
112
|
/** @title Показывать название депозита */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type BonusCalculatorData } from './getBonusCalculatorParams';
|
|
2
|
-
import { type BusinessDepositCalculatorSourceBookParams } from './getBusinessDepositCalculatorParams';
|
|
3
2
|
import { type CreditCalculatorSourceBookRateParams } from './getCreditCalculatorParams';
|
|
4
3
|
import { type DepositCalculatorSourceBookParams } from './getDepositCalculatorParams';
|
|
5
4
|
import { type RefinancingCalculatorSourceBookRateParams } from './getRefinancingCalculatorParams';
|
|
5
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
6
6
|
export declare const DEFAULT_MIN_SUM = 10000;
|
|
7
7
|
export declare const DEFAULT_MAX_SUM = 5000000;
|
|
8
8
|
export declare const CREDIT_DEFAULT_SUM = 200000;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
1
2
|
export interface BusinessCommonDepositParams {
|
|
2
3
|
isMonthlyInterestPayment: boolean;
|
|
3
4
|
isReplenished: boolean;
|
|
@@ -21,7 +22,4 @@ export interface BusinessDepositCalculatorParams extends BusinessDepositCalculat
|
|
|
21
22
|
isDisabledOperatingDeposit?: boolean;
|
|
22
23
|
isUnavailableByTerm?: boolean;
|
|
23
24
|
}
|
|
24
|
-
export declare
|
|
25
|
-
rateRows?: BusinessDepositCalculatorSourceBookParams[];
|
|
26
|
-
};
|
|
27
|
-
export declare const getBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, calcSource?: BusinessDepositCalculatorData) => BusinessDepositCalculatorParams;
|
|
25
|
+
export declare const useBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, rateParams?: RateParamsDef) => BusinessDepositCalculatorParams;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
2
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
3
|
+
export declare type BusinessDepositCalculatorData = BusinessDepositCalculatorSourceBookParams[];
|
|
4
|
+
export declare function useBusinessDepositRates(rateParams?: RateParamsDef): BusinessDepositCalculatorData;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { type JSONRefObject } from '../../data/JSONRefObject';
|
|
2
1
|
import { type BusinessDepositCalculatorProps } from './CalculatorContent';
|
|
3
|
-
import { type BusinessDepositCalculatorData } from './getBusinessDepositCalculatorParams';
|
|
4
2
|
export interface BusinessDepositCalculatorProp extends BusinessDepositCalculatorProps {
|
|
5
3
|
className?: string;
|
|
6
|
-
calcSource?: BusinessDepositCalculatorData & JSONRefObject;
|
|
7
4
|
}
|
|
8
5
|
export declare const BusinessDepositCalculatorForm: import("@redneckz/uni-jsx").UNIComponent<BusinessDepositCalculatorProp, any, any>;
|
|
@@ -9,14 +9,14 @@ const Text_1 = require("../../ui-kit/Text/Text");
|
|
|
9
9
|
const CalculatorFormLayout_1 = require("./CalculatorFormLayout");
|
|
10
10
|
const CalculatorValueBlock_1 = require("./CalculatorValueBlock");
|
|
11
11
|
const constants_1 = require("./constants");
|
|
12
|
-
const getBusinessDepositCalculatorParams_1 = require("./getBusinessDepositCalculatorParams");
|
|
13
12
|
const getDefaultValues_1 = require("./getDefaultValues");
|
|
14
13
|
const renderDaysInput_1 = require("./renderDaysInput");
|
|
15
14
|
const renderFootnote_1 = require("./renderFootnote");
|
|
16
15
|
const renderInterestPayment_1 = require("./renderInterestPayment");
|
|
17
16
|
const renderRate_1 = require("./renderRate");
|
|
18
17
|
const renderWantedSumInput_1 = require("./renderWantedSumInput");
|
|
19
|
-
|
|
18
|
+
const useBusinessDepositCalculatorParams_1 = require("./useBusinessDepositCalculatorParams");
|
|
19
|
+
exports.BusinessDepositCalculatorForm = (0, uni_jsx_1.JSX)(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, rateParams, }) => {
|
|
20
20
|
const [userInputParams, { field }] = (0, useForm_1.useForm)({
|
|
21
21
|
moneyValue: (0, getDefaultValues_1.getMoneyDefaultValue)(defaultParams, constants_1.BUSINESS_DEFAULT_SUM),
|
|
22
22
|
daysValue: (0, getDefaultValues_1.getMonthsDefaultValue)(defaultParams, constants_1.BUSINESS_DEFAULT_DAYS),
|
|
@@ -24,7 +24,7 @@ exports.BusinessDepositCalculatorForm = (0, uni_jsx_1.JSX)(({ className = '', bu
|
|
|
24
24
|
isPartialWithdrawal: Boolean(defaultParams?.isPartialWithdrawal),
|
|
25
25
|
isMonthlyInterestPayment: Boolean(defaultParams?.isMonthlyInterestPayment),
|
|
26
26
|
});
|
|
27
|
-
const calculatorParams = (0,
|
|
27
|
+
const calculatorParams = (0, useBusinessDepositCalculatorParams_1.useBusinessDepositCalculatorParams)(userInputParams, rateParams);
|
|
28
28
|
const { income, finalSum, rate, isUnavailableByTerm, depositeName } = calculatorParams;
|
|
29
29
|
return ((0, jsx_runtime_1.jsx)(CalculatorFormLayout_1.CalculatorFormLayout, { className: className, inputChildren: (0, jsx_runtime_1.jsxs)("div", { children: [(0, renderWantedSumInput_1.renderWantedSumInput)({
|
|
30
30
|
title: 'Сумма, ₽',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BusinessDepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/BusinessDepositCalculatorForm.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;
|
|
1
|
+
{"version":3,"file":"BusinessDepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/BusinessDepositCalculatorForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,30 @@ import { type Footnote } from '../../model/Footnote';
|
|
|
4
4
|
import { type HeadlineCommonProps, type TitleProps } from '../../model/HeadlineType';
|
|
5
5
|
import { type IconProps } from '../../model/Picture';
|
|
6
6
|
import { type ButtonsSectionContent } from '../../ui-kit/LinkButton/ButtonsSectionContent';
|
|
7
|
+
/**
|
|
8
|
+
* @title ЮЛ
|
|
9
|
+
* @default {"rateType": "UL"}
|
|
10
|
+
*/
|
|
11
|
+
export declare type ULRateDef = {
|
|
12
|
+
rateType: 'UL';
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @title ИП
|
|
16
|
+
* @default {"rateType": "IP"}
|
|
17
|
+
*/
|
|
18
|
+
export declare type IPRateDef = {
|
|
19
|
+
rateType: 'IP';
|
|
20
|
+
};
|
|
21
|
+
/** @title Не выбрано * */
|
|
22
|
+
export declare type EmptyRateParams = {
|
|
23
|
+
/** @default "" */
|
|
24
|
+
rateType: '';
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @title Назначение ставки
|
|
28
|
+
* @default {"rateType": ""}
|
|
29
|
+
*/
|
|
30
|
+
export declare type RateParamsDef = EmptyRateParams | ULRateDef | IPRateDef;
|
|
7
31
|
export declare type CommonCalculatorProps = Footnote & ButtonsSectionContent & {
|
|
8
32
|
/** @title Данные калькулятора */
|
|
9
33
|
calcSource?: JSONRefObject;
|
|
@@ -80,7 +104,9 @@ export interface BusinessDepositDefaultParams extends CommonDefaultParams {
|
|
|
80
104
|
/** @title Выплата процентов */
|
|
81
105
|
isMonthlyInterestPayment?: boolean;
|
|
82
106
|
}
|
|
83
|
-
export interface BusinessDepositCalculatorProps extends
|
|
107
|
+
export interface BusinessDepositCalculatorProps extends Footnote, ButtonsSectionContent {
|
|
108
|
+
/** @title Ставка для */
|
|
109
|
+
rateParams?: RateParamsDef;
|
|
84
110
|
/** @title Сноска снизу блока */
|
|
85
111
|
bottomFootnote?: string;
|
|
86
112
|
/** @title Показывать название депозита */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type BonusCalculatorData } from './getBonusCalculatorParams';
|
|
2
|
-
import { type BusinessDepositCalculatorSourceBookParams } from './getBusinessDepositCalculatorParams';
|
|
3
2
|
import { type CreditCalculatorSourceBookRateParams } from './getCreditCalculatorParams';
|
|
4
3
|
import { type DepositCalculatorSourceBookParams } from './getDepositCalculatorParams';
|
|
5
4
|
import { type RefinancingCalculatorSourceBookRateParams } from './getRefinancingCalculatorParams';
|
|
5
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
6
6
|
export declare const DEFAULT_MIN_SUM = 10000;
|
|
7
7
|
export declare const DEFAULT_MAX_SUM = 5000000;
|
|
8
8
|
export declare const CREDIT_DEFAULT_SUM = 200000;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
1
2
|
export interface BusinessCommonDepositParams {
|
|
2
3
|
isMonthlyInterestPayment: boolean;
|
|
3
4
|
isReplenished: boolean;
|
|
@@ -21,7 +22,4 @@ export interface BusinessDepositCalculatorParams extends BusinessDepositCalculat
|
|
|
21
22
|
isDisabledOperatingDeposit?: boolean;
|
|
22
23
|
isUnavailableByTerm?: boolean;
|
|
23
24
|
}
|
|
24
|
-
export declare
|
|
25
|
-
rateRows?: BusinessDepositCalculatorSourceBookParams[];
|
|
26
|
-
};
|
|
27
|
-
export declare const getBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, calcSource?: BusinessDepositCalculatorData) => BusinessDepositCalculatorParams;
|
|
25
|
+
export declare const useBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, rateParams?: RateParamsDef) => BusinessDepositCalculatorParams;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.
|
|
2
|
+
exports.useBusinessDepositCalculatorParams = void 0;
|
|
3
3
|
const constants_1 = require("./constants");
|
|
4
4
|
const rangeHelpers_1 = require("./rangeHelpers");
|
|
5
|
-
const
|
|
5
|
+
const useBusinessDepositRates_1 = require("./useBusinessDepositRates");
|
|
6
|
+
const useBusinessDepositCalculatorParams = (userInputParams, rateParams) => {
|
|
6
7
|
const { daysValue, moneyValue, isPartialWithdrawal, isReplenished, isMonthlyInterestPayment } = userInputParams;
|
|
7
8
|
const isOperatingDeposit = isReplenished || isPartialWithdrawal;
|
|
8
9
|
const isDisabledOperatingDeposit = daysValue < constants_1.BUSINESS_OPERATING_MIN_DAYS || daysValue > constants_1.BUSINESS_OPERATING_MAX_DAYS;
|
|
10
|
+
const rateRows = (0, useBusinessDepositRates_1.useBusinessDepositRates)(rateParams);
|
|
9
11
|
if (daysValue <= constants_1.BUSINESS_RATE_MIN_DAYS) {
|
|
10
12
|
return {
|
|
11
13
|
...constants_1.DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS,
|
|
@@ -14,7 +16,7 @@ const getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
|
|
|
14
16
|
isUnavailableByTerm: true,
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
|
-
const businessDepositCalculatorSourceBookParams =
|
|
19
|
+
const businessDepositCalculatorSourceBookParams = rateRows?.find((_) => {
|
|
18
20
|
return (isMonthlyInterestPayment === _.isMonthlyInterestPayment &&
|
|
19
21
|
checkIsOperatingDeposit(isOperatingDeposit, _) &&
|
|
20
22
|
(0, rangeHelpers_1.checkRangeByKeys)(moneyValue, ['minSum', 'maxSum'], _) &&
|
|
@@ -23,7 +25,7 @@ const getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
|
|
|
23
25
|
const { rate } = businessDepositCalculatorSourceBookParams;
|
|
24
26
|
const income = getDepositIncome(rate, userInputParams);
|
|
25
27
|
const finalSum = moneyValue + income;
|
|
26
|
-
const sourceBookRows =
|
|
28
|
+
const sourceBookRows = rateRows || [constants_1.DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
|
|
27
29
|
return {
|
|
28
30
|
...businessDepositCalculatorSourceBookParams,
|
|
29
31
|
...(0, rangeHelpers_1.getRangeByKeys)(['minSum', 'maxSum'], sourceBookRows),
|
|
@@ -34,7 +36,7 @@ const getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
|
|
|
34
36
|
finalSum,
|
|
35
37
|
};
|
|
36
38
|
};
|
|
37
|
-
exports.
|
|
39
|
+
exports.useBusinessDepositCalculatorParams = useBusinessDepositCalculatorParams;
|
|
38
40
|
const checkIsOperatingDeposit = (isOperatingDeposit, sourceBookRow) => isOperatingDeposit
|
|
39
41
|
? sourceBookRow.isReplenished && sourceBookRow.isPartialWithdrawal
|
|
40
42
|
: !sourceBookRow.isReplenished && !sourceBookRow.isPartialWithdrawal;
|
|
@@ -50,4 +52,4 @@ const getDepositIncome = (rate, userInputParams) => {
|
|
|
50
52
|
return Math.round((moneyValue * rate * daysValue) / 365 / 100);
|
|
51
53
|
}
|
|
52
54
|
};
|
|
53
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=useBusinessDepositCalculatorParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBusinessDepositCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/Calculator/useBusinessDepositCalculatorParams.ts"],"names":[],"mappings":";;AACA,2CAKqB;AACrB,iDAAkE;AAClE,uEAAoE;AA8B7D,MAAM,kCAAkC,GAAG,CAChD,eAAyD,EACzD,UAA0B,EACO,EAAE;IACnC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,wBAAwB,EAAE,GAC3F,eAAe,CAAC;IAClB,MAAM,kBAAkB,GAAG,aAAa,IAAI,mBAAmB,CAAC;IAChE,MAAM,0BAA0B,GAC9B,SAAS,GAAG,uCAA2B,IAAI,SAAS,GAAG,uCAA2B,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAA,iDAAuB,EAAC,UAAU,CAAC,CAAC;IAErD,IAAI,SAAS,IAAI,kCAAsB,EAAE;QACvC,OAAO;YACL,GAAG,sDAA0C;YAC7C,GAAG,eAAe;YAClB,0BAA0B;YAC1B,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;IACD,MAAM,yCAAyC,GAC7C,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,OAAO,CACL,wBAAwB,KAAK,CAAC,CAAC,wBAAwB;YACvD,uBAAuB,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,IAAA,+BAAgB,EAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrD,IAAA,+BAAgB,EAAC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC,CAAC,IAAI,sDAA0C,CAAC;IAEnD,MAAM,EAAE,IAAI,EAAE,GAAG,yCAAyC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,sDAA0C,CAAC,CAAC;IAEhF,OAAO;QACL,GAAG,yCAAyC;QAC5C,GAAG,IAAA,6BAAc,EAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;QACvD,GAAG,IAAA,6BAAc,EAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC;QACzD,GAAG,eAAe;QAClB,0BAA0B;QAC1B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,kCAAkC,sCA4C7C;AAEF,MAAM,uBAAuB,GAAG,CAC9B,kBAA2B,EAC3B,aAAwD,EACxD,EAAE,CACF,kBAAkB;IAChB,CAAC,CAAC,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,mBAAmB;IAClE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CACvB,IAAY,EACZ,eAAyD,EACzD,EAAE;IACF,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IAE5E;;MAEE;IACF,IAAI,wBAAwB,EAAE;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;KAC7F;SAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;KAChE;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
2
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
3
|
+
export declare type BusinessDepositCalculatorData = BusinessDepositCalculatorSourceBookParams[];
|
|
4
|
+
export declare function useBusinessDepositRates(rateParams?: RateParamsDef): BusinessDepositCalculatorData;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.useBusinessDepositRates = void 0;
|
|
3
|
+
const useAsyncData_1 = require("@redneckz/uni-jsx/lib/hooks/useAsyncData");
|
|
4
|
+
const fetchJSON_1 = require("../../utils/fetchJSON");
|
|
5
|
+
const DEPOSIT_RATES_SERVICE_MAP = {
|
|
6
|
+
UL: 'businessdepositrates',
|
|
7
|
+
IP: 'selfemployeddepositrates',
|
|
8
|
+
};
|
|
9
|
+
function useBusinessDepositRates(rateParams) {
|
|
10
|
+
const serviceName = rateParams?.rateType ? DEPOSIT_RATES_SERVICE_MAP[rateParams?.rateType] : '';
|
|
11
|
+
const { data } = (0, useAsyncData_1.useAsyncData)(serviceName ? `/api/v1/depositrates/${serviceName}` : null, fetchJSON_1.fetchJSONUnsafe);
|
|
12
|
+
return Array.isArray(data) ? data : [];
|
|
13
|
+
}
|
|
14
|
+
exports.useBusinessDepositRates = useBusinessDepositRates;
|
|
15
|
+
//# sourceMappingURL=useBusinessDepositRates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBusinessDepositRates.js","sourceRoot":"","sources":["../../../src/components/Calculator/useBusinessDepositRates.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,qDAAkF;AAIlF,MAAM,yBAAyB,GAAG;IAChC,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,0BAA0B;CAC/B,CAAC;AAIF,SAAgB,uBAAuB,CAAC,UAA0B;IAChE,MAAM,WAAW,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhG,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAY,EAC3B,WAAW,CAAC,CAAC,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAC1D,2BAAqE,CACtE,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AATD,0DASC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { type JSONRefObject } from '../../data/JSONRefObject';
|
|
2
1
|
import { type BusinessDepositCalculatorProps } from './CalculatorContent';
|
|
3
|
-
import { type BusinessDepositCalculatorData } from './getBusinessDepositCalculatorParams';
|
|
4
2
|
export interface BusinessDepositCalculatorProp extends BusinessDepositCalculatorProps {
|
|
5
3
|
className?: string;
|
|
6
|
-
calcSource?: BusinessDepositCalculatorData & JSONRefObject;
|
|
7
4
|
}
|
|
8
5
|
export declare const BusinessDepositCalculatorForm: import("@redneckz/uni-jsx").UNIComponent<BusinessDepositCalculatorProp, any, any>;
|
|
@@ -7,14 +7,14 @@ import { Text } from '../../ui-kit/Text/Text.js';
|
|
|
7
7
|
import { CalculatorFormLayout } from './CalculatorFormLayout.js';
|
|
8
8
|
import { CalculatorValueBlock } from './CalculatorValueBlock.js';
|
|
9
9
|
import { BUSINESS_DEFAULT_DAYS, BUSINESS_DEFAULT_SUM } from './constants.js';
|
|
10
|
-
import { getBusinessDepositCalculatorParams, } from './getBusinessDepositCalculatorParams.js';
|
|
11
10
|
import { getMoneyDefaultValue, getMonthsDefaultValue } from './getDefaultValues.js';
|
|
12
11
|
import { renderDaysInput } from './renderDaysInput.js';
|
|
13
12
|
import { renderFootnote } from './renderFootnote.js';
|
|
14
13
|
import { renderInterestPayment } from './renderInterestPayment.js';
|
|
15
14
|
import { renderRate } from './renderRate.js';
|
|
16
15
|
import { renderWantedSumInput } from './renderWantedSumInput.js';
|
|
17
|
-
|
|
16
|
+
import { useBusinessDepositCalculatorParams, } from './useBusinessDepositCalculatorParams.js';
|
|
17
|
+
export const BusinessDepositCalculatorForm = JSX(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, rateParams, }) => {
|
|
18
18
|
const [userInputParams, { field }] = useForm({
|
|
19
19
|
moneyValue: getMoneyDefaultValue(defaultParams, BUSINESS_DEFAULT_SUM),
|
|
20
20
|
daysValue: getMonthsDefaultValue(defaultParams, BUSINESS_DEFAULT_DAYS),
|
|
@@ -22,7 +22,7 @@ export const BusinessDepositCalculatorForm = JSX(({ className = '', buttons, foo
|
|
|
22
22
|
isPartialWithdrawal: Boolean(defaultParams?.isPartialWithdrawal),
|
|
23
23
|
isMonthlyInterestPayment: Boolean(defaultParams?.isMonthlyInterestPayment),
|
|
24
24
|
});
|
|
25
|
-
const calculatorParams =
|
|
25
|
+
const calculatorParams = useBusinessDepositCalculatorParams(userInputParams, rateParams);
|
|
26
26
|
const { income, finalSum, rate, isUnavailableByTerm, depositeName } = calculatorParams;
|
|
27
27
|
return (_jsx(CalculatorFormLayout, { className: className, inputChildren: _jsxs("div", { children: [renderWantedSumInput({
|
|
28
28
|
title: 'Сумма, ₽',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BusinessDepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/BusinessDepositCalculatorForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"BusinessDepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/BusinessDepositCalculatorForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,30 @@ import { type Footnote } from '../../model/Footnote';
|
|
|
4
4
|
import { type HeadlineCommonProps, type TitleProps } from '../../model/HeadlineType';
|
|
5
5
|
import { type IconProps } from '../../model/Picture';
|
|
6
6
|
import { type ButtonsSectionContent } from '../../ui-kit/LinkButton/ButtonsSectionContent';
|
|
7
|
+
/**
|
|
8
|
+
* @title ЮЛ
|
|
9
|
+
* @default {"rateType": "UL"}
|
|
10
|
+
*/
|
|
11
|
+
export declare type ULRateDef = {
|
|
12
|
+
rateType: 'UL';
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @title ИП
|
|
16
|
+
* @default {"rateType": "IP"}
|
|
17
|
+
*/
|
|
18
|
+
export declare type IPRateDef = {
|
|
19
|
+
rateType: 'IP';
|
|
20
|
+
};
|
|
21
|
+
/** @title Не выбрано * */
|
|
22
|
+
export declare type EmptyRateParams = {
|
|
23
|
+
/** @default "" */
|
|
24
|
+
rateType: '';
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @title Назначение ставки
|
|
28
|
+
* @default {"rateType": ""}
|
|
29
|
+
*/
|
|
30
|
+
export declare type RateParamsDef = EmptyRateParams | ULRateDef | IPRateDef;
|
|
7
31
|
export declare type CommonCalculatorProps = Footnote & ButtonsSectionContent & {
|
|
8
32
|
/** @title Данные калькулятора */
|
|
9
33
|
calcSource?: JSONRefObject;
|
|
@@ -80,7 +104,9 @@ export interface BusinessDepositDefaultParams extends CommonDefaultParams {
|
|
|
80
104
|
/** @title Выплата процентов */
|
|
81
105
|
isMonthlyInterestPayment?: boolean;
|
|
82
106
|
}
|
|
83
|
-
export interface BusinessDepositCalculatorProps extends
|
|
107
|
+
export interface BusinessDepositCalculatorProps extends Footnote, ButtonsSectionContent {
|
|
108
|
+
/** @title Ставка для */
|
|
109
|
+
rateParams?: RateParamsDef;
|
|
84
110
|
/** @title Сноска снизу блока */
|
|
85
111
|
bottomFootnote?: string;
|
|
86
112
|
/** @title Показывать название депозита */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type BonusCalculatorData } from './getBonusCalculatorParams';
|
|
2
|
-
import { type BusinessDepositCalculatorSourceBookParams } from './getBusinessDepositCalculatorParams';
|
|
3
2
|
import { type CreditCalculatorSourceBookRateParams } from './getCreditCalculatorParams';
|
|
4
3
|
import { type DepositCalculatorSourceBookParams } from './getDepositCalculatorParams';
|
|
5
4
|
import { type RefinancingCalculatorSourceBookRateParams } from './getRefinancingCalculatorParams';
|
|
5
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
6
6
|
export declare const DEFAULT_MIN_SUM = 10000;
|
|
7
7
|
export declare const DEFAULT_MAX_SUM = 5000000;
|
|
8
8
|
export declare const CREDIT_DEFAULT_SUM = 200000;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
1
2
|
export interface BusinessCommonDepositParams {
|
|
2
3
|
isMonthlyInterestPayment: boolean;
|
|
3
4
|
isReplenished: boolean;
|
|
@@ -21,7 +22,4 @@ export interface BusinessDepositCalculatorParams extends BusinessDepositCalculat
|
|
|
21
22
|
isDisabledOperatingDeposit?: boolean;
|
|
22
23
|
isUnavailableByTerm?: boolean;
|
|
23
24
|
}
|
|
24
|
-
export declare
|
|
25
|
-
rateRows?: BusinessDepositCalculatorSourceBookParams[];
|
|
26
|
-
};
|
|
27
|
-
export declare const getBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, calcSource?: BusinessDepositCalculatorData) => BusinessDepositCalculatorParams;
|
|
25
|
+
export declare const useBusinessDepositCalculatorParams: (userInputParams: BusinessDepositCalculatorUserInputParams, rateParams?: RateParamsDef) => BusinessDepositCalculatorParams;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { BUSINESS_OPERATING_MAX_DAYS, BUSINESS_OPERATING_MIN_DAYS, BUSINESS_RATE_MIN_DAYS, DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS, } from './constants.js';
|
|
2
2
|
import { checkRangeByKeys, getRangeByKeys } from './rangeHelpers.js';
|
|
3
|
-
|
|
3
|
+
import { useBusinessDepositRates } from './useBusinessDepositRates.js';
|
|
4
|
+
export const useBusinessDepositCalculatorParams = (userInputParams, rateParams) => {
|
|
4
5
|
const { daysValue, moneyValue, isPartialWithdrawal, isReplenished, isMonthlyInterestPayment } = userInputParams;
|
|
5
6
|
const isOperatingDeposit = isReplenished || isPartialWithdrawal;
|
|
6
7
|
const isDisabledOperatingDeposit = daysValue < BUSINESS_OPERATING_MIN_DAYS || daysValue > BUSINESS_OPERATING_MAX_DAYS;
|
|
8
|
+
const rateRows = useBusinessDepositRates(rateParams);
|
|
7
9
|
if (daysValue <= BUSINESS_RATE_MIN_DAYS) {
|
|
8
10
|
return {
|
|
9
11
|
...DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS,
|
|
@@ -12,7 +14,7 @@ export const getBusinessDepositCalculatorParams = (userInputParams, calcSource)
|
|
|
12
14
|
isUnavailableByTerm: true,
|
|
13
15
|
};
|
|
14
16
|
}
|
|
15
|
-
const businessDepositCalculatorSourceBookParams =
|
|
17
|
+
const businessDepositCalculatorSourceBookParams = rateRows?.find((_) => {
|
|
16
18
|
return (isMonthlyInterestPayment === _.isMonthlyInterestPayment &&
|
|
17
19
|
checkIsOperatingDeposit(isOperatingDeposit, _) &&
|
|
18
20
|
checkRangeByKeys(moneyValue, ['minSum', 'maxSum'], _) &&
|
|
@@ -21,7 +23,7 @@ export const getBusinessDepositCalculatorParams = (userInputParams, calcSource)
|
|
|
21
23
|
const { rate } = businessDepositCalculatorSourceBookParams;
|
|
22
24
|
const income = getDepositIncome(rate, userInputParams);
|
|
23
25
|
const finalSum = moneyValue + income;
|
|
24
|
-
const sourceBookRows =
|
|
26
|
+
const sourceBookRows = rateRows || [DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
|
|
25
27
|
return {
|
|
26
28
|
...businessDepositCalculatorSourceBookParams,
|
|
27
29
|
...getRangeByKeys(['minSum', 'maxSum'], sourceBookRows),
|
|
@@ -47,4 +49,4 @@ const getDepositIncome = (rate, userInputParams) => {
|
|
|
47
49
|
return Math.round((moneyValue * rate * daysValue) / 365 / 100);
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=useBusinessDepositCalculatorParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBusinessDepositCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/Calculator/useBusinessDepositCalculatorParams.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,0CAA0C,GAC3C,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA8BpE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,eAAyD,EACzD,UAA0B,EACO,EAAE;IACnC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,wBAAwB,EAAE,GAC3F,eAAe,CAAC;IAClB,MAAM,kBAAkB,GAAG,aAAa,IAAI,mBAAmB,CAAC;IAChE,MAAM,0BAA0B,GAC9B,SAAS,GAAG,2BAA2B,IAAI,SAAS,GAAG,2BAA2B,CAAC;IAErF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,SAAS,IAAI,sBAAsB,EAAE;QACvC,OAAO;YACL,GAAG,0CAA0C;YAC7C,GAAG,eAAe;YAClB,0BAA0B;YAC1B,mBAAmB,EAAE,IAAI;SAC1B,CAAC;KACH;IACD,MAAM,yCAAyC,GAC7C,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,OAAO,CACL,wBAAwB,KAAK,CAAC,CAAC,wBAAwB;YACvD,uBAAuB,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,gBAAgB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACrD,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC,CAAC,IAAI,0CAA0C,CAAC;IAEnD,MAAM,EAAE,IAAI,EAAE,GAAG,yCAAyC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAEhF,OAAO;QACL,GAAG,yCAAyC;QAC5C,GAAG,cAAc,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;QACvD,GAAG,cAAc,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC;QACzD,GAAG,eAAe;QAClB,0BAA0B;QAC1B,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC9B,kBAA2B,EAC3B,aAAwD,EACxD,EAAE,CACF,kBAAkB;IAChB,CAAC,CAAC,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,mBAAmB;IAClE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CACvB,IAAY,EACZ,eAAyD,EACzD,EAAE;IACF,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IAE5E;;MAEE;IACF,IAAI,wBAAwB,EAAE;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;KAC7F;SAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;KAChE;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type RateParamsDef } from './CalculatorContent';
|
|
2
|
+
import { type BusinessDepositCalculatorSourceBookParams } from './useBusinessDepositCalculatorParams';
|
|
3
|
+
export declare type BusinessDepositCalculatorData = BusinessDepositCalculatorSourceBookParams[];
|
|
4
|
+
export declare function useBusinessDepositRates(rateParams?: RateParamsDef): BusinessDepositCalculatorData;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
|
|
2
|
+
import { fetchJSONUnsafe } from '../../utils/fetchJSON.js';
|
|
3
|
+
const DEPOSIT_RATES_SERVICE_MAP = {
|
|
4
|
+
UL: 'businessdepositrates',
|
|
5
|
+
IP: 'selfemployeddepositrates',
|
|
6
|
+
};
|
|
7
|
+
export function useBusinessDepositRates(rateParams) {
|
|
8
|
+
const serviceName = rateParams?.rateType ? DEPOSIT_RATES_SERVICE_MAP[rateParams?.rateType] : '';
|
|
9
|
+
const { data } = useAsyncData(serviceName ? `/api/v1/depositrates/${serviceName}` : null, fetchJSONUnsafe);
|
|
10
|
+
return Array.isArray(data) ? data : [];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useBusinessDepositRates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBusinessDepositRates.js","sourceRoot":"","sources":["../../../src/components/Calculator/useBusinessDepositRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,eAAe,EAA4B,MAAM,uBAAuB,CAAC;AAIlF,MAAM,yBAAyB,GAAG;IAChC,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,0BAA0B;CAC/B,CAAC;AAIF,MAAM,UAAU,uBAAuB,CAAC,UAA0B;IAChE,MAAM,WAAW,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhG,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAC3B,WAAW,CAAC,CAAC,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAC1D,eAAqE,CACtE,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -2299,6 +2299,33 @@
|
|
|
2299
2299
|
|
|
2300
2300
|
const CalculatorFormLayout = JSX(({ className, inputChildren, rateChildren, resultChildren }) => (jsxs("section", { className: style('flex flex-col justify-between @5xl:flex-row gap-m', className), children: [jsx("div", { className: "flex flex-col gap-y-m sm:max-w-md gap-2xl", children: inputChildren }), jsx("div", { className: "border-b border-main-divider md:hidden" }), rateChildren, jsx("div", { className: "flex flex-col gap-2xl sm:w-96 max-w-full", children: resultChildren })] })));
|
|
2301
2301
|
|
|
2302
|
+
const getMoneyDefaultValue = (defaultParams, defaultMoney = 0) => defaultParams?.sum ? defaultParams.sum : defaultMoney;
|
|
2303
|
+
const getMonthsDefaultValue = (defaultParams, defaultMonth = 0) => defaultParams?.period &&
|
|
2304
|
+
defaultParams.period >= DEFAULT_MIN_MONTHS &&
|
|
2305
|
+
defaultParams.period <= DEFAULT_MAX_MONTHS
|
|
2306
|
+
? defaultParams.period
|
|
2307
|
+
: defaultMonth;
|
|
2308
|
+
|
|
2309
|
+
const STEP_DAYS = 1;
|
|
2310
|
+
const renderDaysInput = (props) => (jsx(InputRange, { items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
|
|
2311
|
+
const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
|
|
2312
|
+
|
|
2313
|
+
const orientationStyleMap = {
|
|
2314
|
+
horizontal: 'gap-5xl',
|
|
2315
|
+
vertical: 'flex-col gap-s',
|
|
2316
|
+
};
|
|
2317
|
+
const RadioButtonGroup = JSX(({ items, checkedItem, className, onChange: onChangeCheckedItem, orientation = 'horizontal', }) => (jsx("div", { className: style(`flex ${orientationStyleMap[orientation]}`, className), role: "radiogroup", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
|
|
2318
|
+
|
|
2319
|
+
const renderBinaryRadioButtonGroup = ({ items, title, mobileTitle = title, orientation = 'horizontal', value, radioGroupClassName, onChange, }) => (jsxs("div", { className: "space-y-s", children: [title ? (jsx("div", { className: "hidden @5xl:block", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, mobileTitle ? (jsx("div", { className: "@5xl:hidden", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: mobileTitle }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, className: style('flex-col sm:flex-row', radioGroupClassName), onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
|
|
2320
|
+
|
|
2321
|
+
const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
|
|
2322
|
+
...props,
|
|
2323
|
+
items: [
|
|
2324
|
+
{ id: 'everyMonth', text: 'Ежемесячно' },
|
|
2325
|
+
{ id: 'atEndTerm', text: 'В конце срока' },
|
|
2326
|
+
],
|
|
2327
|
+
});
|
|
2328
|
+
|
|
2302
2329
|
const getLimitRangeByKeys = ([minKey, maxKey], limitParams, rateRows = []) => limitParams && limitParams[minKey] && limitParams[maxKey]
|
|
2303
2330
|
? {
|
|
2304
2331
|
[minKey]: limitParams[minKey],
|
|
@@ -2315,10 +2342,21 @@
|
|
|
2315
2342
|
});
|
|
2316
2343
|
const checkRangeByKeys = (value, [minKey, maxKey], sourceBookRow) => value >= sourceBookRow[minKey] && value <= sourceBookRow[maxKey];
|
|
2317
2344
|
|
|
2318
|
-
const
|
|
2345
|
+
const DEPOSIT_RATES_SERVICE_MAP = {
|
|
2346
|
+
UL: 'businessdepositrates',
|
|
2347
|
+
IP: 'selfemployeddepositrates',
|
|
2348
|
+
};
|
|
2349
|
+
function useBusinessDepositRates(rateParams) {
|
|
2350
|
+
const serviceName = rateParams?.rateType ? DEPOSIT_RATES_SERVICE_MAP[rateParams?.rateType] : '';
|
|
2351
|
+
const { data } = useAsyncData(serviceName ? `/api/v1/depositrates/${serviceName}` : null, fetchJSONUnsafe);
|
|
2352
|
+
return Array.isArray(data) ? data : [];
|
|
2353
|
+
}
|
|
2354
|
+
|
|
2355
|
+
const useBusinessDepositCalculatorParams = (userInputParams, rateParams) => {
|
|
2319
2356
|
const { daysValue, moneyValue, isPartialWithdrawal, isReplenished, isMonthlyInterestPayment } = userInputParams;
|
|
2320
2357
|
const isOperatingDeposit = isReplenished || isPartialWithdrawal;
|
|
2321
2358
|
const isDisabledOperatingDeposit = daysValue < BUSINESS_OPERATING_MIN_DAYS || daysValue > BUSINESS_OPERATING_MAX_DAYS;
|
|
2359
|
+
const rateRows = useBusinessDepositRates(rateParams);
|
|
2322
2360
|
if (daysValue <= BUSINESS_RATE_MIN_DAYS) {
|
|
2323
2361
|
return {
|
|
2324
2362
|
...DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS,
|
|
@@ -2327,7 +2365,7 @@
|
|
|
2327
2365
|
isUnavailableByTerm: true,
|
|
2328
2366
|
};
|
|
2329
2367
|
}
|
|
2330
|
-
const businessDepositCalculatorSourceBookParams =
|
|
2368
|
+
const businessDepositCalculatorSourceBookParams = rateRows?.find((_) => {
|
|
2331
2369
|
return (isMonthlyInterestPayment === _.isMonthlyInterestPayment &&
|
|
2332
2370
|
checkIsOperatingDeposit(isOperatingDeposit, _) &&
|
|
2333
2371
|
checkRangeByKeys(moneyValue, ['minSum', 'maxSum'], _) &&
|
|
@@ -2336,7 +2374,7 @@
|
|
|
2336
2374
|
const { rate } = businessDepositCalculatorSourceBookParams;
|
|
2337
2375
|
const income = getDepositIncome$1(rate, userInputParams);
|
|
2338
2376
|
const finalSum = moneyValue + income;
|
|
2339
|
-
const sourceBookRows =
|
|
2377
|
+
const sourceBookRows = rateRows || [DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
|
|
2340
2378
|
return {
|
|
2341
2379
|
...businessDepositCalculatorSourceBookParams,
|
|
2342
2380
|
...getRangeByKeys(['minSum', 'maxSum'], sourceBookRows),
|
|
@@ -2363,34 +2401,7 @@
|
|
|
2363
2401
|
}
|
|
2364
2402
|
};
|
|
2365
2403
|
|
|
2366
|
-
const
|
|
2367
|
-
const getMonthsDefaultValue = (defaultParams, defaultMonth = 0) => defaultParams?.period &&
|
|
2368
|
-
defaultParams.period >= DEFAULT_MIN_MONTHS &&
|
|
2369
|
-
defaultParams.period <= DEFAULT_MAX_MONTHS
|
|
2370
|
-
? defaultParams.period
|
|
2371
|
-
: defaultMonth;
|
|
2372
|
-
|
|
2373
|
-
const STEP_DAYS = 1;
|
|
2374
|
-
const renderDaysInput = (props) => (jsx(InputRange, { items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
|
|
2375
|
-
const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
|
|
2376
|
-
|
|
2377
|
-
const orientationStyleMap = {
|
|
2378
|
-
horizontal: 'gap-5xl',
|
|
2379
|
-
vertical: 'flex-col gap-s',
|
|
2380
|
-
};
|
|
2381
|
-
const RadioButtonGroup = JSX(({ items, checkedItem, className, onChange: onChangeCheckedItem, orientation = 'horizontal', }) => (jsx("div", { className: style(`flex ${orientationStyleMap[orientation]}`, className), role: "radiogroup", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
|
|
2382
|
-
|
|
2383
|
-
const renderBinaryRadioButtonGroup = ({ items, title, mobileTitle = title, orientation = 'horizontal', value, radioGroupClassName, onChange, }) => (jsxs("div", { className: "space-y-s", children: [title ? (jsx("div", { className: "hidden @5xl:block", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, mobileTitle ? (jsx("div", { className: "@5xl:hidden", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: mobileTitle }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, className: style('flex-col sm:flex-row', radioGroupClassName), onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
|
|
2384
|
-
|
|
2385
|
-
const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
|
|
2386
|
-
...props,
|
|
2387
|
-
items: [
|
|
2388
|
-
{ id: 'everyMonth', text: 'Ежемесячно' },
|
|
2389
|
-
{ id: 'atEndTerm', text: 'В конце срока' },
|
|
2390
|
-
],
|
|
2391
|
-
});
|
|
2392
|
-
|
|
2393
|
-
const BusinessDepositCalculatorForm = JSX(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, calcSource, }) => {
|
|
2404
|
+
const BusinessDepositCalculatorForm = JSX(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, rateParams, }) => {
|
|
2394
2405
|
const [userInputParams, { field }] = useForm({
|
|
2395
2406
|
moneyValue: getMoneyDefaultValue(defaultParams, BUSINESS_DEFAULT_SUM),
|
|
2396
2407
|
daysValue: getMonthsDefaultValue(defaultParams, BUSINESS_DEFAULT_DAYS),
|
|
@@ -2398,7 +2409,7 @@
|
|
|
2398
2409
|
isPartialWithdrawal: Boolean(defaultParams?.isPartialWithdrawal),
|
|
2399
2410
|
isMonthlyInterestPayment: Boolean(defaultParams?.isMonthlyInterestPayment),
|
|
2400
2411
|
});
|
|
2401
|
-
const calculatorParams =
|
|
2412
|
+
const calculatorParams = useBusinessDepositCalculatorParams(userInputParams, rateParams);
|
|
2402
2413
|
const { income, finalSum, rate, isUnavailableByTerm, depositeName } = calculatorParams;
|
|
2403
2414
|
return (jsx(CalculatorFormLayout, { className: className, inputChildren: jsxs("div", { children: [renderWantedSumInput({
|
|
2404
2415
|
title: 'Сумма, ₽',
|
|
@@ -5620,7 +5631,7 @@
|
|
|
5620
5631
|
|
|
5621
5632
|
const joinList = (sep) => (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: `sep-${i}` }, el) : [el]), []);
|
|
5622
5633
|
|
|
5623
|
-
const packageVersion = "0.14.
|
|
5634
|
+
const packageVersion = "0.14.230";
|
|
5624
5635
|
|
|
5625
5636
|
exports.Blocks = Blocks;
|
|
5626
5637
|
exports.ContentPage = ContentPage;
|