@sima-land/moleculas 16.0.0-alpha.11 → 16.0.0-alpha.12

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 (67) hide show
  1. package/common/components/media-gallery/index.d.ts +2 -0
  2. package/common/components/media-gallery/index.js +7 -0
  3. package/common/components/media-gallery/index.js.map +1 -0
  4. package/common/components/media-gallery/media-gallery.d.ts +16 -0
  5. package/common/components/media-gallery/media-gallery.js +90 -0
  6. package/common/components/media-gallery/media-gallery.js.map +1 -0
  7. package/common/components/media-gallery/media-gallery.module.scss +35 -0
  8. package/common/components/media-gallery/types.d.ts +12 -0
  9. package/common/components/media-gallery/types.js +3 -0
  10. package/common/components/media-gallery/types.js.map +1 -0
  11. package/common/components/media-gallery/utils.d.ts +38 -0
  12. package/common/components/media-gallery/utils.js +102 -0
  13. package/common/components/media-gallery/utils.js.map +1 -0
  14. package/common/components/media-modal/__mocks__/images/armchair.jpg +0 -0
  15. package/common/components/media-modal/__mocks__/images/cup.jpg +0 -0
  16. package/common/components/media-modal/__mocks__/images/plant.jpg +0 -0
  17. package/common/components/media-modal/__mocks__/images/stump.jpg +0 -0
  18. package/common/components/media-modal/__mocks__/images/table.jpg +0 -0
  19. package/common/components/media-modal/__mocks__/images/vase.jpg +0 -0
  20. package/common/components/media-modal/__mocks__/index.js +39 -19
  21. package/common/components/media-modal/__mocks__/index.js.map +1 -1
  22. package/common/components/media-modal/__mocks__/thumbnails/armchair.jpg +0 -0
  23. package/common/components/media-modal/__mocks__/thumbnails/cup.jpg +0 -0
  24. package/common/components/media-modal/__mocks__/thumbnails/plant.jpg +0 -0
  25. package/common/components/media-modal/__mocks__/thumbnails/stump.jpg +0 -0
  26. package/common/components/media-modal/__mocks__/thumbnails/table.jpg +0 -0
  27. package/common/components/media-modal/__mocks__/thumbnails/vase.jpg +0 -0
  28. package/common/components/media-modal/index.d.ts +4 -4
  29. package/common/components/media-modal/index.js +5 -3
  30. package/common/components/media-modal/index.js.map +1 -1
  31. package/common/components/media-modal/layout.js +5 -3
  32. package/common/components/media-modal/layout.js.map +1 -1
  33. package/common/components/media-modal/layout.module.scss +0 -2
  34. package/common/components/media-modal/parts/all-round-view.js +2 -2
  35. package/common/components/media-modal/parts/all-round-view.js.map +1 -1
  36. package/common/components/media-modal/parts/index.js +2 -2
  37. package/common/components/media-modal/parts/index.js.map +1 -1
  38. package/common/components/media-modal/parts/media-area.d.ts +25 -0
  39. package/common/components/media-modal/parts/media-area.js +61 -0
  40. package/common/components/media-modal/parts/media-area.js.map +1 -0
  41. package/common/components/media-modal/parts/media-area.module.scss +21 -0
  42. package/common/components/media-modal/parts/media-view.d.ts +9 -2
  43. package/common/components/media-modal/parts/media-view.js +6 -6
  44. package/common/components/media-modal/parts/media-view.js.map +1 -1
  45. package/common/components/media-modal/parts/media-view.module.scss +3 -3
  46. package/common/components/media-modal/parts/product-brief.module.scss +0 -7
  47. package/common/components/media-modal/parts/scroll-section.js +2 -1
  48. package/common/components/media-modal/parts/scroll-section.js.map +1 -1
  49. package/common/components/media-modal/parts/thumbnails.js +2 -1
  50. package/common/components/media-modal/parts/thumbnails.js.map +1 -1
  51. package/common/components/media-modal/types.d.ts +1 -0
  52. package/common/components/media-modal/utils.d.ts +0 -5
  53. package/common/components/media-modal/utils.js +3 -15
  54. package/common/components/media-modal/utils.js.map +1 -1
  55. package/common/hooks/index.d.ts +5 -0
  56. package/common/hooks/index.js +14 -1
  57. package/common/hooks/index.js.map +1 -1
  58. package/desktop/components/breadcrumbs/breadcrumbs.module.scss +36 -3
  59. package/desktop/components/breadcrumbs/index.js +8 -5
  60. package/desktop/components/breadcrumbs/index.js.map +1 -1
  61. package/desktop/components/gallery-modal/components/all-round-view.js +9 -4
  62. package/desktop/components/gallery-modal/components/all-round-view.js.map +1 -1
  63. package/package.json +1 -2
  64. package/common/components/media-modal/parts/media-content.d.ts +0 -21
  65. package/common/components/media-modal/parts/media-content.js +0 -91
  66. package/common/components/media-modal/parts/media-content.js.map +0 -1
  67. package/common/components/media-modal/parts/media-content.module.scss +0 -42
