@alfalab/core-components-product-cover 1.0.0

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.
Files changed (181) hide show
  1. package/Component.d.ts +8 -0
  2. package/Component.js +21 -0
  3. package/components/image-card/Component.d.ts +32 -0
  4. package/components/image-card/Component.js +41 -0
  5. package/components/image-card/index.css +32 -0
  6. package/components/image-card/index.d.ts +1 -0
  7. package/components/image-card/index.js +9 -0
  8. package/components/index.d.ts +3 -0
  9. package/components/index.js +13 -0
  10. package/components/overlay/Component.d.ts +4 -0
  11. package/components/overlay/Component.js +24 -0
  12. package/components/overlay/index.css +35 -0
  13. package/components/overlay/index.d.ts +1 -0
  14. package/components/overlay/index.js +9 -0
  15. package/components/text/Component.d.ts +47 -0
  16. package/components/text/Component.js +40 -0
  17. package/components/text/index.css +48 -0
  18. package/components/text/index.d.ts +1 -0
  19. package/components/text/index.js +9 -0
  20. package/consts.d.ts +5 -0
  21. package/consts.js +32 -0
  22. package/cssm/Component.d.ts +8 -0
  23. package/cssm/Component.js +21 -0
  24. package/cssm/components/image-card/Component.d.ts +32 -0
  25. package/cssm/components/image-card/Component.js +40 -0
  26. package/cssm/components/image-card/index.d.ts +1 -0
  27. package/cssm/components/image-card/index.js +9 -0
  28. package/cssm/components/image-card/index.module.css +31 -0
  29. package/cssm/components/index.d.ts +3 -0
  30. package/cssm/components/index.js +13 -0
  31. package/cssm/components/overlay/Component.d.ts +4 -0
  32. package/cssm/components/overlay/Component.js +23 -0
  33. package/cssm/components/overlay/index.d.ts +1 -0
  34. package/cssm/components/overlay/index.js +9 -0
  35. package/cssm/components/overlay/index.module.css +34 -0
  36. package/cssm/components/text/Component.d.ts +47 -0
  37. package/cssm/components/text/Component.js +39 -0
  38. package/cssm/components/text/index.d.ts +1 -0
  39. package/cssm/components/text/index.js +9 -0
  40. package/cssm/components/text/index.module.css +46 -0
  41. package/cssm/consts.d.ts +5 -0
  42. package/cssm/consts.js +32 -0
  43. package/cssm/index.d.ts +2 -0
  44. package/cssm/index.js +10 -0
  45. package/cssm/shared/index.d.ts +1 -0
  46. package/cssm/shared/index.js +10 -0
  47. package/cssm/single/Component.d.ts +4 -0
  48. package/cssm/single/Component.js +39 -0
  49. package/cssm/single/index.d.ts +1 -0
  50. package/cssm/single/index.js +9 -0
  51. package/cssm/single/index.module.css +71 -0
  52. package/cssm/stack/Component.d.ts +4 -0
  53. package/cssm/stack/Component.js +34 -0
  54. package/cssm/stack/index.d.ts +1 -0
  55. package/cssm/stack/index.js +9 -0
  56. package/cssm/stack/index.module.css +68 -0
  57. package/cssm/typings.d.ts +144 -0
  58. package/cssm/typings.js +2 -0
  59. package/cssm/utils/index.d.ts +15 -0
  60. package/cssm/utils/index.js +39 -0
  61. package/esm/Component.d.ts +8 -0
  62. package/esm/Component.js +12 -0
  63. package/esm/components/image-card/Component.d.ts +32 -0
  64. package/esm/components/image-card/Component.js +33 -0
  65. package/esm/components/image-card/index.css +32 -0
  66. package/esm/components/image-card/index.d.ts +1 -0
  67. package/esm/components/image-card/index.js +1 -0
  68. package/esm/components/index.d.ts +3 -0
  69. package/esm/components/index.js +3 -0
  70. package/esm/components/overlay/Component.d.ts +4 -0
  71. package/esm/components/overlay/Component.js +15 -0
  72. package/esm/components/overlay/index.css +35 -0
  73. package/esm/components/overlay/index.d.ts +1 -0
  74. package/esm/components/overlay/index.js +1 -0
  75. package/esm/components/text/Component.d.ts +47 -0
  76. package/esm/components/text/Component.js +31 -0
  77. package/esm/components/text/index.css +48 -0
  78. package/esm/components/text/index.d.ts +1 -0
  79. package/esm/components/text/index.js +1 -0
  80. package/esm/consts.d.ts +5 -0
  81. package/esm/consts.js +26 -0
  82. package/esm/index.d.ts +2 -0
  83. package/esm/index.js +1 -0
  84. package/esm/shared/index.d.ts +1 -0
  85. package/esm/shared/index.js +1 -0
  86. package/esm/single/Component.d.ts +4 -0
  87. package/esm/single/Component.js +31 -0
  88. package/esm/single/index.css +72 -0
  89. package/esm/single/index.d.ts +1 -0
  90. package/esm/single/index.js +1 -0
  91. package/esm/stack/Component.d.ts +4 -0
  92. package/esm/stack/Component.js +26 -0
  93. package/esm/stack/index.css +69 -0
  94. package/esm/stack/index.d.ts +1 -0
  95. package/esm/stack/index.js +1 -0
  96. package/esm/typings.d.ts +144 -0
  97. package/esm/typings.js +1 -0
  98. package/esm/utils/index.d.ts +15 -0
  99. package/esm/utils/index.js +32 -0
  100. package/index.d.ts +2 -0
  101. package/index.js +10 -0
  102. package/modern/Component.d.ts +8 -0
  103. package/modern/Component.js +11 -0
  104. package/modern/components/image-card/Component.d.ts +32 -0
  105. package/modern/components/image-card/Component.js +32 -0
  106. package/modern/components/image-card/index.css +32 -0
  107. package/modern/components/image-card/index.d.ts +1 -0
  108. package/modern/components/image-card/index.js +1 -0
  109. package/modern/components/index.d.ts +3 -0
  110. package/modern/components/index.js +3 -0
  111. package/modern/components/overlay/Component.d.ts +4 -0
  112. package/modern/components/overlay/Component.js +11 -0
  113. package/modern/components/overlay/index.css +35 -0
  114. package/modern/components/overlay/index.d.ts +1 -0
  115. package/modern/components/overlay/index.js +1 -0
  116. package/modern/components/text/Component.d.ts +47 -0
  117. package/modern/components/text/Component.js +31 -0
  118. package/modern/components/text/index.css +48 -0
  119. package/modern/components/text/index.d.ts +1 -0
  120. package/modern/components/text/index.js +1 -0
  121. package/modern/consts.d.ts +5 -0
  122. package/modern/consts.js +26 -0
  123. package/modern/index.d.ts +2 -0
  124. package/modern/index.js +1 -0
  125. package/modern/shared/index.d.ts +1 -0
  126. package/modern/shared/index.js +1 -0
  127. package/modern/single/Component.d.ts +4 -0
  128. package/modern/single/Component.js +29 -0
  129. package/modern/single/index.css +72 -0
  130. package/modern/single/index.d.ts +1 -0
  131. package/modern/single/index.js +1 -0
  132. package/modern/stack/Component.d.ts +4 -0
  133. package/modern/stack/Component.js +23 -0
  134. package/modern/stack/index.css +69 -0
  135. package/modern/stack/index.d.ts +1 -0
  136. package/modern/stack/index.js +1 -0
  137. package/modern/typings.d.ts +144 -0
  138. package/modern/typings.js +1 -0
  139. package/modern/utils/index.d.ts +15 -0
  140. package/modern/utils/index.js +32 -0
  141. package/package.json +27 -0
  142. package/shared/index.d.ts +1 -0
  143. package/shared/index.js +10 -0
  144. package/shared/package.json +3 -0
  145. package/single/Component.d.ts +4 -0
  146. package/single/Component.js +40 -0
  147. package/single/index.css +72 -0
  148. package/single/index.d.ts +1 -0
  149. package/single/index.js +9 -0
  150. package/src/Component.tsx +15 -0
  151. package/src/components/image-card/Component.tsx +110 -0
  152. package/src/components/image-card/index.module.css +18 -0
  153. package/src/components/image-card/index.ts +1 -0
  154. package/src/components/index.ts +3 -0
  155. package/src/components/overlay/Component.tsx +14 -0
  156. package/src/components/overlay/index.module.css +25 -0
  157. package/src/components/overlay/index.ts +1 -0
  158. package/src/components/text/Component.tsx +134 -0
  159. package/src/components/text/index.module.css +39 -0
  160. package/src/components/text/index.ts +1 -0
  161. package/src/consts.ts +28 -0
  162. package/src/index.ts +2 -0
  163. package/src/shared/index.ts +1 -0
  164. package/src/shared/package.json +3 -0
  165. package/src/single/Component.tsx +92 -0
  166. package/src/single/index.module.css +60 -0
  167. package/src/single/index.ts +1 -0
  168. package/src/stack/Component.tsx +51 -0
  169. package/src/stack/index.module.css +84 -0
  170. package/src/stack/index.ts +1 -0
  171. package/src/typings.ts +179 -0
  172. package/src/utils/index.ts +35 -0
  173. package/stack/Component.d.ts +4 -0
  174. package/stack/Component.js +35 -0
  175. package/stack/index.css +69 -0
  176. package/stack/index.d.ts +1 -0
  177. package/stack/index.js +9 -0
  178. package/typings.d.ts +144 -0
  179. package/typings.js +2 -0
  180. package/utils/index.d.ts +15 -0
  181. package/utils/index.js +39 -0
