@webitch/short-player 0.1.1 → 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 (108) hide show
  1. package/dist/app/layout.d.ts +6 -6
  2. package/dist/app/layout.js +23 -0
  3. package/dist/app/layout.js.map +1 -0
  4. package/dist/app/page.d.ts +1 -1
  5. package/dist/app/page.js +19 -0
  6. package/dist/app/page.js.map +1 -0
  7. package/dist/component/index.d.ts +20 -20
  8. package/dist/component/index.d.ts.map +1 -1
  9. package/dist/component/index.js +64 -0
  10. package/dist/component/index.js.map +1 -0
  11. package/dist/entites/PlayBtn/ui/index.d.ts +4 -4
  12. package/dist/entites/PlayBtn/ui/index.js +23 -0
  13. package/dist/entites/PlayBtn/ui/index.js.map +1 -0
  14. package/dist/entites/ProgressBar/index.d.ts +1 -1
  15. package/dist/entites/ProgressBar/index.js +6 -0
  16. package/dist/entites/ProgressBar/index.js.map +1 -0
  17. package/dist/entites/ProgressBar/lib/handlers.d.ts +10 -10
  18. package/dist/entites/ProgressBar/lib/handlers.js +99 -0
  19. package/dist/entites/ProgressBar/lib/handlers.js.map +1 -0
  20. package/dist/entites/ProgressBar/ui/index.d.ts +7 -7
  21. package/dist/entites/ProgressBar/ui/index.js +135 -0
  22. package/dist/entites/ProgressBar/ui/index.js.map +1 -0
  23. package/dist/entites/SettingsButtons/index.d.ts +1 -1
  24. package/dist/entites/SettingsButtons/index.js +6 -0
  25. package/dist/entites/SettingsButtons/index.js.map +1 -0
  26. package/dist/entites/SettingsButtons/lib/handlers.d.ts +7 -7
  27. package/dist/entites/SettingsButtons/lib/handlers.js +46 -0
  28. package/dist/entites/SettingsButtons/lib/handlers.js.map +1 -0
  29. package/dist/entites/SettingsButtons/models/settings-buttons.interface.d.ts +5 -5
  30. package/dist/entites/SettingsButtons/models/settings-buttons.interface.js +3 -0
  31. package/dist/entites/SettingsButtons/models/settings-buttons.interface.js.map +1 -0
  32. package/dist/entites/SettingsButtons/ui/index.d.ts +2 -2
  33. package/dist/entites/SettingsButtons/ui/index.js +60 -0
  34. package/dist/entites/SettingsButtons/ui/index.js.map +1 -0
  35. package/dist/entites/ShortDescription/ui/index.d.ts +9 -9
  36. package/dist/entites/ShortDescription/ui/index.d.ts.map +1 -1
  37. package/dist/entites/ShortDescription/ui/index.js +15 -0
  38. package/dist/entites/ShortDescription/ui/index.js.map +1 -0
  39. package/dist/entites/ShortVideoBtns/ui/index.d.ts +10 -10
  40. package/dist/entites/ShortVideoBtns/ui/index.d.ts.map +1 -1
  41. package/dist/entites/ShortVideoBtns/ui/index.js +16 -0
  42. package/dist/entites/ShortVideoBtns/ui/index.js.map +1 -0
  43. package/dist/entites/SoundBtn/lib/handlers.d.ts +5 -5
  44. package/dist/entites/SoundBtn/lib/handlers.js +61 -0
  45. package/dist/entites/SoundBtn/lib/handlers.js.map +1 -0
  46. package/dist/entites/SoundBtn/ui/index.d.ts +6 -6
  47. package/dist/entites/SoundBtn/ui/index.js +94 -0
  48. package/dist/entites/SoundBtn/ui/index.js.map +1 -0
  49. package/dist/entites/progress-bar/index.d.ts +1 -1
  50. package/dist/entites/progress-bar/index.js +6 -0
  51. package/dist/entites/progress-bar/index.js.map +1 -0
  52. package/dist/entites/progress-bar/lib/handlers.d.ts +15 -15
  53. package/dist/entites/progress-bar/lib/handlers.js +109 -0
  54. package/dist/entites/progress-bar/lib/handlers.js.map +1 -0
  55. package/dist/entites/progress-bar/ui/progress-bar.d.ts +10 -10
  56. package/dist/entites/progress-bar/ui/progress-bar.js +125 -0
  57. package/dist/entites/progress-bar/ui/progress-bar.js.map +1 -0
  58. package/dist/features/player-tools/lib/handlers.d.ts +2 -2
  59. package/dist/features/player-tools/lib/handlers.js +14 -0
  60. package/dist/features/player-tools/lib/handlers.js.map +1 -0
  61. package/dist/features/player-tools/model/player-tools.interface.d.ts +13 -13
  62. package/dist/features/player-tools/model/player-tools.interface.js +3 -0
  63. package/dist/features/player-tools/model/player-tools.interface.js.map +1 -0
  64. package/dist/features/player-tools/ui/player-tools.d.ts +2 -2
  65. package/dist/features/player-tools/ui/player-tools.js +23 -0
  66. package/dist/features/player-tools/ui/player-tools.js.map +1 -0
  67. package/dist/index.d.ts +2 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +6 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/shared/constants/svgs.d.ts +18 -18
  72. package/dist/shared/constants/svgs.js +22 -0
  73. package/dist/shared/constants/svgs.js.map +1 -0
  74. package/dist/shared/constants/themes.d.ts +4 -4
  75. package/dist/shared/constants/themes.js +9 -0
  76. package/dist/shared/constants/themes.js.map +1 -0
  77. package/dist/shared/hooks/getDeviceIsMobile.d.ts +4 -4
  78. package/dist/shared/hooks/getDeviceIsMobile.d.ts.map +1 -1
  79. package/dist/shared/hooks/getDeviceIsMobile.js +14 -0
  80. package/dist/shared/hooks/getDeviceIsMobile.js.map +1 -0
  81. package/dist/shared/providers/themeProvider.d.ts +16 -16
  82. package/dist/shared/providers/themeProvider.js +56 -0
  83. package/dist/shared/providers/themeProvider.js.map +1 -0
  84. package/dist/shared/ui/Svg/index.d.ts +12 -12
  85. package/dist/shared/ui/Svg/index.d.ts.map +1 -1
  86. package/dist/shared/ui/Svg/index.js +49 -0
  87. package/dist/shared/ui/Svg/index.js.map +1 -0
  88. package/dist/shared/ui/index.d.ts +1 -1
  89. package/dist/shared/ui/index.js +6 -0
  90. package/dist/shared/ui/index.js.map +1 -0
  91. package/dist/shared/utils/formatViews.d.ts +1 -1
  92. package/dist/shared/utils/formatViews.js +14 -0
  93. package/dist/shared/utils/formatViews.js.map +1 -0
  94. package/dist/shared/utils/getHHSStime.d.ts +1 -1
  95. package/dist/shared/utils/getHHSStime.d.ts.map +1 -1
  96. package/dist/shared/utils/getHHSStime.js +36 -0
  97. package/dist/shared/utils/getHHSStime.js.map +1 -0
  98. package/dist/widgets/video-tag/lib/handlers.d.ts +5 -5
  99. package/dist/widgets/video-tag/lib/handlers.js +26 -0
  100. package/dist/widgets/video-tag/lib/handlers.js.map +1 -0
  101. package/dist/widgets/video-tag/model/video-tag.interface.d.ts +15 -15
  102. package/dist/widgets/video-tag/model/video-tag.interface.js +3 -0
  103. package/dist/widgets/video-tag/model/video-tag.interface.js.map +1 -0
  104. package/dist/widgets/video-tag/ui/video-tag.d.ts +2 -2
  105. package/dist/widgets/video-tag/ui/video-tag.js +62 -0
  106. package/dist/widgets/video-tag/ui/video-tag.js.map +1 -0
  107. package/package.json +6 -4
  108. package/dist/index.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/lib/handlers.ts"],"names":[],"mappings":";;;AAIO,MAAM,sBAAsB,GAAG,CAAC,QAAqC,EAAE,KAAa,EAAE,EAAE;IAC3F,IAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAM;IAEzC,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;AACzC,CAAC,CAAA;AAJY,QAAA,sBAAsB,0BAIlC;AAEM,MAAM,SAAS,GAAG,CAAC,CAAmB,EAAE,QAAmB,EAAE,eAA8F,EAAE,cAAgD,EAAE,EAAE;IACpN,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,QAAQ,EAAE,CAAC;QACX,eAAe,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEK,MAAM,UAAU,GAAG,CAAC,YAAyB,EAAE,eAAuD,EAAE,cAAgD,EAAE,EAAE;IAC3J,eAAe,CAAC,EAAE,CAAC,CAAC;IACpB,cAAc,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB;AAEK,MAAM,MAAM,GAAG,CAAC,YAAyB,EAAE,eAA8F,EAAE,cAAgD,EAAE,EAAE;IAClM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,cAAc,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,MAAM,UAMjB;AAEK,MAAM,oBAAoB,GAAG,CAAC,CAAmB,EAAE,SAA4C,EAAE,EAAE;IACtG,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;IAElE,SAAS,CAAC,CAAC,IAAa,EAAE,EAAE;QACxB,IAAG,IAAI,EAAE,CAAC;YACN,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,EAAE,CAAA;YAC1B,OAAO,KAAK,CAAA;QAChB,CAAC;aAAM,CAAC;YACJ,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,EAAE,CAAA;YACpC,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC"}
