@redneckz/wildless-cms-uni-blocks 0.14.934 → 0.14.936
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 +1 -1
- package/bundle/bundle.umd.js +171 -2
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/bundle/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/bundle/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/bundle/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/bundle/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/bundle/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/Blocks.mobile.js +2 -0
- package/dist/components/Blocks.mobile.js.map +1 -1
- package/dist/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/dist/components/CashbackCalculator/CashbackCalculator.js +28 -0
- package/dist/components/CashbackCalculator/CashbackCalculator.js.map +1 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorContent.js +2 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorContent.js.map +1 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorResult.js +27 -0
- package/dist/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -0
- package/dist/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/dist/components/CashbackCalculator/CashbackCategory.js +72 -0
- package/dist/components/CashbackCalculator/CashbackCategory.js.map +1 -0
- package/dist/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/dist/components/CashbackCalculator/useCashbackCalculator.js +77 -0
- package/dist/components/CashbackCalculator/useCashbackCalculator.js.map +1 -0
- package/dist/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/dist/ui-kit/InfoCard/InfoCard.js +2 -1
- package/dist/ui-kit/InfoCard/InfoCard.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Blocks.mobile.js +2 -0
- package/lib/components/Blocks.mobile.js.map +1 -1
- package/lib/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/lib/components/CashbackCalculator/CashbackCalculator.fixture.d.ts +6 -0
- package/lib/components/CashbackCalculator/CashbackCalculator.fixture.mobile.d.ts +5 -0
- package/lib/components/CashbackCalculator/CashbackCalculator.js +26 -0
- package/lib/components/CashbackCalculator/CashbackCalculator.js.map +1 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorContent.js +2 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorContent.js.map +1 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorResult.js +25 -0
- package/lib/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -0
- package/lib/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/lib/components/CashbackCalculator/CashbackCategory.js +70 -0
- package/lib/components/CashbackCalculator/CashbackCategory.js.map +1 -0
- package/lib/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/lib/components/CashbackCalculator/useCashbackCalculator.js +74 -0
- package/lib/components/CashbackCalculator/useCashbackCalculator.js.map +1 -0
- package/lib/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/lib/ui-kit/InfoCard/InfoCard.js +2 -1
- package/lib/ui-kit/InfoCard/InfoCard.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +171 -2
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/mobile/bundle/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/mobile/bundle/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/mobile/bundle/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/mobile/bundle/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/mobile/bundle/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/mobile/dist/components/Blocks.js +2 -0
- package/mobile/dist/components/Blocks.js.map +1 -1
- package/mobile/dist/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculator.js +28 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculator.js.map +1 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorContent.js +2 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorContent.js.map +1 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.js +27 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCategory.js +72 -0
- package/mobile/dist/components/CashbackCalculator/CashbackCategory.js.map +1 -0
- package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.js +77 -0
- package/mobile/dist/components/CashbackCalculator/useCashbackCalculator.js.map +1 -0
- package/mobile/dist/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/mobile/dist/ui-kit/InfoCard/InfoCard.js +2 -1
- package/mobile/dist/ui-kit/InfoCard/InfoCard.js.map +1 -1
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/Blocks.js +2 -0
- package/mobile/lib/components/Blocks.js.map +1 -1
- package/mobile/lib/components/CashbackCalculator/CashbackCalculator.d.ts +6 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculator.js +26 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculator.js.map +1 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorContent.d.ts +24 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorContent.js +2 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorContent.js.map +1 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.d.ts +6 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.js +25 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCalculatorResult.js.map +1 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCategory.d.ts +14 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCategory.js +70 -0
- package/mobile/lib/components/CashbackCalculator/CashbackCategory.js.map +1 -0
- package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.d.ts +10 -0
- package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.js +74 -0
- package/mobile/lib/components/CashbackCalculator/useCashbackCalculator.js.map +1 -0
- package/mobile/lib/ui-kit/InfoCard/InfoCard.d.ts +2 -0
- package/mobile/lib/ui-kit/InfoCard/InfoCard.js +2 -1
- package/mobile/lib/ui-kit/InfoCard/InfoCard.js.map +1 -1
- package/mobile/src/components/Blocks.ts +2 -0
- package/mobile/src/components/CashbackCalculator/CashbackCalculator.example.json +1 -0
- package/mobile/src/components/CashbackCalculator/CashbackCalculator.tsx +117 -0
- package/mobile/src/components/CashbackCalculator/CashbackCalculator.ui.json +15 -0
- package/mobile/src/components/CashbackCalculator/CashbackCalculatorContent.ts +27 -0
- package/mobile/src/components/CashbackCalculator/CashbackCalculatorResult.tsx +66 -0
- package/mobile/src/components/CashbackCalculator/CashbackCategory.tsx +143 -0
- package/mobile/src/components/CashbackCalculator/useCashbackCalculator.ts +93 -0
- package/mobile/src/ui-kit/InfoCard/InfoCard.tsx +9 -2
- package/package.json +1 -1
- package/src/components/Blocks.mobile.ts +2 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/CashbackCalculator/CashbackCalculator.example.json +1 -0
- package/src/components/CashbackCalculator/CashbackCalculator.fixture.mobile.tsx +45 -0
- package/src/components/CashbackCalculator/CashbackCalculator.fixture.tsx +54 -0
- package/src/components/CashbackCalculator/CashbackCalculator.tsx +117 -0
- package/src/components/CashbackCalculator/CashbackCalculator.ui.json +15 -0
- package/src/components/CashbackCalculator/CashbackCalculatorContent.ts +27 -0
- package/src/components/CashbackCalculator/CashbackCalculatorResult.tsx +66 -0
- package/src/components/CashbackCalculator/CashbackCategory.tsx +143 -0
- package/src/components/CashbackCalculator/useCashbackCalculator.ts +93 -0
- package/src/ui-kit/InfoCard/InfoCard.tsx +9 -2
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type IconVersion } from '../../model/IconVersion';
|
|
2
|
+
import { type Picture } from '../../model/Picture';
|
|
2
3
|
import { type IconName } from '../Icon/IconProps';
|
|
3
4
|
export interface InfoCardProps {
|
|
4
5
|
__html?: string;
|
|
5
6
|
icon?: IconName;
|
|
6
7
|
iconVersion?: IconVersion;
|
|
8
|
+
image?: Picture;
|
|
7
9
|
}
|
|
8
10
|
export declare const InfoCard: import("@redneckz/uni-jsx").UNIComponent<InfoCardProps, any, any>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
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 { Icon } from '../Icon/Icon.js';
|
|
4
|
+
import { Img } from '../Img/Img.js';
|
|
4
5
|
import { RichText } from '../RichText/RichText.js';
|
|
5
|
-
export const InfoCard = JSX(({ __html, icon = 'InfoCircleIcon', iconVersion = 'black' }) => (_jsxs("div", { className: "flex flex-row items-center w-full min-h-14 bg-main-gray rounded-lg gap-m p-m", children: [_jsx("div", { className: "rounded-full bg-white p-xs", children: _jsx(Icon, { name: icon, width: "24", height: "24", iconVersion: iconVersion }) }), _jsx("div", { className: "", children: _jsx(RichText, { __html: __html }) })] })));
|
|
6
|
+
export const InfoCard = JSX(({ __html, icon = 'InfoCircleIcon', iconVersion = 'black', image }) => (_jsxs("div", { className: "flex flex-row items-center w-full min-h-14 bg-main-gray rounded-lg gap-m p-m", children: [_jsx("div", { className: "rounded-full bg-white p-xs", children: image ? (_jsx(Img, { image: image, className: "block w-max" })) : (_jsx(Icon, { name: icon, width: "24", height: "24", iconVersion: iconVersion })) }), _jsx("div", { className: "", children: _jsx(RichText, { __html: __html }) })] })));
|
|
6
7
|
//# sourceMappingURL=InfoCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoCard.js","sourceRoot":"","sources":["../../../src/ui-kit/InfoCard/InfoCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"InfoCard.js","sourceRoot":"","sources":["../../../src/ui-kit/InfoCard/InfoCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAShD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CACzB,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,gBAAgB,EAAE,WAAW,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrE,eAAK,SAAS,EAAC,8EAA8E,aAC3F,cAAK,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,aAAa,GAAG,CAC9C,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,WAAW,EAAE,WAAW,GAAI,CACtE,GACG,EACN,cAAK,SAAS,EAAC,EAAE,YACf,KAAC,QAAQ,IAAC,MAAM,EAAE,MAAM,GAAI,GACxB,IACF,CACP,CACF,CAAC"}
|
|
@@ -4643,7 +4643,7 @@
|
|
|
4643
4643
|
return [storedValue, setValue];
|
|
4644
4644
|
}
|
|
4645
4645
|
|
|
4646
|
-
const InfoCard = JSX(({ __html, icon = 'InfoCircleIcon', iconVersion = 'black' }) => (jsxs("div", { className: "flex flex-row items-center w-full min-h-14 bg-main-gray rounded-lg gap-m p-m", children: [jsx("div", { className: "rounded-full bg-white p-xs", children: jsx(Icon, { name: icon, width: "24", height: "24", iconVersion: iconVersion }) }), jsx("div", { className: "", children: jsx(RichText, { __html: __html }) })] })));
|
|
4646
|
+
const InfoCard = JSX(({ __html, icon = 'InfoCircleIcon', iconVersion = 'black', image }) => (jsxs("div", { className: "flex flex-row items-center w-full min-h-14 bg-main-gray rounded-lg gap-m p-m", children: [jsx("div", { className: "rounded-full bg-white p-xs", children: image ? (jsx(Img, { image: image, className: "block w-max" })) : (jsx(Icon, { name: icon, width: "24", height: "24", iconVersion: iconVersion })) }), jsx("div", { className: "", children: jsx(RichText, { __html: __html }) })] })));
|
|
4647
4647
|
|
|
4648
4648
|
const getCardTypes = async (paymentSystemTypeCd, creditProgramId) => {
|
|
4649
4649
|
const data = await fetchRetailJSON('/dictionaryFiltered', 'POST', {
|
|
@@ -8493,6 +8493,174 @@
|
|
|
8493
8493
|
return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [jsx(Img, { className: "self-center", image: icon }), title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsxs(Foldable, { children: [jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] }), cardCells.length >= visibleCellsCount ? (jsx(DefaultFoldButton, { className: "mt-m", label: isVisible ? 'Скрыть' : 'Подробнее о тарифе', isUnfolded: isVisible, embedded: true, data: data, onClick: handleFold })) : null] })) : (jsx("div", { children: visibleCells }))] }));
|
|
8494
8494
|
});
|
|
8495
8495
|
|
|
8496
|
+
const MAX_MONTH_CASHBACK = 5000;
|
|
8497
|
+
const MAX_YEAR_CASHBACK = 60000;
|
|
8498
|
+
const ResultText = JSX(({ text, value }) => (jsxs("div", { className: "space-y-xs w-full", children: [jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: text }), jsx("div", { className: "w-full text-2xl bg-main-gray px-4 py-3 rounded-md", children: `${toLocalNumberFormat()(value)} ₽` })] })));
|
|
8499
|
+
const CashbackCalculatorResult = JSX(({ cashbacks }) => {
|
|
8500
|
+
const { mounth, year } = getResult(cashbacks);
|
|
8501
|
+
return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [jsx(Headline, { title: "\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430", description: "\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043A\u0435\u0448\u0431\u044D\u043A\u0430 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E", headlineVersion: "XS", isEmbedded: true, align: "text-left" }), jsxs("div", { className: "flex flex-col @xs:flex-row gap-lg", children: [jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u043C\u0435\u0441\u044F\u0446", value: mounth }), jsx(ResultText, { text: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0432 \u0433\u043E\u0434", value: year })] })] }));
|
|
8502
|
+
});
|
|
8503
|
+
const getResult = (cashbacks) => {
|
|
8504
|
+
return cashbacks.reduce((acc, val) => {
|
|
8505
|
+
const mounthSum = (Number(val.percent.key) / 100) * val.sum;
|
|
8506
|
+
return {
|
|
8507
|
+
mounth: Math.min(acc.mounth + mounthSum, MAX_MONTH_CASHBACK),
|
|
8508
|
+
year: Math.min(acc.year + mounthSum * 12, MAX_YEAR_CASHBACK),
|
|
8509
|
+
};
|
|
8510
|
+
}, {
|
|
8511
|
+
mounth: 0,
|
|
8512
|
+
year: 0,
|
|
8513
|
+
});
|
|
8514
|
+
};
|
|
8515
|
+
|
|
8516
|
+
const AllPercentCategories = [
|
|
8517
|
+
{
|
|
8518
|
+
text: 'Категория на кешбэк 1,5%',
|
|
8519
|
+
key: '1.5',
|
|
8520
|
+
},
|
|
8521
|
+
{
|
|
8522
|
+
text: 'Категория на кешбэк 3%',
|
|
8523
|
+
key: '3',
|
|
8524
|
+
},
|
|
8525
|
+
{
|
|
8526
|
+
text: 'Категория на кешбэк 5%',
|
|
8527
|
+
key: '5',
|
|
8528
|
+
},
|
|
8529
|
+
{
|
|
8530
|
+
text: 'Категория на кешбэк 10%',
|
|
8531
|
+
key: '10',
|
|
8532
|
+
},
|
|
8533
|
+
{
|
|
8534
|
+
text: 'Категория на кешбэк 15%',
|
|
8535
|
+
key: '15',
|
|
8536
|
+
},
|
|
8537
|
+
];
|
|
8538
|
+
const PercentCategoriesWithoutIncreased = [
|
|
8539
|
+
{
|
|
8540
|
+
text: 'Категория на кешбэк 1,5%',
|
|
8541
|
+
key: '1.5',
|
|
8542
|
+
},
|
|
8543
|
+
{
|
|
8544
|
+
text: 'Категория на кешбэк 3%',
|
|
8545
|
+
key: '3',
|
|
8546
|
+
},
|
|
8547
|
+
];
|
|
8548
|
+
const CashbackCategory = JSX(({ categories, cashback, showIncreasedPercents, maxInputRange, deleteImage, onDelete, onChange, }) => {
|
|
8549
|
+
const [currentCategory, setCurrentCategory] = useState(getRandomElement(categories));
|
|
8550
|
+
const isMainCashback = cashback.id === 0;
|
|
8551
|
+
const onChangePercent = (value) => {
|
|
8552
|
+
onChange({
|
|
8553
|
+
...cashback,
|
|
8554
|
+
percent: value,
|
|
8555
|
+
});
|
|
8556
|
+
};
|
|
8557
|
+
const onChangeSum = (value) => {
|
|
8558
|
+
onChange({
|
|
8559
|
+
...cashback,
|
|
8560
|
+
sum: value,
|
|
8561
|
+
});
|
|
8562
|
+
};
|
|
8563
|
+
return (jsxs("div", { className: "w-full space-y-m", children: [jsxs("div", { className: "space-y-xs", children: [jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044E \u043A\u0435\u0448\u0431\u044D\u043A\u0430" }), jsxs("div", { className: "flex gap-m", children: [jsx(Select, { className: "w-full", isManualInput: isMainCashback, placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u044D\u0448\u0431\u044D\u043A", options: getPercentCategories(isMainCashback, showIncreasedPercents), value: cashback.percent, onChange: onChangePercent }), !isMainCashback ? (jsx(Button, { version: "secondary", onClick: () => onDelete(cashback.id), shape: "round", className: "px-4 rounded-md", children: jsx(Img, { image: deleteImage }) })) : null] })] }), categories?.length && !isMainCashback ? (jsx(Select, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u043E\u0440\u0438\u044E", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u0430\u0442\u0435\u043E\u0440\u0438\u044E", options: categories, value: currentCategory, onChange: setCurrentCategory })) : null, jsx(InputRange, { step: 500, title: "\u0421\u0443\u043C\u043C\u0430 \u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0432 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438", min: 0, max: maxInputRange, value: cashback.sum, onChange: onChangeSum })] }));
|
|
8564
|
+
});
|
|
8565
|
+
const getRandomElement = (arr) => arr?.[new Date().getTime().toString().slice(-1)];
|
|
8566
|
+
const getPercentCategories = (isMainCashback, showIncreasedPercents) => {
|
|
8567
|
+
if (isMainCashback) {
|
|
8568
|
+
return [];
|
|
8569
|
+
}
|
|
8570
|
+
else if (showIncreasedPercents) {
|
|
8571
|
+
return AllPercentCategories;
|
|
8572
|
+
}
|
|
8573
|
+
else {
|
|
8574
|
+
return PercentCategoriesWithoutIncreased;
|
|
8575
|
+
}
|
|
8576
|
+
};
|
|
8577
|
+
|
|
8578
|
+
const DEFAULT_MULTIPLE_CASHBACK = [
|
|
8579
|
+
{
|
|
8580
|
+
id: 0,
|
|
8581
|
+
percent: {
|
|
8582
|
+
text: 'Категория на кешбэк 1%',
|
|
8583
|
+
key: '1',
|
|
8584
|
+
},
|
|
8585
|
+
sum: 5000,
|
|
8586
|
+
},
|
|
8587
|
+
{
|
|
8588
|
+
id: 1,
|
|
8589
|
+
percent: {
|
|
8590
|
+
text: 'Категория на кешбэк 1,5%',
|
|
8591
|
+
key: '1.5',
|
|
8592
|
+
},
|
|
8593
|
+
sum: 5000,
|
|
8594
|
+
},
|
|
8595
|
+
{
|
|
8596
|
+
id: 2,
|
|
8597
|
+
percent: {
|
|
8598
|
+
text: 'Категория на кешбэк 1,5%',
|
|
8599
|
+
key: '1.5',
|
|
8600
|
+
},
|
|
8601
|
+
sum: 5000,
|
|
8602
|
+
},
|
|
8603
|
+
];
|
|
8604
|
+
const DEFAULT_CASHBACK = [
|
|
8605
|
+
{
|
|
8606
|
+
id: 0,
|
|
8607
|
+
percent: {
|
|
8608
|
+
text: 'Категория на кешбэк 1%',
|
|
8609
|
+
key: '1',
|
|
8610
|
+
},
|
|
8611
|
+
sum: 5000,
|
|
8612
|
+
},
|
|
8613
|
+
];
|
|
8614
|
+
const useCashbackCalculator = (isMultiple) => {
|
|
8615
|
+
const { data } = useLeadFormData('CASHBACK_CATEGORY');
|
|
8616
|
+
const [cashbacks, setCashbacks] = useState(isMultiple ? DEFAULT_MULTIPLE_CASHBACK : DEFAULT_CASHBACK);
|
|
8617
|
+
const categories = data?.map((_) => ({
|
|
8618
|
+
key: _.key || '',
|
|
8619
|
+
text: _.value,
|
|
8620
|
+
})) || [];
|
|
8621
|
+
const onAddNewCashback = () => setCashbacks((_) => [
|
|
8622
|
+
..._,
|
|
8623
|
+
{
|
|
8624
|
+
id: _[_.length - 1].id + 1,
|
|
8625
|
+
percent: {
|
|
8626
|
+
text: 'Категория на кешбэк 1,5%',
|
|
8627
|
+
key: '1.5',
|
|
8628
|
+
},
|
|
8629
|
+
sum: 5000,
|
|
8630
|
+
},
|
|
8631
|
+
]);
|
|
8632
|
+
const onChangeCashback = (item) => setCashbacks((prev) => prev.map((_) => {
|
|
8633
|
+
if (_.id === item.id) {
|
|
8634
|
+
return item;
|
|
8635
|
+
}
|
|
8636
|
+
return _;
|
|
8637
|
+
}));
|
|
8638
|
+
const onDeleteCashback = (id) => setCashbacks((prev) => prev.filter((_) => _.id !== id));
|
|
8639
|
+
const onResetCashback = () => setCashbacks(DEFAULT_CASHBACK);
|
|
8640
|
+
return {
|
|
8641
|
+
cashbacks,
|
|
8642
|
+
categories,
|
|
8643
|
+
onAddNewCashback,
|
|
8644
|
+
onChangeCashback,
|
|
8645
|
+
onDeleteCashback,
|
|
8646
|
+
onResetCashback,
|
|
8647
|
+
};
|
|
8648
|
+
};
|
|
8649
|
+
|
|
8650
|
+
const INCREASED_PERCENTS = ['5', '10', '15'];
|
|
8651
|
+
const MAX_CATEGORIES = 5;
|
|
8652
|
+
const INFO_BLOCK_HTML = `<p>Полученные баллы можно конвертировать в рубли и компенсировать покупки у партнеров. Подробнее в <a href='#docs'>документах</a></p>`;
|
|
8653
|
+
const CashbackCalculator = JSX(({ maxInputRange = 300000, image, deleteImage, infoImage, isMultiple = false, className = '', ...rest }) => {
|
|
8654
|
+
const { cashbacks, categories, onAddNewCashback, onChangeCashback, onDeleteCashback, onResetCashback, } = useCashbackCalculator(isMultiple);
|
|
8655
|
+
const img = image?.src ? (jsx(Img, { image: image, className: "hidden w-full @xl:block", imageClassName: "justify-self-center" })) : null;
|
|
8656
|
+
return (jsxs(BlockWrapper, { className: style('flex flex-col justify-center items-center gap-lg', className), defaultPadding: style('p-6xl'), ...rest, children: [jsx(Headline, { title: "\u041A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440 \u043A\u0435\u0448\u0431\u044D\u043A\u0430", description: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 5 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439 \u043A\u0435\u0448\u0431\u044D\u043A\u0430, \u0438 \u0432\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 \u043E\u0431\u0449\u0438\u0439 \u0440\u0430\u0441\u0447\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0430\u0435\u043C\u043E\u0433\u043E \u043A\u0435\u0448\u0431\u044D\u043A\u0430", headlineVersion: "XL", isEmbedded: true }), jsxs("div", { className: "flex flex-row items-start gap-lg", children: [jsxs("div", { className: "w-full flex flex-col justify-center items-center gap-lg", children: [cashbacks.map((_) => (jsx(CashbackCategory, { categories: categories, cashback: _, showIncreasedPercents: showIncreasedPercents(_, cashbacks), maxInputRange: maxInputRange, deleteImage: deleteImage, onDelete: onDeleteCashback, onChange: onChangeCashback }, String(_.id)))), renderButtons$1(cashbacks.length, onAddNewCashback, onResetCashback), jsx(CashbackCalculatorResult, { cashbacks: cashbacks }), jsx(InfoCard, { __html: INFO_BLOCK_HTML, image: infoImage }), jsx(LinkButton, { className: "w-full @lg:w-auto self-start", href: "#zayavka", text: "\u041E\u0444\u043E\u0440\u043C\u0438\u0442\u044C \u043A\u0430\u0440\u0442\u0443", version: "primary" })] }), img] })] }));
|
|
8657
|
+
});
|
|
8658
|
+
const renderButtons$1 = (cashbacksLength, onAddNewCashback, onResetCashback) => {
|
|
8659
|
+
return (jsxs("div", { className: "w-full flex flex-col gap-lg", children: [cashbacksLength < MAX_CATEGORIES ? (jsx(Button, { className: "self-start text-primary-main", embedded: true, version: "secondary", onClick: onAddNewCashback, children: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0435\u0449\u0435" })) : null, cashbacksLength > 2 ? (jsx(Button, { className: "self-start", version: "secondary", onClick: onResetCashback, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438" })) : null] }));
|
|
8660
|
+
};
|
|
8661
|
+
const showIncreasedPercents = (currentCashback, cashback) => INCREASED_PERCENTS.includes(currentCashback.percent.key) ||
|
|
8662
|
+
!cashback.some((_) => INCREASED_PERCENTS.includes(_.percent.key));
|
|
8663
|
+
|
|
8496
8664
|
const ProgressBar = JSX(({ step = 10, description, showPercentage = true }) => (jsxs("div", { children: [jsx("div", { className: "h-4 w-full bg-gray relative", children: jsx("div", { className: "h-4 bg-green", style: { width: `${step}%` } }) }), jsxs("div", { className: "relative", children: [showPercentage ? jsxs("div", { className: "absolute left-2/4 text-green", children: [step, "%"] }) : null, description ? jsx("div", { className: "text-right pr-m text-gray", children: description }) : null] })] })));
|
|
8497
8665
|
|
|
8498
8666
|
const CreditCardFormProgress = JSX(({ step = 1, totalSteps = 6, stepsTitles = [] }) => {
|
|
@@ -12103,6 +12271,7 @@
|
|
|
12103
12271
|
CreditCardForm,
|
|
12104
12272
|
CreditForm,
|
|
12105
12273
|
DebitForm,
|
|
12274
|
+
CashbackCalculator,
|
|
12106
12275
|
};
|
|
12107
12276
|
|
|
12108
12277
|
const applyAspects = (aspects) => (ev) => {
|
|
@@ -12226,7 +12395,7 @@
|
|
|
12226
12395
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
12227
12396
|
});
|
|
12228
12397
|
|
|
12229
|
-
const packageVersion = "0.14.
|
|
12398
|
+
const packageVersion = "0.14.935";
|
|
12230
12399
|
|
|
12231
12400
|
exports.Blocks = Blocks;
|
|
12232
12401
|
exports.ContentPage = ContentPage;
|