@redneckz/wildless-cms-uni-blocks 0.2.92 → 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 +79 -56
- 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/Blocks.js +1 -1
- package/dist/components/Blocks.js.map +1 -1
- package/dist/components/ComparisonTable/ComparisonTable.js +11 -6
- package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/dist/components/ComparisonTable/HeaderCell.js +1 -1
- package/dist/components/ComparisonTable/HeaderCell.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/PictureTextContent.d.ts +1 -3
- 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.js +8 -3
- package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
- package/dist/components/TariffsTable/TariffsTableCell.js +3 -3
- package/dist/components/TariffsTable/TariffsTableCell.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 +6 -1
- package/dist/hooks/useComparisonTableScroll.js +1 -1
- package/dist/hooks/useComparisonTableScroll.js.map +1 -1
- package/dist/hooks/useLink.js +1 -1
- package/dist/hooks/useLink.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/Blocks.js +1 -1
- package/lib/components/Blocks.js.map +1 -1
- package/lib/components/ComparisonTable/ComparisonTable.js +11 -6
- package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
- package/lib/components/ComparisonTable/HeaderCell.js +1 -1
- package/lib/components/ComparisonTable/HeaderCell.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/PictureTextContent.d.ts +1 -3
- 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.js +8 -3
- package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
- package/lib/components/TariffsTable/TariffsTableCell.js +3 -3
- package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
- package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
- 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 +6 -1
- package/lib/hooks/useComparisonTableScroll.js +1 -1
- package/lib/hooks/useComparisonTableScroll.js.map +1 -1
- package/lib/hooks/useLink.js +1 -1
- package/lib/hooks/useLink.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/Blocks.ts +1 -1
- package/src/components/ComparisonTable/ComparisonTable.tsx +8 -8
- package/src/components/ComparisonTable/HeaderCell.tsx +3 -3
- package/src/components/ContentPage/ContentPage.fixture.tsx +3 -3
- package/src/components/ContentPage/ContentPage.page.json +14 -7
- 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/PictureTextContent.ts +1 -3
- 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 +3 -1
- package/src/components/TariffsTable/TariffsTable.fixture.tsx +3 -0
- package/src/components/TariffsTable/TariffsTable.tsx +39 -37
- package/src/components/TariffsTable/TariffsTableCell.tsx +4 -4
- package/src/components/TextBlock/TextBlock.example.json +9 -2
- package/src/components/TextBlock/TextBlock.fixture.tsx +20 -64
- 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 +11 -6
- package/src/hooks/useLink.ts +1 -1
- package/src/ui-kit/InputRange/InputRange.tsx +2 -2
- package/src/ui-kit/SearchBar.tsx +16 -6
- package/src/Icons/CalendarCircleIcon.svg +0 -14
- package/src/Icons/CardIcon.svg +0 -11
- package/src/Icons/CardPosIcon.svg +0 -12
- package/src/Icons/CardTickIcon.svg +0 -13
- package/src/Icons/EmptyWalletChangeIcon.svg +0 -21
- package/src/Icons/JCBIcon.svg +0 -42
- package/src/Icons/MastercardIcon.svg +0 -6
- package/src/Icons/MinusIcon.svg +0 -1
- package/src/Icons/MirIcon.svg +0 -13
- package/src/Icons/MoneyIcon.svg +0 -13
- package/src/Icons/MonitorMobileIcon.svg +0 -14
- package/src/Icons/PlusIcon.svg +0 -1
- package/src/Icons/Profile2UserIcon.svg +0 -14
- package/src/Icons/ShieldTickIcon.svg +0 -7
- package/src/Icons/UnionPayIcon.svg +0 -7
- package/src/Icons/UserIcon.svg +0 -11
- package/src/Icons/VisaIcon.svg +0 -7
- package/src/Icons/WalletIcon.svg +0 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redneckz/wildless-cms-uni-blocks",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.93",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ЦК",
|
|
@@ -65,16 +65,18 @@
|
|
|
65
65
|
"postbuild:lib": "replace-in-file --configFile=replace-config.lib.cjs --verbose",
|
|
66
66
|
"build:commonjs": "rimraf ./dist && tsc --module commonjs --noImplicitUseStrict --outDir dist",
|
|
67
67
|
"bundle": "rimraf ./bundle && rollup -c && npm run build:schema",
|
|
68
|
-
"build:schema": "ts-json-schema-generator --path './src/**/*Content.ts' --additional-properties --validation-keywords enumNames --validation-keywords required --minify --no-type-check -o ./bundle/blocks.schema.json",
|
|
68
|
+
"build:schema": "ts-json-schema-generator --path './src/**/*Content.ts' --additional-properties --unstable --validation-keywords enumNames --validation-keywords required --minify --no-type-check -o ./bundle/blocks.schema.json",
|
|
69
69
|
"build:style": "postcss ./src/**/*.css --env production --dir ./lib",
|
|
70
70
|
"build:icons": "svgo -f ./src/icons -o ./cosmos-static/icons",
|
|
71
71
|
"size": "size-limit",
|
|
72
|
+
"lint": "eslint ./src",
|
|
73
|
+
"pretest": "npm run lint",
|
|
72
74
|
"test": "jest --coverage",
|
|
73
75
|
"precosmos": "npm run build:icons",
|
|
74
76
|
"cosmos": "cosmos",
|
|
75
77
|
"precosmos:export": "npm run build:icons",
|
|
76
78
|
"cosmos:export": "cosmos-export",
|
|
77
|
-
"prepare": "husky install || exit 0"
|
|
79
|
+
"prepare": "husky install && npm run --prefix ./eslint-rules build || exit 0"
|
|
78
80
|
},
|
|
79
81
|
"peerDependencies": {
|
|
80
82
|
"react": ">=16.8.0",
|
|
@@ -92,14 +94,18 @@
|
|
|
92
94
|
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
93
95
|
"@rollup/plugin-typescript": "^8.3.3",
|
|
94
96
|
"@size-limit/file": "^7.0.8",
|
|
95
|
-
"@types/jest": "^28.1.
|
|
97
|
+
"@types/jest": "^28.1.5",
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "^5.30.6",
|
|
99
|
+
"@typescript-eslint/experimental-utils": "^5.30.6",
|
|
100
|
+
"@typescript-eslint/parser": "^5.30.6",
|
|
96
101
|
"autoprefixer": "^10.4.7",
|
|
97
102
|
"copyfiles": "^2.4.1",
|
|
98
103
|
"css-loader": "^6.7.1",
|
|
99
104
|
"cssnano": "^5.1.11",
|
|
105
|
+
"eslint": "^8.19.0",
|
|
100
106
|
"html-webpack-plugin": "^5.5.0",
|
|
101
107
|
"husky": "^8.0.1",
|
|
102
|
-
"jest": "^28.1.
|
|
108
|
+
"jest": "^28.1.3",
|
|
103
109
|
"lint-staged": "^13.0.1",
|
|
104
110
|
"postcss": "^8.4.14",
|
|
105
111
|
"postcss-cli": "^9.1.0",
|
|
@@ -114,12 +120,13 @@
|
|
|
114
120
|
"style-loader": "^3.3.1",
|
|
115
121
|
"svgo": "^2.8.0",
|
|
116
122
|
"tailwindcss": "^3.1.1",
|
|
117
|
-
"ts-jest": "^28.0.
|
|
123
|
+
"ts-jest": "^28.0.6",
|
|
118
124
|
"ts-json-schema-generator": "^1.0.0",
|
|
119
125
|
"ts-loader": "^9.3.0",
|
|
120
|
-
"typescript": "^4.7.
|
|
126
|
+
"typescript": "^4.7.4",
|
|
121
127
|
"webpack": "^5.73.0",
|
|
122
|
-
"webpack-cli": "^4.9.2"
|
|
128
|
+
"webpack-cli": "^4.9.2",
|
|
129
|
+
"eslint-plugin-local-eslint-rules": "./eslint-rules"
|
|
123
130
|
},
|
|
124
131
|
"size-limit": [
|
|
125
132
|
{
|
|
@@ -132,7 +139,10 @@
|
|
|
132
139
|
}
|
|
133
140
|
],
|
|
134
141
|
"lint-staged": {
|
|
135
|
-
"src/**/*.{js,jsx,ts,tsx,css}":
|
|
142
|
+
"src/**/*.{js,jsx,ts,tsx,css}": [
|
|
143
|
+
"prettier --write",
|
|
144
|
+
"eslint"
|
|
145
|
+
],
|
|
136
146
|
"*.{js,jsx,ts,tsx,css,json}": [
|
|
137
147
|
"npm run cosmos:export",
|
|
138
148
|
"git add ./docs"
|
package/src/api/LikeAPI.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface LikeData {
|
|
|
10
10
|
const AUTH_PREFIX = 'guest';
|
|
11
11
|
const STORAGE_KEY = 'likesToken';
|
|
12
12
|
|
|
13
|
+
// eslint-disable-next-line max-lines-per-function
|
|
13
14
|
export function LikeAPI(projectId: string, baseURL = '') {
|
|
14
15
|
async function getLikeCount(...nodeIds: string[]): Promise<LikeData[]> {
|
|
15
16
|
if (!nodeIds.length) {
|
|
@@ -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';
|
package/src/components/Blocks.ts
CHANGED
|
@@ -17,9 +17,9 @@ 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
|
-
import { TariffsTable } from './TariffsTable/TariffsTable';
|
|
23
23
|
|
|
24
24
|
export const Blocks = {
|
|
25
25
|
Accordion,
|
|
@@ -1,15 +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 { TableRowContainer } from './TableRowContainer';
|
|
6
|
-
import { TableCarouselContainer } from './TableCarouselContainer';
|
|
7
|
-
import { useLink } from '../../hooks/useLink';
|
|
8
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 { useComparisonTableScroll } from '../../hooks/useComparisonTableScroll';
|
|
12
|
+
import { TableRowContainer } from './TableRowContainer';
|
|
13
13
|
|
|
14
14
|
export interface ComparisonTableProps extends ComparisonTableContent, UniBlockProps {}
|
|
15
15
|
|
|
@@ -39,12 +39,12 @@ export const ComparisonTable = JSX<ComparisonTableProps>(
|
|
|
39
39
|
.slice(0, isShowAllRow ? rowHeaders.length : visibleRowLength);
|
|
40
40
|
|
|
41
41
|
const { nextClick, prevClick, isScrollAvailable, showNextButton, showPrevButton } =
|
|
42
|
-
useComparisonTableScroll(
|
|
42
|
+
useComparisonTableScroll({
|
|
43
43
|
colData,
|
|
44
|
-
COLS_LENGTH_FOR_SCROLL,
|
|
44
|
+
colsLengthForScroll: COLS_LENGTH_FOR_SCROLL,
|
|
45
45
|
activeCardIndex,
|
|
46
46
|
setActiveCardIndex,
|
|
47
|
-
);
|
|
47
|
+
});
|
|
48
48
|
|
|
49
49
|
const showToggle = () => setIsShowAllRow(!isShowAllRow);
|
|
50
50
|
|
|
@@ -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,12 +1,12 @@
|
|
|
1
1
|
import { context, mobileContext } from '../../setup-fixture';
|
|
2
2
|
|
|
3
|
+
import type { ContentPageDef } from '../../types';
|
|
3
4
|
import { Blocks } from '../Blocks';
|
|
4
|
-
import { BlockDecorator, ContentPage } from './ContentPage';
|
|
5
5
|
import { MobileBlocks } from '../MobileBlocks';
|
|
6
|
+
import { BlockDecorator, ContentPage } from './ContentPage';
|
|
6
7
|
import { toMobilePage } from './toMobilePage';
|
|
7
|
-
import type { ContentPageDef } from '../../types';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
import data from './ContentPage.page.json';
|
|
10
10
|
|
|
11
11
|
const blockDecorator: BlockDecorator = ({ blockClassName, block, render }, i) => (
|
|
12
12
|
<div
|