@redneckz/wildless-cms-uni-blocks 0.2.77 → 0.2.81

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 (163) hide show
  1. package/bundle/blocks.schema.json +5 -82
  2. package/bundle/bundle.umd.js +35 -0
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/ProjectSettings.d.ts +1 -0
  5. package/dist/ProjectSettings.js.map +1 -1
  6. package/dist/components/Accordion/Accordion.d.ts +5 -0
  7. package/dist/components/Accordion/Accordion.js +10 -0
  8. package/dist/components/Accordion/Accordion.js.map +1 -0
  9. package/dist/components/Accordion/AccordionBlocks.d.ts +4 -0
  10. package/dist/components/Accordion/AccordionBlocks.js +7 -0
  11. package/dist/components/Accordion/AccordionBlocks.js.map +1 -0
  12. package/dist/components/Accordion/AccordionContent.d.ts +14 -0
  13. package/dist/components/Accordion/AccordionContent.js +2 -0
  14. package/dist/components/Accordion/AccordionContent.js.map +1 -0
  15. package/dist/components/Accordion/AccordionItem.d.ts +5 -0
  16. package/dist/components/Accordion/AccordionItem.js +35 -0
  17. package/dist/components/Accordion/AccordionItem.js.map +1 -0
  18. package/dist/components/Blocks.d.ts +1 -0
  19. package/dist/components/Blocks.js +2 -0
  20. package/dist/components/Blocks.js.map +1 -1
  21. package/dist/components/CreditCalculator/CreditCalculator.d.ts +2 -1
  22. package/dist/components/CreditCalculator/CreditCalculator.js +39 -15
  23. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  24. package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
  25. package/dist/components/CreditCalculator/CreditCalculatorContent.js +2 -0
  26. package/dist/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
  27. package/dist/components/CreditCalculator/constants.d.ts +7 -0
  28. package/dist/components/CreditCalculator/constants.js +10 -0
  29. package/dist/components/CreditCalculator/constants.js.map +1 -0
  30. package/dist/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
  31. package/dist/components/CreditCalculator/getCalculatorParams.js +11 -0
  32. package/dist/components/CreditCalculator/getCalculatorParams.js.map +1 -0
  33. package/dist/components/CreditCalculator/getCreditRate.d.ts +7 -0
  34. package/dist/components/CreditCalculator/getCreditRate.js +13 -0
  35. package/dist/components/CreditCalculator/getCreditRate.js.map +1 -0
  36. package/dist/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
  37. package/dist/components/CreditCalculator/getCreditTermYears.js +15 -0
  38. package/dist/components/CreditCalculator/getCreditTermYears.js.map +1 -0
  39. package/dist/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
  40. package/dist/components/CreditCalculator/getMonthlyPayment.js +19 -0
  41. package/dist/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
  42. package/dist/content-page-repository/ContentPageRepository.d.ts +3 -0
  43. package/dist/content-page-repository/ContentPageRepository.js +14 -0
  44. package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  45. package/dist/hooks/useCreditCalculatorData.d.ts +3 -0
  46. package/dist/hooks/useCreditCalculatorData.js +15 -0
  47. package/dist/hooks/useCreditCalculatorData.js.map +1 -0
  48. package/dist/ui-kit/Icon/IconProps.d.ts +4 -1
  49. package/dist/ui-kit/Icon/IconProps.js +3 -0
  50. package/dist/ui-kit/Icon/IconProps.js.map +1 -1
  51. package/dist/ui-kit/InputRange/InputRange.js +3 -2
  52. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  53. package/dist/utils/addSpacesBetweenNumbers.d.ts +1 -0
  54. package/dist/utils/addSpacesBetweenNumbers.js +5 -0
  55. package/dist/utils/addSpacesBetweenNumbers.js.map +1 -0
  56. package/lib/ProjectSettings.d.ts +1 -0
  57. package/lib/ProjectSettings.js.map +1 -1
  58. package/lib/common.css +1 -1
  59. package/lib/components/Accordion/Accordion.d.ts +5 -0
  60. package/lib/components/Accordion/Accordion.fixture.d.ts +4 -0
  61. package/lib/components/Accordion/Accordion.js +8 -0
  62. package/lib/components/Accordion/Accordion.js.map +1 -0
  63. package/lib/components/Accordion/AccordionBlocks.d.ts +4 -0
  64. package/lib/components/Accordion/AccordionBlocks.js +6 -0
  65. package/lib/components/Accordion/AccordionBlocks.js.map +1 -0
  66. package/lib/components/Accordion/AccordionContent.d.ts +14 -0
  67. package/lib/components/Accordion/AccordionContent.js +2 -0
  68. package/lib/components/Accordion/AccordionContent.js.map +1 -0
  69. package/lib/components/Accordion/AccordionItem.d.ts +5 -0
  70. package/lib/components/Accordion/AccordionItem.js +30 -0
  71. package/lib/components/Accordion/AccordionItem.js.map +1 -0
  72. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -0
  73. package/lib/components/Blocks.d.ts +1 -0
  74. package/lib/components/Blocks.js +2 -0
  75. package/lib/components/Blocks.js.map +1 -1
  76. package/lib/components/ComparisonTable/ComparisonTable.fixture.d.ts +8 -0
  77. package/lib/components/ContentPage/ContentPage.fixture.d.ts +6 -0
  78. package/lib/components/CreditCalculator/CreditCalculator.d.ts +2 -1
  79. package/lib/components/CreditCalculator/CreditCalculator.fixture.d.ts +2 -0
  80. package/lib/components/CreditCalculator/CreditCalculator.js +39 -15
  81. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  82. package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
  83. package/lib/components/CreditCalculator/CreditCalculatorContent.js +2 -0
  84. package/lib/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
  85. package/lib/components/CreditCalculator/constants.d.ts +7 -0
  86. package/lib/components/CreditCalculator/constants.js +8 -0
  87. package/lib/components/CreditCalculator/constants.js.map +1 -0
  88. package/lib/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
  89. package/lib/components/CreditCalculator/getCalculatorParams.js +8 -0
  90. package/lib/components/CreditCalculator/getCalculatorParams.js.map +1 -0
  91. package/lib/components/CreditCalculator/getCreditRate.d.ts +7 -0
  92. package/lib/components/CreditCalculator/getCreditRate.js +10 -0
  93. package/lib/components/CreditCalculator/getCreditRate.js.map +1 -0
  94. package/lib/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
  95. package/lib/components/CreditCalculator/getCreditTermYears.js +12 -0
  96. package/lib/components/CreditCalculator/getCreditTermYears.js.map +1 -0
  97. package/lib/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
  98. package/lib/components/CreditCalculator/getMonthlyPayment.js +16 -0
  99. package/lib/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
  100. package/lib/components/ExchangeRateTile/ExchangeRateTile.fixture.d.ts +4 -0
  101. package/lib/components/Footer/Footer.fixture.d.ts +2 -0
  102. package/lib/components/Gallery/Gallery.fixture.d.ts +9 -0
  103. package/lib/components/Header/Header.fixture.d.ts +2 -0
  104. package/lib/components/LikeControl/LikeControl.fixture.d.ts +2 -0
  105. package/lib/components/MiniGallery/MiniGallery.fixture.d.ts +5 -0
  106. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +4 -0
  107. package/lib/components/Placeholder/Placeholder.fixture.d.ts +2 -0
  108. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +5 -0
  109. package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +2 -0
  110. package/lib/components/ProductTile/ProductTile.fixture.d.ts +7 -0
  111. package/lib/components/PromoTile/PromoTile.fixture.d.ts +4 -0
  112. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +2 -0
  113. package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
  114. package/lib/components/Tile/Tile.fixture.d.ts +8 -0
  115. package/lib/content-page-repository/ContentPageRepository.d.ts +3 -0
  116. package/lib/content-page-repository/ContentPageRepository.js +14 -0
  117. package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  118. package/lib/cosmos.decorator.d.ts +4 -0
  119. package/lib/hooks/useCreditCalculatorData.d.ts +3 -0
  120. package/lib/hooks/useCreditCalculatorData.js +12 -0
  121. package/lib/hooks/useCreditCalculatorData.js.map +1 -0
  122. package/lib/setup-fixture.d.ts +3 -0
  123. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +3 -0
  124. package/lib/ui-kit/Button/Button.fixture.d.ts +13 -0
  125. package/lib/ui-kit/Button/LikeButton.fixture.d.ts +5 -0
  126. package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +6 -0
  127. package/lib/ui-kit/Icon/Icon.fixture.d.ts +5 -0
  128. package/lib/ui-kit/Icon/IconProps.d.ts +4 -1
  129. package/lib/ui-kit/Icon/IconProps.js +3 -0
  130. package/lib/ui-kit/Icon/IconProps.js.map +1 -1
  131. package/lib/ui-kit/InputRange/InputRange.js +3 -2
  132. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  133. package/lib/ui-kit/Logo/Logo.fixture.d.ts +3 -0
  134. package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +6 -0
  135. package/lib/utils/addSpacesBetweenNumbers.d.ts +1 -0
  136. package/lib/utils/addSpacesBetweenNumbers.js +2 -0
  137. package/lib/utils/addSpacesBetweenNumbers.js.map +1 -0
  138. package/package.json +5 -4
  139. package/src/ProjectSettings.ts +1 -0
  140. package/src/components/Accordion/Accordion.fixture.tsx +62 -0
  141. package/src/components/Accordion/Accordion.tsx +22 -0
  142. package/src/components/Accordion/AccordionBlocks.tsx +7 -0
  143. package/src/components/Accordion/AccordionContent.ts +18 -0
  144. package/src/components/Accordion/AccordionItem.tsx +68 -0
  145. package/src/components/Blocks.ts +2 -0
  146. package/src/components/ContentPage/ContentPage.page.json +78 -0
  147. package/src/components/CreditCalculator/CreditCalculator.fixture.tsx +1 -1
  148. package/src/components/CreditCalculator/CreditCalculator.tsx +134 -85
  149. package/src/components/CreditCalculator/CreditCalculatorContent.ts +17 -0
  150. package/src/components/CreditCalculator/constants.ts +8 -0
  151. package/src/components/CreditCalculator/getCalculatorParams.ts +16 -0
  152. package/src/components/CreditCalculator/getCreditRate.ts +18 -0
  153. package/src/components/CreditCalculator/getCreditTermYears.spec.ts +10 -0
  154. package/src/components/CreditCalculator/getCreditTermYears.ts +15 -0
  155. package/src/components/CreditCalculator/getMonthlyPayment.ts +32 -0
  156. package/src/content-page-repository/ContentPageRepository.ts +17 -0
  157. package/src/hooks/useCreditCalculatorData.ts +23 -0
  158. package/src/icons/DocIcon.svg +5 -0
  159. package/src/icons/MinusIcon.svg +1 -0
  160. package/src/icons/PlusIcon.svg +1 -0
  161. package/src/ui-kit/Icon/IconProps.ts +3 -0
  162. package/src/ui-kit/InputRange/InputRange.tsx +3 -2
  163. package/src/utils/addSpacesBetweenNumbers.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionBlocks.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionBlocks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,eAAe,GAAG;IACtB,SAAS;CACV,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { TextBlockContent } from '../TextBlock/TextBlockContent';