package/Component.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { SingleProps, StackProps } from "./typings";
3
+ declare const Single: FC<SingleProps>;
4
+ declare const ProductCover: {
5
+ Single: FC<SingleProps>;
6
+ Stack: FC<StackProps>;
7
+ };
8
+ export { Single, ProductCover };
package/Component.js ADDED
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var single_Component = require('./single/Component.js');
8
+ var stack_Component = require('./stack/Component.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+
14
+ var Single = function (props) { return React__default.default.createElement(single_Component.Single, tslib.__assign({}, props)); };
15
+ var ProductCover = {
16
+ Single: Single,
17
+ Stack: stack_Component.Stack,
18
+ };
19
+
20
+ exports.ProductCover = ProductCover;
21
+ exports.Single = Single;
@@ -0,0 +1,32 @@
1
+ import { FC } from 'react';
2
+ type ImageCardProps = {
3
+ /**
4
+ * Идентификатор карты
5
+ * (например: RM, SQ, SR)
6
+ */
7
+ cardId?: string;
8
+ /**
9
+ * Базовый URL сервиса с изображениями
10
+ * https://online.alfabank.ru/cards-images/cards/
11
+ */
12
+ baseUrl?: string;
13
+ /**
14
+ * Какие слои показывать, через запятую без пробелов
15
+ * (полный набор: BACKGROUND,CARD_NUMBER,CARD_HOLDER,PAY_PASS,CHIP,LOGO,PAYMENT_SYSTEM,RESERVED_1,RESERVED_2,VALID_DATE)
16
+ */
17
+ layers?: string;
18
+ /**
19
+ * Ширина карты
20
+ */
21
+ width?: number;
22
+ /**
23
+ * Высота карты
24
+ */
25
+ height?: number;
26
+ /**
27
+ * Количество карт
28
+ */
29
+ numberOfСards?: number;
30
+ };
31
+ declare const ImageCard: FC<ImageCardProps>;
32
+ export { ImageCardProps, ImageCard };
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var hooks = require('@alfalab/hooks');
7
+
8
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
11
+
12
+ var styles = {"cardMack":"product-cover__cardMack_yebu3","cardImage":"product-cover__cardImage_yebu3"};
13
+ require('./index.css')
14
+
15
+ var ImageCard = function (_a) {
16
+ var baseUrl = _a.baseUrl, cardId = _a.cardId, layers = _a.layers, width = _a.width, height = _a.height, numberOfСards = _a.numberOfСards;
17
+ var imagePatternId = hooks.useId();
18
+ var cardImageUrl = "".concat(baseUrl).concat(cardId, "/images?layers=").concat(layers, "&width=").concat(width);
19
+ var cardImageUrl2x = width && "".concat(baseUrl).concat(cardId, "/images?layers=").concat(layers, "&width=").concat(width * 2);
20
+ var imageLoadingState = hooks.useImageLoadingState({ src: cardImageUrl || '' });
21
+ var imageLoadingState2x = hooks.useImageLoadingState({ src: cardImageUrl2x || '' });
22
+ var imageFailed = imageLoadingState === 'error' || imageLoadingState2x === 'error';
23
+ var renderCardMack = function () { return (React__default.default.createElement("svg", { width: '24', height: '16', viewBox: '0 0 24 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', className: styles.cardMack },
24
+ !imageFailed && (React__default.default.createElement("defs", null,
25
+ React__default.default.createElement("pattern", { id: imagePatternId, width: '100%', height: '100%' },
26
+ React__default.default.createElement("image", { href: cardImageUrl, width: '100%', height: '100%', preserveAspectRatio: 'xMidYMid slice' })))),
27
+ React__default.default.createElement("path", { style: {
28
+ fill: imageFailed
29
+ ? 'var(--color-light-graphic-tertiary)'
30
+ : "url(#".concat(imagePatternId, ")"),
31
+ }, d: 'M0 13V14C0 15.1046 0.89543 16 2 16H22C23.1046 16 24 15.1046 24 14V2C24 0.895431 23.1046 0 22 0H21V10C21 11.6569 19.6569 13 18 13H0Z' }))); };
32
+ var renderImageCard = function () {
33
+ if (!imageFailed) {
34
+ return (React__default.default.createElement("img", { alt: 'card', className: styles.cardImage, width: width, height: height, src: cardImageUrl, srcSet: "".concat(cardImageUrl2x, " 2x") }));
35
+ }
36
+ return null;
37
+ };
38
+ return height === 16 && numberOfСards ? renderCardMack() : renderImageCard();
39
+ };
40
+
41
+ exports.ImageCard = ImageCard;
@@ -0,0 +1,32 @@
1
+ /* hash: 10zgi */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
+ } /* deprecated */ :root {
4
+ --color-light-graphic-primary-inverted: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
6
+ } :root {
7
+ } :root {
8
+
9
+ /* Hard */
10
+
11
+ /* Up */
12
+
13
+ /* Hard up */
14
+ } :root {
15
+ --border-radius-xs: 2px;
16
+ } :root {
17
+ } :root {
18
+ } :root {
19
+ } .product-cover__cardMack_yebu3 {
20
+ background-color: var(--color-light-graphic-primary-inverted);
21
+ border-radius: var(--border-radius-xs);
22
+ } .product-cover__cardImage_yebu3 {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ bottom: 0;
27
+ right: 0;
28
+ z-index: 1;
29
+ max-width: 100%;
30
+ height: 100%;
31
+ border-radius: inherit;
32
+ }
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_imageCard_Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.ImageCard = components_imageCard_Component.ImageCard;
@@ -0,0 +1,3 @@
1
+ export * from "./overlay/index";
2
+ export * from "./text/index";
3
+ export * from "./image-card/index";
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_overlay_Component = require('./overlay/Component.js');
6
+ var components_text_Component = require('./text/Component.js');
7
+ var components_imageCard_Component = require('./image-card/Component.js');
8
+
9
+
10
+
11
+ exports.Overlay = components_overlay_Component.Overlay;
12
+ exports.Text = components_text_Component.Text;
13
+ exports.ImageCard = components_imageCard_Component.ImageCard;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { OverlayProps } from "../../typings";
3
+ declare const Overlay: FC<OverlayProps>;
4
+ export { Overlay };
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+
8
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
11
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
12
+
13
+ var styles = {"overlay":"product-cover__overlay_1l1ze","visible":"product-cover__visible_1l1ze","default":"product-cover__default_1l1ze","inverted":"product-cover__inverted_1l1ze"};
14
+ require('./index.css')
15
+
16
+ var Overlay = function (_a) {
17
+ var _b;
18
+ var _c = _a.colors, colors = _c === void 0 ? 'default' : _c, visible = _a.visible;
19
+ return (React__default.default.createElement("div", { className: cn__default.default(styles.overlay, styles[colors], (_b = {},
20
+ _b[styles.visible] = visible,
21
+ _b)) }));
22
+ };
23
+
24
+ exports.Overlay = Overlay;
@@ -0,0 +1,35 @@
1
+ /* hash: 5c9cf */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
+ } /* deprecated */ :root {
4
+ --color-static-neutral-translucent-700: rgba(4, 4, 21, 0.47);
5
+ --color-static-neutral-translucent-700-inverted: rgba(238, 238, 251, 0.55); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
6
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
7
+ } :root {
8
+ } :root {
9
+
10
+ /* Hard */
11
+
12
+ /* Up */
13
+
14
+ /* Hard up */
15
+ } :root {
16
+ } :root {
17
+ } :root {
18
+ } :root {
19
+ } .product-cover__overlay_1l1ze {
20
+ position: absolute;
21
+ top: 0;
22
+ bottom: 0;
23
+ left: 0;
24
+ right: 0;
25
+ border-radius: inherit;
26
+ pointer-events: none;
27
+ z-index: 3;
28
+ opacity: 0;
29
+ } .product-cover__visible_1l1ze {
30
+ opacity: 1;
31
+ } .product-cover__default_1l1ze {
32
+ background: var(--color-static-neutral-translucent-700-inverted);
33
+ } .product-cover__inverted_1l1ze {
34
+ background: var(--color-static-neutral-translucent-700);
35
+ }
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_overlay_Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.Overlay = components_overlay_Component.Overlay;
@@ -0,0 +1,47 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { Size } from "../../typings";
4
+ type TextProps = {
5
+ /**
6
+ * Кнопка показать номер карты
7
+ */
8
+ eyeButton?: boolean;
9
+ /**
10
+ * Размер
11
+ */
12
+ size?: Size;
13
+ /**
14
+ * Дополнительный класс
15
+ */
16
+ className?: string;
17
+ /**
18
+ * Имя владельца карты в верхнем регистре
19
+ */
20
+ cardholderNameUppercase?: boolean;
21
+ /**
22
+ * Имя владельца карты
23
+ */
24
+ cardholderName?: string;
25
+ /**
26
+ * Номер карты
27
+ */
28
+ cardNumber?: number;
29
+ /**
30
+ * Количество карт
31
+ */
32
+ numberOfСards?: number;
33
+ /**
34
+ * Управление ориентацией стопки карт компонента
35
+ */
36
+ align?: 'bottom' | 'default';
37
+ /**
38
+ * Обработчик клика по иконке 'показать номер карты'
39
+ */
40
+ onEyeIconClick?: () => void;
41
+ /**
42
+ * Идентификатор для систем автоматизированного тестирования.
43
+ */
44
+ dataTestId?: string;
45
+ };
46
+ declare const Text: React.FC<TextProps>;
47
+ export { TextProps, Text };
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var cn = require('classnames');
7
+ var desktop = require('@alfalab/core-components-button/desktop');
8
+ var coreComponentsShared = require('@alfalab/core-components-shared');
9
+ var coreComponentsTypography = require('@alfalab/core-components-typography');
10
+ var EyeMIcon = require('@alfalab/icons-glyph/EyeMIcon');
11
+ var utils = require('@alfalab/utils');
12
+ var consts = require('../../consts.js');
13
+ var utils_index = require('../../utils/index.js');
14
+
15
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
18
+ var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
19
+
20
+ var styles = {"component":"product-cover__component_15nup","cardholderName":"product-cover__cardholderName_15nup","cardNumber":"product-cover__cardNumber_15nup","buttonEye":"product-cover__buttonEye_15nup"};
21
+ require('./index.css')
22
+
23
+ var Text = function (_a) {
24
+ var cardholderNameUppercase = _a.cardholderNameUppercase, cardholderName = _a.cardholderName, cardNumber = _a.cardNumber, numberOfСards = _a.numberOfСards, align = _a.align, eyeButton = _a.eyeButton, dataTestId = _a.dataTestId, _b = _a.size, size = _b === void 0 ? 164 : _b, onEyeIconClick = _a.onEyeIconClick;
25
+ var maxSize = size === 164;
26
+ var visibleNumberOfСards = utils_index["showNumberOfСards"](size, numberOfСards, align);
27
+ return (React__default.default.createElement("div", { className: cn__default.default(styles.component), "data-test-id": dataTestId },
28
+ maxSize && cardholderName ? (React__default.default.createElement(coreComponentsTypography.Typography.Text, { tag: 'div', view: 'secondary-medium', weight: 'medium', color: 'static-primary-light', className: styles.cardholderName }, cardholderNameUppercase ? cardholderName === null || cardholderName === void 0 ? void 0 : cardholderName.toUpperCase() : cardholderName)) : null,
29
+ cardNumber && !visibleNumberOfСards ? (React__default.default.createElement("div", { className: styles.cardNumber },
30
+ React__default.default.createElement(coreComponentsTypography.Typography.Text, { view: consts.TYPOGRAPHY_VIEW_FOR_SIZE[size], weight: 'medium', color: 'static-primary-light' },
31
+ [164, 128].includes(size) && '··\u2009',
32
+ String(cardNumber).slice(-4)),
33
+ eyeButton && maxSize && (React__default.default.createElement(desktop.ButtonDesktop, { view: 'text', className: cn__default.default(styles.buttonEye), dataTestId: coreComponentsShared.getDataTestId(dataTestId, 'eye-btn'), onClick: onEyeIconClick, colors: 'inverted' },
34
+ React__default.default.createElement(EyeMIcon.EyeMIcon, null))))) : null,
35
+ visibleNumberOfСards && (React__default.default.createElement("div", { className: styles.cardNumber },
36
+ React__default.default.createElement(coreComponentsTypography.Typography.Text, { view: consts.TYPOGRAPHY_VIEW_FOR_SIZE[size], weight: 'medium', color: 'static-primary-dark' }, "+".concat(numberOfСards, "\u00A0"),
37
+ utils.pluralize(numberOfСards || 0, 'карта', 'карты', 'карт'))))));
38
+ };
39
+
40
+ exports.Text = Text;
@@ -0,0 +1,48 @@
1
+ /* hash: nlylc */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
+ } /* deprecated */ :root {
4
+ --color-static-text-primary-light: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
6
+ } :root {
7
+ } :root {
8
+
9
+ /* Hard */
10
+
11
+ /* Up */
12
+
13
+ /* Hard up */
14
+ } :root {
15
+ } :root {
16
+ --gap-3xs: 2px;
17
+ } :root {
18
+ } :root {
19
+ } .product-cover__component_15nup {
20
+ display: flex;
21
+ flex-direction: column;
22
+ z-index: 2;
23
+ grid-gap: var(--gap-3xs);
24
+ grid-gap: var(--gap-3xs);
25
+ gap: var(--gap-3xs);
26
+ } .product-cover__cardholderName_15nup {
27
+ -webkit-line-clamp: 1;
28
+ display: -webkit-box;
29
+ -webkit-box-orient: vertical;
30
+ overflow: hidden;
31
+ word-break: break-all;
32
+ } .product-cover__cardNumber_15nup {
33
+ display: flex;
34
+ align-items: center;
35
+ } .product-cover__buttonEye_15nup.product-cover__buttonEye_15nup {
36
+ margin-left: 5px;
37
+ width: 24px;
38
+ height: 24px;
39
+ cursor: pointer;
40
+ color: var(--color-static-text-primary-light)
41
+ } .product-cover__buttonEye_15nup.product-cover__buttonEye_15nup:hover {
42
+ color: var(--color-static-text-primary-light);
43
+ } .product-cover__buttonEye_15nup.product-cover__buttonEye_15nup:active {
44
+ color: var(--color-static-text-primary-light);
45
+ } .product-cover__buttonEye_15nup.product-cover__buttonEye_15nup > span {
46
+ display: flex;
47
+ align-items: center;
48
+ }
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_text_Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.Text = components_text_Component.Text;
package/consts.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { TextProps } from "@alfalab/core-components-typography";
2
+ declare const WIDTH_TO_SIZE: Record<number, number>;
3
+ declare const TYPOGRAPHY_VIEW_FOR_SIZE: Record<number, TextProps['view']>;
4
+ declare const SECOND_CARD_SIZE: Record<number, number>;
5
+ export { WIDTH_TO_SIZE, TYPOGRAPHY_VIEW_FOR_SIZE, SECOND_CARD_SIZE };
package/consts.js ADDED
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var WIDTH_TO_SIZE = {
6
+ 16: 24,
7
+ 32: 51,
8
+ 40: 65,
9
+ 48: 76,
10
+ 96: 152,
11
+ 128: 205,
12
+ 164: 264,
13
+ };
14
+ var TYPOGRAPHY_VIEW_FOR_SIZE = {
15
+ 16: 'secondary-small',
16
+ 32: 'secondary-small',
17
+ 40: 'secondary-medium',
18
+ 48: 'secondary-medium',
19
+ 96: 'secondary-medium',
20
+ 128: 'primary-small',
21
+ 164: 'primary-medium',
22
+ };
23
+ var SECOND_CARD_SIZE = {
24
+ 16: 16,
25
+ 32: 32,
26
+ 40: 40,
27
+ 128: 96,
28
+ };
29
+
30
+ exports.SECOND_CARD_SIZE = SECOND_CARD_SIZE;
31
+ exports.TYPOGRAPHY_VIEW_FOR_SIZE = TYPOGRAPHY_VIEW_FOR_SIZE;
32
+ exports.WIDTH_TO_SIZE = WIDTH_TO_SIZE;
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { SingleProps, StackProps } from "./typings";
3
+ declare const Single: FC<SingleProps>;
4
+ declare const ProductCover: {
5
+ Single: FC<SingleProps>;
6
+ Stack: FC<StackProps>;
7
+ };
8
+ export { Single, ProductCover };
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var single_Component = require('./single/Component.js');
8
+ var stack_Component = require('./stack/Component.js');
9
+
10
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
13
+
14
+ var Single = function (props) { return React__default.default.createElement(single_Component.Single, tslib.__assign({}, props)); };
15
+ var ProductCover = {
16
+ Single: Single,
17
+ Stack: stack_Component.Stack,
18
+ };
19
+
20
+ exports.ProductCover = ProductCover;
21
+ exports.Single = Single;
@@ -0,0 +1,32 @@
1
+ import { FC } from 'react';
2
+ type ImageCardProps = {
3
+ /**
4
+ * Идентификатор карты
5
+ * (например: RM, SQ, SR)
6
+ */
7
+ cardId?: string;
8
+ /**
9
+ * Базовый URL сервиса с изображениями
10
+ * https://online.alfabank.ru/cards-images/cards/
11
+ */
12
+ baseUrl?: string;
13
+ /**
14
+ * Какие слои показывать, через запятую без пробелов
15
+ * (полный набор: BACKGROUND,CARD_NUMBER,CARD_HOLDER,PAY_PASS,CHIP,LOGO,PAYMENT_SYSTEM,RESERVED_1,RESERVED_2,VALID_DATE)
16
+ */
17
+ layers?: string;
18
+ /**
19
+ * Ширина карты
20
+ */
21
+ width?: number;
22
+ /**
23
+ * Высота карты
24
+ */
25
+ height?: number;
26
+ /**
27
+ * Количество карт
28
+ */
29
+ numberOfСards?: number;
30
+ };
31
+ declare const ImageCard: FC<ImageCardProps>;
32
+ export { ImageCardProps, ImageCard };
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var hooks = require('@alfalab/hooks');
7
+ var styles = require('./index.module.css');
8
+
9
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
+ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
13
+
14
+ var ImageCard = function (_a) {
15
+ var baseUrl = _a.baseUrl, cardId = _a.cardId, layers = _a.layers, width = _a.width, height = _a.height, numberOfСards = _a.numberOfСards;
16
+ var imagePatternId = hooks.useId();
17
+ var cardImageUrl = "".concat(baseUrl).concat(cardId, "/images?layers=").concat(layers, "&width=").concat(width);
18
+ var cardImageUrl2x = width && "".concat(baseUrl).concat(cardId, "/images?layers=").concat(layers, "&width=").concat(width * 2);
19
+ var imageLoadingState = hooks.useImageLoadingState({ src: cardImageUrl || '' });
20
+ var imageLoadingState2x = hooks.useImageLoadingState({ src: cardImageUrl2x || '' });
21
+ var imageFailed = imageLoadingState === 'error' || imageLoadingState2x === 'error';
22
+ var renderCardMack = function () { return (React__default.default.createElement("svg", { width: '24', height: '16', viewBox: '0 0 24 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', className: styles__default.default.cardMack },
23
+ !imageFailed && (React__default.default.createElement("defs", null,
24
+ React__default.default.createElement("pattern", { id: imagePatternId, width: '100%', height: '100%' },
25
+ React__default.default.createElement("image", { href: cardImageUrl, width: '100%', height: '100%', preserveAspectRatio: 'xMidYMid slice' })))),
26
+ React__default.default.createElement("path", { style: {
27
+ fill: imageFailed
28
+ ? 'var(--color-light-graphic-tertiary)'
29
+ : "url(#".concat(imagePatternId, ")"),
30
+ }, d: 'M0 13V14C0 15.1046 0.89543 16 2 16H22C23.1046 16 24 15.1046 24 14V2C24 0.895431 23.1046 0 22 0H21V10C21 11.6569 19.6569 13 18 13H0Z' }))); };
31
+ var renderImageCard = function () {
32
+ if (!imageFailed) {
33
+ return (React__default.default.createElement("img", { alt: 'card', className: styles__default.default.cardImage, width: width, height: height, src: cardImageUrl, srcSet: "".concat(cardImageUrl2x, " 2x") }));
34
+ }
35
+ return null;
36
+ };
37
+ return height === 16 && numberOfСards ? renderCardMack() : renderImageCard();
38
+ };
39
+
40
+ exports.ImageCard = ImageCard;
@@ -0,0 +1 @@
1
+ export * from "./Component";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_imageCard_Component = require('./Component.js');
6
+
7
+
8
+
9
+ exports.ImageCard = components_imageCard_Component.ImageCard;
@@ -0,0 +1,31 @@
1
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
2
+ } /* deprecated */ :root {
3
+ --color-light-graphic-primary-inverted: #fff; /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
+ } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
+ } :root {
6
+ } :root {
7
+
8
+ /* Hard */
9
+
10
+ /* Up */
11
+
12
+ /* Hard up */
13
+ } :root {
14
+ --border-radius-xs: 2px;
15
+ } :root {
16
+ } :root {
17
+ } :root {
18
+ } .cardMack {
19
+ background-color: var(--color-light-graphic-primary-inverted);
20
+ border-radius: var(--border-radius-xs);
21
+ } .cardImage {
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ bottom: 0;
26
+ right: 0;
27
+ z-index: 1;
28
+ max-width: 100%;
29
+ height: 100%;
30
+ border-radius: inherit;
31
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./overlay/index";
2
+ export * from "./text/index";
3
+ export * from "./image-card/index";
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var components_overlay_Component = require('./overlay/Component.js');
6
+ var components_text_Component = require('./text/Component.js');
7
+ var components_imageCard_Component = require('./image-card/Component.js');
8
+
9
+
10
+
11
+ exports.Overlay = components_overlay_Component.Overlay;
12
+ exports.Text = components_text_Component.Text;
13
+ exports.ImageCard = components_imageCard_Component.ImageCard;