@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,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.metadata = void 0;
4
+ exports.default = RootLayout;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const google_1 = require("next/font/google");
7
+ require("./globals.scss");
8
+ const geistSans = (0, google_1.Geist)({
9
+ variable: "--font-geist-sans",
10
+ subsets: ["latin"],
11
+ });
12
+ const geistMono = (0, google_1.Geist_Mono)({
13
+ variable: "--font-geist-mono",
14
+ subsets: ["latin"],
15
+ });
16
+ exports.metadata = {
17
+ title: "Create Next App",
18
+ description: "Generated by create next app",
19
+ };
20
+ function RootLayout({ children, }) {
21
+ return ((0, jsx_runtime_1.jsx)("html", { lang: "en", className: `${geistSans.variable} ${geistMono.variable}`, children: (0, jsx_runtime_1.jsx)("body", { children: children }) }));
22
+ }
23
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/app/layout.tsx"],"names":[],"mappings":";;;AAmBA,6BAUC;;AA5BD,6CAAqD;AACrD,0BAAwB;AAExB,MAAM,SAAS,GAAG,IAAA,cAAK,EAAC;IACtB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC;IAC3B,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC,CAAC;AAEU,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,8BAA8B;CAC5C,CAAC;AAEF,SAAwB,UAAU,CAAC,EACjC,QAAQ,GAGR;IACA,OAAO,CACL,iCAAM,IAAI,EAAC,IAAI,EAAC,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,YACtE,2CAAO,QAAQ,GAAQ,GAClB,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.default = Home;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const component_1 = require("@/component");
7
+ // СТАРТУЕМ ПЕРЕДЕЛ ПОД ЛАЙВЫ
8
+ // const VIDEODATA = {
9
+ // playlistUrl: '/videos/hls_output/master.m3u8',
10
+ // duration: 9.333,
11
+ // }
12
+ const VIDEODATA = {
13
+ playlistUrl: '/videos/long-video/longVIdeo.m3u8',
14
+ duration: 40.333,
15
+ };
16
+ function Home() {
17
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '500px', height: '1000px' }, children: (0, jsx_runtime_1.jsx)(component_1.ShortPlayer, { playlistUrl: VIDEODATA.playlistUrl, duration: VIDEODATA === null || VIDEODATA === void 0 ? void 0 : VIDEODATA.duration, theme: "dark" }) }));
18
+ }
19
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/app/page.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAoBZ,uBAOC;;AAzBD,2CAA0C;AAG1C,6BAA6B;AAE7B,sBAAsB;AACtB,mDAAmD;AACnD,qBAAqB;AACrB,IAAI;AAGJ,MAAM,SAAS,GAAG;IAChB,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE,MAAM;CACjB,CAAA;AAID,SAAwB,IAAI;IAE1B,OAAO,CACL,gCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,YAC7C,uBAAC,uBAAW,IAAC,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,GAAE,GAC1F,CACP,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ interface IShortPlayerContext {
9
9
  isVisibleTools: boolean;
10
10
  setIsVisibleTools: Dispatch<SetStateAction<boolean>>;
11
11
  }
12
- export declare const playerContext: React.Context<IShortPlayerContext | null>;
12
+ export declare const playerContext: React.Context<IShortPlayerContext>;
13
13
  export declare const usePlayerContext: () => IShortPlayerContext;
14
14
  interface IShortPlayer {
15
15
  playlistUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,EAAiB,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAwD,MAAM,OAAO,CAAC;AAEjI,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,GAAG,EAAE,GAAG,CAAA;IACR,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,eAAO,MAAM,aAAa,2CAAkD,CAAC;AAoC7E,eAAO,MAAM,gBAAgB,2BAM5B,CAAC;AAEF,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6B9C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.tsx"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,EAAiB,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAwD,MAAM,OAAO,CAAC;AAEjI,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,GAAG,EAAE,GAAG,CAAA;IACR,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,eAAO,MAAM,aAAa,oCAAkD,CAAC;AAoC7E,eAAO,MAAM,gBAAgB,2BAM5B,CAAC;AAEF,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6B9C,CAAA"}
