@aigamo/nostalgic-diva 1.9.1 → 1.11.0

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 (65) hide show
  1. package/README.md +10 -10
  2. package/dist/AudioPlayer-6d43a734.cjs +2 -0
  3. package/dist/AudioPlayer-6d43a734.cjs.map +1 -0
  4. package/dist/AudioPlayer-d341b3ef.js +37 -0
  5. package/dist/AudioPlayer-d341b3ef.js.map +1 -0
  6. package/dist/DailymotionPlayer-523ebc8e.js +71 -0
  7. package/dist/DailymotionPlayer-523ebc8e.js.map +1 -0
  8. package/dist/DailymotionPlayer-558ff022.cjs +2 -0
  9. package/dist/DailymotionPlayer-558ff022.cjs.map +1 -0
  10. package/dist/NiconicoPlayer-978b7a3e.js +38 -0
  11. package/dist/NiconicoPlayer-978b7a3e.js.map +1 -0
  12. package/dist/NiconicoPlayer-f6b5b917.cjs +2 -0
  13. package/dist/NiconicoPlayer-f6b5b917.cjs.map +1 -0
  14. package/dist/PlayerContainer-3963a1c4.cjs +2 -0
  15. package/dist/PlayerContainer-3963a1c4.cjs.map +1 -0
  16. package/dist/PlayerContainer-a656f44c.js +57 -0
  17. package/dist/PlayerContainer-a656f44c.js.map +1 -0
  18. package/dist/SoundCloudPlayer-11764b63.cjs +2 -0
  19. package/dist/SoundCloudPlayer-11764b63.cjs.map +1 -0
  20. package/dist/SoundCloudPlayer-f109c672.js +45 -0
  21. package/dist/SoundCloudPlayer-f109c672.js.map +1 -0
  22. package/dist/TwitchPlayer-0671bb01.cjs +2 -0
  23. package/dist/TwitchPlayer-0671bb01.cjs.map +1 -0
  24. package/dist/TwitchPlayer-9511b08f.js +45 -0
  25. package/dist/TwitchPlayer-9511b08f.js.map +1 -0
  26. package/dist/VimeoPlayer-33c78290.js +45 -0
  27. package/dist/VimeoPlayer-33c78290.js.map +1 -0
  28. package/dist/VimeoPlayer-a594bb70.cjs +2 -0
  29. package/dist/VimeoPlayer-a594bb70.cjs.map +1 -0
  30. package/dist/YouTubePlayer-1d5f88df.js +41 -0
  31. package/dist/YouTubePlayer-1d5f88df.js.map +1 -0
  32. package/dist/YouTubePlayer-2b24a24c.cjs +2 -0
  33. package/dist/YouTubePlayer-2b24a24c.cjs.map +1 -0
  34. package/dist/components/NostalgicDiva.d.ts +7 -3
  35. package/dist/components/NostalgicDivaProvider.d.ts +4 -7
  36. package/dist/components/PlayerContainer.d.ts +9 -9
  37. package/dist/components/index.d.ts +0 -7
  38. package/dist/{players/AudioPlayerApi.d.ts → controllers/AudioPlayerController.d.ts} +2 -2
  39. package/dist/{players/DailymotionPlayerApi.d.ts → controllers/DailymotionPlayerController.d.ts} +2 -2
  40. package/dist/{players/ILogger.d.ts → controllers/Logger.d.ts} +9 -0
  41. package/dist/{players/NiconicoPlayerApi.d.ts → controllers/NiconicoPlayerController.d.ts} +2 -2
  42. package/dist/{players/PlayerApi.d.ts → controllers/PlayerController.d.ts} +6 -6
  43. package/dist/{players/PlayerApiImpl.d.ts → controllers/PlayerControllerImpl.d.ts} +3 -3
  44. package/dist/{players/SoundCloudPlayerApi.d.ts → controllers/SoundCloudPlayerController.d.ts} +2 -2
  45. package/dist/{players/TwitchPlayerApi.d.ts → controllers/TwitchPlayerController.d.ts} +2 -2
  46. package/dist/{players/VimeoPlayerApi.d.ts → controllers/VimeoPlayerController.d.ts} +2 -2
  47. package/dist/{players/YouTubePlayerApi.d.ts → controllers/YouTubePlayerController.d.ts} +2 -2
  48. package/dist/{players → controllers}/ensureScriptLoaded.d.ts +1 -1
  49. package/dist/controllers/index.d.ts +8 -0
  50. package/dist/ensureScriptLoaded-3427ff0a.js +24 -0
  51. package/dist/ensureScriptLoaded-3427ff0a.js.map +1 -0
  52. package/dist/ensureScriptLoaded-3598cf94.cjs +2 -0
  53. package/dist/ensureScriptLoaded-3598cf94.cjs.map +1 -0
  54. package/dist/index-63425e62.cjs +2 -0
  55. package/dist/index-63425e62.cjs.map +1 -0
  56. package/dist/index-667119bc.js +895 -0
  57. package/dist/index-667119bc.js.map +1 -0
  58. package/dist/index.cjs.js +1 -1
  59. package/dist/index.cjs.js.map +1 -1
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.es.js +16 -1238
  62. package/dist/index.es.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/players/index.d.ts +0 -8
  65. /package/dist/{players → controllers}/getScript.d.ts +0 -0
package/README.md CHANGED
@@ -100,16 +100,16 @@ await diva.setCurrentTime(seconds);
100
100
 
101
101
  ## Lifecycle
102
102
 
