@redneckz/wildless-cms-uni-blocks 0.2.79 → 0.2.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/bundle.umd.js +158 -9
- 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/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 +43 -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/components/Footer/SocialMedia.js +11 -5
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
- package/dist/components/Header/HeaderSecondaryMenu.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/Icon.js +1 -1
- package/dist/ui-kit/Icon/Icon.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.fixture.d.ts +4 -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 +43 -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/Footer/SocialMedia.js +11 -5
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Gallery/Gallery.fixture.d.ts +9 -0
- package/lib/components/Header/Header.fixture.d.ts +2 -0
- package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
- package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
- 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/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/Icon.js +2 -2
- package/lib/ui-kit/Icon/Icon.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 +3 -2
- package/src/ProjectSettings.ts +1 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/ContentPage/ContentPage.page.json +7 -0
- package/src/components/CreditCalculator/CreditCalculator.fixture.tsx +1 -1
- package/src/components/CreditCalculator/CreditCalculator.tsx +132 -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/components/Footer/Footer.fixture.tsx +1 -1
- package/src/components/Footer/SocialMedia.tsx +26 -7
- package/src/components/Header/HeaderSecondaryMenu.tsx +6 -2
- package/src/hooks/useCreditCalculatorData.ts +23 -0
- package/src/icons/ActualBalanceIcon.svg +1 -0
- package/src/icons/AppleIcon.svg +1 -1
- package/src/icons/CalendarIcon.svg +1 -1
- package/src/icons/ClockIcon.svg +1 -0
- package/src/icons/ComfortableCompIcon.svg +1 -0
- package/src/icons/DollarIcon.svg +1 -1
- package/src/icons/EmptyWalletIcon.svg +1 -1
- package/src/icons/EuroIcon.svg +1 -1
- package/src/icons/GlassIcon.svg +1 -1
- package/src/icons/GridIcon.svg +2 -2
- package/src/icons/LoupeIcon.svg +1 -1
- package/src/icons/NewDocIcon.svg +1 -0
- package/src/icons/OkIcon.svg +1 -2
- package/src/icons/PassSendIcon.svg +1 -0
- package/src/icons/PercentageSquareIcon.svg +1 -1
- package/src/icons/PlayMarketIcon.svg +1 -1
- package/src/icons/ProfileIcon.svg +1 -1
- package/src/icons/SignDocsIcon.svg +1 -0
- package/src/icons/TelegramIcon.svg +1 -2
- package/src/icons/VKIcon.svg +1 -2
- package/src/ui-kit/Icon/Icon.tsx +8 -7
- package/src/ui-kit/InputRange/InputRange.tsx +3 -2
- package/src/utils/addSpacesBetweenNumbers.ts +2 -0
|
@@ -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;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,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;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,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;IACT,gBAAgB;CACjB,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,55 @@
|
|
|
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_MAX_SUM, DEFAULT_MIN_MONTHS, DEFAULT_MIN_SUM, 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 minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
|
|
32
|
+
const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
|
|
33
|
+
const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS;
|
|
34
|
+
const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS;
|
|
35
|
+
const rate = getCreditRate({ calculatorParams, isInsurance: isInsuranceChecked });
|
|
36
|
+
const montlyPayment = getMonthlyPayment({
|
|
37
|
+
calculatorParams,
|
|
38
|
+
paymentType: DEFAULT_PAYMENT_TYPE,
|
|
39
|
+
rate,
|
|
40
|
+
sum: moneyValue || defaultSum,
|
|
41
|
+
months: monthsValue || defaultMonths,
|
|
42
|
+
});
|
|
43
|
+
const creditTermYears = getCreditTermYears(minMonths, maxMonths);
|
|
44
|
+
function handleButtonClick(value) {
|
|
45
|
+
setMonthsValue(clamp(value * MONTHS_IN_YEAR, minMonths, maxMonths));
|
|
46
|
+
}
|
|
47
|
+
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: [
|
|
48
|
+
`От ${addSpacesBetweenNumbers(minSum)} рублей`,
|
|
49
|
+
`До ${addSpacesBetweenNumbers(maxSum)} рублей`,
|
|
50
|
+
], min: minSum, max: 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: minMonths, max: 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
51
|
});
|
|
26
|
-
|
|
52
|
+
function renderButton(number, i, handleClick) {
|
|
53
|
+
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)));
|
|
54
|
+
}
|
|
27
55
|
//# 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,9 +4,15 @@ import { Icon } from '../../ui-kit/Icon/Icon.js';
|
|
|
4
4
|
import { useLink } from '../../hooks/useLink.js';
|
|
5
5
|
import { Button } from '../../ui-kit/Button/Button.js';
|
|
6
6
|
const ICONS_MAP = [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
{
|
|
8
|
+
origins: ['t.me', 'telegram.org'],
|
|
9
|
+
icon: 'TelegramIcon',
|
|
10
|
+
label: 'Телеграм',
|
|
11
|
+
width: '20px',
|
|
12
|
+
height: '16px',
|
|
13
|
+
},
|
|
14
|
+
{ origins: ['vk.com'], icon: 'VKIcon', label: 'ВКонтакте', width: '24px', height: '12px' },
|
|
15
|
+
{ origins: ['ok.ru'], icon: 'OkIcon', label: 'Одноклассники', width: '12px', height: '20px' },
|
|
10
16
|
];
|
|
11
17
|
export const SocialMedia = JSX(({ className, media, context }) => {
|
|
12
18
|
const router = context.useRouter();
|
|
@@ -14,9 +20,9 @@ export const SocialMedia = JSX(({ className, media, context }) => {
|
|
|
14
20
|
return (_jsx("div", { className: `flex items-end justify-end gap-2 pt-[30px] pb-7 ${className || ''}`, children: media?.map((_, index) => (_jsx(MediaButton, { ...useLink({ router, handlerDecorator }, _) }, String(index)))) }));
|
|
15
21
|
});
|
|
16
22
|
const MediaButton = JSX(({ href }) => {
|
|
17
|
-
const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
|
|
23
|
+
const { icon, label, width, height } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
|
|
18
24
|
if (!icon)
|
|
19
25
|
return null;
|
|
20
|
-
return (_jsx(Button, { rounded: true, href: href, target: "_blank", rel: "noopener noreferrer", "aria-label": label, className: "border-solid border border-main-divider w-9 h-9 flex items-center justify-center hover:
|
|
26
|
+
return (_jsx(Button, { rounded: true, href: href, target: "_blank", rel: "noopener noreferrer", "aria-label": label, className: "border-solid border border-main-divider w-9 h-9 flex items-center justify-center hover:fill-primary-main", appendLeft: _jsx(Icon, { name: icon, width: width, height: height, className: "[&>*]:fill-primary-text [&>*]:hover:fill-primary-main" }) }));
|
|
21
27
|
});
|
|
22
28
|
//# sourceMappingURL=SocialMedia.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialMedia.js","sourceRoot":"","sources":["../../../src/components/Footer/SocialMedia.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"SocialMedia.js","sourceRoot":"","sources":["../../../src/components/Footer/SocialMedia.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,SAAS,GAMV;IACH;QACE,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;QACjC,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf;IACD,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAC1F,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAC9F,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACrC,OAAO,CACL,cAAK,SAAS,EAAE,mDAAmD,SAAS,IAAI,EAAE,EAAE,YACjF,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,WAAW,OAAyB,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAA3D,MAAM,CAAC,KAAK,CAAC,CAAkD,CAClF,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAMH,MAAM,WAAW,GAAG,GAAG,CAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACrD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAClC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,MAAM,IACL,OAAO,QACP,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,gBACb,KAAK,EACjB,SAAS,EAAC,0GAA0G,EACpH,UAAU,EACR,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,uDAAuD,GACjE,GAEJ,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -5,6 +5,6 @@ import { TopItem } from '../../ui-kit/TopItem/TopItem.js';
|
|
|
5
5
|
import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton.js';
|
|
6
6
|
export const HeaderSecondaryMenu = JSX(({ context, className, defaultLocation = '' }) => {
|
|
7
7
|
const [city, getCity] = context.useGeolocation(defaultLocation);
|
|
8
|
-
return (_jsxs("div", { className: `flex items-center ${className || ''}`, children: [_jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity }), _jsx(TopItem, { className: "mr-7", flat: true, href: "#", text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432" }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-primary-text hover:text-primary-main", ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: _jsx(Icon, { name: "LoupeIcon", "aria-hidden": "true" }) }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-primary-text hover:text-primary-main", ariaLabel: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C", children: _jsx(Icon, { name: "ProfileIcon", "aria-hidden": "true" }) }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-secondary-light hover:text-
|
|
8
|
+
return (_jsxs("div", { className: `flex items-center ${className || ''}`, children: [_jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity }), _jsx(TopItem, { className: "mr-7", flat: true, href: "#", text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432" }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-primary-text hover:text-primary-main", ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: _jsx(Icon, { name: "LoupeIcon", "aria-hidden": "true" }) }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-primary-text hover:text-primary-main", ariaLabel: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C", children: _jsx(Icon, { name: "ProfileIcon", "aria-hidden": "true" }) }), _jsx(HeaderSecondaryMenuButton, { className: "mr-5 text-secondary-light hover:text-primary-main min-w-[32px] min-h-[32px]", ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: _jsx(Icon, { name: "GridIcon", "aria-hidden": "true", className: "[&>*]:fill-secondary-light [&>*]:hover:fill-primary-main" }) })] }));
|
|
9
9
|
});
|
|
10
10
|
//# sourceMappingURL=HeaderSecondaryMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AASxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,GAAG,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAEhE,OAAO,CACL,eAAK,SAAS,EAAE,qBAAqB,SAAS,IAAI,EAAE,EAAE,aACpD,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,sFAAgB,EAC1B,OAAO,EAAE,OAAO,GAChB,EACF,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,GACrD,EACF,KAAC,yBAAyB,IACxB,SAAS,EAAC,gDAAgD,EAC1D,SAAS,EAAC,4EAAgB,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,iBAAa,MAAM,GAAG,GAClB,EAC5B,KAAC,yBAAyB,IACxB,SAAS,EAAC,gDAAgD,EAC1D,SAAS,EAAC,4CAAS,YAEnB,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,iBAAa,MAAM,GAAG,GACpB,EAC5B,KAAC,yBAAyB,IACxB,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"HeaderSecondaryMenu.js","sourceRoot":"","sources":["../../../src/components/Header/HeaderSecondaryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AASxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CACpC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,GAAG,EAAE,EAAE,EAAE,EAAE;IAC/C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAEhE,OAAO,CACL,eAAK,SAAS,EAAE,qBAAqB,SAAS,IAAI,EAAE,EAAE,aACpD,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,sFAAgB,EAC1B,OAAO,EAAE,OAAO,GAChB,EACF,KAAC,OAAO,IACN,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,GAAG,EACR,IAAI,EAAC,8FAAmB,EACxB,SAAS,EAAC,+NAA2C,GACrD,EACF,KAAC,yBAAyB,IACxB,SAAS,EAAC,gDAAgD,EAC1D,SAAS,EAAC,4EAAgB,YAE1B,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,iBAAa,MAAM,GAAG,GAClB,EAC5B,KAAC,yBAAyB,IACxB,SAAS,EAAC,gDAAgD,EAC1D,SAAS,EAAC,4CAAS,YAEnB,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,iBAAa,MAAM,GAAG,GACpB,EAC5B,KAAC,yBAAyB,IACxB,SAAS,EAAC,6EAA6E,EACvF,SAAS,EAAC,2HAAuB,YAEjC,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,iBACH,MAAM,EAClB,SAAS,EAAC,0DAA0D,GACpE,GACwB,IACxB,CACP,CAAC;AACJ,CAAC,CACF,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../setup-fixture';
|
|
2
|
+
declare const _default: {
|
|
3
|
+
all: any;
|
|
4
|
+
'primary (Private clients)': any;
|
|
5
|
+
'secondary (Private clients)': any;
|
|
6
|
+
'primary (Business clients)': any;
|
|
7
|
+
'secondary (Business clients)': any;
|
|
8
|
+
'primary (Ecosystem own)': any;
|
|
9
|
+
'secondary (Ecosystem own)': any;
|
|
10
|
+
'primary (disabled)': any;
|
|
11
|
+
'secondary (disabled)': any;
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
package/lib/ui-kit/Icon/Icon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { JSX } from '@redneckz/uni-jsx';
|
|
3
3
|
import { projectSettings } from '../../ProjectSettings.js';
|
|
4
|
-
export const Icon = JSX(({ className, name, alt = `Icon ${name}`, title = alt, ...imgProps }) => (
|
|
4
|
+
export const Icon = JSX(({ className, name, alt = `Icon ${name}`, title = alt, ...imgProps }) => (_jsxs("svg", { className: className, ...imgProps, "aria-hidden": "true", children: [title ? _jsx("title", { children: title }) : null, alt ? _jsx("desc", { children: alt }) : null, _jsx("use", { href: `${projectSettings.CDN || ''}icons/${name}.svg#icon`, xlinkHref: `${projectSettings.CDN || ''}icons/${name}.svg#icon` })] })));
|
|
5
5
|
//# sourceMappingURL=Icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvE,
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC,CACvE,eAAK,SAAS,EAAE,SAAS,KAAM,QAAQ,iBAAc,MAAM,aACxD,KAAK,CAAC,CAAC,CAAC,0BAAQ,KAAK,GAAS,CAAC,CAAC,CAAC,IAAI,EACrC,GAAG,CAAC,CAAC,CAAC,yBAAO,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChC,cACE,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,WAAW,EAC1D,SAAS,EAAE,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,WAAW,GAC/D,IACE,CACP,CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
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 { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers.js';
|
|
3
4
|
export const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
|
|
4
5
|
const handleChange = (value) => {
|
|
5
6
|
if (!onChange)
|
|
@@ -8,7 +9,7 @@ export const InputRange = JSX(({ className, title, items = [], min = 1, max = 10
|
|
|
8
9
|
onChange(sanitizedValue);
|
|
9
10
|
};
|
|
10
11
|
const inputStyle = {
|
|
11
|
-
backgroundSize: `${(value * 100) / max -
|
|
12
|
+
backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
|
|
12
13
|
};
|
|
13
14
|
const handleBlur = () => {
|
|
14
15
|
if (!onChange)
|
|
@@ -18,6 +19,6 @@ export const InputRange = JSX(({ className, title, items = [], min = 1, max = 10
|
|
|
18
19
|
if (value > max)
|
|
19
20
|
onChange(max);
|
|
20
21
|
};
|
|
21
|
-
return (_jsxs("div", { className: className, children: [_jsxs("div", { className: "relative", children: [title ? (_jsx("span", { className: "absolute text-xs text-secondary-text top-1 mt-0.5 pl-4 ml-0.5", children: title })) : null, _jsx("input", { className: `m-0 font-sans text-sm w-full h-12 border-2 border-solid border-main-divider rounded-md outline-none p-0 pl-4 m-0 box-border text-primary-text ${title ? 'pt-4' : ''}`, value:
|
|
22
|
+
return (_jsxs("div", { className: className, children: [_jsxs("div", { className: "relative", children: [title ? (_jsx("span", { className: "absolute text-xs text-secondary-text top-1 mt-0.5 pl-4 ml-0.5", children: title })) : null, _jsx("input", { className: `m-0 font-sans text-sm w-full h-12 border-2 border-solid border-main-divider rounded-md outline-none p-0 pl-4 m-0 box-border text-primary-text ${title ? 'pt-4' : ''}`, value: addSpacesBetweenNumbers(value), onChange: (e) => handleChange(e.target.value), onBlur: handleBlur }), _jsx("div", { className: "absolute inset-x-0 mt-0.5 top-8 px-4", children: _jsx("input", { className: "box-border w-full m-0 cursor-pointer slider", type: "range", min: min, max: max, step: step, value: value, onChange: (e) => handleChange(e.target.value), style: inputStyle }) })] }), _jsx("div", { className: "flex justify-between mt-3 mb-4", children: items.map((item, i) => (_jsx("span", { className: "text-xs text-secondary-text pl-4", children: item }, String(i)))) })] }));
|
|
22
23
|
});
|
|
23
24
|
//# sourceMappingURL=InputRange.js.map
|