@sima-land/moleculas 16.0.0-alpha.11 → 16.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/components/media-gallery/index.d.ts +2 -0
- package/common/components/media-gallery/index.js +7 -0
- package/common/components/media-gallery/index.js.map +1 -0
- package/common/components/media-gallery/media-gallery.d.ts +16 -0
- package/common/components/media-gallery/media-gallery.js +90 -0
- package/common/components/media-gallery/media-gallery.js.map +1 -0
- package/common/components/media-gallery/media-gallery.module.scss +35 -0
- package/common/components/media-gallery/types.d.ts +12 -0
- package/common/components/media-gallery/types.js.map +1 -0
- package/common/components/media-gallery/utils.d.ts +38 -0
- package/common/components/media-gallery/utils.js +102 -0
- package/common/components/media-gallery/utils.js.map +1 -0
- package/common/components/media-modal/__mocks__/images/armchair.jpg +0 -0
- package/common/components/media-modal/__mocks__/images/cup.jpg +0 -0
- package/common/components/media-modal/__mocks__/images/plant.jpg +0 -0
- package/common/components/media-modal/__mocks__/images/stump.jpg +0 -0
- package/common/components/media-modal/__mocks__/images/table.jpg +0 -0
- package/common/components/media-modal/__mocks__/images/vase.jpg +0 -0
- package/common/components/media-modal/__mocks__/index.js +39 -19
- package/common/components/media-modal/__mocks__/index.js.map +1 -1
- package/common/components/media-modal/__mocks__/thumbnails/armchair.jpg +0 -0
- package/common/components/media-modal/__mocks__/thumbnails/cup.jpg +0 -0
- package/common/components/media-modal/__mocks__/thumbnails/plant.jpg +0 -0
- package/common/components/media-modal/__mocks__/thumbnails/stump.jpg +0 -0
- package/common/components/media-modal/__mocks__/thumbnails/table.jpg +0 -0
- package/common/components/media-modal/__mocks__/thumbnails/vase.jpg +0 -0
- package/common/components/media-modal/index.d.ts +4 -4
- package/common/components/media-modal/index.js +5 -3
- package/common/components/media-modal/index.js.map +1 -1
- package/common/components/media-modal/layout.js +5 -3
- package/common/components/media-modal/layout.js.map +1 -1
- package/common/components/media-modal/layout.module.scss +0 -2
- package/common/components/media-modal/parts/all-round-view.js +2 -2
- package/common/components/media-modal/parts/all-round-view.js.map +1 -1
- package/common/components/media-modal/parts/index.js +2 -2
- package/common/components/media-modal/parts/index.js.map +1 -1
- package/common/components/media-modal/parts/media-area.d.ts +25 -0
- package/common/components/media-modal/parts/media-area.js +61 -0
- package/common/components/media-modal/parts/media-area.js.map +1 -0
- package/common/components/media-modal/parts/media-area.module.scss +21 -0
- package/common/components/media-modal/parts/media-view.d.ts +9 -2
- package/common/components/media-modal/parts/media-view.js +6 -6
- package/common/components/media-modal/parts/media-view.js.map +1 -1
- package/common/components/media-modal/parts/media-view.module.scss +3 -3
- package/common/components/media-modal/parts/product-brief.module.scss +0 -7
- package/common/components/media-modal/parts/scroll-section.js +2 -1
- package/common/components/media-modal/parts/scroll-section.js.map +1 -1
- package/common/components/media-modal/parts/thumbnails.js +2 -1
- package/common/components/media-modal/parts/thumbnails.js.map +1 -1
- package/common/components/media-modal/types.d.ts +1 -0
- package/common/components/media-modal/utils.d.ts +0 -5
- package/common/components/media-modal/utils.js +3 -15
- package/common/components/media-modal/utils.js.map +1 -1
- package/common/hooks/index.d.ts +5 -0
- package/common/hooks/index.js +14 -1
- package/common/hooks/index.js.map +1 -1
- package/desktop/components/breadcrumbs/breadcrumbs.module.scss +36 -3
- package/desktop/components/breadcrumbs/index.js +8 -5
- package/desktop/components/breadcrumbs/index.js.map +1 -1
- package/desktop/components/gallery-modal/components/all-round-view.js +9 -4
- package/desktop/components/gallery-modal/components/all-round-view.js.map +1 -1
- package/desktop/components/product-card/index.d.ts +2 -26
- package/desktop/components/product-card/index.js +6 -67
- package/desktop/components/product-card/index.js.map +1 -1
- package/desktop/components/product-card/product-card.d.ts +26 -0
- package/desktop/components/product-card/product-card.js +88 -0
- package/desktop/components/product-card/product-card.js.map +1 -0
- package/desktop/components/product-card/types.d.ts +12 -0
- package/desktop/components/product-card/types.js +3 -0
- package/desktop/components/product-card/types.js.map +1 -0
- package/package.json +1 -2
- package/common/components/media-modal/parts/media-content.d.ts +0 -21
- package/common/components/media-modal/parts/media-content.js +0 -91
- package/common/components/media-modal/parts/media-content.js.map +0 -1
- package/common/components/media-modal/parts/media-content.module.scss +0 -42
- package/common/constants.d.ts +0 -2
- package/common/constants.js +0 -9
- package/common/constants.js.map +0 -1
- package/common/types.d.ts +0 -1
- package/common/types.js.map +0 -1
- /package/common/{types.js → components/media-gallery/types.js} +0 -0
|
@@ -8,7 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_1 = require("react");
|
|
9
9
|
const breakpoint_1 = require("@sima-land/ui-nucleons/hooks/breakpoint");
|
|
10
10
|
const all_round_view_1 = require("../../../../desktop/components/gallery-modal/components/all-round-view");
|
|
11
|
-
const
|
|
11
|
+
const hooks_1 = require("../../../../common/hooks");
|
|
12
12
|
const TouchScrollX_1 = __importDefault(require("@sima-land/ui-quarks/icons/64x64/Colorful/TouchScrollX"));
|
|
13
13
|
const all_round_view_module_scss_1 = __importDefault(require("./all-round-view.module.scss"));
|
|
14
14
|
/**
|
|
@@ -17,7 +17,7 @@ const all_round_view_module_scss_1 = __importDefault(require("./all-round-view.m
|
|
|
17
17
|
* @return Элемент.
|
|
18
18
|
*/
|
|
19
19
|
function AllRoundView(props) {
|
|
20
|
-
const mounted = (0,
|
|
20
|
+
const mounted = (0, hooks_1.useMounted)();
|
|
21
21
|
const desktop = (0, breakpoint_1.useBreakpoint)('xs+');
|
|
22
22
|
if (!mounted) {
|
|
23
23
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-round-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/all-round-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA8C;AAC9C,wEAAwE;AACxE,2GAIgF;AAChF,
|
|
1
|
+
{"version":3,"file":"all-round-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/all-round-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA8C;AAC9C,wEAAwE;AACxE,2GAIgF;AAChF,oDAAsD;AACtD,0GAA8E;AAC9E,8FAAkD;AAElD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,OAAO,uBAAC,UAAU,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,GAAI,CAAC;AACrD,CAAC;AATD,oCASC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAA4C;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAY,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,iCAAK,SAAS,EAAE,oCAAM,CAAC,IAAI,aACxB,CAAC,OAAO,IAAI,QAAQ,IAAI,CACvB,gCAAK,SAAS,EAAE,oCAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,YAC1D,uBAAC,sBAAQ,KAAG,GACR,CACP,EAED,uBAAC,6BAAgB,OAAK,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,GAAI,IACrF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const layout_1 = require("@sima-land/ui-nucleons/layout");
|
|
9
9
|
const define_slots_1 = require("@sima-land/ui-nucleons/helpers/define-slots");
|
|
10
10
|
const breakpoint_1 = require("@sima-land/ui-nucleons/hooks/breakpoint");
|
|
11
|
-
const
|
|
11
|
+
const hooks_1 = require("../../../../common/hooks");
|
|
12
12
|
const scroll_section_1 = require("./scroll-section");
|
|
13
13
|
const Left_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/Arrows/Left"));
|
|
14
14
|
const parts_module_scss_1 = __importDefault(require("./parts.module.scss"));
|
|
@@ -32,7 +32,7 @@ exports.Preset = {
|
|
|
32
32
|
* @return Элемент.
|
|
33
33
|
*/
|
|
34
34
|
function HeaderLayout({ children }) {
|
|
35
|
-
const mounted = (0,
|
|
35
|
+
const mounted = (0, hooks_1.useMounted)();
|
|
36
36
|
const desktop = (0, breakpoint_1.useBreakpoint)('xs+');
|
|
37
37
|
const { tabs, button } = (0, define_slots_1.defineSlots)(children, {
|
|
38
38
|
tabs: HeaderLayoutTabs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/index.tsx"],"names":[],"mappings":";;;;;;;AACA,0DAAuD;AAGvD,8EAA0E;AAC1E,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/index.tsx"],"names":[],"mappings":";;;;;;;AACA,0DAAuD;AAGvD,8EAA0E;AAC1E,wEAAwE;AACxE,oDAAsD;AACtD,qDAAiD;AACjD,gGAA2E;AAC3E,4EAAyC;AAE5B,QAAA,MAAM,GAAG;IACpB,UAAU,EAAE,CAAC,SAAqB,EAAa,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,iBAAiB;QACvB,GAAG,SAAS;KACb,CAAC;IAEF,YAAY,EAAE,CAAC,SAA2B,EAAmB,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,cAAO;QAClB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,2BAAM,CAAC,eAAe,CAAC;QAClC,QAAQ,EAAE,8BAA8B;QACxC,GAAG,SAAS;KACb,CAAC;CACM,CAAC;AAEX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAAE,QAAQ,EAA4B;IACjE,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;IAErC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAW,EAAC,QAAQ,EAAE;QAC7C,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,gCAAK,SAAS,EAAE,2BAAM,CAAC,eAAe,CAAC,GAAQ,CAAC;KACxD;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,2BAAM,CAAC,eAAe,CAAC,aACpC,CAAC,OAAO,IAAI,CACX,6DACG,IAAI,IAAI,uBAAC,8BAAa,cAAE,IAAI,GAAiB,EAC7C,MAAM,IAAI,uBAAC,eAAM,cAAE,MAAM,GAAU,IACnC,CACJ,EAEA,OAAO,IAAI,CACV,6DACG,IAAI,EACJ,MAAM,IACN,CACJ,IACG,CACP,CAAC;AACJ,CAAC;AA9BD,oCA8BC;AAED,YAAY,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACrC,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAAC;AAEzC;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAA4B;IAC9D,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EAAE,QAAQ,EAA4B;IAChE,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Формирует ограничения высоты и ширины для вывода меда контента по гайдам.
|
|
4
|
+
* @param props Свойства.
|
|
5
|
+
* @return Элемент.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MediaArea({ children }: {
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Центральная часть зоны для медиа.
|
|
12
|
+
* @param props Свойства.
|
|
13
|
+
* @return Элемент.
|
|
14
|
+
*/
|
|
15
|
+
export declare function MediaAreaMain({ children }: {
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Боковая часть зоны для медиа.
|
|
20
|
+
* @param props Свойства.
|
|
21
|
+
* @return Элемент.
|
|
22
|
+
*/
|
|
23
|
+
export declare function MediaAreaAside({ children }: {
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,61 @@
|
|
|
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.MediaAreaAside = exports.MediaAreaMain = exports.MediaArea = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const layout_1 = require("@sima-land/ui-nucleons/layout");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const bind_1 = __importDefault(require("classnames/bind"));
|
|
12
|
+
const media_area_module_scss_1 = __importDefault(require("./media-area.module.scss"));
|
|
13
|
+
const cx = bind_1.default.bind(media_area_module_scss_1.default);
|
|
14
|
+
/**
|
|
15
|
+
* Формирует ограничения высоты и ширины для вывода меда контента по гайдам.
|
|
16
|
+
* @param props Свойства.
|
|
17
|
+
* @return Элемент.
|
|
18
|
+
*/
|
|
19
|
+
function MediaArea({ children }) {
|
|
20
|
+
const ref = (0, react_1.useRef)(null);
|
|
21
|
+
const rect = (0, utils_1.useClientRect)(ref);
|
|
22
|
+
const style = rect.ready
|
|
23
|
+
? {
|
|
24
|
+
'--media-gallery-width': `${rect.width}px`,
|
|
25
|
+
'--media-gallery-height': `${rect.height}px`,
|
|
26
|
+
'--media-view-width': `var(--media-gallery-width)`,
|
|
27
|
+
'--media-view-height': `var(--media-gallery-height)`,
|
|
28
|
+
}
|
|
29
|
+
: undefined;
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(layout_1.Layout, { rootRef: ref, disabledOn: ['mxs', 'ms', 'xs', 's', 'm', 'l', 'xl'], className: cx('root'), style: style, children: children }));
|
|
31
|
+
}
|
|
32
|
+
exports.MediaArea = MediaArea;
|
|
33
|
+
/**
|
|
34
|
+
* Центральная часть зоны для медиа.
|
|
35
|
+
* @param props Свойства.
|
|
36
|
+
* @return Элемент.
|
|
37
|
+
*/
|
|
38
|
+
function MediaAreaMain({ children }) {
|
|
39
|
+
const ref = (0, react_1.useRef)(null);
|
|
40
|
+
const rect = (0, utils_1.useClientRect)(ref);
|
|
41
|
+
const style = rect.ready
|
|
42
|
+
? {
|
|
43
|
+
'--media-gallery-width': `${rect.width}px`,
|
|
44
|
+
'--media-gallery-height': `${rect.height}px`,
|
|
45
|
+
'--media-view-width': `var(--media-gallery-width)`,
|
|
46
|
+
'--media-view-height': `var(--media-gallery-height)`,
|
|
47
|
+
}
|
|
48
|
+
: undefined;
|
|
49
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: cx('main'), style: style, children: children }));
|
|
50
|
+
}
|
|
51
|
+
exports.MediaAreaMain = MediaAreaMain;
|
|
52
|
+
/**
|
|
53
|
+
* Боковая часть зоны для медиа.
|
|
54
|
+
* @param props Свойства.
|
|
55
|
+
* @return Элемент.
|
|
56
|
+
*/
|
|
57
|
+
function MediaAreaAside({ children }) {
|
|
58
|
+
return (0, jsx_runtime_1.jsx)("div", { className: cx('aside'), children: children });
|
|
59
|
+
}
|
|
60
|
+
exports.MediaAreaAside = MediaAreaAside;
|
|
61
|
+
//# sourceMappingURL=media-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-area.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/media-area.tsx"],"names":[],"mappings":";;;;;;;AAAA,0DAAuD;AACvD,iCAAyD;AACzD,oCAAyC;AACzC,2DAAyC;AACzC,sFAA8C;AAE9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EAAE,QAAQ,EAA4B;IAC9D,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACtB,CAAC,CAAE;YACC,uBAAuB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;YAC1C,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;YAC5C,oBAAoB,EAAE,4BAA4B;YAClD,qBAAqB,EAAE,6BAA6B;SACnC;QACrB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,uBAAC,eAAM,IACL,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EACpD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EACrB,KAAK,EAAE,KAAK,YAEX,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAvBD,8BAuBC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAClE,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACtB,CAAC,CAAE;YACC,uBAAuB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;YAC1C,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;YAC5C,oBAAoB,EAAE,4BAA4B;YAClD,qBAAqB,EAAE,6BAA6B;SACnC;QACrB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,gCAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,YAC/C,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAlBD,sCAkBC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,EAAE,QAAQ,EAA4B;IACnE,OAAO,gCAAK,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAG,QAAQ,GAAO,CAAC;AACvD,CAAC;AAFD,wCAEC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
position: relative;
|
|
3
|
+
flex-grow: 1;
|
|
4
|
+
height: max(50vh, 240px);
|
|
5
|
+
display: flex;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.aside + .main,
|
|
9
|
+
.main + .aside {
|
|
10
|
+
margin-left: 24px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.main {
|
|
14
|
+
flex-grow: 1;
|
|
15
|
+
position: relative;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.aside {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import { VideoHTMLAttributes } from 'react';
|
|
1
|
+
import { CSSProperties, Ref, VideoHTMLAttributes } from 'react';
|
|
2
2
|
import { MediaData } from '../types';
|
|
3
|
+
export interface MediaViewStyle extends CSSProperties {
|
|
4
|
+
'--media-view-width'?: string;
|
|
5
|
+
'--media-view-height'?: string;
|
|
6
|
+
}
|
|
3
7
|
export interface MediaViewProps {
|
|
8
|
+
rootRef?: Ref<HTMLDivElement>;
|
|
4
9
|
media?: MediaData;
|
|
5
10
|
loading?: boolean;
|
|
6
11
|
videoProps?: VideoHTMLAttributes<HTMLVideoElement>;
|
|
12
|
+
style?: MediaViewStyle;
|
|
13
|
+
className?: string;
|
|
7
14
|
}
|
|
8
15
|
/**
|
|
9
16
|
* Отображает медиа-контент - 360, видео или изображение.
|
|
10
17
|
* @param props Свойства.
|
|
11
18
|
* @return Элемент.
|
|
12
19
|
*/
|
|
13
|
-
export declare function MediaView({ media, loading, videoProps }: MediaViewProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function MediaView({ media, loading, videoProps, style, className, rootRef, }: MediaViewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MediaView = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = require("react");
|
|
9
|
-
const image_overlay_1 = require("../../../../desktop/components/gallery-modal/components/image-overlay");
|
|
10
9
|
const breakpoint_1 = require("@sima-land/ui-nucleons/hooks/breakpoint");
|
|
11
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
12
10
|
const all_round_view_1 = require("./all-round-view");
|
|
13
|
-
const media_view_module_scss_1 = __importDefault(require("./media-view.module.scss"));
|
|
14
11
|
const hooks_1 = require("../../../hooks");
|
|
15
12
|
const img_stub_1 = require("../../img-stub");
|
|
13
|
+
const bind_1 = __importDefault(require("classnames/bind"));
|
|
14
|
+
const media_view_module_scss_1 = __importDefault(require("./media-view.module.scss"));
|
|
15
|
+
const cx = bind_1.default.bind(media_view_module_scss_1.default);
|
|
16
16
|
/**
|
|
17
17
|
* Отображает медиа-контент - 360, видео или изображение.
|
|
18
18
|
* @param props Свойства.
|
|
19
19
|
* @return Элемент.
|
|
20
20
|
*/
|
|
21
|
-
function MediaView({ media, loading, videoProps }) {
|
|
21
|
+
function MediaView({ media, loading, videoProps, style, className, rootRef, }) {
|
|
22
22
|
const desktop = (0, breakpoint_1.useBreakpoint)('xs+');
|
|
23
23
|
let imageSrc = undefined;
|
|
24
24
|
if ((media === null || media === void 0 ? void 0 : media.type) === 'image') {
|
|
@@ -38,9 +38,9 @@ function MediaView({ media, loading, videoProps }) {
|
|
|
38
38
|
}
|
|
39
39
|
}, [loading, videoSrc]);
|
|
40
40
|
if (loading) {
|
|
41
|
-
return (0, jsx_runtime_1.jsx)("div", {
|
|
41
|
+
return (0, jsx_runtime_1.jsx)("div", { ref: rootRef, className: cx('root', 'loading') });
|
|
42
42
|
}
|
|
43
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: rootRef, className: cx('root', className), style: style, children: [(media === null || media === void 0 ? void 0 : media.type) === 'image' && ((0, jsx_runtime_1.jsxs)("div", { className: cx('image'), children: [failed && (0, jsx_runtime_1.jsx)(img_stub_1.ImgStub, { className: media_view_module_scss_1.default.stub }), !failed && (0, jsx_runtime_1.jsx)("img", { src: media.data.src, alt: media.data.alt || '', onError: handleError })] })), (media === null || media === void 0 ? void 0 : media.type) === 'video' && ((0, jsx_runtime_1.jsx)("video", { autoPlay: false, controls: true, controlsList: 'nodownload', ...videoProps, ref: videoRef, children: (0, jsx_runtime_1.jsx)("source", { src: media.data.src }) })), (media === null || media === void 0 ? void 0 : media.type) === '360' && (0, jsx_runtime_1.jsx)(all_round_view_1.AllRoundView, { photos: media.data.photos, controls: desktop })] }));
|
|
44
44
|
}
|
|
45
45
|
exports.MediaView = MediaView;
|
|
46
46
|
//# sourceMappingURL=media-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/media-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"media-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/media-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmF;AAEnF,wEAAwE;AACxE,qDAAgD;AAChD,0CAA8C;AAC9C,6CAAyC;AACzC,2DAAyC;AACzC,sFAA8C;AAgB9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EACxB,KAAK,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,SAAS,EACT,OAAO,GACQ;IACf,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;IACrC,IAAI,QAAQ,GAAuB,SAAS,CAAC;IAE7C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,EAAE;QAC3B,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3B;SAAM,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,EAAE;QAClC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;KACjC;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,8FAA8F;QAC9F,IAAI,QAAQ,EAAE;YACZ,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;SAC1B;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,EAAE;QACX,OAAO,gCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAQ,CAAC;KACpE;IAED,OAAO,CACL,iCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,aAC9D,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,IAAI,CAC1B,iCAAK,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aACxB,MAAM,IAAI,uBAAC,kBAAO,IAAC,SAAS,EAAE,gCAAM,CAAC,IAAI,GAAI,EAC7C,CAAC,MAAM,IAAI,gCAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,GAAI,IACrF,CACP,EAEA,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,IAAI,CAC1B,kCAAO,QAAQ,EAAE,KAAK,EAAE,QAAQ,QAAC,YAAY,EAAC,YAAY,KAAK,UAAU,EAAE,GAAG,EAAE,QAAQ,YACtF,mCAAQ,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAI,GACzB,CACT,EAEA,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,KAAK,IAAI,uBAAC,6BAAY,IAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAI,IACpF,CACP,CAAC;AACJ,CAAC;AAnDD,8BAmDC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
@use 'node_modules/@sima-land/ui-nucleons/colors';
|
|
2
2
|
|
|
3
3
|
.root {
|
|
4
|
-
width: var(--media-width, 320px);
|
|
5
|
-
height: var(--media-height, 240px);
|
|
6
4
|
position: absolute;
|
|
5
|
+
width: var(--media-view-width, 320px);
|
|
6
|
+
height: var(--media-view-height, 240px);
|
|
7
7
|
display: flex;
|
|
8
8
|
align-items: center;
|
|
9
9
|
justify-content: center;
|
|
10
10
|
&.loading {
|
|
11
11
|
background: colors.$basic-gray4;
|
|
12
12
|
}
|
|
13
|
-
--all-round-view-size: min(var(--media-width), var(--media-height));
|
|
13
|
+
--all-round-view-size: min(var(--media-view-width, 320px), var(--media-view-height, 240px));
|
|
14
14
|
video,
|
|
15
15
|
.image {
|
|
16
16
|
position: absolute;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ScrollSection = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const layout_1 = require("@sima-land/ui-nucleons/layout");
|
|
9
|
+
const page_scroll_lock_1 = require("@sima-land/ui-nucleons/_internal/page-scroll-lock");
|
|
9
10
|
const scroll_section_module_scss_1 = __importDefault(require("./scroll-section.module.scss"));
|
|
10
11
|
/**
|
|
11
12
|
* Секция с прокруткой по горизонтали по дизайн-гайдам.
|
|
@@ -13,7 +14,7 @@ const scroll_section_module_scss_1 = __importDefault(require("./scroll-section.m
|
|
|
13
14
|
* @return Элемент.
|
|
14
15
|
*/
|
|
15
16
|
function ScrollSection({ children, scrollRef, contentRef, }) {
|
|
16
|
-
return ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: ['mxs', 'ms'], children: (0, jsx_runtime_1.jsxs)("div", { ref: scrollRef, className: scroll_section_module_scss_1.default.inner, children: [(0, jsx_runtime_1.jsx)("div", { className: scroll_section_module_scss_1.default.gutter }), (0, jsx_runtime_1.jsx)("div", { ref: contentRef, className: scroll_section_module_scss_1.default.content, children: children }), (0, jsx_runtime_1.jsx)("div", { className: scroll_section_module_scss_1.default.gutter })] }) }));
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(layout_1.Layout, { disabledOn: ['mxs', 'ms'], children: (0, jsx_runtime_1.jsxs)("div", { ref: scrollRef, className: scroll_section_module_scss_1.default.inner, ...{ [page_scroll_lock_1.BSL_IGNORE_ATTR]: true }, children: [(0, jsx_runtime_1.jsx)("div", { className: scroll_section_module_scss_1.default.gutter }), (0, jsx_runtime_1.jsx)("div", { ref: contentRef, className: scroll_section_module_scss_1.default.content, children: children }), (0, jsx_runtime_1.jsx)("div", { className: scroll_section_module_scss_1.default.gutter })] }) }));
|
|
17
18
|
}
|
|
18
19
|
exports.ScrollSection = ScrollSection;
|
|
19
20
|
//# sourceMappingURL=scroll-section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-section.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/scroll-section.tsx"],"names":[],"mappings":";;;;;;;AAAA,0DAAuD;AAEvD,8FAAkD;AAElD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,UAAU,GAKX;IACC,OAAO,CACL,uBAAC,eAAM,IAAC,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,YAC/B,iCAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,oCAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"scroll-section.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/scroll-section.tsx"],"names":[],"mappings":";;;;;;;AAAA,0DAAuD;AAEvD,wFAAoF;AACpF,8FAAkD;AAElD;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,UAAU,GAKX;IACC,OAAO,CACL,uBAAC,eAAM,IAAC,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,YAC/B,iCAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,oCAAM,CAAC,KAAK,KAAM,EAAE,CAAC,kCAAe,CAAC,EAAE,IAAI,EAAE,aAC3E,gCAAK,SAAS,EAAE,oCAAM,CAAC,MAAM,GAAI,EACjC,gCAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,oCAAM,CAAC,OAAO,YAC5C,QAAQ,GACL,EACN,gCAAK,SAAS,EAAE,oCAAM,CAAC,MAAM,GAAI,IAC7B,GACC,CACV,CAAC;AACJ,CAAC;AApBD,sCAoBC"}
|
|
@@ -8,6 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_1 = require("react");
|
|
9
9
|
const breakpoint_1 = require("@sima-land/ui-nucleons/hooks/breakpoint");
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
|
+
const hooks_1 = require("../../../../common/hooks");
|
|
11
12
|
const scroll_section_1 = require("./scroll-section");
|
|
12
13
|
const thumbnail_1 = require("./thumbnail");
|
|
13
14
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
@@ -19,7 +20,7 @@ const cx = bind_1.default.bind(thumbnails_module_scss_1.default);
|
|
|
19
20
|
* @return Элемент.
|
|
20
21
|
*/
|
|
21
22
|
function Thumbnails({ children, targetIndex, ...rest }) {
|
|
22
|
-
const mounted = (0,
|
|
23
|
+
const mounted = (0, hooks_1.useMounted)();
|
|
23
24
|
const desktop = (0, breakpoint_1.useBreakpoint)('xs+');
|
|
24
25
|
const scrollRef = (0, react_1.useRef)(null);
|
|
25
26
|
const contentRef = (0, react_1.useRef)(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnails.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/thumbnails.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAqD;AACrD,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"thumbnails.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/thumbnails.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAqD;AACrD,wEAAwE;AACxE,oCAAiC;AACjC,oDAAsD;AACtD,qDAAiD;AACjD,2CAA8D;AAC9D,2DAAyC;AACzC,sFAA8C;AAQ9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,EAAmB;IAC5E,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QAEjC,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,CAAC,EAAE;YAC3D,OAAO;SACR;QAED,MAAM,MAAM,GAAG,OAAO;YACpB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,SAAS,IAAI,aAAK,CAAC,gBAAgB,CACxC,aAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAC9B,aAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAC/B,CAAC;SACH;aAAM;YACL,MAAM,WAAW,GAAG,aAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAErD,MAAM,CAAC,UAAU,IAAI,aAAK,CAAC,gBAAgB,CACzC;gBACE,sDAAsD;gBACtD,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,EAAE;gBAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE;aAChC,EACD,aAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CACjC,CAAC;SACH;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,CACL,uBAAC,4BAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,YACtD,uBAAC,8BAAa,IAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,YACxD,QAAQ,GACK,GACU,CAC7B,CAAC;KACH;IAED,OAAO,CACL,uBAAC,4BAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,YACtD,gCAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,YAC/C,QAAQ,GACL,GACoB,CAC7B,CAAC;AACJ,CAAC;AA7DD,gCA6DC"}
|
|
@@ -35,11 +35,6 @@ export declare function useClientRect(ref: RefObject<HTMLElement>): {
|
|
|
35
35
|
width: number;
|
|
36
36
|
height: number;
|
|
37
37
|
};
|
|
38
|
-
/**
|
|
39
|
-
* Возвращает true если компонент смонтирован.
|
|
40
|
-
* @return True если компонент смонтирован.
|
|
41
|
-
*/
|
|
42
|
-
export declare function useMounted(): boolean;
|
|
43
38
|
/**
|
|
44
39
|
* Хук получения доступа к visualViewport.
|
|
45
40
|
* @param handle Получит visualViewport.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useVisualViewport = exports.
|
|
3
|
+
exports.useVisualViewport = exports.useClientRect = exports.Range = void 0;
|
|
4
|
+
const hooks_1 = require("@sima-land/ui-nucleons/hooks");
|
|
4
5
|
const identity_1 = require("@sima-land/ui-nucleons/hooks/identity");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
/** Диапазон. */
|
|
@@ -58,7 +59,7 @@ function useClientRect(ref) {
|
|
|
58
59
|
width: 0,
|
|
59
60
|
height: 0,
|
|
60
61
|
}));
|
|
61
|
-
(0,
|
|
62
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
62
63
|
if (ref.current) {
|
|
63
64
|
const element = ref.current;
|
|
64
65
|
setRect({
|
|
@@ -80,19 +81,6 @@ function useClientRect(ref) {
|
|
|
80
81
|
return rect;
|
|
81
82
|
}
|
|
82
83
|
exports.useClientRect = useClientRect;
|
|
83
|
-
/**
|
|
84
|
-
* Возвращает true если компонент смонтирован.
|
|
85
|
-
* @return True если компонент смонтирован.
|
|
86
|
-
*/
|
|
87
|
-
function useMounted() {
|
|
88
|
-
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
89
|
-
(0, react_1.useEffect)(() => {
|
|
90
|
-
setMounted(true);
|
|
91
|
-
return () => setMounted(false);
|
|
92
|
-
}, []);
|
|
93
|
-
return mounted;
|
|
94
|
-
}
|
|
95
|
-
exports.useMounted = useMounted;
|
|
96
84
|
/**
|
|
97
85
|
* Хук получения доступа к visualViewport.
|
|
98
86
|
* @param handle Получит visualViewport.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/utils.ts"],"names":[],"mappings":";;;AAAA,oEAAuE;AACvE,iCAAuD;AAOvD,gBAAgB;AAChB,MAAa,KAAK;IAChB;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,EAAW;QACjC,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAExC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,EAAW;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QAExC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,MAAM,EAAE,IAAI,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAY,EAAE,MAAa;QACjD,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;YAChC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;SACvC;aAAM,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YACrC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;SACxC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA9CD,sBA8CC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAA2B;IACvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAoD,GAAG,EAAE,CAAC,CAAC;QACzF,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV,CAAC,CAAC,CAAC;IAEJ,IAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/common/components/media-modal/utils.ts"],"names":[],"mappings":"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"}
|
package/common/hooks/index.d.ts
CHANGED
|
@@ -12,3 +12,8 @@ export declare function useImageStub(src?: string, onError?: ReactEventHandler<H
|
|
|
12
12
|
setFailed: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
13
13
|
handleError: ReactEventHandler<HTMLImageElement>;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Возвращает true если компонент смонтирован.
|
|
17
|
+
* @return True если компонент смонтирован.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useMounted(): boolean;
|
package/common/hooks/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useImageStub = void 0;
|
|
3
|
+
exports.useMounted = exports.useImageStub = void 0;
|
|
4
4
|
const hooks_1 = require("@sima-land/ui-nucleons/hooks");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
/**
|
|
@@ -23,4 +23,17 @@ function useImageStub(src, onError) {
|
|
|
23
23
|
return { failed, setFailed, handleError };
|
|
24
24
|
}
|
|
25
25
|
exports.useImageStub = useImageStub;
|
|
26
|
+
/**
|
|
27
|
+
* Возвращает true если компонент смонтирован.
|
|
28
|
+
* @return True если компонент смонтирован.
|
|
29
|
+
*/
|
|
30
|
+
function useMounted() {
|
|
31
|
+
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
32
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
33
|
+
setMounted(true);
|
|
34
|
+
return () => setMounted(false);
|
|
35
|
+
}, []);
|
|
36
|
+
return mounted;
|
|
37
|
+
}
|
|
38
|
+
exports.useMounted = useMounted;
|
|
26
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/hooks/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyE;AACzE,iCAAiE;AAEjE;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,GAAY,EAAE,OAA6C;IACtF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,IAAA,iCAAyB,EAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAhBD,oCAgBC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/hooks/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyE;AACzE,iCAAiE;AAEjE;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,GAAY,EAAE,OAA6C;IACtF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5C,IAAA,iCAAyB,EAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAhBD,oCAgBC;AAED;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE9C,IAAA,iCAAyB,EAAC,GAAG,EAAE;QAC7B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC;AACjB,CAAC;AATD,gCASC"}
|
|
@@ -25,17 +25,50 @@ $line-gutter: 12px;
|
|
|
25
25
|
&:not(:last-child)::after {
|
|
26
26
|
content: '/';
|
|
27
27
|
display: block;
|
|
28
|
-
margin: 0
|
|
28
|
+
margin: 0 8px;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.breadcrumb-name {
|
|
33
|
+
position: relative;
|
|
34
|
+
&::before {
|
|
35
|
+
content: '';
|
|
36
|
+
display: block;
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: -4px;
|
|
39
|
+
bottom: -4px;
|
|
40
|
+
left: 0;
|
|
41
|
+
right: 0;
|
|
42
|
+
}
|
|
43
|
+
&.with-siblings::before {
|
|
44
|
+
right: -2px;
|
|
45
|
+
}
|
|
46
|
+
&:not(.with-siblings)::before {
|
|
47
|
+
right: -8px;
|
|
29
48
|
}
|
|
30
49
|
}
|
|
31
50
|
|
|
32
51
|
.toggle-icon {
|
|
33
|
-
|
|
34
|
-
|
|
52
|
+
position: relative;
|
|
53
|
+
margin-left: 2px;
|
|
54
|
+
stroke: colors.$basic-gray87;
|
|
35
55
|
display: block;
|
|
36
56
|
cursor: pointer;
|
|
37
57
|
&.close {
|
|
38
58
|
transform: scaleY(-1);
|
|
59
|
+
stroke: colors.$basic-gray38;
|
|
60
|
+
}
|
|
61
|
+
&::before {
|
|
62
|
+
content: '';
|
|
63
|
+
display: block;
|
|
64
|
+
position: absolute;
|
|
65
|
+
top: -4px;
|
|
66
|
+
bottom: -4px;
|
|
67
|
+
left: 0;
|
|
68
|
+
right: -8px;
|
|
69
|
+
}
|
|
70
|
+
> svg {
|
|
71
|
+
display: block;
|
|
39
72
|
}
|
|
40
73
|
}
|
|
41
74
|
|
|
@@ -12,9 +12,12 @@ const link_1 = require("@sima-land/ui-nucleons/link");
|
|
|
12
12
|
const lodash_1 = require("lodash");
|
|
13
13
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
14
14
|
const breadcrumbs_module_scss_1 = __importDefault(require("./breadcrumbs.module.scss"));
|
|
15
|
-
const DownSquare_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/Arrows/DownSquare"));
|
|
16
15
|
const on_1 = __importDefault(require("@sima-land/ui-nucleons/helpers/on"));
|
|
17
16
|
const cx = bind_1.default.bind(breadcrumbs_module_scss_1.default);
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
function DownSVG(props) {
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none', ...props, children: (0, jsx_runtime_1.jsx)("path", { d: 'M4 6L8 10L12 6', strokeLinecap: 'round', strokeLinejoin: 'round' }) }));
|
|
20
|
+
}
|
|
18
21
|
/**
|
|
19
22
|
* Список "хлебных крошек".
|
|
20
23
|
* @param props Свойства.
|
|
@@ -37,15 +40,15 @@ const Breadcrumb = ({ data, onSiblingsPopupOpen, isSiblingActive, }) => {
|
|
|
37
40
|
return (0, on_1.default)(window, 'mousedown', togglePopup.bind(null, false));
|
|
38
41
|
}
|
|
39
42
|
}, [withPopup]);
|
|
40
|
-
const selfName = ((0, jsx_runtime_1.jsx)(link_1.Link, { color: 'basic-gray87', href: data.url, pseudo: !data.url, children: data.name }));
|
|
41
|
-
return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": 'breadcrumb', className: cx('breadcrumb'), children: [selfName, data.siblings && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(
|
|
43
|
+
const selfName = ((0, jsx_runtime_1.jsx)(link_1.Link, { color: 'basic-gray87', href: data.url, pseudo: !data.url, className: cx('breadcrumb-name', data.siblings && 'with-siblings'), children: data.name }));
|
|
44
|
+
return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": 'breadcrumb', className: cx('breadcrumb'), children: [selfName, data.siblings && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { "data-testid": 'breadcrumb:siblings-opener', className: cx('toggle-icon'), onClick: () => {
|
|
42
45
|
togglePopup(true);
|
|
43
46
|
onSiblingsPopupOpen();
|
|
44
|
-
} }), (0, jsx_runtime_1.jsx)(CSSTransition_1.default, { in: withPopup, timeout: 200, unmountOnExit: true, classNames: {
|
|
47
|
+
}, children: (0, jsx_runtime_1.jsx)(DownSVG, {}) }), (0, jsx_runtime_1.jsx)(CSSTransition_1.default, { in: withPopup, timeout: 200, unmountOnExit: true, classNames: {
|
|
45
48
|
enter: cx('fade-enter'),
|
|
46
49
|
enterActive: cx('fade-enter-active'),
|
|
47
50
|
exit: cx('fade-exit'),
|
|
48
51
|
exitActive: cx('fade-exit-active'),
|
|
49
|
-
}, children: (0, jsx_runtime_1.jsxs)(plate_1.Plate, { ref: popupRef, shadow: 'z3', rounds: 'm', className: cx('popup'), children: [(0, jsx_runtime_1.jsxs)("div", { className: cx('popup-header'), children: [selfName, (0, jsx_runtime_1.jsx)(
|
|
52
|
+
}, children: (0, jsx_runtime_1.jsxs)(plate_1.Plate, { ref: popupRef, shadow: 'z3', rounds: 'm', className: cx('popup'), children: [(0, jsx_runtime_1.jsxs)("div", { className: cx('popup-header'), children: [selfName, (0, jsx_runtime_1.jsx)("span", { "data-testid": 'breadcrumb:siblings-closer', className: cx('toggle-icon', 'close'), onClick: () => togglePopup(false), children: (0, jsx_runtime_1.jsx)(DownSVG, {}) })] }), (0, jsx_runtime_1.jsxs)("ul", { className: cx('siblings'), children: [data.siblings.state === 'fetching' && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, lodash_1.times)(8).map(index => ((0, jsx_runtime_1.jsx)("div", { className: cx('sibling-placeholder') }, index))) })), data.siblings.state === 'ready' && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (_a = data.siblings.data) === null || _a === void 0 ? void 0 : _a.map((sibling, index) => ((0, jsx_runtime_1.jsx)("li", { className: cx('sibling'), "data-testid": 'breadcrumb-sibling', children: isSiblingActive(sibling) ? ((0, jsx_runtime_1.jsx)("span", { className: cx('active'), children: sibling.name })) : ((0, jsx_runtime_1.jsx)(link_1.Link, { color: 'basic-gray87', className: cx('link'), href: sibling.url, children: sibling.name })) }, index))) }))] })] }) })] }))] }));
|
|
50
53
|
};
|
|
51
54
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/desktop/components/breadcrumbs/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/desktop/components/breadcrumbs/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_1 = require("react");
|
|
9
9
|
const identity_1 = require("@sima-land/ui-nucleons/hooks/identity");
|
|
10
10
|
const with_hint_1 = require("@sima-land/ui-nucleons/with-hint");
|
|
11
|
-
const on_1 =
|
|
11
|
+
const on_1 = require("@sima-land/ui-nucleons/helpers/on");
|
|
12
12
|
const utils_1 = require("../utils");
|
|
13
13
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
14
14
|
const all_round_view_module_scss_1 = __importDefault(require("./all-round-view.module.scss"));
|
|
@@ -57,8 +57,13 @@ const AllRoundView = ({ photos, controls = true, state: stateProp = 'autoplay',
|
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
const offList = [
|
|
60
|
-
(0, on_1.
|
|
60
|
+
(0, on_1.on)(image, 'pointerdown', e => {
|
|
61
61
|
e.preventDefault();
|
|
62
|
+
e.stopPropagation();
|
|
63
|
+
// ВАЖНО: preventDefault предотвращает расфокусировку полей ввода - форсируем
|
|
64
|
+
if (document.activeElement instanceof HTMLElement) {
|
|
65
|
+
document.activeElement.blur();
|
|
66
|
+
}
|
|
62
67
|
setState('default');
|
|
63
68
|
const imageLeft = image.getBoundingClientRect().left;
|
|
64
69
|
image.style.touchAction = 'none';
|
|
@@ -67,7 +72,7 @@ const AllRoundView = ({ photos, controls = true, state: stateProp = 'autoplay',
|
|
|
67
72
|
index: indexRef.current,
|
|
68
73
|
};
|
|
69
74
|
}),
|
|
70
|
-
(0, on_1.
|
|
75
|
+
(0, on_1.on)(window, 'pointermove', e => {
|
|
71
76
|
if (dragStartRef.current !== null) {
|
|
72
77
|
const imageWidth = image.clientWidth;
|
|
73
78
|
const imageLeft = image.getBoundingClientRect().left;
|
|
@@ -79,7 +84,7 @@ const AllRoundView = ({ photos, controls = true, state: stateProp = 'autoplay',
|
|
|
79
84
|
setIndex(nextIndex);
|
|
80
85
|
}
|
|
81
86
|
}),
|
|
82
|
-
(0, on_1.
|
|
87
|
+
(0, on_1.on)(window, 'pointerup', () => {
|
|
83
88
|
dragStartRef.current = null;
|
|
84
89
|
image.style.touchAction = '';
|
|
85
90
|
}),
|