@hh.ru/magritte-ui-video 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Video.js +44 -5
- package/Video.js.map +1 -1
- package/VideoControls.js +4 -4
- package/VideoControls.js.map +1 -1
- package/VideoPlayer.js +12 -9
- package/VideoPlayer.js.map +1 -1
- package/index.css +61 -61
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/internal/ControlButton.js +1 -1
- package/internal/Scrubber.js +1 -1
- package/internal/SeekIndicator.js +1 -1
- package/internal/VolumeSlider.js +1 -1
- package/internal/context.d.ts +4 -0
- package/internal/context.js.map +1 -1
- package/internal/store.d.ts +46 -1
- package/internal/store.js +181 -34
- package/internal/store.js.map +1 -1
- package/internal/useViewportVisibility.d.ts +6 -0
- package/internal/useViewportVisibility.js +31 -0
- package/internal/useViewportVisibility.js.map +1 -0
- package/package.json +2 -2
- package/types.d.ts +34 -0
- package/video-BnfN4Emx.js +5 -0
- package/video-BnfN4Emx.js.map +1 -0
- package/video-C-iklAZX.js +0 -5
- package/video-C-iklAZX.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import './../index.css';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
const VISIBLE_RATIO = 0.1;
|
|
5
|
+
const useViewportVisibility = (ref, store, enabled) => {
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const element = ref.current;
|
|
8
|
+
if (!enabled || !element) {
|
|
9
|
+
return void 0;
|
|
10
|
+
}
|
|
11
|
+
if (typeof IntersectionObserver === "undefined") {
|
|
12
|
+
store.setVisible(true);
|
|
13
|
+
return () => store.setVisible(null);
|
|
14
|
+
}
|
|
15
|
+
const observer = new IntersectionObserver(
|
|
16
|
+
(entries) => {
|
|
17
|
+
const entry = entries[entries.length - 1];
|
|
18
|
+
store.setVisible(entry.isIntersecting && entry.intersectionRatio >= VISIBLE_RATIO);
|
|
19
|
+
},
|
|
20
|
+
{ threshold: [0, VISIBLE_RATIO] }
|
|
21
|
+
);
|
|
22
|
+
observer.observe(element);
|
|
23
|
+
return () => {
|
|
24
|
+
observer.disconnect();
|
|
25
|
+
store.setVisible(null);
|
|
26
|
+
};
|
|
27
|
+
}, [ref, store, enabled]);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { VISIBLE_RATIO, useViewportVisibility };
|
|
31
|
+
//# sourceMappingURL=useViewportVisibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useViewportVisibility.js","sources":["src/internal/useViewportVisibility.ts"],"sourcesContent":["import { type RefObject, useEffect } from 'react';\n\nimport { type VideoStore } from '@hh.ru/magritte-ui-video/internal/store';\n\n/** Плеер считается видимым, когда во вьюпорт попала эта доля его площади */\nexport const VISIBLE_RATIO = 0.1;\n\n/** Сообщает стору видимость плеера во вьюпорте — по ней работают автовоспроизведение и автопауза */\nexport const useViewportVisibility = (ref: RefObject<HTMLElement>, store: VideoStore, enabled: boolean): void => {\n useEffect(() => {\n const element = ref.current;\n if (!enabled || !element) {\n return undefined;\n }\n // без IntersectionObserver видимость не узнать — считаем плеер видимым, чтобы автовоспроизведение работало\n if (typeof IntersectionObserver === 'undefined') {\n store.setVisible(true);\n return () => store.setVisible(null);\n }\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[entries.length - 1];\n store.setVisible(entry.isIntersecting && entry.intersectionRatio >= VISIBLE_RATIO);\n },\n { threshold: [0, VISIBLE_RATIO] }\n );\n observer.observe(element);\n return () => {\n observer.disconnect();\n store.setVisible(null);\n };\n }, [ref, store, enabled]);\n};\n"],"names":[],"mappings":";;AAKO,MAAM,aAAgB,GAAA,IAAA;AAGtB,MAAM,qBAAwB,GAAA,CAAC,GAA6B,EAAA,KAAA,EAAmB,OAA2B,KAAA;AAC7G,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,UAAU,GAAI,CAAA,OAAA,CAAA;AACpB,IAAI,IAAA,CAAC,OAAW,IAAA,CAAC,OAAS,EAAA;AACtB,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACX;AAEA,IAAI,IAAA,OAAO,yBAAyB,WAAa,EAAA;AAC7C,MAAA,KAAA,CAAM,WAAW,IAAI,CAAA,CAAA;AACrB,MAAO,OAAA,MAAM,KAAM,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,KACtC;AACA,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACjB,CAAC,OAAY,KAAA;AACT,QAAA,MAAM,KAAQ,GAAA,OAAA,CAAQ,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAA,CAAA;AACxC,QAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,cAAkB,IAAA,KAAA,CAAM,qBAAqB,aAAa,CAAA,CAAA;AAAA,OACrF;AAAA,MACA,EAAE,SAAA,EAAW,CAAC,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,KACpC,CAAA;AACA,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA,CAAA;AACxB,IAAA,OAAO,MAAM;AACT,MAAA,QAAA,CAAS,UAAW,EAAA,CAAA;AACpB,MAAA,KAAA,CAAM,WAAW,IAAI,CAAA,CAAA;AAAA,KACzB,CAAA;AAAA,GACD,EAAA,CAAC,GAAK,EAAA,KAAA,EAAO,OAAO,CAAC,CAAA,CAAA;AAC5B;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-video",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "815900ad0a3f7936efeab31da95a22a2f814a1ba"
|
|
45
45
|
}
|
package/types.d.ts
CHANGED
|
@@ -44,6 +44,40 @@ export interface VideoProps {
|
|
|
44
44
|
* источник у `<video>`. Функция читается при подключении элемента: чтобы переподключить источник, смените `src`
|
|
45
45
|
*/
|
|
46
46
|
attachMedia?: VideoAttachMedia;
|
|
47
|
+
/**
|
|
48
|
+
* Автовоспроизведение: видео запускается без звука, когда во вьюпорт попадает 10% плеера. Звук остаётся
|
|
49
|
+
* выключенным, пока его не включит пользователь. После паузы пользователем само не запускается
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
autoPlay?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Автопауза: видео ставится на паузу, когда в вьюпорте остаётся меньше 10% плеера. С `autoPlay` видео
|
|
55
|
+
* продолжается, когда плеер возвращается во вьюпорт
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
autoPause?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Зацикленное воспроизведение: по окончании видео запускается сначала, `onEnded` не вызывается
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
loop?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Звук выключен на старте. Читается при монтировании; дальше звуком управляет пользователь.
|
|
66
|
+
* С `autoPlay` и `interactive={false}` звук выключен всегда
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
defaultMuted?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Громкость на старте, от 0 до 1. Читается при монтировании; дальше громкостью управляет пользователь
|
|
72
|
+
* @default 1
|
|
73
|
+
*/
|
|
74
|
+
defaultVolume?: number;
|
|
75
|
+
/**
|
|
76
|
+
* `false` — неинтерактивный режим: видео запускается автоматически (как с `autoPlay`), зациклено и без звука,
|
|
77
|
+
* а пользователь не может им управлять — нет кнопок, контролов, жестов и горячих клавиш
|
|
78
|
+
* @default true
|
|
79
|
+
*/
|
|
80
|
+
interactive?: boolean;
|
|
47
81
|
/** Колбэк начала воспроизведения */
|
|
48
82
|
onPlay?: VoidFunction;
|
|
49
83
|
/** Колбэк паузы */
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
var styles = {"player":"magritte-player___IHHy5_1-0-2","player-fit":"magritte-player-fit___TX-6X_1-0-2","playerFit":"magritte-player-fit___TX-6X_1-0-2","player-embedded":"magritte-player-embedded___GNvRb_1-0-2","playerEmbedded":"magritte-player-embedded___GNvRb_1-0-2","video":"magritte-video___4cS-u_1-0-2","video-hidden":"magritte-video-hidden___agqVq_1-0-2","videoHidden":"magritte-video-hidden___agqVq_1-0-2","overlay-button":"magritte-overlay-button___MIRAP_1-0-2","overlayButton":"magritte-overlay-button___MIRAP_1-0-2","duration":"magritte-duration___ND1ei_1-0-2","seek-indicator":"magritte-seek-indicator___VJQBC_1-0-2","seekIndicator":"magritte-seek-indicator___VJQBC_1-0-2","seek-indicator-forward":"magritte-seek-indicator-forward___9C5gD_1-0-2","seekIndicatorForward":"magritte-seek-indicator-forward___9C5gD_1-0-2","seek-indicator-backward":"magritte-seek-indicator-backward___gIZ0E_1-0-2","seekIndicatorBackward":"magritte-seek-indicator-backward___gIZ0E_1-0-2","seek-arrows":"magritte-seek-arrows___Ql1eP_1-0-2","seekArrows":"magritte-seek-arrows___Ql1eP_1-0-2","seek-arrow-incoming":"magritte-seek-arrow-incoming___oZxww_1-0-2","seekArrowIncoming":"magritte-seek-arrow-incoming___oZxww_1-0-2","seek-arrow-in":"magritte-seek-arrow-in___CB4-s_1-0-2","seekArrowIn":"magritte-seek-arrow-in___CB4-s_1-0-2","boost-indicator":"magritte-boost-indicator___ujllx_1-0-2","boostIndicator":"magritte-boost-indicator___ujllx_1-0-2","loader":"magritte-loader___qVu0P_1-0-2","error":"magritte-error___Rm7uG_1-0-2","overlay-button-hidden":"magritte-overlay-button-hidden___AoGFc_1-0-2","overlayButtonHidden":"magritte-overlay-button-hidden___AoGFc_1-0-2","controls":"magritte-controls___pKoSN_1-0-2","controls-hidden":"magritte-controls-hidden___bePTD_1-0-2","controlsHidden":"magritte-controls-hidden___bePTD_1-0-2","controls-mobile":"magritte-controls-mobile___tdKGT_1-0-2","controlsMobile":"magritte-controls-mobile___tdKGT_1-0-2","controls-overlay":"magritte-controls-overlay___mRsJL_1-0-2","controlsOverlay":"magritte-controls-overlay___mRsJL_1-0-2","controls-row":"magritte-controls-row___2sdJg_1-0-2","controlsRow":"magritte-controls-row___2sdJg_1-0-2","controls-group-start":"magritte-controls-group-start___yY9ZA_1-0-2","controlsGroupStart":"magritte-controls-group-start___yY9ZA_1-0-2","controls-group-end":"magritte-controls-group-end___ziIm8_1-0-2","controlsGroupEnd":"magritte-controls-group-end___ziIm8_1-0-2","control-pill":"magritte-control-pill___hK8Mv_1-0-2","controlPill":"magritte-control-pill___hK8Mv_1-0-2","controls-time":"magritte-controls-time___e9zoz_1-0-2","controlsTime":"magritte-controls-time___e9zoz_1-0-2","controls-volume":"magritte-controls-volume___o4ajR_1-0-2","controlsVolume":"magritte-controls-volume___o4ajR_1-0-2","control-pill-bare":"magritte-control-pill-bare___lU9ev_1-0-2","controlPillBare":"magritte-control-pill-bare___lU9ev_1-0-2","control-button":"magritte-control-button___VJ2Qr_1-0-2","controlButton":"magritte-control-button___VJ2Qr_1-0-2","scrubber":"magritte-scrubber___-K3ik_1-0-2","scrubber-track":"magritte-scrubber-track___ki1zV_1-0-2","scrubberTrack":"magritte-scrubber-track___ki1zV_1-0-2","scrubber-buffered":"magritte-scrubber-buffered___ufvLe_1-0-2","scrubberBuffered":"magritte-scrubber-buffered___ufvLe_1-0-2","scrubber-progress":"magritte-scrubber-progress___ZIyew_1-0-2","scrubberProgress":"magritte-scrubber-progress___ZIyew_1-0-2","scrubber-thumb":"magritte-scrubber-thumb___VXyPP_1-0-2","scrubberThumb":"magritte-scrubber-thumb___VXyPP_1-0-2","scrubber-timecode":"magritte-scrubber-timecode___M-syA_1-0-2","scrubberTimecode":"magritte-scrubber-timecode___M-syA_1-0-2","volume-slider":"magritte-volume-slider___qE2P7_1-0-2","volumeSlider":"magritte-volume-slider___qE2P7_1-0-2","volume-track":"magritte-volume-track___up8nd_1-0-2","volumeTrack":"magritte-volume-track___up8nd_1-0-2","volume-value":"magritte-volume-value___aUSuU_1-0-2","volumeValue":"magritte-volume-value___aUSuU_1-0-2"};
|
|
3
|
+
|
|
4
|
+
export { styles as s };
|
|
5
|
+
//# sourceMappingURL=video-BnfN4Emx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-BnfN4Emx.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/video-C-iklAZX.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import './index.css';
|
|
2
|
-
var styles = {"player":"magritte-player___IHHy5_1-0-1","player-fit":"magritte-player-fit___TX-6X_1-0-1","playerFit":"magritte-player-fit___TX-6X_1-0-1","player-embedded":"magritte-player-embedded___GNvRb_1-0-1","playerEmbedded":"magritte-player-embedded___GNvRb_1-0-1","video":"magritte-video___4cS-u_1-0-1","video-hidden":"magritte-video-hidden___agqVq_1-0-1","videoHidden":"magritte-video-hidden___agqVq_1-0-1","overlay-button":"magritte-overlay-button___MIRAP_1-0-1","overlayButton":"magritte-overlay-button___MIRAP_1-0-1","duration":"magritte-duration___ND1ei_1-0-1","seek-indicator":"magritte-seek-indicator___VJQBC_1-0-1","seekIndicator":"magritte-seek-indicator___VJQBC_1-0-1","seek-indicator-forward":"magritte-seek-indicator-forward___9C5gD_1-0-1","seekIndicatorForward":"magritte-seek-indicator-forward___9C5gD_1-0-1","seek-indicator-backward":"magritte-seek-indicator-backward___gIZ0E_1-0-1","seekIndicatorBackward":"magritte-seek-indicator-backward___gIZ0E_1-0-1","seek-arrows":"magritte-seek-arrows___Ql1eP_1-0-1","seekArrows":"magritte-seek-arrows___Ql1eP_1-0-1","seek-arrow-incoming":"magritte-seek-arrow-incoming___oZxww_1-0-1","seekArrowIncoming":"magritte-seek-arrow-incoming___oZxww_1-0-1","seek-arrow-in":"magritte-seek-arrow-in___CB4-s_1-0-1","seekArrowIn":"magritte-seek-arrow-in___CB4-s_1-0-1","boost-indicator":"magritte-boost-indicator___ujllx_1-0-1","boostIndicator":"magritte-boost-indicator___ujllx_1-0-1","loader":"magritte-loader___qVu0P_1-0-1","error":"magritte-error___Rm7uG_1-0-1","overlay-button-hidden":"magritte-overlay-button-hidden___AoGFc_1-0-1","overlayButtonHidden":"magritte-overlay-button-hidden___AoGFc_1-0-1","controls":"magritte-controls___pKoSN_1-0-1","controls-hidden":"magritte-controls-hidden___bePTD_1-0-1","controlsHidden":"magritte-controls-hidden___bePTD_1-0-1","controls-mobile":"magritte-controls-mobile___tdKGT_1-0-1","controlsMobile":"magritte-controls-mobile___tdKGT_1-0-1","controls-overlay":"magritte-controls-overlay___mRsJL_1-0-1","controlsOverlay":"magritte-controls-overlay___mRsJL_1-0-1","controls-row":"magritte-controls-row___2sdJg_1-0-1","controlsRow":"magritte-controls-row___2sdJg_1-0-1","controls-group-start":"magritte-controls-group-start___yY9ZA_1-0-1","controlsGroupStart":"magritte-controls-group-start___yY9ZA_1-0-1","controls-group-end":"magritte-controls-group-end___ziIm8_1-0-1","controlsGroupEnd":"magritte-controls-group-end___ziIm8_1-0-1","control-pill":"magritte-control-pill___hK8Mv_1-0-1","controlPill":"magritte-control-pill___hK8Mv_1-0-1","controls-time":"magritte-controls-time___e9zoz_1-0-1","controlsTime":"magritte-controls-time___e9zoz_1-0-1","controls-volume":"magritte-controls-volume___o4ajR_1-0-1","controlsVolume":"magritte-controls-volume___o4ajR_1-0-1","control-pill-bare":"magritte-control-pill-bare___lU9ev_1-0-1","controlPillBare":"magritte-control-pill-bare___lU9ev_1-0-1","control-button":"magritte-control-button___VJ2Qr_1-0-1","controlButton":"magritte-control-button___VJ2Qr_1-0-1","scrubber":"magritte-scrubber___-K3ik_1-0-1","scrubber-track":"magritte-scrubber-track___ki1zV_1-0-1","scrubberTrack":"magritte-scrubber-track___ki1zV_1-0-1","scrubber-buffered":"magritte-scrubber-buffered___ufvLe_1-0-1","scrubberBuffered":"magritte-scrubber-buffered___ufvLe_1-0-1","scrubber-progress":"magritte-scrubber-progress___ZIyew_1-0-1","scrubberProgress":"magritte-scrubber-progress___ZIyew_1-0-1","scrubber-thumb":"magritte-scrubber-thumb___VXyPP_1-0-1","scrubberThumb":"magritte-scrubber-thumb___VXyPP_1-0-1","scrubber-timecode":"magritte-scrubber-timecode___M-syA_1-0-1","scrubberTimecode":"magritte-scrubber-timecode___M-syA_1-0-1","volume-slider":"magritte-volume-slider___qE2P7_1-0-1","volumeSlider":"magritte-volume-slider___qE2P7_1-0-1","volume-track":"magritte-volume-track___up8nd_1-0-1","volumeTrack":"magritte-volume-track___up8nd_1-0-1","volume-value":"magritte-volume-value___aUSuU_1-0-1","volumeValue":"magritte-volume-value___aUSuU_1-0-1"};
|
|
3
|
-
|
|
4
|
-
export { styles as s };
|
|
5
|
-
//# sourceMappingURL=video-C-iklAZX.js.map
|
package/video-C-iklAZX.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-C-iklAZX.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|