@redneckz/wildless-cms-uni-blocks 0.14.246 → 0.14.248
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 +1197 -1159
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/bundle/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/bundle/components/Carousel/Carousel.d.ts +2 -1
- package/bundle/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/bundle/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/{lib/ui-kit/BaseFiltration/renderFiltrationForm.d.ts → bundle/ui-kit/BaseFiltration/FiltrationForm.d.ts} +4 -6
- package/dist/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/dist/components/BankAccountFiltration/BankAccountFiltration.js +50 -0
- package/dist/components/BankAccountFiltration/BankAccountFiltration.js.map +1 -0
- package/dist/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/dist/components/BankAccountFiltration/BankAccountFiltrationContent.js +2 -0
- package/dist/components/BankAccountFiltration/BankAccountFiltrationContent.js.map +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/Carousel/Carousel.d.ts +2 -1
- package/dist/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/dist/components/DepositFiltration/DepositFiltration.js +5 -6
- package/dist/components/DepositFiltration/DepositFiltration.js.map +1 -1
- package/dist/components/MortgageFiltration/MortgageFiltration.js +2 -2
- package/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/dist/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/{bundle/ui-kit/BaseFiltration/renderFiltrationForm.d.ts → dist/ui-kit/BaseFiltration/FiltrationForm.d.ts} +4 -7
- package/dist/ui-kit/BaseFiltration/FiltrationForm.js +28 -0
- package/dist/ui-kit/BaseFiltration/FiltrationForm.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltration.fixture.d.ts +6 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltration.js +48 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltration.js.map +1 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltrationContent.js +2 -0
- package/lib/components/BankAccountFiltration/BankAccountFiltrationContent.js.map +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/Carousel/Carousel.d.ts +2 -1
- package/lib/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/lib/components/DepositFiltration/DepositFiltration.js +5 -6
- package/lib/components/DepositFiltration/DepositFiltration.js.map +1 -1
- package/lib/components/MortgageFiltration/MortgageFiltration.js +2 -2
- package/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/lib/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/{dist/ui-kit/BaseFiltration/renderFiltrationForm.d.ts → lib/ui-kit/BaseFiltration/FiltrationForm.d.ts} +4 -7
- package/lib/ui-kit/BaseFiltration/FiltrationForm.js +26 -0
- package/lib/ui-kit/BaseFiltration/FiltrationForm.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +15 -12
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/mobile/bundle/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/mobile/bundle/components/Carousel/Carousel.d.ts +2 -1
- package/mobile/bundle/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/mobile/bundle/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/mobile/bundle/ui-kit/BaseFiltration/{renderFiltrationForm.d.ts → FiltrationForm.d.ts} +4 -7
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltration.js +50 -0
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltration.js.map +1 -0
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltrationContent.js +2 -0
- package/mobile/dist/components/BankAccountFiltration/BankAccountFiltrationContent.js.map +1 -0
- package/mobile/dist/components/Carousel/Carousel.d.ts +2 -1
- package/mobile/dist/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/mobile/dist/components/DepositFiltration/DepositFiltration.js +5 -6
- package/mobile/dist/components/DepositFiltration/DepositFiltration.js.map +1 -1
- package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js +2 -2
- package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/mobile/dist/ui-kit/BaseFiltration/FiltrationForm.d.ts +12 -0
- package/mobile/dist/ui-kit/BaseFiltration/FiltrationForm.js +28 -0
- package/mobile/dist/ui-kit/BaseFiltration/FiltrationForm.js.map +1 -0
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltration.d.ts +6 -0
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltration.js +48 -0
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltration.js.map +1 -0
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltrationContent.d.ts +21 -0
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltrationContent.js +2 -0
- package/mobile/lib/components/BankAccountFiltration/BankAccountFiltrationContent.js.map +1 -0
- package/mobile/lib/components/Carousel/Carousel.d.ts +2 -1
- package/mobile/lib/components/CarouselLinks/CarouselLinks.d.ts +2 -1
- package/mobile/lib/components/DepositFiltration/DepositFiltration.js +5 -6
- package/mobile/lib/components/DepositFiltration/DepositFiltration.js.map +1 -1
- package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js +2 -2
- package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
- package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +4 -0
- package/mobile/lib/ui-kit/BaseFiltration/FiltrationForm.d.ts +12 -0
- package/mobile/lib/ui-kit/BaseFiltration/FiltrationForm.js +26 -0
- package/mobile/lib/ui-kit/BaseFiltration/FiltrationForm.js.map +1 -0
- package/mobile/src/components/BankAccountFiltration/BankAccountFiltration.example.json +64 -0
- package/mobile/src/components/BankAccountFiltration/BankAccountFiltration.tsx +109 -0
- package/mobile/src/components/BankAccountFiltration/BankAccountFiltration.ui.json +1 -0
- package/mobile/src/components/BankAccountFiltration/BankAccountFiltrationContent.ts +27 -0
- package/mobile/src/components/Carousel/Carousel.tsx +1 -1
- package/mobile/src/components/CarouselLinks/CarouselLinks.tsx +1 -1
- package/mobile/src/components/DepositFiltration/DepositFiltration.tsx +25 -22
- package/mobile/src/components/MortgageFiltration/MortgageFiltration.tsx +7 -2
- package/mobile/src/ui-kit/BaseFiltration/BaseFiltrationContent.ts +4 -0
- package/mobile/src/ui-kit/BaseFiltration/{renderFiltrationForm.tsx → FiltrationForm.tsx} +31 -26
- package/package.json +1 -1
- package/src/components/BankAccountFiltration/BankAccountFiltration.example.json +64 -0
- package/src/components/BankAccountFiltration/BankAccountFiltration.fixture.tsx +141 -0
- package/src/components/BankAccountFiltration/BankAccountFiltration.tsx +109 -0
- package/src/components/BankAccountFiltration/BankAccountFiltration.ui.json +1 -0
- package/src/components/BankAccountFiltration/BankAccountFiltrationContent.ts +27 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/Carousel/Carousel.tsx +1 -1
- package/src/components/CarouselLinks/CarouselLinks.tsx +1 -1
- package/src/components/DepositFiltration/DepositFiltration.tsx +25 -22
- package/src/components/MortgageFiltration/MortgageFiltration.tsx +7 -2
- package/src/ui-kit/BaseFiltration/BaseFiltrationContent.ts +4 -0
- package/src/ui-kit/BaseFiltration/{renderFiltrationForm.tsx → FiltrationForm.tsx} +31 -26
- package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +0 -23
- package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +0 -1
- package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +0 -20
- package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +0 -1
- package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.d.ts +0 -15
- package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +0 -23
- package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +0 -1
- package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.d.ts +0 -15
- package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +0 -20
- package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +0 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { renderBlock } from '../../BlockRenderer/renderBlock.js';
|
|
3
|
+
import { renderBlocksList } from '../../BlockRenderer/renderBlockList.js';
|
|
4
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm.js';
|
|
5
|
+
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm.js';
|
|
6
|
+
import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
|
|
7
|
+
import { Button } from '../../ui-kit/Button/Button.js';
|
|
8
|
+
import { NotFound } from '../../ui-kit/NotFound/NotFound.js';
|
|
9
|
+
import { Select } from '../../ui-kit/Select/Select.js';
|
|
10
|
+
import { UniBlock } from '../../UniBlock/UniBlock.js';
|
|
11
|
+
import { getBorderStyle } from '../../utils/getBorderStyle.js';
|
|
12
|
+
import { style } from '../../utils/style.js';
|
|
13
|
+
import { zip } from '../../utils/zip.js';
|
|
14
|
+
import { Carousel } from '../Carousel/Carousel.js';
|
|
15
|
+
const EMPTY_SCHEMA = {};
|
|
16
|
+
const initialFiltrationState = {};
|
|
17
|
+
export const BankAccountFiltration = UniBlock(({ className, filtrationSchema = EMPTY_SCHEMA, resetButton, notFound, ...rest }) => {
|
|
18
|
+
const [, { blocksToRender }, { field, reset }] = useFiltrationForm(initialFiltrationState, {
|
|
19
|
+
block: rest.block,
|
|
20
|
+
page: rest.options?.page,
|
|
21
|
+
});
|
|
22
|
+
const selectArrProps = Object.entries(filtrationSchema)
|
|
23
|
+
// Only StringArray
|
|
24
|
+
.filter(([, schema]) => schema.type === 'array' && schema.ui === 'dropdown')
|
|
25
|
+
.map(([name, schema]) => ({
|
|
26
|
+
className: 'w-64',
|
|
27
|
+
label: schema.title,
|
|
28
|
+
options: stringArrayToOptions(schema),
|
|
29
|
+
...field(name, {
|
|
30
|
+
parse: ({ key }) => [key],
|
|
31
|
+
format: ([value] = []) => stringArrayToOptions(schema).find((_) => _.key === value) || { key: '' },
|
|
32
|
+
}),
|
|
33
|
+
}));
|
|
34
|
+
const Selects = selectArrProps.map((props, i) => _jsx(Select, { ...props }, String(i)));
|
|
35
|
+
return (_jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", version: "transparent", ...rest, children: [_jsx(FiltrationForm, { filtrationSchema: filtrationSchema, field: field, reset: reset, children: _jsxs("div", { children: [Selects, _jsx("div", { children: _jsx(Button, { type: "reset", className: "mt-lg w-64", onClick: reset, version: resetButton?.version, children: resetButton?.text }) })] }) }), _jsx("div", { className: style(blocksToRender?.length ? 'hidden' : 'block'), children: notFound ? _jsx(NotFound, { ...notFound }) : null }), _jsx(Carousel, { padding: "p-0", isEmbedded: true, itemCount: blocksToRender?.length, visibleItemCount: 0, isAlignCenter: true, isGap: false, children: renderBlocksList(blocksToRender, {
|
|
36
|
+
...rest.options,
|
|
37
|
+
parent: rest.block,
|
|
38
|
+
renderProps: (block, options, i) => (_jsx("div", { className: style('relative min-w-80', getBorderStyle(true)), children: renderBlock(block, options) }, String(i))),
|
|
39
|
+
}) })] }));
|
|
40
|
+
}, {
|
|
41
|
+
childrenTypes: ['CarouselTariffsCard'],
|
|
42
|
+
childSchema: (content) => content?.filtrationSchema || {},
|
|
43
|
+
});
|
|
44
|
+
const stringArrayToOptions = (stringEnum) => zip(stringEnum.items?.enum || [], stringEnum.items?.enumNames || []).map(([key, text]) => ({
|
|
45
|
+
key,
|
|
46
|
+
text,
|
|
47
|
+
}));
|
|
48
|
+
//# sourceMappingURL=BankAccountFiltration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankAccountFiltration.js","sourceRoot":"","sources":["../../../src/components/BankAccountFiltration/BankAccountFiltration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type BaseFiltrationInnerContent, type StringArray } from '../../ui-kit/BaseFiltration/BaseFiltrationContent';
|
|
2
|
+
import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
|
|
3
|
+
export declare type BankAccountFiltrationSchema = {
|
|
4
|
+
/** @title Для кого */
|
|
5
|
+
consumer?: StringArray;
|
|
6
|
+
/** @title Дополнительные опции */
|
|
7
|
+
extraOptions?: StringArray;
|
|
8
|
+
/** @title Внешние переводы */
|
|
9
|
+
externalTransfers?: StringArray;
|
|
10
|
+
/** @title Внесение наличных */
|
|
11
|
+
depositingCash?: StringArray;
|
|
12
|
+
/** @title Снятие наличных */
|
|
13
|
+
withdrawalCash?: StringArray;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @title Подборщик тарифов
|
|
17
|
+
*/
|
|
18
|
+
export declare type BankAccountFiltrationContent = UniBlockContent & BaseFiltrationInnerContent & {
|
|
19
|
+
/** @title Параметры фильтрации */
|
|
20
|
+
filtrationSchema?: BankAccountFiltrationSchema;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BankAccountFiltrationContent.js","sourceRoot":"","sources":["../../../src/components/BankAccountFiltration/BankAccountFiltrationContent.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
|
|
2
2
|
import { type CarouselContent } from './CarouselContent';
|
|
3
|
-
|
|
3
|
+
interface CarouselProps extends CarouselContent, UniBlockProps {
|
|
4
4
|
itemCount?: number;
|
|
5
5
|
isEmbedded?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare const Carousel: import("../../UniBlock/UniBlock").UniBlockComponent<CarouselProps>;
|
|
8
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
|
|
2
2
|
import { type CarouselLinksContent } from './CarouselLinksContent';
|
|
3
|
-
|
|
3
|
+
interface CarouselLinksProps extends CarouselLinksContent, UniBlockProps {
|
|
4
4
|
}
|
|
5
5
|
export declare const CarouselLinks: import("@redneckz/uni-jsx").UNIComponent<CarouselLinksProps, any, any>;
|
|
6
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { BaseFiltrationInner } from '../../ui-kit/BaseFiltration/BaseFiltrationInner.js';
|
|
3
|
-
import {
|
|
3
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm.js';
|
|
4
4
|
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm.js';
|
|
5
5
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
|
|
6
6
|
import { CurrencyInput } from '../../ui-kit/CurrencyInput/CurrencyInput.js';
|
|
@@ -27,11 +27,10 @@ export const DepositFiltration = UniBlock(({ className, filtrationSchema = {}, r
|
|
|
27
27
|
});
|
|
28
28
|
const rateRows = blocksWithProps.map(([, _]) => _?.paramsSource?.rateRows);
|
|
29
29
|
const months = getMonths(rateRows);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return (_jsxs(BlockWrapper, { className: style('space-y-2xs', className), defaultPadding: "p-0", version: "transparent", ...rest, children: [renderFiltrationForm({ field, reset, filtrationSchema, resetButton, children: Inputs }), _jsx(BaseFiltrationInner, { blocksToRender: blocksToRender, ...rest })] }));
|
|
30
|
+
return (_jsxs(BlockWrapper, { className: style('space-y-2xs', className), defaultPadding: "p-0", version: "transparent", ...rest, children: [_jsx(FiltrationForm, { filtrationSchema: filtrationSchema, resetButton: resetButton, field: field, reset: reset, children: _jsxs("div", { className: "@4xl:max-w-xs", children: [_jsx(CurrencyInput, { label: sumInput?.title, min: DEFAULT_MIN_SUM, max: DEFAULT_MAX_SUM, ...field('sum', {
|
|
31
|
+
parse: (min) => ({ min: Number(min), max: DEFAULT_MAX_SUM }),
|
|
32
|
+
format: ({ min }) => String(min),
|
|
33
|
+
}) }), _jsx(InputRange, { title: periodInput?.title, items: ['От 3 мес', 'До 5 лет'], list: months, ...field('period') })] }) }), _jsx(BaseFiltrationInner, { blocksToRender: blocksToRender, ...rest })] }));
|
|
35
34
|
}, {
|
|
36
35
|
childrenTypes: ['ProductBlock'],
|
|
37
36
|
childSchema: (content) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepositFiltration.js","sourceRoot":"","sources":["../../../src/components/DepositFiltration/DepositFiltration.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DepositFiltration.js","sourceRoot":"","sources":["../../../src/components/DepositFiltration/DepositFiltration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
2
|
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { BaseFiltrationInner } from '../../ui-kit/BaseFiltration/BaseFiltrationInner.js';
|
|
4
|
-
import {
|
|
4
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm.js';
|
|
5
5
|
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm.js';
|
|
6
6
|
import { useHotFilters } from '../../ui-kit/BaseFiltration/useHotFilters.js';
|
|
7
7
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
|
|
@@ -26,7 +26,7 @@ export const MortgageFiltration = UniBlock(({ className, hotFilters, filtrationS
|
|
|
26
26
|
blocks: rest.block?.blocks,
|
|
27
27
|
onFiltrationStateChange: handleFiltrationStateChange,
|
|
28
28
|
});
|
|
29
|
-
return (_jsxs(BlockWrapper, { className: style('space-y-2xs', className), defaultPadding: "p-0", version: "transparent", ...rest, children: [_jsx(TabsControl, { ...tabsControlProps }),
|
|
29
|
+
return (_jsxs(BlockWrapper, { className: style('space-y-2xs', className), defaultPadding: "p-0", version: "transparent", ...rest, children: [_jsx(TabsControl, { ...tabsControlProps }), _jsx(FiltrationForm, { filtrationSchema: filtrationSchema, resetButton: resetButton, field: field, reset: reset }), _jsx(BaseFiltrationInner, { blocksToRender: blocksToRender, ...rest })] }));
|
|
30
30
|
}, {
|
|
31
31
|
childrenTypes: ['ProductBlock'],
|
|
32
32
|
childSchema: (content) => content?.filtrationSchema || {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MortgageFiltration.js","sourceRoot":"","sources":["../../../src/components/MortgageFiltration/MortgageFiltration.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MortgageFiltration.js","sourceRoot":"","sources":["../../../src/components/MortgageFiltration/MortgageFiltration.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ1C,MAAM,sBAAsB,GAA4B;IACtD,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;CACV,CAAC;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CACxC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACzE,MAAM,CAAC,eAAe,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CACvF,sBAAsB,EACtB;QACE,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI;KACzB,CACF,CAAC;IAEF,MAAM,2BAA2B,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,sBAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/F,MAAM,gBAAgB,GAAG,aAAa,CAAC;QACrC,UAAU;QACV,eAAe;QACf,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM;QAC1B,uBAAuB,EAAE,2BAA2B;KACrD,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,YAAY,IACX,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAC,KAAK,EACpB,OAAO,EAAC,aAAa,KACjB,IAAI,aAER,KAAC,WAAW,OAAK,gBAAgB,GAAI,EACrC,KAAC,cAAc,IACb,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACZ,EACF,KAAC,mBAAmB,IAAC,cAAc,EAAE,cAAc,KAAM,IAAI,GAAI,IACpD,CAChB,CAAC;AACJ,CAAC,EACD;IACE,aAAa,EAAE,CAAC,cAAc,CAAC;IAC/B,WAAW,EAAE,CAAC,OAAmC,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE;CACtF,CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type FormFieldRegisterer } from '../../hooks/useForm';
|
|
2
|
+
import { type BaseFiltrationInnerContent, type NumberRange, type NumberValue, type StringArray } from './BaseFiltrationContent';
|
|
3
|
+
declare type SchemaItem = StringArray | NumberRange | NumberValue;
|
|
4
|
+
declare type FiltrationSchema = Record<string, SchemaItem>;
|
|
5
|
+
interface FiltrationFormProps {
|
|
6
|
+
filtrationSchema: FiltrationSchema;
|
|
7
|
+
resetButton?: BaseFiltrationInnerContent['resetButton'];
|
|
8
|
+
field: FormFieldRegisterer<any>;
|
|
9
|
+
reset?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const FiltrationForm: import("@redneckz/uni-jsx").UNIComponent<FiltrationFormProps, any, any>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
3
|
+
import { joinList } from '../../utils/joinList.js';
|
|
4
|
+
import { Button } from '../Button/Button.js';
|
|
5
|
+
import { SlideCheckboxGroup } from '../SlideCheckboxGroup/SlideCheckboxGroup.js';
|
|
6
|
+
import { Text } from '../Text/Text.js';
|
|
7
|
+
export const FiltrationForm = JSX(({ children, filtrationSchema, resetButton, field, reset }) => (_jsxs("form", { className: "flex flex-col @4xl:flex-row justify-between bg-white p-4xl gap-s @4xl:gap-0", children: [_jsxs("div", { className: "flex flex-col @4xl:flex-row gap-xl", children: [children, joinList(_jsx("div", { className: "h-full w-px bg-gray" }))(
|
|
8
|
+
// TS can't correctly refine array's type after filter
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
10
|
+
Object.entries(filtrationSchema).map(renderFormItem(field)).filter(Boolean))] }), resetButton ? (_jsx("div", { children: _jsx(Button, { type: "reset", className: "w-full @4xl:w-56 @4xl:ml-s", onClick: reset, children: resetButton?.text }) })) : null] })));
|
|
11
|
+
const renderFormItem = (field) => ([key, item]) => {
|
|
12
|
+
const type = item?.type;
|
|
13
|
+
switch (type) {
|
|
14
|
+
case 'array':
|
|
15
|
+
return renderArrayFormItem(key, field)(item);
|
|
16
|
+
default:
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const renderArrayFormItem = (key, field) => (item) => item?.ui !== 'dropdown' ? renderCheckboxes(key, field)(item) : null;
|
|
21
|
+
const renderCheckboxes = (key, field) => (item) => {
|
|
22
|
+
const options = item?.items?.enum?.map((e, i) => ({ value: e, title: item?.items?.enumNames?.[i] || '' })) ||
|
|
23
|
+
[];
|
|
24
|
+
return (_jsxs("div", { className: "flex-1", children: [item?.title ? (_jsx("div", { className: "mb-m", children: _jsx(Text, { size: "text-m", font: "font-medium", color: "text-primary-text", children: item.title }) })) : null, _jsx(SlideCheckboxGroup, { items: options, multiple: !item?.single, ...field(key) })] }, key));
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=FiltrationForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiltrationForm.js","sourceRoot":"","sources":["../../../src/ui-kit/BaseFiltration/FiltrationForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAkBpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAC/B,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC7D,gBAAM,SAAS,EAAC,6EAA6E,aAC3F,eAAK,SAAS,EAAC,oCAAoC,aAChD,QAAQ,EACR,QAAQ,CAAC,cAAK,SAAS,EAAC,qBAAqB,GAAG,CAAC;gBAChD,sDAAsD;gBACtD,iEAAiE;gBACjE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAY,CACvF,IACG,EACL,WAAW,CAAC,CAAC,CAAC,CACb,wBACE,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,4BAA4B,EAAC,OAAO,EAAE,KAAK,YACvE,WAAW,EAAE,IAAI,GACX,GACL,CACP,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CACF,CAAC;AAEF,MAAM,cAAc,GAClB,CAAC,KAA+B,EAAE,EAAE,CACpC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAuB,EAAE,EAAE;IACpC,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IAExB,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/C;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC,CAAC;AAEJ,MAAM,mBAAmB,GACvB,CAAC,GAAW,EAAE,KAA+B,EAAE,EAAE,CAAC,CAAC,IAAkB,EAAE,EAAE,CACvE,IAAI,EAAE,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAExE,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,KAA+B,EAAE,EAAE,CAAC,CAAC,IAAkB,EAAE,EAAE;IAChG,MAAM,OAAO,GACX,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1F,EAAE,CAAC;IAEL,OAAO,CACL,eAAK,SAAS,EAAC,QAAQ,aACpB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CACb,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,mBAAmB,YAC7D,IAAI,CAAC,KAAK,GACN,GACH,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,kBAAkB,IACjB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KACnB,KAAK,CAA+B,GAAG,CAAC,GAC5C,KAZyB,GAAG,CAa1B,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"content": {
|
|
3
|
+
"filtrationSchema": {
|
|
4
|
+
"consumer": {
|
|
5
|
+
"title": "Для кого",
|
|
6
|
+
"type": "array",
|
|
7
|
+
"single": true,
|
|
8
|
+
"ui": "dropdown",
|
|
9
|
+
"items": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"enum": ["farmers", "newBusiness", "activeBusiness"],
|
|
12
|
+
"enumNames": ["Для фермеров", "Для начинающего бизнеса", "Для активного бизнеса"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"options": {
|
|
16
|
+
"title": "Дополнительные опции",
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["rko", "acquiring", "ved"],
|
|
21
|
+
"enumNames": ["РКО", "Эквайринг", "ВЭД"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"externalTransfers": {
|
|
25
|
+
"title": "Внешние переводы на счета ЮЛ и ИП в месяц",
|
|
26
|
+
"type": "array",
|
|
27
|
+
"single": true,
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["often", "rarely"],
|
|
31
|
+
"enumNames": ["Часто", "Редко"]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"depositingCash": {
|
|
35
|
+
"title": "Внесение наличных в месяц",
|
|
36
|
+
"type": "array",
|
|
37
|
+
"single": true,
|
|
38
|
+
"items": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"enum": ["often", "rarely"],
|
|
41
|
+
"enumNames": ["Часто", "Редко"]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"withdrawalCash": {
|
|
45
|
+
"title": "Снятие наличных в месяц",
|
|
46
|
+
"type": "array",
|
|
47
|
+
"single": true,
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["often", "rarely"],
|
|
51
|
+
"enumNames": ["Часто", "Редко"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"resetButton": {
|
|
56
|
+
"text": "Очистить фильтры",
|
|
57
|
+
"version": "secondary"
|
|
58
|
+
},
|
|
59
|
+
"notFound": {
|
|
60
|
+
"title": "Нет подходящего тарифа",
|
|
61
|
+
"description": "Попробуйте очистить фильтры"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { renderBlock } from '../../BlockRenderer/renderBlock';
|
|
2
|
+
import { renderBlocksList } from '../../BlockRenderer/renderBlockList';
|
|
3
|
+
import { type StringArray } from '../../ui-kit/BaseFiltration/BaseFiltrationContent';
|
|
4
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm';
|
|
5
|
+
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm';
|
|
6
|
+
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
7
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
8
|
+
import { NotFound } from '../../ui-kit/NotFound/NotFound';
|
|
9
|
+
import { type Option } from '../../ui-kit/Select/Option';
|
|
10
|
+
import { Select, type SelectProps } from '../../ui-kit/Select/Select';
|
|
11
|
+
import { UniBlock } from '../../UniBlock/UniBlock';
|
|
12
|
+
import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
|
|
13
|
+
import { getBorderStyle } from '../../utils/getBorderStyle';
|
|
14
|
+
import { style } from '../../utils/style';
|
|
15
|
+
import { zip } from '../../utils/zip';
|
|
16
|
+
import { Carousel } from '../Carousel/Carousel';
|
|
17
|
+
import {
|
|
18
|
+
type BankAccountFiltrationContent,
|
|
19
|
+
type BankAccountFiltrationSchema,
|
|
20
|
+
} from './BankAccountFiltrationContent';
|
|
21
|
+
|
|
22
|
+
const EMPTY_SCHEMA: BankAccountFiltrationProps['filtrationSchema'] = {};
|
|
23
|
+
|
|
24
|
+
type BankAccountFiltrationState = Partial<Record<keyof BankAccountFiltrationSchema, string[]>>;
|
|
25
|
+
|
|
26
|
+
const initialFiltrationState: BankAccountFiltrationState = {};
|
|
27
|
+
|
|
28
|
+
interface BankAccountFiltrationProps extends BankAccountFiltrationContent, UniBlockProps {}
|
|
29
|
+
|
|
30
|
+
export const BankAccountFiltration = UniBlock<BankAccountFiltrationProps>(
|
|
31
|
+
({ className, filtrationSchema = EMPTY_SCHEMA, resetButton, notFound, ...rest }) => {
|
|
32
|
+
const [, { blocksToRender }, { field, reset }] = useFiltrationForm(initialFiltrationState, {
|
|
33
|
+
block: rest.block,
|
|
34
|
+
page: rest.options?.page,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const selectArrProps: SelectProps[] = Object.entries(filtrationSchema)
|
|
38
|
+
// Only StringArray
|
|
39
|
+
.filter(([, schema]) => schema.type === 'array' && schema.ui === 'dropdown')
|
|
40
|
+
.map(([name, schema]) => ({
|
|
41
|
+
className: 'w-64',
|
|
42
|
+
label: schema.title,
|
|
43
|
+
options: stringArrayToOptions(schema),
|
|
44
|
+
...field(name as keyof BankAccountFiltrationState, {
|
|
45
|
+
parse: ({ key }) => [key],
|
|
46
|
+
format: ([value] = []) =>
|
|
47
|
+
stringArrayToOptions(schema).find((_) => _.key === value) || { key: '' },
|
|
48
|
+
}),
|
|
49
|
+
}));
|
|
50
|
+
|
|
51
|
+
const Selects = selectArrProps.map((props, i) => <Select key={String(i)} {...props} />);
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<BlockWrapper
|
|
55
|
+
className={style(className)}
|
|
56
|
+
defaultPadding="p-0"
|
|
57
|
+
version="transparent"
|
|
58
|
+
{...rest}
|
|
59
|
+
>
|
|
60
|
+
<FiltrationForm filtrationSchema={filtrationSchema} field={field} reset={reset}>
|
|
61
|
+
<div>
|
|
62
|
+
{Selects}
|
|
63
|
+
<div>
|
|
64
|
+
<Button
|
|
65
|
+
type="reset"
|
|
66
|
+
className="mt-lg w-64"
|
|
67
|
+
onClick={reset}
|
|
68
|
+
version={resetButton?.version}
|
|
69
|
+
>
|
|
70
|
+
{resetButton?.text}
|
|
71
|
+
</Button>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</FiltrationForm>
|
|
75
|
+
<div className={style(blocksToRender?.length ? 'hidden' : 'block')}>
|
|
76
|
+
{notFound ? <NotFound {...notFound} /> : null}
|
|
77
|
+
</div>
|
|
78
|
+
<Carousel
|
|
79
|
+
padding="p-0"
|
|
80
|
+
isEmbedded={true}
|
|
81
|
+
itemCount={blocksToRender?.length}
|
|
82
|
+
visibleItemCount={0}
|
|
83
|
+
isAlignCenter={true}
|
|
84
|
+
isGap={false}
|
|
85
|
+
>
|
|
86
|
+
{renderBlocksList(blocksToRender, {
|
|
87
|
+
...rest.options,
|
|
88
|
+
parent: rest.block,
|
|
89
|
+
renderProps: (block, options, i) => (
|
|
90
|
+
<div key={String(i)} className={style('relative min-w-80', getBorderStyle(true))}>
|
|
91
|
+
{renderBlock(block, options)}
|
|
92
|
+
</div>
|
|
93
|
+
),
|
|
94
|
+
})}
|
|
95
|
+
</Carousel>
|
|
96
|
+
</BlockWrapper>
|
|
97
|
+
);
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
childrenTypes: ['CarouselTariffsCard'],
|
|
101
|
+
childSchema: (content) => content?.filtrationSchema || {},
|
|
102
|
+
},
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
const stringArrayToOptions = (stringEnum: StringArray): Option[] =>
|
|
106
|
+
zip(stringEnum.items?.enum || [], stringEnum.items?.enumNames || []).map(([key, text]) => ({
|
|
107
|
+
key,
|
|
108
|
+
text,
|
|
109
|
+
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type BaseFiltrationInnerContent,
|
|
3
|
+
type StringArray,
|
|
4
|
+
} from '../../ui-kit/BaseFiltration/BaseFiltrationContent';
|
|
5
|
+
import { type UniBlockContent } from '../../UniBlock/UniBlockProps';
|
|
6
|
+
|
|
7
|
+
export type BankAccountFiltrationSchema = {
|
|
8
|
+
/** @title Для кого */
|
|
9
|
+
consumer?: StringArray;
|
|
10
|
+
/** @title Дополнительные опции */
|
|
11
|
+
extraOptions?: StringArray;
|
|
12
|
+
/** @title Внешние переводы */
|
|
13
|
+
externalTransfers?: StringArray;
|
|
14
|
+
/** @title Внесение наличных */
|
|
15
|
+
depositingCash?: StringArray;
|
|
16
|
+
/** @title Снятие наличных */
|
|
17
|
+
withdrawalCash?: StringArray;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @title Подборщик тарифов
|
|
22
|
+
*/
|
|
23
|
+
export type BankAccountFiltrationContent = UniBlockContent &
|
|
24
|
+
BaseFiltrationInnerContent & {
|
|
25
|
+
/** @title Параметры фильтрации */
|
|
26
|
+
filtrationSchema?: BankAccountFiltrationSchema;
|
|
27
|
+
};
|
|
@@ -12,7 +12,7 @@ import { ITEMS_GAP } from './itemsGap';
|
|
|
12
12
|
import { renderCarouselCards } from './renderCarouselCards';
|
|
13
13
|
import { VISIBLE_ITEM_COUNT } from './visibleItemCount';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
interface CarouselProps extends CarouselContent, UniBlockProps {
|
|
16
16
|
itemCount?: number;
|
|
17
17
|
isEmbedded?: boolean;
|
|
18
18
|
}
|
|
@@ -9,7 +9,7 @@ import { CarouselLinkButton } from './CarouselLinkButton';
|
|
|
9
9
|
import { type CarouselLinksContent } from './CarouselLinksContent';
|
|
10
10
|
import { MAX_LINKS_COUNT } from './maxLinksCount';
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
interface CarouselLinksProps extends CarouselLinksContent, UniBlockProps {}
|
|
13
13
|
|
|
14
14
|
export const CarouselLinks = JSX<CarouselLinksProps>(
|
|
15
15
|
({ className, additionalDescription, description, links, title, ...rest }) => (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type JSONSchema7Definition } from 'json-schema';
|
|
2
2
|
import { type BlockDef } from '../../model/ContentPageDef';
|
|
3
3
|
import { BaseFiltrationInner } from '../../ui-kit/BaseFiltration/BaseFiltrationInner';
|
|
4
|
-
import {
|
|
4
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm';
|
|
5
5
|
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm';
|
|
6
6
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
7
7
|
import { CurrencyInput } from '../../ui-kit/CurrencyInput/CurrencyInput';
|
|
@@ -40,26 +40,6 @@ export const DepositFiltration = UniBlock<DepositFiltrationProps>(
|
|
|
40
40
|
const rateRows = blocksWithProps.map(([, _]) => _?.paramsSource?.rateRows);
|
|
41
41
|
const months = getMonths(rateRows as Partial<RateRow>[]);
|
|
42
42
|
|
|
43
|
-
const Inputs = (
|
|
44
|
-
<div>
|
|
45
|
-
<CurrencyInput
|
|
46
|
-
label={sumInput?.title}
|
|
47
|
-
min={DEFAULT_MIN_SUM}
|
|
48
|
-
max={DEFAULT_MAX_SUM}
|
|
49
|
-
{...field('sum', {
|
|
50
|
-
parse: (min) => ({ min: Number(min), max: DEFAULT_MAX_SUM }),
|
|
51
|
-
format: ({ min }) => String(min),
|
|
52
|
-
})}
|
|
53
|
-
/>
|
|
54
|
-
<InputRange
|
|
55
|
-
title={periodInput?.title}
|
|
56
|
-
items={['От 3 мес', 'До 5 лет']}
|
|
57
|
-
list={months}
|
|
58
|
-
{...field('period')}
|
|
59
|
-
/>
|
|
60
|
-
</div>
|
|
61
|
-
);
|
|
62
|
-
|
|
63
43
|
return (
|
|
64
44
|
<BlockWrapper
|
|
65
45
|
className={style('space-y-2xs', className)}
|
|
@@ -67,7 +47,30 @@ export const DepositFiltration = UniBlock<DepositFiltrationProps>(
|
|
|
67
47
|
version="transparent"
|
|
68
48
|
{...rest}
|
|
69
49
|
>
|
|
70
|
-
|
|
50
|
+
<FiltrationForm
|
|
51
|
+
filtrationSchema={filtrationSchema}
|
|
52
|
+
resetButton={resetButton}
|
|
53
|
+
field={field}
|
|
54
|
+
reset={reset}
|
|
55
|
+
>
|
|
56
|
+
<div className="@4xl:max-w-xs">
|
|
57
|
+
<CurrencyInput
|
|
58
|
+
label={sumInput?.title}
|
|
59
|
+
min={DEFAULT_MIN_SUM}
|
|
60
|
+
max={DEFAULT_MAX_SUM}
|
|
61
|
+
{...field('sum', {
|
|
62
|
+
parse: (min) => ({ min: Number(min), max: DEFAULT_MAX_SUM }),
|
|
63
|
+
format: ({ min }) => String(min),
|
|
64
|
+
})}
|
|
65
|
+
/>
|
|
66
|
+
<InputRange
|
|
67
|
+
title={periodInput?.title}
|
|
68
|
+
items={['От 3 мес', 'До 5 лет']}
|
|
69
|
+
list={months}
|
|
70
|
+
{...field('period')}
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</FiltrationForm>
|
|
71
74
|
<BaseFiltrationInner blocksToRender={blocksToRender} {...rest} />
|
|
72
75
|
</BlockWrapper>
|
|
73
76
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
2
|
import { BaseFiltrationInner } from '../../ui-kit/BaseFiltration/BaseFiltrationInner';
|
|
3
|
-
import {
|
|
3
|
+
import { FiltrationForm } from '../../ui-kit/BaseFiltration/FiltrationForm';
|
|
4
4
|
import { useFiltrationForm } from '../../ui-kit/BaseFiltration/useFiltrationForm';
|
|
5
5
|
import { useHotFilters } from '../../ui-kit/BaseFiltration/useHotFilters';
|
|
6
6
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
@@ -51,7 +51,12 @@ export const MortgageFiltration = UniBlock<MortgageFiltrationProps>(
|
|
|
51
51
|
{...rest}
|
|
52
52
|
>
|
|
53
53
|
<TabsControl {...tabsControlProps} />
|
|
54
|
-
|
|
54
|
+
<FiltrationForm
|
|
55
|
+
filtrationSchema={filtrationSchema}
|
|
56
|
+
resetButton={resetButton}
|
|
57
|
+
field={field}
|
|
58
|
+
reset={reset}
|
|
59
|
+
/>
|
|
55
60
|
<BaseFiltrationInner blocksToRender={blocksToRender} {...rest} />
|
|
56
61
|
</BlockWrapper>
|
|
57
62
|
);
|