@aigamo/nostalgic-diva 1.16.0-rc.2 → 1.16.0-rc.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 (63) hide show
  1. package/dist/{AudioPlayer-DYTgFDsb.js → AudioPlayer-DPiP_j1z.js} +3 -3
  2. package/dist/AudioPlayer-DPiP_j1z.js.map +1 -0
  3. package/dist/{AudioPlayer-1K9W0RJb.cjs → AudioPlayer-DaDlxXaP.cjs} +2 -2
  4. package/dist/AudioPlayer-DaDlxXaP.cjs.map +1 -0
  5. package/dist/{DailymotionPlayer-CHi90pep.js → DailymotionPlayer-BXC_M5Iu.js} +4 -4
  6. package/dist/DailymotionPlayer-BXC_M5Iu.js.map +1 -0
  7. package/dist/{DailymotionPlayer-DZ0YvhEC.cjs → DailymotionPlayer-WincrEXx.cjs} +2 -2
  8. package/dist/DailymotionPlayer-WincrEXx.cjs.map +1 -0
  9. package/dist/{NiconicoPlayer-Cet5yuM9.cjs → NiconicoPlayer-DQJX58Qg.cjs} +2 -2
  10. package/dist/NiconicoPlayer-DQJX58Qg.cjs.map +1 -0
  11. package/dist/{NiconicoPlayer-CAQQN_Ys.js → NiconicoPlayer-JHS5aQ0E.js} +3 -3
  12. package/dist/NiconicoPlayer-JHS5aQ0E.js.map +1 -0
  13. package/dist/{PlayerContainer-DpbwZ2CV.cjs → PlayerContainer-C2nRJ7V_.cjs} +2 -2
  14. package/dist/PlayerContainer-C2nRJ7V_.cjs.map +1 -0
  15. package/dist/{PlayerContainer-Da78F7M0.js → PlayerContainer-DxWOBf2x.js} +2 -2
  16. package/dist/PlayerContainer-DxWOBf2x.js.map +1 -0
  17. package/dist/{SoundCloudPlayer-COM7uCxE.cjs → SoundCloudPlayer-3Cyzk3uh.cjs} +2 -2
  18. package/dist/SoundCloudPlayer-3Cyzk3uh.cjs.map +1 -0
  19. package/dist/{SoundCloudPlayer-CDxa1Q_V.js → SoundCloudPlayer-ZkUD5X1L.js} +4 -4
  20. package/dist/SoundCloudPlayer-ZkUD5X1L.js.map +1 -0
  21. package/dist/{TwitchPlayer-G-2bnyQg.js → TwitchPlayer-B4_1-Evt.js} +4 -4
  22. package/dist/TwitchPlayer-B4_1-Evt.js.map +1 -0
  23. package/dist/{TwitchPlayer-BLwcNYI7.cjs → TwitchPlayer-Bfmg0eoY.cjs} +2 -2
  24. package/dist/TwitchPlayer-Bfmg0eoY.cjs.map +1 -0
  25. package/dist/{VimeoPlayer-EDnQb3iE.cjs → VimeoPlayer-BLqfbNQc.cjs} +2 -2
  26. package/dist/VimeoPlayer-BLqfbNQc.cjs.map +1 -0
  27. package/dist/{VimeoPlayer-C3YsFhMx.js → VimeoPlayer-C1PcMejA.js} +4 -4
  28. package/dist/VimeoPlayer-C1PcMejA.js.map +1 -0
  29. package/dist/{YouTubePlayer-BChwqwQX.js → YouTubePlayer-CaEPCRB3.js} +4 -4
  30. package/dist/YouTubePlayer-CaEPCRB3.js.map +1 -0
  31. package/dist/{YouTubePlayer-CPB3Qzvb.cjs → YouTubePlayer-Cf3w33PN.cjs} +2 -2
  32. package/dist/YouTubePlayer-Cf3w33PN.cjs.map +1 -0
  33. package/dist/{ensureScriptLoaded-Ci57s2DO.cjs → ensureScriptLoaded-DNKCqDit.cjs} +2 -2
  34. package/dist/ensureScriptLoaded-DNKCqDit.cjs.map +1 -0
  35. package/dist/{ensureScriptLoaded-BcG9pOxp.js → ensureScriptLoaded-DwRbyEJE.js} +2 -2
  36. package/dist/ensureScriptLoaded-DwRbyEJE.js.map +1 -0
  37. package/dist/{index-C4j8BPk4.js → index-Bj-AJUe2.js} +31 -31
  38. package/dist/index-Bj-AJUe2.js.map +1 -0
  39. package/dist/{index-DbrueNLc.cjs → index-_eCn8-fe.cjs} +2 -2
  40. package/dist/index-_eCn8-fe.cjs.map +1 -0
  41. package/dist/index.cjs.js +1 -1
  42. package/dist/index.es.js +1 -1
  43. package/package.json +4 -4
  44. package/dist/AudioPlayer-1K9W0RJb.cjs.map +0 -1
  45. package/dist/AudioPlayer-DYTgFDsb.js.map +0 -1
  46. package/dist/DailymotionPlayer-CHi90pep.js.map +0 -1
  47. package/dist/DailymotionPlayer-DZ0YvhEC.cjs.map +0 -1
  48. package/dist/NiconicoPlayer-CAQQN_Ys.js.map +0 -1
  49. package/dist/NiconicoPlayer-Cet5yuM9.cjs.map +0 -1
  50. package/dist/PlayerContainer-Da78F7M0.js.map +0 -1
  51. package/dist/PlayerContainer-DpbwZ2CV.cjs.map +0 -1
  52. package/dist/SoundCloudPlayer-CDxa1Q_V.js.map +0 -1
  53. package/dist/SoundCloudPlayer-COM7uCxE.cjs.map +0 -1
  54. package/dist/TwitchPlayer-BLwcNYI7.cjs.map +0 -1
  55. package/dist/TwitchPlayer-G-2bnyQg.js.map +0 -1
  56. package/dist/VimeoPlayer-C3YsFhMx.js.map +0 -1
  57. package/dist/VimeoPlayer-EDnQb3iE.cjs.map +0 -1
  58. package/dist/YouTubePlayer-BChwqwQX.js.map +0 -1
  59. package/dist/YouTubePlayer-CPB3Qzvb.cjs.map +0 -1
  60. package/dist/ensureScriptLoaded-BcG9pOxp.js.map +0 -1
  61. package/dist/ensureScriptLoaded-Ci57s2DO.cjs.map +0 -1
  62. package/dist/index-C4j8BPk4.js.map +0 -1
  63. package/dist/index-DbrueNLc.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { P as c } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as i, A as u } from "./index-C4j8BPk4.js";
1
+ import { P as c } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as i, A as u } from "./index-Bj-AJUe2.js";
3
3
  import o, { memo as n, useCallback as s } from "react";
