@redneckz/wildless-cms-uni-blocks 0.2.72 → 0.2.75
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 +240 -151
- package/bundle/bundle.umd.js +124 -44
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/BaseTile.js +9 -4
- package/dist/BaseTile.js.map +1 -1
- package/dist/BaseTileContent.d.ts +2 -2
- package/dist/BlockContent.d.ts +2 -1
- package/dist/Blocks.d.ts +2 -0
- package/dist/Blocks.js +4 -0
- package/dist/Blocks.js.map +1 -1
- package/dist/ComparisonTable/ComparisonTable.d.ts +5 -0
- package/dist/ComparisonTable/ComparisonTable.js +34 -0
- package/dist/ComparisonTable/ComparisonTable.js.map +1 -0
- package/dist/ComparisonTable/ComparisonTableContent.d.ts +37 -0
- package/dist/ComparisonTable/ComparisonTableContent.js +2 -0
- package/dist/ComparisonTable/ComparisonTableContent.js.map +1 -0
- package/dist/ComparisonTable/HeaderCell.d.ts +10 -0
- package/dist/ComparisonTable/HeaderCell.js +11 -0
- package/dist/ComparisonTable/HeaderCell.js.map +1 -0
- package/dist/ComparisonTable/TableCarouselContainer.d.ts +4 -0
- package/dist/ComparisonTable/TableCarouselContainer.js +7 -0
- package/dist/ComparisonTable/TableCarouselContainer.js.map +1 -0
- package/dist/ComparisonTable/TableCell.d.ts +8 -0
- package/dist/ComparisonTable/TableCell.js +12 -0
- package/dist/ComparisonTable/TableCell.js.map +1 -0
- package/dist/ComparisonTable/TableRow.d.ts +10 -0
- package/dist/ComparisonTable/TableRow.js +10 -0
- package/dist/ComparisonTable/TableRow.js.map +1 -0
- package/dist/ComparisonTable/TableRowContainer.d.ts +4 -0
- package/dist/ComparisonTable/TableRowContainer.js +6 -0
- package/dist/ComparisonTable/TableRowContainer.js.map +1 -0
- package/dist/ComparisonTable/constants.d.ts +6 -0
- package/dist/ComparisonTable/constants.js +9 -0
- package/dist/ComparisonTable/constants.js.map +1 -0
- package/dist/ComparisonTable/index.d.ts +3 -0
- package/dist/ComparisonTable/index.js +5 -0
- package/dist/ComparisonTable/index.js.map +1 -0
- package/dist/ExchangeRateTile.js +1 -0
- package/dist/ExchangeRateTile.js.map +1 -1
- package/dist/Footer/Contacts.js +1 -1
- package/dist/Footer/Contacts.js.map +1 -1
- package/dist/Footer/SocialMedia.js +4 -1
- package/dist/Footer/SocialMedia.js.map +1 -1
- package/dist/Gallery.d.ts +1 -1
- package/dist/Gallery.js +2 -32
- package/dist/Gallery.js.map +1 -1
- package/dist/Gallery.mobile.js +1 -1
- package/dist/Gallery.mobile.js.map +1 -1
- package/dist/GalleryInner.d.ts +7 -0
- package/dist/GalleryInner.js +46 -0
- package/dist/GalleryInner.js.map +1 -0
- package/dist/MiniGallery.d.ts +5 -0
- package/dist/MiniGallery.js +7 -0
- package/dist/MiniGallery.js.map +1 -0
- package/dist/ProductBlockInner.js +3 -3
- package/dist/ProductBlockInner.js.map +1 -1
- package/dist/TextBlock.js +4 -4
- package/dist/TextBlock.js.map +1 -1
- package/dist/model/GalleryVersion.d.ts +1 -0
- package/dist/{ui-kit/IconButtonProps.js → model/GalleryVersion.js} +1 -1
- package/dist/model/GalleryVersion.js.map +1 -0
- package/dist/ui-kit/ArrowButton.d.ts +2 -6
- package/dist/ui-kit/ArrowButton.js +17 -3
- package/dist/ui-kit/ArrowButton.js.map +1 -1
- package/dist/ui-kit/Button.d.ts +2 -1
- package/dist/ui-kit/Button.js +11 -5
- package/dist/ui-kit/Button.js.map +1 -1
- package/dist/ui-kit/ButtonProps.d.ts +15 -3
- package/dist/ui-kit/IconProps.d.ts +23 -1
- package/dist/ui-kit/IconProps.js +24 -0
- package/dist/ui-kit/IconProps.js.map +1 -1
- package/dist/{Img.d.ts → ui-kit/Img.d.ts} +1 -1
- package/dist/{Img.js → ui-kit/Img.js} +0 -0
- package/dist/ui-kit/Img.js.map +1 -0
- package/dist/ui-kit/SVG.d.ts +2 -0
- package/dist/ui-kit/SVG.js +2 -2
- package/dist/ui-kit/SVG.js.map +1 -1
- package/lib/BaseTile.js +9 -4
- package/lib/BaseTile.js.map +1 -1
- package/lib/BaseTileContent.d.ts +2 -2
- package/lib/BlockContent.d.ts +2 -1
- package/lib/Blocks.d.ts +2 -0
- package/lib/Blocks.js +4 -0
- package/lib/Blocks.js.map +1 -1
- package/lib/ComparisonTable/ComparisonTable.d.ts +5 -0
- package/lib/ComparisonTable/ComparisonTable.js +32 -0
- package/lib/ComparisonTable/ComparisonTable.js.map +1 -0
- package/lib/ComparisonTable/ComparisonTableContent.d.ts +37 -0
- package/lib/ComparisonTable/ComparisonTableContent.js +2 -0
- package/lib/ComparisonTable/ComparisonTableContent.js.map +1 -0
- package/lib/ComparisonTable/HeaderCell.d.ts +10 -0
- package/lib/ComparisonTable/HeaderCell.js +9 -0
- package/lib/ComparisonTable/HeaderCell.js.map +1 -0
- package/lib/ComparisonTable/TableCarouselContainer.d.ts +4 -0
- package/lib/ComparisonTable/TableCarouselContainer.js +5 -0
- package/lib/ComparisonTable/TableCarouselContainer.js.map +1 -0
- package/lib/ComparisonTable/TableCell.d.ts +8 -0
- package/lib/ComparisonTable/TableCell.js +10 -0
- package/lib/ComparisonTable/TableCell.js.map +1 -0
- package/lib/ComparisonTable/TableRow.d.ts +10 -0
- package/lib/ComparisonTable/TableRow.js +8 -0
- package/lib/ComparisonTable/TableRow.js.map +1 -0
- package/lib/ComparisonTable/TableRowContainer.d.ts +4 -0
- package/lib/ComparisonTable/TableRowContainer.js +4 -0
- package/lib/ComparisonTable/TableRowContainer.js.map +1 -0
- package/lib/ComparisonTable/constants.d.ts +6 -0
- package/lib/ComparisonTable/constants.js +7 -0
- package/lib/ComparisonTable/constants.js.map +1 -0
- package/lib/ComparisonTable/index.d.ts +3 -0
- package/lib/ComparisonTable/index.js +2 -0
- package/lib/ComparisonTable/index.js.map +1 -0
- package/lib/ExchangeRateTile.js +1 -0
- package/lib/ExchangeRateTile.js.map +1 -1
- package/lib/Footer/Contacts.js +1 -1
- package/lib/Footer/Contacts.js.map +1 -1
- package/lib/Footer/SocialMedia.js +4 -1
- package/lib/Footer/SocialMedia.js.map +1 -1
- package/lib/Gallery.d.ts +1 -1
- package/lib/Gallery.js +3 -33
- package/lib/Gallery.js.map +1 -1
- package/lib/Gallery.mobile.js +1 -1
- package/lib/Gallery.mobile.js.map +1 -1
- package/lib/GalleryInner.d.ts +7 -0
- package/lib/GalleryInner.js +44 -0
- package/lib/GalleryInner.js.map +1 -0
- package/lib/MiniGallery.d.ts +5 -0
- package/lib/MiniGallery.js +5 -0
- package/lib/MiniGallery.js.map +1 -0
- package/lib/ProductBlockInner.js +3 -3
- package/lib/ProductBlockInner.js.map +1 -1
- package/lib/TextBlock.js +4 -4
- package/lib/TextBlock.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/model/GalleryVersion.d.ts +1 -0
- package/lib/model/GalleryVersion.js +2 -0
- package/lib/model/GalleryVersion.js.map +1 -0
- package/lib/ui-kit/ArrowButton.d.ts +2 -6
- package/lib/ui-kit/ArrowButton.js +18 -4
- package/lib/ui-kit/ArrowButton.js.map +1 -1
- package/lib/ui-kit/Button.d.ts +2 -1
- package/lib/ui-kit/Button.js +11 -5
- package/lib/ui-kit/Button.js.map +1 -1
- package/lib/ui-kit/ButtonProps.d.ts +15 -3
- package/lib/ui-kit/IconProps.d.ts +23 -1
- package/lib/ui-kit/IconProps.js +23 -1
- package/lib/ui-kit/IconProps.js.map +1 -1
- package/lib/{Img.d.ts → ui-kit/Img.d.ts} +1 -1
- package/lib/{Img.js → ui-kit/Img.js} +0 -0
- package/lib/ui-kit/Img.js.map +1 -0
- package/lib/ui-kit/SVG.d.ts +2 -0
- package/lib/ui-kit/SVG.js +2 -2
- package/lib/ui-kit/SVG.js.map +1 -1
- package/package.json +1 -1
- package/src/BaseTile.tsx +17 -5
- package/src/BaseTileContent.ts +2 -2
- package/src/BlockContent.ts +3 -1
- package/src/Blocks.ts +4 -0
- package/src/ComparisonTable/ComparisonTable.fixture.tsx +265 -0
- package/src/ComparisonTable/ComparisonTable.tsx +126 -0
- package/src/ComparisonTable/ComparisonTableContent.ts +43 -0
- package/src/ComparisonTable/HeaderCell.tsx +50 -0
- package/src/ComparisonTable/TableCarouselContainer.tsx +19 -0
- package/src/ComparisonTable/TableCell.tsx +43 -0
- package/src/ComparisonTable/TableRow.tsx +44 -0
- package/src/ComparisonTable/TableRowContainer.tsx +7 -0
- package/src/ComparisonTable/constants.ts +6 -0
- package/src/ComparisonTable/index.ts +3 -0
- package/src/ContentPage.page.json +463 -1
- package/src/ExchangeRateTile.tsx +2 -1
- package/src/Footer/Contacts.tsx +1 -0
- package/src/Footer/SocialMedia.tsx +9 -5
- package/src/Gallery.fixture.tsx +1 -1
- package/src/Gallery.mobile.tsx +1 -1
- package/src/Gallery.tsx +3 -119
- package/src/GalleryInner.tsx +135 -0
- package/src/MiniGallery.fixture.tsx +90 -0
- package/src/MiniGallery.tsx +10 -0
- package/src/ProductBlock.fixture.tsx +1 -1
- package/src/ProductBlockInner.tsx +3 -3
- package/src/ProductTile.fixture.tsx +1 -1
- package/src/TextBlock.fixture.tsx +1 -1
- package/src/TextBlock.tsx +6 -4
- package/src/Tile.fixture.tsx +1 -1
- package/src/common.css +36 -0
- package/src/icons/AppleIcon.svg +1 -13
- package/src/icons/GlassIcon.svg +1 -0
- package/src/icons/PlayMarketIcon.svg +1 -6
- package/src/model/GalleryVersion.ts +1 -0
- package/src/ui-kit/ArrowButton.tsx +29 -30
- package/src/ui-kit/Button.fixture.tsx +33 -5
- package/src/ui-kit/Button.tsx +41 -17
- package/src/ui-kit/ButtonProps.ts +17 -3
- package/src/ui-kit/Icon.fixture.tsx +22 -0
- package/src/ui-kit/IconProps.ts +24 -21
- package/src/{Img.tsx → ui-kit/Img.tsx} +1 -1
- package/src/ui-kit/SVG.tsx +11 -2
- package/dist/Img.js.map +0 -1
- package/dist/ui-kit/IconButton.d.ts +0 -2
- package/dist/ui-kit/IconButton.js +0 -10
- package/dist/ui-kit/IconButton.js.map +0 -1
- package/dist/ui-kit/IconButtonProps.d.ts +0 -6
- package/dist/ui-kit/IconButtonProps.js.map +0 -1
- package/lib/Img.js.map +0 -1
- package/lib/ui-kit/IconButton.d.ts +0 -2
- package/lib/ui-kit/IconButton.js +0 -8
- package/lib/ui-kit/IconButton.js.map +0 -1
- package/lib/ui-kit/IconButtonProps.d.ts +0 -6
- package/lib/ui-kit/IconButtonProps.js +0 -2
- package/lib/ui-kit/IconButtonProps.js.map +0 -1
- package/src/ui-kit/IconButton.tsx +0 -22
- package/src/ui-kit/IconButtonProps.ts +0 -7
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { LinkContent } from '../model/LinkContent';
|
|
2
|
+
import type { Picture } from '../model/Picture';
|
|
3
|
+
import type { ButtonProps } from '../ui-kit/ButtonProps';
|
|
4
|
+
import type { IconName } from '../ui-kit/IconProps';
|
|
5
|
+
|
|
6
|
+
export type Row = {
|
|
7
|
+
header: RowHeader;
|
|
8
|
+
data: CellData[][];
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type RowData = Row[] | undefined;
|
|
12
|
+
|
|
13
|
+
export interface CellData {
|
|
14
|
+
label?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
icons?: IconName[];
|
|
17
|
+
image?: Picture;
|
|
18
|
+
buttons?: ButtonProps[];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ColumnHeader {
|
|
22
|
+
title?: string;
|
|
23
|
+
icon?: IconName;
|
|
24
|
+
image?: Picture;
|
|
25
|
+
link?: LinkContent;
|
|
26
|
+
}
|
|
27
|
+
export interface Column {
|
|
28
|
+
header?: ColumnHeader;
|
|
29
|
+
data?: CellData[][];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface RowHeader {
|
|
33
|
+
title?: string;
|
|
34
|
+
icon?: IconName;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ComparisonTableContent {
|
|
38
|
+
title?: string;
|
|
39
|
+
rowHeaders?: RowHeader[];
|
|
40
|
+
columns?: Column[];
|
|
41
|
+
visibleRowLength?: number;
|
|
42
|
+
isColoredFirstColumn?: boolean;
|
|
43
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { LinkContent } from '../model/LinkContent';
|
|
3
|
+
import type { Picture } from '../model/Picture';
|
|
4
|
+
import { Button } from '../ui-kit/Button';
|
|
5
|
+
import { Icon } from '../ui-kit/Icon';
|
|
6
|
+
import type { IconName } from '../ui-kit/IconProps';
|
|
7
|
+
import { Img } from '../ui-kit/Img';
|
|
8
|
+
import { Title } from '../ui-kit/Title';
|
|
9
|
+
import { BORDER_CLASSES, GRADIENT } from './constants';
|
|
10
|
+
|
|
11
|
+
export interface HeaderCellProps {
|
|
12
|
+
icon?: IconName;
|
|
13
|
+
image?: Picture;
|
|
14
|
+
title?: string;
|
|
15
|
+
link?: LinkContent;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) => (
|
|
19
|
+
<div
|
|
20
|
+
className={`w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-12 ${BORDER_CLASSES} ${GRADIENT}`}
|
|
21
|
+
role="columnheader"
|
|
22
|
+
scope="col"
|
|
23
|
+
>
|
|
24
|
+
{icon && !image?.src && (
|
|
25
|
+
<Icon
|
|
26
|
+
className="h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4"
|
|
27
|
+
name={icon}
|
|
28
|
+
width="63"
|
|
29
|
+
height="63"
|
|
30
|
+
/>
|
|
31
|
+
)}
|
|
32
|
+
{image?.src && <Img className="mb-4" image={image} />}
|
|
33
|
+
{title && (
|
|
34
|
+
<Title size="S" className="font-medium m-0 text-center text-white">
|
|
35
|
+
{title}
|
|
36
|
+
</Title>
|
|
37
|
+
)}
|
|
38
|
+
{link?.text && (
|
|
39
|
+
<div className="mt-auto w-full">
|
|
40
|
+
<Button
|
|
41
|
+
href={link.href}
|
|
42
|
+
target={link.target}
|
|
43
|
+
className="mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active"
|
|
44
|
+
>
|
|
45
|
+
<div className="text-xs py-[11px]">{link.text}</div>
|
|
46
|
+
</Button>
|
|
47
|
+
</div>
|
|
48
|
+
)}
|
|
49
|
+
</div>
|
|
50
|
+
));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { COLUMN_WIDTH } from './constants';
|
|
3
|
+
|
|
4
|
+
export interface TableCarouselContainerProps {
|
|
5
|
+
activeCardIndex: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const TableCarouselContainer = JSX<TableCarouselContainerProps>(
|
|
9
|
+
({ children, activeCardIndex }) => (
|
|
10
|
+
<div className="flex flex-1 overflow-hidden">
|
|
11
|
+
<div
|
|
12
|
+
className="flex gap-4 duration-1000"
|
|
13
|
+
style={{ transform: `translateX(-${activeCardIndex * COLUMN_WIDTH}px)` }}
|
|
14
|
+
>
|
|
15
|
+
{children}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
),
|
|
19
|
+
);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { CellData } from './ComparisonTableContent';
|
|
3
|
+
import { BORDER_CLASSES, DIVIDER_CLASSES, GRADIENT } from './constants';
|
|
4
|
+
|
|
5
|
+
export interface TableCellProps {
|
|
6
|
+
cell: CellData[];
|
|
7
|
+
isLastRow: boolean;
|
|
8
|
+
isFirstRow: boolean;
|
|
9
|
+
isFillGradient: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const TableCell = JSX<TableCellProps>(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
|
|
13
|
+
const cellWrapperClasses = `w-80 box-border flex flex-col ${BORDER_CLASSES} ${
|
|
14
|
+
!isLastRow ? 'border-y-0' : 'border-t-0 rounded-b-md'
|
|
15
|
+
} ${isFillGradient ? GRADIENT : ''}`;
|
|
16
|
+
|
|
17
|
+
const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES} ${
|
|
18
|
+
isFillGradient && isFirstRow ? 'border-t' : ''
|
|
19
|
+
} ${!isLastRow ? 'border-solid' : ''}`;
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<div className={cellWrapperClasses} role="cell">
|
|
23
|
+
<div className={cellClasses}>
|
|
24
|
+
{cell.map((item, i) => renderCellInner(item, i, isFillGradient))}
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const renderCellInner = ({ label, description }: CellData, i: number, isFillGradient: boolean) => (
|
|
31
|
+
<div key={String(i)} className="first:pt-7 pt-6 last:pb-7">
|
|
32
|
+
{label && (
|
|
33
|
+
<h5 className={`text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`}>{label}</h5>
|
|
34
|
+
)}
|
|
35
|
+
{description && (
|
|
36
|
+
<div
|
|
37
|
+
className={`text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`}
|
|
38
|
+
>
|
|
39
|
+
{description}
|
|
40
|
+
</div>
|
|
41
|
+
)}
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import type { Row } from './ComparisonTableContent';
|
|
3
|
+
import { DIVIDER_CLASSES, FIRST_CELL_CLASSES } from './constants';
|
|
4
|
+
import { TableCarouselContainer } from './TableCarouselContainer';
|
|
5
|
+
import { TableCell } from './TableCell';
|
|
6
|
+
import { TableRowContainer } from './TableRowContainer';
|
|
7
|
+
|
|
8
|
+
export interface TableRowProps {
|
|
9
|
+
className?: string;
|
|
10
|
+
row: Row;
|
|
11
|
+
activeCardIndex: number;
|
|
12
|
+
isColoredFirstColumn: boolean;
|
|
13
|
+
isFirstRow: boolean;
|
|
14
|
+
isLastRow: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const TableRow = JSX<TableRowProps>(
|
|
18
|
+
({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (
|
|
19
|
+
<TableRowContainer>
|
|
20
|
+
{header?.title ? (
|
|
21
|
+
<div
|
|
22
|
+
className={`text-sm py-7 ${DIVIDER_CLASSES} ${FIRST_CELL_CLASSES} ${
|
|
23
|
+
!isLastRow ? 'border-solid' : ''
|
|
24
|
+
}`}
|
|
25
|
+
>
|
|
26
|
+
{header.title}
|
|
27
|
+
</div>
|
|
28
|
+
) : null}
|
|
29
|
+
{data?.length ? (
|
|
30
|
+
<TableCarouselContainer activeCardIndex={activeCardIndex}>
|
|
31
|
+
{data.map((cell, i) => (
|
|
32
|
+
<TableCell
|
|
33
|
+
key={String(i)}
|
|
34
|
+
cell={cell}
|
|
35
|
+
isFirstRow={isFirstRow}
|
|
36
|
+
isLastRow={isLastRow}
|
|
37
|
+
isFillGradient={isColoredFirstColumn && i === 0}
|
|
38
|
+
/>
|
|
39
|
+
))}
|
|
40
|
+
</TableCarouselContainer>
|
|
41
|
+
) : null}
|
|
42
|
+
</TableRowContainer>
|
|
43
|
+
),
|
|
44
|
+
);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
|
|
2
|
+
export const BORDER_CLASSES = 'border-main-stroke border-solid border';
|
|
3
|
+
export const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
|
|
4
|
+
export const FIRST_CELL_CLASSES = 'w-[200px] mr-6';
|
|
5
|
+
export const COLS_LENGTH_FOR_SCROLL = 2;
|
|
6
|
+
export const COLUMN_WIDTH = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
|
|
@@ -819,7 +819,469 @@
|
|
|
819
819
|
]
|
|
820
820
|
}
|
|
821
821
|
},
|
|
822
|
-
|
|
822
|
+
{
|
|
823
|
+
"type": "MiniGallery",
|
|
824
|
+
"style": ["col-span-12"],
|
|
825
|
+
"content": {
|
|
826
|
+
"title": "Вы можете оплатить бонусными баллами",
|
|
827
|
+
"description": "Удобный каталог с большим ассортиментом товаров и сервисов",
|
|
828
|
+
"cards": [
|
|
829
|
+
{
|
|
830
|
+
"image": {
|
|
831
|
+
"src": "domovoj-kupon.png",
|
|
832
|
+
"title": "Деньги",
|
|
833
|
+
"format": "webp",
|
|
834
|
+
"size": {
|
|
835
|
+
"width": 120,
|
|
836
|
+
"height": 70
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
"title": "Более 5000 товаров",
|
|
840
|
+
"description": "Время копить: ставка растет в зависимости от срока нахождения средств на Счете!"
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"image": {
|
|
844
|
+
"src": "domovoj-kupon.png",
|
|
845
|
+
"title": "Деньги",
|
|
846
|
+
"format": "webp",
|
|
847
|
+
"size": {
|
|
848
|
+
"width": 120,
|
|
849
|
+
"height": 70
|
|
850
|
+
}
|
|
851
|
+
},
|
|
852
|
+
"title": "Более 1000 развлечений",
|
|
853
|
+
"description": "Порядок и условия предоставления в соответствии с 106 ФЗ"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"image": {
|
|
857
|
+
"src": "domovoj-kupon.png",
|
|
858
|
+
"title": "Деньги",
|
|
859
|
+
"format": "webp",
|
|
860
|
+
"size": {
|
|
861
|
+
"width": 120,
|
|
862
|
+
"height": 70
|
|
863
|
+
}
|
|
864
|
+
},
|
|
865
|
+
"title": "Фермерские продукты",
|
|
866
|
+
"description": "Высокий процент даже при небольшой сумме денежных средств"
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"image": {
|
|
870
|
+
"src": "domovoj-kupon.png",
|
|
871
|
+
"title": "Деньги",
|
|
872
|
+
"format": "webp",
|
|
873
|
+
"size": {
|
|
874
|
+
"width": 120,
|
|
875
|
+
"height": 70
|
|
876
|
+
}
|
|
877
|
+
},
|
|
878
|
+
"title": "«Моя выгода»",
|
|
879
|
+
"description": "Время копить: ставка растет в зависимости от срока нахождения средств на Счете!"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"image": {
|
|
883
|
+
"src": "domovoj-kupon.png",
|
|
884
|
+
"title": "Деньги",
|
|
885
|
+
"format": "webp",
|
|
886
|
+
"size": {
|
|
887
|
+
"width": 120,
|
|
888
|
+
"height": 70
|
|
889
|
+
}
|
|
890
|
+
},
|
|
891
|
+
"title": "Фермерские продукты",
|
|
892
|
+
"description": "Высокий процент даже при небольшой сумме денежных средств"
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
}
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
"type": "ComparisonTable",
|
|
899
|
+
"style": ["col-span-12"],
|
|
900
|
+
"content": {
|
|
901
|
+
"title": "Другие вклады и сбережения",
|
|
902
|
+
"rowHeaders": [
|
|
903
|
+
{
|
|
904
|
+
"title": "Начисление процентов на остаток по счету"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"title": "Снятие наличных"
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
"title": "Оформление онлайн"
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"title": "Кэшбэк баллами"
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"title": "Стоимость обслуживания"
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"title": "Стоимость SMS-сервиса"
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
"title": "Дополнительная информация"
|
|
923
|
+
}
|
|
924
|
+
],
|
|
925
|
+
"columns": [
|
|
926
|
+
{
|
|
927
|
+
"header": {
|
|
928
|
+
"title": "Россельхоз-Росснефть",
|
|
929
|
+
"image": {
|
|
930
|
+
"alt": "card-1",
|
|
931
|
+
"src": "card-1.png",
|
|
932
|
+
"format": "webp",
|
|
933
|
+
"size": {
|
|
934
|
+
"width": 100,
|
|
935
|
+
"height": 63
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"link": {
|
|
939
|
+
"text": "Подробнее",
|
|
940
|
+
"href": "/credits"
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
"data": [
|
|
944
|
+
[
|
|
945
|
+
{
|
|
946
|
+
"label": "Нет"
|
|
947
|
+
}
|
|
948
|
+
],
|
|
949
|
+
[
|
|
950
|
+
{
|
|
951
|
+
"label": "Бесплатно",
|
|
952
|
+
"description": "В банкоматах и кассах Россельхозбанка и банков-партнеров"
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"label": "Бесплатно",
|
|
956
|
+
"description": "В сторонних банкоматах - 1 раз в месяц, далее 1% минимум 150 руб"
|
|
957
|
+
}
|
|
958
|
+
],
|
|
959
|
+
[
|
|
960
|
+
{
|
|
961
|
+
"label": "Нет"
|
|
962
|
+
}
|
|
963
|
+
],
|
|
964
|
+
[
|
|
965
|
+
{
|
|
966
|
+
"label": "До 7%"
|
|
967
|
+
}
|
|
968
|
+
],
|
|
969
|
+
[
|
|
970
|
+
{
|
|
971
|
+
"label": "Бесплатно",
|
|
972
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
973
|
+
}
|
|
974
|
+
],
|
|
975
|
+
[
|
|
976
|
+
{
|
|
977
|
+
"label": "69 рублей в месяц"
|
|
978
|
+
}
|
|
979
|
+
],
|
|
980
|
+
[
|
|
981
|
+
{
|
|
982
|
+
"description": "Оплачивайте покупки картой и заправляйтесь за баллы в сети АЗС Роснефть"
|
|
983
|
+
}
|
|
984
|
+
]
|
|
985
|
+
]
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"header": {
|
|
989
|
+
"title": "Panasonic",
|
|
990
|
+
"image": {
|
|
991
|
+
"alt": "card-2",
|
|
992
|
+
"src": "card-2.png",
|
|
993
|
+
"format": "webp",
|
|
994
|
+
"size": {
|
|
995
|
+
"width": 100,
|
|
996
|
+
"height": 63
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"link": {
|
|
1000
|
+
"text": "Подробнее",
|
|
1001
|
+
"href": "/credits"
|
|
1002
|
+
}
|
|
1003
|
+
},
|
|
1004
|
+
"data": [
|
|
1005
|
+
[
|
|
1006
|
+
{
|
|
1007
|
+
"label": "Нет"
|
|
1008
|
+
}
|
|
1009
|
+
],
|
|
1010
|
+
[
|
|
1011
|
+
{
|
|
1012
|
+
"label": "Бесплатно",
|
|
1013
|
+
"description": "В банкоматах и кассах Россельхозбанка и банков-партнеров"
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"label": "1%",
|
|
1017
|
+
"description": "В сторонних банкоматах, минимум 150 руб"
|
|
1018
|
+
}
|
|
1019
|
+
],
|
|
1020
|
+
[
|
|
1021
|
+
{
|
|
1022
|
+
"label": "Нет"
|
|
1023
|
+
}
|
|
1024
|
+
],
|
|
1025
|
+
[
|
|
1026
|
+
{
|
|
1027
|
+
"label": "До 20%"
|
|
1028
|
+
}
|
|
1029
|
+
],
|
|
1030
|
+
[
|
|
1031
|
+
{
|
|
1032
|
+
"label": "Бесплатно",
|
|
1033
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
1034
|
+
}
|
|
1035
|
+
],
|
|
1036
|
+
[
|
|
1037
|
+
{
|
|
1038
|
+
"label": "69 рублей в месяц"
|
|
1039
|
+
}
|
|
1040
|
+
],
|
|
1041
|
+
[
|
|
1042
|
+
{
|
|
1043
|
+
"description": "Копите баллы каждый день и обменивайте их на скидки на электронику и бытовую технику Panasonic"
|
|
1044
|
+
}
|
|
1045
|
+
]
|
|
1046
|
+
]
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"header": {
|
|
1050
|
+
"title": "Профсоюзная",
|
|
1051
|
+
"image": {
|
|
1052
|
+
"alt": "card-3",
|
|
1053
|
+
"src": "card-3.png",
|
|
1054
|
+
"format": "webp",
|
|
1055
|
+
"size": {
|
|
1056
|
+
"width": 100,
|
|
1057
|
+
"height": 63
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
"link": {
|
|
1061
|
+
"text": "Подробнее",
|
|
1062
|
+
"href": "/credits"
|
|
1063
|
+
}
|
|
1064
|
+
},
|
|
1065
|
+
"data": [
|
|
1066
|
+
[
|
|
1067
|
+
{
|
|
1068
|
+
"label": "Нет"
|
|
1069
|
+
}
|
|
1070
|
+
],
|
|
1071
|
+
[
|
|
1072
|
+
{
|
|
1073
|
+
"label": "Бесплатно"
|
|
1074
|
+
}
|
|
1075
|
+
],
|
|
1076
|
+
[
|
|
1077
|
+
{
|
|
1078
|
+
"label": "Есть"
|
|
1079
|
+
}
|
|
1080
|
+
],
|
|
1081
|
+
[
|
|
1082
|
+
{
|
|
1083
|
+
"label": "До 20%"
|
|
1084
|
+
}
|
|
1085
|
+
],
|
|
1086
|
+
[
|
|
1087
|
+
{
|
|
1088
|
+
"label": "Бесплатно",
|
|
1089
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
1090
|
+
}
|
|
1091
|
+
],
|
|
1092
|
+
[
|
|
1093
|
+
{
|
|
1094
|
+
"label": "69 рублей в месяц"
|
|
1095
|
+
}
|
|
1096
|
+
],
|
|
1097
|
+
[
|
|
1098
|
+
{
|
|
1099
|
+
"description": "Для членов профсоюзных организаций"
|
|
1100
|
+
}
|
|
1101
|
+
]
|
|
1102
|
+
]
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"header": {
|
|
1106
|
+
"title": "Россельхоз-Росснефть",
|
|
1107
|
+
"image": {
|
|
1108
|
+
"alt": "card-1",
|
|
1109
|
+
"src": "card-1.png",
|
|
1110
|
+
"format": "webp",
|
|
1111
|
+
"size": {
|
|
1112
|
+
"width": 100,
|
|
1113
|
+
"height": 63
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
"link": {
|
|
1117
|
+
"text": "Подробнее",
|
|
1118
|
+
"href": "/credits"
|
|
1119
|
+
}
|
|
1120
|
+
},
|
|
1121
|
+
"data": [
|
|
1122
|
+
[
|
|
1123
|
+
{
|
|
1124
|
+
"label": "Нет"
|
|
1125
|
+
}
|
|
1126
|
+
],
|
|
1127
|
+
[
|
|
1128
|
+
{
|
|
1129
|
+
"label": "Бесплатно",
|
|
1130
|
+
"description": "В банкоматах и кассах Россельхозбанка и банков-партнеров"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"label": "Бесплатно",
|
|
1134
|
+
"description": "В сторонних банкоматах - 1 раз в месяц, далее 1% минимум 150 руб"
|
|
1135
|
+
}
|
|
1136
|
+
],
|
|
1137
|
+
[
|
|
1138
|
+
{
|
|
1139
|
+
"label": "Нет"
|
|
1140
|
+
}
|
|
1141
|
+
],
|
|
1142
|
+
[
|
|
1143
|
+
{
|
|
1144
|
+
"label": "До 7%"
|
|
1145
|
+
}
|
|
1146
|
+
],
|
|
1147
|
+
[
|
|
1148
|
+
{
|
|
1149
|
+
"label": "Бесплатно",
|
|
1150
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
1151
|
+
}
|
|
1152
|
+
],
|
|
1153
|
+
[
|
|
1154
|
+
{
|
|
1155
|
+
"label": "69 рублей в месяц"
|
|
1156
|
+
}
|
|
1157
|
+
],
|
|
1158
|
+
[
|
|
1159
|
+
{
|
|
1160
|
+
"description": "Оплачивайте покупки картой и заправляйтесь за баллы в сети АЗС Роснефть"
|
|
1161
|
+
}
|
|
1162
|
+
]
|
|
1163
|
+
]
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
"header": {
|
|
1167
|
+
"title": "Panasonic",
|
|
1168
|
+
"image": {
|
|
1169
|
+
"alt": "card-2",
|
|
1170
|
+
"src": "card-2.png",
|
|
1171
|
+
"format": "webp",
|
|
1172
|
+
"size": {
|
|
1173
|
+
"width": 100,
|
|
1174
|
+
"height": 63
|
|
1175
|
+
}
|
|
1176
|
+
},
|
|
1177
|
+
"link": {
|
|
1178
|
+
"text": "Подробнее",
|
|
1179
|
+
"href": "/credits"
|
|
1180
|
+
}
|
|
1181
|
+
},
|
|
1182
|
+
"data": [
|
|
1183
|
+
[
|
|
1184
|
+
{
|
|
1185
|
+
"label": "Нет"
|
|
1186
|
+
}
|
|
1187
|
+
],
|
|
1188
|
+
[
|
|
1189
|
+
{
|
|
1190
|
+
"label": "Бесплатно",
|
|
1191
|
+
"description": "В банкоматах и кассах Россельхозбанка и банков-партнеров"
|
|
1192
|
+
},
|
|
1193
|
+
{
|
|
1194
|
+
"label": "1%",
|
|
1195
|
+
"description": "В сторонних банкоматах, минимум 150 руб"
|
|
1196
|
+
}
|
|
1197
|
+
],
|
|
1198
|
+
[
|
|
1199
|
+
{
|
|
1200
|
+
"label": "Нет"
|
|
1201
|
+
}
|
|
1202
|
+
],
|
|
1203
|
+
[
|
|
1204
|
+
{
|
|
1205
|
+
"label": "До 20%"
|
|
1206
|
+
}
|
|
1207
|
+
],
|
|
1208
|
+
[
|
|
1209
|
+
{
|
|
1210
|
+
"label": "Бесплатно",
|
|
1211
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
1212
|
+
}
|
|
1213
|
+
],
|
|
1214
|
+
[
|
|
1215
|
+
{
|
|
1216
|
+
"label": "69 рублей в месяц"
|
|
1217
|
+
}
|
|
1218
|
+
],
|
|
1219
|
+
[
|
|
1220
|
+
{
|
|
1221
|
+
"description": "Копите баллы каждый день и обменивайте их на скидки на электронику и бытовую технику Panasonic"
|
|
1222
|
+
}
|
|
1223
|
+
]
|
|
1224
|
+
]
|
|
1225
|
+
},
|
|
1226
|
+
{
|
|
1227
|
+
"header": {
|
|
1228
|
+
"title": "Профсоюзная",
|
|
1229
|
+
"image": {
|
|
1230
|
+
"alt": "card-3",
|
|
1231
|
+
"src": "card-3.png",
|
|
1232
|
+
"format": "webp",
|
|
1233
|
+
"size": {
|
|
1234
|
+
"width": 100,
|
|
1235
|
+
"height": 63
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
"link": {
|
|
1239
|
+
"text": "Подробнее",
|
|
1240
|
+
"href": "/credits"
|
|
1241
|
+
}
|
|
1242
|
+
},
|
|
1243
|
+
"data": [
|
|
1244
|
+
[
|
|
1245
|
+
{
|
|
1246
|
+
"label": "Нет"
|
|
1247
|
+
}
|
|
1248
|
+
],
|
|
1249
|
+
[
|
|
1250
|
+
{
|
|
1251
|
+
"label": "Бесплатно"
|
|
1252
|
+
}
|
|
1253
|
+
],
|
|
1254
|
+
[
|
|
1255
|
+
{
|
|
1256
|
+
"label": "Есть"
|
|
1257
|
+
}
|
|
1258
|
+
],
|
|
1259
|
+
[
|
|
1260
|
+
{
|
|
1261
|
+
"label": "До 20%"
|
|
1262
|
+
}
|
|
1263
|
+
],
|
|
1264
|
+
[
|
|
1265
|
+
{
|
|
1266
|
+
"label": "Бесплатно",
|
|
1267
|
+
"description": "При обороте по карте от 10000 ₽ в месяц"
|
|
1268
|
+
}
|
|
1269
|
+
],
|
|
1270
|
+
[
|
|
1271
|
+
{
|
|
1272
|
+
"label": "69 рублей в месяц"
|
|
1273
|
+
}
|
|
1274
|
+
],
|
|
1275
|
+
[
|
|
1276
|
+
{
|
|
1277
|
+
"description": "Для членов профсоюзных организаций"
|
|
1278
|
+
}
|
|
1279
|
+
]
|
|
1280
|
+
]
|
|
1281
|
+
}
|
|
1282
|
+
]
|
|
1283
|
+
}
|
|
1284
|
+
},
|
|
823
1285
|
{
|
|
824
1286
|
"type": "Footer",
|
|
825
1287
|
"style": ["col-span-12"],
|