@redneckz/wildless-cms-uni-blocks 0.11.1 → 0.11.2
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 +15 -9
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Header/Header.mobile.d.ts +2 -2
- package/bundle/components/Header/HeaderContent.d.ts +13 -1
- package/bundle/components/Header/HeaderTop.d.ts +6 -2
- package/bundle/components/ProductGallery/ProductGallery.mobile.d.ts +5 -0
- package/bundle/icons/IconName.d.ts +4 -2
- package/bundle/ui-kit/Heading/headingTag.d.ts +2 -0
- package/bundle/ui-kit/Heading/headingTag.mobile.d.ts +2 -0
- package/cosmos-static/icons/ChevronLeft.svg +1 -0
- package/dist/components/BaseTile/BaseTile.js +2 -1
- package/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/dist/components/Blocks.mobile.js +4 -0
- package/dist/components/Blocks.mobile.js.map +1 -1
- package/dist/components/Header/Header.mobile.d.ts +2 -2
- package/dist/components/Header/Header.mobile.js +3 -17
- package/dist/components/Header/Header.mobile.js.map +1 -1
- package/dist/components/Header/HeaderContent.d.ts +13 -1
- package/dist/components/Header/HeaderTop.d.ts +6 -2
- package/dist/components/Header/HeaderTop.js +15 -2
- package/dist/components/Header/HeaderTop.js.map +1 -1
- package/dist/components/Headline/headlineVersionStyles.js +6 -6
- package/dist/components/Headline/headlineVersionStyles.js.map +1 -1
- package/dist/components/ProductGallery/ProductGallery.mobile.d.ts +5 -0
- package/dist/components/ProductGallery/ProductGallery.mobile.js +13 -0
- package/dist/components/ProductGallery/ProductGallery.mobile.js.map +1 -0
- package/dist/content-page-repository/transformImg.js +1 -1
- package/dist/content-page-repository/transformImg.js.map +1 -1
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/Heading/Heading.js +5 -1
- package/dist/ui-kit/Heading/Heading.js.map +1 -1
- package/dist/ui-kit/Heading/headingTag.d.ts +2 -0
- package/dist/ui-kit/Heading/headingTag.js +5 -0
- package/dist/ui-kit/Heading/headingTag.js.map +1 -0
- package/dist/ui-kit/Heading/headingTag.mobile.d.ts +2 -0
- package/dist/ui-kit/Heading/headingTag.mobile.js +13 -0
- package/dist/ui-kit/Heading/headingTag.mobile.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/BaseTile/BaseTile.js +2 -1
- package/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/lib/components/Blocks.mobile.js +4 -0
- package/lib/components/Blocks.mobile.js.map +1 -1
- package/lib/components/Header/Header.fixture.mobile.d.ts +2 -0
- package/lib/components/Header/Header.mobile.d.ts +2 -2
- package/lib/components/Header/Header.mobile.js +4 -18
- package/lib/components/Header/Header.mobile.js.map +1 -1
- package/lib/components/Header/HeaderContent.d.ts +13 -1
- package/lib/components/Header/HeaderTop.d.ts +6 -2
- package/lib/components/Header/HeaderTop.js +15 -2
- package/lib/components/Header/HeaderTop.js.map +1 -1
- package/lib/components/Headline/headlineVersionStyles.js +6 -6
- package/lib/components/Headline/headlineVersionStyles.js.map +1 -1
- package/lib/components/ProductGallery/ProductGallery.fixture.mobile.d.ts +7 -0
- package/lib/components/ProductGallery/ProductGallery.mobile.d.ts +5 -0
- package/lib/components/ProductGallery/ProductGallery.mobile.js +11 -0
- package/lib/components/ProductGallery/ProductGallery.mobile.js.map +1 -0
- package/lib/content-page-repository/transformImg.js +1 -1
- package/lib/content-page-repository/transformImg.js.map +1 -1
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/Heading/Heading.js +5 -1
- package/lib/ui-kit/Heading/Heading.js.map +1 -1
- package/lib/ui-kit/Heading/headingTag.d.ts +2 -0
- package/lib/ui-kit/Heading/headingTag.js +2 -0
- package/lib/ui-kit/Heading/headingTag.js.map +1 -0
- package/lib/ui-kit/Heading/headingTag.mobile.d.ts +2 -0
- package/lib/ui-kit/Heading/headingTag.mobile.js +10 -0
- package/lib/ui-kit/Heading/headingTag.mobile.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +120 -407
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Header/Header.d.ts +2 -2
- package/mobile/bundle/components/Header/HeaderContent.d.ts +13 -1
- package/mobile/bundle/components/Header/HeaderTop.d.ts +6 -2
- package/mobile/bundle/icons/IconName.d.ts +4 -2
- package/mobile/bundle/ui-kit/Heading/headingTag.d.ts +2 -0
- package/mobile/dist/components/BaseTile/BaseTile.js +2 -1
- package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/dist/components/Blocks.js +4 -0
- package/mobile/dist/components/Blocks.js.map +1 -1
- package/mobile/dist/components/Header/Header.d.ts +2 -2
- package/mobile/dist/components/Header/Header.js +3 -17
- package/mobile/dist/components/Header/Header.js.map +1 -1
- package/mobile/dist/components/Header/HeaderContent.d.ts +13 -1
- package/mobile/dist/components/Header/HeaderTop.d.ts +6 -2
- package/mobile/dist/components/Header/HeaderTop.js +15 -2
- package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
- package/mobile/dist/components/Headline/headlineVersionStyles.js +6 -6
- package/mobile/dist/components/Headline/headlineVersionStyles.js.map +1 -1
- package/mobile/dist/components/ProductGallery/ProductGallery.js +4 -17
- package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
- package/mobile/dist/content-page-repository/transformImg.js +1 -1
- package/mobile/dist/content-page-repository/transformImg.js.map +1 -1
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/Heading/Heading.js +12 -11
- package/mobile/dist/ui-kit/Heading/Heading.js.map +1 -1
- package/mobile/dist/ui-kit/Heading/headingTag.d.ts +2 -0
- package/mobile/dist/ui-kit/Heading/headingTag.js +13 -0
- package/mobile/dist/ui-kit/Heading/headingTag.js.map +1 -0
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/BaseTile/BaseTile.js +2 -1
- package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
- package/mobile/lib/components/Blocks.js +4 -0
- package/mobile/lib/components/Blocks.js.map +1 -1
- package/mobile/lib/components/Header/Header.d.ts +2 -2
- package/mobile/lib/components/Header/Header.js +4 -18
- package/mobile/lib/components/Header/Header.js.map +1 -1
- package/mobile/lib/components/Header/HeaderContent.d.ts +13 -1
- package/mobile/lib/components/Header/HeaderTop.d.ts +6 -2
- package/mobile/lib/components/Header/HeaderTop.js +15 -2
- package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
- package/mobile/lib/components/Headline/headlineVersionStyles.js +6 -6
- package/mobile/lib/components/Headline/headlineVersionStyles.js.map +1 -1
- package/mobile/lib/components/ProductGallery/ProductGallery.js +5 -18
- package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
- package/mobile/lib/content-page-repository/transformImg.js +1 -1
- package/mobile/lib/content-page-repository/transformImg.js.map +1 -1
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/Heading/Heading.js +12 -11
- package/mobile/lib/ui-kit/Heading/Heading.js.map +1 -1
- package/mobile/lib/ui-kit/Heading/headingTag.d.ts +2 -0
- package/mobile/lib/ui-kit/Heading/headingTag.js +10 -0
- package/mobile/lib/ui-kit/Heading/headingTag.js.map +1 -0
- package/mobile/src/components/BaseTile/BaseTile.tsx +6 -3
- package/mobile/src/components/Blocks.ts +4 -0
- package/mobile/src/components/Header/Header.tsx +19 -50
- package/mobile/src/components/Header/HeaderContent.ts +15 -1
- package/mobile/src/components/Header/HeaderTop.tsx +62 -25
- package/mobile/src/components/Headline/headlineVersionStyles.ts +6 -6
- package/mobile/src/components/ProductGallery/ProductGallery.tsx +18 -59
- package/mobile/src/content-page-repository/transformImg.ts +1 -1
- package/mobile/src/icons/ChevronLeft.svg +3 -0
- package/mobile/src/icons/IconName.ts +5 -5
- package/mobile/src/ui-kit/Heading/Heading.tsx +17 -16
- package/mobile/src/ui-kit/Heading/headingTag.ts +12 -0
- package/package.json +1 -1
- package/src/components/BaseTile/BaseTile.tsx +6 -3
- package/src/components/Blocks.mobile.ts +4 -0
- package/src/components/Header/Header.fixture.mobile.tsx +4 -0
- package/src/components/Header/Header.mobile.tsx +19 -50
- package/src/components/Header/HeaderContent.ts +15 -1
- package/src/components/Header/HeaderTop.tsx +62 -25
- package/src/components/Headline/headlineVersionStyles.ts +6 -6
- package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +142 -0
- package/src/components/ProductGallery/ProductGallery.mobile.tsx +34 -0
- package/src/content-page-repository/transformImg.ts +1 -1
- package/src/icons/ChevronLeft.svg +3 -0
- package/src/icons/IconName.ts +5 -1
- package/src/ui-kit/Heading/Heading.fixture.mobile.tsx +6 -6
- package/src/ui-kit/Heading/Heading.fixture.tsx +6 -6
- package/src/ui-kit/Heading/Heading.tsx +8 -3
- package/src/ui-kit/Heading/headingTag.mobile.ts +12 -0
- package/src/ui-kit/Heading/headingTag.ts +3 -0
- package/tailwind.config.cjs +10 -4
- package/bundle/ui-kit/Heading/Heading.mobile.d.ts +0 -2
- package/dist/ui-kit/Heading/Heading.mobile.d.ts +0 -2
- package/dist/ui-kit/Heading/Heading.mobile.js +0 -18
- package/dist/ui-kit/Heading/Heading.mobile.js.map +0 -1
- package/lib/ui-kit/Heading/Heading.mobile.d.ts +0 -2
- package/lib/ui-kit/Heading/Heading.mobile.js +0 -16
- package/lib/ui-kit/Heading/Heading.mobile.js.map +0 -1
- package/src/ui-kit/Heading/Heading.mobile.tsx +0 -22
|
@@ -1,34 +1,71 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
3
3
|
import type { LogoType } from '../../model/LogoType';
|
|
4
|
-
import { Img } from '../../ui-kit/Img/Img';
|
|
5
4
|
import { Logo } from '../../ui-kit/Logo/Logo';
|
|
5
|
+
import { Button } from '../../ui-kit/Button/Button';
|
|
6
|
+
import { style } from '../../utils/style';
|
|
7
|
+
import type { BlockVersion } from '../../model/BlockVersion';
|
|
8
|
+
import type { MobileHeaderProps, MobileHeaderType } from './HeaderContent';
|
|
9
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
6
10
|
|
|
7
|
-
export interface HeaderTopProps {
|
|
8
|
-
onClick: () => void;
|
|
11
|
+
export interface HeaderTopProps extends MobileHeaderProps {
|
|
9
12
|
bgColor?: BgColorVersion;
|
|
10
13
|
logo?: LogoType;
|
|
14
|
+
internetBankUrl?: string;
|
|
15
|
+
version?: BlockVersion;
|
|
16
|
+
mobileHeaderType?: MobileHeaderType;
|
|
11
17
|
}
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
const BUTTON_STYLE = {
|
|
20
|
+
default: 'px-5 bg-main-divider rounded hover:text-primary-main',
|
|
21
|
+
transparent: 'text-white hover:text-primary-hover',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const HeaderTop = JSX<HeaderTopProps>(
|
|
25
|
+
({
|
|
26
|
+
bgColor,
|
|
27
|
+
logo,
|
|
28
|
+
internetBankUrl,
|
|
29
|
+
version,
|
|
30
|
+
mobileHeaderType,
|
|
31
|
+
mobileTitle,
|
|
32
|
+
mobileBackwardButtonTitle,
|
|
33
|
+
}) => {
|
|
34
|
+
const isTypeNone = mobileHeaderType === 'none';
|
|
35
|
+
const isTypeWithTitle = mobileHeaderType === 'withTitle';
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<div className="flex items-center justify-between w-full">
|
|
39
|
+
{isTypeNone || isTypeWithTitle ? (
|
|
40
|
+
<Logo bgColor={bgColor} logo={logo} showTitle={isTypeNone} />
|
|
41
|
+
) : null}
|
|
42
|
+
{isTypeWithTitle ? mobileTitle : null}
|
|
43
|
+
{mobileHeaderType === 'backwardButton' ? (
|
|
44
|
+
<Button className="flex items-center text-l">
|
|
45
|
+
<Img
|
|
46
|
+
className="w-6 h-6"
|
|
47
|
+
image={{
|
|
48
|
+
icon: 'ChevronLeft',
|
|
49
|
+
iconVersion: 'black',
|
|
50
|
+
}}
|
|
51
|
+
/>
|
|
52
|
+
{mobileBackwardButtonTitle}
|
|
53
|
+
</Button>
|
|
54
|
+
) : null}
|
|
55
|
+
{internetBankUrl ? (
|
|
56
|
+
<Button
|
|
57
|
+
href={internetBankUrl}
|
|
58
|
+
ariaLabel="Войти"
|
|
59
|
+
target="_blank"
|
|
60
|
+
className={style(
|
|
61
|
+
'p-3 my-1 text-s whitespace-nowrap text-primary-main hover:text-primary-hover',
|
|
62
|
+
BUTTON_STYLE[version === 'transparent' ? 'transparent' : 'default'],
|
|
63
|
+
)}
|
|
64
|
+
>
|
|
65
|
+
Войти
|
|
66
|
+
</Button>
|
|
67
|
+
) : null}
|
|
68
|
+
</div>
|
|
69
|
+
);
|
|
70
|
+
},
|
|
71
|
+
);
|
|
@@ -13,32 +13,32 @@ export const headlineVersionStyles: Record<
|
|
|
13
13
|
XXL: {
|
|
14
14
|
title: { headingType: 'h0', as: 'h1' },
|
|
15
15
|
descriptionSize: 'text-h5',
|
|
16
|
-
descriptionStyle: 'mt-
|
|
16
|
+
descriptionStyle: 'mt-headline-xxl',
|
|
17
17
|
},
|
|
18
18
|
XL: {
|
|
19
19
|
title: { headingType: 'h1', as: 'h1' },
|
|
20
20
|
descriptionSize: 'text-xl-light',
|
|
21
|
-
descriptionStyle: 'mt-
|
|
21
|
+
descriptionStyle: 'mt-headline-l',
|
|
22
22
|
},
|
|
23
23
|
L: {
|
|
24
24
|
title: { headingType: 'h2', as: 'h2' },
|
|
25
25
|
descriptionSize: 'text-xl-light',
|
|
26
|
-
descriptionStyle: 'mt-
|
|
26
|
+
descriptionStyle: 'mt-headline-l',
|
|
27
27
|
},
|
|
28
28
|
M: {
|
|
29
29
|
title: { headingType: 'h3', as: 'h3' },
|
|
30
30
|
descriptionSize: 'text-xl-light',
|
|
31
|
-
descriptionStyle: 'mt-
|
|
31
|
+
descriptionStyle: 'mt-headline-m',
|
|
32
32
|
},
|
|
33
33
|
S: {
|
|
34
34
|
title: { headingType: 'h4', as: 'h4' },
|
|
35
35
|
descriptionSize: 'text-xl-light',
|
|
36
|
-
descriptionStyle: 'mt-
|
|
36
|
+
descriptionStyle: 'mt-headline-s',
|
|
37
37
|
},
|
|
38
38
|
XS: {
|
|
39
39
|
title: { headingType: 'h5', as: 'h5' },
|
|
40
40
|
descriptionSize: 'text-l-light',
|
|
41
|
-
descriptionStyle: 'mt-
|
|
41
|
+
descriptionStyle: 'mt-headline-s',
|
|
42
42
|
},
|
|
43
43
|
};
|
|
44
44
|
|
|
@@ -1,75 +1,34 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
2
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
4
3
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
5
|
-
import {
|
|
4
|
+
import { SwipeListControl } from '../../ui-kit/SwipeListControl/SwipeListControl';
|
|
5
|
+
import type { ProductBlockInnerContent } from '../ProductBlock/ProductBlockContent';
|
|
6
6
|
import { ProductBlockInner } from '../ProductBlock/ProductBlockInner';
|
|
7
|
-
import type { ProductGalleryContent
|
|
7
|
+
import type { ProductGalleryContent } from './ProductGalleryContent';
|
|
8
8
|
|
|
9
9
|
export interface ProductGalleryProps extends ProductGalleryContent, UniBlockProps {}
|
|
10
10
|
|
|
11
11
|
export const ProductGallery = JSX<ProductGalleryProps>(
|
|
12
12
|
({ className = '', slides = [], ...rest }) => {
|
|
13
|
-
const
|
|
13
|
+
const galleryBlocks = slides.map((s) => s.productBlock);
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
|
-
<BlockWrapper
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<div key={String(i)} className="box-border grow-0 shrink-0 basis-full" role="listitem">
|
|
24
|
-
<ProductBlockInner
|
|
25
|
-
className="pl-default h-full"
|
|
26
|
-
headlineVersion="XXL"
|
|
27
|
-
{...productBlock}
|
|
28
|
-
{...rest}
|
|
29
|
-
/>
|
|
30
|
-
</div>
|
|
31
|
-
))}
|
|
32
|
-
</div>
|
|
33
|
-
<div className="h-28 px-6 mt-6 -mb-6 flex items-center gap-2 box-border">
|
|
34
|
-
{slides.map(renderNavButton({ activeSlideIndex, onClick: setActiveSlideIndex }))}
|
|
35
|
-
</div>
|
|
16
|
+
<BlockWrapper
|
|
17
|
+
className={`box-border py-6 overflow-hidden relative w-100 mb-6 ${className}`}
|
|
18
|
+
{...rest}
|
|
19
|
+
>
|
|
20
|
+
<SwipeListControl gap={0} padding={0}>
|
|
21
|
+
{galleryBlocks.map((_, i) => renderProductBlock({ ..._, ...rest }, i))}
|
|
22
|
+
</SwipeListControl>
|
|
36
23
|
</BlockWrapper>
|
|
37
24
|
);
|
|
38
25
|
},
|
|
39
26
|
);
|
|
40
27
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
({ nav }: ProductSlide, i: number) => {
|
|
49
|
-
const isActive = i === activeSlideIndex;
|
|
50
|
-
const btnClassName = isActive
|
|
51
|
-
? 'min-w-[350px] bg-white shadow-dark-blue border-none p-6'
|
|
52
|
-
: 'min-w-[290px] ease-in duration-300 bg-white/10 px-6 py-5 hover:py-6 backdrop-blur';
|
|
53
|
-
const btnTitleClassName = isActive
|
|
54
|
-
? 'text-primary-text text-h6 py-2'
|
|
55
|
-
: 'text-l pb-1 text-secondary-text group-data-secondary:text-white';
|
|
56
|
-
const btnDescClassName = isActive
|
|
57
|
-
? 'text-secondary-text text-l-light'
|
|
58
|
-
: 'text-m-light text-secondary-text group-data-secondary:text-white/80';
|
|
59
|
-
|
|
60
|
-
return (
|
|
61
|
-
<button
|
|
62
|
-
type="button"
|
|
63
|
-
key={String(i)}
|
|
64
|
-
onClick={() => onClick(i)}
|
|
65
|
-
aria-label={nav?.title}
|
|
66
|
-
className={style(
|
|
67
|
-
'relative px-6 box-border overflow-hidden text-left grow basis-0 border border-gray group-data-secondary:border-white/50',
|
|
68
|
-
btnClassName,
|
|
69
|
-
)}
|
|
70
|
-
>
|
|
71
|
-
<div className={btnTitleClassName}>{nav?.title}</div>
|
|
72
|
-
<div className={btnDescClassName}>{nav?.description}</div>
|
|
73
|
-
</button>
|
|
74
|
-
);
|
|
75
|
-
};
|
|
28
|
+
const renderProductBlock = (block: ProductBlockInnerContent, i: number) => (
|
|
29
|
+
<ProductBlockInner
|
|
30
|
+
key={String(i)}
|
|
31
|
+
className="z-10 px-5 group-data-secondary:text-white"
|
|
32
|
+
{...block}
|
|
33
|
+
/>
|
|
34
|
+
);
|
|
@@ -77,7 +77,7 @@ const computeTransformationChain = ({
|
|
|
77
77
|
pipe(
|
|
78
78
|
resizeImg(isPictureSizeEmpty(size) ? containerSize : size),
|
|
79
79
|
alignImg({ containerSize, alignment }),
|
|
80
|
-
(_) => (format ? _.toFormat(format, options) : _),
|
|
80
|
+
(_) => (format ? _.toFormat(format, { ...options, nearLossless: true }) : _),
|
|
81
81
|
);
|
|
82
82
|
|
|
83
83
|
const pipe = (...operations: Array<(chain: Sharp) => Promise<Sharp> | Sharp>) =>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg title="Стрелка 'Вправо'" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M14.7071 6.29289C15.0976 6.68342 15.0976 7.31658 14.7071 7.70711L10.4142 12L14.7071 16.2929C15.0976 16.6834 15.0976 17.3166 14.7071 17.7071C14.3166 18.0976 13.6834 18.0976 13.2929 17.7071L8.29289 12.7071C7.90237 12.3166 7.90237 11.6834 8.29289 11.2929L13.2929 6.29289C13.6834 5.90237 14.3166 5.90237 14.7071 6.29289Z" fill="currentColor"/>
|
|
3
|
+
</svg>
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
/* eslint-disable max-len, max-lines */
|
|
4
4
|
|
|
5
5
|
export const IconsWithoutInversion = new Set([
|
|
6
|
-
'ActualBalanceIcon', 'AirPlaneIcon', 'BagIcon', 'BriefcaseIcon', 'CardWithGemIcon', 'CarIcon', 'CinemaIcon', 'ClientIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeadphonesIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MailIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PhoneIcon', 'PowerIcon', 'PumpkinIcon', 'ResponceFailIcon', 'ResponceOKIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
|
|
6
|
+
'ActualBalanceIcon', 'AirPlaneIcon', 'BagIcon', 'BriefcaseIcon', 'CardWithGemIcon', 'CarIcon', 'ChevronLeft', 'CinemaIcon', 'ClientIcon', 'ClockIcon', 'ComfortableCompIcon', 'CreditCardsIcon', 'DocsIcon', 'DollarIcon', 'DoneIcon', 'EarthIcon', 'EuroIcon', 'FullScreenIcon', 'GlassIcon', 'HeadphonesIcon', 'HeartIcon', 'HuaweiIcon', 'InterestGrowthIcon', 'JCBIcon', 'MailIcon', 'MapMarkerClusterIcon', 'MapMarkerSingleIcon', 'MasterCardIcon', 'MirIcon', 'MoneyInsuranceIcon', 'NewDocIcon', 'OfficeIcon', 'PackA4Icon', 'PassSendIcon', 'PercentIcon', 'PhoneIcon', 'PowerIcon', 'PumpkinIcon', 'ResponceFailIcon', 'ResponceOKIcon', 'SignDocsIcon', 'SoundIcon', 'UnionPayIcon', 'UserGeoLocationIcon', 'VisaIcon', 'WateringCanIcon'
|
|
7
7
|
]);
|
|
8
8
|
|
|
9
9
|
export enum IconMap {
|
|
10
|
-
ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowDownSolidIcon = 'ArrowDownSolidIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', ArrowUpSolidIcon = 'ArrowUpSolidIcon', AtmIcon = 'AtmIcon', BagIcon = 'BagIcon', BankIcon = 'BankIcon', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', CinemaIcon = 'CinemaIcon', ClientIcon = 'ClientIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MailIcon = 'MailIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PhoneIcon = 'PhoneIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', ResponceFailIcon = 'ResponceFailIcon', ResponceOKIcon = 'ResponceOKIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
|
|
10
|
+
ActualBalanceIcon = 'ActualBalanceIcon', AirPlaneIcon = 'AirPlaneIcon', AppleIcon = 'AppleIcon', ArrowDownIcon = 'ArrowDownIcon', ArrowDownSolidIcon = 'ArrowDownSolidIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowUpIcon = 'ArrowUpIcon', ArrowUpSolidIcon = 'ArrowUpSolidIcon', AtmIcon = 'AtmIcon', BagIcon = 'BagIcon', BankIcon = 'BankIcon', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'BuildingIcon', BurgerIcon = 'BurgerIcon', Calendar2Icon = 'Calendar2Icon', CalendarCircleIcon = 'CalendarCircleIcon', CalendarIcon = 'CalendarIcon', CalendarTickIcon = 'CalendarTickIcon', Car2Icon = 'Car2Icon', CardIcon = 'CardIcon', CardPosIcon = 'CardPosIcon', CardTickIcon = 'CardTickIcon', CardWithGemIcon = 'CardWithGemIcon', CarIcon = 'CarIcon', ChartSquareIcon = 'ChartSquareIcon', ChevronLeft = 'ChevronLeft', CinemaIcon = 'CinemaIcon', ClientIcon = 'ClientIcon', ClockIcon = 'ClockIcon', CloseIcon = 'CloseIcon', ComfortableCompIcon = 'ComfortableCompIcon', CreditCardsIcon = 'CreditCardsIcon', DiscountShapeIcon = 'DiscountShapeIcon', DocDownloadIcon = 'DocDownloadIcon', DocIcon = 'DocIcon', DocIconMonoColor = 'DocIconMonoColor', DocsIcon = 'DocsIcon', DocumentText2Icon = 'DocumentText2Icon', DocumentTextIcon = 'DocumentTextIcon', DollarIcon = 'DollarIcon', DoneIcon = 'DoneIcon', DoneSimpleIcon = 'DoneSimpleIcon', EarthIcon = 'EarthIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', EmptyWalletIcon = 'EmptyWalletIcon', EuroIcon = 'EuroIcon', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'GeolocationIcon', GlassIcon = 'GlassIcon', GlobalIcon = 'GlobalIcon', GpsIcon = 'GpsIcon', GridIcon = 'GridIcon', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'HeartIcon', HuaweiIcon = 'HuaweiIcon', InterestGrowthIcon = 'InterestGrowthIcon', InterestIcon = 'InterestIcon', JCBIcon = 'JCBIcon', LogoIcon = 'LogoIcon', LoupeIcon = 'LoupeIcon', MailIcon = 'MailIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MasterCardIcon = 'MasterCardIcon', MetroIcon = 'MetroIcon', MinusIcon = 'MinusIcon', MirIcon = 'MirIcon', MoneyIcon = 'MoneyIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneysIcon = 'MoneysIcon', MonitorMobileIcon = 'MonitorMobileIcon', NewDocIcon = 'NewDocIcon', OfficeIcon = 'OfficeIcon', OkIcon = 'OkIcon', PackA4Icon = 'PackA4Icon', PassSendIcon = 'PassSendIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentageSquareIcon = 'PercentageSquareIcon', PercentIcon = 'PercentIcon', PersonalCardIcon = 'PersonalCardIcon', PhoneIcon = 'PhoneIcon', PlayMarketIcon = 'PlayMarketIcon', PlusIcon = 'PlusIcon', PowerIcon = 'PowerIcon', Profile2UserIcon = 'Profile2UserIcon', ProfileIcon = 'ProfileIcon', PumpkinIcon = 'PumpkinIcon', ResponceFailIcon = 'ResponceFailIcon', ResponceOKIcon = 'ResponceOKIcon', RoundRubleIcon = 'RoundRubleIcon', SafeIcon = 'SafeIcon', ShieldTickIcon = 'ShieldTickIcon', SignDocsIcon = 'SignDocsIcon', SmallClockIcon = 'SmallClockIcon', SoundIcon = 'SoundIcon', StrongBoxIcon = 'StrongBoxIcon', TelegramIcon = 'TelegramIcon', UnionPayIcon = 'UnionPayIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'UserSquareIcon', UserTickIcon = 'UserTickIcon', VisaIcon = 'VisaIcon', VKIcon = 'VKIcon', WalletAdd2Icon = 'WalletAdd2Icon', WalletAddIcon = 'WalletAddIcon', WalletIcon = 'WalletIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WateringCanIcon = 'WateringCanIcon', YoutubeIcon = 'YoutubeIcon'
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export enum IconTitleMap {
|
|
14
|
-
ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', AtmIcon = 'Банкомат', BagIcon = 'Сумка', BankIcon = 'Банк', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', CinemaIcon = 'Кинотеатр', ClientIcon = 'Клиент', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MailIcon = 'E-mail', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PhoneIcon = 'Телефон', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', ResponceFailIcon = 'Ошибка', ResponceOKIcon = 'Ок', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
|
|
14
|
+
ActualBalanceIcon = 'Деньги', AirPlaneIcon = 'Самолёт', AppleIcon = 'Лого «Apple»', ArrowDownIcon = 'Стрелка \'Вниз\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', AtmIcon = 'Банкомат', BagIcon = 'Сумка', BankIcon = 'Банк', BriefcaseIcon = 'BriefcaseIcon', BuildingIcon = 'Здание с деревом', BurgerIcon = 'Бургер', Calendar2Icon = 'Календарь 2', CalendarCircleIcon = 'Скруглённый календарь', CalendarIcon = 'Календарь', CalendarTickIcon = 'Календарь с галочкой', Car2Icon = 'Машина2', CardIcon = 'Кред. карта', CardPosIcon = 'Кред. карта под наклоном', CardTickIcon = 'Кред. карта с галочкой', CardWithGemIcon = 'Карта с драгоценностями', CarIcon = 'Машина', ChartSquareIcon = 'Деньги внутри кошелька', ChevronLeft = 'Стрелка \'Вправо\'', CinemaIcon = 'Кинотеатр', ClientIcon = 'Клиент', ClockIcon = 'Часы', CloseIcon = 'Крестик', ComfortableCompIcon = 'Кресло', CreditCardsIcon = 'Кредитные карты', DiscountShapeIcon = 'Скидка', DocDownloadIcon = 'Скачать документ', DocIcon = 'Документ', DocIconMonoColor = 'Документ (одноцветный)', DocsIcon = 'Документы', DocumentText2Icon = 'Документы-2', DocumentTextIcon = 'Документ с текстом', DollarIcon = 'Доллар', DoneIcon = 'Зелёная \'галочка\' в круге', DoneSimpleIcon = 'Зелёная \'галочка\'', EarthIcon = 'Земля', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', EmptyWalletIcon = 'Пустой кошелёк', EuroIcon = 'Евро', FullScreenIcon = 'FullScreenIcon', GeolocationIcon = 'Геолокация', GlassIcon = 'Зеркало', GlobalIcon = 'Глобус', GpsIcon = 'Gps', GridIcon = 'Сетка (белая)', HeadphonesIcon = 'HeadphonesIcon', HeartIcon = 'Сердце', HuaweiIcon = 'Лого «Huawei»', InterestGrowthIcon = 'Диаграмма роста', InterestIcon = 'Скидка', JCBIcon = 'JCB', LogoIcon = 'Logo', LoupeIcon = 'Лупа', MailIcon = 'E-mail', MapMarkerClusterIcon = 'Маркер карты', MapMarkerSingleIcon = 'Маркер карты РСХБ', MasterCardIcon = 'MasterCard', MetroIcon = 'Лого Метро', MinusIcon = 'Минус', MirIcon = 'МИР', MoneyIcon = 'Деньги', MoneyInsuranceIcon = 'Денежное страхование', MoneysIcon = 'Купюры', MonitorMobileIcon = 'Монитор и мобильный', NewDocIcon = 'Новый документ', OfficeIcon = 'Офис', OkIcon = 'Лого «Одноклассники»', PackA4Icon = 'Пачка бумаги А4', PassSendIcon = 'Бизнес', PercentageRoundIcon = 'Проценты (круг.)', PercentageSquareIcon = 'Проценты', PercentIcon = 'PercentIcon', PersonalCardIcon = 'Персональная карта', PhoneIcon = 'Телефон', PlayMarketIcon = 'Лого «PlayMarket»', PlusIcon = 'Плюс', PowerIcon = 'Щит', Profile2UserIcon = 'Профиль, 2 персоны', ProfileIcon = 'Профиль', PumpkinIcon = 'Тыква', ResponceFailIcon = 'Ошибка', ResponceOKIcon = 'Ок', RoundRubleIcon = 'Рубль (круг.)', SafeIcon = 'Сейф', ShieldTickIcon = 'Безопасность', SignDocsIcon = 'Подписанные документы', SmallClockIcon = 'Маленькие часы', SoundIcon = 'Звук', StrongBoxIcon = 'Ящик с замочной скважиной', TelegramIcon = 'Лого «Telegram»', UnionPayIcon = 'UnionPay', UserGeoLocationIcon = 'UserGeoLocationIcon', UserSquareIcon = 'Пользователь в рамке', UserTickIcon = 'Пользователь', VisaIcon = 'Visa', VKIcon = 'Лого «VK»', WalletAdd2Icon = 'Пополнение карты', WalletAddIcon = 'Кошелёк с плюсом', WalletIcon = 'Кошелёк', WalletWithMoneyIcon = 'Кошелёк с деньгами', WateringCanIcon = 'Добавить продукт', YoutubeIcon = 'Лого «Youtube»'
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -19,7 +19,7 @@ export enum IconTitleMap {
|
|
|
19
19
|
* @title Иконка
|
|
20
20
|
* @enumNames [
|
|
21
21
|
* "",
|
|
22
|
-
* 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Сумка', 'Банк', 'BriefcaseIcon', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Кинотеатр', 'Клиент', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Телефон', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
|
|
22
|
+
* 'Деньги', 'Самолёт', 'Лого «Apple»', 'Стрелка \'Вниз\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Влево\'', 'Стрелка \'Вправо\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вверх\'', 'Стрелка сплошная \'Вверх\'', 'Банкомат', 'Сумка', 'Банк', 'BriefcaseIcon', 'Здание с деревом', 'Бургер', 'Календарь 2', 'Скруглённый календарь', 'Календарь', 'Календарь с галочкой', 'Машина2', 'Кред. карта', 'Кред. карта под наклоном', 'Кред. карта с галочкой', 'Карта с драгоценностями', 'Машина', 'Деньги внутри кошелька', 'Стрелка \'Вправо\'', 'Кинотеатр', 'Клиент', 'Часы', 'Крестик', 'Кресло', 'Кредитные карты', 'Скидка', 'Скачать документ', 'Документ', 'Документ (одноцветный)', 'Документы', 'Документы-2', 'Документ с текстом', 'Доллар', 'Зелёная \'галочка\' в круге', 'Зелёная \'галочка\'', 'Земля', 'Пустой кошелёк с возвратом', 'Пустой кошелёк', 'Евро', 'FullScreenIcon', 'Геолокация', 'Зеркало', 'Глобус', 'Gps', 'Сетка (белая)', 'HeadphonesIcon', 'Сердце', 'Лого «Huawei»', 'Диаграмма роста', 'Скидка', 'JCB', 'Logo', 'Лупа', 'E-mail', 'Маркер карты', 'Маркер карты РСХБ', 'MasterCard', 'Лого Метро', 'Минус', 'МИР', 'Деньги', 'Денежное страхование', 'Купюры', 'Монитор и мобильный', 'Новый документ', 'Офис', 'Лого «Одноклассники»', 'Пачка бумаги А4', 'Бизнес', 'Проценты (круг.)', 'Проценты', 'PercentIcon', 'Персональная карта', 'Телефон', 'Лого «PlayMarket»', 'Плюс', 'Щит', 'Профиль, 2 персоны', 'Профиль', 'Тыква', 'Ошибка', 'Ок', 'Рубль (круг.)', 'Сейф', 'Безопасность', 'Подписанные документы', 'Маленькие часы', 'Звук', 'Ящик с замочной скважиной', 'Лого «Telegram»', 'UnionPay', 'UserGeoLocationIcon', 'Пользователь в рамке', 'Пользователь', 'Visa', 'Лого «VK»', 'Пополнение карты', 'Кошелёк с плюсом', 'Кошелёк', 'Кошелёк с деньгами', 'Добавить продукт', 'Лого «Youtube»'
|
|
23
23
|
* ]
|
|
24
24
|
*/
|
|
25
|
-
export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BagIcon' | 'BankIcon' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'CinemaIcon' | 'ClientIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'ResponceFailIcon' | 'ResponceOKIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
|
|
25
|
+
export type IconName = '' | 'ActualBalanceIcon' | 'AirPlaneIcon' | 'AppleIcon' | 'ArrowDownIcon' | 'ArrowDownSolidIcon' | 'ArrowLeftIcon' | 'ArrowRightIcon' | 'ArrowTopRightIcon' | 'ArrowUpIcon' | 'ArrowUpSolidIcon' | 'AtmIcon' | 'BagIcon' | 'BankIcon' | 'BriefcaseIcon' | 'BuildingIcon' | 'BurgerIcon' | 'Calendar2Icon' | 'CalendarCircleIcon' | 'CalendarIcon' | 'CalendarTickIcon' | 'Car2Icon' | 'CardIcon' | 'CardPosIcon' | 'CardTickIcon' | 'CardWithGemIcon' | 'CarIcon' | 'ChartSquareIcon' | 'ChevronLeft' | 'CinemaIcon' | 'ClientIcon' | 'ClockIcon' | 'CloseIcon' | 'ComfortableCompIcon' | 'CreditCardsIcon' | 'DiscountShapeIcon' | 'DocDownloadIcon' | 'DocIcon' | 'DocIconMonoColor' | 'DocsIcon' | 'DocumentText2Icon' | 'DocumentTextIcon' | 'DollarIcon' | 'DoneIcon' | 'DoneSimpleIcon' | 'EarthIcon' | 'EmptyWalletChangeIcon' | 'EmptyWalletIcon' | 'EuroIcon' | 'FullScreenIcon' | 'GeolocationIcon' | 'GlassIcon' | 'GlobalIcon' | 'GpsIcon' | 'GridIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HuaweiIcon' | 'InterestGrowthIcon' | 'InterestIcon' | 'JCBIcon' | 'LogoIcon' | 'LoupeIcon' | 'MailIcon' | 'MapMarkerClusterIcon' | 'MapMarkerSingleIcon' | 'MasterCardIcon' | 'MetroIcon' | 'MinusIcon' | 'MirIcon' | 'MoneyIcon' | 'MoneyInsuranceIcon' | 'MoneysIcon' | 'MonitorMobileIcon' | 'NewDocIcon' | 'OfficeIcon' | 'OkIcon' | 'PackA4Icon' | 'PassSendIcon' | 'PercentageRoundIcon' | 'PercentageSquareIcon' | 'PercentIcon' | 'PersonalCardIcon' | 'PhoneIcon' | 'PlayMarketIcon' | 'PlusIcon' | 'PowerIcon' | 'Profile2UserIcon' | 'ProfileIcon' | 'PumpkinIcon' | 'ResponceFailIcon' | 'ResponceOKIcon' | 'RoundRubleIcon' | 'SafeIcon' | 'ShieldTickIcon' | 'SignDocsIcon' | 'SmallClockIcon' | 'SoundIcon' | 'StrongBoxIcon' | 'TelegramIcon' | 'UnionPayIcon' | 'UserGeoLocationIcon' | 'UserSquareIcon' | 'UserTickIcon' | 'VisaIcon' | 'VKIcon' | 'WalletAdd2Icon' | 'WalletAddIcon' | 'WalletIcon' | 'WalletWithMoneyIcon' | 'WateringCanIcon' | 'YoutubeIcon';
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import type { HeadingProps, HeadingType } from './HeadingProps';
|
|
3
|
+
import { headingTag } from './headingTag';
|
|
3
4
|
|
|
4
|
-
const
|
|
5
|
-
h0: 'text-
|
|
6
|
-
h1: 'text-
|
|
7
|
-
h2: 'text-
|
|
8
|
-
h3: 'text-
|
|
9
|
-
h4: 'text-
|
|
10
|
-
h5: 'text-
|
|
11
|
-
h6: 'text-
|
|
5
|
+
const styles: Record<HeadingType, string> = {
|
|
6
|
+
h0: 'text-h0', // 56
|
|
7
|
+
h1: 'text-h1', // 50
|
|
8
|
+
h2: 'text-h2', // 40
|
|
9
|
+
h3: 'text-h3', // 32
|
|
10
|
+
h4: 'text-h4', // 28
|
|
11
|
+
h5: 'text-h5', // 24
|
|
12
|
+
h6: 'text-h6', // 20
|
|
12
13
|
};
|
|
13
14
|
|
|
14
|
-
export const Heading = JSX<HeadingProps>(
|
|
15
|
-
|
|
15
|
+
export const Heading = JSX<HeadingProps>(
|
|
16
|
+
({ className = '', headingType = 'h3', as = 'h3', title, children }) => {
|
|
17
|
+
const Tag = headingTag(as);
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
});
|
|
19
|
+
return (
|
|
20
|
+
<Tag className={`font-sans m-0 ${styles[headingType]} ${className}`}>{title || children}</Tag>
|
|
21
|
+
);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HeadingTagType } from './HeadingProps';
|
|
2
|
+
|
|
3
|
+
const mobileHeadingTagMap: Record<HeadingTagType, HeadingTagType> = {
|
|
4
|
+
h1: 'h1',
|
|
5
|
+
h2: 'h1',
|
|
6
|
+
h3: 'h2',
|
|
7
|
+
h4: 'h2',
|
|
8
|
+
h5: 'h3',
|
|
9
|
+
h6: 'h3',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const headingTag = (tag: HeadingTagType): HeadingTagType => mobileHeadingTagMap[tag] || 'h3';
|
package/package.json
CHANGED
|
@@ -26,15 +26,18 @@ export const BaseTile = JSX<BaseTileProps>(
|
|
|
26
26
|
<div className={style('relative flex flex-col font-sans', className)}>
|
|
27
27
|
{backImage ? <div className="absolute bottom-0 right-0 z-0">{backImage}</div> : null}
|
|
28
28
|
{title}
|
|
29
|
-
<div className="grow relative flex flex-wrap
|
|
30
|
-
{leftImage}
|
|
29
|
+
<div className="grow relative flex flex-wrap sm:flex-nowrap justify-between items-stretch gap-8">
|
|
30
|
+
{renderImageContainer(leftImage)}
|
|
31
31
|
<div className={style('flex flex-col gap-8', leftImage ? '' : 'grow')}>
|
|
32
32
|
{insetTitle}
|
|
33
33
|
<div className="grow">{children}</div>
|
|
34
34
|
{buttons}
|
|
35
35
|
</div>
|
|
36
|
-
{rightImage
|
|
36
|
+
{renderImageContainer(rightImage, { className: '-order-1 sm:order-1' })}
|
|
37
37
|
</div>
|
|
38
38
|
</div>
|
|
39
39
|
),
|
|
40
40
|
);
|
|
41
|
+
|
|
42
|
+
const renderImageContainer = (image: VNode, { className }: { className?: string } = {}) =>
|
|
43
|
+
image ? <div className={style('flex-none', className)}>{image}</div> : null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BlocksRegistry } from '../model/BlocksRegistry';
|
|
2
2
|
import { Carousel } from './Carousel/Carousel';
|
|
3
|
+
import { CarouselProgramsCard } from './CarouselProgramsCard/CarouselProgramsCard';
|
|
3
4
|
import { CarouselRecommendationCard } from './CarouselRecommendationCard/CarouselRecommendationCard';
|
|
4
5
|
import { CarouselTariffsCard } from './CarouselTariffsCard/CarouselTariffsCard';
|
|
5
6
|
import { ComparisonTable } from './ComparisonTable/ComparisonTable';
|
|
@@ -11,6 +12,7 @@ import { LinkDocs } from './LinkDocs/LinkDocs';
|
|
|
11
12
|
import { MobileAppTile } from './MobileAppTile/MobileAppTile';
|
|
12
13
|
import { Placeholder } from './Placeholder/Placeholder';
|
|
13
14
|
import { ProductBlock } from './ProductBlock/ProductBlock';
|
|
15
|
+
import { ProductGallery } from './ProductGallery/ProductGallery';
|
|
14
16
|
import { RichTextBlock } from './RichTextBlock/RichTextBlock';
|
|
15
17
|
import { RollupItem } from './RollupItem/RollupItem';
|
|
16
18
|
import { StepsBlock } from './StepsBlock/StepsBlock';
|
|
@@ -37,4 +39,6 @@ export const Blocks: BlocksRegistry = {
|
|
|
37
39
|
RollupItem,
|
|
38
40
|
VerticalLayout,
|
|
39
41
|
CarouselRecommendationCard,
|
|
42
|
+
CarouselProgramsCard,
|
|
43
|
+
ProductGallery,
|
|
40
44
|
};
|
|
@@ -5,4 +5,8 @@ import { Header } from './Header.mobile';
|
|
|
5
5
|
export default {
|
|
6
6
|
default: <Header />,
|
|
7
7
|
transparent: <Header bgColor="transparent" />,
|
|
8
|
+
withTitle: <Header mobileHeaderType="withTitle" mobileTitle="Все кредитные карты" />,
|
|
9
|
+
backButton: (
|
|
10
|
+
<Header mobileHeaderType="backwardButton" mobileBackwardButtonTitle="Кредитные карты" />
|
|
11
|
+
),
|
|
8
12
|
};
|
|
@@ -1,78 +1,47 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
|
-
import { useRouter } from '../../hooks/useRouter';
|
|
4
2
|
import { useSWRResource } from '../../hooks/useSWRResource';
|
|
5
3
|
import type { BgColorVersion } from '../../model/BgColorVersion';
|
|
6
4
|
import type { BlockVersion } from '../../model/BlockVersion';
|
|
7
5
|
import type { Fallback } from '../../model/Fallback';
|
|
8
6
|
import type { UniBlockProps } from '../../model/JSXBlock';
|
|
9
7
|
import { projectSettings } from '../../ProjectSettings';
|
|
10
|
-
import { findActiveSubItem } from '../../services/sitemap/findActiveSubItem';
|
|
11
|
-
import { isTopItemActive } from '../../services/sitemap/isTopItemActive';
|
|
12
8
|
import type { SitemapData } from '../../services/sitemap/SitemapData';
|
|
13
9
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper';
|
|
14
|
-
import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
|
|
15
|
-
import { LinkList } from '../../ui-kit/LinkList/LinkList';
|
|
16
|
-
import { RollupItem } from '../RollupItem/RollupItem';
|
|
17
|
-
import { HeaderBurger } from './HeaderBurger';
|
|
18
|
-
import type { HeaderContent } from './HeaderContent';
|
|
19
10
|
import { HeaderTop } from './HeaderTop';
|
|
11
|
+
import type { HeaderContent } from './HeaderContent';
|
|
20
12
|
|
|
21
|
-
export interface
|
|
13
|
+
export interface HeaderMobileProps extends HeaderContent, UniBlockProps {}
|
|
22
14
|
|
|
23
15
|
const BG_COLOR_TO_BLOCK_VERSION: Record<BgColorVersion, BlockVersion> = {
|
|
24
16
|
'bg-white': 'primary',
|
|
25
17
|
transparent: 'transparent',
|
|
26
18
|
};
|
|
27
19
|
|
|
28
|
-
export const Header = JSX<
|
|
29
|
-
({
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
export const Header = JSX<HeaderMobileProps>(
|
|
21
|
+
({
|
|
22
|
+
bgColor = 'bg-white',
|
|
23
|
+
version = BG_COLOR_TO_BLOCK_VERSION[bgColor],
|
|
24
|
+
mobileHeaderType = 'none',
|
|
25
|
+
...rest
|
|
26
|
+
}) => {
|
|
32
27
|
const fallback: Fallback | undefined = rest.options?.page?.fallback;
|
|
33
|
-
const {
|
|
28
|
+
const { logo, internetBankUrl } = useSWRResource<SitemapData>(
|
|
34
29
|
projectSettings.SITEMAP || 'sitemap',
|
|
35
30
|
fallback,
|
|
36
31
|
);
|
|
37
32
|
|
|
38
|
-
const activeTopItem = topItems?.find(isTopItemActive(router));
|
|
39
|
-
const subItems = activeTopItem?.items;
|
|
40
|
-
const activeSubItem = findActiveSubItem(router)(subItems);
|
|
41
|
-
const [burgerMenuShow, setBurgerMenuShow] = useState(false);
|
|
42
|
-
const handleBurgerMenuShow = useCallback(() => setBurgerMenuShow((_) => !_), []);
|
|
43
|
-
|
|
44
33
|
return (
|
|
45
34
|
<BlockWrapper tag="header" version={version} {...rest}>
|
|
46
|
-
<div className="container px-4 py-
|
|
47
|
-
<HeaderTop
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
{..._}
|
|
56
|
-
/>
|
|
57
|
-
))}
|
|
58
|
-
</div>
|
|
59
|
-
</nav>
|
|
35
|
+
<div className="container px-4 py-1 box-border">
|
|
36
|
+
<HeaderTop
|
|
37
|
+
bgColor={bgColor}
|
|
38
|
+
logo={logo}
|
|
39
|
+
internetBankUrl={internetBankUrl}
|
|
40
|
+
version={version}
|
|
41
|
+
mobileHeaderType={mobileHeaderType}
|
|
42
|
+
{...rest}
|
|
43
|
+
/>
|
|
60
44
|
</div>
|
|
61
|
-
{burgerMenuShow ? (
|
|
62
|
-
<HeaderBurger
|
|
63
|
-
onClick={handleBurgerMenuShow}
|
|
64
|
-
burgerSubMenu={dispositions}
|
|
65
|
-
defaultLocation={defaultLocation}
|
|
66
|
-
>
|
|
67
|
-
<div className="list-none m-0 p-0">
|
|
68
|
-
{topItems?.map((item, i) => (
|
|
69
|
-
<RollupItem key={String(i)} label={item.text}>
|
|
70
|
-
<LinkList className="mt-2.5" items={item.items} />
|
|
71
|
-
</RollupItem>
|
|
72
|
-
))}
|
|
73
|
-
</div>
|
|
74
|
-
</HeaderBurger>
|
|
75
|
-
) : null}
|
|
76
45
|
</BlockWrapper>
|
|
77
46
|
);
|
|
78
47
|
},
|
|
@@ -25,10 +25,24 @@ export type Logo = ImageContent & {
|
|
|
25
25
|
title?: string;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* @title Мобильный тип шапки
|
|
30
|
+
* @enumNames ["Не выбрано", "Название", "Кнопка возврата"]
|
|
31
|
+
*/
|
|
32
|
+
export type MobileHeaderType = 'none' | 'withTitle' | 'backwardButton';
|
|
33
|
+
|
|
34
|
+
export interface MobileHeaderProps {
|
|
35
|
+
mobileHeaderType?: MobileHeaderType;
|
|
36
|
+
/** @title Название (мобильная версия) */
|
|
37
|
+
mobileTitle?: string;
|
|
38
|
+
/** @title Кнопка возврата (мобильная версия) */
|
|
39
|
+
mobileBackwardButtonTitle?: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
28
42
|
/**
|
|
29
43
|
* @title Шапка (для мобильных горизонтальная прокрутка shift+mouseScroll)
|
|
30
44
|
*/
|
|
31
|
-
export interface HeaderContent {
|
|
45
|
+
export interface HeaderContent extends MobileHeaderProps {
|
|
32
46
|
/** @hidden */
|
|
33
47
|
showSubMenu?: boolean;
|
|
34
48
|
/** @hidden */
|