@redneckz/wildless-cms-uni-blocks 0.14.3 → 0.14.4
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/bin/migration-scripts/0.14.4.js +37 -0
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +39 -27
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
- package/bundle/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/bundle/model/EmptyOptionType.d.ts +1 -1
- package/dist/components/Calculator/BonusCalculatorForm.js +1 -1
- package/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
- package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/Calculator.js +16 -4
- package/dist/components/Calculator/Calculator.js.map +1 -1
- package/dist/components/Calculator/CalculatorContent.d.ts +27 -1
- package/dist/components/Calculator/CreditCalculatorForm.js +6 -6
- package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/DepositCalculatorForm.js +8 -8
- package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
- package/dist/content-page-repository/transformHTML.js +32 -2
- package/dist/content-page-repository/transformHTML.js.map +1 -1
- package/dist/model/EmptyOptionType.d.ts +1 -1
- package/lib/components/Calculator/BonusCalculatorForm.js +1 -1
- package/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
- package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/Calculator.js +16 -4
- package/lib/components/Calculator/Calculator.js.map +1 -1
- package/lib/components/Calculator/CalculatorContent.d.ts +27 -1
- package/lib/components/Calculator/CreditCalculatorForm.js +6 -6
- package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/DepositCalculatorForm.js +8 -8
- package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
- package/lib/content-page-repository/transformHTML.js +9 -2
- package/lib/content-page-repository/transformHTML.js.map +1 -1
- package/lib/model/EmptyOptionType.d.ts +1 -1
- package/mobile/bundle/bundle.umd.js +21 -21
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
- package/mobile/bundle/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/mobile/bundle/model/EmptyOptionType.d.ts +1 -1
- package/mobile/dist/components/Calculator/BonusCalculatorForm.js +1 -1
- package/mobile/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
- 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/CreditCalculatorForm.js +6 -6
- package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js +8 -8
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/mobile/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
- package/mobile/dist/content-page-repository/transformHTML.js +32 -2
- package/mobile/dist/content-page-repository/transformHTML.js.map +1 -1
- package/mobile/dist/model/EmptyOptionType.d.ts +1 -1
- package/mobile/lib/components/Calculator/BonusCalculatorForm.js +1 -1
- package/mobile/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
- 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/CreditCalculatorForm.js +6 -6
- package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js +8 -8
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
- package/mobile/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
- package/mobile/lib/content-page-repository/transformHTML.js +9 -2
- package/mobile/lib/content-page-repository/transformHTML.js.map +1 -1
- package/mobile/lib/model/EmptyOptionType.d.ts +1 -1
- package/mobile/src/components/Calculator/BonusCalculatorForm.tsx +1 -1
- package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +5 -2
- package/mobile/src/components/Calculator/Calculator.example.json +1 -0
- package/mobile/src/components/Calculator/Calculator.ui.json +8 -0
- package/mobile/src/components/Calculator/CalculatorContent.ts +31 -1
- package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +6 -6
- package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +8 -8
- package/mobile/src/components/Calculator/useBonusCalculatorParams.ts +1 -1
- package/mobile/src/content-page-repository/transformHTML.ts +10 -2
- package/mobile/src/model/EmptyOptionType.ts +1 -1
- package/package.json +1 -1
- package/src/components/Calculator/BonusCalculatorForm.tsx +1 -1
- package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +5 -2
- package/src/components/Calculator/Calculator.example.json +1 -0
- package/src/components/Calculator/Calculator.tsx +19 -4
- package/src/components/Calculator/Calculator.ui.json +8 -0
- package/src/components/Calculator/CalculatorContent.ts +31 -1
- package/src/components/Calculator/CreditCalculatorForm.tsx +6 -6
- package/src/components/Calculator/DepositCalculatorForm.tsx +8 -8
- package/src/components/Calculator/useBonusCalculatorParams.ts +1 -1
- package/src/content-page-repository/transformHTML.ts +10 -2
- package/src/model/EmptyOptionType.ts +1 -1
|
@@ -15,7 +15,7 @@ export interface BonusCalculatorProps extends CommonCalculatorProps {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export const BonusCalculatorForm = JSX<BonusCalculatorProps>(
|
|
18
|
-
({ className = '', sourceBookDir
|
|
18
|
+
({ className = '', sourceBookDir, buttons, footnote }) => {
|
|
19
19
|
const [userInputParams, { field }] = useForm({
|
|
20
20
|
travelExpenseValue: DEFAULT_TRAVEL_MIN_SUM,
|
|
21
21
|
restExpenseValue: DEFAULT_REST_MIN_SUM,
|
|
@@ -22,7 +22,7 @@ export interface BusinessDepositCalculatorProp extends BusinessDepositCalculator
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export const BusinessDepositCalculatorForm = JSX<BusinessDepositCalculatorProp>(
|
|
25
|
-
({ className = '',
|
|
25
|
+
({ className = '', rateParams, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
|
|
26
26
|
const [userInputParams, { field }] = useForm({
|
|
27
27
|
moneyValue: BUSINESS_DEFAULT_SUM,
|
|
28
28
|
daysValue: BUSINESS_DEFAULT_DAYS,
|
|
@@ -32,7 +32,10 @@ export const BusinessDepositCalculatorForm = JSX<BusinessDepositCalculatorProp>(
|
|
|
32
32
|
isMonthlyInterestPayment: false,
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
const calculatorParams = useBusinessDepositCalculatorParams(
|
|
35
|
+
const calculatorParams = useBusinessDepositCalculatorParams(
|
|
36
|
+
userInputParams,
|
|
37
|
+
rateParams?.sourceBookDir,
|
|
38
|
+
);
|
|
36
39
|
const { income, finalSum, rate, isUnavailableByTerm, depositeName } = calculatorParams;
|
|
37
40
|
|
|
38
41
|
return (
|
|
@@ -1,9 +1,36 @@
|
|
|
1
|
+
import { Align } from '../../model/Align';
|
|
1
2
|
import type { EmptyOption } from '../../model/EmptyOptionType';
|
|
2
3
|
import type { Footnote } from '../../model/Footnote';
|
|
3
4
|
import type { HeadlineCommonProps, TitleProps } from '../../model/HeadlineType';
|
|
4
5
|
import type { IconProps } from '../../model/Picture';
|
|
5
6
|
import type { ButtonsSectionContent } from '../../ui-kit/Button/ButtonsSectionContent';
|
|
6
7
|
|
|
8
|
+
export interface RateParams {
|
|
9
|
+
/** @title Адрес справочника */
|
|
10
|
+
sourceBookDir?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @title ЮЛ
|
|
15
|
+
* @default {"rateType": "UL"}
|
|
16
|
+
*/
|
|
17
|
+
export type ULRateDef = RateParams & {
|
|
18
|
+
rateType: 'UL';
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @title ИП
|
|
23
|
+
* @default {"rateType": "IP"}
|
|
24
|
+
*/
|
|
25
|
+
export type IPRateDef = RateParams & {
|
|
26
|
+
rateType: 'IP';
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @title Назначение ставки
|
|
31
|
+
*/
|
|
32
|
+
export type RateParamsDef = EmptyOption | ULRateDef | IPRateDef;
|
|
33
|
+
|
|
7
34
|
export type CommonCalculatorProps = Footnote &
|
|
8
35
|
ButtonsSectionContent & {
|
|
9
36
|
/** @title Адрес справочника */
|
|
@@ -51,7 +78,9 @@ export interface DepositCalculatorProps extends CommonCalculatorProps {
|
|
|
51
78
|
paramsViewSettings?: DepositCalculatorParamsViewSettings;
|
|
52
79
|
}
|
|
53
80
|
|
|
54
|
-
export interface BusinessDepositCalculatorProps extends
|
|
81
|
+
export interface BusinessDepositCalculatorProps extends Footnote, ButtonsSectionContent {
|
|
82
|
+
/** @title Ставка для */
|
|
83
|
+
rateParams?: RateParamsDef;
|
|
55
84
|
/** @title Сноска снизу блока */
|
|
56
85
|
bottomFootnote?: string;
|
|
57
86
|
/** @title Показывать название депозита */
|
|
@@ -151,6 +180,7 @@ export type CalculatorTab = {
|
|
|
151
180
|
* @title Калькулятор
|
|
152
181
|
*/
|
|
153
182
|
export interface CalculatorContent {
|
|
183
|
+
tabAlign?: Align;
|
|
154
184
|
/** @title Вкладки */
|
|
155
185
|
calculatorTabs?: CalculatorTab[];
|
|
156
186
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/* eslint-disable max-lines, max-lines-per-function */
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
3
4
|
import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
|
|
5
|
+
import { Checkbox } from '../../ui-kit/Checkbox/Checkbox';
|
|
4
6
|
import { style } from '../../utils/style';
|
|
5
7
|
import type {
|
|
6
8
|
CreditCalculatorParamsViewSettings,
|
|
7
9
|
CreditCalculatorProps,
|
|
8
10
|
} from './CalculatorContent';
|
|
11
|
+
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
12
|
+
import { CREDIT_DEFAULT_SUM, DEFAULT_MONTHS } from './constants';
|
|
9
13
|
import { renderFootnote } from './renderFootnote';
|
|
10
|
-
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
11
14
|
import { renderMonthsInput } from './renderMonthsInput';
|
|
12
|
-
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
13
|
-
import { CREDIT_DEFAULT_SUM, DEFAULT_MONTHS } from './constants';
|
|
14
|
-
import { CreditCalculatorParams, useCreditCalculatorParams } from './useCreditCalculatorParams';
|
|
15
15
|
import { renderPaymentType } from './renderPaymentType';
|
|
16
|
-
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
17
16
|
import { renderRate } from './renderRate';
|
|
18
|
-
import {
|
|
17
|
+
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
18
|
+
import { CreditCalculatorParams, useCreditCalculatorParams } from './useCreditCalculatorParams';
|
|
19
19
|
|
|
20
20
|
export interface CreditCalculatorProp extends CreditCalculatorProps {
|
|
21
21
|
className?: string;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
+
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
2
4
|
import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
|
|
3
5
|
import { style } from '../../utils/style';
|
|
4
6
|
import type {
|
|
5
7
|
DepositCalculatorParamsViewSettings,
|
|
6
8
|
DepositCalculatorProps,
|
|
7
9
|
} from './CalculatorContent';
|
|
8
|
-
import { renderFootnote } from './renderFootnote';
|
|
9
|
-
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
10
|
-
import { renderMonthsInput } from './renderMonthsInput';
|
|
11
|
-
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
12
|
-
import { DEPOSIT_DEFAULT_SUM } from './constants';
|
|
13
|
-
import { DepositCalculatorParams, useDepositCalculatorParams } from './useDepositCalculatorParams';
|
|
14
|
-
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
15
10
|
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
11
|
+
import { DEPOSIT_DEFAULT_SUM } from './constants';
|
|
12
|
+
import { renderFootnote } from './renderFootnote';
|
|
16
13
|
import { renderInterestPayment } from './renderInterestPayment';
|
|
17
|
-
import {
|
|
14
|
+
import { renderMonthsInput } from './renderMonthsInput';
|
|
18
15
|
import { renderRate } from './renderRate';
|
|
16
|
+
import { renderRegistrationType } from './renderRegistrationType';
|
|
17
|
+
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
18
|
+
import { DepositCalculatorParams, useDepositCalculatorParams } from './useDepositCalculatorParams';
|
|
19
19
|
|
|
20
20
|
export interface DepositCalculatorProp extends DepositCalculatorProps {
|
|
21
21
|
className?: string;
|
|
@@ -29,7 +29,7 @@ export interface BonusCalculatorParams
|
|
|
29
29
|
|
|
30
30
|
export const useBonusCalculatorParams = (
|
|
31
31
|
userInputParams: BonusCalculatorUserInputParams,
|
|
32
|
-
sourceBookDir
|
|
32
|
+
sourceBookDir?: string,
|
|
33
33
|
) => {
|
|
34
34
|
const { travelExpenseValue, restExpenseValue } = userInputParams;
|
|
35
35
|
const bonusCalculatorSourceBookParams =
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rehypeParse from 'rehype-parse';
|
|
2
|
-
import rehypeSanitize from 'rehype-sanitize';
|
|
2
|
+
import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
|
|
3
3
|
import rehypeStringify from 'rehype-stringify';
|
|
4
4
|
import { unified } from 'unified';
|
|
5
5
|
import { replaceHeadingTags } from './replaceHeadingTags';
|
|
@@ -9,9 +9,17 @@ export async function transformHTML(html: string | null | undefined): Promise<st
|
|
|
9
9
|
return '';
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
const extendedSchema = {
|
|
13
|
+
...defaultSchema,
|
|
14
|
+
protocols: {
|
|
15
|
+
...defaultSchema.protocols,
|
|
16
|
+
href: [...(defaultSchema?.protocols?.href || []), 'tel'],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
12
20
|
const result = await unified()
|
|
13
21
|
.use(rehypeParse)
|
|
14
|
-
.use(rehypeSanitize)
|
|
22
|
+
.use(rehypeSanitize, extendedSchema)
|
|
15
23
|
.use(rehypeStringify)
|
|
16
24
|
.process(html);
|
|
17
25
|
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@ export interface BonusCalculatorProps extends CommonCalculatorProps {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export const BonusCalculatorForm = JSX<BonusCalculatorProps>(
|
|
18
|
-
({ className = '', sourceBookDir
|
|
18
|
+
({ className = '', sourceBookDir, buttons, footnote }) => {
|
|
19
19
|
const [userInputParams, { field }] = useForm({
|
|
20
20
|
travelExpenseValue: DEFAULT_TRAVEL_MIN_SUM,
|
|
21
21
|
restExpenseValue: DEFAULT_REST_MIN_SUM,
|
|
@@ -22,7 +22,7 @@ export interface BusinessDepositCalculatorProp extends BusinessDepositCalculator
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export const BusinessDepositCalculatorForm = JSX<BusinessDepositCalculatorProp>(
|
|
25
|
-
({ className = '',
|
|
25
|
+
({ className = '', rateParams, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
|
|
26
26
|
const [userInputParams, { field }] = useForm({
|
|
27
27
|
moneyValue: BUSINESS_DEFAULT_SUM,
|
|
28
28
|
daysValue: BUSINESS_DEFAULT_DAYS,
|
|
@@ -32,7 +32,10 @@ export const BusinessDepositCalculatorForm = JSX<BusinessDepositCalculatorProp>(
|
|
|
32
32
|
isMonthlyInterestPayment: false,
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
const calculatorParams = useBusinessDepositCalculatorParams(
|
|
35
|
+
const calculatorParams = useBusinessDepositCalculatorParams(
|
|
36
|
+
userInputParams,
|
|
37
|
+
rateParams?.sourceBookDir,
|
|
38
|
+
);
|
|
36
39
|
const { income, finalSum, rate, isUnavailableByTerm, depositeName } = calculatorParams;
|
|
37
40
|
|
|
38
41
|
return (
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { useCarouselControls } from '../../hooks/useCarouselControls';
|
|
4
|
+
import { Align } from '../../model/Align';
|
|
4
5
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
5
6
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
6
7
|
import { renderArrows } from '../../ui-kit/Button/renderArrows';
|
|
@@ -14,6 +15,7 @@ export interface CalculatorProps extends CalculatorContent, UniBlockProps {}
|
|
|
14
15
|
interface TabsProps {
|
|
15
16
|
activeIndex: number;
|
|
16
17
|
tabsNav: CalculatorNav[];
|
|
18
|
+
tabAlign?: Align;
|
|
17
19
|
slideIndexShift: number;
|
|
18
20
|
onClick: (index: number) => void;
|
|
19
21
|
}
|
|
@@ -25,8 +27,14 @@ interface NavButtonProps {
|
|
|
25
27
|
onClick: () => void;
|
|
26
28
|
}
|
|
27
29
|
|
|
30
|
+
const alignStyleMap: Record<Align, string> = {
|
|
31
|
+
start: 'justify-start',
|
|
32
|
+
center: 'justify-center',
|
|
33
|
+
end: 'justify-end',
|
|
34
|
+
};
|
|
35
|
+
|
|
28
36
|
export const Calculator = JSX<CalculatorProps>(
|
|
29
|
-
({ className = '', calculatorTabs = [], ...rest }) => {
|
|
37
|
+
({ className = '', tabAlign, calculatorTabs = [], ...rest }) => {
|
|
30
38
|
const tabsNav = calculatorTabs.map((_) => _.nav || ({} as CalculatorNav));
|
|
31
39
|
const calculatorBlocks = calculatorTabs.map(
|
|
32
40
|
({ calculatorBlock }) => calculatorBlock || ({} as CalculatorBlockDef),
|
|
@@ -48,7 +56,13 @@ export const Calculator = JSX<CalculatorProps>(
|
|
|
48
56
|
>
|
|
49
57
|
<div className="bg-white">
|
|
50
58
|
{tabsNav.length > 1
|
|
51
|
-
? renderTabs({
|
|
59
|
+
? renderTabs({
|
|
60
|
+
activeIndex,
|
|
61
|
+
tabsNav,
|
|
62
|
+
tabAlign,
|
|
63
|
+
slideIndexShift,
|
|
64
|
+
onClick: handleSlideIndexShift,
|
|
65
|
+
})
|
|
52
66
|
: null}
|
|
53
67
|
{renderArrows({
|
|
54
68
|
...controls,
|
|
@@ -108,8 +122,9 @@ function renderNavButton({ tab, i, isActive, onClick }: NavButtonProps) {
|
|
|
108
122
|
);
|
|
109
123
|
}
|
|
110
124
|
|
|
111
|
-
function renderTabs({ activeIndex, tabsNav, slideIndexShift, onClick }: TabsProps) {
|
|
125
|
+
function renderTabs({ activeIndex, tabsNav, tabAlign, slideIndexShift, onClick }: TabsProps) {
|
|
112
126
|
const CARD_SHIFT = 388;
|
|
127
|
+
const alignStyle = tabAlign ? alignStyleMap[tabAlign] : '';
|
|
113
128
|
|
|
114
129
|
return (
|
|
115
130
|
<div>
|
|
@@ -117,7 +132,7 @@ function renderTabs({ activeIndex, tabsNav, slideIndexShift, onClick }: TabsProp
|
|
|
117
132
|
style={{ transform: `translateX(-${activeIndex * CARD_SHIFT}px)` }}
|
|
118
133
|
className="flex flex-col justify-end items-center h-32 pt-4xl box-border duration-1000"
|
|
119
134
|
>
|
|
120
|
-
<div className=
|
|
135
|
+
<div className={style('w-full flex flex-nowrap items-end gap-xs', alignStyle)}>
|
|
121
136
|
{tabsNav.map((tab, i) =>
|
|
122
137
|
renderNavButton({
|
|
123
138
|
tab,
|
|
@@ -1,9 +1,36 @@
|
|
|
1
|
+
import { Align } from '../../model/Align';
|
|
1
2
|
import type { EmptyOption } from '../../model/EmptyOptionType';
|
|
2
3
|
import type { Footnote } from '../../model/Footnote';
|
|
3
4
|
import type { HeadlineCommonProps, TitleProps } from '../../model/HeadlineType';
|
|
4
5
|
import type { IconProps } from '../../model/Picture';
|
|
5
6
|
import type { ButtonsSectionContent } from '../../ui-kit/Button/ButtonsSectionContent';
|
|
6
7
|
|
|
8
|
+
export interface RateParams {
|
|
9
|
+
/** @title Адрес справочника */
|
|
10
|
+
sourceBookDir?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @title ЮЛ
|
|
15
|
+
* @default {"rateType": "UL"}
|
|
16
|
+
*/
|
|
17
|
+
export type ULRateDef = RateParams & {
|
|
18
|
+
rateType: 'UL';
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @title ИП
|
|
23
|
+
* @default {"rateType": "IP"}
|
|
24
|
+
*/
|
|
25
|
+
export type IPRateDef = RateParams & {
|
|
26
|
+
rateType: 'IP';
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @title Назначение ставки
|
|
31
|
+
*/
|
|
32
|
+
export type RateParamsDef = EmptyOption | ULRateDef | IPRateDef;
|
|
33
|
+
|
|
7
34
|
export type CommonCalculatorProps = Footnote &
|
|
8
35
|
ButtonsSectionContent & {
|
|
9
36
|
/** @title Адрес справочника */
|
|
@@ -51,7 +78,9 @@ export interface DepositCalculatorProps extends CommonCalculatorProps {
|
|
|
51
78
|
paramsViewSettings?: DepositCalculatorParamsViewSettings;
|
|
52
79
|
}
|
|
53
80
|
|
|
54
|
-
export interface BusinessDepositCalculatorProps extends
|
|
81
|
+
export interface BusinessDepositCalculatorProps extends Footnote, ButtonsSectionContent {
|
|
82
|
+
/** @title Ставка для */
|
|
83
|
+
rateParams?: RateParamsDef;
|
|
55
84
|
/** @title Сноска снизу блока */
|
|
56
85
|
bottomFootnote?: string;
|
|
57
86
|
/** @title Показывать название депозита */
|
|
@@ -151,6 +180,7 @@ export type CalculatorTab = {
|
|
|
151
180
|
* @title Калькулятор
|
|
152
181
|
*/
|
|
153
182
|
export interface CalculatorContent {
|
|
183
|
+
tabAlign?: Align;
|
|
154
184
|
/** @title Вкладки */
|
|
155
185
|
calculatorTabs?: CalculatorTab[];
|
|
156
186
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/* eslint-disable max-lines, max-lines-per-function */
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
3
4
|
import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
|
|
5
|
+
import { Checkbox } from '../../ui-kit/Checkbox/Checkbox';
|
|
4
6
|
import { style } from '../../utils/style';
|
|
5
7
|
import type {
|
|
6
8
|
CreditCalculatorParamsViewSettings,
|
|
7
9
|
CreditCalculatorProps,
|
|
8
10
|
} from './CalculatorContent';
|
|
11
|
+
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
12
|
+
import { CREDIT_DEFAULT_SUM, DEFAULT_MONTHS } from './constants';
|
|
9
13
|
import { renderFootnote } from './renderFootnote';
|
|
10
|
-
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
11
14
|
import { renderMonthsInput } from './renderMonthsInput';
|
|
12
|
-
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
13
|
-
import { CREDIT_DEFAULT_SUM, DEFAULT_MONTHS } from './constants';
|
|
14
|
-
import { CreditCalculatorParams, useCreditCalculatorParams } from './useCreditCalculatorParams';
|
|
15
15
|
import { renderPaymentType } from './renderPaymentType';
|
|
16
|
-
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
17
16
|
import { renderRate } from './renderRate';
|
|
18
|
-
import {
|
|
17
|
+
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
18
|
+
import { CreditCalculatorParams, useCreditCalculatorParams } from './useCreditCalculatorParams';
|
|
19
19
|
|
|
20
20
|
export interface CreditCalculatorProp extends CreditCalculatorProps {
|
|
21
21
|
className?: string;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
+
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
2
4
|
import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
|
|
3
5
|
import { style } from '../../utils/style';
|
|
4
6
|
import type {
|
|
5
7
|
DepositCalculatorParamsViewSettings,
|
|
6
8
|
DepositCalculatorProps,
|
|
7
9
|
} from './CalculatorContent';
|
|
8
|
-
import { renderFootnote } from './renderFootnote';
|
|
9
|
-
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
10
|
-
import { renderMonthsInput } from './renderMonthsInput';
|
|
11
|
-
import { FormFieldRegisterer, useForm } from '../../hooks/useForm';
|
|
12
|
-
import { DEPOSIT_DEFAULT_SUM } from './constants';
|
|
13
|
-
import { DepositCalculatorParams, useDepositCalculatorParams } from './useDepositCalculatorParams';
|
|
14
|
-
import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
|
|
15
10
|
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
11
|
+
import { DEPOSIT_DEFAULT_SUM } from './constants';
|
|
12
|
+
import { renderFootnote } from './renderFootnote';
|
|
16
13
|
import { renderInterestPayment } from './renderInterestPayment';
|
|
17
|
-
import {
|
|
14
|
+
import { renderMonthsInput } from './renderMonthsInput';
|
|
18
15
|
import { renderRate } from './renderRate';
|
|
16
|
+
import { renderRegistrationType } from './renderRegistrationType';
|
|
17
|
+
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
18
|
+
import { DepositCalculatorParams, useDepositCalculatorParams } from './useDepositCalculatorParams';
|
|
19
19
|
|
|
20
20
|
export interface DepositCalculatorProp extends DepositCalculatorProps {
|
|
21
21
|
className?: string;
|
|
@@ -29,7 +29,7 @@ export interface BonusCalculatorParams
|
|
|
29
29
|
|
|
30
30
|
export const useBonusCalculatorParams = (
|
|
31
31
|
userInputParams: BonusCalculatorUserInputParams,
|
|
32
|
-
sourceBookDir
|
|
32
|
+
sourceBookDir?: string,
|
|
33
33
|
) => {
|
|
34
34
|
const { travelExpenseValue, restExpenseValue } = userInputParams;
|
|
35
35
|
const bonusCalculatorSourceBookParams =
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rehypeParse from 'rehype-parse';
|
|
2
|
-
import rehypeSanitize from 'rehype-sanitize';
|
|
2
|
+
import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
|
|
3
3
|
import rehypeStringify from 'rehype-stringify';
|
|
4
4
|
import { unified } from 'unified';
|
|
5
5
|
import { replaceHeadingTags } from './replaceHeadingTags';
|
|
@@ -9,9 +9,17 @@ export async function transformHTML(html: string | null | undefined): Promise<st
|
|
|
9
9
|
return '';
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
const extendedSchema = {
|
|
13
|
+
...defaultSchema,
|
|
14
|
+
protocols: {
|
|
15
|
+
...defaultSchema.protocols,
|
|
16
|
+
href: [...(defaultSchema?.protocols?.href || []), 'tel'],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
12
20
|
const result = await unified()
|
|
13
21
|
.use(rehypeParse)
|
|
14
|
-
.use(rehypeSanitize)
|
|
22
|
+
.use(rehypeSanitize, extendedSchema)
|
|
15
23
|
.use(rehypeStringify)
|
|
16
24
|
.process(html);
|
|
17
25
|
|