@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.
- package/bundle/blocks.schema.json +5 -82
- package/bundle/bundle.umd.js +35 -0
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/ProjectSettings.d.ts +1 -0
- package/dist/ProjectSettings.js.map +1 -1
- package/dist/components/Accordion/Accordion.d.ts +5 -0
- package/dist/components/Accordion/Accordion.js +10 -0
- package/dist/components/Accordion/Accordion.js.map +1 -0
- package/dist/components/Accordion/AccordionBlocks.d.ts +4 -0
- package/dist/components/Accordion/AccordionBlocks.js +7 -0
- package/dist/components/Accordion/AccordionBlocks.js.map +1 -0
- package/dist/components/Accordion/AccordionContent.d.ts +14 -0
- package/dist/components/Accordion/AccordionContent.js +2 -0
- package/dist/components/Accordion/AccordionContent.js.map +1 -0
- package/dist/components/Accordion/AccordionItem.d.ts +5 -0
- package/dist/components/Accordion/AccordionItem.js +35 -0
- package/dist/components/Accordion/AccordionItem.js.map +1 -0
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/CreditCalculator/CreditCalculator.d.ts +2 -1
- package/dist/components/CreditCalculator/CreditCalculator.js +39 -15
- package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
- package/dist/components/CreditCalculator/CreditCalculatorContent.js +2 -0
- package/dist/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
- package/dist/components/CreditCalculator/constants.d.ts +7 -0
- package/dist/components/CreditCalculator/constants.js +10 -0
- package/dist/components/CreditCalculator/constants.js.map +1 -0
- package/dist/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
- package/dist/components/CreditCalculator/getCalculatorParams.js +11 -0
- package/dist/components/CreditCalculator/getCalculatorParams.js.map +1 -0
- package/dist/components/CreditCalculator/getCreditRate.d.ts +7 -0
- package/dist/components/CreditCalculator/getCreditRate.js +13 -0
- package/dist/components/CreditCalculator/getCreditRate.js.map +1 -0
- package/dist/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
- package/dist/components/CreditCalculator/getCreditTermYears.js +15 -0
- package/dist/components/CreditCalculator/getCreditTermYears.js.map +1 -0
- package/dist/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
- package/dist/components/CreditCalculator/getMonthlyPayment.js +19 -0
- package/dist/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
- package/dist/content-page-repository/ContentPageRepository.d.ts +3 -0
- package/dist/content-page-repository/ContentPageRepository.js +14 -0
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/dist/hooks/useCreditCalculatorData.d.ts +3 -0
- package/dist/hooks/useCreditCalculatorData.js +15 -0
- package/dist/hooks/useCreditCalculatorData.js.map +1 -0
- package/dist/ui-kit/Icon/IconProps.d.ts +4 -1
- package/dist/ui-kit/Icon/IconProps.js +3 -0
- package/dist/ui-kit/Icon/IconProps.js.map +1 -1
- package/dist/ui-kit/InputRange/InputRange.js +3 -2
- package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
- package/dist/utils/addSpacesBetweenNumbers.d.ts +1 -0
- package/dist/utils/addSpacesBetweenNumbers.js +5 -0
- package/dist/utils/addSpacesBetweenNumbers.js.map +1 -0
- package/lib/ProjectSettings.d.ts +1 -0
- package/lib/ProjectSettings.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.d.ts +5 -0
- package/lib/components/Accordion/Accordion.fixture.d.ts +4 -0
- package/lib/components/Accordion/Accordion.js +8 -0
- package/lib/components/Accordion/Accordion.js.map +1 -0
- package/lib/components/Accordion/AccordionBlocks.d.ts +4 -0
- package/lib/components/Accordion/AccordionBlocks.js +6 -0
- package/lib/components/Accordion/AccordionBlocks.js.map +1 -0
- package/lib/components/Accordion/AccordionContent.d.ts +14 -0
- package/lib/components/Accordion/AccordionContent.js +2 -0
- package/lib/components/Accordion/AccordionContent.js.map +1 -0
- package/lib/components/Accordion/AccordionItem.d.ts +5 -0
- package/lib/components/Accordion/AccordionItem.js +30 -0
- package/lib/components/Accordion/AccordionItem.js.map +1 -0
- package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -0
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTable.fixture.d.ts +8 -0
- package/lib/components/ContentPage/ContentPage.fixture.d.ts +6 -0
- package/lib/components/CreditCalculator/CreditCalculator.d.ts +2 -1
- package/lib/components/CreditCalculator/CreditCalculator.fixture.d.ts +2 -0
- package/lib/components/CreditCalculator/CreditCalculator.js +39 -15
- package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
- package/lib/components/CreditCalculator/CreditCalculatorContent.js +2 -0
- package/lib/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
- package/lib/components/CreditCalculator/constants.d.ts +7 -0
- package/lib/components/CreditCalculator/constants.js +8 -0
- package/lib/components/CreditCalculator/constants.js.map +1 -0
- package/lib/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
- package/lib/components/CreditCalculator/getCalculatorParams.js +8 -0
- package/lib/components/CreditCalculator/getCalculatorParams.js.map +1 -0
- package/lib/components/CreditCalculator/getCreditRate.d.ts +7 -0
- package/lib/components/CreditCalculator/getCreditRate.js +10 -0
- package/lib/components/CreditCalculator/getCreditRate.js.map +1 -0
- package/lib/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
- package/lib/components/CreditCalculator/getCreditTermYears.js +12 -0
- package/lib/components/CreditCalculator/getCreditTermYears.js.map +1 -0
- package/lib/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
- package/lib/components/CreditCalculator/getMonthlyPayment.js +16 -0
- package/lib/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
- package/lib/components/ExchangeRateTile/ExchangeRateTile.fixture.d.ts +4 -0
- package/lib/components/Footer/Footer.fixture.d.ts +2 -0
- package/lib/components/Gallery/Gallery.fixture.d.ts +9 -0
- package/lib/components/Header/Header.fixture.d.ts +2 -0
- package/lib/components/LikeControl/LikeControl.fixture.d.ts +2 -0
- package/lib/components/MiniGallery/MiniGallery.fixture.d.ts +5 -0
- package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +4 -0
- package/lib/components/Placeholder/Placeholder.fixture.d.ts +2 -0
- package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +5 -0
- package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +2 -0
- package/lib/components/ProductTile/ProductTile.fixture.d.ts +7 -0
- package/lib/components/PromoTile/PromoTile.fixture.d.ts +4 -0
- package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +2 -0
- package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
- package/lib/components/Tile/Tile.fixture.d.ts +8 -0
- package/lib/content-page-repository/ContentPageRepository.d.ts +3 -0
- package/lib/content-page-repository/ContentPageRepository.js +14 -0
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/lib/cosmos.decorator.d.ts +4 -0
- package/lib/hooks/useCreditCalculatorData.d.ts +3 -0
- package/lib/hooks/useCreditCalculatorData.js +12 -0
- package/lib/hooks/useCreditCalculatorData.js.map +1 -0
- package/lib/setup-fixture.d.ts +3 -0
- package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +3 -0
- package/lib/ui-kit/Button/Button.fixture.d.ts +13 -0
- package/lib/ui-kit/Button/LikeButton.fixture.d.ts +5 -0
- package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +6 -0
- package/lib/ui-kit/Icon/Icon.fixture.d.ts +5 -0
- package/lib/ui-kit/Icon/IconProps.d.ts +4 -1
- package/lib/ui-kit/Icon/IconProps.js +3 -0
- package/lib/ui-kit/Icon/IconProps.js.map +1 -1
- package/lib/ui-kit/InputRange/InputRange.js +3 -2
- package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
- package/lib/ui-kit/Logo/Logo.fixture.d.ts +3 -0
- package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +6 -0
- package/lib/utils/addSpacesBetweenNumbers.d.ts +1 -0
- package/lib/utils/addSpacesBetweenNumbers.js +2 -0
- package/lib/utils/addSpacesBetweenNumbers.js.map +1 -0
- package/package.json +5 -4
- package/src/ProjectSettings.ts +1 -0
- package/src/components/Accordion/Accordion.fixture.tsx +62 -0
- package/src/components/Accordion/Accordion.tsx +22 -0
- package/src/components/Accordion/AccordionBlocks.tsx +7 -0
- package/src/components/Accordion/AccordionContent.ts +18 -0
- package/src/components/Accordion/AccordionItem.tsx +68 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/ContentPage/ContentPage.page.json +78 -0
- package/src/components/CreditCalculator/CreditCalculator.fixture.tsx +1 -1
- package/src/components/CreditCalculator/CreditCalculator.tsx +134 -85
- package/src/components/CreditCalculator/CreditCalculatorContent.ts +17 -0
- package/src/components/CreditCalculator/constants.ts +8 -0
- package/src/components/CreditCalculator/getCalculatorParams.ts +16 -0
- package/src/components/CreditCalculator/getCreditRate.ts +18 -0
- package/src/components/CreditCalculator/getCreditTermYears.spec.ts +10 -0
- package/src/components/CreditCalculator/getCreditTermYears.ts +15 -0
- package/src/components/CreditCalculator/getMonthlyPayment.ts +32 -0
- package/src/content-page-repository/ContentPageRepository.ts +17 -0
- package/src/hooks/useCreditCalculatorData.ts +23 -0
- package/src/icons/DocIcon.svg +5 -0
- package/src/icons/MinusIcon.svg +1 -0
- package/src/icons/PlusIcon.svg +1 -0
- package/src/ui-kit/Icon/IconProps.ts +3 -0
- package/src/ui-kit/InputRange/InputRange.tsx +3 -2
- 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 @@
|
|
|
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"}
|
|
@@ -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
|
};
|
package/lib/components/Blocks.js
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { UniBlockProps } from '../../types';
|
|
2
|
-
|
|
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;
|
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const [
|
|
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
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
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 @@
|
|
|
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,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"}
|
|
@@ -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;
|
|
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,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"}
|