103
- 1. [PlayerApi.attach](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L84)
104
- 1. [IPlayerApi.loadVideo](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L33)
105
- 1. [PlayerOptions.onLoaded](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L25)
106
- 1. [IPlayerApi.play](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L34)
107
- 1. [PlayerOptions.onPlay](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L26)
108
- 1. [PlayerOptions.onTimeUpdate](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L29)
109
- 1. [IPlayerApi.pause](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L35)
110
- 1. [PlayerOptions.onPause](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L27)
111
- 1. [PlayerOptions.onEnded](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L28)
112
- 1. [PlayerApi.detach](https://github.com/ycanardeau/nostalgic-diva/blob/5cc35c68cf71230f9459804a9dd9e9265cfa2297/src/players/PlayerApi.ts#L111)
103
+ 1. [PlayerController.attach](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L95)
104
+ 1. [IPlayerController.loadVideo](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L38)
105
+ 1. [PlayerOptions.onLoaded](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L30)
106
+ 1. [IPlayerController.play](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L39)
107
+ 1. [PlayerOptions.onPlay](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L31)
108
+ 1. [PlayerOptions.onTimeUpdate](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L34)
109
+ 1. [IPlayerController.pause](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L40)
110
+ 1. [PlayerOptions.onPause](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L32)
111
+ 1. [PlayerOptions.onEnded](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L33)
112
+ 1. [PlayerController.detach](https://github.com/ycanardeau/nostalgic-diva/blob/f027a7f8b43523d89cf19d37e8450666d800799d/src/controllers/PlayerController.ts#L120)
113
113
 
114
114
  The `attach` function is called when switching from another player (Audio, Niconico, SoundCloud and YouTube), and the `detach` function is called when switching to another player. After the `detach` function is called, you cannot use any imperative functions like `loadVideo`, `play`, `pause` and etc.
115
115
 
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),o=require("./index-63425e62.cjs"),u=require("./PlayerContainer-3963a1c4.cjs"),c=e.memo(({...t})=>{const{logger:l}=t;l.log(o.LogLevel.Debug,"AudioPlayer");const a=e.useCallback(r=>Promise.resolve(r),[]);return e.createElement(u.PlayerContainer,{...t,loadScript:void 0,playerFactory:a,controllerFactory:o.AudioPlayerController},(r,n)=>e.createElement("audio",{ref:r,src:n,style:{width:"100%",height:"100%"},preload:"auto",autoPlay:!0,controls:!0}))});exports.default=c;
2
+ //# sourceMappingURL=AudioPlayer-6d43a734.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayer-6d43a734.cjs","sources":["../src/components/AudioPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AudioPlayerController } from '../controllers/AudioPlayerController';\nimport { LogLevel } from '../controllers/Logger';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst AudioPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'AudioPlayer');\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLAudioElement): Promise<HTMLAudioElement> => {\n\t\t\t\treturn Promise.resolve(element);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={undefined}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={AudioPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t<audio\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={videoId}\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t\tpreload=\"auto\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default AudioPlayer;\n"],"names":["AudioPlayer","React","props","logger","LogLevel","playerFactory","element","PlayerContainer","AudioPlayerController","elementRef","videoId"],"mappings":"uLAMMA,EAAcC,EAAM,KACzB,CAAC,CAAE,GAAGC,KAA6C,CAC5C,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,aAAa,EAExC,MAAMC,EAAgBJ,EAAM,YAC1BK,GACO,QAAQ,QAAQA,CAAO,EAE/B,CAAC,CAAA,EAID,OAAAL,EAAA,cAACM,EAAA,gBAAA,CACC,GAAGL,EACJ,WAAY,OACZ,cAAAG,EACA,kBAAmBG,EAAA,qBAAA,EAElB,CAACC,EAAYC,IACbT,EAAA,cAAC,QAAA,CACA,IAAKQ,EACL,IAAKC,EACL,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAO,EACvC,QAAQ,OACR,SAAQ,GACR,SAAQ,EAAA,CACT,CAAA,CAIJ,CACD"}
@@ -0,0 +1,37 @@
1
+ import e from "react";
2
+ import { L as c, A as i } from "./index-667119bc.js";
3
+ import { P as u } from "./PlayerContainer-a656f44c.js";
4
+ const d = e.memo(
5
+ ({ ...o }) => {
6
+ const { logger: t } = o;
7
+ t.log(c.Debug, "AudioPlayer");
8
+ const a = e.useCallback(
9
+ (r) => Promise.resolve(r),
10
+ []
11
+ );
12
+ return /* @__PURE__ */ e.createElement(
13
+ u,
14
+ {
15
+ ...o,
16
+ loadScript: void 0,
17
+ playerFactory: a,
18
+ controllerFactory: i
19
+ },
20
+ (r, l) => /* @__PURE__ */ e.createElement(
21
+ "audio",
22
+ {
23
+ ref: r,
24
+ src: l,
25
+ style: { width: "100%", height: "100%" },
26
+ preload: "auto",
27
+ autoPlay: !0,
28
+ controls: !0
29
+ }
30
+ )
31
+ );
32
+ }
33
+ );
34
+ export {
35
+ d as default
36
+ };
37
+ //# sourceMappingURL=AudioPlayer-d341b3ef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayer-d341b3ef.js","sources":["../src/components/AudioPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { AudioPlayerController } from '../controllers/AudioPlayerController';\nimport { LogLevel } from '../controllers/Logger';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst AudioPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'AudioPlayer');\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLAudioElement): Promise<HTMLAudioElement> => {\n\t\t\t\treturn Promise.resolve(element);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={undefined}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={AudioPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t<audio\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={videoId}\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t\tpreload=\"auto\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tcontrols\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default AudioPlayer;\n"],"names":["AudioPlayer","React","props","logger","LogLevel","playerFactory","element","PlayerContainer","AudioPlayerController","elementRef","videoId"],"mappings":";;;AAMA,MAAMA,IAAcC,EAAM;AAAA,EACzB,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,aAAa;AAExC,UAAMC,IAAgBJ,EAAM;AAAA,MAC3B,CAACK,MACO,QAAQ,QAAQA,CAAO;AAAA,MAE/B,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAL,EAAA;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,GAAGL;AAAA,QACJ,YAAY;AAAA,QACZ,eAAAG;AAAA,QACA,mBAAmBG;AAAA,MAAA;AAAA,MAElB,CAACC,GAAYC,MACb,gBAAAT,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,KAAKQ;AAAA,UACL,KAAKC;AAAA,UACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,UACvC,SAAQ;AAAA,UACR,UAAQ;AAAA,UACR,UAAQ;AAAA,QAAA;AAAA,MACT;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,71 @@
1
+ import r from "react";
2
+ import { L as h, D as P } from "./index-667119bc.js";
3
+ import { e as f } from "./ensureScriptLoaded-3427ff0a.js";
4
+ import { P as v } from "./PlayerContainer-a656f44c.js";
5
+ const C = r.memo(
6
+ ({ options: e, ...c }) => {
7
+ const { logger: l } = c;
8
+ l.log(h.Debug, "DailymotionPlayer");
9
+ const u = r.useCallback(async () => {
10
+ await f("https://api.dmcdn.net/all.js", l);
11
+ }, [l]), g = r.useCallback(
12
+ (d, m) => Promise.resolve(
13
+ new DM.player(d, {
14
+ video: m,
15
+ width: "100%",
16
+ height: "100%",
17
+ events: {
18
+ apiready: () => {
19
+ var a;
20
+ (a = e == null ? void 0 : e.onLoaded) == null || a.call(e, { id: m });
21
+ },
22
+ seeked: () => {
23
+ var a;
24
+ (a = e == null ? void 0 : e.onTimeUpdate) == null || a.call(e, {
25
+ duration: 0,
26
+ percent: 0,
27
+ seconds: 0
28
+ });
29
+ },
30
+ video_end: () => {
31
+ var a;
32
+ (a = e == null ? void 0 : e.onEnded) == null || a.call(e);
33
+ },
34
+ durationchange: () => {
35
+ },
36
+ pause: () => {
37
+ var a;
38
+ (a = e == null ? void 0 : e.onPause) == null || a.call(e);
39
+ },
40
+ playing: () => {
41
+ var a;
42
+ (a = e == null ? void 0 : e.onPlay) == null || a.call(e);
43
+ },
44
+ waiting: () => {
45
+ },
46
+ error: (a) => {
47
+ var y;
48
+ (y = e == null ? void 0 : e.onError) == null || y.call(e, a);
49
+ }
50
+ }
51
+ })
52
+ ),
53
+ [e]
54
+ );
55
+ return /* @__PURE__ */ r.createElement(
56
+ v,
57
+ {
58
+ ...c,
59
+ options: e,
60
+ loadScript: u,
61
+ playerFactory: g,
62
+ controllerFactory: P
63
+ },
64
+ (d) => /* @__PURE__ */ r.createElement("div", { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ r.createElement("div", { ref: d }))
65
+ );
66
+ }
67
+ );
68
+ export {
69
+ C as default
70
+ };
71
+ //# sourceMappingURL=DailymotionPlayer-523ebc8e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailymotionPlayer-523ebc8e.js","sources":["../src/components/DailymotionPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DailymotionPlayerController } from '../controllers/DailymotionPlayerController';\nimport { LogLevel } from '../controllers/Logger';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst DailymotionPlayer = React.memo(\n\t({ options, ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'DailymotionPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded('https://api.dmcdn.net/all.js', logger);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLDivElement, videoId: string): Promise<DM.player> => {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tnew DM.player(element, {\n\t\t\t\t\t\tvideo: videoId,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tapiready: (): void => {\n\t\t\t\t\t\t\t\toptions?.onLoaded?.({ id: videoId });\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tseeked: (): void => {\n\t\t\t\t\t\t\t\toptions?.onTimeUpdate?.({\n\t\t\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\t\t\tpercent: 0,\n\t\t\t\t\t\t\t\t\tseconds: 0,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvideo_end: (): void => {\n\t\t\t\t\t\t\t\toptions?.onEnded?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdurationchange: (): void => {},\n\t\t\t\t\t\t\tpause: (): void => {\n\t\t\t\t\t\t\t\toptions?.onPause?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tplaying: (): void => {\n\t\t\t\t\t\t\t\toptions?.onPlay?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twaiting: (): void => {},\n\t\t\t\t\t\t\terror: (error): void => {\n\t\t\t\t\t\t\t\toptions?.onError?.(error);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t[options],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\toptions={options}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={DailymotionPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef): React.ReactElement => (\n\t\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t\t<div ref={elementRef} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default DailymotionPlayer;\n"],"names":["DailymotionPlayer","React","options","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","videoId","_a","error","PlayerContainer","DailymotionPlayerController","elementRef"],"mappings":";;;;AAOA,MAAMA,IAAoBC,EAAM;AAAA,EAC/B,CAAC,EAAE,SAAAC,GAAS,GAAGC,QAA6C;AACrD,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,mBAAmB;AAExC,UAAAC,IAAaL,EAAM,YAAY,YAAY;AAC1C,YAAAM,EAAmB,gCAAgCH,CAAM;AAAA,IAAA,GAC7D,CAACA,CAAM,CAAC,GAELI,IAAgBP,EAAM;AAAA,MAC3B,CAACQ,GAAyBC,MAClB,QAAQ;AAAA,QACd,IAAI,GAAG,OAAOD,GAAS;AAAA,UACtB,OAAOC;AAAA,UACP,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ;AAAA,YACP,UAAU,MAAY;;AACrB,eAAAC,IAAAT,KAAA,gBAAAA,EAAS,aAAT,QAAAS,EAAA,KAAAT,GAAoB,EAAE,IAAIQ,EAAS;AAAA,YACpC;AAAA,YACA,QAAQ,MAAY;;AACnB,eAAAC,IAAAT,KAAA,gBAAAA,EAAS,iBAAT,QAAAS,EAAA,KAAAT,GAAwB;AAAA,gBACvB,UAAU;AAAA,gBACV,SAAS;AAAA,gBACT,SAAS;AAAA,cAAA;AAAA,YAEX;AAAA,YACA,WAAW,MAAY;;AACtB,eAAAS,IAAAT,KAAA,gBAAAA,EAAS,YAAT,QAAAS,EAAA,KAAAT;AAAA,YACD;AAAA,YACA,gBAAgB,MAAY;AAAA,YAAC;AAAA,YAC7B,OAAO,MAAY;;AAClB,eAAAS,IAAAT,KAAA,gBAAAA,EAAS,YAAT,QAAAS,EAAA,KAAAT;AAAA,YACD;AAAA,YACA,SAAS,MAAY;;AACpB,eAAAS,IAAAT,KAAA,gBAAAA,EAAS,WAAT,QAAAS,EAAA,KAAAT;AAAA,YACD;AAAA,YACA,SAAS,MAAY;AAAA,YAAC;AAAA,YACtB,OAAO,CAACU,MAAgB;;AACvB,eAAAD,IAAAT,KAAA,gBAAAA,EAAS,YAAT,QAAAS,EAAA,KAAAT,GAAmBU;AAAA,YACpB;AAAA,UACD;AAAA,QAAA,CACA;AAAA,MAAA;AAAA,MAGH,CAACV,CAAO;AAAA,IAAA;AAIR,WAAA,gBAAAD,EAAA;AAAA,MAACY;AAAA,MAAA;AAAA,QACC,GAAGV;AAAA,QACJ,SAAAD;AAAA,QACA,YAAAI;AAAA,QACA,eAAAE;AAAA,QACA,mBAAmBM;AAAA,MAAA;AAAA,MAElB,CAACC,MACA,gBAAAd,EAAA,cAAA,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OACpC,EAAA,GAAA,gBAAAA,EAAA,cAAC,OAAI,EAAA,KAAKc,GAAY,CACvB;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),g=require("./index-63425e62.cjs"),h=require("./ensureScriptLoaded-3598cf94.cjs"),v=require("./PlayerContainer-3963a1c4.cjs"),b=a.memo(({options:e,...d})=>{const{logger:l}=d;l.log(g.LogLevel.Debug,"DailymotionPlayer");const m=a.useCallback(async()=>{await h.ensureScriptLoaded("https://api.dmcdn.net/all.js",l)},[l]),P=a.useCallback((c,u)=>Promise.resolve(new DM.player(c,{video:u,width:"100%",height:"100%",events:{apiready:()=>{var r;(r=e==null?void 0:e.onLoaded)==null||r.call(e,{id:u})},seeked:()=>{var r;(r=e==null?void 0:e.onTimeUpdate)==null||r.call(e,{duration:0,percent:0,seconds:0})},video_end:()=>{var r;(r=e==null?void 0:e.onEnded)==null||r.call(e)},durationchange:()=>{},pause:()=>{var r;(r=e==null?void 0:e.onPause)==null||r.call(e)},playing:()=>{var r;(r=e==null?void 0:e.onPlay)==null||r.call(e)},waiting:()=>{},error:r=>{var y;(y=e==null?void 0:e.onError)==null||y.call(e,r)}}})),[e]);return a.createElement(v.PlayerContainer,{...d,options:e,loadScript:m,playerFactory:P,controllerFactory:g.DailymotionPlayerController},c=>a.createElement("div",{style:{width:"100%",height:"100%"}},a.createElement("div",{ref:c})))});exports.default=b;
2
+ //# sourceMappingURL=DailymotionPlayer-558ff022.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailymotionPlayer-558ff022.cjs","sources":["../src/components/DailymotionPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DailymotionPlayerController } from '../controllers/DailymotionPlayerController';\nimport { LogLevel } from '../controllers/Logger';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst DailymotionPlayer = React.memo(\n\t({ options, ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'DailymotionPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded('https://api.dmcdn.net/all.js', logger);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLDivElement, videoId: string): Promise<DM.player> => {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tnew DM.player(element, {\n\t\t\t\t\t\tvideo: videoId,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tapiready: (): void => {\n\t\t\t\t\t\t\t\toptions?.onLoaded?.({ id: videoId });\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tseeked: (): void => {\n\t\t\t\t\t\t\t\toptions?.onTimeUpdate?.({\n\t\t\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\t\t\tpercent: 0,\n\t\t\t\t\t\t\t\t\tseconds: 0,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvideo_end: (): void => {\n\t\t\t\t\t\t\t\toptions?.onEnded?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdurationchange: (): void => {},\n\t\t\t\t\t\t\tpause: (): void => {\n\t\t\t\t\t\t\t\toptions?.onPause?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tplaying: (): void => {\n\t\t\t\t\t\t\t\toptions?.onPlay?.();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twaiting: (): void => {},\n\t\t\t\t\t\t\terror: (error): void => {\n\t\t\t\t\t\t\t\toptions?.onError?.(error);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t[options],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\toptions={options}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={DailymotionPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef): React.ReactElement => (\n\t\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t\t<div ref={elementRef} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default DailymotionPlayer;\n"],"names":["DailymotionPlayer","React","options","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","videoId","_a","error","PlayerContainer","DailymotionPlayerController","elementRef"],"mappings":"sOAOMA,EAAoBC,EAAM,KAC/B,CAAC,CAAE,QAAAC,EAAS,GAAGC,KAA6C,CACrD,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,mBAAmB,EAExC,MAAAC,EAAaL,EAAM,YAAY,SAAY,CAC1C,MAAAM,EAAA,mBAAmB,+BAAgCH,CAAM,CAAA,EAC7D,CAACA,CAAM,CAAC,EAELI,EAAgBP,EAAM,YAC3B,CAACQ,EAAyBC,IAClB,QAAQ,QACd,IAAI,GAAG,OAAOD,EAAS,CACtB,MAAOC,EACP,MAAO,OACP,OAAQ,OACR,OAAQ,CACP,SAAU,IAAY,QACrBC,EAAAT,GAAA,YAAAA,EAAS,WAAT,MAAAS,EAAA,KAAAT,EAAoB,CAAE,GAAIQ,CAAS,EACpC,EACA,OAAQ,IAAY,QACnBC,EAAAT,GAAA,YAAAA,EAAS,eAAT,MAAAS,EAAA,KAAAT,EAAwB,CACvB,SAAU,EACV,QAAS,EACT,QAAS,CAAA,EAEX,EACA,UAAW,IAAY,QACtBS,EAAAT,GAAA,YAAAA,EAAS,UAAT,MAAAS,EAAA,KAAAT,EACD,EACA,eAAgB,IAAY,CAAC,EAC7B,MAAO,IAAY,QAClBS,EAAAT,GAAA,YAAAA,EAAS,UAAT,MAAAS,EAAA,KAAAT,EACD,EACA,QAAS,IAAY,QACpBS,EAAAT,GAAA,YAAAA,EAAS,SAAT,MAAAS,EAAA,KAAAT,EACD,EACA,QAAS,IAAY,CAAC,EACtB,MAAQU,GAAgB,QACvBD,EAAAT,GAAA,YAAAA,EAAS,UAAT,MAAAS,EAAA,KAAAT,EAAmBU,EACpB,CACD,CAAA,CACA,CAAA,EAGH,CAACV,CAAO,CAAA,EAIR,OAAAD,EAAA,cAACY,EAAA,gBAAA,CACC,GAAGV,EACJ,QAAAD,EACA,WAAAI,EACA,cAAAE,EACA,kBAAmBM,EAAA,2BAAA,EAEjBC,GACAd,EAAA,cAAA,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,OAAQ,MACpC,CAAA,EAAAA,EAAA,cAAC,MAAI,CAAA,IAAKc,EAAY,CACvB,CAAA,CAIJ,CACD"}
@@ -0,0 +1,38 @@
1
+ import e from "react";
2
+ import { L as c, N as i } from "./index-667119bc.js";
3
+ import { P as n } from "./PlayerContainer-a656f44c.js";
4
+ const d = e.memo(
5
+ ({ ...o }) => {
6
+ const { logger: t } = o;
7
+ t.log(c.Debug, "NiconicoPlayer");
8
+ const l = e.useCallback(
9
+ (r) => Promise.resolve(r),
10
+ []
11
+ );
12
+ return /* @__PURE__ */ e.createElement(
13
+ n,
14
+ {
15
+ ...o,
16
+ loadScript: void 0,
17
+ playerFactory: l,
18
+ controllerFactory: i
19
+ },
20
+ (r, a) => /* @__PURE__ */ e.createElement("div", { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ e.createElement(
21
+ "iframe",
22
+ {
23
+ ref: r,
24
+ src: `https://embed.nicovideo.jp/watch/${a}?jsapi=1&playerId=1`,
25
+ width: "100%",
26
+ height: "100%",
27
+ allowFullScreen: !0,
28
+ style: { border: "none" },
29
+ allow: "autoplay; fullscreen"
30
+ }
31
+ ))
32
+ );
33
+ }
34
+ );
35
+ export {
36
+ d as default
37
+ };
38
+ //# sourceMappingURL=NiconicoPlayer-978b7a3e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiconicoPlayer-978b7a3e.js","sources":["../src/components/NiconicoPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { NiconicoPlayerController } from '../controllers/NiconicoPlayerController';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst NiconicoPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'NiconicoPlayer');\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<HTMLIFrameElement> => {\n\t\t\t\treturn Promise.resolve(element);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={undefined}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={NiconicoPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t\t{/* eslint-disable-next-line jsx-a11y/iframe-has-title */}\n\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\t\tsrc={`https://embed.nicovideo.jp/watch/${videoId}?jsapi=1&playerId=1`}\n\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\tallowFullScreen\n\t\t\t\t\t\t\tstyle={{ border: 'none' }}\n\t\t\t\t\t\t\t// The player has to have the allow=\"autoplay\" attribute.\n\t\t\t\t\t\t\t// Otherwise it throws a NotAllowedError: \"play() failed because the user didn't interact with the document first\".\n\t\t\t\t\t\t\t// See also: https://github.com/vimeo/player.js/issues/389.\n\t\t\t\t\t\t\t// NOTE: An iframe element created by `PVPlayerNiconico.playerFactory.create` doesn't have the allow=\"autoplay\" attribute,\n\t\t\t\t\t\t\t// which causes the above issue when trying to autoplay a video.\n\t\t\t\t\t\t\tallow=\"autoplay; fullscreen\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default NiconicoPlayer;\n"],"names":["NiconicoPlayer","React","props","logger","LogLevel","playerFactory","element","PlayerContainer","NiconicoPlayerController","elementRef","videoId"],"mappings":";;;AAMA,MAAMA,IAAiBC,EAAM;AAAA,EAC5B,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,gBAAgB;AAE3C,UAAMC,IAAgBJ,EAAM;AAAA,MAC3B,CAACK,MACO,QAAQ,QAAQA,CAAO;AAAA,MAE/B,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAL,EAAA;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,GAAGL;AAAA,QACJ,YAAY;AAAA,QACZ,eAAAG;AAAA,QACA,mBAAmBG;AAAA,MAAA;AAAA,MAElB,CAACC,GAAYC,MACZ,gBAAAT,EAAA,cAAA,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA,EAEpC,GAAA,gBAAAA,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,KAAKQ;AAAA,UACL,KAAK,oCAAoCC,CAAO;AAAA,UAChD,OAAM;AAAA,UACN,QAAO;AAAA,UACP,iBAAe;AAAA,UACf,OAAO,EAAE,QAAQ,OAAO;AAAA,UAMxB,OAAM;AAAA,QAAA;AAAA,MAAA,CAER;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),o=require("./index-63425e62.cjs"),n=require("./PlayerContainer-3963a1c4.cjs"),i=e.memo(({...t})=>{const{logger:l}=t;l.log(o.LogLevel.Debug,"NiconicoPlayer");const a=e.useCallback(r=>Promise.resolve(r),[]);return e.createElement(n.PlayerContainer,{...t,loadScript:void 0,playerFactory:a,controllerFactory:o.NiconicoPlayerController},(r,c)=>e.createElement("div",{style:{width:"100%",height:"100%"}},e.createElement("iframe",{ref:r,src:`https://embed.nicovideo.jp/watch/${c}?jsapi=1&playerId=1`,width:"100%",height:"100%",allowFullScreen:!0,style:{border:"none"},allow:"autoplay; fullscreen"})))});exports.default=i;
2
+ //# sourceMappingURL=NiconicoPlayer-f6b5b917.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiconicoPlayer-f6b5b917.cjs","sources":["../src/components/NiconicoPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { NiconicoPlayerController } from '../controllers/NiconicoPlayerController';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst NiconicoPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'NiconicoPlayer');\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<HTMLIFrameElement> => {\n\t\t\t\treturn Promise.resolve(element);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={undefined}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={NiconicoPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t\t{/* eslint-disable-next-line jsx-a11y/iframe-has-title */}\n\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\t\tsrc={`https://embed.nicovideo.jp/watch/${videoId}?jsapi=1&playerId=1`}\n\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\tallowFullScreen\n\t\t\t\t\t\t\tstyle={{ border: 'none' }}\n\t\t\t\t\t\t\t// The player has to have the allow=\"autoplay\" attribute.\n\t\t\t\t\t\t\t// Otherwise it throws a NotAllowedError: \"play() failed because the user didn't interact with the document first\".\n\t\t\t\t\t\t\t// See also: https://github.com/vimeo/player.js/issues/389.\n\t\t\t\t\t\t\t// NOTE: An iframe element created by `PVPlayerNiconico.playerFactory.create` doesn't have the allow=\"autoplay\" attribute,\n\t\t\t\t\t\t\t// which causes the above issue when trying to autoplay a video.\n\t\t\t\t\t\t\tallow=\"autoplay; fullscreen\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default NiconicoPlayer;\n"],"names":["NiconicoPlayer","React","props","logger","LogLevel","playerFactory","element","PlayerContainer","NiconicoPlayerController","elementRef","videoId"],"mappings":"uLAMMA,EAAiBC,EAAM,KAC5B,CAAC,CAAE,GAAGC,KAA6C,CAC5C,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,gBAAgB,EAE3C,MAAMC,EAAgBJ,EAAM,YAC1BK,GACO,QAAQ,QAAQA,CAAO,EAE/B,CAAC,CAAA,EAID,OAAAL,EAAA,cAACM,EAAA,gBAAA,CACC,GAAGL,EACJ,WAAY,OACZ,cAAAG,EACA,kBAAmBG,EAAA,wBAAA,EAElB,CAACC,EAAYC,IACZT,EAAA,cAAA,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAEpC,EAAAA,EAAA,cAAC,SAAA,CACA,IAAKQ,EACL,IAAK,oCAAoCC,CAAO,sBAChD,MAAM,OACN,OAAO,OACP,gBAAe,GACf,MAAO,CAAE,OAAQ,MAAO,EAMxB,MAAM,sBAAA,CAAA,CAER,CAAA,CAIJ,CACD"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("react"),q=require("./index-63425e62.cjs");function M(){const e=t.useRef(!0);return e.current?(e.current=!1,!0):e.current}const D=(e,u)=>e===u;function L(e,u=D){const r=t.useRef(),s=t.useRef(e);return!M()&&!u(s.current,e)&&(r.current=s.current,s.current=e),r.current}const V=({logger:e,type:u,loadScript:r,playerFactory:s,onControllerChange:c,videoId:i,options:P,controllerFactory:a,children:y})=>{e.log(q.LogLevel.Debug,"PlayerContainer");const R=t.useRef(i),E=t.useRef(void 0),[o,F]=t.useState(),[n,v]=t.useState();t.useEffect(()=>{c==null||c(n)},[n,c]),t.useEffect(()=>{((r==null?void 0:r())??Promise.resolve()).then(()=>{s(E.current,R.current).then(f=>{F(f)})})},[r,s]),t.useEffect(()=>{if(o===void 0)return;const f=new q.PlayerController(e,u,o,P,a);return f.attach(R.current).then(()=>v(f)),()=>{f.detach().finally(()=>v(void 0))}},[e,u,r,o,P,a]);const m=L(i);return t.useEffect(()=>{m!==void 0&&(n==null||n.loadVideo(i))},[m,i,n]),t.createElement(t.Fragment,null,y(E,R.current))};exports.PlayerContainer=V;
2
+ //# sourceMappingURL=PlayerContainer-3963a1c4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerContainer-3963a1c4.cjs","sources":["../src/components/useFirstMountState.ts","../src/components/usePreviousDistinct.ts","../src/components/PlayerContainer.tsx"],"sourcesContent":["// https://github.com/streamich/react-use/blob/8ceb4c0f0c5625124f487b435a2fd0d3b3bc2a4f/src/useFirstMountState.ts\nimport { useRef } from 'react';\n\nexport function useFirstMountState(): boolean {\n\tconst isFirst = useRef(true);\n\n\tif (isFirst.current) {\n\t\tisFirst.current = false;\n\n\t\treturn true;\n\t}\n\n\treturn isFirst.current;\n}\n","// https://github.com/streamich/react-use/blob/8ceb4c0f0c5625124f487b435a2fd0d3b3bc2a4f/src/usePreviousDistinct.ts.\nimport { useRef } from 'react';\n\nimport { useFirstMountState } from './useFirstMountState';\n\nexport type Predicate<T> = (prev: T | undefined, next: T) => boolean;\n\nconst strictEquals = <T>(prev: T | undefined, next: T): boolean =>\n\tprev === next;\n\nexport default function usePreviousDistinct<T>(\n\tvalue: T,\n\tcompare: Predicate<T> = strictEquals,\n): T | undefined {\n\tconst prevRef = useRef<T>();\n\tconst curRef = useRef<T>(value);\n\tconst isFirstMount = useFirstMountState();\n\n\tif (!isFirstMount && !compare(curRef.current, value)) {\n\t\tprevRef.current = curRef.current;\n\t\tcurRef.current = value;\n\t}\n\n\treturn prevRef.current;\n}\n","import React from 'react';\n\nimport { ILogger, LogLevel } from '../controllers/Logger';\nimport {\n\tIPlayerController,\n\tPlayerController,\n\tPlayerOptions,\n\tPlayerType,\n} from '../controllers/PlayerController';\nimport { PlayerControllerImpl } from '../controllers/PlayerControllerImpl';\nimport usePreviousDistinct from './usePreviousDistinct';\n\nexport interface PlayerProps {\n\tlogger: ILogger;\n\ttype: PlayerType;\n\tonControllerChange:\n\t\t| ((value: IPlayerController | undefined) => void)\n\t\t| undefined;\n\tvideoId: string;\n\toptions: PlayerOptions | undefined;\n}\n\ninterface PlayerContainerProps<\n\tTElement extends HTMLElement,\n\tTPlayer extends object,\n\tTController extends PlayerControllerImpl<TPlayer>,\n> extends PlayerProps {\n\tloadScript: (() => Promise<void>) | undefined;\n\tplayerFactory: (element: TElement, videoId: string) => Promise<TPlayer>;\n\tcontrollerFactory: new (\n\t\tlogger: ILogger,\n\t\tplayer: TPlayer,\n\t\toptions: PlayerOptions | undefined,\n\t) => TController;\n\tchildren: (\n\t\telementRef: React.MutableRefObject<TElement>,\n\t\tvideoId: string,\n\t) => React.ReactNode;\n}\n\nexport const PlayerContainer = <\n\tTElement extends HTMLElement,\n\tTPlayer extends object,\n\tTController extends PlayerControllerImpl<TPlayer>,\n>({\n\tlogger,\n\ttype,\n\tloadScript,\n\tplayerFactory,\n\tonControllerChange,\n\tvideoId,\n\toptions,\n\tcontrollerFactory,\n\tchildren,\n}: PlayerContainerProps<TElement, TPlayer, TController>): React.ReactElement<\n\tPlayerContainerProps<TElement, TPlayer, TController>\n> => {\n\tlogger.log(LogLevel.Debug, 'PlayerContainer');\n\n\tconst videoIdRef = React.useRef(videoId);\n\n\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\tconst elementRef = React.useRef<TElement>(undefined!);\n\n\tconst [player, setPlayer] = React.useState<TPlayer>();\n\n\tconst [controller, setController] = React.useState<IPlayerController>();\n\tReact.useEffect(() => {\n\t\tonControllerChange?.(controller);\n\t}, [controller, onControllerChange]);\n\n\tReact.useEffect(() => {\n\t\t(loadScript?.() ?? Promise.resolve()).then(() => {\n\t\t\tplayerFactory(elementRef.current, videoIdRef.current).then(\n\t\t\t\t(player) => {\n\t\t\t\t\tsetPlayer(player);\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}, [loadScript, playerFactory]);\n\n\t// Make sure that `options` do not change between re-rendering.\n\tReact.useEffect(() => {\n\t\tif (player === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = new PlayerController(\n\t\t\tlogger,\n\t\t\ttype,\n\t\t\tplayer,\n\t\t\toptions,\n\t\t\tcontrollerFactory,\n\t\t);\n\n\t\tcontroller\n\t\t\t.attach(videoIdRef.current)\n\t\t\t.then(() => setController(controller));\n\n\t\treturn (): void => {\n\t\t\tcontroller.detach().finally(() => setController(undefined));\n\t\t};\n\t}, [logger, type, loadScript, player, options, controllerFactory]);\n\n\tconst previousVideoId = usePreviousDistinct(videoId);\n\tReact.useEffect(() => {\n\t\t// If `previousVideoId` is undefined, then it means that the video has already been loaded by either\n\t\t// 1. `<audio>`s `src` attribute (e.g. `AudioPlayer`),\n\t\t// 2. `<iframe>`'s `src` attribute (e.g. `NiconicoPlayer`, `SoundCloudPlayer` and `VimeoPlayer`), or\n\t\t// 3. the `attach` method of the player API (e.g. `YouTubePlayer`).\n\t\tif (previousVideoId === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontroller?.loadVideo(videoId);\n\t}, [previousVideoId, videoId, controller]);\n\n\t// Make sure that `videoId` does not change between re-rendering.\n\treturn <>{children(elementRef, videoIdRef.current)}</>;\n};\n"],"names":["useFirstMountState","isFirst","useRef","strictEquals","prev","next","usePreviousDistinct","value","compare","prevRef","curRef","PlayerContainer","logger","type","loadScript","playerFactory","onControllerChange","videoId","options","controllerFactory","children","LogLevel","videoIdRef","React","elementRef","player","setPlayer","controller","setController","PlayerController","previousVideoId"],"mappings":"wEAGO,SAASA,GAA8B,CACvC,MAAAC,EAAUC,SAAO,EAAI,EAE3B,OAAID,EAAQ,SACXA,EAAQ,QAAU,GAEX,IAGDA,EAAQ,OAChB,CCNA,MAAME,EAAe,CAAIC,EAAqBC,IAC7CD,IAASC,EAEc,SAAAC,EACvBC,EACAC,EAAwBL,EACR,CAChB,MAAMM,EAAUP,EAAAA,SACVQ,EAASR,SAAUK,CAAK,EAG9B,MAAI,CAFiBP,KAEA,CAACQ,EAAQE,EAAO,QAASH,CAAK,IAClDE,EAAQ,QAAUC,EAAO,QACzBA,EAAO,QAAUH,GAGXE,EAAQ,OAChB,CCgBO,MAAME,EAAkB,CAI7B,CACD,OAAAC,EACA,KAAAC,EACA,WAAAC,EACA,cAAAC,EACA,mBAAAC,EACA,QAAAC,EACA,QAAAC,EACA,kBAAAC,EACA,SAAAC,CACD,IAEK,CACGR,EAAA,IAAIS,EAAAA,SAAS,MAAO,iBAAiB,EAEtC,MAAAC,EAAaC,EAAM,OAAON,CAAO,EAGjCO,EAAaD,EAAM,OAAiB,MAAU,EAE9C,CAACE,EAAQC,CAAS,EAAIH,EAAM,SAAkB,EAE9C,CAACI,EAAYC,CAAa,EAAIL,EAAM,SAA4B,EACtEA,EAAM,UAAU,IAAM,CACrBP,GAAA,MAAAA,EAAqBW,EAAU,EAC7B,CAACA,EAAYX,CAAkB,CAAC,EAEnCO,EAAM,UAAU,IAAM,GACpBT,GAAA,YAAAA,MAAkB,QAAQ,QAAQ,GAAG,KAAK,IAAM,CAChDC,EAAcS,EAAW,QAASF,EAAW,OAAO,EAAE,KACpDG,GAAW,CACXC,EAAUD,CAAM,CACjB,CAAA,CACD,CACA,CAAA,EACC,CAACX,EAAYC,CAAa,CAAC,EAG9BQ,EAAM,UAAU,IAAM,CACrB,GAAIE,IAAW,OACd,OAGD,MAAME,EAAa,IAAIE,EAAA,iBACtBjB,EACAC,EACAY,EACAP,EACAC,CAAA,EAGDQ,OAAAA,EACE,OAAOL,EAAW,OAAO,EACzB,KAAK,IAAMM,EAAcD,CAAU,CAAC,EAE/B,IAAY,CAClBA,EAAW,OAAO,EAAE,QAAQ,IAAMC,EAAc,MAAS,CAAC,CAAA,CAC3D,EACE,CAAChB,EAAQC,EAAMC,EAAYW,EAAQP,EAASC,CAAiB,CAAC,EAE3D,MAAAW,EAAkBxB,EAAoBW,CAAO,EACnD,OAAAM,EAAM,UAAU,IAAM,CAKjBO,IAAoB,SAIxBH,GAAA,MAAAA,EAAY,UAAUV,GACpB,EAAA,CAACa,EAAiBb,EAASU,CAAU,CAAC,EAG/BJ,EAAA,cAAAA,EAAA,SAAA,KAAAH,EAASI,EAAYF,EAAW,OAAO,CAAE,CACpD"}
@@ -0,0 +1,57 @@
1
+ import t, { useRef as P } from "react";
2
+ import { L as y, P as D } from "./index-667119bc.js";
3
+ function V() {
4
+ const e = P(!0);
5
+ return e.current ? (e.current = !1, !0) : e.current;
6
+ }
7
+ const b = (e, s) => e === s;
8
+ function q(e, s = b) {
9
+ const r = P(), u = P(e);
10
+ return !V() && !s(u.current, e) && (r.current = u.current, u.current = e), r.current;
11
+ }
12
+ const h = ({
13
+ logger: e,
14
+ type: s,
15
+ loadScript: r,
16
+ playerFactory: u,
17
+ onControllerChange: c,
18
+ videoId: i,
19
+ options: R,
20
+ controllerFactory: a,
21
+ children: L
22
+ }) => {
23
+ e.log(y.Debug, "PlayerContainer");
24
+ const o = t.useRef(i), E = t.useRef(void 0), [m, M] = t.useState(), [n, v] = t.useState();
25
+ t.useEffect(() => {
26
+ c == null || c(n);
27
+ }, [n, c]), t.useEffect(() => {
28
+ ((r == null ? void 0 : r()) ?? Promise.resolve()).then(() => {
29
+ u(E.current, o.current).then(
30
+ (f) => {
31
+ M(f);
32
+ }
33
+ );
34
+ });
35
+ }, [r, u]), t.useEffect(() => {
36
+ if (m === void 0)
37
+ return;
38
+ const f = new D(
39
+ e,
40
+ s,
41
+ m,
42
+ R,
43
+ a
44
+ );
45
+ return f.attach(o.current).then(() => v(f)), () => {
46
+ f.detach().finally(() => v(void 0));
47
+ };
48
+ }, [e, s, r, m, R, a]);
49
+ const F = q(i);
50
+ return t.useEffect(() => {
51
+ F !== void 0 && (n == null || n.loadVideo(i));
52
+ }, [F, i, n]), /* @__PURE__ */ t.createElement(t.Fragment, null, L(E, o.current));
53
+ };
54
+ export {
55
+ h as P
56
+ };
57
+ //# sourceMappingURL=PlayerContainer-a656f44c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerContainer-a656f44c.js","sources":["../src/components/useFirstMountState.ts","../src/components/usePreviousDistinct.ts","../src/components/PlayerContainer.tsx"],"sourcesContent":["// https://github.com/streamich/react-use/blob/8ceb4c0f0c5625124f487b435a2fd0d3b3bc2a4f/src/useFirstMountState.ts\nimport { useRef } from 'react';\n\nexport function useFirstMountState(): boolean {\n\tconst isFirst = useRef(true);\n\n\tif (isFirst.current) {\n\t\tisFirst.current = false;\n\n\t\treturn true;\n\t}\n\n\treturn isFirst.current;\n}\n","// https://github.com/streamich/react-use/blob/8ceb4c0f0c5625124f487b435a2fd0d3b3bc2a4f/src/usePreviousDistinct.ts.\nimport { useRef } from 'react';\n\nimport { useFirstMountState } from './useFirstMountState';\n\nexport type Predicate<T> = (prev: T | undefined, next: T) => boolean;\n\nconst strictEquals = <T>(prev: T | undefined, next: T): boolean =>\n\tprev === next;\n\nexport default function usePreviousDistinct<T>(\n\tvalue: T,\n\tcompare: Predicate<T> = strictEquals,\n): T | undefined {\n\tconst prevRef = useRef<T>();\n\tconst curRef = useRef<T>(value);\n\tconst isFirstMount = useFirstMountState();\n\n\tif (!isFirstMount && !compare(curRef.current, value)) {\n\t\tprevRef.current = curRef.current;\n\t\tcurRef.current = value;\n\t}\n\n\treturn prevRef.current;\n}\n","import React from 'react';\n\nimport { ILogger, LogLevel } from '../controllers/Logger';\nimport {\n\tIPlayerController,\n\tPlayerController,\n\tPlayerOptions,\n\tPlayerType,\n} from '../controllers/PlayerController';\nimport { PlayerControllerImpl } from '../controllers/PlayerControllerImpl';\nimport usePreviousDistinct from './usePreviousDistinct';\n\nexport interface PlayerProps {\n\tlogger: ILogger;\n\ttype: PlayerType;\n\tonControllerChange:\n\t\t| ((value: IPlayerController | undefined) => void)\n\t\t| undefined;\n\tvideoId: string;\n\toptions: PlayerOptions | undefined;\n}\n\ninterface PlayerContainerProps<\n\tTElement extends HTMLElement,\n\tTPlayer extends object,\n\tTController extends PlayerControllerImpl<TPlayer>,\n> extends PlayerProps {\n\tloadScript: (() => Promise<void>) | undefined;\n\tplayerFactory: (element: TElement, videoId: string) => Promise<TPlayer>;\n\tcontrollerFactory: new (\n\t\tlogger: ILogger,\n\t\tplayer: TPlayer,\n\t\toptions: PlayerOptions | undefined,\n\t) => TController;\n\tchildren: (\n\t\telementRef: React.MutableRefObject<TElement>,\n\t\tvideoId: string,\n\t) => React.ReactNode;\n}\n\nexport const PlayerContainer = <\n\tTElement extends HTMLElement,\n\tTPlayer extends object,\n\tTController extends PlayerControllerImpl<TPlayer>,\n>({\n\tlogger,\n\ttype,\n\tloadScript,\n\tplayerFactory,\n\tonControllerChange,\n\tvideoId,\n\toptions,\n\tcontrollerFactory,\n\tchildren,\n}: PlayerContainerProps<TElement, TPlayer, TController>): React.ReactElement<\n\tPlayerContainerProps<TElement, TPlayer, TController>\n> => {\n\tlogger.log(LogLevel.Debug, 'PlayerContainer');\n\n\tconst videoIdRef = React.useRef(videoId);\n\n\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\tconst elementRef = React.useRef<TElement>(undefined!);\n\n\tconst [player, setPlayer] = React.useState<TPlayer>();\n\n\tconst [controller, setController] = React.useState<IPlayerController>();\n\tReact.useEffect(() => {\n\t\tonControllerChange?.(controller);\n\t}, [controller, onControllerChange]);\n\n\tReact.useEffect(() => {\n\t\t(loadScript?.() ?? Promise.resolve()).then(() => {\n\t\t\tplayerFactory(elementRef.current, videoIdRef.current).then(\n\t\t\t\t(player) => {\n\t\t\t\t\tsetPlayer(player);\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}, [loadScript, playerFactory]);\n\n\t// Make sure that `options` do not change between re-rendering.\n\tReact.useEffect(() => {\n\t\tif (player === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = new PlayerController(\n\t\t\tlogger,\n\t\t\ttype,\n\t\t\tplayer,\n\t\t\toptions,\n\t\t\tcontrollerFactory,\n\t\t);\n\n\t\tcontroller\n\t\t\t.attach(videoIdRef.current)\n\t\t\t.then(() => setController(controller));\n\n\t\treturn (): void => {\n\t\t\tcontroller.detach().finally(() => setController(undefined));\n\t\t};\n\t}, [logger, type, loadScript, player, options, controllerFactory]);\n\n\tconst previousVideoId = usePreviousDistinct(videoId);\n\tReact.useEffect(() => {\n\t\t// If `previousVideoId` is undefined, then it means that the video has already been loaded by either\n\t\t// 1. `<audio>`s `src` attribute (e.g. `AudioPlayer`),\n\t\t// 2. `<iframe>`'s `src` attribute (e.g. `NiconicoPlayer`, `SoundCloudPlayer` and `VimeoPlayer`), or\n\t\t// 3. the `attach` method of the player API (e.g. `YouTubePlayer`).\n\t\tif (previousVideoId === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontroller?.loadVideo(videoId);\n\t}, [previousVideoId, videoId, controller]);\n\n\t// Make sure that `videoId` does not change between re-rendering.\n\treturn <>{children(elementRef, videoIdRef.current)}</>;\n};\n"],"names":["useFirstMountState","isFirst","useRef","strictEquals","prev","next","usePreviousDistinct","value","compare","prevRef","curRef","PlayerContainer","logger","type","loadScript","playerFactory","onControllerChange","videoId","options","controllerFactory","children","LogLevel","videoIdRef","React","elementRef","player","setPlayer","controller","setController","PlayerController","previousVideoId"],"mappings":";;AAGO,SAASA,IAA8B;AACvC,QAAAC,IAAUC,EAAO,EAAI;AAE3B,SAAID,EAAQ,WACXA,EAAQ,UAAU,IAEX,MAGDA,EAAQ;AAChB;ACNA,MAAME,IAAe,CAAIC,GAAqBC,MAC7CD,MAASC;AAEc,SAAAC,EACvBC,GACAC,IAAwBL,GACR;AAChB,QAAMM,IAAUP,KACVQ,IAASR,EAAUK,CAAK;AAG9B,SAAI,CAFiBP,OAEA,CAACQ,EAAQE,EAAO,SAASH,CAAK,MAClDE,EAAQ,UAAUC,EAAO,SACzBA,EAAO,UAAUH,IAGXE,EAAQ;AAChB;ACgBO,MAAME,IAAkB,CAI7B;AAAA,EACD,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,UAAAC;AACD,MAEK;AACG,EAAAR,EAAA,IAAIS,EAAS,OAAO,iBAAiB;AAEtC,QAAAC,IAAaC,EAAM,OAAON,CAAO,GAGjCO,IAAaD,EAAM,OAAiB,MAAU,GAE9C,CAACE,GAAQC,CAAS,IAAIH,EAAM,SAAkB,GAE9C,CAACI,GAAYC,CAAa,IAAIL,EAAM,SAA4B;AACtE,EAAAA,EAAM,UAAU,MAAM;AACrB,IAAAP,KAAA,QAAAA,EAAqBW;AAAA,EAAU,GAC7B,CAACA,GAAYX,CAAkB,CAAC,GAEnCO,EAAM,UAAU,MAAM;AACrB,MAACT,KAAA,gBAAAA,QAAkB,QAAQ,QAAQ,GAAG,KAAK,MAAM;AAChD,MAAAC,EAAcS,EAAW,SAASF,EAAW,OAAO,EAAE;AAAA,QACrD,CAACG,MAAW;AACX,UAAAC,EAAUD,CAAM;AAAA,QACjB;AAAA,MAAA;AAAA,IACD,CACA;AAAA,EAAA,GACC,CAACX,GAAYC,CAAa,CAAC,GAG9BQ,EAAM,UAAU,MAAM;AACrB,QAAIE,MAAW;AACd;AAGD,UAAME,IAAa,IAAIE;AAAA,MACtBjB;AAAA,MACAC;AAAA,MACAY;AAAA,MACAP;AAAA,MACAC;AAAA,IAAA;AAGDQ,WAAAA,EACE,OAAOL,EAAW,OAAO,EACzB,KAAK,MAAMM,EAAcD,CAAU,CAAC,GAE/B,MAAY;AAClBA,MAAAA,EAAW,OAAO,EAAE,QAAQ,MAAMC,EAAc,MAAS,CAAC;AAAA,IAAA;AAAA,EAC3D,GACE,CAAChB,GAAQC,GAAMC,GAAYW,GAAQP,GAASC,CAAiB,CAAC;AAE3D,QAAAW,IAAkBxB,EAAoBW,CAAO;AACnD,SAAAM,EAAM,UAAU,MAAM;AAKrB,IAAIO,MAAoB,WAIxBH,KAAA,QAAAA,EAAY,UAAUV;AAAA,EACpB,GAAA,CAACa,GAAiBb,GAASU,CAAU,CAAC,GAG/B,gBAAAJ,EAAA,cAAAA,EAAA,UAAA,MAAAH,EAASI,GAAYF,EAAW,OAAO,CAAE;AACpD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),l=require("./index-63425e62.cjs"),u=require("./ensureScriptLoaded-3598cf94.cjs"),s=require("./PlayerContainer-3963a1c4.cjs"),d=e.memo(({...t})=>{const{logger:r}=t;r.log(l.LogLevel.Debug,"SoundCloudPlayer");const a=e.useCallback(async()=>{await u.ensureScriptLoaded("https://w.soundcloud.com/player/api.js",r)},[r]),n=e.useCallback(o=>Promise.resolve(SC.Widget(o)),[]);return e.createElement(s.PlayerContainer,{...t,loadScript:a,playerFactory:n,controllerFactory:l.SoundCloudPlayerController},(o,c)=>e.createElement("iframe",{ref:o,src:`https://w.soundcloud.com/player/?url=${c}`,frameBorder:0,allow:"autoplay",style:{width:"100%",height:"100%"}}))});exports.default=d;
2
+ //# sourceMappingURL=SoundCloudPlayer-11764b63.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundCloudPlayer-11764b63.cjs","sources":["../src/components/SoundCloudPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { SoundCloudPlayerController } from '../controllers/SoundCloudPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst SoundCloudPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'SoundCloudPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://w.soundcloud.com/player/api.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<SC.SoundCloudWidget> => {\n\t\t\t\treturn Promise.resolve(SC.Widget(element));\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={SoundCloudPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={`https://w.soundcloud.com/player/?url=${videoId}`}\n\t\t\t\t\t\tframeBorder={0}\n\t\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default SoundCloudPlayer;\n"],"names":["SoundCloudPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","PlayerContainer","SoundCloudPlayerController","elementRef","videoId"],"mappings":"sOAOMA,EAAmBC,EAAM,KAC9B,CAAC,CAAE,GAAGC,KAA6C,CAC5C,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,kBAAkB,EAEvC,MAAAC,EAAaJ,EAAM,YAAY,SAAY,CAC1C,MAAAK,EAAA,mBACL,yCACAH,CAAA,CACD,EACE,CAACA,CAAM,CAAC,EAELI,EAAgBN,EAAM,YAC1BO,GACO,QAAQ,QAAQ,GAAG,OAAOA,CAAO,CAAC,EAE1C,CAAC,CAAA,EAID,OAAAP,EAAA,cAACQ,EAAA,gBAAA,CACC,GAAGP,EACJ,WAAAG,EACA,cAAAE,EACA,kBAAmBG,EAAA,0BAAA,EAElB,CAACC,EAAYC,IAEbX,EAAA,cAAC,SAAA,CACA,IAAKU,EACL,IAAK,wCAAwCC,CAAO,GACpD,YAAa,EACb,MAAM,WACN,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAO,CAAA,CACxC,CAAA,CAIJ,CACD"}
@@ -0,0 +1,45 @@
1
+ import e from "react";
2
+ import { L as c, S as n } from "./index-667119bc.js";
3
+ import { e as u } from "./ensureScriptLoaded-3427ff0a.js";
4
+ import { P as d } from "./PlayerContainer-a656f44c.js";
5
+ const f = e.memo(
6
+ ({ ...a }) => {
7
+ const { logger: o } = a;
8
+ o.log(c.Debug, "SoundCloudPlayer");
9
+ const t = e.useCallback(async () => {
10
+ await u(
11
+ "https://w.soundcloud.com/player/api.js",
12
+ o
13
+ );
14
+ }, [o]), l = e.useCallback(
15
+ (r) => Promise.resolve(SC.Widget(r)),
16
+ []
17
+ );
18
+ return /* @__PURE__ */ e.createElement(
19
+ d,
20
+ {
21
+ ...a,
22
+ loadScript: t,
23
+ playerFactory: l,
24
+ controllerFactory: n
25
+ },
26
+ (r, s) => (
27
+ // eslint-disable-next-line jsx-a11y/iframe-has-title
28
+ /* @__PURE__ */ e.createElement(
29
+ "iframe",
30
+ {
31
+ ref: r,
32
+ src: `https://w.soundcloud.com/player/?url=${s}`,
33
+ frameBorder: 0,
34
+ allow: "autoplay",
35
+ style: { width: "100%", height: "100%" }
36
+ }
37
+ )
38
+ )
39
+ );
40
+ }
41
+ );
42
+ export {
43
+ f as default
44
+ };
45
+ //# sourceMappingURL=SoundCloudPlayer-f109c672.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundCloudPlayer-f109c672.js","sources":["../src/components/SoundCloudPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { SoundCloudPlayerController } from '../controllers/SoundCloudPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst SoundCloudPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'SoundCloudPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://w.soundcloud.com/player/api.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<SC.SoundCloudWidget> => {\n\t\t\t\treturn Promise.resolve(SC.Widget(element));\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={SoundCloudPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={`https://w.soundcloud.com/player/?url=${videoId}`}\n\t\t\t\t\t\tframeBorder={0}\n\t\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default SoundCloudPlayer;\n"],"names":["SoundCloudPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","PlayerContainer","SoundCloudPlayerController","elementRef","videoId"],"mappings":";;;;AAOA,MAAMA,IAAmBC,EAAM;AAAA,EAC9B,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,kBAAkB;AAEvC,UAAAC,IAAaJ,EAAM,YAAY,YAAY;AAC1C,YAAAK;AAAA,QACL;AAAA,QACAH;AAAA,MAAA;AAAA,IACD,GACE,CAACA,CAAM,CAAC,GAELI,IAAgBN,EAAM;AAAA,MAC3B,CAACO,MACO,QAAQ,QAAQ,GAAG,OAAOA,CAAO,CAAC;AAAA,MAE1C,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAP,EAAA;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,GAAGP;AAAA,QACJ,YAAAG;AAAA,QACA,eAAAE;AAAA,QACA,mBAAmBG;AAAA,MAAA;AAAA,MAElB,CAACC,GAAYC;AAAA;AAAA,QAEb,gBAAAX,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,KAAKU;AAAA,YACL,KAAK,wCAAwCC,CAAO;AAAA,YACpD,aAAa;AAAA,YACb,OAAM;AAAA,YACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,UAAA;AAAA,QACxC;AAAA;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),a=require("./index-63425e62.cjs"),n=require("./ensureScriptLoaded-3598cf94.cjs"),s=require("./PlayerContainer-3963a1c4.cjs"),d=e.memo(({...o})=>{const{logger:t}=o;t.log(a.LogLevel.Debug,"TwitchPlayer");const c=e.useCallback(async()=>{await n.ensureScriptLoaded("https://embed.twitch.tv/embed/v1.js",t)},[t]),l=e.useCallback(async(r,i)=>Promise.resolve(new Twitch.Player(r,{video:i,width:"100%",height:"100%"})),[]);return e.createElement(s.PlayerContainer,{...o,loadScript:c,playerFactory:l,controllerFactory:a.TwitchPlayerController},r=>e.createElement("div",{ref:r,style:{width:"100%",height:"100%"}}))});exports.default=d;
2
+ //# sourceMappingURL=TwitchPlayer-0671bb01.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchPlayer-0671bb01.cjs","sources":["../src/components/TwitchPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { TwitchPlayerController } from '../controllers/TwitchPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst TwitchPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'TwitchPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://embed.twitch.tv/embed/v1.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\tasync (\n\t\t\t\telement: HTMLDivElement,\n\t\t\t\tvideoId: string,\n\t\t\t): Promise<Twitch.Player> => {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tnew Twitch.Player(element, {\n\t\t\t\t\t\tvideo: videoId,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={TwitchPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef): React.ReactElement => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default TwitchPlayer;\n"],"names":["TwitchPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","videoId","PlayerContainer","TwitchPlayerController","elementRef"],"mappings":"sOAOMA,EAAeC,EAAM,KAC1B,CAAC,CAAE,GAAGC,KAA6C,CAC5C,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,cAAc,EAEnC,MAAAC,EAAaJ,EAAM,YAAY,SAAY,CAC1C,MAAAK,EAAA,mBACL,sCACAH,CAAA,CACD,EACE,CAACA,CAAM,CAAC,EAELI,EAAgBN,EAAM,YAC3B,MACCO,EACAC,IAEO,QAAQ,QACd,IAAI,OAAO,OAAOD,EAAS,CAC1B,MAAOC,EACP,MAAO,OACP,OAAQ,MAAA,CACR,CAAA,EAGH,CAAC,CAAA,EAID,OAAAR,EAAA,cAACS,EAAA,gBAAA,CACC,GAAGR,EACJ,WAAAG,EACA,cAAAE,EACA,kBAAmBI,EAAA,sBAAA,EAEjBC,GACDX,EAAA,cAAC,MAAA,CACA,IAAKW,EACL,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAO,CAAA,CACxC,CAAA,CAIJ,CACD"}
@@ -0,0 +1,45 @@
1
+ import e from "react";
2
+ import { L as i, T as s } from "./index-667119bc.js";
3
+ import { e as n } from "./ensureScriptLoaded-3427ff0a.js";
4
+ import { P as m } from "./PlayerContainer-a656f44c.js";
5
+ const g = e.memo(
6
+ ({ ...a }) => {
7
+ const { logger: t } = a;
8
+ t.log(i.Debug, "TwitchPlayer");
9
+ const o = e.useCallback(async () => {
10
+ await n(
11
+ "https://embed.twitch.tv/embed/v1.js",
12
+ t
13
+ );
14
+ }, [t]), l = e.useCallback(
15
+ async (r, c) => Promise.resolve(
16
+ new Twitch.Player(r, {
17
+ video: c,
18
+ width: "100%",
19
+ height: "100%"
20
+ })
21
+ ),
22
+ []
23
+ );
24
+ return /* @__PURE__ */ e.createElement(
25
+ m,
26
+ {
27
+ ...a,
28
+ loadScript: o,
29
+ playerFactory: l,
30
+ controllerFactory: s
31
+ },
32
+ (r) => /* @__PURE__ */ e.createElement(
33
+ "div",
34
+ {
35
+ ref: r,
36
+ style: { width: "100%", height: "100%" }
37
+ }
38
+ )
39
+ );
40
+ }
41
+ );
42
+ export {
43
+ g as default
44
+ };
45
+ //# sourceMappingURL=TwitchPlayer-9511b08f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchPlayer-9511b08f.js","sources":["../src/components/TwitchPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { TwitchPlayerController } from '../controllers/TwitchPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst TwitchPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'TwitchPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://embed.twitch.tv/embed/v1.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\tasync (\n\t\t\t\telement: HTMLDivElement,\n\t\t\t\tvideoId: string,\n\t\t\t): Promise<Twitch.Player> => {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tnew Twitch.Player(element, {\n\t\t\t\t\t\tvideo: videoId,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={TwitchPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef): React.ReactElement => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default TwitchPlayer;\n"],"names":["TwitchPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","videoId","PlayerContainer","TwitchPlayerController","elementRef"],"mappings":";;;;AAOA,MAAMA,IAAeC,EAAM;AAAA,EAC1B,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,cAAc;AAEnC,UAAAC,IAAaJ,EAAM,YAAY,YAAY;AAC1C,YAAAK;AAAA,QACL;AAAA,QACAH;AAAA,MAAA;AAAA,IACD,GACE,CAACA,CAAM,CAAC,GAELI,IAAgBN,EAAM;AAAA,MAC3B,OACCO,GACAC,MAEO,QAAQ;AAAA,QACd,IAAI,OAAO,OAAOD,GAAS;AAAA,UAC1B,OAAOC;AAAA,UACP,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACR;AAAA,MAAA;AAAA,MAGH,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAR,EAAA;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,GAAGR;AAAA,QACJ,YAAAG;AAAA,QACA,eAAAE;AAAA,QACA,mBAAmBI;AAAA,MAAA;AAAA,MAElB,CAACC,MACD,gBAAAX,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,KAAKW;AAAA,UACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,QAAA;AAAA,MACxC;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,45 @@
1
+ import e from "react";
2
+ import { L as i, V as s } from "./index-667119bc.js";
3
+ import { e as c } from "./ensureScriptLoaded-3427ff0a.js";
4
+ import { P as n } from "./PlayerContainer-a656f44c.js";
5
+ const d = e.memo(
6
+ ({ ...a }) => {
7
+ const { logger: r } = a;
8
+ r.log(i.Debug, "VimeoPlayer");
9
+ const t = e.useCallback(async () => {
10
+ await c(
11
+ "https://player.vimeo.com/api/player.js",
12
+ r
13
+ );
14
+ }, [r]), l = e.useCallback(
15
+ (o) => Promise.resolve(new Vimeo.Player(o)),
16
+ []
17
+ );
18
+ return /* @__PURE__ */ e.createElement(
19
+ n,
20
+ {
21
+ ...a,
22
+ loadScript: t,
23
+ playerFactory: l,
24
+ controllerFactory: s
25
+ },
26
+ (o, m) => (
27
+ // eslint-disable-next-line jsx-a11y/iframe-has-title
28
+ /* @__PURE__ */ e.createElement(
29
+ "iframe",
30
+ {
31
+ ref: o,
32
+ src: `https://player.vimeo.com/video/${m}`,
33
+ frameBorder: 0,
34
+ allow: "autoplay",
35
+ style: { width: "100%", height: "100%" }
36
+ }
37
+ )
38
+ )
39
+ );
40
+ }
41
+ );
42
+ export {
43
+ d as default
44
+ };
45
+ //# sourceMappingURL=VimeoPlayer-33c78290.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoPlayer-33c78290.js","sources":["../src/components/VimeoPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { VimeoPlayerController } from '../controllers/VimeoPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst VimeoPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'VimeoPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://player.vimeo.com/api/player.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<Vimeo.Player> => {\n\t\t\t\treturn Promise.resolve(new Vimeo.Player(element));\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={VimeoPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\t\t\t\tframeBorder={0}\n\t\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default VimeoPlayer;\n"],"names":["VimeoPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","PlayerContainer","VimeoPlayerController","elementRef","videoId"],"mappings":";;;;AAOA,MAAMA,IAAcC,EAAM;AAAA,EACzB,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,aAAa;AAElC,UAAAC,IAAaJ,EAAM,YAAY,YAAY;AAC1C,YAAAK;AAAA,QACL;AAAA,QACAH;AAAA,MAAA;AAAA,IACD,GACE,CAACA,CAAM,CAAC,GAELI,IAAgBN,EAAM;AAAA,MAC3B,CAACO,MACO,QAAQ,QAAQ,IAAI,MAAM,OAAOA,CAAO,CAAC;AAAA,MAEjD,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAP,EAAA;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,GAAGP;AAAA,QACJ,YAAAG;AAAA,QACA,eAAAE;AAAA,QACA,mBAAmBG;AAAA,MAAA;AAAA,MAElB,CAACC,GAAYC;AAAA;AAAA,QAEb,gBAAAX,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,KAAKU;AAAA,YACL,KAAK,kCAAkCC,CAAO;AAAA,YAC9C,aAAa;AAAA,YACb,OAAM;AAAA,YACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,UAAA;AAAA,QACxC;AAAA;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),a=require("./index-63425e62.cjs"),n=require("./ensureScriptLoaded-3598cf94.cjs"),s=require("./PlayerContainer-3963a1c4.cjs"),y=e.memo(({...t})=>{const{logger:r}=t;r.log(a.LogLevel.Debug,"VimeoPlayer");const l=e.useCallback(async()=>{await n.ensureScriptLoaded("https://player.vimeo.com/api/player.js",r)},[r]),i=e.useCallback(o=>Promise.resolve(new Vimeo.Player(o)),[]);return e.createElement(s.PlayerContainer,{...t,loadScript:l,playerFactory:i,controllerFactory:a.VimeoPlayerController},(o,c)=>e.createElement("iframe",{ref:o,src:`https://player.vimeo.com/video/${c}`,frameBorder:0,allow:"autoplay",style:{width:"100%",height:"100%"}}))});exports.default=y;
2
+ //# sourceMappingURL=VimeoPlayer-a594bb70.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoPlayer-a594bb70.cjs","sources":["../src/components/VimeoPlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { VimeoPlayerController } from '../controllers/VimeoPlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst VimeoPlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'VimeoPlayer');\n\n\t\tconst loadScript = React.useCallback(async () => {\n\t\t\tawait ensureScriptLoaded(\n\t\t\t\t'https://player.vimeo.com/api/player.js',\n\t\t\t\tlogger,\n\t\t\t);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLIFrameElement): Promise<Vimeo.Player> => {\n\t\t\t\treturn Promise.resolve(new Vimeo.Player(element));\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={VimeoPlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef, videoId): React.ReactElement => (\n\t\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t\t<iframe\n\t\t\t\t\t\tref={elementRef}\n\t\t\t\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\t\t\t\tframeBorder={0}\n\t\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default VimeoPlayer;\n"],"names":["VimeoPlayer","React","props","logger","LogLevel","loadScript","ensureScriptLoaded","playerFactory","element","PlayerContainer","VimeoPlayerController","elementRef","videoId"],"mappings":"sOAOMA,EAAcC,EAAM,KACzB,CAAC,CAAE,GAAGC,KAA6C,CAC5C,KAAA,CAAE,OAAAC,CAAW,EAAAD,EAEZC,EAAA,IAAIC,EAAAA,SAAS,MAAO,aAAa,EAElC,MAAAC,EAAaJ,EAAM,YAAY,SAAY,CAC1C,MAAAK,EAAA,mBACL,yCACAH,CAAA,CACD,EACE,CAACA,CAAM,CAAC,EAELI,EAAgBN,EAAM,YAC1BO,GACO,QAAQ,QAAQ,IAAI,MAAM,OAAOA,CAAO,CAAC,EAEjD,CAAC,CAAA,EAID,OAAAP,EAAA,cAACQ,EAAA,gBAAA,CACC,GAAGP,EACJ,WAAAG,EACA,cAAAE,EACA,kBAAmBG,EAAA,qBAAA,EAElB,CAACC,EAAYC,IAEbX,EAAA,cAAC,SAAA,CACA,IAAKU,EACL,IAAK,kCAAkCC,CAAO,GAC9C,YAAa,EACb,MAAM,WACN,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAO,CAAA,CACxC,CAAA,CAIJ,CACD"}
@@ -0,0 +1,41 @@
1
+ import o from "react";
2
+ import { L as a, Y as n } from "./index-667119bc.js";
3
+ import { e as s } from "./ensureScriptLoaded-3427ff0a.js";
4
+ import { P as u } from "./PlayerContainer-a656f44c.js";
5
+ const c = "https://www.youtube-nocookie.com", g = o.memo(
6
+ ({ ...t }) => {
7
+ const { logger: r } = t;
8
+ r.log(a.Debug, "YouTubePlayer");
9
+ const i = o.useCallback(() => new Promise(async (e, m) => {
10
+ await s(
11
+ "https://www.youtube.com/iframe_api",
12
+ r
13
+ ) ? window.onYouTubeIframeAPIReady = () => {
14
+ r.log(a.Debug, "YouTube iframe API ready"), e();
15
+ } : e();
16
+ }), [r]), l = o.useCallback(
17
+ (e) => Promise.resolve(
18
+ new YT.Player(e, {
19
+ host: c,
20
+ width: "100%",
21
+ height: "100%"
22
+ })
23
+ ),
24
+ []
25
+ );
26
+ return /* @__PURE__ */ o.createElement(
27
+ u,
28
+ {
29
+ ...t,
30
+ loadScript: i,
31
+ playerFactory: l,
32
+ controllerFactory: n
33
+ },
34
+ (e) => /* @__PURE__ */ o.createElement("div", { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ o.createElement("div", { ref: e }))
35
+ );
36
+ }
37
+ );
38
+ export {
39
+ g as default
40
+ };
41
+ //# sourceMappingURL=YouTubePlayer-1d5f88df.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YouTubePlayer-1d5f88df.js","sources":["../src/components/YouTubePlayer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LogLevel } from '../controllers/Logger';\nimport { YouTubePlayerController } from '../controllers/YouTubePlayerController';\nimport { ensureScriptLoaded } from '../controllers/ensureScriptLoaded';\nimport { PlayerContainer, PlayerProps } from './PlayerContainer';\n\nconst origin = 'https://www.youtube-nocookie.com';\n\nconst YouTubePlayer = React.memo(\n\t({ ...props }: PlayerProps): React.ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'YouTubePlayer');\n\n\t\tconst loadScript = React.useCallback((): Promise<void> => {\n\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\tconst first = await ensureScriptLoaded(\n\t\t\t\t\t'https://www.youtube.com/iframe_api',\n\t\t\t\t\tlogger,\n\t\t\t\t);\n\n\t\t\t\tif (first) {\n\t\t\t\t\t// https://stackoverflow.com/a/18154942.\n\t\t\t\t\twindow.onYouTubeIframeAPIReady = (): void => {\n\t\t\t\t\t\tlogger.log(LogLevel.Debug, 'YouTube iframe API ready');\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}, [logger]);\n\n\t\tconst playerFactory = React.useCallback(\n\t\t\t(element: HTMLDivElement): Promise<YT.Player> => {\n\t\t\t\treturn Promise.resolve(\n\t\t\t\t\tnew YT.Player(element, {\n\t\t\t\t\t\thost: origin,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t[],\n\t\t);\n\n\t\treturn (\n\t\t\t<PlayerContainer\n\t\t\t\t{...props}\n\t\t\t\tloadScript={loadScript}\n\t\t\t\tplayerFactory={playerFactory}\n\t\t\t\tcontrollerFactory={YouTubePlayerController}\n\t\t\t>\n\t\t\t\t{(elementRef): React.ReactElement => (\n\t\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t\t<div ref={elementRef} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</PlayerContainer>\n\t\t);\n\t},\n);\n\nexport default YouTubePlayer;\n"],"names":["origin","YouTubePlayer","React","props","logger","LogLevel","loadScript","resolve","reject","ensureScriptLoaded","playerFactory","element","PlayerContainer","YouTubePlayerController","elementRef"],"mappings":";;;;AAOA,MAAMA,IAAS,oCAETC,IAAgBC,EAAM;AAAA,EAC3B,CAAC,EAAE,GAAGC,QAA6C;AAC5C,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,IAAAC,EAAA,IAAIC,EAAS,OAAO,eAAe;AAEpC,UAAAC,IAAaJ,EAAM,YAAY,MAC7B,IAAI,QAAQ,OAAOK,GAASC,MAAW;AAM7C,MALc,MAAMC;AAAA,QACnB;AAAA,QACAL;AAAA,MAAA,IAKA,OAAO,0BAA0B,MAAY;AACrC,QAAAA,EAAA,IAAIC,EAAS,OAAO,0BAA0B,GAC7CE;MAAA,IAGDA;IACT,CACA,GACC,CAACH,CAAM,CAAC,GAELM,IAAgBR,EAAM;AAAA,MAC3B,CAACS,MACO,QAAQ;AAAA,QACd,IAAI,GAAG,OAAOA,GAAS;AAAA,UACtB,MAAMX;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACR;AAAA,MAAA;AAAA,MAGH,CAAC;AAAA,IAAA;AAID,WAAA,gBAAAE,EAAA;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,GAAGT;AAAA,QACJ,YAAAG;AAAA,QACA,eAAAI;AAAA,QACA,mBAAmBG;AAAA,MAAA;AAAA,MAElB,CAACC,MACA,gBAAAZ,EAAA,cAAA,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OACpC,EAAA,GAAA,gBAAAA,EAAA,cAAC,OAAI,EAAA,KAAKY,GAAY,CACvB;AAAA,IAAA;AAAA,EAIJ;AACD;"}