2
+ export interface AccordionContent {
3
+ title?: string;
4
+ accordionItems?: AccordionItemContent[];
5
+ }
6
+ export interface AccordionItemContent {
7
+ label?: string;
8
+ blocks?: AccordionBlockContent[];
9
+ }
10
+ export declare type AccordionBlockContent = {
11
+ type?: string;
12
+ data?: AccordionDataContent;
13
+ };
14
+ export declare type AccordionDataContent = TextBlockContent;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AccordionContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionContent.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { UniBlockProps } from '../../types';
2
+ import type { AccordionItemContent } from './AccordionContent';
3
+ export interface AccordionItemProps extends AccordionItemContent, UniBlockProps {
4
+ }
5
+ export declare const AccordionItem: (props: import("@redneckz/uni-jsx").PropsWithChildren<AccordionItemProps, any>, context?: any) => any;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { Icon } from '../../ui-kit/Icon/Icon.js';
4
+ import AccordionBlocks from './AccordionBlocks.js';
5
+ export const AccordionItem = JSX(({ label, blocks, context }) => {
6
+ const [isActive, setIsActive] = context.useState(false);
7
+ const hasContent = blocks?.length;
8
+ const icon = isActive ? 'MinusIcon' : 'PlusIcon';
9
+ const handleToggle = (e) => {
10
+ if (!hasContent)
11
+ return null;
12
+ setIsActive(!isActive);
13
+ const contentBlock = getContentBlock(e);
14
+ contentBlock.style.maxHeight = contentBlock.style.maxHeight
15
+ ? null
16
+ : `${contentBlock.scrollHeight}px`;
17
+ };
18
+ return (_jsxs("li", { className: "border-0 border-b border-solid border-main-divider last:border-b-0", children: [_jsxs("button", { className: `border-none bg-transparent px-0 py-5 flex justify-between text-left w-full font-sans text-primary-text
19
+ ${hasContent ? 'group cursor-pointer' : ''}`, onClick: handleToggle, children: [_jsx("span", { className: `m-0 text-xl pr-2.5 font-medium ${hasContent ? 'group-hover:text-primary-main' : ''}`, children: label }), hasContent ? _jsx(Icon, { name: icon, width: "24", height: "24" }) : null] }), hasContent ? (_jsx("div", { className: `${isActive ? 'pb-5' : ''} text-sm transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0 `, children: blocks?.length ? blocks.map(renderComponent) : null })) : null] }));
20
+ });
21
+ // TODO: draft, for dynamic rendering of components
22
+ const renderComponent = (block, i) => {
23
+ if (block.type && block.data && !AccordionBlocks.hasOwnProperty(block.type)) {
24
+ return null;
25
+ }
26
+ const AccordionBlock = block.type && AccordionBlocks[block.type];
27
+ return (_jsx("div", { className: "mb-5 last:mb-0", children: _jsx(AccordionBlock, { ...block.data }) }, `component${i}`));
28
+ };
29
+ const getContentBlock = (e) => e.target.tagName === 'BUTTON' ? e.target.nextSibling : e.target.parentNode.nextSibling;
30
+ //# sourceMappingURL=AccordionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../../../src/components/Accordion/AccordionItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAIhD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAClF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAEjD,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS;YACzD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,IAAI,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,CACL,cAAI,SAAS,EAAC,oEAAoE,aAChF,kBACE,SAAS,EAAE;UACT,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5C,OAAO,EAAE,YAAY,aAErB,eACE,SAAS,EAAE,kCACT,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EACjD,EAAE,YAED,KAAK,GACD,EACN,UAAU,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IACzD,EACR,UAAU,CAAC,CAAC,CAAC,CACZ,cACE,SAAS,EAAE,GACT,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACtB,oFAAoF,YAEnF,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,GAChD,CACP,CAAC,CAAC,CAAC,IAAI,IACL,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mDAAmD;AAEnD,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAE,CAAS,EAAE,EAAE;IAClE,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC3E,OAAO,IAAI,CAAC;KACb;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,CACL,cAAK,SAAS,EAAC,gBAAgB,YAC7B,KAAC,cAAc,OAAK,KAAK,CAAC,IAAI,GAAI,IADC,YAAY,CAAC,EAAE,CAE9C,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,CAC5B,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -15,4 +15,5 @@ export declare const Blocks: {
15
15
  Gallery: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("./Gallery/Gallery").GalleryProps, any>, context?: any) => any;
