@redneckz/wildless-cms-uni-blocks 0.2.89 → 0.2.93
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 +119 -57
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/api/LikeAPI.js +1 -0
- package/dist/api/LikeAPI.js.map +1 -1
- package/dist/components/Accordion/AccordionContent.d.ts +38 -14
- package/dist/components/Accordion/AccordionItem.js +8 -6
- package/dist/components/Accordion/AccordionItem.js.map +1 -1
- package/dist/components/BaseTile/BaseTile.js +1 -1
- package/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/dist/components/BlockContent.d.ts +2 -1
- package/dist/components/Blocks.d.ts +1 -0
- package/dist/components/Blocks.js +2 -0
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/ComparisonTable/ComparisonTable.js +12 -10
- package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +0 -20
- package/dist/components/ComparisonTable/HeaderCell.js +1 -1
- package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
- package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
- package/dist/components/ComparisonTable/TableCarouselContainer.js +5 -2
- package/dist/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
- package/dist/components/ComparisonTable/TableRow.js +1 -1
- package/dist/components/ComparisonTable/TableRow.js.map +1 -1
- package/dist/components/ContentPage/ContentPageHead.d.ts +1 -1
- package/dist/components/CreditCalculator/CreditCalculator.js +1 -1
- package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/dist/components/Footer/Contacts.js +1 -1
- package/dist/components/Footer/Contacts.js.map +1 -1
- package/dist/components/Footer/FooterContent.d.ts +1 -2
- package/dist/components/Footer/HorizontalNavigation.js +1 -1
- package/dist/components/Footer/SocialMedia.js +1 -2
- package/dist/components/Footer/SocialMedia.js.map +1 -1
- package/dist/components/Gallery/GalleryInner.js +2 -2
- package/dist/components/Gallery/GalleryInner.js.map +1 -1
- package/dist/components/LinkDocs/LinkDocs.js +5 -5
- package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
- package/dist/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
- package/dist/components/MobileBlocks.js +0 -3
- package/dist/components/MobileBlocks.js.map +1 -1
- package/dist/components/PictureText/PictureText.js +1 -1
- package/dist/components/PictureText/PictureText.js.map +1 -1
- package/dist/components/PictureText/PictureTextContent.d.ts +2 -4
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlock.mobile.js +3 -1
- package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
- package/dist/components/ProductBlock/ProductBlockInner.js +1 -4
- package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.js +2 -2
- package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/dist/components/PromoTile/PromoTile.d.ts +1 -1
- package/dist/components/PromoTile/PromoTile.js +1 -1
- package/dist/components/PromoTile/PromoTile.js.map +1 -1
- package/dist/components/TariffsTable/TariffsTable.d.ts +5 -0
- package/dist/components/TariffsTable/TariffsTable.js +25 -0
- package/dist/components/TariffsTable/TariffsTable.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -0
- package/dist/components/TariffsTable/TariffsTableCell.js +18 -0
- package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableContent.d.ts +55 -0
- package/dist/components/TariffsTable/TariffsTableContent.js +2 -0
- package/dist/components/TariffsTable/TariffsTableContent.js.map +1 -0
- package/dist/components/TariffsTable/TariffsTableRow.d.ts +8 -0
- package/dist/components/TariffsTable/TariffsTableRow.js +13 -0
- package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -0
- package/dist/components/TariffsTable/constants.d.ts +4 -0
- package/dist/components/TariffsTable/constants.js +7 -0
- package/dist/components/TariffsTable/constants.js.map +1 -0
- package/dist/components/TextBlock/TextBlock.d.ts +1 -1
- package/dist/components/TextBlock/TextBlock.js +1 -1
- package/dist/components/TextBlock/TextBlock.js.map +1 -1
- package/dist/components/TextBlock/TextBlockContent.d.ts +1 -2
- package/dist/components/Tile/Tile.d.ts +1 -1
- package/dist/components/Tile/Tile.js +14 -2
- package/dist/components/Tile/Tile.js.map +1 -1
- package/dist/content-page-repository/ContentPageRepository.js +1 -0
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
- package/dist/hooks/useComparisonTableScroll.d.ts +12 -0
- package/dist/hooks/useComparisonTableScroll.js +12 -0
- package/dist/hooks/useComparisonTableScroll.js.map +1 -0
- package/dist/hooks/useLink.js +1 -1
- package/dist/hooks/useLink.js.map +1 -1
- package/dist/model/TableVersion.d.ts +1 -0
- package/dist/model/TableVersion.js +2 -0
- package/dist/model/TableVersion.js.map +1 -0
- package/dist/ui-kit/BlockItem/BlockItem.d.ts +1 -9
- package/dist/ui-kit/BlockItem/BlockItem.js +5 -5
- package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
- package/dist/ui-kit/BlockItem/BlockItemProps.js +2 -0
- package/dist/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
- package/dist/ui-kit/Icon/IconProps.d.ts +57 -25
- package/dist/ui-kit/Icon/IconProps.js +39 -23
- package/dist/ui-kit/Icon/IconProps.js.map +1 -1
- package/dist/ui-kit/InputRange/InputRange.js +1 -1
- package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
- package/dist/ui-kit/SearchBar.js +2 -1
- package/dist/ui-kit/SearchBar.js.map +1 -1
- package/lib/api/LikeAPI.js +1 -0
- package/lib/api/LikeAPI.js.map +1 -1
- package/lib/common.css +1 -1
- package/lib/components/Accordion/Accordion.fixture.d.ts +1 -4
- package/lib/components/Accordion/AccordionContent.d.ts +38 -14
- package/lib/components/Accordion/AccordionItem.js +8 -6
- package/lib/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/components/BaseTile/BaseTile.js +1 -1
- package/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/lib/components/BlockContent.d.ts +2 -1
- package/lib/components/Blocks.d.ts +1 -0
- package/lib/components/Blocks.js +2 -0
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTable.js +12 -10
- package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +0 -20
- package/lib/components/ComparisonTable/HeaderCell.js +1 -1
- package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
- package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +3 -0
- package/lib/components/ComparisonTable/TableCarouselContainer.js +5 -2
- package/lib/components/ComparisonTable/TableCarouselContainer.js.map +1 -1
- package/lib/components/ComparisonTable/TableRow.js +2 -2
- package/lib/components/ComparisonTable/TableRow.js.map +1 -1
- package/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
- package/lib/components/CreditCalculator/CreditCalculator.js +1 -1
- package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
- package/lib/components/Footer/Contacts.js +1 -1
- package/lib/components/Footer/Contacts.js.map +1 -1
- package/lib/components/Footer/FooterContent.d.ts +1 -2
- package/lib/components/Footer/HorizontalNavigation.js +1 -1
- package/lib/components/Footer/SocialMedia.js +1 -2
- package/lib/components/Footer/SocialMedia.js.map +1 -1
- package/lib/components/Gallery/GalleryInner.js +2 -2
- package/lib/components/Gallery/GalleryInner.js.map +1 -1
- package/lib/components/Headline/Headline.fixture.d.ts +3 -2
- package/lib/components/LinkDocs/LinkDocs.fixture.d.ts +6 -6
- package/lib/components/LinkDocs/LinkDocs.js +5 -5
- package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
- package/lib/components/MiniGallery/MiniGalleryContent.d.ts +1 -2
- package/lib/components/MobileBlocks.js +0 -3
- package/lib/components/MobileBlocks.js.map +1 -1
- package/lib/components/PictureText/PictureText.fixture.d.ts +2 -0
- package/lib/components/PictureText/PictureText.js +1 -1
- package/lib/components/PictureText/PictureText.js.map +1 -1
- package/lib/components/PictureText/PictureTextContent.d.ts +2 -4
- package/lib/components/Placeholder/Placeholder.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlock.mobile.js +3 -1
- package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
- package/lib/components/ProductBlock/ProductBlockInner.js +1 -4
- package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.js +2 -2
- package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/lib/components/PromoTile/PromoTile.d.ts +1 -1
- package/lib/components/PromoTile/PromoTile.js +1 -1
- package/lib/components/PromoTile/PromoTile.js.map +1 -1
- package/lib/components/TariffsTable/TariffsTable.d.ts +5 -0
- package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +7 -0
- package/lib/components/TariffsTable/TariffsTable.js +23 -0
- package/lib/components/TariffsTable/TariffsTable.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -0
- package/lib/components/TariffsTable/TariffsTableCell.js +16 -0
- package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableContent.d.ts +55 -0
- package/lib/components/TariffsTable/TariffsTableContent.js +2 -0
- package/lib/components/TariffsTable/TariffsTableContent.js.map +1 -0
- package/lib/components/TariffsTable/TariffsTableRow.d.ts +8 -0
- package/lib/components/TariffsTable/TariffsTableRow.js +11 -0
- package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -0
- package/lib/components/TariffsTable/constants.d.ts +4 -0
- package/lib/components/TariffsTable/constants.js +5 -0
- package/lib/components/TariffsTable/constants.js.map +1 -0
- package/lib/components/TextBlock/TextBlock.d.ts +1 -1
- package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
- package/lib/components/TextBlock/TextBlock.js +1 -1
- package/lib/components/TextBlock/TextBlock.js.map +1 -1
- package/lib/components/TextBlock/TextBlockContent.d.ts +1 -2
- package/lib/components/Tile/Tile.d.ts +1 -1
- package/lib/components/Tile/Tile.js +14 -2
- package/lib/components/Tile/Tile.js.map +1 -1
- package/lib/content-page-repository/ContentPageRepository.js +1 -0
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
- package/lib/hooks/useComparisonTableScroll.d.ts +12 -0
- package/lib/hooks/useComparisonTableScroll.js +9 -0
- package/lib/hooks/useComparisonTableScroll.js.map +1 -0
- package/lib/hooks/useLink.js +1 -1
- package/lib/hooks/useLink.js.map +1 -1
- package/lib/model/TableVersion.d.ts +1 -0
- package/lib/model/TableVersion.js +2 -0
- package/lib/model/TableVersion.js.map +1 -0
- package/lib/ui-kit/BlockItem/BlockItem.d.ts +1 -9
- package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +6 -1
- package/lib/ui-kit/BlockItem/BlockItem.js +5 -5
- package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
- package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +20 -0
- package/lib/ui-kit/BlockItem/BlockItemProps.js +2 -0
- package/lib/ui-kit/BlockItem/BlockItemProps.js.map +1 -0
- package/lib/ui-kit/Icon/IconProps.d.ts +57 -25
- package/lib/ui-kit/Icon/IconProps.js +39 -23
- package/lib/ui-kit/Icon/IconProps.js.map +1 -1
- package/lib/ui-kit/InputRange/InputRange.js +1 -1
- package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
- package/lib/ui-kit/SearchBar.js +2 -1
- package/lib/ui-kit/SearchBar.js.map +1 -1
- package/package.json +19 -9
- package/src/api/LikeAPI.ts +1 -0
- package/src/components/Accordion/Accordion.example.json +18 -42
- package/src/components/Accordion/Accordion.fixture.tsx +29 -119
- package/src/components/Accordion/AccordionContent.ts +47 -18
- package/src/components/Accordion/AccordionItem.tsx +13 -9
- package/src/components/BaseTile/BaseTile.tsx +6 -3
- package/src/components/BlockContent.ts +2 -0
- package/src/components/Blocks.ts +2 -0
- package/src/components/ComparisonTable/ComparisonTable.tsx +17 -14
- package/src/components/ComparisonTable/ComparisonTableContent.ts +0 -21
- package/src/components/ComparisonTable/HeaderCell.tsx +3 -3
- package/src/components/ComparisonTable/TableCarouselContainer.tsx +11 -4
- package/src/components/ComparisonTable/TableRow.tsx +2 -2
- package/src/components/ContentPage/ContentPage.fixture.tsx +3 -3
- package/src/components/ContentPage/ContentPage.page.json +425 -3
- package/src/components/ContentPage/ContentPageHead.tsx +1 -1
- package/src/components/CreditCalculator/CreditCalculator.tsx +1 -1
- package/src/components/Footer/Contacts.tsx +1 -1
- package/src/components/Footer/FooterContent.ts +1 -1
- package/src/components/Footer/HorizontalNavigation.tsx +1 -1
- package/src/components/Footer/SocialMedia.tsx +5 -6
- package/src/components/Gallery/GalleryInner.tsx +2 -1
- package/src/components/Headline/Headline.fixture.tsx +11 -34
- package/src/components/LinkDocs/LinkDocs.fixture.tsx +14 -14
- package/src/components/LinkDocs/LinkDocs.tsx +8 -7
- package/src/components/MiniGallery/MiniGalleryContent.ts +1 -1
- package/src/components/MobileBlocks.ts +0 -3
- package/src/components/PictureText/PictureText.fixture.tsx +20 -20
- package/src/components/PictureText/PictureText.tsx +3 -1
- package/src/components/PictureText/PictureTextContent.ts +2 -5
- package/src/components/Placeholder/Placeholder.tsx +2 -2
- package/src/components/ProductBlock/ProductBlock.mobile.tsx +1 -0
- package/src/components/ProductBlock/ProductBlockInner.tsx +8 -11
- package/src/components/ProductGallery/ProductGallery.example.json +1 -1
- package/src/components/ProductGallery/ProductGallery.fixture.tsx +7 -13
- package/src/components/ProductGallery/ProductGallery.tsx +7 -5
- package/src/components/PromoTile/PromoTile.tsx +3 -3
- package/src/components/TariffsTable/TariffsTable.example.json +87 -0
- package/src/components/TariffsTable/TariffsTable.fixture.tsx +195 -0
- package/src/components/TariffsTable/TariffsTable.tsx +74 -0
- package/src/components/TariffsTable/TariffsTableCell.tsx +64 -0
- package/src/components/TariffsTable/TariffsTableContent.ts +61 -0
- package/src/components/TariffsTable/TariffsTableRow.tsx +46 -0
- package/src/components/TariffsTable/constants.ts +4 -0
- package/src/components/TextBlock/TextBlock.example.json +9 -2
- package/src/components/TextBlock/TextBlock.fixture.tsx +20 -64
- package/src/components/TextBlock/TextBlock.tsx +2 -2
- package/src/components/TextBlock/TextBlockContent.ts +1 -2
- package/src/components/Tile/Tile.example.json +5 -2
- package/src/components/Tile/Tile.tsx +16 -5
- package/src/content-page-repository/ContentPageRepository.ts +1 -0
- package/src/hooks/useComparisonTableScroll.ts +21 -0
- package/src/hooks/useLink.ts +1 -1
- package/src/model/TableVersion.ts +1 -0
- package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +8 -1
- package/src/ui-kit/BlockItem/BlockItem.tsx +7 -18
- package/src/ui-kit/BlockItem/BlockItemProps.ts +22 -0
- package/src/ui-kit/Icon/IconProps.ts +34 -2
- package/src/ui-kit/InputRange/InputRange.tsx +2 -2
- package/src/ui-kit/SearchBar.tsx +16 -6
|
@@ -5,22 +5,14 @@
|
|
|
5
5
|
"label": "Accordion label 1",
|
|
6
6
|
"blocks": [
|
|
7
7
|
{
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
12
|
-
"blockVersion": "secondary-light",
|
|
13
|
-
"iconVersion": "small"
|
|
14
|
-
}
|
|
8
|
+
"accordionBlockType": "TextBlock",
|
|
9
|
+
"title": "Текстовый блок",
|
|
10
|
+
"description": "Описание текстового блока"
|
|
15
11
|
},
|
|
16
12
|
{
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
21
|
-
"blockVersion": "secondary-light",
|
|
22
|
-
"iconVersion": "small"
|
|
23
|
-
}
|
|
13
|
+
"accordionBlockType": "TextBlock",
|
|
14
|
+
"title": "Текстовый блок №2",
|
|
15
|
+
"description": "Описание текстового блока №2"
|
|
24
16
|
}
|
|
25
17
|
]
|
|
26
18
|
},
|
|
@@ -28,22 +20,14 @@
|
|
|
28
20
|
"label": "Accordion label 2",
|
|
29
21
|
"blocks": [
|
|
30
22
|
{
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
35
|
-
"blockVersion": "secondary-light",
|
|
36
|
-
"iconVersion": "small"
|
|
37
|
-
}
|
|
23
|
+
"accordionBlockType": "TextBlock",
|
|
24
|
+
"title": "Текстовый блок",
|
|
25
|
+
"description": "Описание текстового блока"
|
|
38
26
|
},
|
|
39
27
|
{
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
44
|
-
"blockVersion": "secondary-light",
|
|
45
|
-
"iconVersion": "small"
|
|
46
|
-
}
|
|
28
|
+
"accordionBlockType": "TextBlock",
|
|
29
|
+
"title": "Текстовый блок №2",
|
|
30
|
+
"description": "Описание текстового блока №2"
|
|
47
31
|
}
|
|
48
32
|
]
|
|
49
33
|
},
|
|
@@ -51,22 +35,14 @@
|
|
|
51
35
|
"label": "Accordion label 3",
|
|
52
36
|
"blocks": [
|
|
53
37
|
{
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
58
|
-
"blockVersion": "secondary-light",
|
|
59
|
-
"iconVersion": "small"
|
|
60
|
-
}
|
|
38
|
+
"accordionBlockType": "TextBlock",
|
|
39
|
+
"title": "Текстовый блок",
|
|
40
|
+
"description": "Описание текстового блока"
|
|
61
41
|
},
|
|
62
42
|
{
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
"description": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque minima odio soluta cupiditate pariatur, labore molestias quas necessitatibus nesciunt in praesentium accusamus provident sequi maiores autem. Voluptas quam neque iste?",
|
|
67
|
-
"blockVersion": "secondary-light",
|
|
68
|
-
"iconVersion": "small"
|
|
69
|
-
}
|
|
43
|
+
"accordionBlockType": "TextBlock",
|
|
44
|
+
"title": "Текстовый блок №2",
|
|
45
|
+
"description": "Описание текстового блока №2"
|
|
70
46
|
}
|
|
71
47
|
]
|
|
72
48
|
}
|
|
@@ -1,52 +1,35 @@
|
|
|
1
1
|
import { context } from '../../setup-fixture';
|
|
2
|
+
import { HEADLINE } from '../Headline/Headline.fixture';
|
|
3
|
+
import { LINK_DOCS } from '../LinkDocs/LinkDocs.fixture';
|
|
4
|
+
import { PICTURE_TEXT } from '../PictureText/PictureText.fixture';
|
|
5
|
+
import { TEXT_BLOCK } from '../TextBlock/TextBlock.fixture';
|
|
2
6
|
import type { AccordionProps } from './Accordion';
|
|
3
|
-
import type { HeadlineProps } from '../Headline/Headline';
|
|
4
|
-
import type { PictureTextContent } from '../PictureText/PictureTextContent';
|
|
5
|
-
import type { TextBlockContent } from '../TextBlock/TextBlockContent';
|
|
6
|
-
|
|
7
7
|
import { Accordion } from './Accordion';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
import type {
|
|
9
|
+
HeadlineAccordionBlock,
|
|
10
|
+
LinkDocsAccordionBlock,
|
|
11
|
+
PictureTextAccordionBlock,
|
|
12
|
+
TextBlockAccordionBlock,
|
|
13
|
+
} from './AccordionContent';
|
|
13
14
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
const TEXT_BLOCK_ACCORDION_BLOCK: TextBlockAccordionBlock = {
|
|
16
|
+
accordionBlockType: 'TextBlock',
|
|
17
|
+
...TEXT_BLOCK,
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
description: 'Карта работает в 180 странах мира. Бесплатное снятие наличных в любых банкоматах.',
|
|
23
|
-
align: 'left',
|
|
24
|
-
bgColor: 'bg-white',
|
|
20
|
+
const HEADLINE_ACCORDION_BLOCK: HeadlineAccordionBlock = {
|
|
21
|
+
accordionBlockType: 'Headline',
|
|
22
|
+
...HEADLINE,
|
|
25
23
|
};
|
|
26
24
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
{
|
|
36
|
-
label: 'Кредит на общих условиях',
|
|
37
|
-
description: 'До 5 млн ₽ на общих условиях получения кредита',
|
|
38
|
-
icon: 'DiscountShape',
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
image: {
|
|
42
|
-
src: 'legal-support-business.png',
|
|
43
|
-
alt: 'Варианты потребительского кредита',
|
|
44
|
-
format: 'webp',
|
|
45
|
-
size: {
|
|
46
|
-
width: 200,
|
|
47
|
-
height: 200,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
25
|
+
const PICTURE_TEXT_ACCORDION_BLOCK: PictureTextAccordionBlock = {
|
|
26
|
+
accordionBlockType: 'PictureText',
|
|
27
|
+
...PICTURE_TEXT,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const LINK_DOCS_ACCORDION_BLOCK: LinkDocsAccordionBlock = {
|
|
31
|
+
accordionBlockType: 'LinkDocs',
|
|
32
|
+
...LINK_DOCS,
|
|
50
33
|
};
|
|
51
34
|
|
|
52
35
|
const propsTextBlock: AccordionProps = {
|
|
@@ -55,94 +38,21 @@ const propsTextBlock: AccordionProps = {
|
|
|
55
38
|
accordionItems: [
|
|
56
39
|
{
|
|
57
40
|
label: 'Accordion label 1',
|
|
58
|
-
blocks: [
|
|
59
|
-
{
|
|
60
|
-
type: 'TextBlock',
|
|
61
|
-
data: TEXT_BLOCK,
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
type: 'TextBlock',
|
|
65
|
-
data: TEXT_BLOCK,
|
|
66
|
-
},
|
|
67
|
-
],
|
|
41
|
+
blocks: [TEXT_BLOCK_ACCORDION_BLOCK, TEXT_BLOCK_ACCORDION_BLOCK],
|
|
68
42
|
},
|
|
69
43
|
{
|
|
70
44
|
label: 'Accordion label 2',
|
|
71
|
-
blocks: [
|
|
72
|
-
{
|
|
73
|
-
type: 'TextBlock',
|
|
74
|
-
data: TEXT_BLOCK,
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
type: 'TextBlock',
|
|
78
|
-
data: TEXT_BLOCK,
|
|
79
|
-
},
|
|
80
|
-
],
|
|
45
|
+
blocks: [PICTURE_TEXT_ACCORDION_BLOCK],
|
|
81
46
|
},
|
|
82
47
|
{
|
|
83
48
|
label: 'Accordion label 3',
|
|
84
|
-
blocks: [
|
|
85
|
-
{
|
|
86
|
-
type: 'PictureText',
|
|
87
|
-
data: PICTURE_TEXT,
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
type: 'PictureText',
|
|
91
|
-
data: PICTURE_TEXT,
|
|
92
|
-
},
|
|
93
|
-
],
|
|
49
|
+
blocks: [HEADLINE_ACCORDION_BLOCK],
|
|
94
50
|
},
|
|
95
51
|
{
|
|
96
52
|
label: 'Accordion label 4',
|
|
97
|
-
blocks: [
|
|
98
|
-
{
|
|
99
|
-
type: 'Headline',
|
|
100
|
-
data: HEADLINE,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'Headline',
|
|
104
|
-
data: HEADLINE,
|
|
105
|
-
},
|
|
106
|
-
],
|
|
53
|
+
blocks: [LINK_DOCS_ACCORDION_BLOCK],
|
|
107
54
|
},
|
|
108
55
|
],
|
|
109
56
|
};
|
|
110
57
|
|
|
111
|
-
|
|
112
|
-
title: 'Accordion title',
|
|
113
|
-
context,
|
|
114
|
-
accordionItems: [
|
|
115
|
-
{
|
|
116
|
-
label: 'Список документов в 2 колонки',
|
|
117
|
-
blocks: [
|
|
118
|
-
{
|
|
119
|
-
type: 'LinkDocs',
|
|
120
|
-
data: { ...LinkDocsFixtureSetOne, title: '' },
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
label: 'Список документов в одну колонку',
|
|
126
|
-
blocks: [
|
|
127
|
-
{
|
|
128
|
-
type: 'LinkDocs',
|
|
129
|
-
data: { ...LinkDocsFixtureSetTwo, title: '' },
|
|
130
|
-
},
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
label: 'Немного кастомизированный список',
|
|
135
|
-
blocks: [
|
|
136
|
-
{
|
|
137
|
-
type: 'LinkDocs',
|
|
138
|
-
data: LinkDocsFixtureSetThree,
|
|
139
|
-
},
|
|
140
|
-
],
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
export default {
|
|
146
|
-
'with text block': <Accordion {...propsTextBlock} />,
|
|
147
|
-
'with link docs block': <Accordion {...propsLinkDocs} />,
|
|
148
|
-
};
|
|
58
|
+
export default <Accordion {...propsTextBlock} />;
|
|
@@ -2,41 +2,70 @@ import type { HeadlineContent } from '../Headline/HeadlineContent';
|
|
|
2
2
|
import type { LinkDocsContent } from '../LinkDocs/LinkDocsContent';
|
|
3
3
|
import type { PictureTextContent } from '../PictureText/PictureTextContent';
|
|
4
4
|
import type { TextBlockContent } from '../TextBlock/TextBlockContent';
|
|
5
|
-
import AccordionBlocks from './AccordionBlocks';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
* @
|
|
9
|
-
* @title Содержимое блока
|
|
7
|
+
* @title Тип блока
|
|
10
8
|
*/
|
|
11
|
-
export type
|
|
12
|
-
| HeadlineContent
|
|
13
|
-
| LinkDocsContent
|
|
14
|
-
| TextBlockContent
|
|
15
|
-
| PictureTextContent;
|
|
9
|
+
export type AccordionTypeBlock = 'Headline' | 'LinkDocs' | 'TextBlock' | 'PictureText';
|
|
16
10
|
|
|
17
11
|
/**
|
|
18
|
-
* @
|
|
19
|
-
* @title Тип блока
|
|
20
|
-
* @enumNames ["Заголовок", "Блок документов", Текстовый блок", "Картинка с текстом"]
|
|
12
|
+
* @title Заголовок
|
|
21
13
|
*/
|
|
22
|
-
export
|
|
14
|
+
export interface HeadlineAccordionBlock extends HeadlineContent {
|
|
15
|
+
/** @default Headline */
|
|
16
|
+
accordionBlockType: AccordionTypeBlock;
|
|
17
|
+
}
|
|
23
18
|
|
|
24
19
|
/**
|
|
25
|
-
*
|
|
20
|
+
* @title Список документов
|
|
26
21
|
*/
|
|
27
|
-
export interface
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
export interface LinkDocsAccordionBlock extends LinkDocsContent {
|
|
23
|
+
/** @default LinkDocs */
|
|
24
|
+
accordionBlockType: AccordionTypeBlock;
|
|
30
25
|
}
|
|
31
26
|
|
|
27
|
+
/**
|
|
28
|
+
* @title Текстовый блок
|
|
29
|
+
*/
|
|
30
|
+
export interface TextBlockAccordionBlock extends TextBlockContent {
|
|
31
|
+
/** @default TextBlock */
|
|
32
|
+
accordionBlockType: AccordionTypeBlock;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @title Картинка с текстом
|
|
37
|
+
*/
|
|
38
|
+
export interface PictureTextAccordionBlock extends PictureTextContent {
|
|
39
|
+
/** @default PictureText */
|
|
40
|
+
accordionBlockType: AccordionTypeBlock;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @title Выберите блок
|
|
45
|
+
*/
|
|
46
|
+
export type EmptyOption = null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @title Содержимое аккордеона
|
|
50
|
+
*/
|
|
51
|
+
export type AccordionBlockProps =
|
|
52
|
+
| EmptyOption
|
|
53
|
+
| HeadlineAccordionBlock
|
|
54
|
+
| LinkDocsAccordionBlock
|
|
55
|
+
| TextBlockAccordionBlock
|
|
56
|
+
| PictureTextAccordionBlock;
|
|
57
|
+
|
|
32
58
|
/**
|
|
33
59
|
* @title Элемент списка
|
|
34
60
|
*/
|
|
35
61
|
export interface AccordionItemCommonProps {
|
|
36
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* @title Название
|
|
64
|
+
* @default Список
|
|
65
|
+
*/
|
|
37
66
|
label?: string;
|
|
38
67
|
/** @title Блоки */
|
|
39
|
-
blocks?:
|
|
68
|
+
blocks?: AccordionBlockProps[];
|
|
40
69
|
}
|
|
41
70
|
|
|
42
71
|
/**
|
|
@@ -4,7 +4,7 @@ import { Icon } from '../../ui-kit/Icon/Icon';
|
|
|
4
4
|
import type { JSXBlock } from '../ContentPage/ContentPage';
|
|
5
5
|
import { ContentPageContext } from '../ContentPage/ContentPageContext';
|
|
6
6
|
import AccordionBlocks from './AccordionBlocks';
|
|
7
|
-
import type {
|
|
7
|
+
import type { AccordionBlockProps, AccordionItemCommonProps } from './AccordionContent';
|
|
8
8
|
|
|
9
9
|
export interface AccordionItemProps extends AccordionItemCommonProps, UniBlockProps {}
|
|
10
10
|
|
|
@@ -13,8 +13,11 @@ export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, context }
|
|
|
13
13
|
const hasContent = blocks?.length;
|
|
14
14
|
const icon = isActive ? 'MinusIcon' : 'PlusIcon';
|
|
15
15
|
|
|
16
|
-
const handleToggle = (e) => {
|
|
17
|
-
if (!hasContent)
|
|
16
|
+
const handleToggle = (e: MouseEvent) => {
|
|
17
|
+
if (!hasContent) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
18
21
|
setIsActive(!isActive);
|
|
19
22
|
const contentBlock = getContentBlock(e);
|
|
20
23
|
contentBlock.style.maxHeight = contentBlock.style.maxHeight
|
|
@@ -51,18 +54,19 @@ export const AccordionItem = JSX<AccordionItemProps>(({ label, blocks, context }
|
|
|
51
54
|
);
|
|
52
55
|
});
|
|
53
56
|
|
|
54
|
-
const renderBlock = (block:
|
|
55
|
-
|
|
57
|
+
const renderBlock = (block: AccordionBlockProps, i: number, context: ContentPageContext) => {
|
|
58
|
+
const type = block?.accordionBlockType;
|
|
59
|
+
if (!type || !(type in AccordionBlocks)) {
|
|
56
60
|
return null;
|
|
57
61
|
}
|
|
58
62
|
|
|
59
|
-
const AccordionBlock: JSXBlock = AccordionBlocks[
|
|
63
|
+
const AccordionBlock: JSXBlock = AccordionBlocks[type];
|
|
60
64
|
return (
|
|
61
65
|
<div className="mb-5 last:mb-0" key={`block_${i}`}>
|
|
62
|
-
<AccordionBlock context={context} {...block
|
|
66
|
+
<AccordionBlock context={context} {...block} />
|
|
63
67
|
</div>
|
|
64
68
|
);
|
|
65
69
|
};
|
|
66
70
|
|
|
67
|
-
const getContentBlock = (
|
|
68
|
-
|
|
71
|
+
const getContentBlock = ({ target }) =>
|
|
72
|
+
target.tagName === 'BUTTON' ? target.nextSibling : target.parentNode.nextSibling;
|
|
@@ -44,11 +44,14 @@ export const BaseTile = JSX<BaseTileProps>(
|
|
|
44
44
|
return (
|
|
45
45
|
<div className={`font-sans flex flex-col grow h-full ${alignBlock[align]}`}>
|
|
46
46
|
{title && (
|
|
47
|
-
<Title
|
|
47
|
+
<Title
|
|
48
|
+
size={titleSize || getTitleSizeByClassName(className)}
|
|
49
|
+
className={`${TITLE_CLASSES} ${version === 'primary' ? 'text-primary-text' : ''}`}
|
|
50
|
+
>
|
|
48
51
|
{title}
|
|
49
52
|
</Title>
|
|
50
53
|
)}
|
|
51
|
-
<div className="flex grow justify-between">
|
|
54
|
+
<div className="flex grow justify-between w-full">
|
|
52
55
|
<div className={`flex flex-col justify-between ${alignBlock[align]}`}>
|
|
53
56
|
<div>
|
|
54
57
|
{description ? (
|
|
@@ -74,7 +77,7 @@ export const BaseTile = JSX<BaseTileProps>(
|
|
|
74
77
|
},
|
|
75
78
|
);
|
|
76
79
|
|
|
77
|
-
function getTitleSizeByClassName(className
|
|
80
|
+
function getTitleSizeByClassName(className = '') {
|
|
78
81
|
const colSpan = getColSpan(className);
|
|
79
82
|
if (colSpan <= 4) {
|
|
80
83
|
return 'S';
|
|
@@ -15,6 +15,7 @@ import type { PromoTileContent } from './PromoTile/PromoTileContent';
|
|
|
15
15
|
import type { StepsBlockContent } from './StepsBlock/StepsBlockContent';
|
|
16
16
|
import type { TextBlockContent } from './TextBlock/TextBlockContent';
|
|
17
17
|
import type { TileContent } from './Tile/TileContent';
|
|
18
|
+
import { TariffsTableContent } from './TariffsTable/TariffsTableContent';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* @hidden
|
|
@@ -35,5 +36,6 @@ export type BlockContent =
|
|
|
35
36
|
| ProductTileContent
|
|
36
37
|
| PromoTileContent
|
|
37
38
|
| StepsBlockContent
|
|
39
|
+
| TariffsTableContent
|
|
38
40
|
| TextBlockContent
|
|
39
41
|
| TileContent;
|
package/src/components/Blocks.ts
CHANGED
|
@@ -17,6 +17,7 @@ import { ProductGallery } from './ProductGallery/ProductGallery';
|
|
|
17
17
|
import { ProductTile } from './ProductTile/ProductTile';
|
|
18
18
|
import { PromoTile } from './PromoTile/PromoTile';
|
|
19
19
|
import { StepsBlock } from './StepsBlock/StepsBlock';
|
|
20
|
+
import { TariffsTable } from './TariffsTable/TariffsTable';
|
|
20
21
|
import { TextBlock } from './TextBlock/TextBlock';
|
|
21
22
|
import { Tile } from './Tile/Tile';
|
|
22
23
|
|
|
@@ -40,6 +41,7 @@ export const Blocks = {
|
|
|
40
41
|
ProductTile,
|
|
41
42
|
PromoTile,
|
|
42
43
|
StepsBlock,
|
|
44
|
+
TariffsTable,
|
|
43
45
|
TextBlock,
|
|
44
46
|
Tile,
|
|
45
47
|
};
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
+
import { useComparisonTableScroll } from '../../hooks/useComparisonTableScroll';
|
|
3
|
+
import { useLink } from '../../hooks/useLink';
|
|
2
4
|
import type { UniBlockProps } from '../../types';
|
|
3
5
|
import { ArrowButton } from '../../ui-kit/Button/ArrowButton';
|
|
4
6
|
import { Title } from '../../ui-kit/Title/Title';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { useLink } from '../../hooks/useLink';
|
|
8
|
-
import type { ComparisonTableContent, RowData } from './ComparisonTableContent';
|
|
7
|
+
import type { ComparisonTableContent } from './ComparisonTableContent';
|
|
8
|
+
import { COLS_LENGTH_FOR_SCROLL, COLUMN_WIDTH, FIRST_CELL_CLASSES } from './constants';
|
|
9
9
|
import { HeaderCell } from './HeaderCell';
|
|
10
|
+
import { TableCarouselContainer } from './TableCarouselContainer';
|
|
10
11
|
import { TableRow } from './TableRow';
|
|
11
|
-
import {
|
|
12
|
+
import { TableRowContainer } from './TableRowContainer';
|
|
12
13
|
|
|
13
14
|
export interface ComparisonTableProps extends ComparisonTableContent, UniBlockProps {}
|
|
14
15
|
|
|
@@ -24,26 +25,28 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
|
|
|
24
25
|
}) => {
|
|
25
26
|
const router = context.useRouter();
|
|
26
27
|
const { handlerDecorator } = context;
|
|
28
|
+
|
|
27
29
|
const [activeCardIndex, setActiveCardIndex] = context.useState(0);
|
|
28
30
|
const [isShowAllRow, setIsShowAllRow] = context.useState(!visibleRowLength);
|
|
29
31
|
|
|
30
32
|
const colHeaders = columns?.map(({ header }) => header || {});
|
|
31
33
|
const colData = columns?.map(({ data }) => data) || [];
|
|
32
|
-
const rowData
|
|
34
|
+
const rowData = rowHeaders
|
|
33
35
|
?.map((header, i) => ({
|
|
34
36
|
header,
|
|
35
37
|
data: colData.map((col) => col?.[i] || [{}]),
|
|
36
38
|
}))
|
|
37
39
|
.slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
|
|
38
40
|
|
|
39
|
-
const nextClick
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
const { nextClick, prevClick, isScrollAvailable, showNextButton, showPrevButton } =
|
|
42
|
+
useComparisonTableScroll({
|
|
43
|
+
colData,
|
|
44
|
+
colsLengthForScroll: COLS_LENGTH_FOR_SCROLL,
|
|
45
|
+
activeCardIndex,
|
|
46
|
+
setActiveCardIndex,
|
|
47
|
+
});
|
|
42
48
|
|
|
43
|
-
const
|
|
44
|
-
const showNextButton =
|
|
45
|
-
isScrollAvailable && colData?.length - activeCardIndex > COLS_LENGTH_FOR_SCROLL;
|
|
46
|
-
const showPrevButton = isScrollAvailable && activeCardIndex > 0;
|
|
49
|
+
const showToggle = () => setIsShowAllRow(!isShowAllRow);
|
|
47
50
|
|
|
48
51
|
return (
|
|
49
52
|
<section
|
|
@@ -56,7 +59,7 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
|
|
|
56
59
|
{colHeaders?.length ? (
|
|
57
60
|
<TableRowContainer>
|
|
58
61
|
<div className={FIRST_CELL_CLASSES} role="columnheader" scope="col" />
|
|
59
|
-
<TableCarouselContainer activeCardIndex={activeCardIndex}>
|
|
62
|
+
<TableCarouselContainer activeCardIndex={activeCardIndex} columnWidth={COLUMN_WIDTH}>
|
|
60
63
|
{colHeaders.map((header, i) => (
|
|
61
64
|
<HeaderCell
|
|
62
65
|
key={String(i)}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { LinkProps } from '../../model/LinkProps';
|
|
2
2
|
import type { Picture } from '../../model/Picture';
|
|
3
|
-
import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
|
|
4
3
|
import type { IconName } from '../../ui-kit/Icon/IconProps';
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -11,11 +10,6 @@ export type Row = {
|
|
|
11
10
|
data: CellData[][];
|
|
12
11
|
};
|
|
13
12
|
|
|
14
|
-
/**
|
|
15
|
-
* @hidden
|
|
16
|
-
*/
|
|
17
|
-
export type RowData = Row[] | undefined;
|
|
18
|
-
|
|
19
13
|
/**
|
|
20
14
|
* @title Ячейка
|
|
21
15
|
*/
|
|
@@ -24,18 +18,6 @@ export interface CellData {
|
|
|
24
18
|
label?: string;
|
|
25
19
|
/** @title Описание */
|
|
26
20
|
description?: string;
|
|
27
|
-
/**
|
|
28
|
-
* @title Иконки
|
|
29
|
-
* @hidden
|
|
30
|
-
*/
|
|
31
|
-
icons?: IconName[];
|
|
32
|
-
/** @hidden */
|
|
33
|
-
image?: Picture;
|
|
34
|
-
/**
|
|
35
|
-
* @title Кнопки
|
|
36
|
-
* @hidden
|
|
37
|
-
*/
|
|
38
|
-
buttons?: ButtonProps[];
|
|
39
21
|
}
|
|
40
22
|
|
|
41
23
|
/**
|
|
@@ -44,11 +26,9 @@ export interface CellData {
|
|
|
44
26
|
export interface ColumnHeader {
|
|
45
27
|
/** @title Заголовок */
|
|
46
28
|
title?: string;
|
|
47
|
-
/** @hidden */
|
|
48
29
|
icon?: IconName;
|
|
49
30
|
/** @hidden */
|
|
50
31
|
image?: Picture;
|
|
51
|
-
/** @hidden */
|
|
52
32
|
link?: LinkProps;
|
|
53
33
|
}
|
|
54
34
|
|
|
@@ -67,7 +47,6 @@ export interface Column {
|
|
|
67
47
|
export interface RowHeader {
|
|
68
48
|
/** @title Заголовок */
|
|
69
49
|
title?: string;
|
|
70
|
-
icon?: IconName;
|
|
71
50
|
}
|
|
72
51
|
/**
|
|
73
52
|
* @title Сравнительная таблица
|
|
@@ -17,7 +17,7 @@ export interface HeaderCellProps {
|
|
|
17
17
|
|
|
18
18
|
export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) => (
|
|
19
19
|
<div
|
|
20
|
-
className={`w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-
|
|
20
|
+
className={`w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES} ${GRADIENT}`}
|
|
21
21
|
role="columnheader"
|
|
22
22
|
scope="col"
|
|
23
23
|
>
|
|
@@ -29,7 +29,7 @@ export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) =>
|
|
|
29
29
|
height="63"
|
|
30
30
|
/>
|
|
31
31
|
)}
|
|
32
|
-
{image?.src && <Img className="mb-
|
|
32
|
+
{image?.src && <Img className="mb-[18px]" image={image} />}
|
|
33
33
|
{title && (
|
|
34
34
|
<Title size="S" className="font-medium m-0 text-center text-white">
|
|
35
35
|
{title}
|
|
@@ -42,7 +42,7 @@ export const HeaderCell = JSX<HeaderCellProps>(({ icon, image, title, link }) =>
|
|
|
42
42
|
target={link.target}
|
|
43
43
|
className="mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active"
|
|
44
44
|
>
|
|
45
|
-
<div className="text-xs py-[11px]">{link.text}</div>
|
|
45
|
+
<div className="font-medium text-xs py-[11px]">{link.text}</div>
|
|
46
46
|
</Button>
|
|
47
47
|
</div>
|
|
48
48
|
)}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import {
|
|
2
|
+
import { TableVersion } from '../../model/TableVersion';
|
|
3
3
|
|
|
4
4
|
export interface TableCarouselContainerProps {
|
|
5
5
|
activeCardIndex: number;
|
|
6
|
+
columnWidth: number;
|
|
7
|
+
version?: TableVersion;
|
|
6
8
|
}
|
|
7
9
|
|
|
10
|
+
const carouselContainerClassesMap: Record<TableVersion, string> = {
|
|
11
|
+
comparison: 'flex gap-4 duration-1000',
|
|
12
|
+
tariff: 'flex flex-grow duration-1000',
|
|
13
|
+
};
|
|
14
|
+
|
|
8
15
|
export const TableCarouselContainer = JSX<TableCarouselContainerProps>(
|
|
9
|
-
({ children, activeCardIndex }) => (
|
|
16
|
+
({ children, activeCardIndex, columnWidth, version = 'comparison' }) => (
|
|
10
17
|
<div className="flex flex-1 overflow-hidden">
|
|
11
18
|
<div
|
|
12
|
-
className=
|
|
13
|
-
style={{ transform: `translateX(-${activeCardIndex *
|
|
19
|
+
className={carouselContainerClassesMap[version]}
|
|
20
|
+
style={{ transform: `translateX(-${activeCardIndex * columnWidth}px)` }}
|
|
14
21
|
>
|
|
15
22
|
{children}
|
|
16
23
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { Row } from './ComparisonTableContent';
|
|
3
|
-
import { DIVIDER_CLASSES, FIRST_CELL_CLASSES } from './constants';
|
|
3
|
+
import { COLUMN_WIDTH, DIVIDER_CLASSES, FIRST_CELL_CLASSES } from './constants';
|
|
4
4
|
import { TableCarouselContainer } from './TableCarouselContainer';
|
|
5
5
|
import { TableCell } from './TableCell';
|
|
6
6
|
import { TableRowContainer } from './TableRowContainer';
|
|
@@ -27,7 +27,7 @@ export const TableRow = JSX<TableRowProps>(
|
|
|
27
27
|
</div>
|
|
28
28
|
) : null}
|
|
29
29
|
{data?.length ? (
|
|
30
|
-
<TableCarouselContainer activeCardIndex={activeCardIndex}>
|
|
30
|
+
<TableCarouselContainer activeCardIndex={activeCardIndex} columnWidth={COLUMN_WIDTH}>
|
|
31
31
|
{data.map((cell, i) => (
|
|
32
32
|
<TableCell
|
|
33
33
|
key={String(i)}
|