@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.
Files changed (97) hide show
  1. package/bundle/bundle.umd.js +55 -20
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/components/Calculator/constants.d.ts +3 -0
  4. package/bundle/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  5. package/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  6. package/bundle/services/sitemap/SitemapProps.d.ts +1 -2
  7. package/dist/components/Calculator/DepositCalculatorForm.js +13 -11
  8. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  9. package/dist/components/Calculator/constants.d.ts +3 -0
  10. package/dist/components/Calculator/constants.js +10 -1
  11. package/dist/components/Calculator/constants.js.map +1 -1
  12. package/dist/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  13. package/dist/components/Calculator/useDepositCalculatorParams.js +28 -0
  14. package/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -0
  15. package/dist/components/Header/Header.js +2 -2
  16. package/dist/components/Header/Header.js.map +1 -1
  17. package/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  18. package/dist/components/Header/HeaderSecondaryMenu.js +2 -2
  19. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  20. package/dist/components/OtherProductsItem/OtherProductsItem.js +1 -1
  21. package/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  22. package/dist/components/VerticalLayout/VerticalLayout.js +5 -3
  23. package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  24. package/dist/services/sitemap/SitemapProps.d.ts +1 -2
  25. package/lib/components/Calculator/DepositCalculatorForm.js +14 -12
  26. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  27. package/lib/components/Calculator/constants.d.ts +3 -0
  28. package/lib/components/Calculator/constants.js +9 -0
  29. package/lib/components/Calculator/constants.js.map +1 -1
  30. package/lib/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  31. package/lib/components/Calculator/useDepositCalculatorParams.js +25 -0
  32. package/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -0
  33. package/lib/components/Header/Header.js +2 -2
  34. package/lib/components/Header/Header.js.map +1 -1
  35. package/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  36. package/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  37. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  38. package/lib/components/OtherProductsItem/OtherProductsItem.js +1 -1
  39. package/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  40. package/lib/components/VerticalLayout/VerticalLayout.js +5 -3
  41. package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  42. package/lib/services/sitemap/SitemapProps.d.ts +1 -2
  43. package/mobile/bundle/bundle.umd.js +1 -1
  44. package/mobile/bundle/bundle.umd.min.js +1 -1
  45. package/mobile/bundle/components/Calculator/constants.d.ts +3 -0
  46. package/mobile/bundle/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  47. package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  48. package/mobile/bundle/services/sitemap/SitemapProps.d.ts +1 -2
  49. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +13 -11
  50. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  51. package/mobile/dist/components/Calculator/constants.d.ts +3 -0
  52. package/mobile/dist/components/Calculator/constants.js +10 -1
  53. package/mobile/dist/components/Calculator/constants.js.map +1 -1
  54. package/mobile/dist/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  55. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js +28 -0
  56. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -0
  57. package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  58. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +2 -2
  59. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  60. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js +1 -1
  61. package/mobile/dist/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  62. package/mobile/dist/components/VerticalLayout/VerticalLayout.js +5 -3
  63. package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  64. package/mobile/dist/services/sitemap/SitemapProps.d.ts +1 -2
  65. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +14 -12
  66. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  67. package/mobile/lib/components/Calculator/constants.d.ts +3 -0
  68. package/mobile/lib/components/Calculator/constants.js +9 -0
  69. package/mobile/lib/components/Calculator/constants.js.map +1 -1
  70. package/mobile/lib/components/Calculator/useDepositCalculatorParams.d.ts +22 -0
  71. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js +25 -0
  72. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -0
  73. package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -0
  74. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +2 -2
  75. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  76. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js +1 -1
  77. package/mobile/lib/components/OtherProductsItem/OtherProductsItem.js.map +1 -1
  78. package/mobile/lib/components/VerticalLayout/VerticalLayout.js +5 -3
  79. package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  80. package/mobile/lib/services/sitemap/SitemapProps.d.ts +1 -2
  81. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +17 -22
  82. package/mobile/src/components/Calculator/constants.ts +11 -0
  83. package/mobile/src/components/Calculator/useDepositCalculatorParams.ts +64 -0
  84. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +12 -9
  85. package/mobile/src/components/OtherProductsItem/OtherProductsItem.tsx +1 -1
  86. package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +5 -3
  87. package/mobile/src/services/sitemap/SitemapProps.ts +1 -2
  88. package/package.json +1 -1
  89. package/src/components/Calculator/Calculator.fixture.tsx +0 -5
  90. package/src/components/Calculator/DepositCalculatorForm.tsx +17 -22
  91. package/src/components/Calculator/constants.ts +11 -0
  92. package/src/components/Calculator/useDepositCalculatorParams.ts +64 -0
  93. package/src/components/Header/Header.tsx +2 -1
  94. package/src/components/Header/HeaderSecondaryMenu.tsx +12 -9
  95. package/src/components/OtherProductsItem/OtherProductsItem.tsx +1 -1
  96. package/src/components/VerticalLayout/VerticalLayout.tsx +5 -3
  97. 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: "#", 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 }), (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 }) })] }));
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;AAWxE,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,eAAe,GAAG,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE;IAClE,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,EACF,uBAAC,iBAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,EACrD,OAAO,EAAE,OAAO,GAChB,EACF,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"}
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 || colorPalette, onClick: onToggle })) }) }));
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,IAAI,YAAY,EAC3D,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,yBAAiB,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,mCAAmC"}
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 = 'left', version = 'transparent', ...rest }) => ((0, jsx_runtime_1.jsx)(BlockWrapper_1.BlockWrapper, { className: [
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
- ].join(' '), ...rest, children: (0, renderChildren_1.renderChildren)(rest) })));
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,GAAG,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAClF,uBAAC,2BAAY,IACX,SAAS,EAAE;QACT,eAAe;QACf,WAAW,CAAC,GAAG,CAAC;QAChB,UAAU,CAAC,KAAK,CAAC;QACjB,kBAAkB,CAAC,OAAO,CAAC;QAC3B,SAAS;KACV,CAAC,IAAI,CAAC,GAAG,CAAC,KACP,IAAI,YAEP,IAAA,+BAAc,EAAC,IAAI,CAAC,GACR,CAChB,CACF,CAAC;AAEF,sBAAc,CAAC,aAAa,GAAG;IAC7B,OAAO,EAAE,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}
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 { DEFAULT_MAX_MONTHS, DEFAULT_MAX_SUM, DEFAULT_MIN_MONTHS, DEFAULT_MIN_SUM, DEFAULT_MONTHS, DEFAULT_SUM, } from './constants.js';
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 = '', rate, buttons, footnote }) => {
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 [isEveryMonth, toggleIsEveryMonth] = useState(false);
29
- const income = 948841;
30
- const finallySum = 1218841;
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
- moneyValue,
33
- minSum: DEFAULT_MIN_SUM,
34
- maxSum: DEFAULT_MAX_SUM,
38
+ ...calculatorParams,
35
39
  }, setMoneyValue), renderMonthsInput('Срок вклада, месяцев', {
36
- minMonths: DEFAULT_MIN_MONTHS,
37
- maxMonths: DEFAULT_MAX_MONTHS,
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":"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"}
1
+ {"version":3,"file":"DepositCalculatorForm.js","sourceRoot":"","sources":["../../../src/components/Calculator/DepositCalculatorForm.tsx"],"names":[],"mappings":"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"}
@@ -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":"AAGA,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,uBAAuB,GAAG,wBAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC"}
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: "#", 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 }), _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 }) })] }));
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;AAWxE,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,eAAe,GAAG,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE;IAClE,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,EACF,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,EACrD,OAAO,EAAE,OAAO,GAChB,EACF,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"}
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 || colorPalette, onClick: onToggle })) }) }));
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,IAAI,YAAY,EAC3D,OAAO,EAAE,QAAQ,GACjB,CACH,GACD,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iBAAiB,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,mCAAmC"}
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 = 'left', version = 'transparent', ...rest }) => (_jsx(BlockWrapper, { className: [
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
- ].join(' '), ...rest, children: renderChildren(rest) })));
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,GAAG,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAClF,KAAC,YAAY,IACX,SAAS,EAAE;QACT,eAAe;QACf,WAAW,CAAC,GAAG,CAAC;QAChB,UAAU,CAAC,KAAK,CAAC;QACjB,kBAAkB,CAAC,OAAO,CAAC;QAC3B,SAAS;KACV,CAAC,IAAI,CAAC,GAAG,CAAC,KACP,IAAI,YAEP,cAAc,CAAC,IAAI,CAAC,GACR,CAChB,CACF,CAAC;AAEF,cAAc,CAAC,aAAa,GAAG;IAC7B,OAAO,EAAE,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}
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 = '', rate, buttons, footnote }) => {
35
+ ({ className = '', sourceBookDir, buttons, footnote }) => {
42
36
  const [moneyValue, setMoneyValue] = useState(DEFAULT_SUM);
43
37
  const [monthsValue, setMonthsValue] = useState(DEFAULT_MONTHS);
44
- const [isEveryMonth, toggleIsEveryMonth] = useState(false);
38
+ const [isMonthlyInterestPayment, toggleIsMonthlyInterestPayment] = useState(false);
39
+ const userInputParams = {
40
+ moneyValue,
41
+ monthsValue,
42
+ isMonthlyInterestPayment,
43
+ };
45
44
 
46
- const income = 948841;
47
- const finallySum = 1218841;
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
- moneyValue,
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
- minMonths: DEFAULT_MIN_MONTHS,
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
- {finallySum ? (
77
- <CalculatorValueBlock title="Сумма в конце срока" value={finallySum} postfix="₽" />
71
+ {finalSum ? (
72
+ <CalculatorValueBlock title="Сумма в конце срока" value={finalSum} postfix="₽" />
78
73
  ) : null}
79
74
  <RadioButtonGroup
80
75
  items={depositTypeItems}
81
- checkedItem={isEveryMonth ? EVERY_MONTH : AT_END_TERM}
82
- onChange={(text: string) => toggleIsEveryMonth(text === EVERY_MONTH)}
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
- <TopItem
47
- className="mr-7"
48
- flat={true}
49
- href="#"
50
- text="Офисы и банкоматы"
51
- ariaLabel="Список всех доступных офисов и банкоматов"
52
- bgColor={bgColor}
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 || 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 = 'left', version = 'transparent', ...rest }) => (
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
- ].join(' ')}
42
+ ]
43
+ .filter(Boolean)
44
+ .join(' ')}
43
45
  {...rest}
44
46
  >
45
47
  {renderChildren(rest)}