@redneckz/wildless-cms-uni-blocks 0.6.34 → 0.6.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/bundle.umd.js +55 -20
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Calculator/constants.d.ts +3 -0
- package/bundle/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/bundle/services/sitemap/SitemapProps.d.ts +1 -2
- package/dist/components/Calculator/DepositCalculatorForm.js +13 -11
- package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/dist/components/Calculator/constants.d.ts +3 -0
- package/dist/components/Calculator/constants.js +10 -1
- package/dist/components/Calculator/constants.js.map +1 -1
- package/dist/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/dist/components/Calculator/useDepositCalculatorParams.js +28 -0
- package/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -0
- package/dist/components/Header/Header.js +2 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/dist/components/Header/HeaderSecondaryMenu.js +2 -2
- package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/dist/components/OtherProductsItem/OtherProductsItem.js +1 -1
- package/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
- package/dist/components/VerticalLayout/VerticalLayout.js +5 -3
- package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
- package/dist/services/sitemap/SitemapProps.d.ts +1 -2
- package/lib/components/Calculator/DepositCalculatorForm.js +14 -12
- package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/lib/components/Calculator/constants.d.ts +3 -0
- package/lib/components/Calculator/constants.js +9 -0
- package/lib/components/Calculator/constants.js.map +1 -1
- package/lib/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/lib/components/Calculator/useDepositCalculatorParams.js +25 -0
- package/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -0
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/lib/components/Header/HeaderSecondaryMenu.js +2 -2
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/lib/components/OtherProductsItem/OtherProductsItem.js +1 -1
- package/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
- package/lib/components/VerticalLayout/VerticalLayout.js +5 -3
- package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
- package/lib/services/sitemap/SitemapProps.d.ts +1 -2
- package/mobile/bundle/bundle.umd.js +1 -1
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Calculator/constants.d.ts +3 -0
- package/mobile/bundle/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/mobile/bundle/services/sitemap/SitemapProps.d.ts +1 -2
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js +13 -11
- package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/dist/components/Calculator/constants.d.ts +3 -0
- package/mobile/dist/components/Calculator/constants.js +10 -1
- package/mobile/dist/components/Calculator/constants.js.map +1 -1
- package/mobile/dist/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/mobile/dist/components/Calculator/useDepositCalculatorParams.js +28 -0
- package/mobile/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -0
- package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js +2 -2
- package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js +1 -1
- package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
- package/mobile/dist/components/VerticalLayout/VerticalLayout.js +5 -3
- package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
- package/mobile/dist/services/sitemap/SitemapProps.d.ts +1 -2
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js +14 -12
- package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
- package/mobile/lib/components/Calculator/constants.d.ts +3 -0
- package/mobile/lib/components/Calculator/constants.js +9 -0
- package/mobile/lib/components/Calculator/constants.js.map +1 -1
- package/mobile/lib/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
- package/mobile/lib/components/Calculator/useDepositCalculatorParams.js +25 -0
- package/mobile/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -0
- package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -0
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js +2 -2
- package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js +1 -1
- package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
- package/mobile/lib/components/VerticalLayout/VerticalLayout.js +5 -3
- package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
- package/mobile/lib/services/sitemap/SitemapProps.d.ts +1 -2
- package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +17 -22
- package/mobile/src/components/Calculator/constants.ts +11 -0
- package/mobile/src/components/Calculator/useDepositCalculatorParams.ts +64 -0
- package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +12 -9
- package/mobile/src/components/OtherProductsItem/OtherProductsItem.tsx +1 -1
- package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +5 -3
- package/mobile/src/services/sitemap/SitemapProps.ts +1 -2
- package/package.json +1 -1
- package/src/components/Calculator/Calculator.fixture.tsx +0 -5
- package/src/components/Calculator/DepositCalculatorForm.tsx +17 -22
- package/src/components/Calculator/constants.ts +11 -0
- package/src/components/Calculator/useDepositCalculatorParams.ts +64 -0
- package/src/components/Header/Header.tsx +2 -1
- package/src/components/Header/HeaderSecondaryMenu.tsx +12 -9
- package/src/components/OtherProductsItem/OtherProductsItem.tsx +1 -1
- package/src/components/VerticalLayout/VerticalLayout.tsx +5 -3
- package/src/services/sitemap/SitemapProps.ts +1 -2
|
@@ -18,8 +18,8 @@ const LINKS_ICON_VERSION_MAP = {
|
|
|
18
18
|
'bg-white': 'black',
|
|
19
19
|
transparent: 'white',
|
|
20
20
|
};
|
|
21
|
-
exports.HeaderSecondaryMenu = (0, uni_jsx_1.JSX)(({ className, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
21
|
+
exports.HeaderSecondaryMenu = (0, uni_jsx_1.JSX)(({ className, officesLink, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
22
22
|
const [city, getCity] = (0, useGeolocation_1.useGeolocation)(defaultLocation);
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: `flex items-center ${className || ''}`, children: [(0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), (0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { className: "mr-7", flat: true, href:
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `flex items-center ${className || ''}`, children: [(0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), officesLink ? ((0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { className: "mr-7", flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432", bgColor: bgColor })) : null, (0, jsx_runtime_1.jsx)(HeaderSecondaryMenuButton_1.HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: (0, jsx_runtime_1.jsx)(Img_1.Img, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0 pointer-events-none", asSVG: true }) }), (0, jsx_runtime_1.jsx)(HeaderSecondaryMenuButton_1.HeaderSecondaryMenuButton, { className: `${LINKS_COLORS_MAP[bgColor]} group min-w-[32px] min-h-[32px]`, ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: (0, jsx_runtime_1.jsx)(Img_1.Img, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider/20 rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0", asSVG: true }) })] }));
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=HeaderSecondaryMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,+DAA4D;AAG5D,8CAA2C;AAC3C,0DAAuD;AACvD,2EAAwE;
|
|
1
|
+
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,+DAA4D;AAG5D,8CAA2C;AAC3C,0DAAuD;AACvD,2EAAwE;AAYxE,MAAM,UAAU,GAAmC;IACjD,UAAU,EAAE,2CAA2C;IACvD,WAAW,EAAE,YAAY;CAC1B,CAAC;AACF,MAAM,gBAAgB,GAAmC;IACvD,UAAU,EAAE,iDAAiD;IAC7D,WAAW,EAAE,YAAY;CAC1B,CAAC;AACF,MAAM,sBAAsB,GAAwC;IAClE,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,OAAO;CACrB,CAAC;AAEW,QAAA,mBAAmB,GAAG,IAAA,aAAG,EACpC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,GAAG,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE;IAC/E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,+BAAc,EAAC,eAAe,CAAC,CAAC;IAExD,OAAO,CACL,iCAAK,SAAS,EAAE,qBAAqB,SAAS,IAAI,EAAE,EAAE,aACpD,uBAAC,iBAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,sFAAgB,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAChB,EACD,WAAW,CAAC,CAAC,CAAC,CACb,uBAAC,iBAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,WAAW,EACjB,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,EACrD,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,qDAAyB,IACxB,SAAS,EAAE,cAAc,UAAU,CAAC,OAAO,CAAC,EAAE,EAC9C,SAAS,EAAC,4EAAgB,YAE1B,uBAAC,SAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAC1E,SAAS,EAAC,4BAA4B,EACtC,cAAc,EAAC,yEAAyE,EACxF,KAAK,SACL,GACwB,EAC5B,uBAAC,qDAAyB,IACxB,SAAS,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,EACzE,SAAS,EAAC,2HAAuB,YAEjC,uBAAC,SAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EACzE,SAAS,EAAC,4DAA4D,EACtE,cAAc,EAAC,qDAAqD,EACpE,KAAK,SACL,GACwB,IACxB,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -10,7 +10,7 @@ const FoldableSection_1 = require("../../ui-kit/Foldable/FoldableSection");
|
|
|
10
10
|
const icons = ['ArrowDownIcon', 'ArrowUpIcon'];
|
|
11
11
|
exports.OtherProductsItem = (0, uni_jsx_1.JSX)(({ className, label = '', isUnfolded: unfoldedByDefault, ...rest }) => {
|
|
12
12
|
const { colorPalette } = (0, getParentBlockContent_1.getParentBlockContent)(rest.options, {});
|
|
13
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: (0, jsx_runtime_1.jsx)(Foldable_1.Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => ((0, jsx_runtime_1.jsx)("div", { className: "box-border", children: (0, jsx_runtime_1.jsx)(FoldableSection_1.FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: (0, renderChildren_1.renderChildren)(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => ((0, jsx_runtime_1.jsx)(DefaultFoldButton_1.DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette
|
|
13
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: (0, jsx_runtime_1.jsx)(Foldable_1.Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => ((0, jsx_runtime_1.jsx)("div", { className: "box-border", children: (0, jsx_runtime_1.jsx)(FoldableSection_1.FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: (0, renderChildren_1.renderChildren)(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => ((0, jsx_runtime_1.jsx)(DefaultFoldButton_1.DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: colorPalette || rest.options?.page?.colorPalette, onClick: onToggle })) }) }));
|
|
14
14
|
});
|
|
15
15
|
exports.OtherProductsItem.childrenTypes = []; // All types of blocks are suitable
|
|
16
16
|
//# sourceMappingURL=OtherProductsItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtherProductsItem.js","sourceRoot":"","sources":["../../../src/components/OtherProductsItem/OtherProductsItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,qFAAkF;AAClF,uEAAoE;AAEpE,+EAA4E;AAC5E,6DAA0D;AAC1D,2EAAwE;AAOxE,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE9C,QAAA,iBAAiB,GAAqC,IAAA,aAAG,EACpE,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,6CAAqB,EAAC,IAAI,CAAC,OAAO,EAAE,EAA0B,CAAC,CAAC;IAEzF,OAAO,CACL,gCAAK,SAAS,EAAE,sDAAsD,SAAS,EAAE,YAC/E,uBAAC,mBAAQ,IACP,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACzC,gCAAK,SAAS,EAAC,YAAY,YACzB,uBAAC,iCAAe,IACd,SAAS,EAAC,oCAAoC,EAC9C,UAAU,EAAE,UAAU,YAErB,IAAA,+BAAc,EAAC,IAAI,CAAC,GACL,GACd,CACP,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,uBAAC,qCAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"OtherProductsItem.js","sourceRoot":"","sources":["../../../src/components/OtherProductsItem/OtherProductsItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,qFAAkF;AAClF,uEAAoE;AAEpE,+EAA4E;AAC5E,6DAA0D;AAC1D,2EAAwE;AAOxE,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE9C,QAAA,iBAAiB,GAAqC,IAAA,aAAG,EACpE,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,6CAAqB,EAAC,IAAI,CAAC,OAAO,EAAE,EAA0B,CAAC,CAAC;IAEzF,OAAO,CACL,gCAAK,SAAS,EAAE,sDAAsD,SAAS,EAAE,YAC/E,uBAAC,mBAAQ,IACP,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACzC,gCAAK,SAAS,EAAC,YAAY,YACzB,uBAAC,iCAAe,IACd,SAAS,EAAC,oCAAoC,EAC9C,UAAU,EAAE,UAAU,YAErB,IAAA,+BAAc,EAAC,IAAI,CAAC,GACL,GACd,CACP,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,uBAAC,qCAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAC3D,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,yBAAiB,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,mCAAmC"}
|
|
@@ -23,13 +23,15 @@ const backgroundStyleMap = {
|
|
|
23
23
|
primary: 'bg-white',
|
|
24
24
|
secondary: 'bg-primary-main',
|
|
25
25
|
};
|
|
26
|
-
exports.VerticalLayout = (0, uni_jsx_1.JSX)(({ className = '', gap = '', align
|
|
26
|
+
exports.VerticalLayout = (0, uni_jsx_1.JSX)(({ className = '', gap = '', align, version = 'transparent', ...rest }) => ((0, jsx_runtime_1.jsx)(BlockWrapper_1.BlockWrapper, { className: [
|
|
27
27
|
'flex flex-col',
|
|
28
28
|
gapStyleMap[gap],
|
|
29
|
-
alignStyle[align],
|
|
29
|
+
align && alignStyle[align],
|
|
30
30
|
backgroundStyleMap[version],
|
|
31
31
|
className,
|
|
32
|
-
]
|
|
32
|
+
]
|
|
33
|
+
.filter(Boolean)
|
|
34
|
+
.join(' '), ...rest, children: (0, renderChildren_1.renderChildren)(rest) })));
|
|
33
35
|
exports.VerticalLayout.childrenTypes = {
|
|
34
36
|
exclude: ['VerticalLayout'],
|
|
35
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalLayout.js","sourceRoot":"","sources":["../../../src/components/VerticalLayout/VerticalLayout.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uEAAoE;AAIpE,4DAAyD;AAKzD,MAAM,UAAU,GAA8B;IAC5C,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,WAAW,GAA+B;IAC9C,GAAG,EAAE,QAAQ;IACb,EAAE,EAAE,OAAO;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,kBAAkB,GAAgD;IACtE,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEW,QAAA,cAAc,GAAkC,IAAA,aAAG,EAC9D,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"VerticalLayout.js","sourceRoot":"","sources":["../../../src/components/VerticalLayout/VerticalLayout.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uEAAoE;AAIpE,4DAAyD;AAKzD,MAAM,UAAU,GAA8B;IAC5C,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,WAAW,GAA+B;IAC9C,GAAG,EAAE,QAAQ;IACb,EAAE,EAAE,OAAO;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,kBAAkB,GAAgD;IACtE,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEW,QAAA,cAAc,GAAkC,IAAA,aAAG,EAC9D,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CACzE,uBAAC,2BAAY,IACX,SAAS,EAAE;QACT,eAAe;QACf,WAAW,CAAC,GAAG,CAAC;QAChB,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC1B,kBAAkB,CAAC,OAAO,CAAC;QAC3B,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,KACR,IAAI,YAEP,IAAA,+BAAc,EAAC,IAAI,CAAC,GACR,CAChB,CACF,CAAC;AAEF,sBAAc,CAAC,aAAa,GAAG;IAC7B,OAAO,EAAE,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}
|
|
@@ -17,13 +17,12 @@ export interface DispositionItem extends LinkProps {
|
|
|
17
17
|
icon?: Picture;
|
|
18
18
|
}
|
|
19
19
|
export interface SitemapDataProps {
|
|
20
|
-
/** @title Основное меню */
|
|
21
20
|
topItems?: TopMenuItem[];
|
|
22
|
-
/** @title Дополнительное меню */
|
|
23
21
|
dispositions?: DispositionItem[];
|
|
24
22
|
logo?: {
|
|
25
23
|
image?: Picture;
|
|
26
24
|
title?: string;
|
|
27
25
|
};
|
|
28
26
|
defaultLocation?: string;
|
|
27
|
+
officesLink?: string;
|
|
29
28
|
}
|
|
@@ -4,12 +4,13 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
4
4
|
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
5
5
|
import { RadioButtonGroup } from '../../ui-kit/RadioButtonGroup/RadioButtonGroup.js';
|
|
6
6
|
import { CalculatorValueBlock } from './CalculatorValueBlock.js';
|
|
7
|
-
import {
|
|
7
|
+
import { DEFAULT_MONTHS, DEFAULT_SUM } from './constants.js';
|
|
8
8
|
import { Rate } from './Rate.js';
|
|
9
9
|
import { renderButtonSection } from './renderButtonSection.js';
|
|
10
10
|
import { renderFootnote } from './renderFootnote.js';
|
|
11
11
|
import { renderMonthsInput } from './renderMonthsInput.js';
|
|
12
12
|
import { renderWantedSumInput } from './renderWantedSumInput.js';
|
|
13
|
+
import { useDepositCalculatorParams } from './useDepositCalculatorParams.js';
|
|
13
14
|
const EVERY_MONTH = 'everyMonth';
|
|
14
15
|
const AT_END_TERM = 'atEndTerm';
|
|
15
16
|
const depositTypeItems = [
|
|
@@ -22,20 +23,21 @@ const depositTypeItems = [
|
|
|
22
23
|
text: 'В конце срока',
|
|
23
24
|
},
|
|
24
25
|
];
|
|
25
|
-
export const DepositCalculatorForm = JSX(({ className = '',
|
|
26
|
+
export const DepositCalculatorForm = JSX(({ className = '', sourceBookDir, buttons, footnote }) => {
|
|
26
27
|
const [moneyValue, setMoneyValue] = useState(DEFAULT_SUM);
|
|
27
28
|
const [monthsValue, setMonthsValue] = useState(DEFAULT_MONTHS);
|
|
28
|
-
const [
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const [isMonthlyInterestPayment, toggleIsMonthlyInterestPayment] = useState(false);
|
|
30
|
+
const userInputParams = {
|
|
31
|
+
moneyValue,
|
|
32
|
+
monthsValue,
|
|
33
|
+
isMonthlyInterestPayment,
|
|
34
|
+
};
|
|
35
|
+
const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir);
|
|
36
|
+
const { income, finalSum, rate } = calculatorParams;
|
|
31
37
|
return (_jsxs("section", { className: className, children: [_jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput('Сумма вклада, ₽', {
|
|
32
|
-
|
|
33
|
-
minSum: DEFAULT_MIN_SUM,
|
|
34
|
-
maxSum: DEFAULT_MAX_SUM,
|
|
38
|
+
...calculatorParams,
|
|
35
39
|
}, setMoneyValue), renderMonthsInput('Срок вклада, месяцев', {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
monthsValue,
|
|
39
|
-
}, setMonthsValue)] }), _jsx(Rate, { rate: rate || 1, rateBlockClassName: "tracking-[-25px]", unit: "%" }), _jsxs("div", { className: "w-full max-w-[350px]", children: [income ? (_jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u043F\u043E \u0432\u043A\u043B\u0430\u0434\u0443", value: income, postfix: "\u20BD", prefix: "+" })) : null, finallySum ? (_jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finallySum, postfix: "\u20BD" })) : null, _jsx(RadioButtonGroup, { items: depositTypeItems, checkedItem: isEveryMonth ? EVERY_MONTH : AT_END_TERM, onChange: (text) => toggleIsEveryMonth(text === EVERY_MONTH) }), renderButtonSection(buttons), renderFootnote(footnote)] })] }));
|
|
40
|
+
...calculatorParams,
|
|
41
|
+
}, setMonthsValue)] }), _jsx(Rate, { rate: rate || 1, rateBlockClassName: "tracking-[-25px]", unit: "%" }), _jsxs("div", { className: "w-full max-w-[350px]", children: [income ? (_jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u043F\u043E \u0432\u043A\u043B\u0430\u0434\u0443", value: income, postfix: "\u20BD", prefix: "+" })) : null, finalSum ? (_jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" })) : null, _jsx(RadioButtonGroup, { items: depositTypeItems, checkedItem: isMonthlyInterestPayment ? EVERY_MONTH : AT_END_TERM, onChange: (text) => toggleIsMonthlyInterestPayment(text === EVERY_MONTH) }), renderButtonSection(buttons), renderFootnote(footnote)] })] }));
|
|
40
42
|
});
|
|
41
43
|
//# sourceMappingURL=DepositCalculatorForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/DepositCalculatorForm.tsx"],"names":[],"mappings":";AAAA,OAAO;AAEP,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"DepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/DepositCalculatorForm.tsx"],"names":[],"mappings":";AAAA,OAAO;AAEP,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAM1E,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,MAAM,gBAAgB,GAAG;IACvB;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,YAAY;KACnB;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,eAAe;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CACtC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG;QACtB,UAAU;QACV,WAAW;QACX,wBAAwB;KACzB,CAAC;IAEF,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;IAEpD,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,aAC3B,eAAK,SAAS,EAAC,WAAW,aACvB,oBAAoB,CACnB,iBAAiB,EACjB;wBACE,GAAG,gBAAgB;qBACpB,EACD,aAAa,CACd,EACA,iBAAiB,CAChB,sBAAsB,EACtB;wBACE,GAAG,gBAAgB;qBACpB,EACD,cAAc,CACf,IACG,EACN,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,kBAAkB,EAAC,kBAAkB,EAAC,IAAI,EAAC,GAAG,GAAG,EACxE,eAAK,SAAS,EAAC,sBAAsB,aAClC,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,oBAAoB,IAAC,KAAK,EAAC,kFAAiB,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAC,QAAG,EAAC,MAAM,EAAC,GAAG,GAAG,CACvF,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,oBAAoB,IAAC,KAAK,EAAC,qGAAqB,EAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAC,QAAG,GAAG,CAClF,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,gBAAgB,IACf,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EACjE,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,KAAK,WAAW,CAAC,GAChF,EACD,mBAAmB,CAAC,OAAO,CAAC,EAC5B,cAAc,CAAC,QAAQ,CAAC,IACrB,IACE,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BonusCalculatorSourceBookParams } from './useBonusCalculatorParams';
|
|
2
2
|
import { CreditCalculatorSourceBookParams } from './useCreditCalculatorParams';
|
|
3
|
+
import { DepositCalculatorSourceBookParams } from './useDepositCalculatorParams';
|
|
3
4
|
export declare const DEFAULT_MIN_SUM = 60000;
|
|
4
5
|
export declare const DEFAULT_MAX_SUM = 2000000;
|
|
5
6
|
export declare const DEFAULT_SUM: number;
|
|
@@ -12,5 +13,7 @@ export declare const DEFAULT_CREDIT_CALCULATOR_PARAMS: CreditCalculatorSourceBoo
|
|
|
12
13
|
export declare const DEFAULT_TRAVEL_MIN_SUM = 6000;
|
|
13
14
|
export declare const DEFAULT_REST_MIN_SUM = 6000;
|
|
14
15
|
export declare const DEFAULT_BONUS_CALCULATOR_PARAMS: BonusCalculatorSourceBookParams;
|
|
16
|
+
export declare const DEFAULT_DEPOSIT_CALCULATOR_PARAMS: DepositCalculatorSourceBookParams;
|
|
15
17
|
export declare const CREDIT_CALC_DEFAULT_DIR = "credit-calculator-data";
|
|
16
18
|
export declare const BONUS_CALC_DEFAULT_DIR = "bonus-calculator-data";
|
|
19
|
+
export declare const DEPOSIT_CALC_DEFAULT_DIR = "deposit-calculator-data";
|
|
@@ -32,6 +32,15 @@ export const DEFAULT_BONUS_CALCULATOR_PARAMS = {
|
|
|
32
32
|
travelBonusRate: 0.015,
|
|
33
33
|
restBonusRate: 0.01,
|
|
34
34
|
};
|
|
35
|
+
export const DEFAULT_DEPOSIT_CALCULATOR_PARAMS = {
|
|
36
|
+
minSum: 50000,
|
|
37
|
+
maxSum: 5000000,
|
|
38
|
+
minMonths: 2,
|
|
39
|
+
maxMonths: 120,
|
|
40
|
+
rate: 5.9,
|
|
41
|
+
isMonthlyInterestPayment: true,
|
|
42
|
+
};
|
|
35
43
|
export const CREDIT_CALC_DEFAULT_DIR = 'credit-calculator-data';
|
|
36
44
|
export const BONUS_CALC_DEFAULT_DIR = 'bonus-calculator-data';
|
|
45
|
+
export const DEPOSIT_CALC_DEFAULT_DIR = 'deposit-calculator-data';
|
|
37
46
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/Calculator/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/Calculator/constants.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,GAAG,GAAG,CAAC;AAE1D,MAAM,CAAC,MAAM,gCAAgC,GAAqC;IAChF,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,MAAM,CAAC,MAAM,+BAA+B,GAAoC;IAC9E,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,CAAC;IAChB,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAsC;IAClF,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;IACd,IAAI,EAAE,GAAG;IACT,wBAAwB,EAAE,IAAI;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface CommonDepositParams {
|
|
2
|
+
isMonthlyInterestPayment: boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface DepositCalculatorSourceBookParams extends CommonDepositParams {
|
|
5
|
+
minSum: number;
|
|
6
|
+
maxSum: number;
|
|
7
|
+
minMonths: number;
|
|
8
|
+
maxMonths: number;
|
|
9
|
+
rate: number;
|
|
10
|
+
}
|
|
11
|
+
export interface DepositCalculatorUserInputParams extends CommonDepositParams {
|
|
12
|
+
moneyValue: number;
|
|
13
|
+
monthsValue: number;
|
|
14
|
+
}
|
|
15
|
+
export interface DepositCalculatorParams extends DepositCalculatorSourceBookParams, DepositCalculatorUserInputParams {
|
|
16
|
+
income: number;
|
|
17
|
+
finalSum: number;
|
|
18
|
+
}
|
|
19
|
+
export declare type DepositCalculatorData = {
|
|
20
|
+
rows: DepositCalculatorSourceBookParams[];
|
|
21
|
+
};
|
|
22
|
+
export declare const useDepositCalculatorParams: (userInputParams: DepositCalculatorUserInputParams, sourceBookDir?: string) => DepositCalculatorParams;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DEFAULT_DEPOSIT_CALCULATOR_PARAMS, DEPOSIT_CALC_DEFAULT_DIR } from './constants.js';
|
|
2
|
+
import { useCalculatorParams } from './useCalculatorParams.js';
|
|
3
|
+
export const useDepositCalculatorParams = (userInputParams, sourceBookDir) => {
|
|
4
|
+
const { isMonthlyInterestPayment, moneyValue } = userInputParams;
|
|
5
|
+
const data = useCalculatorParams(sourceBookDir || DEPOSIT_CALC_DEFAULT_DIR);
|
|
6
|
+
const depositCalculatorSourceBookParams = data?.rows.find((_) => isMonthlyInterestPayment === _.isMonthlyInterestPayment) ||
|
|
7
|
+
DEFAULT_DEPOSIT_CALCULATOR_PARAMS;
|
|
8
|
+
const { rate } = depositCalculatorSourceBookParams;
|
|
9
|
+
const income = getDepositIncome(rate, userInputParams);
|
|
10
|
+
const finalSum = moneyValue + income;
|
|
11
|
+
return { ...depositCalculatorSourceBookParams, ...userInputParams, income, finalSum };
|
|
12
|
+
};
|
|
13
|
+
const getDepositIncome = (rate, userInputParams) => {
|
|
14
|
+
const { isMonthlyInterestPayment, moneyValue, monthsValue } = userInputParams;
|
|
15
|
+
if (isMonthlyInterestPayment) {
|
|
16
|
+
return Math.round(moneyValue * Math.pow((1200 + rate) / 1200, monthsValue) - moneyValue);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
/*
|
|
20
|
+
Приблизительный расчёт, не учитывающий разницу в количестве дней в месяцах. Месяц принят за 30 дней, год за 365 дней.
|
|
21
|
+
*/
|
|
22
|
+
return Math.round((moneyValue * rate * 30 * monthsValue) / 365 / 100);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=useDepositCalculatorParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDepositCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/Calculator/useDepositCalculatorParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA6B5D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,eAAiD,EACjD,aAAsB,EACG,EAAE;IAC3B,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;IAEjE,MAAM,IAAI,GAAG,mBAAmB,CAC9B,aAAa,IAAI,wBAAwB,CAC1C,CAAC;IAEF,MAAM,iCAAiC,GACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,KAAK,CAAC,CAAC,wBAAwB,CAAC;QAC/E,iCAAiC,CAAC;IAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,iCAAiC,CAAC;IAEnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAErC,OAAO,EAAE,GAAG,iCAAiC,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,eAAiD,EAAE,EAAE;IAC3F,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC;IAE9E,IAAI,wBAAwB,EAAE;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC;KAC1F;SAAM;QACL;;UAEE;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;KACvE;AACH,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
2
2
|
interface HeaderSecondaryMenuContent {
|
|
3
3
|
defaultLocation?: string;
|
|
4
|
+
officesLink?: string;
|
|
4
5
|
bgColor?: BgColorVersion;
|
|
5
6
|
}
|
|
6
7
|
export interface HeaderSecondaryMenuProps extends HeaderSecondaryMenuContent {
|
|
@@ -16,8 +16,8 @@ const LINKS_ICON_VERSION_MAP = {
|
|
|
16
16
|
'bg-white': 'black',
|
|
17
17
|
transparent: 'white',
|
|
18
18
|
};
|
|
19
|
-
export const HeaderSecondaryMenu = JSX(({ className, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
19
|
+
export const HeaderSecondaryMenu = JSX(({ className, officesLink, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
20
20
|
const [city, getCity] = useGeolocation(defaultLocation);
|
|
21
|
-
return (_jsxs("div", { className: `flex items-center ${className || ''}`, children: [_jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), _jsx(TopItem, { className: "mr-7", flat: true, href:
|
|
21
|
+
return (_jsxs("div", { className: `flex items-center ${className || ''}`, children: [_jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), officesLink ? (_jsx(TopItem, { className: "mr-7", flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432", bgColor: bgColor })) : null, _jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: _jsx(Img, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0 pointer-events-none", asSVG: true }) }), _jsx(HeaderSecondaryMenuButton, { className: `${LINKS_COLORS_MAP[bgColor]} group min-w-[32px] min-h-[32px]`, ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: _jsx(Img, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider/20 rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0", asSVG: true }) })] }));
|
|
22
22
|
});
|
|
23
23
|
//# sourceMappingURL=HeaderSecondaryMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAYxE,MAAM,UAAU,GAAmC;IACjD,UAAU,EAAE,2CAA2C;IACvD,WAAW,EAAE,YAAY;CAC1B,CAAC;AACF,MAAM,gBAAgB,GAAmC;IACvD,UAAU,EAAE,iDAAiD;IAC7D,WAAW,EAAE,YAAY;CAC1B,CAAC;AACF,MAAM,sBAAsB,GAAwC;IAClE,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,OAAO;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,GAAG,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE;IAC/E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAExD,OAAO,CACL,eAAK,SAAS,EAAE,qBAAqB,SAAS,IAAI,EAAE,EAAE,aACpD,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,sFAAgB,EAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAChB,EACD,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,WAAW,EACjB,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,EACrD,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,yBAAyB,IACxB,SAAS,EAAE,cAAc,UAAU,CAAC,OAAO,CAAC,EAAE,EAC9C,SAAS,EAAC,4EAAgB,YAE1B,KAAC,GAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAC1E,SAAS,EAAC,4BAA4B,EACtC,cAAc,EAAC,yEAAyE,EACxF,KAAK,SACL,GACwB,EAC5B,KAAC,yBAAyB,IACxB,SAAS,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,EACzE,SAAS,EAAC,2HAAuB,YAEjC,KAAC,GAAG,IACF,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EACzE,SAAS,EAAC,4DAA4D,EACtE,cAAc,EAAC,qDAAqD,EACpE,KAAK,SACL,GACwB,IACxB,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { FoldableSection } from '../../ui-kit/Foldable/FoldableSection.js';
|
|
|
8
8
|
const icons = ['ArrowDownIcon', 'ArrowUpIcon'];
|
|
9
9
|
export const OtherProductsItem = JSX(({ className, label = '', isUnfolded: unfoldedByDefault, ...rest }) => {
|
|
10
10
|
const { colorPalette } = getParentBlockContent(rest.options, {});
|
|
11
|
-
return (_jsx("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: _jsx(Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => (_jsx("div", { className: "box-border", children: _jsx(FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: renderChildren(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => (_jsx(DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette
|
|
11
|
+
return (_jsx("div", { className: `border-0 border-b border-solid border-main-divider ${className}`, children: _jsx(Foldable, { unfoldedByDefault: unfoldedByDefault, renderFoldableSection: ({ isUnfolded }) => (_jsx("div", { className: "box-border", children: _jsx(FoldableSection, { className: "grid grid-cols-12 gap-1 border-box", isUnfolded: isUnfolded, children: renderChildren(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => (_jsx(DefaultFoldButton, { label: label, icon: icons[Number(isUnfolded)], dataTheme: colorPalette || rest.options?.page?.colorPalette, onClick: onToggle })) }) }));
|
|
12
12
|
});
|
|
13
13
|
OtherProductsItem.childrenTypes = []; // All types of blocks are suitable
|
|
14
14
|
//# sourceMappingURL=OtherProductsItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtherProductsItem.js","sourceRoot":"","sources":["../../../src/components/OtherProductsItem/OtherProductsItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAOxE,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAqC,GAAG,CACpE,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAA0B,CAAC,CAAC;IAEzF,OAAO,CACL,cAAK,SAAS,EAAE,sDAAsD,SAAS,EAAE,YAC/E,KAAC,QAAQ,IACP,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACzC,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,eAAe,IACd,SAAS,EAAC,oCAAoC,EAC9C,UAAU,EAAE,UAAU,YAErB,cAAc,CAAC,IAAI,CAAC,GACL,GACd,CACP,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"OtherProductsItem.js","sourceRoot":"","sources":["../../../src/components/OtherProductsItem/OtherProductsItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAOxE,MAAM,KAAK,GAAe,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAqC,GAAG,CACpE,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAA0B,CAAC,CAAC;IAEzF,OAAO,CACL,cAAK,SAAS,EAAE,sDAAsD,SAAS,EAAE,YAC/E,KAAC,QAAQ,IACP,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACzC,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,eAAe,IACd,SAAS,EAAC,oCAAoC,EAC9C,UAAU,EAAE,UAAU,YAErB,cAAc,CAAC,IAAI,CAAC,GACL,GACd,CACP,EACD,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC9C,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAC/B,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAC3D,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iBAAiB,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,mCAAmC"}
|
|
@@ -21,13 +21,15 @@ const backgroundStyleMap = {
|
|
|
21
21
|
primary: 'bg-white',
|
|
22
22
|
secondary: 'bg-primary-main',
|
|
23
23
|
};
|
|
24
|
-
export const VerticalLayout = JSX(({ className = '', gap = '', align
|
|
24
|
+
export const VerticalLayout = JSX(({ className = '', gap = '', align, version = 'transparent', ...rest }) => (_jsx(BlockWrapper, { className: [
|
|
25
25
|
'flex flex-col',
|
|
26
26
|
gapStyleMap[gap],
|
|
27
|
-
alignStyle[align],
|
|
27
|
+
align && alignStyle[align],
|
|
28
28
|
backgroundStyleMap[version],
|
|
29
29
|
className,
|
|
30
|
-
]
|
|
30
|
+
]
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.join(' '), ...rest, children: renderChildren(rest) })));
|
|
31
33
|
VerticalLayout.childrenTypes = {
|
|
32
34
|
exclude: ['VerticalLayout'],
|
|
33
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalLayout.js","sourceRoot":"","sources":["../../../src/components/VerticalLayout/VerticalLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,MAAM,UAAU,GAA8B;IAC5C,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,WAAW,GAA+B;IAC9C,GAAG,EAAE,QAAQ;IACb,EAAE,EAAE,OAAO;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,kBAAkB,GAAgD;IACtE,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkC,GAAG,CAC9D,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"VerticalLayout.js","sourceRoot":"","sources":["../../../src/components/VerticalLayout/VerticalLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,MAAM,UAAU,GAA8B;IAC5C,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,WAAW,GAA+B;IAC9C,GAAG,EAAE,QAAQ;IACb,EAAE,EAAE,OAAO;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,kBAAkB,GAAgD;IACtE,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkC,GAAG,CAC9D,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CACzE,KAAC,YAAY,IACX,SAAS,EAAE;QACT,eAAe;QACf,WAAW,CAAC,GAAG,CAAC;QAChB,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC1B,kBAAkB,CAAC,OAAO,CAAC;QAC3B,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,KACR,IAAI,YAEP,cAAc,CAAC,IAAI,CAAC,GACR,CAChB,CACF,CAAC;AAEF,cAAc,CAAC,aAAa,GAAG;IAC7B,OAAO,EAAE,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}
|
|
@@ -17,13 +17,12 @@ export interface DispositionItem extends LinkProps {
|
|
|
17
17
|
icon?: Picture;
|
|
18
18
|
}
|
|
19
19
|
export interface SitemapDataProps {
|
|
20
|
-
/** @title Основное меню */
|
|
21
20
|
topItems?: TopMenuItem[];
|
|
22
|
-
/** @title Дополнительное меню */
|
|
23
21
|
dispositions?: DispositionItem[];
|
|
24
22
|
logo?: {
|
|
25
23
|
image?: Picture;
|
|
26
24
|
title?: string;
|
|
27
25
|
};
|
|
28
26
|
defaultLocation?: string;
|
|
27
|
+
officesLink?: string;
|
|
29
28
|
}
|
|
@@ -5,19 +5,13 @@ import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
|
5
5
|
import { RadioButtonGroup } from '../../ui-kit/RadioButtonGroup/RadioButtonGroup';
|
|
6
6
|
import { CommonCalculatorProps, DepositCalculatorParams } from './CalculatorContent';
|
|
7
7
|
import { CalculatorValueBlock } from './CalculatorValueBlock';
|
|
8
|
-
import {
|
|
9
|
-
DEFAULT_MAX_MONTHS,
|
|
10
|
-
DEFAULT_MAX_SUM,
|
|
11
|
-
DEFAULT_MIN_MONTHS,
|
|
12
|
-
DEFAULT_MIN_SUM,
|
|
13
|
-
DEFAULT_MONTHS,
|
|
14
|
-
DEFAULT_SUM,
|
|
15
|
-
} from './constants';
|
|
8
|
+
import { DEFAULT_MONTHS, DEFAULT_SUM } from './constants';
|
|
16
9
|
import { Rate } from './Rate';
|
|
17
10
|
import { renderButtonSection } from './renderButtonSection';
|
|
18
11
|
import { renderFootnote } from './renderFootnote';
|
|
19
12
|
import { renderMonthsInput } from './renderMonthsInput';
|
|
20
13
|
import { renderWantedSumInput } from './renderWantedSumInput';
|
|
14
|
+
import { useDepositCalculatorParams } from './useDepositCalculatorParams';
|
|
21
15
|
|
|
22
16
|
export interface DepositCalculatorProp extends DepositCalculatorParams, CommonCalculatorProps {
|
|
23
17
|
className?: string;
|
|
@@ -38,13 +32,18 @@ const depositTypeItems = [
|
|
|
38
32
|
];
|
|
39
33
|
|
|
40
34
|
export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
|
|
41
|
-
({ className = '',
|
|
35
|
+
({ className = '', sourceBookDir, buttons, footnote }) => {
|
|
42
36
|
const [moneyValue, setMoneyValue] = useState(DEFAULT_SUM);
|
|
43
37
|
const [monthsValue, setMonthsValue] = useState(DEFAULT_MONTHS);
|
|
44
|
-
const [
|
|
38
|
+
const [isMonthlyInterestPayment, toggleIsMonthlyInterestPayment] = useState(false);
|
|
39
|
+
const userInputParams = {
|
|
40
|
+
moneyValue,
|
|
41
|
+
monthsValue,
|
|
42
|
+
isMonthlyInterestPayment,
|
|
43
|
+
};
|
|
45
44
|
|
|
46
|
-
const
|
|
47
|
-
const
|
|
45
|
+
const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir);
|
|
46
|
+
const { income, finalSum, rate } = calculatorParams;
|
|
48
47
|
|
|
49
48
|
return (
|
|
50
49
|
<section className={className}>
|
|
@@ -52,18 +51,14 @@ export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
|
|
|
52
51
|
{renderWantedSumInput(
|
|
53
52
|
'Сумма вклада, ₽',
|
|
54
53
|
{
|
|
55
|
-
|
|
56
|
-
minSum: DEFAULT_MIN_SUM,
|
|
57
|
-
maxSum: DEFAULT_MAX_SUM,
|
|
54
|
+
...calculatorParams,
|
|
58
55
|
},
|
|
59
56
|
setMoneyValue,
|
|
60
57
|
)}
|
|
61
58
|
{renderMonthsInput(
|
|
62
59
|
'Срок вклада, месяцев',
|
|
63
60
|
{
|
|
64
|
-
|
|
65
|
-
maxMonths: DEFAULT_MAX_MONTHS,
|
|
66
|
-
monthsValue,
|
|
61
|
+
...calculatorParams,
|
|
67
62
|
},
|
|
68
63
|
setMonthsValue,
|
|
69
64
|
)}
|
|
@@ -73,13 +68,13 @@ export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
|
|
|
73
68
|
{income ? (
|
|
74
69
|
<CalculatorValueBlock title="Доход по вкладу" value={income} postfix="₽" prefix="+" />
|
|
75
70
|
) : null}
|
|
76
|
-
{
|
|
77
|
-
<CalculatorValueBlock title="Сумма в конце срока" value={
|
|
71
|
+
{finalSum ? (
|
|
72
|
+
<CalculatorValueBlock title="Сумма в конце срока" value={finalSum} postfix="₽" />
|
|
78
73
|
) : null}
|
|
79
74
|
<RadioButtonGroup
|
|
80
75
|
items={depositTypeItems}
|
|
81
|
-
checkedItem={
|
|
82
|
-
onChange={(text: string) =>
|
|
76
|
+
checkedItem={isMonthlyInterestPayment ? EVERY_MONTH : AT_END_TERM}
|
|
77
|
+
onChange={(text: string) => toggleIsMonthlyInterestPayment(text === EVERY_MONTH)}
|
|
83
78
|
/>
|
|
84
79
|
{renderButtonSection(buttons)}
|
|
85
80
|
{renderFootnote(footnote)}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BonusCalculatorSourceBookParams } from './useBonusCalculatorParams';
|
|
2
2
|
import { CreditCalculatorSourceBookParams } from './useCreditCalculatorParams';
|
|
3
|
+
import { DepositCalculatorSourceBookParams } from './useDepositCalculatorParams';
|
|
3
4
|
|
|
4
5
|
export const DEFAULT_MIN_SUM = 60000;
|
|
5
6
|
export const DEFAULT_MAX_SUM = 2000000;
|
|
@@ -41,5 +42,15 @@ export const DEFAULT_BONUS_CALCULATOR_PARAMS: BonusCalculatorSourceBookParams =
|
|
|
41
42
|
restBonusRate: 0.01,
|
|
42
43
|
};
|
|
43
44
|
|
|
45
|
+
export const DEFAULT_DEPOSIT_CALCULATOR_PARAMS: DepositCalculatorSourceBookParams = {
|
|
46
|
+
minSum: 50000,
|
|
47
|
+
maxSum: 5000000,
|
|
48
|
+
minMonths: 2,
|
|
49
|
+
maxMonths: 120,
|
|
50
|
+
rate: 5.9,
|
|
51
|
+
isMonthlyInterestPayment: true,
|
|
52
|
+
};
|
|
53
|
+
|
|
44
54
|
export const CREDIT_CALC_DEFAULT_DIR = 'credit-calculator-data';
|
|
45
55
|
export const BONUS_CALC_DEFAULT_DIR = 'bonus-calculator-data';
|
|
56
|
+
export const DEPOSIT_CALC_DEFAULT_DIR = 'deposit-calculator-data';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { DEFAULT_DEPOSIT_CALCULATOR_PARAMS, DEPOSIT_CALC_DEFAULT_DIR } from './constants';
|
|
2
|
+
import { useCalculatorParams } from './useCalculatorParams';
|
|
3
|
+
|
|
4
|
+
export interface CommonDepositParams {
|
|
5
|
+
isMonthlyInterestPayment: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface DepositCalculatorSourceBookParams extends CommonDepositParams {
|
|
8
|
+
minSum: number;
|
|
9
|
+
maxSum: number;
|
|
10
|
+
minMonths: number;
|
|
11
|
+
maxMonths: number;
|
|
12
|
+
rate: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface DepositCalculatorUserInputParams extends CommonDepositParams {
|
|
16
|
+
moneyValue: number;
|
|
17
|
+
monthsValue: number;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface DepositCalculatorParams
|
|
21
|
+
extends DepositCalculatorSourceBookParams,
|
|
22
|
+
DepositCalculatorUserInputParams {
|
|
23
|
+
income: number;
|
|
24
|
+
finalSum: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type DepositCalculatorData = {
|
|
28
|
+
rows: DepositCalculatorSourceBookParams[];
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const useDepositCalculatorParams = (
|
|
32
|
+
userInputParams: DepositCalculatorUserInputParams,
|
|
33
|
+
sourceBookDir?: string,
|
|
34
|
+
): DepositCalculatorParams => {
|
|
35
|
+
const { isMonthlyInterestPayment, moneyValue } = userInputParams;
|
|
36
|
+
|
|
37
|
+
const data = useCalculatorParams<DepositCalculatorData>(
|
|
38
|
+
sourceBookDir || DEPOSIT_CALC_DEFAULT_DIR,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const depositCalculatorSourceBookParams =
|
|
42
|
+
data?.rows.find((_) => isMonthlyInterestPayment === _.isMonthlyInterestPayment) ||
|
|
43
|
+
DEFAULT_DEPOSIT_CALCULATOR_PARAMS;
|
|
44
|
+
|
|
45
|
+
const { rate } = depositCalculatorSourceBookParams;
|
|
46
|
+
|
|
47
|
+
const income = getDepositIncome(rate, userInputParams);
|
|
48
|
+
const finalSum = moneyValue + income;
|
|
49
|
+
|
|
50
|
+
return { ...depositCalculatorSourceBookParams, ...userInputParams, income, finalSum };
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const getDepositIncome = (rate: number, userInputParams: DepositCalculatorUserInputParams) => {
|
|
54
|
+
const { isMonthlyInterestPayment, moneyValue, monthsValue } = userInputParams;
|
|
55
|
+
|
|
56
|
+
if (isMonthlyInterestPayment) {
|
|
57
|
+
return Math.round(moneyValue * Math.pow((1200 + rate) / 1200, monthsValue) - moneyValue);
|
|
58
|
+
} else {
|
|
59
|
+
/*
|
|
60
|
+
Приблизительный расчёт, не учитывающий разницу в количестве дней в месяцах. Месяц принят за 30 дней, год за 365 дней.
|
|
61
|
+
*/
|
|
62
|
+
return Math.round((moneyValue * rate * 30 * monthsValue) / 365 / 100);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
@@ -8,6 +8,7 @@ import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
|
|
|
8
8
|
|
|
9
9
|
interface HeaderSecondaryMenuContent {
|
|
10
10
|
defaultLocation?: string;
|
|
11
|
+
officesLink?: string;
|
|
11
12
|
bgColor?: BgColorVersion;
|
|
12
13
|
}
|
|
13
14
|
|
|
@@ -29,7 +30,7 @@ const LINKS_ICON_VERSION_MAP: Record<BgColorVersion, IconVersion> = {
|
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
32
|
-
({ className, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
33
|
+
({ className, officesLink, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
|
|
33
34
|
const [city, getCity] = useGeolocation(defaultLocation);
|
|
34
35
|
|
|
35
36
|
return (
|
|
@@ -43,14 +44,16 @@ export const HeaderSecondaryMenu = JSX<HeaderSecondaryMenuProps>(
|
|
|
43
44
|
onClick={getCity}
|
|
44
45
|
bgColor={bgColor}
|
|
45
46
|
/>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
{officesLink ? (
|
|
48
|
+
<TopItem
|
|
49
|
+
className="mr-7"
|
|
50
|
+
flat={true}
|
|
51
|
+
href={officesLink}
|
|
52
|
+
text="Офисы и банкоматы"
|
|
53
|
+
ariaLabel="Список всех доступных офисов и банкоматов"
|
|
54
|
+
bgColor={bgColor}
|
|
55
|
+
/>
|
|
56
|
+
) : null}
|
|
54
57
|
<HeaderSecondaryMenuButton
|
|
55
58
|
className={`mr-5 group ${COLORS_MAP[bgColor]}`}
|
|
56
59
|
ariaLabel="Поиск по сайту"
|
|
@@ -35,7 +35,7 @@ export const OtherProductsItem: JSXBlock<OtherProductsItemProps> = JSX<OtherProd
|
|
|
35
35
|
<DefaultFoldButton
|
|
36
36
|
label={label}
|
|
37
37
|
icon={icons[Number(isUnfolded)]}
|
|
38
|
-
dataTheme={rest.options?.page?.colorPalette
|
|
38
|
+
dataTheme={colorPalette || rest.options?.page?.colorPalette}
|
|
39
39
|
onClick={onToggle}
|
|
40
40
|
/>
|
|
41
41
|
)}
|
|
@@ -31,15 +31,17 @@ const backgroundStyleMap: Record<BlockVersionWithTransparent, string> = {
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
export const VerticalLayout: JSXBlock<VerticalLayoutProps> = JSX<VerticalLayoutProps>(
|
|
34
|
-
({ className = '', gap = '', align
|
|
34
|
+
({ className = '', gap = '', align, version = 'transparent', ...rest }) => (
|
|
35
35
|
<BlockWrapper
|
|
36
36
|
className={[
|
|
37
37
|
'flex flex-col',
|
|
38
38
|
gapStyleMap[gap],
|
|
39
|
-
alignStyle[align],
|
|
39
|
+
align && alignStyle[align],
|
|
40
40
|
backgroundStyleMap[version],
|
|
41
41
|
className,
|
|
42
|
-
]
|
|
42
|
+
]
|
|
43
|
+
.filter(Boolean)
|
|
44
|
+
.join(' ')}
|
|
43
45
|
{...rest}
|
|
44
46
|
>
|
|
45
47
|
{renderChildren(rest)}
|