@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.
Files changed (79) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +44 -33
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  5. package/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
  6. package/bundle/components/Calculator/constants.d.ts +1 -1
  7. package/bundle/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
  8. package/bundle/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  9. package/dist/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  10. package/dist/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
  11. package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  12. package/dist/components/Calculator/CalculatorContent.d.ts +27 -1
  13. package/dist/components/Calculator/constants.d.ts +1 -1
  14. package/dist/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
  15. package/dist/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +8 -6
  16. package/dist/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
  17. package/dist/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  18. package/dist/components/Calculator/useBusinessDepositRates.js +15 -0
  19. package/dist/components/Calculator/useBusinessDepositRates.js.map +1 -0
  20. package/lib/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  21. package/lib/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
  22. package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  23. package/lib/components/Calculator/CalculatorContent.d.ts +27 -1
  24. package/lib/components/Calculator/constants.d.ts +1 -1
  25. package/lib/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
  26. package/lib/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +6 -4
  27. package/lib/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
  28. package/lib/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  29. package/lib/components/Calculator/useBusinessDepositRates.js +12 -0
  30. package/lib/components/Calculator/useBusinessDepositRates.js.map +1 -0
  31. package/mobile/bundle/bundle.umd.js +44 -33
  32. package/mobile/bundle/bundle.umd.min.js +1 -1
  33. package/mobile/bundle/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  34. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
  35. package/mobile/bundle/components/Calculator/constants.d.ts +1 -1
  36. package/mobile/bundle/components/Calculator/{getBusinessDepositCalculatorParams.d.ts → useBusinessDepositCalculatorParams.d.ts} +2 -4
  37. package/mobile/bundle/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  38. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  39. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
  40. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  41. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +27 -1
  42. package/mobile/dist/components/Calculator/constants.d.ts +1 -1
  43. package/mobile/dist/components/Calculator/useBusinessDepositCalculatorParams.d.ts +25 -0
  44. package/mobile/dist/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +8 -6
  45. package/mobile/dist/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
  46. package/mobile/dist/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  47. package/mobile/dist/components/Calculator/useBusinessDepositRates.js +15 -0
  48. package/mobile/dist/components/Calculator/useBusinessDepositRates.js.map +1 -0
  49. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.d.ts +0 -3
  50. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +3 -3
  51. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  52. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +27 -1
  53. package/mobile/lib/components/Calculator/constants.d.ts +1 -1
  54. package/mobile/lib/components/Calculator/useBusinessDepositCalculatorParams.d.ts +25 -0
  55. package/mobile/lib/components/Calculator/{getBusinessDepositCalculatorParams.js → useBusinessDepositCalculatorParams.js} +6 -4
  56. package/mobile/lib/components/Calculator/useBusinessDepositCalculatorParams.js.map +1 -0
  57. package/mobile/lib/components/Calculator/useBusinessDepositRates.d.ts +4 -0
  58. package/mobile/lib/components/Calculator/useBusinessDepositRates.js +12 -0
  59. package/mobile/lib/components/Calculator/useBusinessDepositRates.js.map +1 -0
  60. package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +7 -10
  61. package/mobile/src/components/Calculator/CalculatorContent.ts +31 -1
  62. package/mobile/src/components/Calculator/constants.ts +1 -1
  63. package/mobile/src/components/Calculator/{getBusinessDepositCalculatorParams.ts → useBusinessDepositCalculatorParams.ts} +8 -9
  64. package/mobile/src/components/Calculator/useBusinessDepositRates.ts +22 -0
  65. package/mobile/src/components/TabsLayout/TabsLayout.ui.json +1 -1
  66. package/package.json +1 -1
  67. package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +7 -10
  68. package/src/components/Calculator/Calculator.fixture.tsx +2 -2
  69. package/src/components/Calculator/CalculatorContent.ts +31 -1
  70. package/src/components/Calculator/constants.ts +1 -1
  71. package/src/components/Calculator/{getBusinessDepositCalculatorParams.ts → useBusinessDepositCalculatorParams.ts} +8 -9
  72. package/src/components/Calculator/useBusinessDepositRates.ts +22 -0
  73. package/src/components/TabsLayout/TabsLayout.ui.json +1 -1
  74. package/dist/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
  75. package/lib/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
  76. package/mobile/dist/components/Calculator/getBusinessDepositCalculatorParams.d.ts +0 -27
  77. package/mobile/dist/components/Calculator/getBusinessDepositCalculatorParams.js.map +0 -1
  78. package/mobile/lib/components/Calculator/getBusinessDepositCalculatorParams.d.ts +0 -27
  79. 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 CommonCalculatorProps {
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 type BusinessDepositCalculatorData = {
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
- exports.BusinessDepositCalculatorForm = (0, uni_jsx_1.JSX)(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, calcSource, }) => {
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, getBusinessDepositCalculatorParams_1.getBusinessDepositCalculatorParams)(userInputParams, calcSource);
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":"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"}
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 CommonCalculatorProps {
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 type BusinessDepositCalculatorData = {
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.getBusinessDepositCalculatorParams = void 0;
2
+ exports.useBusinessDepositCalculatorParams = void 0;
3
3
  const constants_1 = require("./constants");
4
4
  const rangeHelpers_1 = require("./rangeHelpers");
5
- const getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
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 = calcSource?.rateRows?.find((_) => {
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 = calcSource?.rateRows || [constants_1.DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
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.getBusinessDepositCalculatorParams = getBusinessDepositCalculatorParams;
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=getBusinessDepositCalculatorParams.js.map
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
- export const BusinessDepositCalculatorForm = JSX(({ className = '', buttons, footnote, bottomFootnote, isShowDepositeName, defaultParams, calcSource, }) => {
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 = getBusinessDepositCalculatorParams(userInputParams, calcSource);
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":"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"}
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 CommonCalculatorProps {
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 type BusinessDepositCalculatorData = {
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
- export const getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
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 = calcSource?.rateRows?.find((_) => {
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 = calcSource?.rateRows || [DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
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=getBusinessDepositCalculatorParams.js.map
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 getBusinessDepositCalculatorParams = (userInputParams, calcSource) => {
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 = calcSource?.rateRows?.find((_) => {
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 = calcSource?.rateRows || [DEFAULT_BUSINESS_DEPOSIT_CALCULATOR_PARAMS];
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 getMoneyDefaultValue = (defaultParams, defaultMoney = 0) => defaultParams?.sum ? defaultParams.sum : defaultMoney;
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 = getBusinessDepositCalculatorParams(userInputParams, calcSource);
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.228";
5634
+ const packageVersion = "0.14.230";
5624
5635
 
5625
5636
  exports.Blocks = Blocks;
5626
5637
  exports.ContentPage = ContentPage;