@@ -1,6 +1,6 @@
1
- import { RefObject } from "react";
2
- export interface ISettingsButtons {
3
- videoRef: RefObject<HTMLVideoElement | null>;
4
- }
5
- export type ModalType = 'settings' | 'quality' | 'speed' | null;
1
+ import { RefObject } from "react";
2
+ export interface ISettingsButtons {
3
+ videoRef: RefObject<HTMLVideoElement | null>;
4
+ }
5
+ export type ModalType = 'settings' | 'quality' | 'speed' | null;
6
6
  //# sourceMappingURL=settings-buttons.interface.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=settings-buttons.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-buttons.interface.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/models/settings-buttons.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +1,3 @@
1
- import { ISettingsButtons } from '../models/settings-buttons.interface';
2
- export declare const SettingsButtons: React.FC<ISettingsButtons>;
1
+ import { ISettingsButtons } from '../models/settings-buttons.interface';
2
+ export declare const SettingsButtons: React.FC<ISettingsButtons>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,60 @@
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.SettingsButtons = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const react_1 = require("react");
10
+ const ui_1 = require("../../../shared/ui");
11
+ const component_1 = require("../../../component");
12
+ const handlers_1 = require("../lib/handlers");
13
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
14
+ const SettingsButtons = ({ videoRef }) => {
15
+ var _a;
16
+ const [isFull, setIsFull] = (0, react_1.useState)(false);
17
+ const [activeModal, setActiveModal] = (0, react_1.useState)(null);
18
+ const [modalHistory, setModalHistory] = (0, react_1.useState)([]);
19
+ const context = (0, component_1.usePlayerContext)();
20
+ (0, react_1.useEffect)(() => {
21
+ const handleClickOutSide = (e) => {
22
+ const modal = document.getElementById('settingsWrapper');
23
+ if (!(modal === null || modal === void 0 ? void 0 : modal.contains(e.target))) {
24
+ (0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
25
+ }
26
+ };
27
+ window.addEventListener('mousedown', handleClickOutSide);
28
+ return () => {
29
+ window.removeEventListener('mousedown', handleClickOutSide);
30
+ };
31
+ }, [videoRef]);
32
+ (0, react_1.useEffect)(() => {
33
+ const handlePressFtoFullScreen = (e) => {
34
+ if (e.key.toLowerCase() === 'f') {
35
+ console.log('F');
36
+ (0, handlers_1.handleOpenFullScreen)(setIsFull);
37
+ }
38
+ };
39
+ document.addEventListener('keyup', handlePressFtoFullScreen);
40
+ return () => {
41
+ document.removeEventListener('keyup', handlePressFtoFullScreen);
42
+ };
43
+ }, []);
44
+ const handleSpeed = (value) => {
45
+ (0, handlers_1.handleChangeVideoSpeed)(videoRef, value);
46
+ (0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
47
+ };
48
+ const handleChangeQualityLevel = (newQualityLevel) => {
49
+ context.hls.currentLevel = newQualityLevel;
50
+ (0, handlers_1.closeModal)(modalHistory, setModalHistory, setActiveModal);
51
+ };
52
+ const handleSubtitleBtn = (e) => {
53
+ context.hls.subtitleDisplay ? context.hls.subtitleDisplay = false : context.hls.subtitleDisplay = true;
54
+ };
55
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.settingsContainer, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subtitle, onClick: (e) => handleSubtitleBtn(e), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrap, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'subtitle' }) }) }), (0, jsx_runtime_1.jsxs)("div", { id: 'settingsWrapper', className: styles_module_scss_1.default.settingsWrapper, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.settings, onClick: (e) => (0, handlers_1.openModal)(e, 'settings', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrapSettings, children: (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'settings' }) }) }), activeModal === 'settings' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, children: [(0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: (e) => (0, handlers_1.openModal)(e, 'quality', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modalBtnContainer, children: [(0, jsx_runtime_1.jsx)("div", { children: "\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E" }), (0, jsx_runtime_1.jsx)("div", { children: `${(_a = context.hls.levels[context.hls.currentLevel]) === null || _a === void 0 ? void 0 : _a.height}p` })] }) }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: (e) => (0, handlers_1.openModal)(e, 'speed', setModalHistory, setActiveModal), children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modalBtnContainer, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.speedLabel, children: "\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u044F" }), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.speedValue, children: [videoRef.current.playbackRate, "x"] })] }) })] })), activeModal === 'quality' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, onClick: () => (0, handlers_1.goBack)(modalHistory, setModalHistory, setActiveModal), children: [(0, jsx_runtime_1.jsxs)("h3", { className: styles_module_scss_1.default.modalHeader, children: ['<', " \u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E"] }), context.hls.levels.map((level, index) => {
56
+ return ((0, jsx_runtime_1.jsxs)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleChangeQualityLevel(index), children: [level === null || level === void 0 ? void 0 : level.height, "p"] }, index));
57
+ })] })), activeModal === 'speed' && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.modal, onClick: () => (0, handlers_1.goBack)(modalHistory, setModalHistory, setActiveModal), children: [(0, jsx_runtime_1.jsxs)("h3", { className: styles_module_scss_1.default.modalHeader, children: ['<', " \u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u044F"] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.25), children: "0.25x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.5), children: "0.5x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(0.75), children: "0.75x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1), children: "1x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.25), children: "1.25x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.5), children: "1.5x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(1.75), children: "1.75x" }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.modalBtn, onClick: () => handleSpeed(2), children: "2x" })] }))] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subtitle, onClick: (e) => (0, handlers_1.handleOpenFullScreen)(e, setIsFull), children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.btnWrap, children: isFull ? (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'fullScreenOff' }) : (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: 'fullScreenOn' }) }) })] }));
58
+ };
59
+ exports.SettingsButtons = SettingsButtons;
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/SettingsButtons/ui/index.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- interface IShortDescription {
3
- channelUrl: string;
4
- channelAvatarUrl: string;
5
- username: string;
6
- videoName: string;
7
- }
8
- export declare const ShortDescription: React.FC<IShortDescription>;
9
- export {};
1
+ import React from 'react';
2
+ interface IShortDescription {
3
+ channelUrl: string;
4
+ channelAvatarUrl: string;
5
+ username: string;
6
+ videoName: string;
7
+ }
8
+ export declare const ShortDescription: React.FC<IShortDescription>;
9
+ export {};
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAqB7D,UAAU,iBAAiB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAaxD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,UAAU,iBAAiB;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAaxD,CAAA"}
@@ -0,0 +1,15 @@
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.ShortDescription = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const link_1 = __importDefault(require("next/link"));
10
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
11
+ const ShortDescription = ({ channelAvatarUrl, channelUrl, username, videoName }) => {
12
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.shortDescriptionContainer, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.channelInfo, children: [(0, jsx_runtime_1.jsxs)(link_1.default, { href: channelUrl, className: styles_module_scss_1.default.channelInfo, children: [(0, jsx_runtime_1.jsx)("img", { src: channelAvatarUrl, alt: 'avatar', className: styles_module_scss_1.default.channelAvatar }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.channelUsername, children: username })] }), (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.subscriptionBtn, children: "\u043F\u043E\u0434\u043F\u0438\u0441\u0430\u0442\u044C\u0441\u044F" })] }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.videoName, children: videoName })] }));
13
+ };
14
+ exports.ShortDescription = ShortDescription;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/ShortDescription/ui/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAIZ,qDAA4B;AAC5B,8EAAyC;AAUlC,MAAM,gBAAgB,GAAgC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IACnH,OAAO,CACH,iCAAK,SAAS,EAAE,4BAAM,CAAC,yBAAyB,aAC5C,iCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW,aAC9B,wBAAC,cAAI,IAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,4BAAM,CAAC,WAAW,aACjD,gCAAK,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAE,4BAAM,CAAC,aAAa,GAAG,EAC3E,gCAAK,SAAS,EAAE,4BAAM,CAAC,eAAe,YAAG,QAAQ,GAAO,IACrD,EACP,mCAAQ,SAAS,EAAE,4BAAM,CAAC,eAAe,mFAAsB,IAC7D,EACN,gCAAK,SAAS,EAAE,4BAAM,CAAC,SAAS,YAAG,SAAS,GAAO,IACjD,CACT,CAAA;AACL,CAAC,CAAA;AAbY,QAAA,gBAAgB,oBAa5B"}
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- interface IShortVideoBtns {
3
- channelId: string;
4
- videoId: string;
5
- dislikes: string;
6
- likes: string;
7
- commentsCount: string;
8
- }
9
- export declare const ShortVideoBtns: React.FC<IShortVideoBtns>;
10
- export {};
1
+ import React from 'react';
2
+ interface IShortVideoBtns {
3
+ channelId: string;
4
+ videoId: string;
5
+ dislikes: string;
6
+ likes: string;
7
+ commentsCount: string;
8
+ }
9
+ export declare const ShortVideoBtns: React.FC<IShortVideoBtns>;
10
+ export {};
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,UAAU,eAAe;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkCpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entites/ShortVideoBtns/ui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,UAAU,eAAe;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkCpD,CAAA"}
@@ -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"}
@@ -1,6 +1,6 @@
1
- import { RefObject } from "react";
2
- export declare const handleMuteOnClick: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
3
- export declare const handleMouseClickSoundBtn: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
4
- export declare const handleMouseDownSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
5
- export declare const handleMouseUpSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
1
+ import { RefObject } from "react";
2
+ export declare const handleMuteOnClick: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
3
+ export declare const handleMouseClickSoundBtn: (e: React.MouseEvent, videoRef: RefObject<HTMLVideoElement | null>, setCurrentVolume: (volume: number) => void) => void;
4
+ export declare const handleMouseDownSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
5
+ export declare const handleMouseUpSoundBtn: (e: React.MouseEvent, setIsDraggingVolume: (isDragging: boolean) => void) => void;
6
6
  //# sourceMappingURL=handlers.d.ts.map