4
4
  const P = n(({ ...r }) => {
5
5
  const { logger: t } = r;
@@ -32,4 +32,4 @@ const P = n(({ ...r }) => {
32
32
  export {
33
33
  P as default
34
34
  };
35
- //# sourceMappingURL=AudioPlayer-DYTgFDsb.js.map
35
+ //# sourceMappingURL=AudioPlayer-DPiP_j1z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayer-DPiP_j1z.js","sources":["../src/components/AudioPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { AudioPlayerController } from '@/controllers/AudioPlayerController';\nimport { LogLevel } from '@/controllers/Logger';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst AudioPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'AudioPlayer');\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLAudioElement): Promise<HTMLAudioElement> => {\n\t\t\treturn Promise.resolve(element);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={undefined}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={AudioPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t<audio\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={videoId}\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\tpreload=\"auto\"\n\t\t\t\t\tautoPlay\n\t\t\t\t\tcontrols\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default AudioPlayer;\n"],"names":["AudioPlayer","memo","props","logger","LogLevel","playerFactory","useCallback","element","React","PlayerContainer","AudioPlayerController","elementRef","videoId"],"mappings":";;;AAQA,MAAMA,IAAcC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AACrE,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,aAAa;AAExC,QAAMC,IAAgBC;AAAA,IACrB,CAACC,MACO,QAAQ,QAAQA,CAAO;AAAA,IAE/B,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGP;AAAA,MACJ,YAAY;AAAA,MACZ,eAAAG;AAAA,MACA,mBAAmBK;AAAA,IAAA;AAAA,IAElB,CAACC,GAAYC,MACb,gBAAAJ,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAKG;AAAA,QACL,KAAKC;AAAA,QACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,QAChC,SAAQ;AAAA,QACR,UAAQ;AAAA,QACR,UAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACT;AAIJ,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-DpbwZ2CV.cjs"),o=require("./index-DbrueNLc.cjs"),e=require("react"),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-1K9W0RJb.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-C2nRJ7V_.cjs"),o=require("./index-_eCn8-fe.cjs"),e=require("react"),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-DaDlxXaP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPlayer-DaDlxXaP.cjs","sources":["../src/components/AudioPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { AudioPlayerController } from '@/controllers/AudioPlayerController';\nimport { LogLevel } from '@/controllers/Logger';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst AudioPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'AudioPlayer');\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLAudioElement): Promise<HTMLAudioElement> => {\n\t\t\treturn Promise.resolve(element);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={undefined}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={AudioPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t<audio\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={videoId}\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t\tpreload=\"auto\"\n\t\t\t\t\tautoPlay\n\t\t\t\t\tcontrols\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default AudioPlayer;\n"],"names":["AudioPlayer","memo","props","logger","LogLevel","playerFactory","useCallback","element","React","PlayerContainer","AudioPlayerController","elementRef","videoId"],"mappings":"uLAQMA,EAAcC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CACrE,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,aAAa,EAExC,MAAMC,EAAgBC,EAAAA,YACpBC,GACO,QAAQ,QAAQA,CAAO,EAE/B,CAAA,CAAC,EAGF,OACCC,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGP,EACJ,WAAY,OACZ,cAAAG,EACA,kBAAmBK,EAAAA,qBAAA,EAElB,CAACC,EAAYC,IACbJ,EAAA,cAAC,QAAA,CACA,IAAKG,EACL,IAAKC,EACL,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,EAChC,QAAQ,OACR,SAAQ,GACR,SAAQ,EAAA,CAAA,CACT,CAIJ,CAAC"}
@@ -1,6 +1,6 @@
1
- import { P as m } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as y, D as s } from "./index-C4j8BPk4.js";
3
- import { e as g } from "./ensureScriptLoaded-BcG9pOxp.js";
1
+ import { P as m } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as y, D as s } from "./index-Bj-AJUe2.js";
3
+ import { e as g } from "./ensureScriptLoaded-DwRbyEJE.js";
4
4
  import t, { memo as u, useCallback as l } from "react";
5
5
  const v = u(
6
6
  ({ options: e, ...o }) => {
@@ -62,4 +62,4 @@ const v = u(
62
62
  export {
63
63
  v as default
64
64
  };
65
- //# sourceMappingURL=DailymotionPlayer-CHi90pep.js.map
65
+ //# sourceMappingURL=DailymotionPlayer-BXC_M5Iu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailymotionPlayer-BXC_M5Iu.js","sources":["../src/components/DailymotionPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { DailymotionPlayerController } from '@/controllers/DailymotionPlayerController';\nimport { LogLevel } from '@/controllers/Logger';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst DailymotionPlayer = memo(\n\t({ options, ...props }: PlayerProps): ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'DailymotionPlayer');\n\n\t\tconst loadScript = useCallback(async () => {\n\t\t\tawait ensureScriptLoaded('https://api.dmcdn.net/all.js', logger);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = 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): 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","memo","options","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","videoId","error","React","PlayerContainer","DailymotionPlayerController","elementRef"],"mappings":";;;;AASA,MAAMA,IAAoBC;AAAA,EACzB,CAAC,EAAE,SAAAC,GAAS,GAAGC,QAAuC;AACrD,UAAM,EAAE,QAAAC,MAAWD;AAEnB,IAAAC,EAAO,IAAIC,EAAS,OAAO,mBAAmB;AAE9C,UAAMC,IAAaC,EAAY,YAAY;AAC1C,YAAMC,EAAmB,gCAAgCJ,CAAM;AAAA,IAChE,GAAG,CAACA,CAAM,CAAC,GAELK,IAAgBF;AAAA,MACrB,CAACG,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,cAAAT,GAAS,WAAW,EAAE,IAAIS,EAAA,CAAS;AAAA,YACpC;AAAA,YACA,QAAQ,MAAY;AACnB,cAAAT,GAAS,eAAe;AAAA,gBACvB,UAAU;AAAA,gBACV,SAAS;AAAA,gBACT,SAAS;AAAA,cAAA,CACT;AAAA,YACF;AAAA,YACA,WAAW,MAAY;AACtB,cAAAA,GAAS,UAAA;AAAA,YACV;AAAA,YACA,gBAAgB,MAAY;AAAA,YAAC;AAAA,YAC7B,OAAO,MAAY;AAClB,cAAAA,GAAS,UAAA;AAAA,YACV;AAAA,YACA,SAAS,MAAY;AACpB,cAAAA,GAAS,SAAA;AAAA,YACV;AAAA,YACA,SAAS,MAAY;AAAA,YAAC;AAAA,YACtB,OAAO,CAACU,MAAgB;AACvB,cAAAV,GAAS,UAAUU,CAAK;AAAA,YACzB;AAAA,UAAA;AAAA,QACD,CACA;AAAA,MAAA;AAAA,MAGH,CAACV,CAAO;AAAA,IAAA;AAGT,WACC,gBAAAW,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,GAAGX;AAAA,QACJ,SAAAD;AAAA,QACA,YAAAI;AAAA,QACA,eAAAG;AAAA,QACA,mBAAmBM;AAAA,MAAA;AAAA,MAElB,CAACC,MACD,gBAAAH,EAAA,cAAC,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,SAAO,GAC3C,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKG,GAAY,CACvB;AAAA,IAAA;AAAA,EAIJ;AACD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-DpbwZ2CV.cjs"),o=require("./index-DbrueNLc.cjs"),y=require("./ensureScriptLoaded-Ci57s2DO.cjs"),r=require("react"),s=r.memo(({options:e,...n})=>{const{logger:a}=n;a.log(o.LogLevel.Debug,"DailymotionPlayer");const i=r.useCallback(async()=>{await y.ensureScriptLoaded("https://api.dmcdn.net/all.js",a)},[a]),c=r.useCallback((t,l)=>Promise.resolve(new DM.player(t,{video:l,width:"100%",height:"100%",events:{apiready:()=>{e?.onLoaded?.({id:l})},seeked:()=>{e?.onTimeUpdate?.({duration:0,percent:0,seconds:0})},video_end:()=>{e?.onEnded?.()},durationchange:()=>{},pause:()=>{e?.onPause?.()},playing:()=>{e?.onPlay?.()},waiting:()=>{},error:d=>{e?.onError?.(d)}}})),[e]);return r.createElement(u.PlayerContainer,{...n,options:e,loadScript:i,playerFactory:c,controllerFactory:o.DailymotionPlayerController},t=>r.createElement("div",{style:{width:"100%",height:"100%"}},r.createElement("div",{ref:t})))});exports.default=s;
2
- //# sourceMappingURL=DailymotionPlayer-DZ0YvhEC.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-C2nRJ7V_.cjs"),o=require("./index-_eCn8-fe.cjs"),y=require("./ensureScriptLoaded-DNKCqDit.cjs"),r=require("react"),s=r.memo(({options:e,...n})=>{const{logger:a}=n;a.log(o.LogLevel.Debug,"DailymotionPlayer");const i=r.useCallback(async()=>{await y.ensureScriptLoaded("https://api.dmcdn.net/all.js",a)},[a]),c=r.useCallback((t,l)=>Promise.resolve(new DM.player(t,{video:l,width:"100%",height:"100%",events:{apiready:()=>{e?.onLoaded?.({id:l})},seeked:()=>{e?.onTimeUpdate?.({duration:0,percent:0,seconds:0})},video_end:()=>{e?.onEnded?.()},durationchange:()=>{},pause:()=>{e?.onPause?.()},playing:()=>{e?.onPlay?.()},waiting:()=>{},error:d=>{e?.onError?.(d)}}})),[e]);return r.createElement(u.PlayerContainer,{...n,options:e,loadScript:i,playerFactory:c,controllerFactory:o.DailymotionPlayerController},t=>r.createElement("div",{style:{width:"100%",height:"100%"}},r.createElement("div",{ref:t})))});exports.default=s;
2
+ //# sourceMappingURL=DailymotionPlayer-WincrEXx.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailymotionPlayer-WincrEXx.cjs","sources":["../src/components/DailymotionPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { DailymotionPlayerController } from '@/controllers/DailymotionPlayerController';\nimport { LogLevel } from '@/controllers/Logger';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst DailymotionPlayer = memo(\n\t({ options, ...props }: PlayerProps): ReactElement => {\n\t\tconst { logger } = props;\n\n\t\tlogger.log(LogLevel.Debug, 'DailymotionPlayer');\n\n\t\tconst loadScript = useCallback(async () => {\n\t\t\tawait ensureScriptLoaded('https://api.dmcdn.net/all.js', logger);\n\t\t}, [logger]);\n\n\t\tconst playerFactory = 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): 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","memo","options","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","videoId","error","React","PlayerContainer","DailymotionPlayerController","elementRef"],"mappings":"sOASMA,EAAoBC,EAAAA,KACzB,CAAC,CAAE,QAAAC,EAAS,GAAGC,KAAuC,CACrD,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,mBAAmB,EAE9C,MAAMC,EAAaC,EAAAA,YAAY,SAAY,CAC1C,MAAMC,EAAAA,mBAAmB,+BAAgCJ,CAAM,CAChE,EAAG,CAACA,CAAM,CAAC,EAELK,EAAgBF,EAAAA,YACrB,CAACG,EAAyBC,IAClB,QAAQ,QACd,IAAI,GAAG,OAAOD,EAAS,CACtB,MAAOC,EACP,MAAO,OACP,OAAQ,OACR,OAAQ,CACP,SAAU,IAAY,CACrBT,GAAS,WAAW,CAAE,GAAIS,CAAA,CAAS,CACpC,EACA,OAAQ,IAAY,CACnBT,GAAS,eAAe,CACvB,SAAU,EACV,QAAS,EACT,QAAS,CAAA,CACT,CACF,EACA,UAAW,IAAY,CACtBA,GAAS,UAAA,CACV,EACA,eAAgB,IAAY,CAAC,EAC7B,MAAO,IAAY,CAClBA,GAAS,UAAA,CACV,EACA,QAAS,IAAY,CACpBA,GAAS,SAAA,CACV,EACA,QAAS,IAAY,CAAC,EACtB,MAAQU,GAAgB,CACvBV,GAAS,UAAUU,CAAK,CACzB,CAAA,CACD,CACA,CAAA,EAGH,CAACV,CAAO,CAAA,EAGT,OACCW,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGX,EACJ,QAAAD,EACA,WAAAI,EACA,cAAAG,EACA,kBAAmBM,EAAAA,2BAAA,EAEjBC,GACDH,EAAA,cAAC,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,OAAQ,OAAO,EAC3CA,EAAA,cAAC,MAAA,CAAI,IAAKG,EAAY,CACvB,CAAA,CAIJ,CACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-DpbwZ2CV.cjs"),o=require("./index-DbrueNLc.cjs"),e=require("react"),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-Cet5yuM9.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-C2nRJ7V_.cjs"),o=require("./index-_eCn8-fe.cjs"),e=require("react"),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-DQJX58Qg.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiconicoPlayer-DQJX58Qg.cjs","sources":["../src/components/NiconicoPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { NiconicoPlayerController } from '@/controllers/NiconicoPlayerController';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst NiconicoPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'NiconicoPlayer');\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<HTMLIFrameElement> => {\n\t\t\treturn Promise.resolve(element);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={undefined}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={NiconicoPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\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://embed.nicovideo.jp/watch/${videoId}?jsapi=1&playerId=1`}\n\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\tallowFullScreen\n\t\t\t\t\t\tstyle={{ border: 'none' }}\n\t\t\t\t\t\t// The player has to have the allow=\"autoplay\" attribute.\n\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// See also: https://github.com/vimeo/player.js/issues/389.\n\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// which causes the above issue when trying to autoplay a video.\n\t\t\t\t\t\tallow=\"autoplay; fullscreen\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default NiconicoPlayer;\n"],"names":["NiconicoPlayer","memo","props","logger","LogLevel","playerFactory","useCallback","element","React","PlayerContainer","NiconicoPlayerController","elementRef","videoId"],"mappings":"uLAQMA,EAAiBC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CACxE,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,gBAAgB,EAE3C,MAAMC,EAAgBC,EAAAA,YACpBC,GACO,QAAQ,QAAQA,CAAO,EAE/B,CAAA,CAAC,EAGF,OACCC,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGP,EACJ,WAAY,OACZ,cAAAG,EACA,kBAAmBK,EAAAA,wBAAA,EAElB,CAACC,EAAYC,IACbJ,EAAA,cAAC,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAAO,EAE3CA,EAAA,cAAC,SAAA,CACA,IAAKG,EACL,IAAK,oCAAoCC,CAAO,sBAChD,MAAM,OACN,OAAO,OACP,gBAAe,GACf,MAAO,CAAE,OAAQ,MAAA,EAMjB,MAAM,sBAAA,CAAA,CAER,CAAA,CAIJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import { P as c } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as i, N as n } from "./index-C4j8BPk4.js";
1
+ import { P as c } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as i, N as n } from "./index-Bj-AJUe2.js";
3
3
  import r, { memo as s, useCallback as m } from "react";
4
4
  const u = s(({ ...o }) => {
5
5
  const { logger: t } = o;
@@ -33,4 +33,4 @@ const u = s(({ ...o }) => {
33
33
  export {
34
34
  u as default
35
35
  };
36
- //# sourceMappingURL=NiconicoPlayer-CAQQN_Ys.js.map
36
+ //# sourceMappingURL=NiconicoPlayer-JHS5aQ0E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiconicoPlayer-JHS5aQ0E.js","sources":["../src/components/NiconicoPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { NiconicoPlayerController } from '@/controllers/NiconicoPlayerController';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst NiconicoPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'NiconicoPlayer');\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<HTMLIFrameElement> => {\n\t\t\treturn Promise.resolve(element);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={undefined}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={NiconicoPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\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://embed.nicovideo.jp/watch/${videoId}?jsapi=1&playerId=1`}\n\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\tallowFullScreen\n\t\t\t\t\t\tstyle={{ border: 'none' }}\n\t\t\t\t\t\t// The player has to have the allow=\"autoplay\" attribute.\n\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// See also: https://github.com/vimeo/player.js/issues/389.\n\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// which causes the above issue when trying to autoplay a video.\n\t\t\t\t\t\tallow=\"autoplay; fullscreen\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default NiconicoPlayer;\n"],"names":["NiconicoPlayer","memo","props","logger","LogLevel","playerFactory","useCallback","element","React","PlayerContainer","NiconicoPlayerController","elementRef","videoId"],"mappings":";;;AAQA,MAAMA,IAAiBC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AACxE,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,gBAAgB;AAE3C,QAAMC,IAAgBC;AAAA,IACrB,CAACC,MACO,QAAQ,QAAQA,CAAO;AAAA,IAE/B,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGP;AAAA,MACJ,YAAY;AAAA,MACZ,eAAAG;AAAA,MACA,mBAAmBK;AAAA,IAAA;AAAA,IAElB,CAACC,GAAYC,MACb,gBAAAJ,EAAA,cAAC,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA,EAAO,GAE3C,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAKG;AAAA,QACL,KAAK,oCAAoCC,CAAO;AAAA,QAChD,OAAM;AAAA,QACN,QAAO;AAAA,QACP,iBAAe;AAAA,QACf,OAAO,EAAE,QAAQ,OAAA;AAAA,QAMjB,OAAM;AAAA,MAAA;AAAA,IAAA,CAER;AAAA,EAAA;AAIJ,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("react"),i=require("./index-DbrueNLc.cjs");function y(){const e=t.useRef(!0);return e.current?(e.current=!1,!0):e.current}const h=(e,r)=>e===r;function q(e,r=h){const n=t.useRef(),u=t.useRef(e);return!y()&&!r(u.current,e)&&(n.current=u.current,u.current=e),n.current}const F=({logger:e,type:r,loadScript:n,playerFactory:u,onControllerChange:f,videoId:c,options:R,controllerFactory:P,children:C})=>{e.log(i.LogLevel.Debug,"PlayerContainer");const l=t.useRef(c),v=t.useRef(void 0),[a,m]=t.useState(),[o,d]=t.useState(i.nullPlayerController);t.useEffect(()=>{f?.(o)},[o,f]),t.useEffect(()=>{(n?.()??Promise.resolve()).then(()=>u(v.current,l.current)).then(s=>m(s))},[n,u]),t.useEffect(()=>{if(a===void 0)return;const s=new i.PlayerController(e,r,a,R,P);return d(s),s.attach(l.current),()=>{d(i.nullPlayerController),s.detach()}},[e,r,n,a,R,P]);const E=q(c);return t.useEffect(()=>{E!==void 0&&o.loadVideo(c)},[E,c,o]),t.createElement(t.Fragment,null,C(v,l.current))};exports.PlayerContainer=F;
2
- //# sourceMappingURL=PlayerContainer-DpbwZ2CV.cjs.map
1
+ "use strict";const t=require("react"),i=require("./index-_eCn8-fe.cjs");function y(){const e=t.useRef(!0);return e.current?(e.current=!1,!0):e.current}const h=(e,r)=>e===r;function q(e,r=h){const n=t.useRef(),u=t.useRef(e);return!y()&&!r(u.current,e)&&(n.current=u.current,u.current=e),n.current}const F=({logger:e,type:r,loadScript:n,playerFactory:u,onControllerChange:f,videoId:c,options:R,controllerFactory:P,children:C})=>{e.log(i.LogLevel.Debug,"PlayerContainer");const l=t.useRef(c),v=t.useRef(void 0),[a,m]=t.useState(),[o,d]=t.useState(i.nullPlayerController);t.useEffect(()=>{f?.(o)},[o,f]),t.useEffect(()=>{(n?.()??Promise.resolve()).then(()=>u(v.current,l.current)).then(s=>m(s))},[n,u]),t.useEffect(()=>{if(a===void 0)return;const s=new i.PlayerController(e,r,a,R,P);return d(s),s.attach(l.current),()=>{d(i.nullPlayerController),s.detach()}},[e,r,n,a,R,P]);const E=q(c);return t.useEffect(()=>{E!==void 0&&o.loadVideo(c)},[E,c,o]),t.createElement(t.Fragment,null,C(v,l.current))};exports.PlayerContainer=F;
2
+ //# sourceMappingURL=PlayerContainer-C2nRJ7V_.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerContainer-C2nRJ7V_.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 { useFirstMountState } from '@/components/useFirstMountState';\nimport { useRef } from 'react';\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 usePreviousDistinct from '@/components/usePreviousDistinct';\nimport { type ILogger, LogLevel } from '@/controllers/Logger';\nimport { nullPlayerController } from '@/controllers/NullPlayerController';\nimport {\n\ttype IPlayerController,\n\tPlayerController,\n\ttype PlayerOptions,\n\tPlayerType,\n} from '@/controllers/PlayerController';\nimport { PlayerControllerImpl } from '@/controllers/PlayerControllerImpl';\nimport React, {\n\ttype MutableRefObject,\n\ttype ReactElement,\n\ttype ReactNode,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nexport interface PlayerProps {\n\tlogger: ILogger;\n\ttype: PlayerType;\n\tonControllerChange: ((value: IPlayerController) => void) | 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: MutableRefObject<TElement>,\n\t\tvideoId: string,\n\t) => 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>): ReactElement<\n\tPlayerContainerProps<TElement, TPlayer, TController>\n> => {\n\tlogger.log(LogLevel.Debug, 'PlayerContainer');\n\n\tconst videoIdRef = useRef(videoId);\n\n\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\tconst elementRef = useRef<TElement>(undefined!);\n\n\tconst [player, setPlayer] = useState<TPlayer>();\n\n\tconst [controller, setController] =\n\t\tuseState<IPlayerController>(nullPlayerController);\n\tuseEffect(() => {\n\t\tonControllerChange?.(controller);\n\t}, [controller, onControllerChange]);\n\n\tuseEffect(() => {\n\t\tvoid (loadScript?.() ?? Promise.resolve())\n\t\t\t.then(() => playerFactory(elementRef.current, videoIdRef.current))\n\t\t\t.then((player) => setPlayer(player));\n\t}, [loadScript, playerFactory]);\n\n\t// Make sure that `options` do not change between re-rendering.\n\tuseEffect(() => {\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\tsetController(controller);\n\t\tvoid controller.attach(videoIdRef.current);\n\n\t\treturn (): void => {\n\t\t\tsetController(nullPlayerController);\n\t\t\tvoid controller.detach();\n\t\t};\n\t}, [logger, type, loadScript, player, options, controllerFactory]);\n\n\tconst previousVideoId = usePreviousDistinct(videoId);\n\tuseEffect(() => {\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\tvoid controller.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","elementRef","player","setPlayer","useState","controller","setController","nullPlayerController","useEffect","PlayerController","previousVideoId","React"],"mappings":"wEAGO,SAASA,GAA8B,CAC7C,MAAMC,EAAUC,EAAAA,OAAO,EAAI,EAE3B,OAAID,EAAQ,SACXA,EAAQ,QAAU,GAEX,IAGDA,EAAQ,OAChB,CCPA,MAAME,EAAe,CAAIC,EAAqBC,IAC7CD,IAASC,EAEV,SAAwBC,EACvBC,EACAC,EAAwBL,EACR,CAChB,MAAMM,EAAUP,EAAAA,OAAA,EACVQ,EAASR,EAAAA,OAAUK,CAAK,EAG9B,MAAI,CAFiBP,EAAA,GAEA,CAACQ,EAAQE,EAAO,QAASH,CAAK,IAClDE,EAAQ,QAAUC,EAAO,QACzBA,EAAO,QAAUH,GAGXE,EAAQ,OAChB,CCsBO,MAAME,EAAkB,CAI7B,CACD,OAAAC,EACA,KAAAC,EACA,WAAAC,EACA,cAAAC,EACA,mBAAAC,EACA,QAAAC,EACA,QAAAC,EACA,kBAAAC,EACA,SAAAC,CACD,IAEK,CACJR,EAAO,IAAIS,WAAS,MAAO,iBAAiB,EAE5C,MAAMC,EAAapB,EAAAA,OAAOe,CAAO,EAG3BM,EAAarB,EAAAA,OAAiB,MAAU,EAExC,CAACsB,EAAQC,CAAS,EAAIC,WAAA,EAEtB,CAACC,EAAYC,CAAa,EAC/BF,EAAAA,SAA4BG,EAAAA,oBAAoB,EACjDC,EAAAA,UAAU,IAAM,CACfd,IAAqBW,CAAU,CAChC,EAAG,CAACA,EAAYX,CAAkB,CAAC,EAEnCc,EAAAA,UAAU,IAAM,EACThB,OAAkB,QAAQ,WAC9B,KAAK,IAAMC,EAAcQ,EAAW,QAASD,EAAW,OAAO,CAAC,EAChE,KAAME,GAAWC,EAAUD,CAAM,CAAC,CACrC,EAAG,CAACV,EAAYC,CAAa,CAAC,EAG9Be,EAAAA,UAAU,IAAM,CACf,GAAIN,IAAW,OACd,OAGD,MAAMG,EAAa,IAAII,EAAAA,iBACtBnB,EACAC,EACAW,EACAN,EACAC,CAAA,EAGD,OAAAS,EAAcD,CAAU,EACnBA,EAAW,OAAOL,EAAW,OAAO,EAElC,IAAY,CAClBM,EAAcC,EAAAA,oBAAoB,EAC7BF,EAAW,OAAA,CACjB,CACD,EAAG,CAACf,EAAQC,EAAMC,EAAYU,EAAQN,EAASC,CAAiB,CAAC,EAEjE,MAAMa,EAAkB1B,EAAoBW,CAAO,EACnDa,OAAAA,EAAAA,UAAU,IAAM,CAKXE,IAAoB,QAInBL,EAAW,UAAUV,CAAO,CAClC,EAAG,CAACe,EAAiBf,EAASU,CAAU,CAAC,EAGlCM,EAAA,cAAAA,EAAA,SAAA,KAAGb,EAASG,EAAYD,EAAW,OAAO,CAAE,CACpD"}
@@ -1,5 +1,5 @@
1
1
  import h, { useRef as u, useState as C, useEffect as i } from "react";
2
- import { L as M, n as E, P as y } from "./index-C4j8BPk4.js";
2
+ import { L as M, n as E, P as y } from "./index-Bj-AJUe2.js";
3
3
  function D() {
4
4
  const r = u(!0);
5
5
  return r.current ? (r.current = !1, !0) : r.current;
@@ -48,4 +48,4 @@ const w = ({
48
48
  export {
49
49
  w as P
50
50
  };
51
- //# sourceMappingURL=PlayerContainer-Da78F7M0.js.map
51
+ //# sourceMappingURL=PlayerContainer-DxWOBf2x.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerContainer-DxWOBf2x.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 { useFirstMountState } from '@/components/useFirstMountState';\nimport { useRef } from 'react';\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 usePreviousDistinct from '@/components/usePreviousDistinct';\nimport { type ILogger, LogLevel } from '@/controllers/Logger';\nimport { nullPlayerController } from '@/controllers/NullPlayerController';\nimport {\n\ttype IPlayerController,\n\tPlayerController,\n\ttype PlayerOptions,\n\tPlayerType,\n} from '@/controllers/PlayerController';\nimport { PlayerControllerImpl } from '@/controllers/PlayerControllerImpl';\nimport React, {\n\ttype MutableRefObject,\n\ttype ReactElement,\n\ttype ReactNode,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nexport interface PlayerProps {\n\tlogger: ILogger;\n\ttype: PlayerType;\n\tonControllerChange: ((value: IPlayerController) => void) | 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: MutableRefObject<TElement>,\n\t\tvideoId: string,\n\t) => 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>): ReactElement<\n\tPlayerContainerProps<TElement, TPlayer, TController>\n> => {\n\tlogger.log(LogLevel.Debug, 'PlayerContainer');\n\n\tconst videoIdRef = useRef(videoId);\n\n\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\tconst elementRef = useRef<TElement>(undefined!);\n\n\tconst [player, setPlayer] = useState<TPlayer>();\n\n\tconst [controller, setController] =\n\t\tuseState<IPlayerController>(nullPlayerController);\n\tuseEffect(() => {\n\t\tonControllerChange?.(controller);\n\t}, [controller, onControllerChange]);\n\n\tuseEffect(() => {\n\t\tvoid (loadScript?.() ?? Promise.resolve())\n\t\t\t.then(() => playerFactory(elementRef.current, videoIdRef.current))\n\t\t\t.then((player) => setPlayer(player));\n\t}, [loadScript, playerFactory]);\n\n\t// Make sure that `options` do not change between re-rendering.\n\tuseEffect(() => {\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\tsetController(controller);\n\t\tvoid controller.attach(videoIdRef.current);\n\n\t\treturn (): void => {\n\t\t\tsetController(nullPlayerController);\n\t\t\tvoid controller.detach();\n\t\t};\n\t}, [logger, type, loadScript, player, options, controllerFactory]);\n\n\tconst previousVideoId = usePreviousDistinct(videoId);\n\tuseEffect(() => {\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\tvoid controller.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","elementRef","player","setPlayer","useState","controller","setController","nullPlayerController","useEffect","PlayerController","previousVideoId","React"],"mappings":";;AAGO,SAASA,IAA8B;AAC7C,QAAMC,IAAUC,EAAO,EAAI;AAE3B,SAAID,EAAQ,WACXA,EAAQ,UAAU,IAEX,MAGDA,EAAQ;AAChB;ACPA,MAAME,IAAe,CAAIC,GAAqBC,MAC7CD,MAASC;AAEV,SAAwBC,EACvBC,GACAC,IAAwBL,GACR;AAChB,QAAMM,IAAUP,EAAA,GACVQ,IAASR,EAAUK,CAAK;AAG9B,SAAI,CAFiBP,EAAA,KAEA,CAACQ,EAAQE,EAAO,SAASH,CAAK,MAClDE,EAAQ,UAAUC,EAAO,SACzBA,EAAO,UAAUH,IAGXE,EAAQ;AAChB;ACsBO,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;AACJ,EAAAR,EAAO,IAAIS,EAAS,OAAO,iBAAiB;AAE5C,QAAMC,IAAapB,EAAOe,CAAO,GAG3BM,IAAarB,EAAiB,MAAU,GAExC,CAACsB,GAAQC,CAAS,IAAIC,EAAA,GAEtB,CAACC,GAAYC,CAAa,IAC/BF,EAA4BG,CAAoB;AACjD,EAAAC,EAAU,MAAM;AACf,IAAAd,IAAqBW,CAAU;AAAA,EAChC,GAAG,CAACA,GAAYX,CAAkB,CAAC,GAEnCc,EAAU,MAAM;AACf,KAAMhB,SAAkB,QAAQ,WAC9B,KAAK,MAAMC,EAAcQ,EAAW,SAASD,EAAW,OAAO,CAAC,EAChE,KAAK,CAACE,MAAWC,EAAUD,CAAM,CAAC;AAAA,EACrC,GAAG,CAACV,GAAYC,CAAa,CAAC,GAG9Be,EAAU,MAAM;AACf,QAAIN,MAAW;AACd;AAGD,UAAMG,IAAa,IAAII;AAAA,MACtBnB;AAAA,MACAC;AAAA,MACAW;AAAA,MACAN;AAAA,MACAC;AAAA,IAAA;AAGD,WAAAS,EAAcD,CAAU,GACnBA,EAAW,OAAOL,EAAW,OAAO,GAElC,MAAY;AAClB,MAAAM,EAAcC,CAAoB,GAC7BF,EAAW,OAAA;AAAA,IACjB;AAAA,EACD,GAAG,CAACf,GAAQC,GAAMC,GAAYU,GAAQN,GAASC,CAAiB,CAAC;AAEjE,QAAMa,IAAkB1B,EAAoBW,CAAO;AACnD,SAAAa,EAAU,MAAM;AAKf,IAAIE,MAAoB,UAInBL,EAAW,UAAUV,CAAO;AAAA,EAClC,GAAG,CAACe,GAAiBf,GAASU,CAAU,CAAC,GAGlC,gBAAAM,EAAA,cAAAA,EAAA,UAAA,MAAGb,EAASG,GAAYD,EAAW,OAAO,CAAE;AACpD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-DpbwZ2CV.cjs"),l=require("./index-DbrueNLc.cjs"),s=require("./ensureScriptLoaded-Ci57s2DO.cjs"),e=require("react"),d=e.memo(({...t})=>{const{logger:r}=t;r.log(l.LogLevel.Debug,"SoundCloudPlayer");const a=e.useCallback(async()=>{await s.ensureScriptLoaded("https://w.soundcloud.com/player/api.js",r)},[r]),n=e.useCallback(o=>Promise.resolve(SC.Widget(o)),[]);return e.createElement(u.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-COM7uCxE.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-C2nRJ7V_.cjs"),l=require("./index-_eCn8-fe.cjs"),s=require("./ensureScriptLoaded-DNKCqDit.cjs"),e=require("react"),d=e.memo(({...t})=>{const{logger:r}=t;r.log(l.LogLevel.Debug,"SoundCloudPlayer");const a=e.useCallback(async()=>{await s.ensureScriptLoaded("https://w.soundcloud.com/player/api.js",r)},[r]),n=e.useCallback(o=>Promise.resolve(SC.Widget(o)),[]);return e.createElement(u.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-3Cyzk3uh.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundCloudPlayer-3Cyzk3uh.cjs","sources":["../src/components/SoundCloudPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { SoundCloudPlayerController } from '@/controllers/SoundCloudPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst SoundCloudPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'SoundCloudPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded(\n\t\t\t'https://w.soundcloud.com/player/api.js',\n\t\t\tlogger,\n\t\t);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<SC.SoundCloudWidget> => {\n\t\t\treturn Promise.resolve(SC.Widget(element));\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={SoundCloudPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t<iframe\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={`https://w.soundcloud.com/player/?url=${videoId}`}\n\t\t\t\t\tframeBorder={0}\n\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default SoundCloudPlayer;\n"],"names":["SoundCloudPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","SoundCloudPlayerController","elementRef","videoId"],"mappings":"sOASMA,EAAmBC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CAC1E,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,kBAAkB,EAE7C,MAAMC,EAAaC,EAAAA,YAAY,SAAY,CAC1C,MAAMC,EAAAA,mBACL,yCACAJ,CAAA,CAEF,EAAG,CAACA,CAAM,CAAC,EAELK,EAAgBF,EAAAA,YACpBG,GACO,QAAQ,QAAQ,GAAG,OAAOA,CAAO,CAAC,EAE1C,CAAA,CAAC,EAGF,OACCC,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGT,EACJ,WAAAG,EACA,cAAAG,EACA,kBAAmBI,EAAAA,0BAAA,EAElB,CAACC,EAAYC,IAEbJ,EAAA,cAAC,SAAA,CACA,IAAKG,EACL,IAAK,wCAAwCC,CAAO,GACpD,YAAa,EACb,MAAM,WACN,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAAO,CAAA,CACxC,CAIJ,CAAC"}
@@ -1,6 +1,6 @@
1
- import { P as n } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as u, S as d } from "./index-C4j8BPk4.js";
3
- import { e as m } from "./ensureScriptLoaded-BcG9pOxp.js";
1
+ import { P as n } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as u, S as d } from "./index-Bj-AJUe2.js";
3
+ import { e as m } from "./ensureScriptLoaded-DwRbyEJE.js";
4
4
  import t, { memo as i, useCallback as a } from "react";
5
5
  const C = i(({ ...r }) => {
6
6
  const { logger: e } = r;
@@ -40,4 +40,4 @@ const C = i(({ ...r }) => {
40
40
  export {
41
41
  C as default
42
42
  };
43
- //# sourceMappingURL=SoundCloudPlayer-CDxa1Q_V.js.map
43
+ //# sourceMappingURL=SoundCloudPlayer-ZkUD5X1L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundCloudPlayer-ZkUD5X1L.js","sources":["../src/components/SoundCloudPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { SoundCloudPlayerController } from '@/controllers/SoundCloudPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst SoundCloudPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'SoundCloudPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded(\n\t\t\t'https://w.soundcloud.com/player/api.js',\n\t\t\tlogger,\n\t\t);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<SC.SoundCloudWidget> => {\n\t\t\treturn Promise.resolve(SC.Widget(element));\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={SoundCloudPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t<iframe\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={`https://w.soundcloud.com/player/?url=${videoId}`}\n\t\t\t\t\tframeBorder={0}\n\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default SoundCloudPlayer;\n"],"names":["SoundCloudPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","SoundCloudPlayerController","elementRef","videoId"],"mappings":";;;;AASA,MAAMA,IAAmBC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AAC1E,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,kBAAkB;AAE7C,QAAMC,IAAaC,EAAY,YAAY;AAC1C,UAAMC;AAAA,MACL;AAAA,MACAJ;AAAA,IAAA;AAAA,EAEF,GAAG,CAACA,CAAM,CAAC,GAELK,IAAgBF;AAAA,IACrB,CAACG,MACO,QAAQ,QAAQ,GAAG,OAAOA,CAAO,CAAC;AAAA,IAE1C,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGT;AAAA,MACJ,YAAAG;AAAA,MACA,eAAAG;AAAA,MACA,mBAAmBI;AAAA,IAAA;AAAA,IAElB,CAACC,GAAYC;AAAA;AAAA,MAEb,gBAAAJ,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,KAAKG;AAAA,UACL,KAAK,wCAAwCC,CAAO;AAAA,UACpD,aAAa;AAAA,UACb,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,QAAO;AAAA,MAAA;AAAA;AAAA,EACxC;AAIJ,CAAC;"}
@@ -1,6 +1,6 @@
1
- import { P as s } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as n, T as m } from "./index-C4j8BPk4.js";
3
- import { e as h } from "./ensureScriptLoaded-BcG9pOxp.js";
1
+ import { P as s } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as n, T as m } from "./index-Bj-AJUe2.js";
3
+ import { e as h } from "./ensureScriptLoaded-DwRbyEJE.js";
4
4
  import o, { memo as y, useCallback as a } from "react";
5
5
  const P = y(({ ...r }) => {
6
6
  const { logger: e } = r;
@@ -37,4 +37,4 @@ const P = y(({ ...r }) => {
37
37
  export {
38
38
  P as default
39
39
  };
40
- //# sourceMappingURL=TwitchPlayer-G-2bnyQg.js.map
40
+ //# sourceMappingURL=TwitchPlayer-B4_1-Evt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchPlayer-B4_1-Evt.js","sources":["../src/components/TwitchPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { TwitchPlayerController } from '@/controllers/TwitchPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst TwitchPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'TwitchPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded('https://embed.twitch.tv/embed/v1.js', logger);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\tasync (\n\t\t\telement: HTMLDivElement,\n\t\t\tvideoId: string,\n\t\t): Promise<Twitch.Player> => {\n\t\t\treturn Promise.resolve(\n\t\t\t\tnew Twitch.Player(element, {\n\t\t\t\t\tvideo: videoId,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={TwitchPlayerController}\n\t\t>\n\t\t\t{(elementRef): ReactElement => (\n\t\t\t\t<div\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default TwitchPlayer;\n"],"names":["TwitchPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","videoId","React","PlayerContainer","TwitchPlayerController","elementRef"],"mappings":";;;;AASA,MAAMA,IAAeC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AACtE,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,cAAc;AAEzC,QAAMC,IAAaC,EAAY,YAAY;AAC1C,UAAMC,EAAmB,uCAAuCJ,CAAM;AAAA,EACvE,GAAG,CAACA,CAAM,CAAC,GAELK,IAAgBF;AAAA,IACrB,OACCG,GACAC,MAEO,QAAQ;AAAA,MACd,IAAI,OAAO,OAAOD,GAAS;AAAA,QAC1B,OAAOC;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAGH,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGV;AAAA,MACJ,YAAAG;AAAA,MACA,eAAAG;AAAA,MACA,mBAAmBK;AAAA,IAAA;AAAA,IAElB,CAACC,MACD,gBAAAH,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAKG;AAAA,QACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,MAAO;AAAA,IAAA;AAAA,EACxC;AAIJ,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-DpbwZ2CV.cjs"),a=require("./index-DbrueNLc.cjs"),s=require("./ensureScriptLoaded-Ci57s2DO.cjs"),e=require("react"),d=e.memo(({...o})=>{const{logger:t}=o;t.log(a.LogLevel.Debug,"TwitchPlayer");const c=e.useCallback(async()=>{await s.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(n.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-BLwcNYI7.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-C2nRJ7V_.cjs"),a=require("./index-_eCn8-fe.cjs"),s=require("./ensureScriptLoaded-DNKCqDit.cjs"),e=require("react"),d=e.memo(({...o})=>{const{logger:t}=o;t.log(a.LogLevel.Debug,"TwitchPlayer");const c=e.useCallback(async()=>{await s.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(n.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-Bfmg0eoY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwitchPlayer-Bfmg0eoY.cjs","sources":["../src/components/TwitchPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { TwitchPlayerController } from '@/controllers/TwitchPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst TwitchPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'TwitchPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded('https://embed.twitch.tv/embed/v1.js', logger);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\tasync (\n\t\t\telement: HTMLDivElement,\n\t\t\tvideoId: string,\n\t\t): Promise<Twitch.Player> => {\n\t\t\treturn Promise.resolve(\n\t\t\t\tnew Twitch.Player(element, {\n\t\t\t\t\tvideo: videoId,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={TwitchPlayerController}\n\t\t>\n\t\t\t{(elementRef): ReactElement => (\n\t\t\t\t<div\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default TwitchPlayer;\n"],"names":["TwitchPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","videoId","React","PlayerContainer","TwitchPlayerController","elementRef"],"mappings":"sOASMA,EAAeC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CACtE,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,cAAc,EAEzC,MAAMC,EAAaC,EAAAA,YAAY,SAAY,CAC1C,MAAMC,EAAAA,mBAAmB,sCAAuCJ,CAAM,CACvE,EAAG,CAACA,CAAM,CAAC,EAELK,EAAgBF,EAAAA,YACrB,MACCG,EACAC,IAEO,QAAQ,QACd,IAAI,OAAO,OAAOD,EAAS,CAC1B,MAAOC,EACP,MAAO,OACP,OAAQ,MAAA,CACR,CAAA,EAGH,CAAA,CAAC,EAGF,OACCC,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGV,EACJ,WAAAG,EACA,cAAAG,EACA,kBAAmBK,EAAAA,sBAAA,EAEjBC,GACDH,EAAA,cAAC,MAAA,CACA,IAAKG,EACL,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAAO,CAAA,CACxC,CAIJ,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-DpbwZ2CV.cjs"),a=require("./index-DbrueNLc.cjs"),s=require("./ensureScriptLoaded-Ci57s2DO.cjs"),e=require("react"),y=e.memo(({...t})=>{const{logger:r}=t;r.log(a.LogLevel.Debug,"VimeoPlayer");const l=e.useCallback(async()=>{await s.ensureScriptLoaded("https://player.vimeo.com/api/player.js",r)},[r]),i=e.useCallback(o=>Promise.resolve(new Vimeo.Player(o)),[]);return e.createElement(n.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-EDnQb3iE.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./PlayerContainer-C2nRJ7V_.cjs"),a=require("./index-_eCn8-fe.cjs"),s=require("./ensureScriptLoaded-DNKCqDit.cjs"),e=require("react"),y=e.memo(({...t})=>{const{logger:r}=t;r.log(a.LogLevel.Debug,"VimeoPlayer");const l=e.useCallback(async()=>{await s.ensureScriptLoaded("https://player.vimeo.com/api/player.js",r)},[r]),i=e.useCallback(o=>Promise.resolve(new Vimeo.Player(o)),[]);return e.createElement(n.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-BLqfbNQc.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoPlayer-BLqfbNQc.cjs","sources":["../src/components/VimeoPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { VimeoPlayerController } from '@/controllers/VimeoPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst VimeoPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'VimeoPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded(\n\t\t\t'https://player.vimeo.com/api/player.js',\n\t\t\tlogger,\n\t\t);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<Vimeo.Player> => {\n\t\t\treturn Promise.resolve(new Vimeo.Player(element));\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={VimeoPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t<iframe\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\t\t\tframeBorder={0}\n\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default VimeoPlayer;\n"],"names":["VimeoPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","VimeoPlayerController","elementRef","videoId"],"mappings":"sOASMA,EAAcC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CACrE,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,aAAa,EAExC,MAAMC,EAAaC,EAAAA,YAAY,SAAY,CAC1C,MAAMC,EAAAA,mBACL,yCACAJ,CAAA,CAEF,EAAG,CAACA,CAAM,CAAC,EAELK,EAAgBF,EAAAA,YACpBG,GACO,QAAQ,QAAQ,IAAI,MAAM,OAAOA,CAAO,CAAC,EAEjD,CAAA,CAAC,EAGF,OACCC,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGT,EACJ,WAAAG,EACA,cAAAG,EACA,kBAAmBI,EAAAA,qBAAA,EAElB,CAACC,EAAYC,IAEbJ,EAAA,cAAC,SAAA,CACA,IAAKG,EACL,IAAK,kCAAkCC,CAAO,GAC9C,YAAa,EACb,MAAM,WACN,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAAO,CAAA,CACxC,CAIJ,CAAC"}
@@ -1,6 +1,6 @@
1
- import { P as s } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as c, V as n } from "./index-C4j8BPk4.js";
3
- import { e as y } from "./ensureScriptLoaded-BcG9pOxp.js";
1
+ import { P as s } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as c, V as n } from "./index-Bj-AJUe2.js";
3
+ import { e as y } from "./ensureScriptLoaded-DwRbyEJE.js";
4
4
  import a, { memo as p, useCallback as t } from "react";
5
5
  const g = p(({ ...o }) => {
6
6
  const { logger: e } = o;
@@ -40,4 +40,4 @@ const g = p(({ ...o }) => {
40
40
  export {
41
41
  g as default
42
42
  };
43
- //# sourceMappingURL=VimeoPlayer-C3YsFhMx.js.map
43
+ //# sourceMappingURL=VimeoPlayer-C1PcMejA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoPlayer-C1PcMejA.js","sources":["../src/components/VimeoPlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { VimeoPlayerController } from '@/controllers/VimeoPlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst VimeoPlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'VimeoPlayer');\n\n\tconst loadScript = useCallback(async () => {\n\t\tawait ensureScriptLoaded(\n\t\t\t'https://player.vimeo.com/api/player.js',\n\t\t\tlogger,\n\t\t);\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLIFrameElement): Promise<Vimeo.Player> => {\n\t\t\treturn Promise.resolve(new Vimeo.Player(element));\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={VimeoPlayerController}\n\t\t>\n\t\t\t{(elementRef, videoId): ReactElement => (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/iframe-has-title\n\t\t\t\t<iframe\n\t\t\t\t\tref={elementRef}\n\t\t\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\t\t\tframeBorder={0}\n\t\t\t\t\tallow=\"autoplay\"\n\t\t\t\t\tstyle={{ width: '100%', height: '100%' }}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default VimeoPlayer;\n"],"names":["VimeoPlayer","memo","props","logger","LogLevel","loadScript","useCallback","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","VimeoPlayerController","elementRef","videoId"],"mappings":";;;;AASA,MAAMA,IAAcC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AACrE,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,aAAa;AAExC,QAAMC,IAAaC,EAAY,YAAY;AAC1C,UAAMC;AAAA,MACL;AAAA,MACAJ;AAAA,IAAA;AAAA,EAEF,GAAG,CAACA,CAAM,CAAC,GAELK,IAAgBF;AAAA,IACrB,CAACG,MACO,QAAQ,QAAQ,IAAI,MAAM,OAAOA,CAAO,CAAC;AAAA,IAEjD,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAC,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGT;AAAA,MACJ,YAAAG;AAAA,MACA,eAAAG;AAAA,MACA,mBAAmBI;AAAA,IAAA;AAAA,IAElB,CAACC,GAAYC;AAAA;AAAA,MAEb,gBAAAJ,EAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,KAAKG;AAAA,UACL,KAAK,kCAAkCC,CAAO;AAAA,UAC9C,aAAa;AAAA,UACb,OAAM;AAAA,UACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,QAAO;AAAA,MAAA;AAAA;AAAA,EACxC;AAIJ,CAAC;"}
@@ -1,6 +1,6 @@
1
- import { P as s } from "./PlayerContainer-Da78F7M0.js";
2
- import { L as a, Y as u } from "./index-C4j8BPk4.js";
3
- import { e as c } from "./ensureScriptLoaded-BcG9pOxp.js";
1
+ import { P as s } from "./PlayerContainer-DxWOBf2x.js";
2
+ import { L as a, Y as u } from "./index-Bj-AJUe2.js";
3
+ import { e as c } from "./ensureScriptLoaded-DwRbyEJE.js";
4
4
  import r, { memo as m, useCallback as i } from "react";
5
5
  const y = "https://www.youtube-nocookie.com", h = m(({ ...t }) => {
6
6
  const { logger: o } = t;
@@ -36,4 +36,4 @@ const y = "https://www.youtube-nocookie.com", h = m(({ ...t }) => {
36
36
  export {
37
37
  h as default
38
38
  };
39
- //# sourceMappingURL=YouTubePlayer-BChwqwQX.js.map
39
+ //# sourceMappingURL=YouTubePlayer-CaEPCRB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YouTubePlayer-CaEPCRB3.js","sources":["../src/components/YouTubePlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { YouTubePlayerController } from '@/controllers/YouTubePlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst origin = 'https://www.youtube-nocookie.com';\n\nconst YouTubePlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'YouTubePlayer');\n\n\tconst loadScript = useCallback((): Promise<void> => {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst first = await ensureScriptLoaded(\n\t\t\t\t'https://www.youtube.com/iframe_api',\n\t\t\t\tlogger,\n\t\t\t);\n\n\t\t\tif (first) {\n\t\t\t\t// https://stackoverflow.com/a/18154942.\n\t\t\t\twindow.onYouTubeIframeAPIReady = (): void => {\n\t\t\t\t\tlogger.log(LogLevel.Debug, 'YouTube iframe API ready');\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLDivElement): Promise<YT.Player> => {\n\t\t\treturn Promise.resolve(\n\t\t\t\tnew YT.Player(element, {\n\t\t\t\t\thost: origin,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={YouTubePlayerController}\n\t\t>\n\t\t\t{(elementRef): ReactElement => (\n\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t<div ref={elementRef} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default YouTubePlayer;\n"],"names":["origin","YouTubePlayer","memo","props","logger","LogLevel","loadScript","useCallback","resolve","reject","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","YouTubePlayerController","elementRef"],"mappings":";;;;AASA,MAAMA,IAAS,oCAETC,IAAgBC,EAAK,CAAC,EAAE,GAAGC,QAAuC;AACvE,QAAM,EAAE,QAAAC,MAAWD;AAEnB,EAAAC,EAAO,IAAIC,EAAS,OAAO,eAAe;AAE1C,QAAMC,IAAaC,EAAY,MACvB,IAAI,QAAQ,OAAOC,GAASC,MAAW;AAM7C,IALc,MAAMC;AAAA,MACnB;AAAA,MACAN;AAAA,IAAA,IAKA,OAAO,0BAA0B,MAAY;AAC5C,MAAAA,EAAO,IAAIC,EAAS,OAAO,0BAA0B,GACrDG,EAAA;AAAA,IACD,IAEAA,EAAA;AAAA,EAEF,CAAC,GACC,CAACJ,CAAM,CAAC,GAELO,IAAgBJ;AAAA,IACrB,CAACK,MACO,QAAQ;AAAA,MACd,IAAI,GAAG,OAAOA,GAAS;AAAA,QACtB,MAAMZ;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAGH,CAAA;AAAA,EAAC;AAGF,SACC,gBAAAa,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,GAAGX;AAAA,MACJ,YAAAG;AAAA,MACA,eAAAK;AAAA,MACA,mBAAmBI;AAAA,IAAA;AAAA,IAElB,CAACC,MACD,gBAAAH,EAAA,cAAC,OAAA,EAAI,OAAO,EAAE,OAAO,QAAQ,QAAQ,SAAO,GAC3C,gBAAAA,EAAA,cAAC,OAAA,EAAI,KAAKG,GAAY,CACvB;AAAA,EAAA;AAIJ,CAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-DpbwZ2CV.cjs"),o=require("./index-DbrueNLc.cjs"),l=require("./ensureScriptLoaded-Ci57s2DO.cjs"),r=require("react"),c="https://www.youtube-nocookie.com",s=r.memo(({...a})=>{const{logger:t}=a;t.log(o.LogLevel.Debug,"YouTubePlayer");const n=r.useCallback(()=>new Promise(async(e,y)=>{await l.ensureScriptLoaded("https://www.youtube.com/iframe_api",t)?window.onYouTubeIframeAPIReady=()=>{t.log(o.LogLevel.Debug,"YouTube iframe API ready"),e()}:e()}),[t]),i=r.useCallback(e=>Promise.resolve(new YT.Player(e,{host:c,width:"100%",height:"100%"})),[]);return r.createElement(u.PlayerContainer,{...a,loadScript:n,playerFactory:i,controllerFactory:o.YouTubePlayerController},e=>r.createElement("div",{style:{width:"100%",height:"100%"}},r.createElement("div",{ref:e})))});exports.default=s;
2
- //# sourceMappingURL=YouTubePlayer-CPB3Qzvb.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./PlayerContainer-C2nRJ7V_.cjs"),o=require("./index-_eCn8-fe.cjs"),l=require("./ensureScriptLoaded-DNKCqDit.cjs"),r=require("react"),c="https://www.youtube-nocookie.com",s=r.memo(({...a})=>{const{logger:t}=a;t.log(o.LogLevel.Debug,"YouTubePlayer");const n=r.useCallback(()=>new Promise(async(e,y)=>{await l.ensureScriptLoaded("https://www.youtube.com/iframe_api",t)?window.onYouTubeIframeAPIReady=()=>{t.log(o.LogLevel.Debug,"YouTube iframe API ready"),e()}:e()}),[t]),i=r.useCallback(e=>Promise.resolve(new YT.Player(e,{host:c,width:"100%",height:"100%"})),[]);return r.createElement(u.PlayerContainer,{...a,loadScript:n,playerFactory:i,controllerFactory:o.YouTubePlayerController},e=>r.createElement("div",{style:{width:"100%",height:"100%"}},r.createElement("div",{ref:e})))});exports.default=s;
2
+ //# sourceMappingURL=YouTubePlayer-Cf3w33PN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YouTubePlayer-Cf3w33PN.cjs","sources":["../src/components/YouTubePlayer.tsx"],"sourcesContent":["import {\n\tPlayerContainer,\n\ttype PlayerProps,\n} from '@/components/PlayerContainer';\nimport { LogLevel } from '@/controllers/Logger';\nimport { YouTubePlayerController } from '@/controllers/YouTubePlayerController';\nimport { ensureScriptLoaded } from '@/controllers/ensureScriptLoaded';\nimport React, { type ReactElement, memo, useCallback } from 'react';\n\nconst origin = 'https://www.youtube-nocookie.com';\n\nconst YouTubePlayer = memo(({ ...props }: PlayerProps): ReactElement => {\n\tconst { logger } = props;\n\n\tlogger.log(LogLevel.Debug, 'YouTubePlayer');\n\n\tconst loadScript = useCallback((): Promise<void> => {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst first = await ensureScriptLoaded(\n\t\t\t\t'https://www.youtube.com/iframe_api',\n\t\t\t\tlogger,\n\t\t\t);\n\n\t\t\tif (first) {\n\t\t\t\t// https://stackoverflow.com/a/18154942.\n\t\t\t\twindow.onYouTubeIframeAPIReady = (): void => {\n\t\t\t\t\tlogger.log(LogLevel.Debug, 'YouTube iframe API ready');\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tresolve();\n\t\t\t}\n\t\t});\n\t}, [logger]);\n\n\tconst playerFactory = useCallback(\n\t\t(element: HTMLDivElement): Promise<YT.Player> => {\n\t\t\treturn Promise.resolve(\n\t\t\t\tnew YT.Player(element, {\n\t\t\t\t\thost: origin,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<PlayerContainer\n\t\t\t{...props}\n\t\t\tloadScript={loadScript}\n\t\t\tplayerFactory={playerFactory}\n\t\t\tcontrollerFactory={YouTubePlayerController}\n\t\t>\n\t\t\t{(elementRef): ReactElement => (\n\t\t\t\t<div style={{ width: '100%', height: '100%' }}>\n\t\t\t\t\t<div ref={elementRef} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</PlayerContainer>\n\t);\n});\n\nexport default YouTubePlayer;\n"],"names":["origin","YouTubePlayer","memo","props","logger","LogLevel","loadScript","useCallback","resolve","reject","ensureScriptLoaded","playerFactory","element","React","PlayerContainer","YouTubePlayerController","elementRef"],"mappings":"sOASMA,EAAS,mCAETC,EAAgBC,EAAAA,KAAK,CAAC,CAAE,GAAGC,KAAuC,CACvE,KAAM,CAAE,OAAAC,GAAWD,EAEnBC,EAAO,IAAIC,WAAS,MAAO,eAAe,EAE1C,MAAMC,EAAaC,EAAAA,YAAY,IACvB,IAAI,QAAQ,MAAOC,EAASC,IAAW,CAC/B,MAAMC,EAAAA,mBACnB,qCACAN,CAAA,EAKA,OAAO,wBAA0B,IAAY,CAC5CA,EAAO,IAAIC,WAAS,MAAO,0BAA0B,EACrDG,EAAA,CACD,EAEAA,EAAA,CAEF,CAAC,EACC,CAACJ,CAAM,CAAC,EAELO,EAAgBJ,EAAAA,YACpBK,GACO,QAAQ,QACd,IAAI,GAAG,OAAOA,EAAS,CACtB,KAAMZ,EACN,MAAO,OACP,OAAQ,MAAA,CACR,CAAA,EAGH,CAAA,CAAC,EAGF,OACCa,EAAA,cAACC,EAAAA,gBAAA,CACC,GAAGX,EACJ,WAAAG,EACA,cAAAK,EACA,kBAAmBI,EAAAA,uBAAA,EAEjBC,GACDH,EAAA,cAAC,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,OAAQ,OAAO,EAC3CA,EAAA,cAAC,MAAA,CAAI,IAAKG,EAAY,CACvB,CAAA,CAIJ,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";const n=require("./index-DbrueNLc.cjs");function d(e){return new Promise((o,a)=>{const t=document.createElement("script");t.src=e,t.async=!0,t.onerror=a,t.onload=t.onreadystatechange=function(){const r=this.readyState;r&&r!=="loaded"&&r!=="complete"||(t.onload=t.onreadystatechange=null,o())},document.head.appendChild(t)})}const c=[];async function s(e,o){if(c.includes(e))return o.log(n.LogLevel.Debug,e,"script is already loaded"),!1;try{return o.log(n.LogLevel.Debug,e,"Loading script..."),await d(e),c.includes(e)?(o.log(n.LogLevel.Debug,e,"script is already loaded"),!1):(c.push(e),o.log(n.LogLevel.Debug,e,"script loaded"),!0)}catch(a){throw o.log(n.LogLevel.Error,e,"Failed to load script"),a}}exports.ensureScriptLoaded=s;
2
- //# sourceMappingURL=ensureScriptLoaded-Ci57s2DO.cjs.map
1
+ "use strict";const n=require("./index-_eCn8-fe.cjs");function d(e){return new Promise((o,a)=>{const t=document.createElement("script");t.src=e,t.async=!0,t.onerror=a,t.onload=t.onreadystatechange=function(){const r=this.readyState;r&&r!=="loaded"&&r!=="complete"||(t.onload=t.onreadystatechange=null,o())},document.head.appendChild(t)})}const c=[];async function s(e,o){if(c.includes(e))return o.log(n.LogLevel.Debug,e,"script is already loaded"),!1;try{return o.log(n.LogLevel.Debug,e,"Loading script..."),await d(e),c.includes(e)?(o.log(n.LogLevel.Debug,e,"script is already loaded"),!1):(c.push(e),o.log(n.LogLevel.Debug,e,"script loaded"),!0)}catch(a){throw o.log(n.LogLevel.Error,e,"Failed to load script"),a}}exports.ensureScriptLoaded=s;
2
+ //# sourceMappingURL=ensureScriptLoaded-DNKCqDit.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureScriptLoaded-DNKCqDit.cjs","sources":["../src/controllers/getScript.ts","../src/controllers/ensureScriptLoaded.ts"],"sourcesContent":["// https://stackoverflow.com/a/61903296.\nexport function getScript(url: string): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst script = document.createElement('script') as any; /* TODO */\n\t\tscript.src = url;\n\t\tscript.async = true;\n\n\t\tscript.onerror = reject;\n\n\t\tscript.onload = script.onreadystatechange = function (): void {\n\t\t\tconst loadState = this.readyState;\n\n\t\t\tif (loadState && loadState !== 'loaded' && loadState !== 'complete')\n\t\t\t\treturn;\n\n\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild(script);\n\t});\n}\n","import { type ILogger, LogLevel } from '@/controllers/Logger';\nimport { getScript } from '@/controllers/getScript';\n\nconst urls: string[] = [];\n\nexport async function ensureScriptLoaded(\n\turl: string,\n\tlogger: ILogger,\n): Promise<boolean> {\n\tif (urls.includes(url)) {\n\t\tlogger.log(LogLevel.Debug, url, 'script is already loaded');\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tlogger.log(LogLevel.Debug, url, 'Loading script...');\n\n\t\tawait getScript(url);\n\n\t\tif (urls.includes(url)) {\n\t\t\tlogger.log(LogLevel.Debug, url, 'script is already loaded');\n\t\t\treturn false;\n\t\t} else {\n\t\t\turls.push(url);\n\t\t\tlogger.log(LogLevel.Debug, url, 'script loaded');\n\t\t\treturn true;\n\t\t}\n\t} catch (error) {\n\t\tlogger.log(LogLevel.Error, url, 'Failed to load script');\n\t\tthrow error;\n\t}\n}\n"],"names":["getScript","url","resolve","reject","script","loadState","urls","ensureScriptLoaded","logger","LogLevel","error"],"mappings":"qDACO,SAASA,EAAUC,EAA4B,CACrD,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACvC,MAAMC,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,IAAMH,EACbG,EAAO,MAAQ,GAEfA,EAAO,QAAUD,EAEjBC,EAAO,OAASA,EAAO,mBAAqB,UAAkB,CAC7D,MAAMC,EAAY,KAAK,WAEnBA,GAAaA,IAAc,UAAYA,IAAc,aAGzDD,EAAO,OAASA,EAAO,mBAAqB,KAE5CF,EAAA,EACD,EAEA,SAAS,KAAK,YAAYE,CAAM,CACjC,CAAC,CACF,CCnBA,MAAME,EAAiB,CAAA,EAEvB,eAAsBC,EACrBN,EACAO,EACmB,CACnB,GAAIF,EAAK,SAASL,CAAG,EACpB,OAAAO,EAAO,IAAIC,EAAAA,SAAS,MAAOR,EAAK,0BAA0B,EACnD,GAGR,GAAI,CAKH,OAJAO,EAAO,IAAIC,EAAAA,SAAS,MAAOR,EAAK,mBAAmB,EAEnD,MAAMD,EAAUC,CAAG,EAEfK,EAAK,SAASL,CAAG,GACpBO,EAAO,IAAIC,EAAAA,SAAS,MAAOR,EAAK,0BAA0B,EACnD,KAEPK,EAAK,KAAKL,CAAG,EACbO,EAAO,IAAIC,EAAAA,SAAS,MAAOR,EAAK,eAAe,EACxC,GAET,OAASS,EAAO,CACf,MAAAF,EAAO,IAAIC,EAAAA,SAAS,MAAOR,EAAK,uBAAuB,EACjDS,CACP,CACD"}
@@ -1,4 +1,4 @@
1
- import { L as o } from "./index-C4j8BPk4.js";
1
+ import { L as o } from "./index-Bj-AJUe2.js";
2
2
  function c(e) {
3
3
  return new Promise((a, n) => {
4
4
  const t = document.createElement("script");
@@ -21,4 +21,4 @@ async function i(e, a) {
21
21
  export {
22
22
  i as e
23
23
  };
24
- //# sourceMappingURL=ensureScriptLoaded-BcG9pOxp.js.map
24
+ //# sourceMappingURL=ensureScriptLoaded-DwRbyEJE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureScriptLoaded-DwRbyEJE.js","sources":["../src/controllers/getScript.ts","../src/controllers/ensureScriptLoaded.ts"],"sourcesContent":["// https://stackoverflow.com/a/61903296.\nexport function getScript(url: string): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst script = document.createElement('script') as any; /* TODO */\n\t\tscript.src = url;\n\t\tscript.async = true;\n\n\t\tscript.onerror = reject;\n\n\t\tscript.onload = script.onreadystatechange = function (): void {\n\t\t\tconst loadState = this.readyState;\n\n\t\t\tif (loadState && loadState !== 'loaded' && loadState !== 'complete')\n\t\t\t\treturn;\n\n\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\tresolve();\n\t\t};\n\n\t\tdocument.head.appendChild(script);\n\t});\n}\n","import { type ILogger, LogLevel } from '@/controllers/Logger';\nimport { getScript } from '@/controllers/getScript';\n\nconst urls: string[] = [];\n\nexport async function ensureScriptLoaded(\n\turl: string,\n\tlogger: ILogger,\n): Promise<boolean> {\n\tif (urls.includes(url)) {\n\t\tlogger.log(LogLevel.Debug, url, 'script is already loaded');\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tlogger.log(LogLevel.Debug, url, 'Loading script...');\n\n\t\tawait getScript(url);\n\n\t\tif (urls.includes(url)) {\n\t\t\tlogger.log(LogLevel.Debug, url, 'script is already loaded');\n\t\t\treturn false;\n\t\t} else {\n\t\t\turls.push(url);\n\t\t\tlogger.log(LogLevel.Debug, url, 'script loaded');\n\t\t\treturn true;\n\t\t}\n\t} catch (error) {\n\t\tlogger.log(LogLevel.Error, url, 'Failed to load script');\n\t\tthrow error;\n\t}\n}\n"],"names":["getScript","url","resolve","reject","script","loadState","urls","ensureScriptLoaded","logger","LogLevel","error"],"mappings":";AACO,SAASA,EAAUC,GAA4B;AACrD,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACvC,UAAMC,IAAS,SAAS,cAAc,QAAQ;AAC9C,IAAAA,EAAO,MAAMH,GACbG,EAAO,QAAQ,IAEfA,EAAO,UAAUD,GAEjBC,EAAO,SAASA,EAAO,qBAAqB,WAAkB;AAC7D,YAAMC,IAAY,KAAK;AAEvB,MAAIA,KAAaA,MAAc,YAAYA,MAAc,eAGzDD,EAAO,SAASA,EAAO,qBAAqB,MAE5CF,EAAA;AAAA,IACD,GAEA,SAAS,KAAK,YAAYE,CAAM;AAAA,EACjC,CAAC;AACF;ACnBA,MAAME,IAAiB,CAAA;AAEvB,eAAsBC,EACrBN,GACAO,GACmB;AACnB,MAAIF,EAAK,SAASL,CAAG;AACpB,WAAAO,EAAO,IAAIC,EAAS,OAAOR,GAAK,0BAA0B,GACnD;AAGR,MAAI;AAKH,WAJAO,EAAO,IAAIC,EAAS,OAAOR,GAAK,mBAAmB,GAEnD,MAAMD,EAAUC,CAAG,GAEfK,EAAK,SAASL,CAAG,KACpBO,EAAO,IAAIC,EAAS,OAAOR,GAAK,0BAA0B,GACnD,OAEPK,EAAK,KAAKL,CAAG,GACbO,EAAO,IAAIC,EAAS,OAAOR,GAAK,eAAe,GACxC;AAAA,EAET,SAASS,GAAO;AACf,UAAAF,EAAO,IAAIC,EAAS,OAAOR,GAAK,uBAAuB,GACjDS;AAAA,EACP;AACD;"}
@@ -206,6 +206,14 @@ const A = new X(), U = O(
206
206
  );
207
207
  return /* @__PURE__ */ u.createElement(U.Provider, { value: L }, a);
208
208
  }, Z = () => W(U);
209
+ class h {
210
+ constructor(e, t, s) {
211
+ this.logger = e, this.player = t, this.options = s, this.logger.log(r.Debug, "ctor");
212
+ }
213
+ supports(e) {
214
+ return this[e] !== void 0;
215
+ }
216
+ }
209
217
  var l = /* @__PURE__ */ ((a) => (a.Audio = "Audio", a.Dailymotion = "Dailymotion", a.Niconico = "Niconico", a.SoundCloud = "SoundCloud", a.Twitch = "Twitch", a.Vimeo = "Vimeo", a.YouTube = "YouTube", a))(l || {});
210
218
  function me(a) {
211
219
  return l[a] !== void 0;
@@ -346,13 +354,13 @@ class x {
346
354
  return this.impl.supports(e);
347
355
  }
348
356
  }
349
- class h {
357
+ class p {
350
358
  constructor(e) {
351
359
  this.type = e;
352
360
  }
353
361
  }
354
362
  const q = /\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i, J = /\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i;
355
- class Q extends h {
363
+ class Q extends p {
356
364
  constructor() {
357
365
  super(l.Audio);
358
366
  }
@@ -364,7 +372,7 @@ class Q extends h {
364
372
  }
365
373
  }
366
374
  const N = /^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/;
367
- class ee extends h {
375
+ class ee extends p {
368
376
  constructor() {
369
377
  super(l.Dailymotion);
370
378
  }
@@ -376,7 +384,7 @@ class ee extends h {
376
384
  }
377
385
  }
378
386
  const f = /(?:www\.|)?nicovideo\.jp\/watch\/(\w+)$/;
379
- class te extends h {
387
+ class te extends p {
380
388
  constructor() {
381
389
  super(l.Niconico);
382
390
  }
@@ -388,7 +396,7 @@ class te extends h {
388
396
  }
389
397
  }
390
398
  const ae = /(?:soundcloud\.com|snd\.sc)\/[^.]+$/;
391
- class re extends h {
399
+ class re extends p {
392
400
  constructor() {
393
401
  super(l.SoundCloud);
394
402
  }
@@ -400,7 +408,7 @@ class re extends h {
400
408
  }
401
409
  }
402
410
  const M = /(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/;
403
- class se extends h {
411
+ class se extends p {
404
412
  constructor() {
405
413
  super(l.Twitch);
406
414
  }
@@ -412,7 +420,7 @@ class se extends h {
412
420
  }
413
421
  }
414
422
  const R = /vimeo\.com\/(\d+)$/;
415
- class ie extends h {
423
+ class ie extends p {
416
424
  constructor() {
417
425
  super(l.Vimeo);
418
426
  }
@@ -424,7 +432,7 @@ class ie extends h {
424
432
  }
425
433
  }
426
434
  const I = /(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//;
427
- class oe extends h {
435
+ class oe extends p {
428
436
  constructor() {
429
437
  super(l.YouTube);
430
438
  }
@@ -448,13 +456,13 @@ function ce(a) {
448
456
  return ne.find((e) => e.canPlay(a));
449
457
  }
450
458
  const le = {
451
- Audio: d(() => import("./AudioPlayer-DYTgFDsb.js")),
452
- Dailymotion: d(() => import("./DailymotionPlayer-CHi90pep.js")),
453
- Niconico: d(() => import("./NiconicoPlayer-CAQQN_Ys.js")),
454
- SoundCloud: d(() => import("./SoundCloudPlayer-CDxa1Q_V.js")),
455
- Twitch: d(() => import("./TwitchPlayer-G-2bnyQg.js")),
456
- Vimeo: d(() => import("./VimeoPlayer-C3YsFhMx.js")),
457
- YouTube: d(() => import("./YouTubePlayer-BChwqwQX.js"))
459
+ Audio: d(() => import("./AudioPlayer-DPiP_j1z.js")),
460
+ Dailymotion: d(() => import("./DailymotionPlayer-BXC_M5Iu.js")),
461
+ Niconico: d(() => import("./NiconicoPlayer-JHS5aQ0E.js")),
462
+ SoundCloud: d(() => import("./SoundCloudPlayer-ZkUD5X1L.js")),
463
+ Twitch: d(() => import("./TwitchPlayer-B4_1-Evt.js")),
464
+ Vimeo: d(() => import("./VimeoPlayer-C1PcMejA.js")),
465
+ YouTube: d(() => import("./YouTubePlayer-CaEPCRB3.js"))
458
466
  };
459
467
  function de(a) {
460
468
  const e = ce(a);
@@ -597,15 +605,7 @@ class he extends HTMLElement {
597
605
  function ge() {
598
606
  customElements.define("nostalgic-diva", he);
599
607
  }
600
- class p {
601
- constructor(e, t, s) {
602
- this.logger = e, this.player = t, this.options = s, this.logger.log(r.Debug, "ctor");
603
- }
604
- supports(e) {
605
- return this[e] !== void 0;
606
- }
607
- }
608
- class ve extends p {
608
+ class ve extends h {
609
609
  async attach() {
610
610
  this.player.onerror = (e) => this.options?.onError?.(e), this.player.onloadeddata = () => this.options?.onLoaded?.({ id: this.player.src }), this.player.onplay = () => this.options?.onPlay?.(), this.player.onpause = () => this.options?.onPause?.(), this.player.onended = () => this.options?.onEnded?.(), this.player.ontimeupdate = () => {
611
611
  this.options?.onTimeUpdate?.({
@@ -664,7 +664,7 @@ const S = [
664
664
  "playing",
665
665
  "error"
666
666
  ];
667
- class be extends p {
667
+ class be extends h {
668
668
  handlePlayerEvents = (e) => {
669
669
  switch (e.type) {
670
670
  case "apiready":
@@ -735,7 +735,7 @@ class be extends p {
735
735
  getPlaybackRate = void 0;
736
736
  }
737
737
  var b = /* @__PURE__ */ ((a) => (a[a.Play = 2] = "Play", a[a.Pause = 3] = "Pause", a[a.End = 4] = "End", a))(b || {});
738
- class w extends p {
738
+ class w extends h {
739
739
  static origin = "https://embed.nicovideo.jp";
740
740
  duration = 0;
741
741
  currentTime = 0;
@@ -854,7 +854,7 @@ class w extends p {
854
854
  }
855
855
  getPlaybackRate = void 0;
856
856
  }
857
- class Y extends p {
857
+ class Y extends h {
858
858
  getDurationCore() {
859
859
  return new Promise((e, t) => {
860
860
  this.player.getDuration(e);
@@ -938,7 +938,7 @@ class Y extends p {
938
938
  getMuted = void 0;
939
939
  getPlaybackRate = void 0;
940
940
  }
941
- class we extends p {
941
+ class we extends h {
942
942
  handleReady = () => {
943
943
  this.options?.onLoaded?.({ id: this.player.getVideo() });
944
944
  };
@@ -996,7 +996,7 @@ class we extends p {
996
996
  }
997
997
  getPlaybackRate = void 0;
998
998
  }
999
- class Ee extends p {
999
+ class Ee extends h {
1000
1000
  async attach() {
1001
1001
  await this.player.ready(), this.player.on("error", (e) => this.options?.onError?.(e)), this.player.on(
1002
1002
  "loaded",
@@ -1050,7 +1050,7 @@ class Ee extends p {
1050
1050
  }
1051
1051
  }
1052
1052
  var _ = /* @__PURE__ */ ((a) => (a[a.UNSTARTED = -1] = "UNSTARTED", a[a.ENDED = 0] = "ENDED", a[a.PLAYING = 1] = "PLAYING", a[a.PAUSED = 2] = "PAUSED", a[a.BUFFERING = 3] = "BUFFERING", a[a.CUED = 5] = "CUED", a))(_ || {});
1053
- class Ce extends p {
1053
+ class Ce extends h {
1054
1054
  previousTime;
1055
1055
  timeUpdateIntervalId;
1056
1056
  clearTimeUpdateInterval() {
@@ -1171,4 +1171,4 @@ export {
1171
1171
  Z as u,
1172
1172
  me as v
1173
1173
  };
1174
- //# sourceMappingURL=index-C4j8BPk4.js.map
1174
+ //# sourceMappingURL=index-Bj-AJUe2.js.map