@webitch/short-player 0.1.2 → 0.1.3

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 (75) hide show
  1. package/dist/app/layout.js +23 -0
  2. package/dist/app/layout.js.map +1 -0
  3. package/dist/app/page.js +19 -0
  4. package/dist/app/page.js.map +1 -0
  5. package/dist/component/index.d.ts +1 -1
  6. package/dist/component/index.d.ts.map +1 -1
  7. package/dist/component/index.js +64 -0
  8. package/dist/component/index.js.map +1 -0
  9. package/dist/entites/PlayBtn/ui/index.js +23 -0
  10. package/dist/entites/PlayBtn/ui/index.js.map +1 -0
  11. package/dist/entites/ProgressBar/index.js +6 -0
  12. package/dist/entites/ProgressBar/index.js.map +1 -0
  13. package/dist/entites/ProgressBar/lib/handlers.js +99 -0
  14. package/dist/entites/ProgressBar/lib/handlers.js.map +1 -0
  15. package/dist/entites/ProgressBar/ui/index.js +135 -0
  16. package/dist/entites/ProgressBar/ui/index.js.map +1 -0
  17. package/dist/entites/SettingsButtons/index.js +6 -0
  18. package/dist/entites/SettingsButtons/index.js.map +1 -0
  19. package/dist/entites/SettingsButtons/lib/handlers.js +46 -0
  20. package/dist/entites/SettingsButtons/lib/handlers.js.map +1 -0
  21. package/dist/entites/SettingsButtons/models/settings-buttons.interface.js +3 -0
  22. package/dist/entites/SettingsButtons/models/settings-buttons.interface.js.map +1 -0
  23. package/dist/entites/SettingsButtons/ui/index.js +60 -0
  24. package/dist/entites/SettingsButtons/ui/index.js.map +1 -0
  25. package/dist/entites/ShortDescription/ui/index.js +15 -0
  26. package/dist/entites/ShortDescription/ui/index.js.map +1 -0
  27. package/dist/entites/ShortVideoBtns/ui/index.js +16 -0
  28. package/dist/entites/ShortVideoBtns/ui/index.js.map +1 -0
  29. package/dist/entites/SoundBtn/lib/handlers.js +61 -0
  30. package/dist/entites/SoundBtn/lib/handlers.js.map +1 -0
  31. package/dist/entites/SoundBtn/ui/index.js +94 -0
  32. package/dist/entites/SoundBtn/ui/index.js.map +1 -0
  33. package/dist/entites/progress-bar/index.js +6 -0
  34. package/dist/entites/progress-bar/index.js.map +1 -0
  35. package/dist/entites/progress-bar/lib/handlers.js +109 -0
  36. package/dist/entites/progress-bar/lib/handlers.js.map +1 -0
  37. package/dist/entites/progress-bar/ui/progress-bar.js +125 -0
  38. package/dist/entites/progress-bar/ui/progress-bar.js.map +1 -0
  39. package/dist/features/player-tools/lib/handlers.js +14 -0
  40. package/dist/features/player-tools/lib/handlers.js.map +1 -0
  41. package/dist/features/player-tools/model/player-tools.interface.js +3 -0
  42. package/dist/features/player-tools/model/player-tools.interface.js.map +1 -0
  43. package/dist/features/player-tools/ui/player-tools.js +23 -0
  44. package/dist/features/player-tools/ui/player-tools.js.map +1 -0
  45. package/dist/index.js +6 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/shared/constants/svgs.js +22 -0
  48. package/dist/shared/constants/svgs.js.map +1 -0
  49. package/dist/shared/constants/themes.js +9 -0
  50. package/dist/shared/constants/themes.js.map +1 -0
  51. package/dist/shared/hooks/getDeviceIsMobile.d.ts +1 -1
  52. package/dist/shared/hooks/getDeviceIsMobile.d.ts.map +1 -1
  53. package/dist/shared/hooks/getDeviceIsMobile.js +14 -0
  54. package/dist/shared/hooks/getDeviceIsMobile.js.map +1 -0
  55. package/dist/shared/providers/themeProvider.js +56 -0
  56. package/dist/shared/providers/themeProvider.js.map +1 -0
  57. package/dist/shared/ui/Svg/index.js +49 -0
  58. package/dist/shared/ui/Svg/index.js.map +1 -0
  59. package/dist/shared/ui/index.js +6 -0
  60. package/dist/shared/ui/index.js.map +1 -0
  61. package/dist/shared/utils/formatViews.js +14 -0
  62. package/dist/shared/utils/formatViews.js.map +1 -0
  63. package/dist/shared/utils/getHHSStime.d.ts +1 -1
  64. package/dist/shared/utils/getHHSStime.d.ts.map +1 -1
  65. package/dist/shared/utils/getHHSStime.js +36 -0
  66. package/dist/shared/utils/getHHSStime.js.map +1 -0
  67. package/dist/widgets/video-tag/lib/handlers.js +26 -0
  68. package/dist/widgets/video-tag/lib/handlers.js.map +1 -0
  69. package/dist/widgets/video-tag/model/video-tag.interface.js +3 -0
  70. package/dist/widgets/video-tag/model/video-tag.interface.js.map +1 -0
  71. package/dist/widgets/video-tag/ui/video-tag.js +62 -0
  72. package/dist/widgets/video-tag/ui/video-tag.js.map +1 -0
  73. package/package.json +6 -4
  74. package/dist/index.ts +0 -1
  75. package/dist/tsconfig.types.tsbuildinfo +0 -1
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ShortVideoBtns = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
10
+ const ui_1 = require("../../../shared/ui");
11
+ const formatViews_1 = require("../../../shared/utils/formatViews");
12
+ const ShortVideoBtns = ({ channelId, videoId, dislikes, likes, commentsCount = 875 }) => {
13
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.itemWrapper, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'like', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: (0, formatViews_1.formatViews)(+likes) })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'dislike', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: (0, formatViews_1.formatViews)(+dislikes) })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'comments', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: commentsCount })] }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_svg, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'share', size: 'big' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.shortVideoBtnsContainer_item_text, children: "\u043F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F" })] })] }) }));
14
+ };
15
+ exports.ShortVideoBtns = ShortVideoBtns;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAIZ,8EAAyC;AACzC,2CAAwC;AACxC,mEAA+D;AAUxD,MAAM,cAAc,GAA8B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,GAAG,EAAE,EAAE,EAAE;IACtH,OAAO,CACH,gCAAK,SAAS,EAAE,4BAAM,CAAC,uBAAuB,YAC1C,iCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW,aAC9B,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,GAAE,GAC3B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,IAAA,yBAAW,EAAC,CAAC,KAAK,CAAC,GAAO,IACnF,EACN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,KAAK,GAAE,GAC9B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,IAAA,yBAAW,EAAC,CAAC,QAAQ,CAAC,GAAO,IACtF,EAEN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,KAAK,GAAE,GAC/B,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,YAAG,aAAa,GAAO,IAC7E,EAEN,iCAAK,SAAS,EAAE,4BAAM,CAAC,4BAA4B,aAC/C,gCAAK,SAAS,EAAE,4BAAM,CAAC,gCAAgC,YACnD,uBAAC,QAAG,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,GAAE,GAC5B,EAEN,gCAAK,SAAS,EAAE,4BAAM,CAAC,iCAAiC,6EAAkB,IACxE,IACJ,GACJ,CACT,CAAA;AACL,CAAC,CAAA;AAlCY,QAAA,cAAc,kBAkC1B"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleMouseUpSoundBtn = exports.handleMouseDownSoundBtn = exports.handleMouseClickSoundBtn = exports.handleMuteOnClick = void 0;
4
+ // Клик на иконку для мьюта/анмьюта
5
+ const handleMuteOnClick = (e, videoRef, setCurrentVolume) => {
6
+ e.stopPropagation();
7
+ if (!videoRef.current)
8
+ return;
9
+ if (videoRef.current.muted || videoRef.current.volume === 0) {
10
+ videoRef.current.muted = false;
11
+ videoRef.current.volume = 0.5;
12
+ setCurrentVolume(50);
13
+ }
14
+ else {
15
+ videoRef.current.muted = true;
16
+ setCurrentVolume(0);
17
+ }
18
+ };
19
+ exports.handleMuteOnClick = handleMuteOnClick;
20
+ // Клик на звуковую панель для установки громкости
21
+ const handleMouseClickSoundBtn = (e, videoRef, setCurrentVolume) => {
22
+ e.stopPropagation();
23
+ const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground');
24
+ if (!soundVolumeBackgroundBar || !videoRef.current)
25
+ return;
26
+ const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect();
27
+ const positionOfNewVolume = (e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width;
28
+ const newVolume = Math.max(0, Math.min(1, positionOfNewVolume));
29
+ console.log(newVolume);
30
+ videoRef.current.volume = newVolume;
31
+ setCurrentVolume(newVolume * 100);
32
+ };
33
+ exports.handleMouseClickSoundBtn = handleMouseClickSoundBtn;
34
+ // Начало перетаскивания
35
+ const handleMouseDownSoundBtn = (e, setIsDraggingVolume) => {
36
+ setIsDraggingVolume(true);
37
+ };
38
+ exports.handleMouseDownSoundBtn = handleMouseDownSoundBtn;
39
+ // Конец перетаскивания
40
+ const handleMouseUpSoundBtn = (e, setIsDraggingVolume) => {
41
+ e.stopPropagation();
42
+ setIsDraggingVolume(false);
43
+ };
44
+ exports.handleMouseUpSoundBtn = handleMouseUpSoundBtn;
45
+ // Перемещение при перетаскивании
46
+ // export const handleMouseMoveSoundBtn = (
47
+ // e: React.MouseEvent,
48
+ // isDraggingVolume: boolean,
49
+ // setCurrentVolume: (volume: number) => void,
50
+ // videoRef: RefObject<HTMLVideoElement | null>
51
+ // ) => {
52
+ // if (!isDraggingVolume || !videoRef.current) return
53
+ // const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground')
54
+ // if (!soundVolumeBackgroundBar) return
55
+ // const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect()
56
+ // const newVolume = (e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width
57
+ // const clampedVolume = Math.max(0, Math.min(1, newVolume))
58
+ // videoRef.current.volume = clampedVolume
59
+ // setCurrentVolume(clampedVolume * 100)
60
+ // }
61
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/SoundBtn/lib/handlers.ts"],"names":[],"mappings":";;;AAEA,mCAAmC;AAC5B,MAAM,iBAAiB,GAAG,CAC7B,CAAmB,EACnB,QAA4C,EAC5C,gBAA0C,EAC5C,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAE7B,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QAC7B,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;QAC7B,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;AACL,CAAC,CAAA;AAhBY,QAAA,iBAAiB,qBAgB7B;AAED,kDAAkD;AAC3C,MAAM,wBAAwB,GAAG,CACpC,CAAmB,EACnB,QAA4C,EAC5C,gBAA0C,EAC5C,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,MAAM,wBAAwB,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAA;IAEjF,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAE1D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,qBAAqB,EAAE,CAAA;IAC3E,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAA;IAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvB,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;IACnC,gBAAgB,CAAC,SAAS,GAAG,GAAG,CAAC,CAAA;AACrC,CAAC,CAAA;AAjBY,QAAA,wBAAwB,4BAiBpC;AAED,wBAAwB;AACjB,MAAM,uBAAuB,GAAG,CACnC,CAAmB,EACnB,mBAAkD,EACpD,EAAE;IACA,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAA;AALY,QAAA,uBAAuB,2BAKnC;AAED,uBAAuB;AAChB,MAAM,qBAAqB,GAAG,CACjC,CAAmB,EACnB,mBAAkD,EACpD,EAAE;IACA,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,mBAAmB,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AANY,QAAA,qBAAqB,yBAMjC;AAED,iCAAiC;AACjC,2CAA2C;AAC3C,4BAA4B;AAC5B,kCAAkC;AAClC,kDAAkD;AAClD,mDAAmD;AACnD,SAAS;AACT,yDAAyD;AAEzD,wFAAwF;AACxF,4CAA4C;AAE5C,kFAAkF;AAClF,yFAAyF;AACzF,gEAAgE;AAEhE,8CAA8C;AAC9C,4CAA4C;AAC5C,IAAI"}
@@ -0,0 +1,94 @@
1
+ "use client";
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.SoundBtn = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const react_1 = require("react");
10
+ const handlers_1 = require("../lib/handlers");
11
+ const ui_1 = require("../../../shared/ui");
12
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
13
+ const SoundBtn = ({ videoRef }) => {
14
+ const [isVisibleSoundBar, setIsVisibleSoundBar] = (0, react_1.useState)(false);
15
+ const [currentVolume, setCurrentVolume] = (0, react_1.useState)(50);
16
+ const [isDraggingVolume, setIsDraggingVolume] = (0, react_1.useState)(false);
17
+ // Глобальные обработчики для перетаскивания
18
+ (0, react_1.useEffect)(() => {
19
+ const handleGlobalMouseMove = (e) => {
20
+ if (isDraggingVolume && videoRef.current) {
21
+ const soundVolumeBackgroundBar = document.getElementById('soundVolumeBackground');
22
+ if (!soundVolumeBackgroundBar)
23
+ return;
24
+ const positionOfSoundBar = soundVolumeBackgroundBar.getBoundingClientRect();
25
+ let newCurrentVolume = ((e.clientX - positionOfSoundBar.left) / positionOfSoundBar.width) * 100;
26
+ newCurrentVolume = Math.max(0, Math.min(100, newCurrentVolume));
27
+ setCurrentVolume(newCurrentVolume);
28
+ videoRef.current.volume = newCurrentVolume / 100;
29
+ }
30
+ };
31
+ const handleGlobalMouseUp = (e) => {
32
+ e.stopPropagation();
33
+ // Если был drag (мышь двигалась), то не даем событию всплывать
34
+ if (isDraggingVolume) {
35
+ e.stopPropagation();
36
+ e.stopImmediatePropagation();
37
+ // Отменяем стандартное поведение и всплытие
38
+ if (e.preventDefault) {
39
+ e.preventDefault();
40
+ }
41
+ setIsDraggingVolume(false);
42
+ }
43
+ };
44
+ window.addEventListener('mousemove', handleGlobalMouseMove);
45
+ window.addEventListener('mouseup', handleGlobalMouseUp, true); // capture phase
46
+ return () => {
47
+ window.removeEventListener('mousemove', handleGlobalMouseMove);
48
+ window.removeEventListener('mouseup', handleGlobalMouseUp, true);
49
+ };
50
+ }, [isDraggingVolume, videoRef]);
51
+ // Предотвращаем click на родителе после drag
52
+ (0, react_1.useEffect)(() => {
53
+ const preventParentClick = (e) => {
54
+ if (isDraggingVolume) {
55
+ e.stopPropagation();
56
+ e.preventDefault();
57
+ }
58
+ };
59
+ // Ловим click на window до того, как он дойдет до родителя
60
+ window.addEventListener('click', preventParentClick, true);
61
+ return () => {
62
+ window.removeEventListener('click', preventParentClick, true);
63
+ };
64
+ }, [isDraggingVolume]);
65
+ if (!videoRef.current)
66
+ return null;
67
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.soundAndTimeContainer, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.soundContainer, onMouseEnter: () => setIsVisibleSoundBar(true), onMouseLeave: () => {
68
+ if (!isDraggingVolume) {
69
+ setIsVisibleSoundBar(false);
70
+ }
71
+ },
72
+ // Предотвращаем всплытие кликов от всего контейнера звука
73
+ onClick: (e) => e.stopPropagation(), onMouseUp: (e) => e.stopPropagation(), onMouseDown: (e) => e.stopPropagation(), children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.soundBtnWrapper, children: (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.soundBtn, onClick: (e) => {
74
+ e.stopPropagation();
75
+ (0, handlers_1.handleMuteOnClick)(e, videoRef, setCurrentVolume);
76
+ }, children: currentVolume ? (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'soundOn' }) : (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'soundOff' }) }) }), (0, jsx_runtime_1.jsx)("div", { id: 'soundVolumeBackground', className: styles_module_scss_1.default.soundVolumeBackground, onClick: (e) => {
77
+ e.stopPropagation();
78
+ (0, handlers_1.handleMouseClickSoundBtn)(e, videoRef, setCurrentVolume);
79
+ }, onMouseDown: (e) => {
80
+ e.stopPropagation();
81
+ (0, handlers_1.handleMouseDownSoundBtn)(e, setIsDraggingVolume);
82
+ }, onMouseUp: (e) => {
83
+ e.stopPropagation();
84
+ (0, handlers_1.handleMouseUpSoundBtn)(e, setIsDraggingVolume);
85
+ }, children: (0, jsx_runtime_1.jsx)("div", { id: 'filledSoundBar', className: styles_module_scss_1.default.soundVolumeFilled, style: { width: `${currentVolume}%` }, children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.pointer, onMouseDown: (e) => {
86
+ e.stopPropagation();
87
+ (0, handlers_1.handleMouseDownSoundBtn)(e, setIsDraggingVolume);
88
+ }, onMouseUp: (e) => {
89
+ e.stopPropagation();
90
+ (0, handlers_1.handleMouseUpSoundBtn)(e, setIsDraggingVolume);
91
+ } }) }) })] }) }));
92
+ };
93
+ exports.SoundBtn = SoundBtn;
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/SoundBtn/ui/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgressBar = void 0;
4
+ var progress_bar_1 = require("./ui/progress-bar");
5
+ Object.defineProperty(exports, "ProgressBar", { enumerable: true, get: function () { return progress_bar_1.ProgressBar; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entites/progress-bar/index.ts"],"names":[],"mappings":";;;AAAA,kDAA+C;AAAtC,2GAAA,WAAW,OAAA"}
@@ -0,0 +1,109 @@
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.getProgressBarFragments = exports.handleMouseDown = exports.handleClick = exports.handleMouseMove = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const styles_module_scss_1 = __importDefault(require("../ui/styles.module.scss"));
9
+ // Упрощенные хендлеры для мыши
10
+ const handleMouseMove = (e, isDragging, duration, progressContainerRef, setHoverTime) => {
11
+ if (!isDragging && progressContainerRef.current && duration) {
12
+ const rect = progressContainerRef.current.getBoundingClientRect();
13
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
14
+ const newTime = (clickPosition / rect.width) * duration;
15
+ setHoverTime(newTime);
16
+ }
17
+ };
18
+ exports.handleMouseMove = handleMouseMove;
19
+ const handleClick = (e, isDragging, duration, progressContainerRef, videoRef, setCurrentVideoTime) => {
20
+ if (!isDragging && progressContainerRef.current && duration) {
21
+ const rect = progressContainerRef.current.getBoundingClientRect();
22
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
23
+ const newTime = (clickPosition / rect.width) * duration;
24
+ videoRef.current.currentTime = newTime;
25
+ setCurrentVideoTime(newTime);
26
+ }
27
+ };
28
+ exports.handleClick = handleClick;
29
+ const handleMouseDown = (e, setIsDragging) => {
30
+ console.log('handleMouseDown22222');
31
+ setIsDragging(true);
32
+ };
33
+ exports.handleMouseDown = handleMouseDown;
34
+ const getProgressBarFragments = ({ duration, fragments, bufferedFragments, currentVideoTime, }) => {
35
+ const elements = [];
36
+ // Общая логика прогресса и буфера
37
+ const getGradientStops = (start, end, progress, buffers) => {
38
+ const gradientStops = [];
39
+ const progressPercent = progress >= end
40
+ ? 100
41
+ : progress > start
42
+ ? ((progress - start) / (end - start)) * 100
43
+ : 0;
44
+ if (progressPercent > 0) {
45
+ gradientStops.push("#1e90ff 0%");
46
+ gradientStops.push(`#1e90ff ${progressPercent}%`);
47
+ gradientStops.push(`#444 ${progressPercent}%`);
48
+ }
49
+ else {
50
+ gradientStops.push("#444 0%");
51
+ }
52
+ const bufferStops = [];
53
+ buffers.forEach(buffered => {
54
+ const overlapStart = Math.max(start, buffered.start);
55
+ const overlapEnd = Math.min(end, buffered.end);
56
+ if (overlapStart < overlapEnd) {
57
+ const bufferStartPercent = ((overlapStart - start) / (end - start)) * 100;
58
+ const bufferEndPercent = ((overlapEnd - start) / (end - start)) * 100;
59
+ if (bufferEndPercent > progressPercent) {
60
+ bufferStops.push({
61
+ start: Math.max(bufferStartPercent, progressPercent),
62
+ end: bufferEndPercent,
63
+ });
64
+ }
65
+ }
66
+ });
67
+ bufferStops.forEach(buffer => {
68
+ gradientStops.push(`#666 ${buffer.start}%`);
69
+ gradientStops.push(`#666 ${buffer.end}%`);
70
+ });
71
+ const lastValue = gradientStops.length > 0
72
+ ? parseFloat(gradientStops[gradientStops.length - 1].split(" ")[1].replace("%", ""))
73
+ : 0;
74
+ if (lastValue < 100) {
75
+ gradientStops.push(`#444 ${Math.max(lastValue, progressPercent)}%`);
76
+ gradientStops.push(`#444 100%`);
77
+ }
78
+ return gradientStops;
79
+ };
80
+ // Если нет фрагментов — одна сплошная полоса
81
+ if (!duration || !fragments || fragments.length === 0) {
82
+ const gradientStops = getGradientStops(0, duration || 100, currentVideoTime, bufferedFragments);
83
+ const gradient = `linear-gradient(to right, ${gradientStops.join(", ")})`;
84
+ elements.push((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragment, style: {
85
+ left: "0%",
86
+ width: "100%",
87
+ background: gradient,
88
+ pointerEvents: 'none'
89
+ } }, "single-fragment"));
90
+ return elements;
91
+ }
92
+ // Если фрагменты есть — рисуем каждый фрагмент
93
+ fragments.forEach((fragment, index) => {
94
+ const fragmentStartPercent = (fragment.start / duration) * 100;
95
+ const fragmentEndPercent = (fragment.end / duration) * 100;
96
+ const fragmentWidthPercent = fragmentEndPercent - fragmentStartPercent;
97
+ const gradientStops = getGradientStops(fragment.start, fragment.end, currentVideoTime, bufferedFragments);
98
+ const gradient = `linear-gradient(to right, ${gradientStops.join(", ")})`;
99
+ elements.push((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragment, style: {
100
+ left: `${fragmentStartPercent}%`,
101
+ width: `${fragmentWidthPercent}%`,
102
+ background: gradient,
103
+ pointerEvents: 'none'
104
+ } }, index));
105
+ });
106
+ return elements;
107
+ };
108
+ exports.getProgressBarFragments = getProgressBarFragments;
109
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/progress-bar/lib/handlers.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ProgressBar = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const react_1 = require("react");
10
+ const component_1 = require("../../../component");
11
+ const getHHSStime_1 = require("../../../shared/utils/getHHSStime");
12
+ const handlers_1 = require("../lib/handlers");
13
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
14
+ const ProgressBar = ({ duration, videoRef, fragments, isLiveStream }) => {
15
+ const [hoverTime, setHoverTime] = (0, react_1.useState)(0);
16
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
17
+ const [bufferedFragments, setBufferedFragments] = (0, react_1.useState)([]);
18
+ const [currentVideoTime, setCurrentVideoTime] = (0, react_1.useState)(0); // Локальное состояние для времени
19
+ const progressContainerRef = (0, react_1.useRef)(null);
20
+ // const isMovingRef = useRef<HTMLDivElement>(null);
21
+ const animationFrameRef = (0, react_1.useRef)(0); // Ref для requestAnimationFrame
22
+ const context = (0, component_1.usePlayerContext)();
23
+ // Оптимизированный таймер для обновления времени
24
+ (0, react_1.useEffect)(() => {
25
+ const video = videoRef.current;
26
+ if (!video || isDragging)
27
+ return;
28
+ const updateTime = () => {
29
+ setCurrentVideoTime(video.currentTime);
30
+ animationFrameRef.current = requestAnimationFrame(updateTime);
31
+ };
32
+ // Запускаем обновление через requestAnimationFrame для плавности
33
+ animationFrameRef.current = requestAnimationFrame(updateTime);
34
+ return () => {
35
+ if (animationFrameRef.current) {
36
+ cancelAnimationFrame(animationFrameRef.current);
37
+ }
38
+ };
39
+ }, [videoRef, duration, isDragging]);
40
+ // Оптимизированный хендлер для перетаскивания
41
+ (0, react_1.useEffect)(() => {
42
+ if (!isDragging)
43
+ return;
44
+ const handleMouseMoveWrapper = (e) => {
45
+ if (!progressContainerRef.current || !duration)
46
+ return;
47
+ // Ставим видео на паузу при начале перетаскивания
48
+ context.setIsPaused(true);
49
+ // Используем requestAnimationFrame для плавного обновления
50
+ requestAnimationFrame(() => {
51
+ const rect = progressContainerRef.current.getBoundingClientRect();
52
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
53
+ const clickPercentage = (clickPosition / rect.width);
54
+ const newTime = clickPercentage * duration;
55
+ // Обновляем локальное состояние
56
+ setCurrentVideoTime(newTime);
57
+ videoRef.current.currentTime = newTime;
58
+ setHoverTime(newTime);
59
+ const timeHoverPosition = document.getElementById('timeHover');
60
+ if (timeHoverPosition) {
61
+ timeHoverPosition.style.left = `${clickPosition}px`;
62
+ }
63
+ });
64
+ };
65
+ const handleMouseUpWrapper = (e) => {
66
+ if (!progressContainerRef.current || !videoRef.current || !duration)
67
+ return;
68
+ // const rect = progressContainerRef.current.getBoundingClientRect();
69
+ // const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
70
+ // const clickPercentage = (clickPosition / rect.width);
71
+ // const newTime = clickPercentage * duration;
72
+ // Финальное обновление
73
+ // videoRef.current.currentTime = newTime;
74
+ // setCurrentVideoTime(newTime);
75
+ setHoverTime(0);
76
+ setIsDragging(false);
77
+ // Восстанавливаем таймер обновления
78
+ };
79
+ window.addEventListener('mousemove', handleMouseMoveWrapper);
80
+ window.addEventListener('mouseup', handleMouseUpWrapper, true);
81
+ return () => {
82
+ window.removeEventListener('mousemove', handleMouseMoveWrapper);
83
+ window.removeEventListener('mouseup', handleMouseUpWrapper, true);
84
+ };
85
+ }, [isDragging, duration, videoRef, context]);
86
+ // Обновляем буфер
87
+ (0, react_1.useEffect)(() => {
88
+ if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
89
+ return;
90
+ const videoElement = videoRef.current;
91
+ const updateBufferedRanges = () => {
92
+ const fragments = [];
93
+ for (let index = 0; index < videoElement.buffered.length; index++) {
94
+ fragments.push({
95
+ start: videoElement.buffered.start(index),
96
+ end: videoElement.buffered.end(index)
97
+ });
98
+ }
99
+ setBufferedFragments(fragments);
100
+ };
101
+ videoElement.addEventListener('progress', updateBufferedRanges);
102
+ videoElement.addEventListener('loadeddata', updateBufferedRanges);
103
+ return () => {
104
+ videoElement.removeEventListener('progress', updateBufferedRanges);
105
+ videoElement.removeEventListener('loadeddata', updateBufferedRanges);
106
+ };
107
+ }, [videoRef]);
108
+ if (isLiveStream || !duration)
109
+ return (0, jsx_runtime_1.jsx)("div", { children: "\u044D\u0442\u043E \u0441\u0442\u0440\u0438\u043C, \u043D\u0443\u0436\u043D\u043E \u043F\u0435\u0440\u0435\u0434\u0435\u043B\u0430\u0442\u044C \u043F\u0440\u043E\u0433\u0440\u0435\u0441 \u0431\u0430\u0440" });
110
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.progressBarContainer, children: [(0, jsx_runtime_1.jsx)("div", { id: 'timeHover', className: hoverTime ? styles_module_scss_1.default.progressTimeHover : styles_module_scss_1.default.progressTimeHover_hidden, style: {
111
+ left: `${(hoverTime / duration) * 100}%`,
112
+ display: hoverTime ? 'block' : 'none'
113
+ }, children: (0, getHHSStime_1.getHHSStime)(Math.trunc(hoverTime)) }), (0, jsx_runtime_1.jsx)("div", { id: "progressBar", ref: progressContainerRef, className: styles_module_scss_1.default.progressContainer, onClick: (e) => (0, handlers_1.handleClick)(e, isDragging, duration, progressContainerRef, videoRef, setCurrentVideoTime), onMouseDown: (e) => {
114
+ e.stopPropagation();
115
+ (0, handlers_1.handleMouseDown)(e, setIsDragging);
116
+ },
117
+ // onMouseLeave={() => {
118
+ // if (!isDragging) {
119
+ // setHoverTime(0);
120
+ // }
121
+ // }}
122
+ onMouseMove: (e) => (0, handlers_1.handleMouseMove)(e, isDragging, duration, progressContainerRef, setHoverTime), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragmentsContainer, children: (0, handlers_1.getProgressBarFragments)({ duration, fragments, bufferedFragments, currentVideoTime }) }) })] }));
123
+ };
124
+ exports.ProgressBar = ProgressBar;
125
+ //# sourceMappingURL=progress-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../../src/entites/progress-bar/ui/progress-bar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handlePlayPause = void 0;
4
+ const handlePlayPause = (videoRef) => {
5
+ var _a, _b, _c;
6
+ if ((_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused) {
7
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
8
+ }
9
+ else {
10
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
11
+ }
12
+ };
13
+ exports.handlePlayPause = handlePlayPause;
14
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/features/player-tools/lib/handlers.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAAC,QAA4C,EAAE,EAAE;;IAC9E,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAC;QAC7B,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA;IAC3B,CAAC;AACH,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=player-tools.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player-tools.interface.js","sourceRoot":"","sources":["../../../../src/features/player-tools/model/player-tools.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PlayerTools = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const ui_1 = require("../../../entites/ShortDescription/ui");
10
+ const ui_2 = require("../../../entites/ShortVideoBtns/ui");
11
+ const getDeviceIsMobile_1 = require("../../../shared/hooks/getDeviceIsMobile");
12
+ const progress_bar_1 = require("../../../entites/progress-bar");
13
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
14
+ const PlayerTools = ({ duration, videoRef, channelId = '1', videoId = '2', dislikes = '2341', likes = '79425', channelUrl = 'channelUrl', channelAvatarUrl = 'testImages/pr.png', username = 'RestoratorGame', videoName = 'срежу воду 10 часов подряд' }) => {
15
+ var _a;
16
+ const currentTime = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.currentTime;
17
+ const device = (0, getDeviceIsMobile_1.getDeviceIsMobile)();
18
+ return (
19
+ // <div className={isVisibleTools ? styles.toolsContainer : styles.toolsContainer_hidden}>
20
+ (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.toolsContainer, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.toolsMobileContainer, children: [(device === null || device === void 0 ? void 0 : device.isMobile) && (0, jsx_runtime_1.jsx)(ui_2.ShortVideoBtns, { channelId: channelId, videoId: videoId, likes: likes, dislikes: dislikes, commentsCount: "92348" }), (0, jsx_runtime_1.jsx)(ui_1.ShortDescription, { channelAvatarUrl: channelAvatarUrl, username: username, videoName: videoName, channelUrl: channelUrl }), (0, jsx_runtime_1.jsx)(progress_bar_1.ProgressBar, { duration: duration, videoRef: videoRef })] }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.toolsDesktopContainer, children: !(device === null || device === void 0 ? void 0 : device.isMobile) && (0, jsx_runtime_1.jsx)(ui_2.ShortVideoBtns, { channelId: channelId, videoId: videoId, likes: likes, dislikes: dislikes, commentsCount: "92348" }) })] }));
21
+ };
22
+ exports.PlayerTools = PlayerTools;
23
+ //# sourceMappingURL=player-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player-tools.js","sourceRoot":"","sources":["../../../../src/features/player-tools/ui/player-tools.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAMZ,6DAAwE;AACxE,2DAAoE;AACpE,+EAA4E;AAC5E,gEAA4D;AAC5D,8EAAyC;AAGlC,MAAM,WAAW,GAA2B,CAAC,EAChD,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,GAAG,EACf,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,MAAM,EACjB,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,YAAY,EACzB,gBAAgB,GAAG,mBAAmB,EACtC,QAAQ,GAAG,gBAAgB,EAC3B,SAAS,GAAG,4BAA4B,EAC3C,EAAE,EAAE;;IACD,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAE,WAAW,CAAA;IAEjD,MAAM,MAAM,GAAG,IAAA,qCAAiB,GAAE,CAAA;IAElC,OAAO;IACH,0FAA0F;IAC1F,iCAAK,SAAS,EAAE,4BAAM,CAAC,cAAc,aACjC,iCAAK,SAAS,EAAE,4BAAM,CAAC,oBAAoB,aACtC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,KAAI,uBAAC,mBAAc,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAC,OAAO,GAAE,EACtI,uBAAC,qBAAgB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,EAEzH,uBAAC,0BAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,IACrD,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,qBAAqB,YACvC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA,IAAI,uBAAC,mBAAc,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAC,OAAO,GAAE,GACrI,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AA9BW,QAAA,WAAW,eA8BtB"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShortPlayer = void 0;
4
+ var component_1 = require("./component");
5
+ Object.defineProperty(exports, "ShortPlayer", { enumerable: true, get: function () { return component_1.ShortPlayer; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAAhC,wGAAA,WAAW,OAAA"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.svgs = void 0;
4
+ exports.svgs = {
5
+ stop: 'stop',
6
+ play: 'play',
7
+ comments: 'comments',
8
+ dislike: 'dislike',
9
+ download: 'download',
10
+ like: 'like',
11
+ magnifier: 'magnifier',
12
+ share: 'share',
13
+ verticalEllipsis: 'verticalEllipsis',
14
+ soundOn: 'soundOn',
15
+ soundOff: 'soundOff',
16
+ fullScreenOn: 'fullScreenOn',
17
+ fullScreenOff: 'fullScreenOff',
18
+ pictureInPicture: 'pictureInPicture',
19
+ subtitle: 'subtitle',
20
+ settings: 'settings',
21
+ };
22
+ //# sourceMappingURL=svgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svgs.js","sourceRoot":"","sources":["../../../src/shared/constants/svgs.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,kBAAkB;IACpC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACvB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.themes = void 0;
4
+ exports.themes = [
5
+ { id: 'device', name: 'Как на устройстве' },
6
+ { id: 'dark', name: 'Темная' },
7
+ { id: 'light', name: 'Светлая' },
8
+ ];
9
+ //# sourceMappingURL=themes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/shared/constants/themes.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IAClB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC3C,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;CACnC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export declare const getDeviceIsMobile: () => {
2
2
  isTablet: boolean;
3
3
  isMobile: boolean;
4
- } | undefined;
4
+ };
5
5
  //# sourceMappingURL=getDeviceIsMobile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDeviceIsMobile.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/getDeviceIsMobile.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;aAU7B,CAAA"}
1
+ {"version":3,"file":"getDeviceIsMobile.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/getDeviceIsMobile.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;CAU7B,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDeviceIsMobile = void 0;
4
+ const getDeviceIsMobile = () => {
5
+ if (typeof window === 'undefined') {
6
+ console.log("getDeviceIsMobile недоступен на сервере");
7
+ return;
8
+ }
9
+ const tabletMediaQuery = window.matchMedia('(max-width: 1280px)');
10
+ const mobileMediaQuery = window.matchMedia('(max-width: 768px)');
11
+ return { isTablet: tabletMediaQuery.matches || false, isMobile: mobileMediaQuery.matches || false };
12
+ };
13
+ exports.getDeviceIsMobile = getDeviceIsMobile;
14
+ //# sourceMappingURL=getDeviceIsMobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDeviceIsMobile.js","sourceRoot":"","sources":["../../../src/shared/hooks/getDeviceIsMobile.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAClC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO;IACX,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;IACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAEhE,OAAO,EAAC,QAAQ,EAAE,gBAAgB,CAAC,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,IAAI,KAAK,EAAC,CAAA;AACrG,CAAC,CAAA;AAVY,QAAA,iBAAiB,qBAU7B"}