16
16
  MiniGallery: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("./MiniGallery/MiniGallery").MiniGalleryProps, any>, context?: any) => any;
17
17
  ComparisonTable: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("./ComparisonTable/ComparisonTable").ComparisonTableProps, any>, context?: any) => any;
18
+ Accordion: (props: import("@redneckz/uni-jsx").PropsWithChildren<import("./Accordion/Accordion").AccordionProps, any>, context?: any) => any;
18
19
  };
@@ -14,6 +14,7 @@ import { StepsBlock } from './StepsBlock/StepsBlock.js';
14
14
  import { TextBlock } from './TextBlock/TextBlock.js';
15
15
  import { Tile } from './Tile/Tile.js';
16
16
  import { ComparisonTable } from './ComparisonTable/ComparisonTable.js';
17
+ import { Accordion } from './Accordion/Accordion.js';
17
18
  export const Blocks = {
18
19
  Header,
19
20
  Footer,
@@ -31,5 +32,6 @@ export const Blocks = {
31
32
  Gallery,
32
33
  MiniGallery,
33
34
  ComparisonTable,
35
+ Accordion,
34
36
  };
35
37
  //# sourceMappingURL=Blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blocks.js","sourceRoot":"","sources":["../../src/components/Blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM;IACN,MAAM;IACN,WAAW;IACX,IAAI;IACJ,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;IACZ,UAAU;IACV,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,OAAO;IACP,WAAW;IACX,eAAe;CAChB,CAAC"}
1
+ {"version":3,"file":"Blocks.js","sourceRoot":"","sources":["../../src/components/Blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM;IACN,MAAM;IACN,WAAW;IACX,IAAI;IACJ,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;IACZ,UAAU;IACV,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,OAAO;IACP,WAAW;IACX,eAAe;IACf,SAAS;CACV,CAAC"}
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ 'with images': any;
3
+ 'with images and hidden rows': any;
4
+ 'with images and colored first column': any;
5
+ 'with icons': any;
6
+ 'with icons and two cols': any;
7
+ };
8
+ export default _default;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ default: any;
3
+ mobile: any;
4
+ editor: any;
5
+ };
6
+ export default _default;
@@ -1,4 +1,5 @@
1
1
  import { UniBlockProps } from '../../types';