@@ -0,0 +1,2 @@
1
+ export type { MediaGalleryProps, MediaGalleryStyle } from './types';
2
+ export { MediaGallery, MediaSlide } from './media-gallery';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaSlide = exports.MediaGallery = void 0;
4
+ var media_gallery_1 = require("./media-gallery");
5
+ Object.defineProperty(exports, "MediaGallery", { enumerable: true, get: function () { return media_gallery_1.MediaGallery; } });
6
+ Object.defineProperty(exports, "MediaSlide", { enumerable: true, get: function () { return media_gallery_1.MediaSlide; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/media-gallery/index.ts"],"names":[],"mappings":";;;AACA,iDAA2D;AAAlD,6GAAA,YAAY,OAAA;AAAE,2GAAA,UAAU,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { ReactNode } from 'react';
2
+ import { MediaGalleryProps } from './types';
3
+ /**
4
+ * Блок просмотра медиа (фото/видео) с возможностью прокрутки с помощью свайпа.
5
+ * @param props Свойства.
6
+ * @return Элемент.
7
+ */
8
+ export declare function MediaGallery({ className, style, children, targetIndex, onChangeTargetIndex, }: MediaGalleryProps): import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * Слот слайда галереи.
11
+ * @param props Свойства.
12
+ * @return Элемент.
13
+ */
14
+ export declare function MediaSlide({ children }: {
15
+ children?: ReactNode;
16
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,90 @@
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.MediaSlide = exports.MediaGallery = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const hooks_1 = require("../../hooks");
10
+ const utils_1 = require("./utils");
11
+ const bind_1 = __importDefault(require("classnames/bind"));
12
+ const media_gallery_module_scss_1 = __importDefault(require("./media-gallery.module.scss"));
13
+ const cx = bind_1.default.bind(media_gallery_module_scss_1.default);
14
+ /**
15
+ * Блок просмотра медиа (фото/видео) с возможностью прокрутки с помощью свайпа.
16
+ * @param props Свойства.
17
+ * @return Элемент.
18
+ */
19
+ function MediaGallery({ className, style, children, targetIndex = 0, onChangeTargetIndex, }) {
20
+ const mounted = (0, hooks_1.useMounted)();
21
+ const slidesRef = (0, react_1.useRef)(null);
22
+ const items = react_1.Children.toArray(children).filter(item => (0, react_1.isValidElement)(item) && item.type === MediaSlide);
23
+ const total = items.length;
24
+ const totalRef = (0, react_1.useRef)(total);
25
+ totalRef.current = total;
26
+ const targetIndexRef = (0, react_1.useRef)(targetIndex);
27
+ targetIndexRef.current = targetIndex;
28
+ const onChangeTargetIndexRef = (0, react_1.useRef)(onChangeTargetIndex);
29
+ onChangeTargetIndexRef.current = onChangeTargetIndex;
30
+ const moveBackward = (0, react_1.useCallback)(() => {
31
+ var _a;
32
+ (_a = onChangeTargetIndexRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeTargetIndexRef, utils_1.LoopUtil.getPrevIndex(targetIndexRef.current, totalRef.current));
33
+ }, []);
34
+ const moveForward = (0, react_1.useCallback)(() => {
35
+ var _a;
36
+ (_a = onChangeTargetIndexRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeTargetIndexRef, utils_1.LoopUtil.getNextIndex(targetIndexRef.current, totalRef.current));
37
+ }, []);
38
+ const target = items[targetIndex];
39
+ const next = items[utils_1.LoopUtil.getNextIndex(targetIndex, total)];
40
+ const prev = items[utils_1.LoopUtil.getPrevIndex(targetIndex, total)];
41
+ const { init, getProps } = (0, react_1.useMemo)(() => (0, utils_1.createSwipe)({
42
+ onSwipeStart: () => {
43
+ if (!slidesRef.current) {
44
+ return;
45
+ }
46
+ slidesRef.current.classList.remove(cx('transition'));
47
+ },
48
+ onSwipeMove: ({ distanceX }) => {
49
+ if (!slidesRef.current) {
50
+ return;
51
+ }
52
+ // @todo линейная интерполяция для того чтобы не докручивать до тех слайдов которые не смонтированы
53
+ slidesRef.current.style.setProperty('transform', `translate3d(${distanceX}px, 0, 0)`);
54
+ },
55
+ onSwipeEnd: ({ distanceX, isLeft, isRight }) => {
56
+ const slides = slidesRef.current;
57
+ if (!slides) {
58
+ return;
59
+ }
60
+ if (isLeft) {
61
+ slides.style.setProperty('transform', `translate3d(calc(${distanceX}px - var(--media-gallery-width)), 0, 0)`);
62
+ moveBackward();
63
+ }
64
+ if (isRight) {
65
+ slides.style.setProperty('transform', `translate3d(calc(${distanceX}px + var(--media-gallery-width)), 0, 0)`);
66
+ moveForward();
67
+ }
68
+ // ВАЖНО: здесь должны быть именно два requestAnimationFrame, один внутри другого
69
+ requestAnimationFrame(() => {
70
+ requestAnimationFrame(() => {
71
+ slides.classList.add(cx('transition'));
72
+ slides.style.setProperty('transform', `translate3d(0px, 0, 0)`);
73
+ });
74
+ });
75
+ },
76
+ }), [moveBackward, moveBackward]);
77
+ (0, react_1.useEffect)(init, [init]);
78
+ return ((0, jsx_runtime_1.jsx)("div", { className: cx('root', className), style: style, ...getProps(), children: mounted && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { ref: slidesRef, className: cx('slides'), children: [prev && ((0, jsx_runtime_1.jsx)("div", { className: cx('slide', 'prev'), children: prev }, prev.key)), target && ((0, jsx_runtime_1.jsx)("div", { className: cx('slide'), children: target }, target.key)), next && ((0, jsx_runtime_1.jsx)("div", { className: cx('slide', 'next'), children: next }, next.key))] }) })) }));
79
+ }
80
+ exports.MediaGallery = MediaGallery;
81
+ /**
82
+ * Слот слайда галереи.
83
+ * @param props Свойства.
84
+ * @return Элемент.
85
+ */
86
+ function MediaSlide({ children }) {
87
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
88
+ }
89
+ exports.MediaSlide = MediaSlide;
90
+ //# sourceMappingURL=media-gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-gallery.js","sourceRoot":"","sources":["../../../../src/common/components/media-gallery/media-gallery.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ @use 'node_modules/@sima-land/ui-nucleons/colors';
2
+
3
+ .root {
4
+ width: var(--media-gallery-width, 320px);
5
+ height: var(--media-gallery-height, 240px);
6
+ display: flex;
7
+ justify-content: space-between;
8
+ align-items: center;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .slides {
13
+ position: relative;
14
+ }
15
+
16
+ .slide {
17
+ width: var(--media-gallery-width, 320px);
18
+ height: var(--media-gallery-height, 240px);
19
+ }
20
+
21
+ .slide.prev {
22
+ position: absolute;
23
+ left: -100%;
24
+ top: 0;
25
+ }
26
+
27
+ .slide.next {
28
+ position: absolute;
29
+ left: 100%;
30
+ top: 0;
31
+ }
32
+
33
+ .transition {
34
+ transition: transform 0.3s ease-in-out;
35
+ }
@@ -0,0 +1,12 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ export interface MediaGalleryStyle extends CSSProperties {
3
+ '--media-gallery-width'?: string;
4
+ '--media-gallery-height'?: string;
5
+ }
6
+ export interface MediaGalleryProps {
7
+ style?: MediaGalleryStyle;
8
+ className?: string;
9
+ children: ReactNode;
10
+ targetIndex?: number;
11
+ onChangeTargetIndex?: (newIndex: number) => void;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/common/components/media-gallery/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export declare const LoopUtil: {
3
+ /**
4
+ * Возвращает индекс предыдущего элемента.
5
+ * @param current Текущий индекс.
6
+ * @param total Всего.
7
+ * @return Индекс.
8
+ */
9
+ readonly getPrevIndex: (current: number, total: number) => number;
10
+ /**
11
+ * Возвращает индекс следующего элемента.
12
+ * @param current Текущий индекс.
13
+ * @param total Всего.
14
+ * @return Индекс.
15
+ */
16
+ readonly getNextIndex: (current: number, total: number) => number;
17
+ };
18
+ /**
19
+ * Получив пропсы items и children вернет массив пропсов для MediaView.
20
+ * @param props Свойства.
21
+ * @return Пропсы.
22
+ */
23
+ export declare function createSwipe({ onSwipeStart, onSwipeMove, onSwipeEnd, }?: {
24
+ onSwipeStart?: VoidFunction;
25
+ onSwipeMove?: (event: {
26
+ startX: number;
27
+ distanceX: number;
28
+ }) => void;
29
+ onSwipeEnd?: (event: {
30
+ startX: number;
31
+ distanceX: number;
32
+ isLeft: boolean;
33
+ isRight: boolean;
34
+ }) => void;
35
+ }): {
36
+ getProps: () => HTMLAttributes<HTMLElement>;
37
+ init: () => VoidFunction;
38
+ };
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSwipe = exports.LoopUtil = void 0;
4
+ exports.LoopUtil = {
5
+ /**
6
+ * Возвращает индекс предыдущего элемента.
7
+ * @param current Текущий индекс.
8
+ * @param total Всего.
9
+ * @return Индекс.
10
+ */
11
+ getPrevIndex(current, total) {
12
+ const nextIndex = current - 1;
13
+ return nextIndex < 0 ? total - 1 : nextIndex;
14
+ },
15
+ /**
16
+ * Возвращает индекс следующего элемента.
17
+ * @param current Текущий индекс.
18
+ * @param total Всего.
19
+ * @return Индекс.
20
+ */
21
+ getNextIndex(current, total) {
22
+ const nextIndex = current + 1;
23
+ return nextIndex >= total ? 0 : nextIndex;
24
+ },
25
+ };
26
+ /**
27
+ * Получив пропсы items и children вернет массив пропсов для MediaView.
28
+ * @param props Свойства.
29
+ * @return Пропсы.
30
+ */
31
+ function createSwipe({ onSwipeStart, onSwipeMove, onSwipeEnd, } = {}) {
32
+ let pointerCount = 0;
33
+ let captureId = null;
34
+ let startX = 0;
35
+ // eslint-disable-next-line require-jsdoc
36
+ const getProps = () => ({
37
+ onPointerDown: event => {
38
+ if (captureId !== null) {
39
+ return;
40
+ }
41
+ captureId = event.pointerId;
42
+ startX = event.clientX;
43
+ event.preventDefault();
44
+ if (document.activeElement instanceof HTMLElement) {
45
+ document.activeElement.blur();
46
+ }
47
+ onSwipeStart === null || onSwipeStart === void 0 ? void 0 : onSwipeStart();
48
+ },
49
+ });
50
+ // eslint-disable-next-line require-jsdoc
51
+ const init = () => {
52
+ // eslint-disable-next-line require-jsdoc
53
+ const onPointerDown = () => {
54
+ pointerCount++;
55
+ };
56
+ // eslint-disable-next-line require-jsdoc
57
+ const onPointerMove = (event) => {
58
+ if (captureId !== event.pointerId) {
59
+ return;
60
+ }
61
+ if (pointerCount > 1) {
62
+ return;
63
+ }
64
+ onSwipeMove === null || onSwipeMove === void 0 ? void 0 : onSwipeMove({
65
+ startX,
66
+ distanceX: event.clientX - startX,
67
+ });
68
+ };
69
+ // eslint-disable-next-line require-jsdoc
70
+ const onPointerUp = (event) => {
71
+ pointerCount--;
72
+ if (captureId === null) {
73
+ return;
74
+ }
75
+ captureId = null;
76
+ const diff = event.clientX - startX;
77
+ onSwipeEnd === null || onSwipeEnd === void 0 ? void 0 : onSwipeEnd({
78
+ startX,
79
+ distanceX: diff,
80
+ isLeft: Math.abs(diff) > 64 && diff > 0,
81
+ isRight: Math.abs(diff) > 64 && diff < 0,
82
+ });
83
+ };
84
+ // eslint-disable-next-line require-jsdoc
85
+ const onPointerCancel = () => {
86
+ pointerCount--;
87
+ };
88
+ window.addEventListener('pointerdown', onPointerDown);
89
+ window.addEventListener('pointermove', onPointerMove);
90
+ window.addEventListener('pointerup', onPointerUp);
91
+ window.addEventListener('pointercancel', onPointerCancel);
92
+ return () => {
93
+ window.removeEventListener('pointerdown', onPointerDown);
94
+ window.removeEventListener('pointermove', onPointerMove);
95
+ window.removeEventListener('pointerup', onPointerUp);
96
+ window.removeEventListener('pointercancel', onPointerCancel);
97
+ };
98
+ };
99
+ return { init, getProps };
100
+ }
101
+ exports.createSwipe = createSwipe;
102
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/common/components/media-gallery/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.videos = exports.mixed = void 0;
7
+ const armchair_jpg_1 = __importDefault(require("./images/armchair.jpg"));
8
+ const cup_jpg_1 = __importDefault(require("./images/cup.jpg"));
9
+ const plant_jpg_1 = __importDefault(require("./images/plant.jpg"));
10
+ const stump_jpg_1 = __importDefault(require("./images/stump.jpg"));
11
+ const table_jpg_1 = __importDefault(require("./images/table.jpg"));
12
+ const vase_jpg_1 = __importDefault(require("./images/vase.jpg"));
13
+ const armchair_jpg_2 = __importDefault(require("./thumbnails/armchair.jpg"));
14
+ const cup_jpg_2 = __importDefault(require("./thumbnails/cup.jpg"));
15
+ const plant_jpg_2 = __importDefault(require("./thumbnails/plant.jpg"));
16
+ const stump_jpg_2 = __importDefault(require("./thumbnails/stump.jpg"));
17
+ const table_jpg_2 = __importDefault(require("./thumbnails/table.jpg"));
18
+ const vase_jpg_2 = __importDefault(require("./thumbnails/vase.jpg"));
4
19
  exports.mixed = [
5
20
  {
6
21
  type: '360',
@@ -92,49 +107,54 @@ exports.mixed = [
92
107
  type: 'video',
93
108
  data: {
94
109
  src: 'https://cdn2.static1-sima-land.com/flv/3404953.mp4',
95
- thumbnail: 'https://loremflickr.com/240/240?random=16',
96
110
  },
97
111
  },
98
112
  {
99
113
  type: 'image',
100
114
  data: {
101
- alt: 'Сапоги детские MINAKU, цвет синий, размер 31 - Фото 1',
102
- src: 'https://loremflickr.com/240/240?random=1',
115
+ alt: 'Стул',
116
+ src: armchair_jpg_1.default,
117
+ thumbnail: armchair_jpg_2.default,
103
118
  },
104
119
  },
105
120
  {
106
121
  type: 'image',
107
122
  data: {
108
- alt: 'Фото из отзыва, не квадратное',
109
- src: 'https://loremflickr.com/240/240?random=2',
123
+ alt: 'Чашка',
124
+ src: cup_jpg_1.default,
125
+ thumbnail: cup_jpg_2.default,
110
126
  },
111
127
  },
112
128
  {
113
129
  type: 'image',
114
130
  data: {
115
- alt: 'Сапоги детские MINAKU, цвет синий, размер 31 - Фото 2',
116
- src: 'https://loremflickr.com/240/240?random=3',
131
+ alt: 'Растение',
132
+ src: plant_jpg_1.default,
133
+ thumbnail: plant_jpg_2.default,
117
134
  },
118
135
  },
119
136
  {
120
137
  type: 'image',
121
138
  data: {
122
- alt: 'Сапоги детские MINAKU, цвет синий, размер 31 - Фото 3',
123
- src: 'https://loremflickr.com/240/240?random=4',
139
+ alt: 'Пень',
140
+ src: stump_jpg_1.default,
141
+ thumbnail: stump_jpg_2.default,
124
142
  },
125
143
  },
126
144
  {
127
145
  type: 'image',
128
146
  data: {
129
- alt: 'Сапоги детские MINAKU, цвет синий, размер 31 - Фото 4',
130
- src: 'https://loremflickr.com/240/240?random=5',
147
+ alt: 'Стол',
148
+ src: table_jpg_1.default,
149
+ thumbnail: table_jpg_2.default,
131
150
  },
132
151
  },
133
152
  {
134
153
  type: 'image',
135
154
  data: {
136
- alt: 'Сапоги детские MINAKU, цвет синий, размер 31 - Фото 5',
137
- src: 'https://loremflickr.com/240/240?random=6',
155
+ alt: 'Ваза',
156
+ src: vase_jpg_1.default,
157
+ thumbnail: vase_jpg_2.default,
138
158
  },
139
159
  },
140
160
  ];
@@ -143,42 +163,42 @@ exports.videos = [
143
163
  type: 'video',
144
164
  data: {
145
165
  src: 'https://cdn2.static1-sima-land.com/flv/3404953.mp4',
146
- thumbnail: 'https://loremflickr.com/240/240?random=6',
166
+ thumbnail: armchair_jpg_2.default,
147
167
  },
148
168
  },
149
169
  {
150
170
  type: 'video',
151
171
  data: {
152
172
  src: 'https://cdn2.static1-sima-land.com/flv/6907296.mp4',
153
- thumbnail: 'https://loremflickr.com/240/240?random=7',
173
+ thumbnail: cup_jpg_2.default,
154
174
  },
155
175
  },
156
176
  {
157
177
  type: 'video',
158
178
  data: {
159
179
  src: 'https://cdn2.static1-sima-land.com/flv/3619217.mp4',
160
- thumbnail: 'https://loremflickr.com/240/240?random=8',
180
+ thumbnail: plant_jpg_2.default,
161
181
  },
162
182
  },
163
183
  {
164
184
  type: 'video',
165
185
  data: {
166
186
  src: 'https://cdn2.static1-sima-land.com/flv/4093038.mp4',
167
- thumbnail: 'https://loremflickr.com/240/240?random=9',
187
+ thumbnail: stump_jpg_2.default,
168
188
  },
169
189
  },
170
190
  {
171
191
  type: 'video',
172
192
  data: {
173
193
  src: 'https://cdn2.static1-sima-land.com/flv/3404953.mp4',
174
- thumbnail: 'https://loremflickr.com/240/240?random=10',
194
+ thumbnail: table_jpg_2.default,
175
195
  },
176
196
  },
177
197
  {
178
198
  type: 'video',
179
199
  data: {
180
200
  src: 'https://cdn2.static1-sima-land.com/flv/6907296.mp4',
181
- thumbnail: 'https://loremflickr.com/240/240?random=11',
201
+ thumbnail: vase_jpg_2.default,
182
202
  },
183
203
  },
184
204
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/__mocks__/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/__mocks__/index.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import { Preset, HeaderLayout } from './parts';
3
3
  import { ScrollSection } from './parts/scroll-section';
4
4
  import { Thumbnail, ThumbnailProps } from './parts/thumbnail';
5
5
  import { Thumbnails, ThumbnailsProps } from './parts/thumbnails';
6
- import { MediaContentProps, MediaContent } from './parts/media-content';
7
- import { MediaViewProps, MediaView } from './parts/media-view';
6
+ import { MediaViewProps, MediaView, MediaViewStyle } from './parts/media-view';
8
7
  import { ReviewProps, Review } from './parts/review';
9
8
  import { ProductBriefProps, ProductBrief } from './parts/product-brief';
10
- export type { MediaContentProps, MediaViewProps, ThumbnailProps, ThumbnailsProps, ReviewProps, ProductBriefProps, };
11
- export { MediaLayout, MediaHeader, MediaMain, MediaAside, MediaFooter, MediaContent, MediaView, HeaderLayout, Thumbnails, Thumbnail, Review, ProductBrief, Preset, ScrollSection, };
9
+ import { MediaArea, MediaAreaMain, MediaAreaAside } from './parts/media-area';
10
+ export type { MediaViewStyle, MediaViewProps, ThumbnailProps, ThumbnailsProps, ReviewProps, ProductBriefProps, };
11
+ export { MediaLayout, MediaHeader, MediaMain, MediaAside, MediaFooter, MediaArea, MediaAreaMain, MediaAreaAside, MediaView, HeaderLayout, Thumbnails, Thumbnail, Review, ProductBrief, Preset, ScrollSection, };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScrollSection = exports.Preset = exports.ProductBrief = exports.Review = exports.Thumbnail = exports.Thumbnails = exports.HeaderLayout = exports.MediaView = exports.MediaContent = exports.MediaFooter = exports.MediaAside = exports.MediaMain = exports.MediaHeader = exports.MediaLayout = void 0;
3
+ exports.ScrollSection = exports.Preset = exports.ProductBrief = exports.Review = exports.Thumbnail = exports.Thumbnails = exports.HeaderLayout = exports.MediaView = exports.MediaAreaAside = exports.MediaAreaMain = exports.MediaArea = exports.MediaFooter = exports.MediaAside = exports.MediaMain = exports.MediaHeader = exports.MediaLayout = void 0;
4
4
  const layout_1 = require("./layout");
5
5
  Object.defineProperty(exports, "MediaLayout", { enumerable: true, get: function () { return layout_1.MediaLayout; } });
6
6
  Object.defineProperty(exports, "MediaHeader", { enumerable: true, get: function () { return layout_1.MediaHeader; } });
@@ -16,12 +16,14 @@ const thumbnail_1 = require("./parts/thumbnail");
16
16
  Object.defineProperty(exports, "Thumbnail", { enumerable: true, get: function () { return thumbnail_1.Thumbnail; } });
17
17
  const thumbnails_1 = require("./parts/thumbnails");
18
18
  Object.defineProperty(exports, "Thumbnails", { enumerable: true, get: function () { return thumbnails_1.Thumbnails; } });
19
- const media_content_1 = require("./parts/media-content");
20
- Object.defineProperty(exports, "MediaContent", { enumerable: true, get: function () { return media_content_1.MediaContent; } });
21
19
  const media_view_1 = require("./parts/media-view");
22
20
  Object.defineProperty(exports, "MediaView", { enumerable: true, get: function () { return media_view_1.MediaView; } });
23
21
  const review_1 = require("./parts/review");
24
22
  Object.defineProperty(exports, "Review", { enumerable: true, get: function () { return review_1.Review; } });
25
23
  const product_brief_1 = require("./parts/product-brief");
26
24
  Object.defineProperty(exports, "ProductBrief", { enumerable: true, get: function () { return product_brief_1.ProductBrief; } });
25
+ const media_area_1 = require("./parts/media-area");
26
+ Object.defineProperty(exports, "MediaArea", { enumerable: true, get: function () { return media_area_1.MediaArea; } });
27
+ Object.defineProperty(exports, "MediaAreaMain", { enumerable: true, get: function () { return media_area_1.MediaAreaMain; } });
28
+ Object.defineProperty(exports, "MediaAreaAside", { enumerable: true, get: function () { return media_area_1.MediaAreaAside; } });
27
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/index.tsx"],"names":[],"mappings":";;;AAAA,qCAAwF;AA4BtF,4FA5BO,oBAAW,OA4BP;AACX,4FA7BoB,oBAAW,OA6BpB;AACX,0FA9BiC,kBAAS,OA8BjC;AACT,2FA/B4C,mBAAU,OA+B5C;AACV,4FAhCwD,oBAAW,OAgCxD;AA/Bb,mCAA+C;AAmD7C,uFAnDO,cAAM,OAmDP;AAXN,6FAxCe,oBAAY,OAwCf;AAvCd,2DAAuD;AAmDrD,8FAnDO,8BAAa,OAmDP;AAlDf,iDAA8D;AA0C5D,0FA1CO,qBAAS,OA0CP;AAzCX,mDAAiE;AAwC/D,2FAxCO,uBAAU,OAwCP;AAvCZ,yDAAwE;AA8BtE,6FA9B0B,4BAAY,OA8B1B;AA7Bd,mDAA+D;AAgC7D,0FAhCuB,sBAAS,OAgCvB;AA/BX,2CAAqD;AAyCnD,uFAzCoB,eAAM,OAyCpB;AAxCR,yDAAwE;AAyCtE,6FAzC0B,4BAAY,OAyC1B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/index.ts"],"names":[],"mappings":";;;AAAA,qCAAwF;AA0BtF,4FA1BO,oBAAW,OA0BP;AACX,4FA3BoB,oBAAW,OA2BpB;AACX,0FA5BiC,kBAAS,OA4BjC;AACT,2FA7B4C,mBAAU,OA6B5C;AACV,4FA9BwD,oBAAW,OA8BxD;AA7Bb,mCAA+C;AAmD7C,uFAnDO,cAAM,OAmDP;AAXN,6FAxCe,oBAAY,OAwCf;AAvCd,2DAAuD;AAmDrD,8FAnDO,8BAAa,OAmDP;AAlDf,iDAA8D;AA0C5D,0FA1CO,qBAAS,OA0CP;AAzCX,mDAAiE;AAwC/D,2FAxCO,uBAAU,OAwCP;AAvCZ,mDAA+E;AAiC7E,0FAjCuB,sBAAS,OAiCvB;AAhCX,2CAAqD;AA0CnD,uFA1CoB,eAAM,OA0CpB;AAzCR,yDAAwE;AA0CtE,6FA1C0B,4BAAY,OA0C1B;AAzCd,mDAA8E;AAyB5E,0FAzBO,sBAAS,OAyBP;AACT,8FA1BkB,0BAAa,OA0BlB;AACb,+FA3BiC,2BAAc,OA2BjC"}
@@ -34,10 +34,12 @@ function MediaLayout({ children }) {
34
34
  });
35
35
  const mainStyle = {
36
36
  '--vh': (_a = `${vh}px`) !== null && _a !== void 0 ? _a : '1vh',
37
- '--media-width': `${mainRect.width}px`,
38
- '--media-height': `${mainRect.height}px`,
37
+ '--media-gallery-width': `${mainRect.width}px`,
38
+ '--media-gallery-height': `${mainRect.height}px`,
39
+ '--media-view-width': `var(--media-gallery-width)`,
40
+ '--media-view-height': `var(--media-gallery-height)`,
39
41
  };
40
- return ((0, jsx_runtime_1.jsxs)("div", { className: layout_module_scss_1.default.layout, children: [header && ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: mobile, className: layout_module_scss_1.default.header, children: header })), (0, jsx_runtime_1.jsxs)(layout_1.Layout, { disabledOn: mobile, className: layout_module_scss_1.default.body, children: [aside && (0, jsx_runtime_1.jsx)("div", { className: layout_module_scss_1.default.aside, children: aside }), (0, jsx_runtime_1.jsx)("div", { ref: mainRef, className: layout_module_scss_1.default.main, style: mainStyle, children: main })] }), footer && ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: mobile, className: layout_module_scss_1.default.footer, children: (0, jsx_runtime_1.jsx)("div", { className: cx('footer-inner', aside && 'with-aside'), children: footer }) }))] }));
42
+ return ((0, jsx_runtime_1.jsxs)("div", { className: cx('layout'), children: [header && ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: mobile, className: cx('header'), children: header })), (0, jsx_runtime_1.jsxs)(layout_1.Layout, { disabledOn: mobile, className: cx('body'), children: [aside && (0, jsx_runtime_1.jsx)("div", { className: cx('aside'), children: aside }), (0, jsx_runtime_1.jsx)("div", { ref: mainRef, className: cx('main'), style: mainStyle, children: main })] }), footer && ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: mobile, className: cx('footer'), children: (0, jsx_runtime_1.jsx)("div", { className: cx('footer-inner', aside && 'with-aside'), children: footer }) }))] }));
41
43
  }
