@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.
Files changed (94) hide show
  1. package/bin/migration-scripts/0.14.4.js +37 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +39 -27
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
  6. package/bundle/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  7. package/bundle/model/EmptyOptionType.d.ts +1 -1
  8. package/dist/components/Calculator/BonusCalculatorForm.js +1 -1
  9. package/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
  10. package/dist/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
  11. package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  12. package/dist/components/Calculator/Calculator.js +16 -4
  13. package/dist/components/Calculator/Calculator.js.map +1 -1
  14. package/dist/components/Calculator/CalculatorContent.d.ts +27 -1
  15. package/dist/components/Calculator/CreditCalculatorForm.js +6 -6
  16. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  17. package/dist/components/Calculator/DepositCalculatorForm.js +8 -8
  18. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  19. package/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  20. package/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  21. package/dist/content-page-repository/transformHTML.js +32 -2
  22. package/dist/content-page-repository/transformHTML.js.map +1 -1
  23. package/dist/model/EmptyOptionType.d.ts +1 -1
  24. package/lib/components/Calculator/BonusCalculatorForm.js +1 -1
  25. package/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
  26. package/lib/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
  27. package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  28. package/lib/components/Calculator/Calculator.js +16 -4
  29. package/lib/components/Calculator/Calculator.js.map +1 -1
  30. package/lib/components/Calculator/CalculatorContent.d.ts +27 -1
  31. package/lib/components/Calculator/CreditCalculatorForm.js +6 -6
  32. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  33. package/lib/components/Calculator/DepositCalculatorForm.js +8 -8
  34. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  35. package/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  36. package/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  37. package/lib/content-page-repository/transformHTML.js +9 -2
  38. package/lib/content-page-repository/transformHTML.js.map +1 -1
  39. package/lib/model/EmptyOptionType.d.ts +1 -1
  40. package/mobile/bundle/bundle.umd.js +21 -21
  41. package/mobile/bundle/bundle.umd.min.js +1 -1
  42. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +27 -1
  43. package/mobile/bundle/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  44. package/mobile/bundle/model/EmptyOptionType.d.ts +1 -1
  45. package/mobile/dist/components/Calculator/BonusCalculatorForm.js +1 -1
  46. package/mobile/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
  47. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
  48. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  49. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +27 -1
  50. package/mobile/dist/components/Calculator/CreditCalculatorForm.js +6 -6
  51. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  52. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +8 -8
  53. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  54. package/mobile/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  55. package/mobile/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  56. package/mobile/dist/content-page-repository/transformHTML.js +32 -2
  57. package/mobile/dist/content-page-repository/transformHTML.js.map +1 -1
  58. package/mobile/dist/model/EmptyOptionType.d.ts +1 -1
  59. package/mobile/lib/components/Calculator/BonusCalculatorForm.js +1 -1
  60. package/mobile/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
  61. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +2 -2
  62. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  63. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +27 -1
  64. package/mobile/lib/components/Calculator/CreditCalculatorForm.js +6 -6
  65. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  66. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +8 -8
  67. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  68. package/mobile/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -1
  69. package/mobile/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  70. package/mobile/lib/content-page-repository/transformHTML.js +9 -2
  71. package/mobile/lib/content-page-repository/transformHTML.js.map +1 -1
  72. package/mobile/lib/model/EmptyOptionType.d.ts +1 -1
  73. package/mobile/src/components/Calculator/BonusCalculatorForm.tsx +1 -1
  74. package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +5 -2
  75. package/mobile/src/components/Calculator/Calculator.example.json +1 -0
  76. package/mobile/src/components/Calculator/Calculator.ui.json +8 -0
  77. package/mobile/src/components/Calculator/CalculatorContent.ts +31 -1
  78. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +6 -6
  79. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +8 -8
  80. package/mobile/src/components/Calculator/useBonusCalculatorParams.ts +1 -1
  81. package/mobile/src/content-page-repository/transformHTML.ts +10 -2
  82. package/mobile/src/model/EmptyOptionType.ts +1 -1
  83. package/package.json +1 -1
  84. package/src/components/Calculator/BonusCalculatorForm.tsx +1 -1
  85. package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +5 -2
  86. package/src/components/Calculator/Calculator.example.json +1 -0
  87. package/src/components/Calculator/Calculator.tsx +19 -4
  88. package/src/components/Calculator/Calculator.ui.json +8 -0
  89. package/src/components/Calculator/CalculatorContent.ts +31 -1
  90. package/src/components/Calculator/CreditCalculatorForm.tsx +6 -6
  91. package/src/components/Calculator/DepositCalculatorForm.tsx +8 -8
  92. package/src/components/Calculator/useBonusCalculatorParams.ts +1 -1
  93. package/src/content-page-repository/transformHTML.ts +10 -2
  94. 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 = '', buttons, footnote }) => {
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 = '', sourceBookDir, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
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(userInputParams, sourceBookDir);
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,5 +1,6 @@
1
1
  {
2
2
  "content": {
3
+ "tabAlign": "left",
3
4
  "calculatorTabs": [
4
5
  {
5
6
  "nav": {
@@ -11,6 +11,14 @@
11
11
  "sourceBookDir": {
12
12
  "ui:widget": "sourceBook"
13
13
  },
14
+ "rateParams": {
15
+ "rateType": {
16
+ "ui:widget": "hidden"
17
+ },
18
+ "sourceBookDir": {
19
+ "ui:widget": "sourceBook"
20
+ }
21
+ },
14
22
  "calcType": {
15
23
  "ui:widget": "hidden"
16
24
  },
@@ -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 CommonCalculatorProps {
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 { Checkbox } from '../../ui-kit/Checkbox/Checkbox';
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 { renderRegistrationType } from './renderRegistrationType';
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: string,
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
 
@@ -1,4 +1,4 @@
1
1
  /**
2
- * @title Выберите блок
2
+ * @title Не выбрано
3
3
  */
4
4
  export type EmptyOption = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.3",
3
+ "version": "0.14.4",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -15,7 +15,7 @@ export interface BonusCalculatorProps extends CommonCalculatorProps {
15
15
  }
16
16
 
17
17
  export const BonusCalculatorForm = JSX<BonusCalculatorProps>(
18
- ({ className = '', sourceBookDir = '', buttons, footnote }) => {
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 = '', sourceBookDir, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
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(userInputParams, sourceBookDir);
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,5 +1,6 @@
1
1
  {
2
2
  "content": {
3
+ "tabAlign": "left",
3
4
  "calculatorTabs": [
4
5
  {
5
6
  "nav": {
@@ -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({ activeIndex, tabsNav, slideIndexShift, onClick: handleSlideIndexShift })
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="w-full flex flex-nowrap items-end gap-xs">
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,
@@ -11,6 +11,14 @@
11
11
  "sourceBookDir": {
12
12
  "ui:widget": "sourceBook"
13
13
  },
14
+ "rateParams": {
15
+ "rateType": {
16
+ "ui:widget": "hidden"
17
+ },
18
+ "sourceBookDir": {
19
+ "ui:widget": "sourceBook"
20
+ }
21
+ },
14
22
  "calcType": {
15
23
  "ui:widget": "hidden"
16
24
  },
@@ -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 CommonCalculatorProps {
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 { Checkbox } from '../../ui-kit/Checkbox/Checkbox';
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 { renderRegistrationType } from './renderRegistrationType';
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: string,
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
 
@@ -1,4 +1,4 @@
1
1
  /**
2
- * @title Выберите блок
2
+ * @title Не выбрано
3
3
  */
4
4
  export type EmptyOption = null;