2
- export interface CreditCalculatorProps extends UniBlockProps {
2
+ import { CreditCalculatorContent } from './CreditCalculatorContent';
3
+ export interface CreditCalculatorProps extends CreditCalculatorContent, UniBlockProps {
3
4
  }
4
5
  export declare const CreditCalculator: (props: import("@redneckz/uni-jsx").PropsWithChildren<CreditCalculatorProps, any>, context?: any) => any;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -1,27 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
+ import { useCreditCalculatorData } from '../../hooks/useCreditCalculatorData.js';
3
4
  import { Button } from '../../ui-kit/Button/Button.js';
4
5
  import { Checkbox } from '../../ui-kit/Checkbox/Checkbox.js';
5
6
  import { InputRange } from '../../ui-kit/InputRange/InputRange.js';
7
+ import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers.js';
6
8
  import { clamp } from '../../utils/clamp.js';
7
- const borderStyle = 'border-solid border-3 border-primary-main rounded-md';
8
- const MIN_MONEY = 50000;
9
- const MAX_MONEY = 3000000;
9
+ import { DEFAULT_MAX_MONTHS, DEFAULT_MIN_MONTHS, DEFAULT_MONTHS, DEFAULT_SUM, MONTHS_IN_YEAR, } from './constants.js';
10
+ import { getCalculatorParams } from './getCalculatorParams.js';
11
+ import { getCreditRate } from './getCreditRate.js';
12
+ import { getCreditTermYears } from './getCreditTermYears.js';
13
+ import { getMonthlyPayment } from './getMonthlyPayment.js';
10
14
  const STEP_MONEY = 1000;
11
- const CREDIT_TERM_YEARS = [2, 3, 4, 5, 6, 7];
12
- const MIN_MONTHS = 1;
13
- const MAX_MONTHS = 84;
14
15
  const STEP_MONTHS = 1;
15
- const MONTHS_IN_YEAR = 12;
16
- export const CreditCalculator = JSX(({ context, className }) => {
17
- const [moneyValue, setMoneyValue] = context.useState(350000);
18
- const [monthsValue, setMonthsValue] = context.useState(12);
16
+ const DEFAULT_PAYMENT_TYPE = 'annuity';
17
+ const borderStyle = 'border-solid border-3 border-primary-main rounded-md';
18
+ export const CreditCalculator = JSX(({ context, className, directoryName }) => {
19
+ const [moneyValue, setMoneyValue] = context.useState(undefined);
20
+ const [monthsValue, setMonthsValue] = context.useState(undefined);
19
21
  const [isAnnuityChecked, setIsAnnuityChecked] = context.useState(true);
20
22
  const [isInsuranceChecked, setIsInsuranceChecked] = context.useState(true);
21
- const handleButtonClick = (value) => {
22
- setMonthsValue(clamp(value * MONTHS_IN_YEAR, MIN_MONTHS, MAX_MONTHS));
23
- };
24
- return (_jsx("section", { className: `font-sans text-primary-text bg-white p-4 ${className}`, children: _jsxs("div", { className: `box-border p-12 flex flex-col justify-between ${borderStyle}`, children: [_jsxs("div", { className: "flex justify-between", children: [_jsxs("div", { className: "grow mr-11", children: [_jsx(InputRange, { title: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD", items: ['От 50 000 рублей', 'До 3 000 000 рублей'], min: MIN_MONEY, max: MAX_MONEY, step: STEP_MONEY, value: moneyValue, onChange: setMoneyValue }), _jsx(InputRange, { title: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ['Или выберите из предложенных вариантов ниже'], min: MIN_MONTHS, max: MAX_MONTHS, step: STEP_MONTHS, value: monthsValue, onChange: setMonthsValue }), _jsx("div", { className: "flex mb-7", children: CREDIT_TERM_YEARS.map((number, i) => renderButton(number, i, handleButtonClick)) }), _jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", checked: isAnnuityChecked, onChange: setIsAnnuityChecked }), _jsx(Checkbox, { className: "mb-4", text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", checked: isInsuranceChecked, onChange: setIsInsuranceChecked })] }), _jsxs("div", { className: "p-9 bg-primary-main rounded-md text-white", children: [_jsx("div", { className: "text-base mb-5", children: "\u041D\u0430\u0448\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0451\u0436" }), _jsx("div", { className: "text-lg mb-3", children: "26 827 \u20BD" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), _jsx("div", { className: "text-lg", children: "16,9 %" })] })] }), _jsxs("div", { className: "flex items-center", children: [_jsx(Button, { className: "mr-3", text: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u044F\u0432\u043A\u0443", version: "primary", href: "#" }), _jsx("div", { className: "w-80 text-xxs leading-4 text-secondary-text", "aria-label": "\u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0424\u0417\u00A0\u00AB\u041E\u00A0\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB" })] })] }) }));
23
+ const tableRows = useCreditCalculatorData(context.useAsyncData, directoryName).rows;
24
+ const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isAnnuityChecked });
25
+ const defaultSum = calculatorParams.maxSum && calculatorParams.minSum
26
+ ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
27
+ : DEFAULT_SUM;
28
+ const defaultMonths = calculatorParams.maxMonths && calculatorParams.minMonths
29
+ ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
30
+ : DEFAULT_MONTHS;
31
+ const rate = getCreditRate({ calculatorParams, isInsurance: isInsuranceChecked });
32
+ const montlyPayment = getMonthlyPayment({
33
+ calculatorParams,
34
+ paymentType: DEFAULT_PAYMENT_TYPE,
35
+ rate,
36
+ sum: moneyValue || defaultSum,
37
+ months: monthsValue || defaultMonths,
38
+ });
39
+ const creditTermYears = getCreditTermYears(calculatorParams.minMonths || DEFAULT_MIN_MONTHS, calculatorParams.maxMonths || DEFAULT_MAX_MONTHS);
40
+ function handleButtonClick(value) {
41
+ setMonthsValue(clamp(value * MONTHS_IN_YEAR, calculatorParams?.minMonths || DEFAULT_MIN_MONTHS, calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS));
42
+ }
43
+ return (_jsx("section", { className: `font-sans text-primary-text bg-white p-4 ${className}`, children: _jsxs("div", { className: `box-border p-12 flex flex-col justify-between ${borderStyle}`, children: [_jsxs("div", { className: "flex justify-between", children: [_jsxs("div", { className: "grow mr-11", children: [_jsx(InputRange, { title: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD", items: [
44
+ `От ${addSpacesBetweenNumbers(Number(calculatorParams.minSum))} рублей`,
45
+ `До ${addSpacesBetweenNumbers(Number(calculatorParams.maxSum))} рублей`,
46
+ ], min: calculatorParams?.minSum, max: calculatorParams?.maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }), _jsx(InputRange, { title: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ['Или выберите из предложенных вариантов ниже'], min: calculatorParams?.minMonths, max: calculatorParams?.maxMonths, step: STEP_MONTHS, value: monthsValue || defaultMonths, onChange: setMonthsValue }), _jsx("div", { className: "flex mb-7", children: creditTermYears.map((number, i) => renderButton(number, i, handleButtonClick)) }), _jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", checked: isAnnuityChecked, onChange: setIsAnnuityChecked }), _jsx(Checkbox, { className: "mb-4", text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", checked: isInsuranceChecked, onChange: setIsInsuranceChecked })] }), _jsxs("div", { className: "p-9 bg-primary-main rounded-md text-white", children: [_jsx("div", { className: "text-base mb-5", children: "\u041D\u0430\u0448\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0451\u0436" }), _jsxs("div", { className: "text-lg mb-3", children: [addSpacesBetweenNumbers(Math.round(montlyPayment)), " \u20BD"] }), _jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), _jsxs("div", { className: "text-lg", children: [rate, " %"] })] })] }), _jsxs("div", { className: "flex items-center", children: [_jsx(Button, { className: "mr-3", text: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u044F\u0432\u043A\u0443", version: "primary", href: "#" }), _jsx("div", { className: "w-80 text-xxs leading-4 text-secondary-text", "aria-label": "\u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0424\u0417\u00A0\u00AB\u041E\u00A0\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB" })] })] }) }));
25
47
  });
26
- const renderButton = (number, i, handleClick) => (_jsx("div", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer", role: "button", onClick: () => handleClick(number), children: _jsxs("span", { className: "font-medium text-sm", children: [number, " ", number > 4 ? 'лет' : 'года'] }) }, String(i)));
48
+ function renderButton(number, i, handleClick) {
49
+ return (_jsx("button", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer border-none", onClick: () => handleClick(number), children: _jsxs("span", { className: "font-semibold text-sm", children: [number, " ", number === 1 ? 'год' : number > 4 ? 'лет' : 'года'] }) }, String(i)));
50
+ }
27
51
  //# sourceMappingURL=CreditCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreditCalculator.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreditCalculator.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface CalculatorParams {
2
+ isAnnuity?: boolean;
3
+ minSum?: number;
4
+ maxSum?: number;
5
+ minMonths?: number;
6
+ maxMonths?: number;
7
+ rateWithInsurance?: number;
8
+ rateWithoutInsurance?: number;
9
+ }
10
+ export interface CreditCalculatorData {
11
+ rows?: CalculatorParams[];
12
+ }
13
+ export interface CreditCalculatorContent {
14
+ directoryName?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CreditCalculatorContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreditCalculatorContent.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculatorContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_MIN_SUM = 30000;
2
+ export declare const DEFAULT_MAX_SUM = 3000000;
3
+ export declare const DEFAULT_SUM: number;
4
+ export declare const DEFAULT_MIN_MONTHS = 1;
5
+ export declare const DEFAULT_MAX_MONTHS = 84;
6
+ export declare const DEFAULT_MONTHS: number;
7
+ export declare const MONTHS_IN_YEAR = 12;
@@ -0,0 +1,8 @@
1
+ export const DEFAULT_MIN_SUM = 30000;
2
+ export const DEFAULT_MAX_SUM = 3000000;
3
+ export const DEFAULT_SUM = (DEFAULT_MAX_SUM - DEFAULT_MIN_SUM) / 2;
4
+ export const DEFAULT_MIN_MONTHS = 1;
5
+ export const DEFAULT_MAX_MONTHS = 84;
6
+ export const DEFAULT_MONTHS = Math.round((DEFAULT_MAX_MONTHS - DEFAULT_MIN_MONTHS) / 2);
7
+ export const MONTHS_IN_YEAR = 12;
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/constants.ts"],"names":[],"mappings":"AAAA,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,CAAC,CAAC;AACpC,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"}
@@ -0,0 +1,7 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ interface GetCalculatorParamsParams {
3
+ tableRows?: CalculatorParams[];
4
+ isAnnuity?: boolean;
5
+ }
6
+ export declare const getCalculatorParams: (params: GetCalculatorParamsParams) => CalculatorParams;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ export const getCalculatorParams = (params) => {
2
+ const { tableRows, isAnnuity = false } = params;
3
+ if (!tableRows)
4
+ return {};
5
+ const calculatorParams = tableRows.find((row) => row.isAnnuity === isAnnuity);
6
+ return calculatorParams || {};
7
+ };
8
+ //# sourceMappingURL=getCalculatorParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCalculatorParams.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiC,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAEhD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAE9E,OAAO,gBAAgB,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ interface GetCreditRateParams {
3
+ calculatorParams?: CalculatorParams;
4
+ isInsurance: boolean;
5
+ }
6
+ export declare const getCreditRate: (params: GetCreditRateParams) => number;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ const DEFAULT_RATE = 5;
2
+ export const getCreditRate = (params) => {
3
+ const { calculatorParams, isInsurance } = params;
4
+ if (!calculatorParams)
5
+ return DEFAULT_RATE;
6
+ return isInsurance
7
+ ? calculatorParams?.rateWithInsurance || DEFAULT_RATE
8
+ : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE;
9
+ };
10
+ //# sourceMappingURL=getCreditRate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCreditRate.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCreditRate.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,CAAC,CAAC;AAOvB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC3D,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEjD,IAAI,CAAC,gBAAgB;QAAE,OAAO,YAAY,CAAC;IAE3C,OAAO,WAAW;QAChB,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,IAAI,YAAY;QACrD,CAAC,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,YAAY,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getCreditTermYears: (minMonths: number, maxMonths: number) => number[];
@@ -0,0 +1,12 @@
1
+ import { MONTHS_IN_YEAR } from './constants.js';
2
+ const MAX_YEARS_LENGTH = 5;
3
+ export const getCreditTermYears = (minMonths, maxMonths) => {
4
+ const totalYears = Math.ceil((maxMonths - minMonths) / 12);
5
+ const firstYear = Math.floor(minMonths / MONTHS_IN_YEAR) + 1;
6
+ const result = new Array(Math.min(totalYears - 1, MAX_YEARS_LENGTH))
7
+ .fill(0)
8
+ .map((_, i) => firstYear + i);
9
+ const maxYear = totalYears + firstYear - 1;
10
+ return result.concat(maxYear);
11
+ };
12
+ //# sourceMappingURL=getCreditTermYears.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCreditTermYears.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCreditTermYears.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAC;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ declare type PaymentType = 'annuity' | 'differentiated';
3
+ interface GetMonthlyPaymentParams {
4
+ calculatorParams?: CalculatorParams;
5
+ paymentType: PaymentType;
6
+ rate: number;
7
+ sum: number;
8
+ months: number;
9
+ }
10
+ export declare const getMonthlyPayment: (params: GetMonthlyPaymentParams) => number;
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { clamp } from '../../utils/clamp.js';
2
+ import { DEFAULT_MAX_SUM, DEFAULT_MIN_SUM, MONTHS_IN_YEAR } from './constants.js';
3
+ export const getMonthlyPayment = (params) => {
4
+ const { calculatorParams, paymentType, rate, sum, months } = params;
5
+ if (!calculatorParams)
6
+ return 0;
7
+ const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM, calculatorParams.maxSum || DEFAULT_MAX_SUM);
8
+ if (paymentType === 'annuity') {
9
+ const annuityCoef = Number(rate) / (MONTHS_IN_YEAR * 100);
10
+ return finalSum * (annuityCoef + annuityCoef / (Math.pow(1 + annuityCoef, months) - 1));
11
+ }
12
+ else {
13
+ return finalSum / months + finalSum * (Number(rate) / 12);
14
+ }
15
+ };
16
+ //# sourceMappingURL=getMonthlyPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMonthlyPayment.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getMonthlyPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAa/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACnE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpE,IAAI,CAAC,gBAAgB;QAAE,OAAO,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,KAAK,CACpB,GAAG,EACH,gBAAgB,CAAC,MAAM,IAAI,eAAe,EAC1C,gBAAgB,CAAC,MAAM,IAAI,eAAe,CAC3C,CAAC;IAEF,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;QAC1D,OAAO,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzF;SAAM;QACL,OAAO,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC3D;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'text and button': any;
4
+ 'list and button': any;
5
+ 'text and no button': any;
6
+ 'only title': any;
7
+ mobile: any;
8
+ };
9
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'only title': any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'with items': any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ credit: any;
3
+ pension: any;
4
+ 'credit-card': any;
5
+ 'pension-credit': any;
6
+ };
7
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ credit: any;
3
+ mortgage: any;
4
+ 'credit-card': any;
5
+ premium: any;
6
+ ecosystem: any;
7
+ };
8
+ export default _default;
@@ -4,4 +4,7 @@ export declare function ContentPageRepository({ contentDir, publicDir, }?: Parti
4
4
  getAllContentPages: () => Promise<ContentPageDef[]>;
5
5
  getContentPageBySlug: (slug: string) => Promise<ContentPageDef | undefined>;
6
6
  getMobilePageBySlug: (slug: string) => Promise<ContentPageDef | undefined>;
7
+ getSecondaryContentPages: () => Promise<ContentPageDef[]>;
8
+ getIndexPage: () => Promise<ContentPageDef | undefined>;
9
+ getIndexMobilePage: () => Promise<ContentPageDef | undefined>;
7
10
  };
@@ -2,12 +2,17 @@ import glob from 'glob';
2
2
  import util from 'util';
3
3
  import { toMobilePage } from '../components/ContentPage/toMobilePage.js';
4
4
  import { transformContentPage } from './transformContentPage.js';
5
+ const INDEX_PAGE_SLUG = 'index';
5
6
  const find = util.promisify(glob);
6
7
  export function ContentPageRepository({ contentDir = 'content', publicDir = 'public', } = {}) {
7
8
  async function getAllContentPages() {
8
9
  const pagePaths = await find(`${contentDir}/**/*.page.json`);
9
10
  return await Promise.all(pagePaths.map(readPage));
10
11
  }
12
+ async function getSecondaryContentPages() {
13
+ const pages = await getAllContentPages();
14
+ return pages.filter((content) => content.slug !== INDEX_PAGE_SLUG);
15
+ }
11
16
  async function getContentPageBySlug(slug) {
12
17
  const pages = await getAllContentPages();
13
18
  return pages.find((content) => content.slug === slug);
@@ -16,6 +21,12 @@ export function ContentPageRepository({ contentDir = 'content', publicDir = 'pub
16
21
  const page = await getContentPageBySlug(slug);
17
22
  return page && toMobilePage(page);
18
23
  }
24
+ async function getIndexPage() {
25
+ return await getContentPageBySlug(INDEX_PAGE_SLUG);
26
+ }
27
+ async function getIndexMobilePage() {
28
+ return await getMobilePageBySlug(INDEX_PAGE_SLUG);
29
+ }
19
30
  const cache = {};
20
31
  async function readPage(filePath) {
21
32
  if (!(filePath in cache)) {
@@ -30,6 +41,9 @@ export function ContentPageRepository({ contentDir = 'content', publicDir = 'pub
30
41
  getAllContentPages,
31
42
  getContentPageBySlug,
32
43
  getMobilePageBySlug,
44
+ getSecondaryContentPages,
45
+ getIndexPage,
46
+ getIndexMobilePage,
33
47
  };
34
48
  }
35
49
  //# sourceMappingURL=ContentPageRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPageRepository.js","sourceRoot":"","sources":["../../src/content-page-repository/ContentPageRepository.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,GAAG,SAAS,EACtB,SAAS,GAAG,QAAQ,MACc,EAAE;IACpC,KAAK,UAAU,kBAAkB;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,UAAU,iBAAiB,CAAC,CAAC;QAC7D,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,IAAY;QAC9C,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;QAC7C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,KAAK,UAAU,QAAQ,CAAC,QAAgB;QACtC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE;gBACrD,UAAU;gBACV,SAAS;aACV,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ContentPageRepository.js","sourceRoot":"","sources":["../../src/content-page-repository/ContentPageRepository.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,GAAG,SAAS,EACtB,SAAS,GAAG,QAAQ,MACc,EAAE;IACpC,KAAK,UAAU,kBAAkB;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,UAAU,iBAAiB,CAAC,CAAC;QAC7D,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,UAAU,wBAAwB;QACrC,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,IAAY;QAC9C,MAAM,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,IAAY;QAC7C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,UAAU,YAAY;QACzB,OAAO,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,UAAU,kBAAkB;QAC/B,OAAO,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,KAAK,UAAU,QAAQ,CAAC,QAAgB;QACtC,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE;gBACrD,UAAU;gBACV,SAAS;aACV,CAAC,CAAC;SACJ;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const _default: ({ children }: {
2
+ children: any;
3
+ }) => any;
4
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { AsyncDataHook } from '../components/ContentPage/ContentPageContext';
2
+ import { CreditCalculatorData } from '../components/CreditCalculator/CreditCalculatorContent';
3
+ export declare function useCreditCalculatorData(useAsyncData: AsyncDataHook, directoryName: string | undefined): CreditCalculatorData;
@@ -0,0 +1,12 @@
1
+ export function useCreditCalculatorData(useAsyncData, directoryName) {
2
+ const { data } = useAsyncData(creditCalculatorUrl(directoryName), () => fetchCreditCalculatorData(directoryName));
3
+ return data || {};
4
+ }
5
+ async function fetchCreditCalculatorData(directoryName) {
6
+ const response = await fetch(creditCalculatorUrl(directoryName));
7
+ return await response.json();
8
+ }
9
+ function creditCalculatorUrl(directoryName) {
10
+ return `/wcms-resources/${directoryName || 'credit-calculator-data'}.json`;
11
+ }
12
+ //# sourceMappingURL=useCreditCalculatorData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreditCalculatorData.js","sourceRoot":"","sources":["../../src/hooks/useCreditCalculatorData.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACrC,YAA2B,EAC3B,aAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CACrE,yBAAyB,CAAC,aAAa,CAAC,CACzC,CAAC;IACF,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,aAAiC;IAEjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IACjE,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,aAAiC;IAC5D,OAAO,mBAAmB,aAAa,IAAI,wBAAwB,OAAO,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ContentPageContext } from './components/ContentPage/ContentPageContext';
2
+ export declare const context: ContentPageContext;
3
+ export declare const mobileContext: ContentPageContext;
@@ -0,0 +1,3 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: any;
3
+ export default _default;