@@ -0,0 +1,64 @@
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.ShortPlayer = exports.usePlayerContext = exports.playerContext = void 0;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const hls_js_1 = __importDefault(require("hls.js"));
10
+ const react_1 = require("react");
11
+ const video_tag_1 = require("../widgets/video-tag/ui/video-tag");
12
+ const themeProvider_1 = require("../shared/providers/themeProvider");
13
+ exports.playerContext = (0, react_1.createContext)(null);
14
+ const ShortPlayerProvider = ({ children, videoRef, hls }) => {
15
+ var _a, _b;
16
+ const [isPaused, setIsPaused] = (0, react_1.useState)(true);
17
+ const [isVisibleTools, setIsVisibleTools] = (0, react_1.useState)(false);
18
+ const hideToolsTimer = (0, react_1.useRef)(null);
19
+ if (isPaused) {
20
+ (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.pause();
21
+ }
22
+ else {
23
+ (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
24
+ }
25
+ const value = {
26
+ isPaused,
27
+ setIsPaused,
28
+ hls,
29
+ hideToolsTimer,
30
+ isVisibleTools,
31
+ setIsVisibleTools,
32
+ };
33
+ return ((0, jsx_runtime_1.jsx)(exports.playerContext.Provider, { value: value, children: children }));
34
+ };
35
+ const usePlayerContext = () => {
36
+ const context = (0, react_1.useContext)(exports.playerContext);
37
+ if (!context) {
38
+ throw new Error('usePlayerContext must be used within PlayerProvider');
39
+ }
40
+ return context;
41
+ };
42
+ exports.usePlayerContext = usePlayerContext;
43
+ const ShortPlayer = ({ playlistUrl, duration, theme = 'dark' }) => {
44
+ const videoRef = (0, react_1.useRef)(null);
45
+ const hls = new hls_js_1.default({ startLevel: -1,
46
+ maxBufferLength: 3,
47
+ lowLatencyMode: false,
48
+ maxMaxBufferLength: 60,
49
+ liveSyncDurationCount: 3,
50
+ liveDurationInfinity: true,
51
+ autoStartLoad: true,
52
+ enableWorker: true
53
+ // debug: true
54
+ });
55
+ (0, react_1.useEffect)(() => {
56
+ if (hls_js_1.default.isSupported() && videoRef.current) {
57
+ hls.loadSource(playlistUrl);
58
+ hls.attachMedia(videoRef.current);
59
+ }
60
+ }, []);
61
+ return ((0, jsx_runtime_1.jsx)(ShortPlayerProvider, { videoRef: videoRef, hls: hls, children: (0, jsx_runtime_1.jsx)(themeProvider_1.ThemeProvider, { initialTheme: theme, children: (0, jsx_runtime_1.jsx)(video_tag_1.VideoTag, { duration: duration, videoRef: videoRef }) }) }));
62
+ };
63
+ exports.ShortPlayer = ShortPlayer;
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/component/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;AAEZ,oDAAyB;AACzB,iCAAiI;AAGjI,iEAA6D;AAC7D,qEAAyE;AAW5D,QAAA,aAAa,GAAG,IAAA,qBAAa,EAA6B,IAAI,CAAC,CAAC;AAQ7E,MAAM,mBAAmB,GAAkC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAC,EAAE,EAAE;;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAU,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAA;IACpE,MAAM,cAAc,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAEnD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,IAAI,EAAE,CAAA;IAC3B,CAAC;IAGD,MAAM,KAAK,GAAwB;QACjC,QAAQ;QACR,WAAW;QACX,GAAG;QACH,cAAc;QACd,cAAc;QACd,iBAAiB;KAClB,CAAC;IAEF,OAAO,CACL,uBAAC,qBAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACjC,QAAQ,GACc,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,qBAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B;AAQK,MAAM,WAAW,GAA2B,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,GAAC,MAAM,EAAE,EAAE,EAAE;IAE5F,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAA;IAE/C,MAAM,GAAG,GAAG,IAAI,gBAAG,CAAC,EAAC,UAAU,EAAE,CAAC,CAAC;QACjC,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,EAAE;QACtB,qBAAqB,EAAE,CAAC;QACxB,oBAAoB,EAAE,IAAI;QAC1B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;QAClB,cAAc;KACf,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,gBAAG,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;YAC3B,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,uBAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAC/C,uBAAC,6BAAa,IAAC,YAAY,EAAE,KAAc,YACzC,uBAAC,oBAAQ,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,GACrC,GACI,CACvB,CAAC;AACJ,CAAC,CAAA;AA7BY,QAAA,WAAW,eA6BvB"}
@@ -0,0 +1,23 @@
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.PlayBtn = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const component_1 = require("../../../component");
9
+ const ui_1 = require("../../../shared/ui");
10
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
11
+ const PlayBtn = ({ videoRef }) => {
12
+ var _a;
13
+ const context = (0, component_1.usePlayerContext)();
14
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.playBtnWrap, children: (0, jsx_runtime_1.jsx)("button", { className: styles_module_scss_1.default.playBtn, onClick: (e) => {
15
+ e.stopPropagation();
16
+ context.setIsPaused((prev) => !prev);
17
+ }, children: ((_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused) ?
18
+ (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: "play" })
19
+ :
20
+ (0, jsx_runtime_1.jsx)(ui_1.Svg, { name: "stop" }) }) }));
21
+ };
22
+ exports.PlayBtn = PlayBtn;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/PlayBtn/ui/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,kDAAqD;AACrD,2CAAwC;AAExC,8EAAyC;AAElC,MAAM,OAAO,GAAG,CAAC,EAAC,QAAQ,EAAkD,EAAE,EAAE;;IACnF,MAAM,OAAO,GAAG,IAAA,4BAAgB,GAAE,CAAA;IAElC,OAAO,CACH,gCAAK,SAAS,EAAE,4BAAM,CAAC,WAAW,YAC9B,mCACI,SAAS,EAAE,4BAAM,CAAC,OAAO,EACzB,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE;gBAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,WAAW,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YACjD,CAAC,YAEA,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,EAAC,CAAC;gBACnB,uBAAC,QAAG,IAAC,IAAI,EAAC,MAAM,GAAG;gBACvB,CAAC;oBACG,uBAAC,QAAG,IAAC,IAAI,EAAC,MAAM,GAAE,GAErB,GACP,CACT,CAAA;AACL,CAAC,CAAA;AApBY,QAAA,OAAO,WAoBnB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgressBar = void 0;
4
+ var ui_1 = require("./ui");
5
+ Object.defineProperty(exports, "ProgressBar", { enumerable: true, get: function () { return ui_1.ProgressBar; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entites/ProgressBar/index.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAAzB,iGAAA,WAAW,OAAA"}
@@ -0,0 +1,99 @@
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.handleMouseUpWrapper = exports.handleMouseDown = exports.handleClick = exports.handleMouseOver = 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 handleMouseOver = (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.handleMouseOver = handleMouseOver;
19
+ const handleClick = (e, isDragging, duration, progressContainerRef, videoRef, setCurrentVideoTime, setIsDragging) => {
20
+ if (!isDragging && progressContainerRef.current && duration) {
21
+ console.log('handleClick');
22
+ const rect = progressContainerRef.current.getBoundingClientRect();
23
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
24
+ const newTime = (clickPosition / rect.width) * duration;
25
+ videoRef.current.currentTime = newTime;
26
+ setCurrentVideoTime(newTime);
27
+ setIsDragging(false);
28
+ }
29
+ };
30
+ exports.handleClick = handleClick;
31
+ const handleMouseDown = (e, setIsDragging) => {
32
+ e.preventDefault();
33
+ console.log('handleMouseDown');
34
+ setIsDragging(true);
35
+ };
36
+ exports.handleMouseDown = handleMouseDown;
37
+ const handleMouseUpWrapper = (e, duration, progressContainerRef, videoRef, setCurrentVideoTime, setIsDragging, setHoverTime) => {
38
+ console.log('handleMouseUpWrapper222s');
39
+ if (!progressContainerRef.current || !videoRef.current || !duration)
40
+ return;
41
+ const rect = progressContainerRef.current.getBoundingClientRect();
42
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
43
+ const clickPercentage = (clickPosition / rect.width);
44
+ const newTime = clickPercentage * duration;
45
+ // Финальное обновление
46
+ videoRef.current.currentTime = newTime;
47
+ setCurrentVideoTime(newTime);
48
+ setHoverTime(0);
49
+ setIsDragging(false);
50
+ // Восстанавливаем таймер обновления
51
+ };
52
+ exports.handleMouseUpWrapper = handleMouseUpWrapper;
53
+ const getProgressBarFragments = ({ duration, currentVideoTime, }) => {
54
+ const elements = [];
55
+ // Общая логика прогресса и буфера
56
+ const getGradientStops = (start, end, progress) => {
57
+ const gradientStops = [];
58
+ const progressPercent = progress >= end
59
+ ? 100
60
+ : progress > start
61
+ ? ((progress - start) / (end - start)) * 100
62
+ : 0;
63
+ if (progressPercent > 0) {
64
+ gradientStops.push("#1e90ff 0%");
65
+ gradientStops.push(`#1e90ff ${progressPercent}%`);
66
+ gradientStops.push(`#444 ${progressPercent}%`);
67
+ }
68
+ else {
69
+ gradientStops.push("#444 0%");
70
+ }
71
+ const bufferStops = [];
72
+ bufferStops.forEach(buffer => {
73
+ gradientStops.push(`#666 ${buffer.start}%`);
74
+ gradientStops.push(`#666 ${buffer.end}%`);
75
+ });
76
+ const lastValue = gradientStops.length > 0
77
+ ? parseFloat(gradientStops[gradientStops.length - 1].split(" ")[1].replace("%", ""))
78
+ : 0;
79
+ if (lastValue < 100) {
80
+ gradientStops.push(`#444 ${Math.max(lastValue, progressPercent)}%`);
81
+ gradientStops.push(`#444 100%`);
82
+ }
83
+ return gradientStops;
84
+ };
85
+ // Если нет фрагментов — одна сплошная полоса
86
+ if (duration) {
87
+ const gradientStops = getGradientStops(0, duration || 100, currentVideoTime);
88
+ const gradient = `linear-gradient(to right, ${gradientStops.join(", ")})`;
89
+ elements.push((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.fragment, style: {
90
+ left: "0%",
91
+ width: "100%",
92
+ background: gradient,
93
+ } }, "single-fragment"));
94
+ return elements;
95
+ }
96
+ return elements;
97
+ };
98
+ exports.getProgressBarFragments = getProgressBarFragments;
99
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/entites/ProgressBar/lib/handlers.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
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 handlers_1 = require("../lib/handlers");
12
+ const getHHSStime_1 = require("../../../shared/utils/getHHSStime");
13
+ const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
14
+ // interface IBufferedFragment {
15
+ // start: number;
16
+ // end: number;
17
+ // }
18
+ const ProgressBar = ({ duration, videoRef, }) => {
19
+ const [hoverTime, setHoverTime] = (0, react_1.useState)(0);
20
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
21
+ const [currentVideoTime, setCurrentVideoTime] = (0, react_1.useState)(0); // Локальное состояние для времени
22
+ const progressContainerRef = (0, react_1.useRef)(null);
23
+ // const isMovingRef = useRef<HTMLDivElement>(null);
24
+ const animationFrameRef = (0, react_1.useRef)(0); // Ref для requestAnimationFrame
25
+ const context = (0, component_1.usePlayerContext)();
26
+ // Оптимизированный таймер для обновления времени
27
+ (0, react_1.useEffect)(() => {
28
+ const video = videoRef.current;
29
+ if (!video || isDragging)
30
+ return;
31
+ const updateTime = () => {
32
+ setCurrentVideoTime(video.currentTime);
33
+ animationFrameRef.current = requestAnimationFrame(updateTime);
34
+ };
35
+ // Запускаем обновление через requestAnimationFrame для плавности
36
+ animationFrameRef.current = requestAnimationFrame(updateTime);
37
+ return () => {
38
+ if (animationFrameRef.current) {
39
+ cancelAnimationFrame(animationFrameRef.current);
40
+ }
41
+ };
42
+ }, [videoRef, duration, isDragging]);
43
+ (0, react_1.useEffect)(() => {
44
+ if (!isDragging)
45
+ return;
46
+ console.log('Dragging started');
47
+ const handleMouseMoveWrapper = (e) => {
48
+ console.log('handleMouseMoveWrapper');
49
+ if (!progressContainerRef.current || !duration)
50
+ return;
51
+ // Ставим видео на паузу при начале перетаскивания
52
+ context.setIsPaused(true);
53
+ // Используем requestAnimationFrame для плавного обновления
54
+ requestAnimationFrame(() => {
55
+ const rect = progressContainerRef.current.getBoundingClientRect();
56
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
57
+ const clickPercentage = (clickPosition / rect.width);
58
+ const newTime = clickPercentage * duration;
59
+ // Обновляем локальное состояние
60
+ setCurrentVideoTime(newTime);
61
+ if (videoRef.current) {
62
+ videoRef.current.currentTime = newTime;
63
+ }
64
+ setHoverTime(newTime);
65
+ const timeHoverPosition = document.getElementById('timeHover');
66
+ if (timeHoverPosition) {
67
+ timeHoverPosition.style.left = `${clickPosition}px`;
68
+ }
69
+ });
70
+ };
71
+ const handleMouseUpWrapperGlobal = (e) => {
72
+ console.log('handleMouseUpWrapper - GLOBAL');
73
+ if (!progressContainerRef.current || !videoRef.current || !duration)
74
+ return;
75
+ const rect = progressContainerRef.current.getBoundingClientRect();
76
+ const clickPosition = Math.min(Math.max(e.clientX - rect.left, 0), rect.width);
77
+ const clickPercentage = (clickPosition / rect.width);
78
+ const newTime = clickPercentage * duration;
79
+ // Финальное обновление
80
+ videoRef.current.currentTime = newTime;
81
+ setCurrentVideoTime(newTime);
82
+ setHoverTime(0);
83
+ setIsDragging(false);
84
+ // Восстанавливаем воспроизведение (если нужно)
85
+ // context.setIsPaused(false); // Раскомментируйте если нужно
86
+ };
87
+ const playerContainer = document.documentElement;
88
+ if (!playerContainer)
89
+ return;
90
+ window.addEventListener('mousemove', handleMouseMoveWrapper);
91
+ window.addEventListener('mouseup', handleMouseUpWrapperGlobal);
92
+ return () => {
93
+ console.log('Cleaning up drag handlers');
94
+ window.removeEventListener('mousemove', handleMouseMoveWrapper);
95
+ window.removeEventListener('mouseup', handleMouseUpWrapperGlobal);
96
+ };
97
+ }, [isDragging, duration, videoRef, context]);
98
+ // Обновляем буфер
99
+ // useEffect(() => {
100
+ // if (!videoRef?.current) return;
101
+ // const videoElement = videoRef.current;
102
+ // const updateBufferedRanges = () => {
103
+ // const fragments: IBufferedFragment[] = [];
104
+ // for (let index = 0; index < videoElement.buffered.length; index++) {
105
+ // fragments.push({
106
+ // start: videoElement.buffered.start(index),
107
+ // end: videoElement.buffered.end(index)
108
+ // });
109
+ // }
110
+ // setBufferedFragments(fragments);
111
+ // };
112
+ // videoElement.addEventListener('progress', updateBufferedRanges);
113
+ // videoElement.addEventListener('loadeddata', updateBufferedRanges);
114
+ // return () => {
115
+ // videoElement.removeEventListener('progress', updateBufferedRanges);
116
+ // videoElement.removeEventListener('loadeddata', updateBufferedRanges);
117
+ // };
118
+ // }, [videoRef]);
119
+ // if (isLiveStream || !duration) return <div>это стрим, нужно переделать прогрес бар</div>
120
+ console.log('isDragging = ', isDragging);
121
+ 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: {
122
+ left: `${(hoverTime / duration) * 100}%`,
123
+ display: hoverTime ? 'block' : 'none'
124
+ }, 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, setIsDragging), onMouseDown: (e) => {
125
+ (0, handlers_1.handleMouseDown)(e, setIsDragging);
126
+ },
127
+ // onMouseUp={(e: React.MouseEvent) => handleMouseUpWrapper(e, duration, progressContainerRef, videoRef, setCurrentVideoTime, setIsDragging, setHoverTime)}
128
+ onMouseLeave: () => {
129
+ if (!isDragging) {
130
+ setHoverTime(0);
131
+ }
132
+ }, onMouseMove: (e) => (0, handlers_1.handleMouseOver)(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, currentVideoTime }) }) })] }));
133
+ };
134
+ exports.ProgressBar = ProgressBar;
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entites/ProgressBar/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.SettingsButtons = void 0;
4
+ var ui_1 = require("./ui");
5
+ Object.defineProperty(exports, "SettingsButtons", { enumerable: true, get: function () { return ui_1.SettingsButtons; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entites/SettingsButtons/index.ts"],"names":[],"mappings":";;;AAAA,2BAAsC;AAA7B,qGAAA,eAAe,OAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleOpenFullScreen = exports.goBack = exports.closeModal = exports.openModal = exports.handleChangeVideoSpeed = void 0;
4
+ const handleChangeVideoSpeed = (videoRef, value) => {
5
+ if (!videoRef || !videoRef.current)
6
+ return;
7
+ videoRef.current.playbackRate = value;
8
+ };
9
+ exports.handleChangeVideoSpeed = handleChangeVideoSpeed;
10
+ const openModal = (e, newTitle, setModalHistory, setActiveModal) => {
11
+ e.stopPropagation();
12
+ if (newTitle) {
13
+ setModalHistory((prev) => [...prev, newTitle]);
14
+ setActiveModal(newTitle);
15
+ }
16
+ };
17
+ exports.openModal = openModal;
18
+ const closeModal = (modalHistory, setModalHistory, setActiveModal) => {
19
+ setModalHistory([]);
20
+ setActiveModal(null);
21
+ };
22
+ exports.closeModal = closeModal;
23
+ const goBack = (modalHistory, setModalHistory, setActiveModal) => {
24
+ if (modalHistory.length > 0) {
25
+ const previousModal = modalHistory[modalHistory.length - 2];
26
+ setModalHistory(prev => prev.slice(0, -1));
27
+ setActiveModal(previousModal);
28
+ }
29
+ };
30
+ exports.goBack = goBack;
31
+ const handleOpenFullScreen = (e, setIsFull) => {
32
+ e.stopPropagation();
33
+ const playerContainer = document.getElementById('playerContainer');
34
+ setIsFull((prev) => {
35
+ if (prev) {
36
+ document === null || document === void 0 ? void 0 : document.exitFullscreen();
37
+ return false;
38
+ }
39
+ else {
40
+ playerContainer === null || playerContainer === void 0 ? void 0 : playerContainer.requestFullscreen();
41
+ return true;
42
+ }
43
+ });
44
+ };
45
+ exports.handleOpenFullScreen = handleOpenFullScreen;
46
+ //# sourceMappingURL=handlers.js.map
@@ -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"}
@@ -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":""}
@@ -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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"}
@@ -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"}