@sima-land/moleculas 16.0.0-alpha.16 → 16.0.0-alpha.17

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 (104) hide show
  1. package/common/components/badge/badge.d.ts +19 -0
  2. package/common/components/badge/badge.js +50 -0
  3. package/common/components/badge/badge.js.map +1 -0
  4. package/common/components/badge/index.d.ts +1 -19
  5. package/common/components/badge/index.js +2 -46
  6. package/common/components/badge/index.js.map +1 -1
  7. package/common/components/badge-list/badge-list.d.ts +29 -0
  8. package/common/components/badge-list/badge-list.js +38 -0
  9. package/common/components/badge-list/badge-list.js.map +1 -0
  10. package/common/components/badge-list/index.d.ts +1 -29
  11. package/common/components/badge-list/index.js +2 -34
  12. package/common/components/badge-list/index.js.map +1 -1
  13. package/common/components/img-stub/img-stub.d.ts +14 -0
  14. package/common/components/img-stub/img-stub.js +21 -0
  15. package/common/components/img-stub/img-stub.js.map +1 -0
  16. package/common/components/img-stub/index.d.ts +1 -13
  17. package/common/components/img-stub/index.js +2 -17
  18. package/common/components/img-stub/index.js.map +1 -1
  19. package/common/components/product-info/index.d.ts +1 -15
  20. package/common/components/product-info/index.js +4 -30
  21. package/common/components/product-info/index.js.map +1 -1
  22. package/common/components/product-info/product-info.d.ts +15 -0
  23. package/common/components/product-info/product-info.js +33 -0
  24. package/common/components/product-info/product-info.js.map +1 -0
  25. package/common/components/rating-counter/index.d.ts +1 -35
  26. package/common/components/rating-counter/index.js +2 -20
  27. package/common/components/rating-counter/index.js.map +1 -1
  28. package/common/components/rating-counter/rating-counter.d.ts +35 -0
  29. package/common/components/rating-counter/rating-counter.js +24 -0
  30. package/common/components/rating-counter/rating-counter.js.map +1 -0
  31. package/common/hooks/index.d.ts +5 -5
  32. package/common/hooks/index.js +14 -14
  33. package/common/hooks/index.js.map +1 -1
  34. package/desktop/components/breadcrumbs/breadcrumbs.d.ts +27 -0
  35. package/desktop/components/breadcrumbs/breadcrumbs.js +55 -0
  36. package/desktop/components/breadcrumbs/breadcrumbs.js.map +1 -0
  37. package/desktop/components/breadcrumbs/index.d.ts +1 -27
  38. package/desktop/components/breadcrumbs/index.js +2 -50
  39. package/desktop/components/breadcrumbs/index.js.map +1 -1
  40. package/desktop/components/person-info/index.d.ts +1 -42
  41. package/desktop/components/person-info/index.js +2 -20
  42. package/desktop/components/person-info/index.js.map +1 -1
  43. package/desktop/components/person-info/person-info.d.ts +42 -0
  44. package/desktop/components/person-info/person-info.js +24 -0
  45. package/desktop/components/person-info/person-info.js.map +1 -0
  46. package/desktop/components/product-card/index.d.ts +1 -1
  47. package/desktop/components/promotion-card/index.d.ts +4 -31
  48. package/desktop/components/promotion-card/index.js +9 -35
  49. package/desktop/components/promotion-card/index.js.map +1 -1
  50. package/desktop/components/promotion-card/placeholder.d.ts +3 -1
  51. package/desktop/components/promotion-card/placeholder.js.map +1 -1
  52. package/desktop/components/promotion-card/promotion-card.d.ts +32 -0
  53. package/desktop/components/promotion-card/promotion-card.js +39 -0
  54. package/desktop/components/promotion-card/promotion-card.js.map +1 -0
  55. package/mobile/components/action-circles/action-circles.d.ts +22 -0
  56. package/mobile/components/action-circles/action-circles.js +31 -0
  57. package/mobile/components/action-circles/action-circles.js.map +1 -0
  58. package/mobile/components/action-circles/index.d.ts +1 -22
  59. package/mobile/components/action-circles/index.js +2 -27
  60. package/mobile/components/action-circles/index.js.map +1 -1
  61. package/mobile/components/action-list/action-list.d.ts +29 -0
  62. package/mobile/components/action-list/action-list.js +40 -0
  63. package/mobile/components/action-list/action-list.js.map +1 -0
  64. package/mobile/components/action-list/index.d.ts +1 -23
  65. package/mobile/components/action-list/index.js +4 -34
  66. package/mobile/components/action-list/index.js.map +1 -1
  67. package/mobile/components/breadcrumbs/breadcrumbs.d.ts +12 -0
  68. package/mobile/components/breadcrumbs/breadcrumbs.js +17 -0
  69. package/mobile/components/breadcrumbs/breadcrumbs.js.map +1 -0
  70. package/mobile/components/breadcrumbs/index.d.ts +1 -12
  71. package/mobile/components/breadcrumbs/index.js +2 -13
  72. package/mobile/components/breadcrumbs/index.js.map +1 -1
  73. package/mobile/components/person-info/index.d.ts +1 -46
  74. package/mobile/components/person-info/index.js +3 -38
  75. package/mobile/components/person-info/index.js.map +1 -1
  76. package/mobile/components/person-info/person-info.d.ts +46 -0
  77. package/mobile/components/person-info/person-info.js +41 -0
  78. package/mobile/components/person-info/person-info.js.map +1 -0
  79. package/mobile/components/product-row/index.d.ts +1 -40
  80. package/mobile/components/product-row/index.js +2 -25
  81. package/mobile/components/product-row/index.js.map +1 -1
  82. package/mobile/components/product-row/product-row.d.ts +40 -0
  83. package/mobile/components/product-row/product-row.js +29 -0
  84. package/mobile/components/product-row/product-row.js.map +1 -0
  85. package/mobile/components/product-slider/index.d.ts +1 -17
  86. package/mobile/components/product-slider/index.js +2 -33
  87. package/mobile/components/product-slider/index.js.map +1 -1
  88. package/mobile/components/product-slider/product-slider.d.ts +17 -0
  89. package/mobile/components/product-slider/product-slider.js +37 -0
  90. package/mobile/components/product-slider/product-slider.js.map +1 -0
  91. package/mobile/components/search-bar/index.d.ts +1 -39
  92. package/mobile/components/search-bar/index.js +3 -64
  93. package/mobile/components/search-bar/index.js.map +1 -1
  94. package/mobile/components/search-bar/search-bar.d.ts +39 -0
  95. package/mobile/components/search-bar/search-bar.js +64 -0
  96. package/mobile/components/search-bar/search-bar.js.map +1 -0
  97. package/mobile/components/select-screen/index.d.ts +1 -20
  98. package/mobile/components/select-screen/index.js +3 -27
  99. package/mobile/components/select-screen/index.js.map +1 -1
  100. package/mobile/components/select-screen/select-screen.d.ts +20 -0
  101. package/mobile/components/select-screen/select-screen.js +31 -0
  102. package/mobile/components/select-screen/select-screen.js.map +1 -0
  103. package/package.json +23 -24
  104. /package/desktop/components/promotion-card/{index.module.scss → promotion-card.module.scss} +0 -0