@@ -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"}
@@ -1,7 +1,7 @@
1
- import React, { RefObject } from 'react';
2
- interface ISoundVolume {
3
- videoRef: RefObject<HTMLVideoElement | null>;
4
- }
5
- export declare const SoundBtn: React.FC<ISoundVolume>;
6
- export {};
1
+ import React, { RefObject } from 'react';
2
+ interface ISoundVolume {
3
+ videoRef: RefObject<HTMLVideoElement | null>;
4
+ }
5
+ export declare const SoundBtn: React.FC<ISoundVolume>;
6
+ export {};
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -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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"}
@@ -1,2 +1,2 @@
1
- export { ProgressBar } from './ui/progress-bar';
1
+ export { ProgressBar } from './ui/progress-bar';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,16 +1,16 @@
1
- import { IFragment } from "@/widget/video-tag/model/video-tag.interface";
2
- import { Dispatch, JSX, RefObject, SetStateAction } from "react";
3
- export declare const handleMouseMove: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, setHoverTime: (newHoverTime: number) => void) => void;
4
- export declare const handleClick: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, videoRef: RefObject<HTMLMediaElement>, setCurrentVideoTime: (newCurrentVideoTime: number) => void) => void;
5
- export declare const handleMouseDown: (e: React.MouseEvent, setIsDragging: Dispatch<SetStateAction<boolean>>) => void;
6
- export interface ProgressBarFragmentProps {
7
- duration: number;
8
- fragments: IFragment[] | null | undefined;
9
- bufferedFragments: Array<{
10
- start: number;
11
- end: number;
12
- }>;
13
- currentVideoTime: number;
14
- }
15
- export declare const getProgressBarFragments: ({ duration, fragments, bufferedFragments, currentVideoTime, }: ProgressBarFragmentProps) => JSX.Element[];
1
+ import { IFragment } from "@/widget/video-tag/model/video-tag.interface";
2
+ import { Dispatch, JSX, RefObject, SetStateAction } from "react";
3
+ export declare const handleMouseMove: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, setHoverTime: (newHoverTime: number) => void) => void;
4
+ export declare const handleClick: (e: React.MouseEvent, isDragging: boolean, duration: number, progressContainerRef: RefObject<HTMLDivElement | null>, videoRef: RefObject<HTMLMediaElement>, setCurrentVideoTime: (newCurrentVideoTime: number) => void) => void;
5
+ export declare const handleMouseDown: (e: React.MouseEvent, setIsDragging: Dispatch<SetStateAction<boolean>>) => void;
6
+ export interface ProgressBarFragmentProps {
7
+ duration: number;
8
+ fragments: IFragment[] | null | undefined;
9
+ bufferedFragments: Array<{
10
+ start: number;
11
+ end: number;
12
+ }>;
13
+ currentVideoTime: number;
14
+ }
15
+ export declare const getProgressBarFragments: ({ duration, fragments, bufferedFragments, currentVideoTime, }: ProgressBarFragmentProps) => JSX.Element[];
16
16
  //# sourceMappingURL=handlers.d.ts.map
@@ -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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"}
@@ -1,11 +1,11 @@
1
- import { RefObject } from "react";
2
- import { IFragment } from "../../../widget/video-tag/model/video-tag.interface";
3
- interface IProgressBar {
4
- duration: number;
5
- videoRef: RefObject<HTMLVideoElement>;
6
- fragments?: IFragment[];
7
- isLiveStream?: boolean;
8
- }
9
- export declare const ProgressBar: React.FC<IProgressBar>;
10
- export {};
1
+ import { RefObject } from "react";
2
+ import { IFragment } from "../../../widget/video-tag/model/video-tag.interface";
3
+ interface IProgressBar {
4
+ duration: number;
5
+ videoRef: RefObject<HTMLVideoElement>;
6
+ fragments?: IFragment[];
7
+ isLiveStream?: boolean;
8
+ }
9
+ export declare const ProgressBar: React.FC<IProgressBar>;
10
+ export {};
11
11
  //# sourceMappingURL=progress-bar.d.ts.map