42
44
  exports.MediaLayout = MediaLayout;
43
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/layout.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmE;AACnE,8EAA0E;AAC1E,0DAAmE;AACnE,mCAA2D;AAC3D,2DAAyC;AACzC,8EAA0C;AAO1C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,4BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;;IACtD,MAAM,MAAM,GAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAW,EAAC,QAAQ,EAAE;QAC5D,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IAExC,IAAA,yBAAiB,EAAC,QAAQ,CAAC,EAAE;QAC3B,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,MAAA,GAAG,EAAE,IAAI,mCAAI,KAAK;QAC1B,eAAe,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI;QACtC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI;KACxB,CAAC;IAEnB,OAAO,CACL,iCAAK,SAAS,EAAE,4BAAM,CAAC,MAAM,aAC1B,MAAM,IAAI,CACT,uBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,4BAAM,CAAC,MAAM,YACjD,MAAM,GACA,CACV,EAED,wBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,4BAAM,CAAC,IAAI,aAC/C,KAAK,IAAI,gCAAK,SAAS,EAAE,4BAAM,CAAC,KAAK,YAAG,KAAK,GAAO,EACrD,gCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,4BAAM,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,YACxD,IAAI,GACD,IACC,EAER,MAAM,IAAI,CACT,uBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,4BAAM,CAAC,MAAM,YAClD,gCAAK,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,YAAY,CAAC,YAAG,MAAM,GAAO,GAClE,CACV,IACG,CACP,CAAC;AACJ,CAAC;AA9CD,kCA8CC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;IACtD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,kCAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EAAE,QAAQ,EAAkB;IACpD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,EAAE,QAAQ,EAAkB;IACrD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;IACtD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/layout.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmE;AACnE,8EAA0E;AAC1E,0DAAmE;AACnE,mCAA2D;AAC3D,2DAAyC;AACzC,8EAA0C;AAO1C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,4BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;;IACtD,MAAM,MAAM,GAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAW,EAAC,QAAQ,EAAE;QAC5D,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IAExC,IAAA,yBAAiB,EAAC,QAAQ,CAAC,EAAE;QAC3B,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,MAAA,GAAG,EAAE,IAAI,mCAAI,KAAK;QAC1B,uBAAuB,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI;QAC9C,wBAAwB,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI;QAChD,oBAAoB,EAAE,4BAA4B;QAClD,qBAAqB,EAAE,6BAA6B;KACpC,CAAC;IAEnB,OAAO,CACL,iCAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,aACzB,MAAM,IAAI,CACT,uBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,YAChD,MAAM,GACA,CACV,EAED,wBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,aAC9C,KAAK,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAG,KAAK,GAAO,EACpD,gCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,YACvD,IAAI,GACD,IACC,EAER,MAAM,IAAI,CACT,uBAAC,eAAM,IAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,YACjD,gCAAK,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,YAAY,CAAC,YAAG,MAAM,GAAO,GAClE,CACV,IACG,CACP,CAAC;AACJ,CAAC;AAhDD,kCAgDC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;IACtD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,kCAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EAAE,QAAQ,EAAkB;IACpD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,EAAE,QAAQ,EAAkB;IACrD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,EAAE,QAAQ,EAAkB;IACtD,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAFD,kCAEC"}
@@ -13,8 +13,6 @@
13
13
  }
14
14
 
15
15
  .main {
16
- --media-width: var(--square-size);
17
- --media-height: var(--square-size);
18
16
  display: flex;
19
17
  justify-content: center;
20
18
  flex-direction: column;