@@ -0,0 +1,19 @@
1
+ import { AnchorHTMLAttributes } from 'react';
2
+ export interface BadgeField {
3
+ type: 'text' | 'timer' | 'svg-url';
4
+ value: string;
5
+ }
6
+ export interface BadgeProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
7
+ /** Основной цвет, используется как цвет обводки, иконок и текста. */
8
+ color?: string;
9
+ /** Содержимое шильдика. */
10
+ fields: Array<BadgeField>;
11
+ /** Идентификатор для систем автоматизированного тестирования. */
12
+ 'data-testid'?: string;
13
+ }
14
+ /**
15
+ * Шильдик.
16
+ * @param props Свойства.
17
+ * @return Элемент.
18
+ */
19
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Badge = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const timer_1 = require("@sima-land/ui-nucleons/timer");
10
+ const bind_1 = __importDefault(require("classnames/bind"));
11
+ const badge_module_scss_1 = __importDefault(require("./badge.module.scss"));
12
+ const cx = bind_1.default.bind(badge_module_scss_1.default);
13
+ /**
14
+ * Шильдик.
15
+ * @param props Свойства.
16
+ * @return Элемент.
17
+ */
18
+ exports.Badge = (0, react_1.forwardRef)(function Badge({ className, color, fields, href, style, 'data-testid': testId = 'badge', ...restProps }, ref) {
19
+ const iconOnly = fields.length === 1 && fields[0].type === 'svg-url';
20
+ return ((0, jsx_runtime_1.jsx)("a", { ref: ref, ...restProps, "data-testid": testId, href: href, style: { ...style, '--badge-color': color }, className: cx('root', iconOnly && 'icon-only', href && 'interactive', className), children: iconOnly ? ((0, jsx_runtime_1.jsx)("img", { className: cx('icon'), src: fields[0].value, alt: '' })) : (
21
+ // вложенный span нужен для того чтобы объединить `display: inline-flex` и `text-overflow: ellipsis`
22
+ (0, jsx_runtime_1.jsx)("span", { className: cx('content'), children: fields.reduce((acc, item, i) => {
23
+ let result = null;
24
+ // на данный момент сочетание иконки с другими элементами не предусмотрено макетами - игнорируем
25
+ switch (item.type) {
26
+ case 'text':
27
+ result = item.value;
28
+ break;
29
+ case 'timer':
30
+ result = ((0, jsx_runtime_1.jsx)(timer_1.Timer, { date: item.value, timeout: 1000 * 60, format: formatDistance }, i));
31
+ break;
32
+ }
33
+ acc.push(result);
34
+ i < fields.length - 1 && acc.push(' ');
35
+ return acc;
36
+ }, []) })) }));
37
+ });
38
+ /**
39
+ * Форматирует оставшееся время.
40
+ * @param distance Оставшееся время.
41
+ * @return Отформатированное время.
42
+ */
43
+ const formatDistance = ({ days, hours, minutes, }) => [toTimePart(days), ...[hours % 24, minutes % 60].map(toTimePart)].join(':');
44
+ /**
45
+ * Форматирует число добавляя нули при необходимости.
46
+ * @param n Число.
47
+ * @return Отформатированное число.
48
+ */
49
+ const toTimePart = (n) => `${n}`.padStart(2, '0');
50
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/common/components/badge/badge.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAoE;AACpE,wDAAqD;AACrD,2DAAyC;AACzC,4EAAyC;AAkBzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACU,QAAA,KAAK,GAAG,IAAA,kBAAU,EAAgC,SAAS,KAAK,CAC3E,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,EACxF,GAAG;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;IAErE,OAAO,CACL,8BACE,GAAG,EAAE,GAAG,KACJ,SAAS,iBACA,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAS,EAClD,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,WAAW,EAAE,IAAI,IAAI,aAAa,EAAE,SAAS,CAAC,EAChF,QAAQ,EACN,QAAQ,CAAC,CAAC,CAAC,CACT,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAC,EAAE,GAAG,CAC5D,CAAC,CAAC,CAAC;QACF,oGAAoG;QACpG,iCAAM,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAC3B,MAAM,CAAC,MAAM,CAAc,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,MAAM,GAAG,IAAI,CAAC;gBAElB,gGAAgG;gBAChG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,MAAM;wBACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;wBACpB,MAAM;oBACR,KAAK,OAAO;wBACV,MAAM,GAAG,CACP,uBAAC,aAAK,IAAS,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,IAA/D,CAAC,CAAkE,CAChF,CAAC;wBACF,MAAM;gBACV,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjB,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEvC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,GACD,CACR,GAEH,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,OAAO,GAKR,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElF;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC"}
@@ -1,19 +1 @@
1
- import { AnchorHTMLAttributes } from 'react';
2
- export interface BadgeField {
3
- type: 'text' | 'timer' | 'svg-url';
4
- value: string;
5
- }
6
- export interface BadgeProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
7
- /** Основной цвет, используется как цвет обводки, иконок и текста. */
8
- color?: string;
9
- /** Содержимое шильдика. */
10
- fields: Array<BadgeField>;
11
- /** Идентификатор для систем автоматизированного тестирования. */
12
- 'data-testid'?: string;
13
- }
14
- /**
15
- * Шильдик.
16
- * @param props Свойства.
17
- * @return Элемент.
18
- */
19
- export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLAnchorElement>>;
1
+ export { type BadgeProps, type BadgeField, Badge } from './badge';
@@ -1,50 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.Badge = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
9
- const timer_1 = require("@sima-land/ui-nucleons/timer");
10
- const bind_1 = __importDefault(require("classnames/bind"));
11
- const badge_module_scss_1 = __importDefault(require("./badge.module.scss"));
12
- const cx = bind_1.default.bind(badge_module_scss_1.default);
13
- /**
14
- * Шильдик.
15
- * @param props Свойства.
16
- * @return Элемент.
17
- */
18
- exports.Badge = (0, react_1.forwardRef)(function Badge({ className, color, fields, href, style, 'data-testid': testId = 'badge', ...restProps }, ref) {
19
- const iconOnly = fields.length === 1 && fields[0].type === 'svg-url';
20
- return ((0, jsx_runtime_1.jsx)("a", { ref: ref, ...restProps, "data-testid": testId, href: href, style: { ...style, '--badge-color': color }, className: cx('root', iconOnly && 'icon-only', href && 'interactive', className), children: iconOnly ? ((0, jsx_runtime_1.jsx)("img", { className: cx('icon'), src: fields[0].value, alt: '' })) : (
21
- // вложенный span нужен для того чтобы объединить `display: inline-flex` и `text-overflow: ellipsis`
22
- (0, jsx_runtime_1.jsx)("span", { className: cx('content'), children: fields.reduce((acc, item, i) => {
23
- let result = null;
24
- // на данный момент сочетание иконки с другими элементами не предусмотрено макетами - игнорируем
25
- switch (item.type) {
26
- case 'text':
27
- result = item.value;
28
- break;
29
- case 'timer':
30
- result = ((0, jsx_runtime_1.jsx)(timer_1.Timer, { date: item.value, timeout: 1000 * 60, format: formatDistance }, i));
31
- break;
32
- }
33
- acc.push(result);
34
- i < fields.length - 1 && acc.push(' ');
35
- return acc;
36
- }, []) })) }));
37
- });
38
- /**
39
- * Форматирует оставшееся время.
40
- * @param distance Оставшееся время.
41
- * @return Отформатированное время.
42
- */
43
- const formatDistance = ({ days, hours, minutes, }) => [toTimePart(days), ...[hours % 24, minutes % 60].map(toTimePart)].join(':');
44
- /**
45
- * Форматирует число добавляя нули при необходимости.
46
- * @param n Число.
47
- * @return Отформатированное число.
48
- */
49
- const toTimePart = (n) => `${n}`.padStart(2, '0');
4
+ var badge_1 = require("./badge");
5
+ Object.defineProperty(exports, "Badge", { enumerable: true, get: function () { return badge_1.Badge; } });
50
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAoE;AACpE,wDAAqD;AACrD,2DAAyC;AACzC,4EAAyC;AAkBzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACU,QAAA,KAAK,GAAG,IAAA,kBAAU,EAAgC,SAAS,KAAK,CAC3E,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,EACxF,GAAG;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;IAErE,OAAO,CACL,8BACE,GAAG,EAAE,GAAG,KACJ,SAAS,iBACA,MAAM,EACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAS,EAClD,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,WAAW,EAAE,IAAI,IAAI,aAAa,EAAE,SAAS,CAAC,EAChF,QAAQ,EACN,QAAQ,CAAC,CAAC,CAAC,CACT,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAC,EAAE,GAAG,CAC5D,CAAC,CAAC,CAAC;QACF,oGAAoG;QACpG,iCAAM,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAC3B,MAAM,CAAC,MAAM,CAAc,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,MAAM,GAAG,IAAI,CAAC;gBAElB,gGAAgG;gBAChG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClB,KAAK,MAAM;wBACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;wBACpB,MAAM;oBACR,KAAK,OAAO;wBACV,MAAM,GAAG,CACP,uBAAC,aAAK,IAAS,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,IAA/D,CAAC,CAAkE,CAChF,CAAC;wBACF,MAAM;gBACV,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjB,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEvC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,GACD,CACR,GAEH,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,OAAO,GAKR,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElF;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkE;AAAvB,8FAAA,KAAK,OAAA"}
@@ -0,0 +1,29 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ export interface BadgeListProps {
3
+ /** Список данных для шильдиков. */
4
+ children?: ReactNode;
5
+ /** CSS-класс корневого элемента. */
6
+ className?: string;
7
+ /** Стили корневого элемента. */
8
+ style?: CSSProperties;
9
+ /** Лимит количества строк, не влезающие шильдики будут скрыты. */
10
+ lineLimit?: number;
11
+ }
12
+ /**
13
+ * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
14
+ * @param props Свойства компонента.
15
+ * @return Элемент.
16
+ */
17
+ export declare const BadgeList: {
18
+ ({ children, className, lineLimit, style }: BadgeListProps): import("react/jsx-runtime").JSX.Element;
19
+ Slot: typeof BadgeListSlot;
20
+ };
21
+ /**
22
+ * Слот для вывода Badge с произвольной оберткой.
23
+ * @param props Свойства.
24
+ * @return Элемент.
25
+ */
26
+ declare function BadgeListSlot({ children }: {
27
+ children?: ReactNode;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BadgeList = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const badge_1 = require("../badge");
10
+ const bind_1 = __importDefault(require("classnames/bind"));
11
+ const badge_list_module_scss_1 = __importDefault(require("./badge-list.module.scss"));
12
+ const cx = bind_1.default.bind(badge_list_module_scss_1.default);
13
+ /**
14
+ * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
15
+ * @param props Свойства компонента.
16
+ * @return Элемент.
17
+ */
18
+ const BadgeList = ({ children, className, lineLimit, style }) => ((0, jsx_runtime_1.jsx)("div", { className: cx('root', className, lineLimit && 'line-limit'), style: lineLimit ? { ...style, '--line-limit': lineLimit } : style, children: react_1.Children.toArray(children).map((child, index) => {
19
+ switch (true) {
20
+ case (0, react_1.isValidElement)(child) && child.type === badge_1.Badge:
21
+ return (0, jsx_runtime_1.jsx)(BadgeListSlot, { children: child }, index);
22
+ case (0, react_1.isValidElement)(child) && child.type === BadgeListSlot:
23
+ return child;
24
+ default:
25
+ return null;
26
+ }
27
+ }) }));
28
+ exports.BadgeList = BadgeList;
29
+ /**
30
+ * Слот для вывода Badge с произвольной оберткой.
31
+ * @param props Свойства.
32
+ * @return Элемент.
33
+ */
34
+ function BadgeListSlot({ children }) {
35
+ return (0, jsx_runtime_1.jsx)("div", { className: cx('item'), children: children });
36
+ }
37
+ exports.BadgeList.Slot = BadgeListSlot;
38
+ //# sourceMappingURL=badge-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-list.js","sourceRoot":"","sources":["../../../../src/common/components/badge-list/badge-list.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA2E;AAC3E,oCAAiC;AACjC,2DAAyC;AACzC,sFAA8C;AAgB9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC,CACtF,gCACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,EAC3D,KAAK,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,SAAS,EAAoB,CAAC,CAAC,CAAC,KAAK,YAEpF,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAK;gBAChD,OAAO,uBAAC,aAAa,cAAc,KAAK,IAAb,KAAK,CAAyB,CAAC;YAC5D,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBACxD,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,GACE,CACP,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AAEF;;;;GAIG;AACH,SAAS,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAC3D,OAAO,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,YAAG,QAAQ,GAAO,CAAC;AACtD,CAAC;AAED,iBAAS,CAAC,IAAI,GAAG,aAAa,CAAC"}
@@ -1,29 +1 @@
1
- import { ReactNode, CSSProperties } from 'react';
2
- export interface BadgeListProps {
3
- /** Список данных для шильдиков. */
4
- children?: ReactNode;
5
- /** CSS-класс корневого элемента. */
6
- className?: string;
7
- /** Стили корневого элемента. */
8
- style?: CSSProperties;
9
- /** Лимит количества строк, не влезающие шильдики будут скрыты. */
10
- lineLimit?: number;
11
- }
12
- /**
13
- * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
14
- * @param props Свойства компонента.
15
- * @return Элемент.
16
- */
17
- export declare const BadgeList: {
18
- ({ children, className, lineLimit, style }: BadgeListProps): import("react/jsx-runtime").JSX.Element;
19
- Slot: typeof BadgeListSlot;
20
- };
21
- /**
22
- * Слот для вывода Badge с произвольной оберткой.
23
- * @param props Свойства.
24
- * @return Элемент.
25
- */
26
- declare function BadgeListSlot({ children }: {
27
- children?: ReactNode;
28
- }): import("react/jsx-runtime").JSX.Element;
29
- export {};
1
+ export { type BadgeListProps, BadgeList } from './badge-list';
@@ -1,38 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.BadgeList = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
9
- const badge_1 = require("../badge");
10
- const bind_1 = __importDefault(require("classnames/bind"));
11
- const badge_list_module_scss_1 = __importDefault(require("./badge-list.module.scss"));
12
- const cx = bind_1.default.bind(badge_list_module_scss_1.default);
13
- /**
14
- * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
15
- * @param props Свойства компонента.
16
- * @return Элемент.
17
- */
18
- const BadgeList = ({ children, className, lineLimit, style }) => ((0, jsx_runtime_1.jsx)("div", { className: cx('root', className, lineLimit && 'line-limit'), style: lineLimit ? { ...style, '--line-limit': lineLimit } : style, children: react_1.Children.toArray(children).map((child, index) => {
19
- switch (true) {
20
- case (0, react_1.isValidElement)(child) && child.type === badge_1.Badge:
21
- return (0, jsx_runtime_1.jsx)(BadgeListSlot, { children: child }, index);
22
- case (0, react_1.isValidElement)(child) && child.type === BadgeListSlot:
23
- return child;
24
- default:
25
- return null;
26
- }
27
- }) }));
28
- exports.BadgeList = BadgeList;
29
- /**
30
- * Слот для вывода Badge с произвольной оберткой.
31
- * @param props Свойства.
32
- * @return Элемент.
33
- */
34
- function BadgeListSlot({ children }) {
35
- return (0, jsx_runtime_1.jsx)("div", { className: cx('item'), children: children });
36
- }
37
- exports.BadgeList.Slot = BadgeListSlot;
4
+ var badge_list_1 = require("./badge-list");
5
+ Object.defineProperty(exports, "BadgeList", { enumerable: true, get: function () { return badge_list_1.BadgeList; } });
38
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge-list/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA2E;AAC3E,oCAAiC;AACjC,2DAAyC;AACzC,sFAA8C;AAgB9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC,CACtF,gCACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,EAC3D,KAAK,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,SAAS,EAAoB,CAAC,CAAC,CAAC,KAAK,YAEpF,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAK;gBAChD,OAAO,uBAAC,aAAa,cAAc,KAAK,IAAb,KAAK,CAAyB,CAAC;YAC5D,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBACxD,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,GACE,CACP,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AAEF;;;;GAIG;AACH,SAAS,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAC3D,OAAO,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,YAAG,QAAQ,GAAO,CAAC;AACtD,CAAC;AAED,iBAAS,CAAC,IAAI,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge-list/index.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAAhC,uGAAA,SAAS,OAAA"}
@@ -0,0 +1,14 @@
1
+ import type { CSSProperties, HTMLAttributes } from 'react';
2
+ import type { WithTestId } from '@sima-land/ui-nucleons/types';
3
+ export interface ImgStubStyle extends CSSProperties {
4
+ '--img-stub-size'?: string;
5
+ }
6
+ export interface ImgStubProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style'>, WithTestId {
7
+ style?: ImgStubStyle;
8
+ }
9
+ /**
10
+ * Баннер-заглушка для больших картинок которые не загрузились из-за ошибки.
11
+ * @param props Свойства.
12
+ * @return Элемент.
13
+ */
14
+ export declare function ImgStub({ className, ...rest }: ImgStubProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ImgStub = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const Repeat_1 = __importDefault(require("@sima-land/ui-quarks/icons/24x24/Stroked/Repeat"));
9
+ const bind_1 = __importDefault(require("classnames/bind"));
10
+ const img_stub_module_scss_1 = __importDefault(require("./img-stub.module.scss"));
11
+ const cx = bind_1.default.bind(img_stub_module_scss_1.default);
12
+ /**
13
+ * Баннер-заглушка для больших картинок которые не загрузились из-за ошибки.
14
+ * @param props Свойства.
15
+ * @return Элемент.
16
+ */
17
+ function ImgStub({ className, ...rest }) {
18
+ return ((0, jsx_runtime_1.jsxs)("div", { ...rest, className: cx('root', className), role: 'banner', children: [(0, jsx_runtime_1.jsxs)("svg", { className: img_stub_module_scss_1.default.text, viewBox: '0 0 160 160', children: [(0, jsx_runtime_1.jsx)("text", { x: '50%', y: '14.5%', className: img_stub_module_scss_1.default.line, children: "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '24.5%', className: img_stub_module_scss_1.default.line, children: "\u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043B\u043E\u0441\u044C :(" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '80%', className: img_stub_module_scss_1.default.line, children: "\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '90%', className: img_stub_module_scss_1.default.line, children: "\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443" })] }), (0, jsx_runtime_1.jsx)(Repeat_1.default, { className: img_stub_module_scss_1.default.icon })] }));
19
+ }
20
+ exports.ImgStub = ImgStub;
21
+ //# sourceMappingURL=img-stub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"img-stub.js","sourceRoot":"","sources":["../../../../src/common/components/img-stub/img-stub.tsx"],"names":[],"mappings":";;;;;;;AAEA,6FAAwE;AACxE,2DAAyC;AACzC,kFAA4C;AAU5C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,8BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAgB;IAC1D,OAAO,CACL,oCAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,QAAQ,aAC5D,iCAAK,SAAS,EAAE,8BAAM,CAAC,IAAI,EAAE,OAAO,EAAC,aAAa,aAChD,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,mFAEvC,EACP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,mGAEvC,EAEP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,6EAErC,EACP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,kHAErC,IACH,EACN,uBAAC,gBAAS,IAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,GAAI,IACjC,CACP,CAAC;AACJ,CAAC;AArBD,0BAqBC"}
@@ -1,13 +1 @@
1
- import { CSSProperties, HTMLAttributes } from 'react';
2
- export interface ImgStubStyle extends CSSProperties {
3
- '--img-stub-size'?: string;
4
- }
5
- export interface ImgStubProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style'> {
6
- style?: ImgStubStyle;
7
- }
8
- /**
9
- * Баннер-заглушка для больших картинок которые не загрузились из-за ошибки.
10
- * @param props Свойства.
11
- * @return Элемент.
12
- */
13
- export declare function ImgStub({ className, ...rest }: ImgStubProps): import("react/jsx-runtime").JSX.Element;
1
+ export { type ImgStubProps, type ImgStubStyle, ImgStub } from './img-stub';
@@ -1,21 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ImgStub = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const Repeat_1 = __importDefault(require("@sima-land/ui-quarks/icons/24x24/Stroked/Repeat"));
9
- const bind_1 = __importDefault(require("classnames/bind"));
10
- const img_stub_module_scss_1 = __importDefault(require("./img-stub.module.scss"));
11
- const cx = bind_1.default.bind(img_stub_module_scss_1.default);
12
- /**
13
- * Баннер-заглушка для больших картинок которые не загрузились из-за ошибки.
14
- * @param props Свойства.
15
- * @return Элемент.
16
- */
17
- function ImgStub({ className, ...rest }) {
18
- return ((0, jsx_runtime_1.jsxs)("div", { ...rest, className: cx('root', className), role: 'banner', children: [(0, jsx_runtime_1.jsxs)("svg", { className: img_stub_module_scss_1.default.text, viewBox: '0 0 160 160', children: [(0, jsx_runtime_1.jsx)("text", { x: '50%', y: '14.5%', className: img_stub_module_scss_1.default.line, children: "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '24.5%', className: img_stub_module_scss_1.default.line, children: "\u043D\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043B\u043E\u0441\u044C :(" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '80%', className: img_stub_module_scss_1.default.line, children: "\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435" }), (0, jsx_runtime_1.jsx)("text", { x: '50%', y: '90%', className: img_stub_module_scss_1.default.line, children: "\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443" })] }), (0, jsx_runtime_1.jsx)(Repeat_1.default, { className: img_stub_module_scss_1.default.icon })] }));
19
- }
20
- exports.ImgStub = ImgStub;
4
+ var img_stub_1 = require("./img-stub");
5
+ Object.defineProperty(exports, "ImgStub", { enumerable: true, get: function () { return img_stub_1.ImgStub; } });
21
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/img-stub/index.tsx"],"names":[],"mappings":";;;;;;;AACA,6FAAwE;AACxE,2DAAyC;AACzC,kFAA4C;AAU5C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,8BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAgB;IAC1D,OAAO,CACL,oCAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,QAAQ,aAC5D,iCAAK,SAAS,EAAE,8BAAM,CAAC,IAAI,EAAE,OAAO,EAAC,aAAa,aAChD,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,mFAEvC,EACP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,OAAO,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,mGAEvC,EAEP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,6EAErC,EACP,iCAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,kHAErC,IACH,EACN,uBAAC,gBAAS,IAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,GAAI,IACjC,CACP,CAAC;AACJ,CAAC;AArBD,0BAqBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/img-stub/index.ts"],"names":[],"mappings":";;;AAAA,uCAA2E;AAA5B,mGAAA,OAAO,OAAA"}
@@ -1,15 +1 @@
1
- import { ProductInfoProps } from './types';
2
- import { Parts } from './parts';
3
- export type { ProductInfoProps };
4
- export declare const UNAVAILABLE_REASON: {
5
- readonly notEnough: "Нет в наличии";
6
- readonly unavailableInRegion: "Товар недоступен в вашем регионе";
7
- readonly onlyForLegalEntities: "Товар доступен только для юридических лиц";
8
- };
9
- /**
10
- * Блок информации о товаре по дизайн-гайдам.
11
- * @param props Свойства.
12
- * @return Элемент.
13
- */
14
- export declare const ProductInfo: ({ restriction, children }: ProductInfoProps) => import("react/jsx-runtime").JSX.Element;
15
- export { Parts };
1
+ export { type ProductInfoProps, ProductInfo, Parts } from './product-info';
@@ -1,33 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Parts = exports.ProductInfo = exports.UNAVAILABLE_REASON = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const helpers_1 = require("@sima-land/ui-nucleons/helpers");
6
- const utils_1 = require("./utils");
7
- const parts_1 = require("./parts");
8
- Object.defineProperty(exports, "Parts", { enumerable: true, get: function () { return parts_1.Parts; } });
9
- exports.UNAVAILABLE_REASON = {
10
- notEnough: 'Нет в наличии',
11
- unavailableInRegion: 'Товар недоступен в вашем регионе',
12
- onlyForLegalEntities: 'Товар доступен только для юридических лиц',
13
- };
14
- /**
15
- * Блок информации о товаре по дизайн-гайдам.
16
- * @param props Свойства.
17
- * @return Элемент.
18
- */
19
- const ProductInfo = ({ restriction, children }) => {
20
- const { image, badges, prices, title, trademark, footer, secondaryInfo, ratingCounter } = (0, helpers_1.defineSlots)(children, {
21
- image: parts_1.Parts.Image,
22
- badges: parts_1.Parts.Badges,
23
- prices: parts_1.Parts.Prices,
24
- title: parts_1.Parts.Title,
25
- trademark: parts_1.Parts.TrademarkLink,
26
- footer: parts_1.Parts.Footer,
27
- secondaryInfo: parts_1.Parts.SecondaryInfo,
28
- ratingCounter: parts_1.Parts.RatingCounter,
29
- });
30
- return ((0, jsx_runtime_1.jsxs)(utils_1.ProductInfoContext.Provider, { value: { restriction }, children: [image, restriction !== 'adult' && badges, prices, title, restriction !== 'adult' && secondaryInfo, !restriction && trademark, restriction !== 'adult' && ratingCounter, footer] }));
31
- };
32
- exports.ProductInfo = ProductInfo;
3
+ exports.Parts = exports.ProductInfo = void 0;
4
+ var product_info_1 = require("./product-info");
5
+ Object.defineProperty(exports, "ProductInfo", { enumerable: true, get: function () { return product_info_1.ProductInfo; } });
6
+ Object.defineProperty(exports, "Parts", { enumerable: true, get: function () { return product_info_1.Parts; } });
33
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/product-info/index.tsx"],"names":[],"mappings":";;;;AAAA,4DAA6D;AAE7D,mCAA6C;AAC7C,mCAAgC;AA0CvB,sFA1CA,aAAK,OA0CA;AAtCD,QAAA,kBAAkB,GAAG;IAChC,SAAS,EAAE,eAAe;IAC1B,mBAAmB,EAAE,kCAAkC;IACvD,oBAAoB,EAAE,2CAA2C;CACzD,CAAC;AAEX;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAoB,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GACrF,IAAA,qBAAW,EAAC,QAAQ,EAAE;QACpB,KAAK,EAAE,aAAK,CAAC,KAAK;QAClB,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,KAAK,EAAE,aAAK,CAAC,KAAK;QAClB,SAAS,EAAE,aAAK,CAAC,aAAa;QAC9B,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,aAAa,EAAE,aAAK,CAAC,aAAa;QAClC,aAAa,EAAE,aAAK,CAAC,aAAa;KACnC,CAAC,CAAC;IAEL,OAAO,CACL,wBAAC,0BAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,aAChD,KAAK,EACL,WAAW,KAAK,OAAO,IAAI,MAAM,EACjC,MAAM,EACN,KAAK,EACL,WAAW,KAAK,OAAO,IAAI,aAAa,EACxC,CAAC,WAAW,IAAI,SAAS,EACzB,WAAW,KAAK,OAAO,IAAI,aAAa,EACxC,MAAM,IACqB,CAC/B,CAAC;AACJ,CAAC,CAAC;AAzBW,QAAA,WAAW,eAyBtB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/product-info/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAA3C,2GAAA,WAAW,OAAA;AAAE,qGAAA,KAAK,OAAA"}
@@ -0,0 +1,15 @@
1
+ import { ProductInfoProps } from './types';
2
+ import { Parts } from './parts';
3
+ export type { ProductInfoProps };
4
+ export declare const UNAVAILABLE_REASON: {
5
+ readonly notEnough: "Нет в наличии";
6
+ readonly unavailableInRegion: "Товар недоступен в вашем регионе";
7
+ readonly onlyForLegalEntities: "Товар доступен только для юридических лиц";
8
+ };
9
+ /**
10
+ * Блок информации о товаре по дизайн-гайдам.
11
+ * @param props Свойства.
12
+ * @return Элемент.
13
+ */
14
+ export declare const ProductInfo: ({ restriction, children }: ProductInfoProps) => import("react/jsx-runtime").JSX.Element;
15
+ export { Parts };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parts = exports.ProductInfo = exports.UNAVAILABLE_REASON = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const helpers_1 = require("@sima-land/ui-nucleons/helpers");
6
+ const utils_1 = require("./utils");
7
+ const parts_1 = require("./parts");
8
+ Object.defineProperty(exports, "Parts", { enumerable: true, get: function () { return parts_1.Parts; } });
9
+ exports.UNAVAILABLE_REASON = {
10
+ notEnough: 'Нет в наличии',
11
+ unavailableInRegion: 'Товар недоступен в вашем регионе',
12
+ onlyForLegalEntities: 'Товар доступен только для юридических лиц',
13
+ };
14
+ /**
15
+ * Блок информации о товаре по дизайн-гайдам.
16
+ * @param props Свойства.
17
+ * @return Элемент.
18
+ */
19
+ const ProductInfo = ({ restriction, children }) => {
20
+ const { image, badges, prices, title, trademark, footer, secondaryInfo, ratingCounter } = (0, helpers_1.defineSlots)(children, {
21
+ image: parts_1.Parts.Image,
22
+ badges: parts_1.Parts.Badges,
23
+ prices: parts_1.Parts.Prices,
24
+ title: parts_1.Parts.Title,
25
+ trademark: parts_1.Parts.TrademarkLink,
26
+ footer: parts_1.Parts.Footer,
27
+ secondaryInfo: parts_1.Parts.SecondaryInfo,
28
+ ratingCounter: parts_1.Parts.RatingCounter,
29
+ });
30
+ return ((0, jsx_runtime_1.jsxs)(utils_1.ProductInfoContext.Provider, { value: { restriction }, children: [image, restriction !== 'adult' && badges, prices, title, restriction !== 'adult' && secondaryInfo, !restriction && trademark, restriction !== 'adult' && ratingCounter, footer] }));
31
+ };
32
+ exports.ProductInfo = ProductInfo;
33
+ //# sourceMappingURL=product-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-info.js","sourceRoot":"","sources":["../../../../src/common/components/product-info/product-info.tsx"],"names":[],"mappings":";;;;AAAA,4DAA6D;AAE7D,mCAA6C;AAC7C,mCAAgC;AA0CvB,sFA1CA,aAAK,OA0CA;AAtCD,QAAA,kBAAkB,GAAG;IAChC,SAAS,EAAE,eAAe;IAC1B,mBAAmB,EAAE,kCAAkC;IACvD,oBAAoB,EAAE,2CAA2C;CACzD,CAAC;AAEX;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAoB,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GACrF,IAAA,qBAAW,EAAC,QAAQ,EAAE;QACpB,KAAK,EAAE,aAAK,CAAC,KAAK;QAClB,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,KAAK,EAAE,aAAK,CAAC,KAAK;QAClB,SAAS,EAAE,aAAK,CAAC,aAAa;QAC9B,MAAM,EAAE,aAAK,CAAC,MAAM;QACpB,aAAa,EAAE,aAAK,CAAC,aAAa;QAClC,aAAa,EAAE,aAAK,CAAC,aAAa;KACnC,CAAC,CAAC;IAEL,OAAO,CACL,wBAAC,0BAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,aAChD,KAAK,EACL,WAAW,KAAK,OAAO,IAAI,MAAM,EACjC,MAAM,EACN,KAAK,EACL,WAAW,KAAK,OAAO,IAAI,aAAa,EACxC,CAAC,WAAW,IAAI,SAAS,EACzB,WAAW,KAAK,OAAO,IAAI,aAAa,EACxC,MAAM,IACqB,CAC/B,CAAC;AACJ,CAAC,CAAC;AAzBW,QAAA,WAAW,eAyBtB"}
@@ -1,35 +1 @@
1
- import { CSSProperties, HTMLAttributes } from 'react';
2
- export type RatingCounterSize = 's' | 'm' | 'unset';
3
- export interface RatingCounterStyle extends CSSProperties {
4
- '--rating-icon-size'?: string;
5
- '--rating-value-size'?: string;
6
- '--rating-value-height'?: string;
7
- '--rating-count-gutter'?: string;
8
- '--rating-count-size'?: string;
9
- '--rating-count-height'?: string;
10
- }
11
- interface CustomProps {
12
- /**
13
- * Размер.
14
- * При указании "unset" необходимо определить стили самостоятельно с помощью миксина из rating-counter-util.scss.
15
- */
16
- size?: RatingCounterSize;
17
- /** Значение рейтинга. */
18
- value: number;
19
- /** Количество отзывов. */
20
- reviewCount: number;
21
- /** Нужно ли отключить эффект при наведении. */
22
- hoverDisabled?: boolean;
23
- /** Стили корневого элемента. */
24
- style?: RatingCounterStyle;
25
- /** Идентификатор для систем автоматизированного тестирования. */
26
- 'data-testid'?: string;
27
- }
28
- export type RatingCounterProps = CustomProps & Omit<HTMLAttributes<HTMLDivElement>, keyof CustomProps>;
29
- /**
30
- * Счетчик рейтинга.
31
- * @param props Свойства.
32
- * @return Элемент.
33
- */
34
- export declare function RatingCounter({ size, value, reviewCount, className, hoverDisabled, 'data-testid': testId, ...restProps }: RatingCounterProps): import("react/jsx-runtime").JSX.Element;
35
- export {};
1
+ export { type RatingCounterSize, type RatingCounterStyle, type RatingCounterProps, RatingCounter, } from './rating-counter';
@@ -1,24 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.RatingCounter = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const Star_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Filled/Star"));
9
- const helpers_1 = require("@sima-land/ui-nucleons/helpers");
10
- const bind_1 = __importDefault(require("classnames/bind"));
11
- const rating_counter_module_scss_1 = __importDefault(require("./rating-counter.module.scss"));
12
- const cx = bind_1.default.bind(rating_counter_module_scss_1.default);
13
- /**
14
- * Счетчик рейтинга.
15
- * @param props Свойства.
16
- * @return Элемент.
17
- */
18
- function RatingCounter({ size = 's', value, reviewCount, className, hoverDisabled, 'data-testid': testId = 'rating-counter', ...restProps }) {
19
- return ((0, jsx_runtime_1.jsxs)("div", { className: cx('root', `size-${size}`, !(value > 0) && 'empty', hoverDisabled && 'hover-disabled', className), "data-testid": testId, ...restProps, children: [(0, jsx_runtime_1.jsx)(Star_1.default, { className: cx('star') }), value > 0 && (0, jsx_runtime_1.jsx)("span", { className: cx('value'), children: String(value).replace('.', ',') }), (0, jsx_runtime_1.jsx)("span", { className: cx('count'), children: reviewCount > 0
20
- ? `${reviewCount} ${(0, helpers_1.getDeclination)(reviewCount, ['отзыв', 'отзыва', 'отзывов'])}`
21
- : 'Нет отзывов' })] }));
22
- }
23
- exports.RatingCounter = RatingCounter;
4
+ var rating_counter_1 = require("./rating-counter");
5
+ Object.defineProperty(exports, "RatingCounter", { enumerable: true, get: function () { return rating_counter_1.RatingCounter; } });
24
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/rating-counter/index.tsx"],"names":[],"mappings":";;;;;;;AACA,wFAAmE;AACnE,4DAAgE;AAChE,2DAAyC;AACzC,8FAAkD;AAuClD,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,oCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAC5B,IAAI,GAAG,GAAG,EACV,KAAK,EACL,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EAAE,MAAM,GAAG,gBAAgB,EACxC,GAAG,SAAS,EACO;IACnB,OAAO,CACL,iCACE,SAAS,EAAE,EAAE,CACX,MAAM,EACN,QAAQ,IAAI,EAAE,EACd,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,OAAO,EACvB,aAAa,IAAI,gBAAgB,EACjC,SAAS,CACV,iBACY,MAAM,KACf,SAAS,aAEb,uBAAC,cAAO,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAI,EAEjC,KAAK,GAAG,CAAC,IAAI,iCAAM,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAQ,EAEpF,iCAAM,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YACzB,WAAW,GAAG,CAAC;oBACd,CAAC,CAAC,GAAG,WAAW,IAAI,IAAA,wBAAc,EAAC,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE;oBACjF,CAAC,CAAC,aAAa,GACZ,IACH,CACP,CAAC;AACJ,CAAC;AAhCD,sCAgCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/rating-counter/index.ts"],"names":[],"mappings":";;;AAAA,mDAK0B;AADxB,+GAAA,aAAa,OAAA"}