cafe-video-player 3.0.12 → 3.0.13

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 (91) hide show
  1. package/README.md +2 -0
  2. package/VideoHighLighter-OBD2IGA6.js +2 -0
  3. package/VideoHighLighter-OBD2IGA6.js.map +1 -0
  4. package/VideoHighLighter-T2LVURER.mjs +2 -0
  5. package/VideoHighLighter-T2LVURER.mjs.map +1 -0
  6. package/backwardForward-S6ZHVC75.js +2 -0
  7. package/backwardForward-S6ZHVC75.js.map +1 -0
  8. package/backwardForward-ZUVULGGJ.mjs +2 -0
  9. package/backwardForward-ZUVULGGJ.mjs.map +1 -0
  10. package/chunk-2DV7FRU5.mjs +2 -0
  11. package/chunk-2DV7FRU5.mjs.map +1 -0
  12. package/chunk-4QMWBTB5.mjs +2 -0
  13. package/chunk-4QMWBTB5.mjs.map +1 -0
  14. package/chunk-4XKL6TLO.mjs +2 -0
  15. package/chunk-4XKL6TLO.mjs.map +1 -0
  16. package/chunk-73KLK4QU.mjs +2 -0
  17. package/chunk-73KLK4QU.mjs.map +1 -0
  18. package/chunk-AK5TFAW3.js +2 -0
  19. package/chunk-AK5TFAW3.js.map +1 -0
  20. package/chunk-AN6JAJSI.js +2 -0
  21. package/chunk-AN6JAJSI.js.map +1 -0
  22. package/chunk-BC4366GN.mjs +3 -0
  23. package/chunk-BC4366GN.mjs.map +1 -0
  24. package/chunk-BFE2RKVK.js +3 -0
  25. package/chunk-BFE2RKVK.js.map +1 -0
  26. package/chunk-BNVNO5NH.js +2 -0
  27. package/chunk-BNVNO5NH.js.map +1 -0
  28. package/chunk-CCO6GDG2.mjs +3 -0
  29. package/chunk-CCO6GDG2.mjs.map +1 -0
  30. package/chunk-COYFW7R4.js +3 -0
  31. package/chunk-COYFW7R4.js.map +1 -0
  32. package/chunk-DJ6KVZRK.js +2 -0
  33. package/chunk-DJ6KVZRK.js.map +1 -0
  34. package/chunk-FXAWDALE.mjs +2 -0
  35. package/chunk-FXAWDALE.mjs.map +1 -0
  36. package/chunk-GYUGYOVP.mjs +2 -0
  37. package/chunk-GYUGYOVP.mjs.map +1 -0
  38. package/chunk-IBV5SFIT.js +2 -0
  39. package/chunk-IBV5SFIT.js.map +1 -0
  40. package/chunk-OGCKLRYP.js +2 -0
  41. package/chunk-OGCKLRYP.js.map +1 -0
  42. package/chunk-PKXJEXKI.mjs +2 -0
  43. package/chunk-PKXJEXKI.mjs.map +1 -0
  44. package/chunk-QM3W7EYS.js +2 -0
  45. package/chunk-QM3W7EYS.js.map +1 -0
  46. package/chunk-SKRDEKL2.mjs +9 -0
  47. package/chunk-SKRDEKL2.mjs.map +1 -0
  48. package/chunk-U3VFRU6R.js +3 -0
  49. package/chunk-U3VFRU6R.js.map +1 -0
  50. package/chunk-WFHA2FPC.js +9 -0
  51. package/chunk-WFHA2FPC.js.map +1 -0
  52. package/chunk-WU4GN63P.mjs +2 -0
  53. package/chunk-WU4GN63P.mjs.map +1 -0
  54. package/chunk-XKRBXZUB.mjs +3 -0
  55. package/chunk-XKRBXZUB.mjs.map +1 -0
  56. package/chunk-Y7BIYTQP.mjs +2 -0
  57. package/chunk-Y7BIYTQP.mjs.map +1 -0
  58. package/chunk-ZSSCZTW3.js +2 -0
  59. package/chunk-ZSSCZTW3.js.map +1 -0
  60. package/chunk-ZWGZGWEB.js +2 -0
  61. package/chunk-ZWGZGWEB.js.map +1 -0
  62. package/index.js +1 -7307
  63. package/index.js.map +1 -1
  64. package/index.mjs +1 -7292
  65. package/index.mjs.map +1 -1
  66. package/nonStaticVideoTag-6OHMSJEH.js +2 -0
  67. package/nonStaticVideoTag-6OHMSJEH.js.map +1 -0
  68. package/nonStaticVideoTag-J6JNATM6.mjs +2 -0
  69. package/nonStaticVideoTag-J6JNATM6.mjs.map +1 -0
  70. package/notActive-DRH5BEL5.js +2 -0
  71. package/notActive-DRH5BEL5.js.map +1 -0
  72. package/notActive-DSDPVSW4.mjs +2 -0
  73. package/notActive-DSDPVSW4.mjs.map +1 -0
  74. package/package.json +52 -51
  75. package/staticPlayer-2IO6XEKM.mjs +2 -0
  76. package/staticPlayer-2IO6XEKM.mjs.map +1 -0
  77. package/staticPlayer-TNS4JFRP.js +2 -0
  78. package/staticPlayer-TNS4JFRP.js.map +1 -0
  79. package/staticVideoTag-2YYZBRPY.mjs +2 -0
  80. package/staticVideoTag-2YYZBRPY.mjs.map +1 -0
  81. package/staticVideoTag-VLNCYNKV.js +2 -0
  82. package/staticVideoTag-VLNCYNKV.js.map +1 -0
  83. package/videoArea-2F2NDD76.mjs +2 -0
  84. package/videoArea-2F2NDD76.mjs.map +1 -0
  85. package/videoArea-35ABV3CM.js +2 -0
  86. package/videoArea-35ABV3CM.js.map +1 -0
  87. package/videoPlayerStyles.css +0 -4
  88. package/vodPlayer-337TYSU4.js +2 -0
  89. package/vodPlayer-337TYSU4.js.map +1 -0
  90. package/vodPlayer-JTS4WVOB.mjs +2 -0
  91. package/vodPlayer-JTS4WVOB.mjs.map +1 -0
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkQM3W7EYS_js=require('./chunk-QM3W7EYS.js'),chunkDJ6KVZRK_js=require('./chunk-DJ6KVZRK.js'),chunkAK5TFAW3_js=require('./chunk-AK5TFAW3.js'),chunkZWGZGWEB_js=require('./chunk-ZWGZGWEB.js');require('./chunk-BFE2RKVK.js');var chunkU3VFRU6R_js=require('./chunk-U3VFRU6R.js'),chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),u=require('hls.js'),react=require('react'),reactRedux=require('react-redux'),Qe=require('next/image'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var u__default=/*#__PURE__*/_interopDefault(u);var Qe__default=/*#__PURE__*/_interopDefault(Qe);chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();var Ue=()=>{let a=null,{isEnded:r}=chunkAN6JAJSI_js.A(({controller:{isEnded:y}})=>({isEnded:y}),reactRedux.shallowEqual);react.useEffect(()=>(a=setInterval(()=>chunkZWGZGWEB_js.a(),chunkAK5TFAW3_js.c),()=>clearInterval(a)),[]),react.useEffect(()=>{chunkU3VFRU6R_js.t("isEnded")&&clearInterval(a);},[r]);},he=Ue;chunkAN6JAJSI_js.e();var Me=a=>{let[r,y]=react.useState([]),[s,c]=react.useState(0),{qualityLevels:i}=chunkAN6JAJSI_js.A(({controller:{qualityLevels:n}})=>({qualityLevels:n}),reactRedux.shallowEqual);react.useEffect(()=>{if(a){let n=[];switch(r.length){case 0:n=[a];break;case 1:n=[a,...r];break;case 2:n=[a,...r],chunkU3VFRU6R_js.w(chunkU3VFRU6R_js.I(`${n[0]}P`,`${n[1]}P`,i.indexOf(n[0])-i.indexOf(n[1])));break;default:n=[a,r[0],r[1]],n[1]!==n[2]&&chunkU3VFRU6R_js.w(chunkU3VFRU6R_js.I(`${n[1]}P`,`${n[2]}P`,i.indexOf(n[1])-i.indexOf(n[2])));break}y(n);}},[a]),react.useEffect(()=>{r.length===3&&r[0]===r[2]?(chunkU3VFRU6R_js.w(chunkU3VFRU6R_js.J(s,r)),y([]),c(0)):c(new Date().getTime());},[r]);},be=Me;chunkAN6JAJSI_js.e();var _e=()=>{react.useEffect(()=>{let a=()=>{chunkZWGZGWEB_js.a();};return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[]);},Le=_e;var $e=()=>{let[a,r]=react.useState(void 0),y=chunkAN6JAJSI_js.z(),{params:s,details:c,videoElementSizeInfo:i}=chunkAN6JAJSI_js.A(({videoData:{params:e,details:o,videoElementSizeInfo:E}})=>({params:e,details:o,videoElementSizeInfo:E}),reactRedux.shallowEqual),{currentTime:n,duration:Se}=chunkAN6JAJSI_js.A(({controller:{currentTime:e,duration:o,isEnded:E,firstPlay:w}})=>({currentTime:e,duration:o,isEnded:E,firstPlay:w}),reactRedux.shallowEqual),P=react.useRef(null),b=react.useRef(null),Te=react.useRef(0),L=react.useRef(0),R=react.useRef(0),V=react.useRef(0),C=react.useRef(0),Re=react.useRef(1),Ve=react.useRef(P.current?.currentTime||0);he(),Le();let v=c.stream_link||s.stream_link;return react.useEffect(()=>{let e=P.current;if(!e||!v)return;chunkU3VFRU6R_js.qa(C),R.current=Date.now(),chunkU3VFRU6R_js.xa(e);let o=new u__default.default(chunkDJ6KVZRK_js.c()),E=()=>o.loadSource(v),w=(t,p)=>chunkDJ6KVZRK_js.e(o,p),Ce=()=>chunkDJ6KVZRK_js.f(o,e),Ie=(t,p)=>chunkDJ6KVZRK_js.g(o,p,r),De=(t,p)=>chunkDJ6KVZRK_js.h(o,p,r),ke=(t,p)=>chunkDJ6KVZRK_js.i(p),I=t=>chunkDJ6KVZRK_js.j(t,L),D=t=>chunkDJ6KVZRK_js.k(t,L),k=t=>chunkDJ6KVZRK_js.l(t,b,e),Fe=t=>chunkDJ6KVZRK_js.r(t,b),F=t=>chunkDJ6KVZRK_js.n(t),x=t=>chunkDJ6KVZRK_js.o(t),H=()=>chunkDJ6KVZRK_js.p(e),U=t=>chunkDJ6KVZRK_js.q(t,e),B=t=>chunkDJ6KVZRK_js.a(t),M=()=>chunkDJ6KVZRK_js.D(e),O=()=>chunkDJ6KVZRK_js.m(Re,C,R,V,b,Te,L,Ve,e);return u__default.default.isSupported()?(o.on(u__default.default.Events.MEDIA_ATTACHED,E),o.on(u__default.default.Events.MANIFEST_PARSED,w),o.on(u__default.default.Events.FRAG_BUFFERED,Ce),o.on(u__default.default.Events.FRAG_CHANGED,Ie),o.on(u__default.default.Events.FRAG_PARSED,De),o.on(u__default.default.Events.ERROR,ke),o.attachMedia(e)):e.canPlayType("application/vnd.apple.mpegurl")&&(e.src=v,chunkDJ6KVZRK_js.b(),e.addEventListener("play",Fe),e.addEventListener("playing",chunkDJ6KVZRK_js.s),e.addEventListener("timeupdate",chunkDJ6KVZRK_js.t),e.addEventListener("ended",chunkDJ6KVZRK_js.u)),e.addEventListener("waiting",I),e.addEventListener("seeking",D),e.addEventListener("play",k),e.addEventListener("playing",O),e.addEventListener("pause",F),e.addEventListener("timeupdate",x),e.addEventListener("canplay",H),e.addEventListener("ended",U),e.addEventListener("error",B),document.addEventListener("visibilitychange",M),()=>{o.destroy(),e.removeEventListener("waiting",I),e.removeEventListener("seeking",D),e.removeEventListener("play",k),e.removeEventListener("playing",O),e.removeEventListener("pause",F),e.removeEventListener("timeupdate",x),e.removeEventListener("canplay",H),e.removeEventListener("ended",U),e.removeEventListener("error",B),document.removeEventListener("visibilitychange",M);}},[v]),react.useEffect(()=>{n<Se&&chunkU3VFRU6R_js.t("isEnded")&&y(chunkAN6JAJSI_js.u(false));},[n]),be(a),chunkQM3W7EYS_js.a(),chunkQM3W7EYS_js.c(),chunkQM3W7EYS_js.b(),chunkQM3W7EYS_js.d(),jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsx("video",{ref:P,playsInline:true,id:"player-tag",preload:"metadata",crossOrigin:"anonymous",poster:s.banner?s.banner:c.banner,autoPlay:!!chunkU3VFRU6R_js.t("hasAutoPlay")||!!s.advertisement,className:`pl-items-center pl-flex-1 pl-h-full ${!chunkU3VFRU6R_js.t("isTouchScreen")&&!chunkU3VFRU6R_js.t("isFullScreen")&&"!pl-rounded-[12px]"}`,style:{width:"100%",height:"100%",maxWidth:i.width?i.width:"100%",maxHeight:i.width?i.width<i.height?i.width*9/16:i.width*16/9:"100%"},children:jsxRuntime.jsx(Qe__default.default,{fill:true,style:{objectFit:"cover"},src:s.banner?s.banner:c.banner,onLoad:()=>V.current=Date.now(),alt:s.bannerAlt?s.bannerAlt:chunkU3VFRU6R_js.t("isStaticFormat")?"\u0628\u0646\u0631 \u0648\u06CC\u062F\u06CC\u0648 \u067E\u0644\u06CC\u0631 \u06A9\u0627\u0641\u0647 \u0648\u06CC\u062F\u06CC\u0648":c.title??""})})})},In=$e;module.exports=In;//# sourceMappingURL=nonStaticVideoTag-6OHMSJEH.js.map
2
+ //# sourceMappingURL=nonStaticVideoTag-6OHMSJEH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoTag/nonStaticVideoTag.tsx","../src/videoPlayerLibrary/helpers/hooks/useContinuousPlaybackInterval.tsx","../src/videoPlayerLibrary/helpers/hooks/usePingPong.tsx","../src/videoPlayerLibrary/helpers/hooks/useBeforeUnload.tsx"],"names":["init_cjs_shims","useContinuousPlaybackInterval","interval","isEnded","useAppSelector","shallowEqual","useEffect","handleContinuousPlayback","continuousePlaybackIntervalTime","conditions","useContinuousPlaybackInterval_default","usePingPong","qualityLevel","qualityHistory","setQualityHistory","useState","startTimer","setStartTimer","qualityLevels","newQualityArray","sendFluentLog","autoQualityChangeLog","pingpongLog","usePingPong_default","useBeforeUnload","handleBeforeUnload","useBeforeUnload_default","NonStaticVideoTag","setQualityLevel","dispatch","useAppDispatch","params","details","videoElementSizeInfo","currentTime","duration","firstPlay","videoRef","useRef","timerRef","waitingDurationRef","waitingTimerRef","initialWaitingDurationRef","bannerLoadingDurationRef","loadingDurationRef","loadingCounterRef","videoEntranceTimeRef","streamUrl","video","handlePageLoadTime","setupAutoplayBehavior","hls","Hls","handleHlsConfig","onMediaAttached","onManifestParsed","e","data","handleManifestParsed","onFragBuffered","handleFragBuffered","onFragChanged","handleFragChanged","onFragParsed","handleFragParsed","onError","handleHlsErrors","onWaiting","handleVideoWaiting","onSeeking","handleVideoSeeking","onPlay","handleVideoPlay","onIosPlay","handleIosVideoPlay","onPause","handleVideoPause","onTimeUpdate","handleVideoTimeUpdate","onCanPlay","handleVideoCanPlay","onEnded","handleVideoEnded","onVideoError","handleVideoError","onVisibilitychange","handleVideoVisibilityChange","onPlaying","handleVideoPlaying","appendQueryParamsToChunksIOS","handleIosVideoPlaying","handleIosVideoTimeUpdate","handleIosVideoEnded","setIsEnded","useJumpToCurrentTime_default","useAppendSubtitle_default","useHideSubtitle_default","useActiveSubtitleAutomatic_default","jsx","Fragment","Image","nonStaticVideoTag_default"],"mappings":"moBAAAA,kBAAAA,EAAAA,CCAAA,kBAAAA,EAAAA,CAQA,IAAMC,EAAAA,CAAgC,IAAM,CACxC,IAAIC,CAAAA,CAAgB,IAAA,CAEd,CAAE,OAAA,CAAAC,CAAQ,EAAIC,kBAAAA,CAAe,CAAC,CAAE,UAAA,CAAY,CAAE,OAAA,CAAAD,CAAQ,CAAE,CAAA,IAAO,CAAE,OAAA,CAAAA,CAAQ,CAAA,CAAA,CAAIE,uBAAY,CAAA,CAG/FC,eAAAA,CAAU,KACNJ,CAAAA,CAAW,WAAA,CAAY,IAAMK,kBAAAA,GAA4BC,kBAA+B,CAAA,CACjF,IAAM,aAAA,CAAcN,CAAQ,CAAA,CAAA,CACpC,EAAE,CAAA,CAGLI,eAAAA,CAAU,IAAM,CACRG,kBAAAA,CAAAA,SAAgC,GAAG,aAAA,CAAcP,CAAQ,EACjE,CAAA,CAAG,CAACC,CAAO,CAAC,EAChB,CAAA,CAEOO,EAAAA,CAAQT,EAAAA,CCzBfD,kBAAAA,EAAAA,CAMA,IAAMW,EAAAA,CAAeC,CAAAA,EAA0B,CAC3C,GAAM,CAACC,CAAAA,CAAgBC,CAAiB,CAAA,CAAIC,cAAAA,CAAmB,EAAE,CAAA,CAC3D,CAACC,CAAAA,CAAYC,CAAa,CAAA,CAAIF,cAAAA,CAAiB,CAAC,CAAA,CAEhD,CAAE,aAAA,CAAAG,CAAc,CAAA,CAAId,kBAAAA,CAAe,CAAC,CAAE,UAAA,CAAY,CAAE,cAAAc,CAAc,CAAE,CAAA,IAAO,CAAE,aAAA,CAAAA,CAAc,GAAIb,uBAAY,CAAA,CAEjHC,eAAAA,CAAU,IAAM,CACZ,GAAIM,CAAAA,CAAc,CACd,IAAIO,CAAAA,CAA4B,EAAC,CACjC,OAAQN,CAAAA,CAAe,QACnB,KAAK,CAAA,CACDM,CAAAA,CAAkB,CAACP,CAAY,CAAA,CAC/B,MACJ,KAAK,CAAA,CACDO,CAAAA,CAAkB,CAACP,CAAAA,CAAc,GAAGC,CAAc,CAAA,CAClD,MACJ,KAAK,CAAA,CACDM,CAAAA,CAAkB,CAACP,CAAAA,CAAc,GAAGC,CAAc,CAAA,CAClDO,kBAAAA,CACIC,kBAAAA,CACI,CAAA,EAAGF,CAAAA,CAAgB,CAAC,CAAC,CAAA,CAAA,CAAA,CACrB,CAAA,EAAGA,CAAAA,CAAgB,CAAC,CAAC,IACrBD,CAAAA,CAAc,OAAA,CAAQC,CAAAA,CAAgB,CAAC,CAAC,CAAA,CAAID,EAAc,OAAA,CAAQC,CAAAA,CAAgB,CAAC,CAAC,CACxF,CACJ,CAAA,CACA,MACJ,QACIA,CAAAA,CAAkB,CAACP,CAAAA,CAAcC,CAAAA,CAAe,CAAC,EAAGA,CAAAA,CAAe,CAAC,CAAC,CAAA,CACjEM,CAAAA,CAAgB,CAAC,CAAA,GAAMA,CAAAA,CAAgB,CAAC,CAAA,EACxCC,kBAAAA,CACIC,kBAAAA,CACI,CAAA,EAAGF,CAAAA,CAAgB,CAAC,CAAC,CAAA,CAAA,CAAA,CACrB,CAAA,EAAGA,CAAAA,CAAgB,CAAC,CAAC,CAAA,CAAA,CAAA,CACrBD,CAAAA,CAAc,OAAA,CAAQC,CAAAA,CAAgB,CAAC,CAAC,CAAA,CAAID,CAAAA,CAAc,QAAQC,CAAAA,CAAgB,CAAC,CAAC,CACxF,CACJ,CAAA,CACJ,KACR,CACAL,CAAAA,CAAkBK,CAAe,EACrC,CAEJ,CAAA,CAAG,CAACP,CAAY,CAAC,CAAA,CAGjBN,eAAAA,CAAU,IAAM,CACRO,CAAAA,CAAe,MAAA,GAAW,CAAA,EAAKA,CAAAA,CAAe,CAAC,CAAA,GAAMA,CAAAA,CAAe,CAAC,GACrEO,kBAAAA,CAAcE,kBAAAA,CAAYN,CAAAA,CAAYH,CAAc,CAAC,CAAA,CACrDC,CAAAA,CAAkB,EAAE,CAAA,CACpBG,CAAAA,CAAc,CAAC,CAAA,EAEfA,CAAAA,CAAc,IAAI,IAAA,EAAK,CAAE,OAAA,EAAS,EAE1C,CAAA,CAAG,CAACJ,CAAc,CAAC,EACvB,CAAA,CACOU,EAAAA,CAAQZ,EAAAA,CC5DfX,kBAAAA,EAAAA,CAGA,IAAMwB,EAAAA,CAAkB,IAAM,CAC1BlB,eAAAA,CAAU,IAAM,CACZ,IAAMmB,CAAAA,CAAqB,IAAM,CAC7BlB,kBAAAA,GACJ,CAAA,CAEA,OAAA,MAAA,CAAO,gBAAA,CAAiB,cAAA,CAAgBkB,CAAkB,CAAA,CACnD,IAAM,MAAA,CAAO,mBAAA,CAAoB,cAAA,CAAgBA,CAAkB,CAC9E,EAAG,EAAE,EACT,CAAA,CAEOC,EAAAA,CAAQF,EAAAA,KH4BTG,EAAAA,CAAoB,IAAM,CAC9B,GAAM,CAACf,CAAAA,CAAcgB,CAAe,CAAA,CAAIb,cAAAA,CAA6B,MAAS,CAAA,CAExEc,CAAAA,CAAWC,kBAAAA,EAAe,CAC1B,CAAE,MAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAAC,CAAAA,CAAS,oBAAA,CAAAC,CAAqB,EAAI7B,kBAAAA,CAChD,CAAC,CAAE,SAAA,CAAW,CAAE,MAAA,CAAA2B,EAAQ,OAAA,CAAAC,CAAAA,CAAS,oBAAA,CAAAC,CAAqB,CAAE,CAAA,IAAO,CAC7D,MAAA,CAAAF,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CAAA,CAAA,CACA5B,uBACF,CAAA,CACM,CAAE,WAAA,CAAA6B,CAAAA,CAAa,QAAA,CAAAC,EAAS,CAAA,CAAI/B,kBAAAA,CAChC,CAAC,CAAE,UAAA,CAAY,CAAE,WAAA,CAAA8B,CAAAA,CAAa,SAAAC,CAAAA,CAAU,OAAA,CAAAhC,CAAAA,CAAS,SAAA,CAAAiC,CAAU,CAAE,CAAA,IAAO,CAClE,WAAA,CAAAF,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAhC,CAAAA,CACA,UAAAiC,CACF,CAAA,CAAA,CACA/B,uBACF,CAAA,CAEMgC,CAAAA,CAAWC,YAAAA,CAAgC,IAAI,CAAA,CAC/CC,CAAAA,CAAWD,YAAAA,CAAY,IAAI,CAAA,CAC3BE,EAAAA,CAAqBF,aAAY,CAAC,CAAA,CAClCG,CAAAA,CAAkBH,YAAAA,CAAe,CAAC,CAAA,CAClCI,CAAAA,CAA4BJ,YAAAA,CAAY,CAAC,CAAA,CACzCK,CAAAA,CAA2BL,YAAAA,CAAY,CAAC,CAAA,CACxCM,EAAqBN,YAAAA,CAAY,CAAC,CAAA,CAClCO,EAAAA,CAAoBP,YAAAA,CAAY,CAAC,CAAA,CACjCQ,EAAAA,CAAuBR,YAAAA,CAAYD,CAAAA,CAAS,OAAA,EAAS,WAAA,EAAe,CAAC,CAAA,CAE3E3B,IAA8B,CAC9BgB,EAAAA,EAAgB,CAEhB,IAAMqB,CAAAA,CAAYf,CAAAA,CAAQ,WAAA,EAAeD,CAAAA,CAAO,WAAA,CAEhD,OAAAzB,eAAAA,CAAU,IAAM,CACd,IAAM0C,EAAQX,CAAAA,CAAS,OAAA,CAEvB,GAAI,CAACW,CAAAA,EAAS,CAACD,EAAW,OAG1BE,mBAAAA,CAAmBL,CAAkB,CAAA,CACrCF,CAAAA,CAA0B,OAAA,CAAU,KAAK,GAAA,EAAI,CAC7CQ,mBAAAA,CAAsBF,CAAK,CAAA,CAE3B,IAAMG,CAAAA,CAAM,IAAIC,kBAAAA,CAAIC,kBAAAA,EAAiB,CAAA,CAE/BC,CAAAA,CAAkB,IAAMH,EAAI,UAAA,CAAWJ,CAAS,CAAA,CAChDQ,CAAAA,CAAmB,CAACC,CAAAA,CAAQC,CAAAA,GAAcC,kBAAAA,CAAqBP,CAAAA,CAAKM,CAAI,CAAA,CACxEE,EAAAA,CAAiB,IAAMC,kBAAAA,CAAmBT,EAAKH,CAAK,CAAA,CACpDa,EAAAA,CAAgB,CAACL,CAAAA,CAAQC,CAAAA,GAAcK,kBAAAA,CAAkBX,CAAAA,CAAKM,CAAAA,CAAM7B,CAAe,CAAA,CACnFmC,EAAAA,CAAe,CAACP,CAAAA,CAAQC,IAAcO,kBAAAA,CAAiBb,CAAAA,CAAKM,CAAAA,CAAM7B,CAAe,CAAA,CACjFqC,EAAAA,CAAU,CAACT,CAAAA,CAAQC,CAAAA,GAAoBS,kBAAAA,CAAgBT,CAAI,CAAA,CAG3DU,CAAAA,CAAaX,GAAWY,kBAAAA,CAAmBZ,CAAAA,CAAGf,CAAe,CAAA,CAC7D4B,CAAAA,CAAab,CAAAA,EAAWc,kBAAAA,CAAmBd,CAAAA,CAAGf,CAAe,CAAA,CAC7D8B,CAAAA,CAAUf,CAAAA,EAAWgB,kBAAAA,CAAgBhB,CAAAA,CAAGjB,EAAUS,CAAK,CAAA,CACvDyB,EAAAA,CAAajB,CAAAA,EAAWkB,kBAAAA,CAAmBlB,CAAAA,CAAGjB,CAAQ,CAAA,CACtDoC,CAAAA,CAAWnB,CAAAA,EAAWoB,kBAAAA,CAAiBpB,CAAC,CAAA,CACxCqB,CAAAA,CAAgBrB,GAAWsB,kBAAAA,CAAsBtB,CAAC,CAAA,CAClDuB,CAAAA,CAAY,IAAMC,kBAAAA,CAAmBhC,CAAK,CAAA,CAC1CiC,CAAAA,CAAWzB,CAAAA,EAAW0B,kBAAAA,CAAiB1B,CAAAA,CAAGR,CAAK,CAAA,CAC/CmC,EAAgB3B,CAAAA,EAAW4B,kBAAAA,CAAiB5B,CAAC,CAAA,CAC7C6B,CAAAA,CAAqB,IAAMC,mBAA4BtC,CAAK,CAAA,CAC5DuC,CAAAA,CAAY,IAChBC,kBAAAA,CACE3C,EAAAA,CACAD,EACAF,CAAAA,CACAC,CAAAA,CACAJ,CAAAA,CACAC,EAAAA,CACAC,CAAAA,CACAK,EAAAA,CACAE,CACF,CAAA,CAGF,OAAII,kBAAAA,CAAI,WAAA,EAAY,EAClBD,CAAAA,CAAI,EAAA,CAAGC,mBAAI,MAAA,CAAO,cAAA,CAAgBE,CAAe,CAAA,CACjDH,CAAAA,CAAI,EAAA,CAAGC,kBAAAA,CAAI,MAAA,CAAO,eAAA,CAAiBG,CAAgB,CAAA,CACnDJ,CAAAA,CAAI,EAAA,CAAGC,kBAAAA,CAAI,OAAO,aAAA,CAAeO,EAAc,CAAA,CAC/CR,CAAAA,CAAI,EAAA,CAAGC,kBAAAA,CAAI,MAAA,CAAO,YAAA,CAAcS,EAAa,CAAA,CAC7CV,CAAAA,CAAI,EAAA,CAAGC,kBAAAA,CAAI,MAAA,CAAO,YAAaW,EAAY,CAAA,CAC3CZ,CAAAA,CAAI,EAAA,CAAGC,kBAAAA,CAAI,MAAA,CAAO,MAAOa,EAAO,CAAA,CAEhCd,CAAAA,CAAI,WAAA,CAAYH,CAAK,CAAA,EACZA,EAAM,WAAA,CAAY,+BAA+B,CAAA,GAC1DA,CAAAA,CAAM,GAAA,CAAMD,CAAAA,CACZ0C,kBAAAA,EAA6B,CAE7BzC,CAAAA,CAAM,gBAAA,CAAiB,MAAA,CAAQyB,EAAS,CAAA,CACxCzB,CAAAA,CAAM,iBAAiB,SAAA,CAAW0C,kBAAqB,CAAA,CACvD1C,CAAAA,CAAM,gBAAA,CAAiB,YAAA,CAAc2C,kBAAwB,CAAA,CAC7D3C,CAAAA,CAAM,gBAAA,CAAiB,OAAA,CAAS4C,kBAAmB,CAAA,CAAA,CAGrD5C,CAAAA,CAAM,iBAAiB,SAAA,CAAWmB,CAAS,CAAA,CAC3CnB,CAAAA,CAAM,gBAAA,CAAiB,SAAA,CAAWqB,CAAS,CAAA,CAC3CrB,CAAAA,CAAM,gBAAA,CAAiB,MAAA,CAAQuB,CAAM,CAAA,CACrCvB,CAAAA,CAAM,iBAAiB,SAAA,CAAWuC,CAAS,CAAA,CAC3CvC,CAAAA,CAAM,gBAAA,CAAiB,OAAA,CAAS2B,CAAO,CAAA,CACvC3B,CAAAA,CAAM,gBAAA,CAAiB,YAAA,CAAc6B,CAAY,CAAA,CACjD7B,EAAM,gBAAA,CAAiB,SAAA,CAAW+B,CAAS,CAAA,CAC3C/B,CAAAA,CAAM,gBAAA,CAAiB,OAAA,CAASiC,CAAO,CAAA,CACvCjC,CAAAA,CAAM,gBAAA,CAAiB,OAAA,CAASmC,CAAY,CAAA,CAE5C,SAAS,gBAAA,CAAiB,kBAAA,CAAoBE,CAAkB,CAAA,CAGzD,IAAM,CACXlC,CAAAA,CAAI,OAAA,EAAQ,CAEZH,CAAAA,CAAM,mBAAA,CAAoB,SAAA,CAAWmB,CAAS,CAAA,CAC9CnB,EAAM,mBAAA,CAAoB,SAAA,CAAWqB,CAAS,CAAA,CAC9CrB,CAAAA,CAAM,mBAAA,CAAoB,MAAA,CAAQuB,CAAM,CAAA,CACxCvB,CAAAA,CAAM,mBAAA,CAAoB,SAAA,CAAWuC,CAAS,CAAA,CAC9CvC,EAAM,mBAAA,CAAoB,OAAA,CAAS2B,CAAO,CAAA,CAC1C3B,CAAAA,CAAM,mBAAA,CAAoB,aAAc6B,CAAY,CAAA,CACpD7B,CAAAA,CAAM,mBAAA,CAAoB,SAAA,CAAW+B,CAAS,EAC9C/B,CAAAA,CAAM,mBAAA,CAAoB,OAAA,CAASiC,CAAO,CAAA,CAC1CjC,CAAAA,CAAM,mBAAA,CAAoB,OAAA,CAASmC,CAAY,CAAA,CAE/C,QAAA,CAAS,mBAAA,CAAoB,kBAAA,CAAoBE,CAAkB,EACrE,CACF,CAAA,CAAG,CAACtC,CAAS,CAAC,CAAA,CAGdzC,eAAAA,CAAU,IAAM,CACV4B,CAAAA,CAAcC,EAAAA,EAAY1B,kBAAAA,CAAAA,SAAgC,CAAA,EAAGoB,CAAAA,CAASgE,mBAAW,KAAK,CAAC,EAC7F,CAAA,CAAG,CAAC3D,CAAW,CAAC,CAAA,CAEhBX,EAAAA,CAAYX,CAAY,CAAA,CAExBkF,kBAAAA,EAAqB,CACrBC,kBAAAA,GACAC,kBAAAA,EAAgB,CAChBC,kBAAAA,EAA2B,CAGzBC,cAAAA,CAAAC,mBAAAA,CAAA,CACE,QAAA,CAAAD,cAAAA,CAAC,OAAA,CAAA,CACC,GAAA,CAAK7D,CAAAA,CACL,WAAA,CAAW,KACX,EAAA,CAAG,YAAA,CACH,OAAA,CAAQ,UAAA,CACR,WAAA,CAAY,WAAA,CACZ,MAAA,CAAQN,CAAAA,CAAO,MAAA,CAASA,CAAAA,CAAO,MAAA,CAASC,CAAAA,CAAQ,MAAA,CAChD,QAAA,CAAU,CAAC,CAACvB,kBAAAA,CAAAA,aAAoC,CAAA,EAAK,CAAC,CAACsB,CAAAA,CAAO,aAAA,CAC9D,SAAA,CAAW,CAAA,oCAAA,EACT,CAACtB,kBAAAA,CAAAA,eAAsC,CAAA,EAAK,CAACA,kBAAAA,CAAAA,cAAqC,GAAK,oBACzF,CAAA,CAAA,CACA,KAAA,CAAO,CACL,KAAA,CAAO,MAAA,CACP,MAAA,CAAQ,MAAA,CACR,QAAA,CAAUwB,CAAAA,CAAqB,KAAA,CAAQA,CAAAA,CAAqB,KAAA,CAAQ,MAAA,CACpE,UAAWA,CAAAA,CAAqB,KAAA,CAC5BA,CAAAA,CAAqB,KAAA,CAAQA,CAAAA,CAAqB,MAAA,CAC/CA,EAAqB,KAAA,CAAQ,CAAA,CAAK,EAAA,CAClCA,CAAAA,CAAqB,KAAA,CAAQ,EAAA,CAAM,EACtC,MACN,CAAA,CAEA,QAAA,CAAAiE,cAAAA,CAACE,mBAAAA,CAAA,CACC,IAAA,CAAI,IAAA,CACJ,KAAA,CAAO,CAAE,SAAA,CAAW,OAAQ,CAAA,CAC5B,GAAA,CAAKrE,EAAO,MAAA,CAASA,CAAAA,CAAO,MAAA,CAASC,CAAAA,CAAQ,MAAA,CAC7C,MAAA,CAAQ,IAAOW,CAAAA,CAAyB,OAAA,CAAU,IAAA,CAAK,GAAA,EAAI,CAC3D,GAAA,CAAKZ,CAAAA,CAAO,UAAYA,CAAAA,CAAO,SAAA,CAAYtB,kBAAAA,CAAAA,gBAAuC,CAAA,CAAI,oIAAA,CAA+BuB,CAAAA,CAAQ,KAAA,EAAS,EAAA,CACxI,CAAA,CACF,CAAA,CACF,CAEJ,CAAA,CAEOqE,EAAAA,CAAQ1E","file":"nonStaticVideoTag-6OHMSJEH.js","sourcesContent":["\"use client\";\r\n\r\nimport Hls, { ErrorData } from \"hls.js\";\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport useContinuousPlaybackInterval from \"../../../helpers/hooks/useContinuousPlaybackInterval\";\r\nimport { handlePageLoadTime, setupAutoplayBehavior } from \"../../../helpers/helpers\";\r\nimport {\r\n appendQueryParamsToChunksIOS,\r\n handleFragBuffered,\r\n handleFragChanged,\r\n handleFragParsed,\r\n handleHlsConfig,\r\n handleHlsErrors,\r\n handleIosVideoEnded,\r\n handleIosVideoPlay,\r\n handleIosVideoPlaying,\r\n handleIosVideoTimeUpdate,\r\n handleManifestParsed,\r\n handleVideoCanPlay,\r\n handleVideoEnded,\r\n handleVideoError,\r\n handleVideoPause,\r\n handleVideoPlay,\r\n handleVideoPlaying,\r\n handleVideoSeeking,\r\n handleVideoTimeUpdate,\r\n handleVideoVisibilityChange,\r\n handleVideoWaiting,\r\n} from \"../../../helpers/redux/actions/playerCore.actions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { setIsEnded } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport usePingPong from \"../../../helpers/hooks/usePingPong\";\r\nimport useBeforeUnload from \"../../../helpers/hooks/useBeforeUnload\";\r\nimport useHideSubtitle from \"../../../helpers/hooks/useHideSubtitle\";\r\nimport useJumpToCurrentTime from \"../../../helpers/hooks/useJumpToCurrentTime\";\r\nimport useAppendSubtitle from \"../../../helpers/hooks/useAppendSubtitle\";\r\nimport useActiveSubtitleAutomatic from \"../../../helpers/hooks/useActiveSubtitleAutomatic\";\r\nimport Image from \"next/image\";\r\n\r\nconst NonStaticVideoTag = () => {\r\n const [qualityLevel, setQualityLevel] = useState<number | undefined>(undefined);\r\n\r\n const dispatch = useAppDispatch();\r\n const { params, details, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { params, details, videoElementSizeInfo } }) => ({\r\n params,\r\n details,\r\n videoElementSizeInfo,\r\n }),\r\n shallowEqual,\r\n );\r\n const { currentTime, duration } = useAppSelector(\r\n ({ controller: { currentTime, duration, isEnded, firstPlay } }) => ({\r\n currentTime,\r\n duration,\r\n isEnded,\r\n firstPlay,\r\n }),\r\n shallowEqual,\r\n );\r\n\r\n const videoRef = useRef<HTMLVideoElement | null>(null);\r\n const timerRef = useRef<any>(null);\r\n const waitingDurationRef = useRef<any>(0);\r\n const waitingTimerRef = useRef<number>(0);\r\n const initialWaitingDurationRef = useRef<any>(0);\r\n const bannerLoadingDurationRef = useRef<any>(0);\r\n const loadingDurationRef = useRef<any>(0);\r\n const loadingCounterRef = useRef<any>(1);\r\n const videoEntranceTimeRef = useRef<any>(videoRef.current?.currentTime || 0);\r\n\r\n useContinuousPlaybackInterval();\r\n useBeforeUnload();\r\n\r\n const streamUrl = details.stream_link || params.stream_link;\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n\r\n if (!video || !streamUrl) return;\r\n\r\n // ---- Page Load Time ----\r\n handlePageLoadTime(loadingDurationRef);\r\n initialWaitingDurationRef.current = Date.now();\r\n setupAutoplayBehavior(video);\r\n\r\n const hls = new Hls(handleHlsConfig());\r\n // ---------------- HLS EVENTS ----------------\r\n const onMediaAttached = () => hls.loadSource(streamUrl);\r\n const onManifestParsed = (e: any, data: any) => handleManifestParsed(hls, data);\r\n const onFragBuffered = () => handleFragBuffered(hls, video);\r\n const onFragChanged = (e: any, data: any) => handleFragChanged(hls, data, setQualityLevel);\r\n const onFragParsed = (e: any, data: any) => handleFragParsed(hls, data, setQualityLevel);\r\n const onError = (e: any, data: ErrorData) => handleHlsErrors(data);\r\n\r\n // ---------------- VIDEO EVENTS ----------------\r\n const onWaiting = (e: any) => handleVideoWaiting(e, waitingTimerRef);\r\n const onSeeking = (e: any) => handleVideoSeeking(e, waitingTimerRef);\r\n const onPlay = (e: any) => handleVideoPlay(e, timerRef, video);\r\n const onIosPlay = (e: any) => handleIosVideoPlay(e, timerRef);\r\n const onPause = (e: any) => handleVideoPause(e);\r\n const onTimeUpdate = (e: any) => handleVideoTimeUpdate(e);\r\n const onCanPlay = () => handleVideoCanPlay(video);\r\n const onEnded = (e: any) => handleVideoEnded(e, video);\r\n const onVideoError = (e: any) => handleVideoError(e);\r\n const onVisibilitychange = () => handleVideoVisibilityChange(video);\r\n const onPlaying = () =>\r\n handleVideoPlaying(\r\n loadingCounterRef,\r\n loadingDurationRef,\r\n initialWaitingDurationRef,\r\n bannerLoadingDurationRef,\r\n timerRef,\r\n waitingDurationRef,\r\n waitingTimerRef,\r\n videoEntranceTimeRef,\r\n video,\r\n );\r\n\r\n // ---------------- INIT ----------------\r\n if (Hls.isSupported()) {\r\n hls.on(Hls.Events.MEDIA_ATTACHED, onMediaAttached);\r\n hls.on(Hls.Events.MANIFEST_PARSED, onManifestParsed);\r\n hls.on(Hls.Events.FRAG_BUFFERED, onFragBuffered);\r\n hls.on(Hls.Events.FRAG_CHANGED, onFragChanged);\r\n hls.on(Hls.Events.FRAG_PARSED, onFragParsed);\r\n hls.on(Hls.Events.ERROR, onError);\r\n\r\n hls.attachMedia(video);\r\n } else if (video.canPlayType(\"application/vnd.apple.mpegurl\")) {\r\n video.src = streamUrl;\r\n appendQueryParamsToChunksIOS();\r\n\r\n video.addEventListener(\"play\", onIosPlay);\r\n video.addEventListener(\"playing\", handleIosVideoPlaying);\r\n video.addEventListener(\"timeupdate\", handleIosVideoTimeUpdate);\r\n video.addEventListener(\"ended\", handleIosVideoEnded);\r\n }\r\n\r\n video.addEventListener(\"waiting\", onWaiting);\r\n video.addEventListener(\"seeking\", onSeeking);\r\n video.addEventListener(\"play\", onPlay);\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.addEventListener(\"pause\", onPause);\r\n video.addEventListener(\"timeupdate\", onTimeUpdate);\r\n video.addEventListener(\"canplay\", onCanPlay);\r\n video.addEventListener(\"ended\", onEnded);\r\n video.addEventListener(\"error\", onVideoError);\r\n\r\n document.addEventListener(\"visibilitychange\", onVisibilitychange);\r\n\r\n // ---------------- CLEANUP ----------------\r\n return () => {\r\n hls.destroy();\r\n\r\n video.removeEventListener(\"waiting\", onWaiting);\r\n video.removeEventListener(\"seeking\", onSeeking);\r\n video.removeEventListener(\"play\", onPlay);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n video.removeEventListener(\"pause\", onPause);\r\n video.removeEventListener(\"timeupdate\", onTimeUpdate);\r\n video.removeEventListener(\"canplay\", onCanPlay);\r\n video.removeEventListener(\"ended\", onEnded);\r\n video.removeEventListener(\"error\", onVideoError);\r\n\r\n document.removeEventListener(\"visibilitychange\", onVisibilitychange);\r\n };\r\n }, [streamUrl]);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (currentTime < duration && conditions(ConditionName.isEnded)) dispatch(setIsEnded(false));\r\n }, [currentTime]);\r\n\r\n usePingPong(qualityLevel);\r\n\r\n useJumpToCurrentTime();\r\n useAppendSubtitle();\r\n useHideSubtitle();\r\n useActiveSubtitleAutomatic();\r\n\r\n return (\r\n <>\r\n <video\r\n ref={videoRef}\r\n playsInline\r\n id=\"player-tag\"\r\n preload=\"metadata\"\r\n crossOrigin=\"anonymous\"\r\n poster={params.banner ? params.banner : details.banner}\r\n autoPlay={!!conditions(ConditionName.hasAutoPlay) || !!params.advertisement}\r\n className={`pl-items-center pl-flex-1 pl-h-full ${\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\r\n }`}\r\n style={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n maxWidth: videoElementSizeInfo.width ? videoElementSizeInfo.width : \"100%\",\r\n maxHeight: videoElementSizeInfo.width\r\n ? videoElementSizeInfo.width < videoElementSizeInfo.height\r\n ? (videoElementSizeInfo.width * 9) / 16\r\n : (videoElementSizeInfo.width * 16) / 9\r\n : \"100%\",\r\n }}\r\n >\r\n <Image\r\n fill\r\n style={{ objectFit: \"cover\" }}\r\n src={params.banner ? params.banner : details.banner}\r\n onLoad={() => (bannerLoadingDurationRef.current = Date.now())}\r\n alt={params.bannerAlt ? params.bannerAlt : conditions(ConditionName.isStaticFormat) ? \"بنر ویدیو پلیر کافه ویدیو\" : (details.title ?? \"\")}\r\n />\r\n </video>\r\n </>\r\n );\r\n};\r\n\r\nexport default NonStaticVideoTag;\r\n","import { useEffect } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { continuousePlaybackIntervalTime } from \"../environment\";\nimport { ConditionName } from \"../interfaces/enums\";\nimport { conditions } from \"../conditions/conditions\";\nimport { handleContinuousPlayback } from \"../redux/actions/user.actions\";\n\nconst useContinuousPlaybackInterval = () => {\n let interval: any = null;\n\n const { isEnded } = useAppSelector(({ controller: { isEnded } }) => ({ isEnded }), shallowEqual);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n interval = setInterval(() => handleContinuousPlayback(), continuousePlaybackIntervalTime);\n return () => clearInterval(interval);\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (conditions(ConditionName.isEnded)) clearInterval(interval);\n }, [isEnded]);\n};\n\nexport default useContinuousPlaybackInterval;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { sendFluentLog } from \"../logs/fluentdLogger\";\nimport { autoQualityChangeLog, pingpongLog } from \"../logs/logs\";\n\nconst usePingPong = (qualityLevel?: number) => {\n const [qualityHistory, setQualityHistory] = useState<number[]>([]);\n const [startTimer, setStartTimer] = useState<number>(0);\n\n const { qualityLevels } = useAppSelector(({ controller: { qualityLevels } }) => ({ qualityLevels }), shallowEqual);\n\n useEffect(() => {\n if (qualityLevel) {\n let newQualityArray: number[] = [];\n switch (qualityHistory.length) {\n case 0:\n newQualityArray = [qualityLevel];\n break;\n case 1:\n newQualityArray = [qualityLevel, ...qualityHistory];\n break;\n case 2:\n newQualityArray = [qualityLevel, ...qualityHistory];\n sendFluentLog(\n autoQualityChangeLog(\n `${newQualityArray[0]}P`,\n `${newQualityArray[1]}P`,\n qualityLevels.indexOf(newQualityArray[0]) - qualityLevels.indexOf(newQualityArray[1])\n )\n );\n break;\n default:\n newQualityArray = [qualityLevel, qualityHistory[0], qualityHistory[1]];\n if (newQualityArray[1] !== newQualityArray[2])\n sendFluentLog(\n autoQualityChangeLog(\n `${newQualityArray[1]}P`,\n `${newQualityArray[2]}P`,\n qualityLevels.indexOf(newQualityArray[1]) - qualityLevels.indexOf(newQualityArray[2])\n )\n );\n break;\n }\n setQualityHistory(newQualityArray);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [qualityLevel]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (qualityHistory.length === 3 && qualityHistory[0] === qualityHistory[2]) {\n sendFluentLog(pingpongLog(startTimer, qualityHistory));\n setQualityHistory([]);\n setStartTimer(0);\n } else {\n setStartTimer(new Date().getTime());\n }\n }, [qualityHistory]);\n};\nexport default usePingPong;\n","import { useEffect } from \"react\";\nimport { handleContinuousPlayback } from \"../redux/actions/user.actions\";\n\nconst useBeforeUnload = () => {\n useEffect(() => {\n const handleBeforeUnload = () => {\n handleContinuousPlayback();\n };\n\n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n return () => window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n }, []);\n};\n\nexport default useBeforeUnload;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a,c as c$1,b as b$1,d}from'./chunk-4XKL6TLO.mjs';import {c,b,s,t,u as u$1,e as e$1,f,g,h,i,j,k,l,r,n,o,p,q,a as a$1,D,m}from'./chunk-73KLK4QU.mjs';import {c as c$2}from'./chunk-2DV7FRU5.mjs';import {a as a$2}from'./chunk-PKXJEXKI.mjs';import'./chunk-CCO6GDG2.mjs';import {qa,xa,t as t$1,w,I,J}from'./chunk-BC4366GN.mjs';import {e,z,A,u as u$2}from'./chunk-4QMWBTB5.mjs';import u from'hls.js';import {useState,useRef,useEffect}from'react';import {shallowEqual}from'react-redux';import $e from'next/image';import {jsx,Fragment}from'react/jsx-runtime';e();e();var Be=()=>{let a=null,{isEnded:r}=A(({controller:{isEnded:y}})=>({isEnded:y}),shallowEqual);useEffect(()=>(a=setInterval(()=>a$2(),c$2),()=>clearInterval(a)),[]),useEffect(()=>{t$1("isEnded")&&clearInterval(a);},[r]);},ge=Be;e();var Oe=a=>{let[r,y]=useState([]),[s,c]=useState(0),{qualityLevels:i}=A(({controller:{qualityLevels:n}})=>({qualityLevels:n}),shallowEqual);useEffect(()=>{if(a){let n=[];switch(r.length){case 0:n=[a];break;case 1:n=[a,...r];break;case 2:n=[a,...r],w(I(`${n[0]}P`,`${n[1]}P`,i.indexOf(n[0])-i.indexOf(n[1])));break;default:n=[a,r[0],r[1]],n[1]!==n[2]&&w(I(`${n[1]}P`,`${n[2]}P`,i.indexOf(n[1])-i.indexOf(n[2])));break}y(n);}},[a]),useEffect(()=>{r.length===3&&r[0]===r[2]?(w(J(s,r)),y([]),c(0)):c(new Date().getTime());},[r]);},Le=Oe;e();var Ne=()=>{useEffect(()=>{let a=()=>{a$2();};return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[]);},we=Ne;var Ge=()=>{let[a$2,r$1]=useState(void 0),y=z(),{params:s$1,details:c$2,videoElementSizeInfo:i$1}=A(({videoData:{params:e,details:o,videoElementSizeInfo:E}})=>({params:e,details:o,videoElementSizeInfo:E}),shallowEqual),{currentTime:n$1,duration:Te}=A(({controller:{currentTime:e,duration:o,isEnded:E,firstPlay:w}})=>({currentTime:e,duration:o,isEnded:E,firstPlay:w}),shallowEqual),P=useRef(null),b$2=useRef(null),Re=useRef(0),L=useRef(0),V=useRef(0),C=useRef(0),I=useRef(0),Ve=useRef(1),Ce=useRef(P.current?.currentTime||0);ge(),we();let v=c$2.stream_link||s$1.stream_link;return useEffect(()=>{let e=P.current;if(!e||!v)return;qa(I),V.current=Date.now(),xa(e);let o$1=new u(c()),E=()=>o$1.loadSource(v),w=(t,p)=>e$1(o$1,p),Ie=()=>f(o$1,e),De=(t,p)=>g(o$1,p,r$1),ke=(t,p)=>h(o$1,p,r$1),Fe=(t,p)=>i(p),D$1=t=>j(t,L),k$1=t=>k(t,L),F=t=>l(t,b$2,e),xe=t=>r(t,b$2),x=t=>n(t),H=t=>o(t),U=()=>p(e),B=t=>q(t,e),M=t=>a$1(t),O=()=>D(e),_=()=>m(Ve,I,V,C,b$2,Re,L,Ce,e);return u.isSupported()?(o$1.on(u.Events.MEDIA_ATTACHED,E),o$1.on(u.Events.MANIFEST_PARSED,w),o$1.on(u.Events.FRAG_BUFFERED,Ie),o$1.on(u.Events.FRAG_CHANGED,De),o$1.on(u.Events.FRAG_PARSED,ke),o$1.on(u.Events.ERROR,Fe),o$1.attachMedia(e)):e.canPlayType("application/vnd.apple.mpegurl")&&(e.src=v,b(),e.addEventListener("play",xe),e.addEventListener("playing",s),e.addEventListener("timeupdate",t),e.addEventListener("ended",u$1)),e.addEventListener("waiting",D$1),e.addEventListener("seeking",k$1),e.addEventListener("play",F),e.addEventListener("playing",_),e.addEventListener("pause",x),e.addEventListener("timeupdate",H),e.addEventListener("canplay",U),e.addEventListener("ended",B),e.addEventListener("error",M),document.addEventListener("visibilitychange",O),()=>{o$1.destroy(),e.removeEventListener("waiting",D$1),e.removeEventListener("seeking",k$1),e.removeEventListener("play",F),e.removeEventListener("playing",_),e.removeEventListener("pause",x),e.removeEventListener("timeupdate",H),e.removeEventListener("canplay",U),e.removeEventListener("ended",B),e.removeEventListener("error",M),document.removeEventListener("visibilitychange",O);}},[v]),useEffect(()=>{n$1<Te&&t$1("isEnded")&&y(u$2(false));},[n$1]),Le(a$2),a(),c$1(),b$1(),d(),jsx(Fragment,{children:jsx("video",{ref:P,playsInline:true,id:"player-tag",preload:"metadata",crossOrigin:"anonymous",poster:s$1.banner?s$1.banner:c$2.banner,autoPlay:!!t$1("hasAutoPlay")||!!s$1.advertisement,className:`pl-items-center pl-flex-1 pl-h-full ${!t$1("isTouchScreen")&&!t$1("isFullScreen")&&"!pl-rounded-[12px]"}`,style:{width:"100%",height:"100%",maxWidth:i$1.width?i$1.width:"100%",maxHeight:i$1.width?i$1.width<i$1.height?i$1.width*9/16:i$1.width*16/9:"100%"},children:jsx($e,{fill:true,style:{objectFit:"cover"},src:s$1.banner?s$1.banner:c$2.banner,onLoad:()=>C.current=Date.now(),alt:s$1.bannerAlt?s$1.bannerAlt:t$1("isStaticFormat")?"\u0628\u0646\u0631 \u0648\u06CC\u062F\u06CC\u0648 \u067E\u0644\u06CC\u0631 \u06A9\u0627\u0641\u0647 \u0648\u06CC\u062F\u06CC\u0648":c$2.title??""})})})},Dn=Ge;export{Dn as default};//# sourceMappingURL=nonStaticVideoTag-J6JNATM6.mjs.map
2
+ //# sourceMappingURL=nonStaticVideoTag-J6JNATM6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoTag/nonStaticVideoTag.tsx","../src/videoPlayerLibrary/helpers/hooks/useContinuousPlaybackInterval.tsx","../src/videoPlayerLibrary/helpers/hooks/usePingPong.tsx","../src/videoPlayerLibrary/helpers/hooks/useBeforeUnload.tsx"],"names":["init_esm_shims","useContinuousPlaybackInterval","interval","isEnded","useAppSelector","shallowEqual","useEffect","handleContinuousPlayback","continuousePlaybackIntervalTime","conditions","useContinuousPlaybackInterval_default","usePingPong","qualityLevel","qualityHistory","setQualityHistory","useState","startTimer","setStartTimer","qualityLevels","newQualityArray","sendFluentLog","autoQualityChangeLog","pingpongLog","usePingPong_default","useBeforeUnload","handleBeforeUnload","useBeforeUnload_default","NonStaticVideoTag","setQualityLevel","dispatch","useAppDispatch","params","details","videoElementSizeInfo","currentTime","duration","firstPlay","videoRef","useRef","timerRef","waitingDurationRef","waitingTimerRef","initialWaitingDurationRef","bannerLoadingDurationRef","loadingDurationRef","loadingCounterRef","videoEntranceTimeRef","streamUrl","video","handlePageLoadTime","setupAutoplayBehavior","hls","Hls","handleHlsConfig","onMediaAttached","onManifestParsed","e","data","handleManifestParsed","onFragBuffered","handleFragBuffered","onFragChanged","handleFragChanged","onFragParsed","handleFragParsed","onError","handleHlsErrors","onWaiting","handleVideoWaiting","onSeeking","handleVideoSeeking","onPlay","handleVideoPlay","onIosPlay","handleIosVideoPlay","onPause","handleVideoPause","onTimeUpdate","handleVideoTimeUpdate","onCanPlay","handleVideoCanPlay","onEnded","handleVideoEnded","onVideoError","handleVideoError","onVisibilitychange","handleVideoVisibilityChange","onPlaying","handleVideoPlaying","appendQueryParamsToChunksIOS","handleIosVideoPlaying","handleIosVideoTimeUpdate","handleIosVideoEnded","setIsEnded","useJumpToCurrentTime_default","useAppendSubtitle_default","useHideSubtitle_default","useActiveSubtitleAutomatic_default","jsx","Fragment","Image","nonStaticVideoTag_default"],"mappings":"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","file":"nonStaticVideoTag-J6JNATM6.mjs","sourcesContent":["\"use client\";\r\n\r\nimport Hls, { ErrorData } from \"hls.js\";\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport useContinuousPlaybackInterval from \"../../../helpers/hooks/useContinuousPlaybackInterval\";\r\nimport { handlePageLoadTime, setupAutoplayBehavior } from \"../../../helpers/helpers\";\r\nimport {\r\n appendQueryParamsToChunksIOS,\r\n handleFragBuffered,\r\n handleFragChanged,\r\n handleFragParsed,\r\n handleHlsConfig,\r\n handleHlsErrors,\r\n handleIosVideoEnded,\r\n handleIosVideoPlay,\r\n handleIosVideoPlaying,\r\n handleIosVideoTimeUpdate,\r\n handleManifestParsed,\r\n handleVideoCanPlay,\r\n handleVideoEnded,\r\n handleVideoError,\r\n handleVideoPause,\r\n handleVideoPlay,\r\n handleVideoPlaying,\r\n handleVideoSeeking,\r\n handleVideoTimeUpdate,\r\n handleVideoVisibilityChange,\r\n handleVideoWaiting,\r\n} from \"../../../helpers/redux/actions/playerCore.actions\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport { setIsEnded } from \"../../../helpers/redux/slices/controllerSlice\";\r\nimport usePingPong from \"../../../helpers/hooks/usePingPong\";\r\nimport useBeforeUnload from \"../../../helpers/hooks/useBeforeUnload\";\r\nimport useHideSubtitle from \"../../../helpers/hooks/useHideSubtitle\";\r\nimport useJumpToCurrentTime from \"../../../helpers/hooks/useJumpToCurrentTime\";\r\nimport useAppendSubtitle from \"../../../helpers/hooks/useAppendSubtitle\";\r\nimport useActiveSubtitleAutomatic from \"../../../helpers/hooks/useActiveSubtitleAutomatic\";\r\nimport Image from \"next/image\";\r\n\r\nconst NonStaticVideoTag = () => {\r\n const [qualityLevel, setQualityLevel] = useState<number | undefined>(undefined);\r\n\r\n const dispatch = useAppDispatch();\r\n const { params, details, videoElementSizeInfo } = useAppSelector(\r\n ({ videoData: { params, details, videoElementSizeInfo } }) => ({\r\n params,\r\n details,\r\n videoElementSizeInfo,\r\n }),\r\n shallowEqual,\r\n );\r\n const { currentTime, duration } = useAppSelector(\r\n ({ controller: { currentTime, duration, isEnded, firstPlay } }) => ({\r\n currentTime,\r\n duration,\r\n isEnded,\r\n firstPlay,\r\n }),\r\n shallowEqual,\r\n );\r\n\r\n const videoRef = useRef<HTMLVideoElement | null>(null);\r\n const timerRef = useRef<any>(null);\r\n const waitingDurationRef = useRef<any>(0);\r\n const waitingTimerRef = useRef<number>(0);\r\n const initialWaitingDurationRef = useRef<any>(0);\r\n const bannerLoadingDurationRef = useRef<any>(0);\r\n const loadingDurationRef = useRef<any>(0);\r\n const loadingCounterRef = useRef<any>(1);\r\n const videoEntranceTimeRef = useRef<any>(videoRef.current?.currentTime || 0);\r\n\r\n useContinuousPlaybackInterval();\r\n useBeforeUnload();\r\n\r\n const streamUrl = details.stream_link || params.stream_link;\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n\r\n if (!video || !streamUrl) return;\r\n\r\n // ---- Page Load Time ----\r\n handlePageLoadTime(loadingDurationRef);\r\n initialWaitingDurationRef.current = Date.now();\r\n setupAutoplayBehavior(video);\r\n\r\n const hls = new Hls(handleHlsConfig());\r\n // ---------------- HLS EVENTS ----------------\r\n const onMediaAttached = () => hls.loadSource(streamUrl);\r\n const onManifestParsed = (e: any, data: any) => handleManifestParsed(hls, data);\r\n const onFragBuffered = () => handleFragBuffered(hls, video);\r\n const onFragChanged = (e: any, data: any) => handleFragChanged(hls, data, setQualityLevel);\r\n const onFragParsed = (e: any, data: any) => handleFragParsed(hls, data, setQualityLevel);\r\n const onError = (e: any, data: ErrorData) => handleHlsErrors(data);\r\n\r\n // ---------------- VIDEO EVENTS ----------------\r\n const onWaiting = (e: any) => handleVideoWaiting(e, waitingTimerRef);\r\n const onSeeking = (e: any) => handleVideoSeeking(e, waitingTimerRef);\r\n const onPlay = (e: any) => handleVideoPlay(e, timerRef, video);\r\n const onIosPlay = (e: any) => handleIosVideoPlay(e, timerRef);\r\n const onPause = (e: any) => handleVideoPause(e);\r\n const onTimeUpdate = (e: any) => handleVideoTimeUpdate(e);\r\n const onCanPlay = () => handleVideoCanPlay(video);\r\n const onEnded = (e: any) => handleVideoEnded(e, video);\r\n const onVideoError = (e: any) => handleVideoError(e);\r\n const onVisibilitychange = () => handleVideoVisibilityChange(video);\r\n const onPlaying = () =>\r\n handleVideoPlaying(\r\n loadingCounterRef,\r\n loadingDurationRef,\r\n initialWaitingDurationRef,\r\n bannerLoadingDurationRef,\r\n timerRef,\r\n waitingDurationRef,\r\n waitingTimerRef,\r\n videoEntranceTimeRef,\r\n video,\r\n );\r\n\r\n // ---------------- INIT ----------------\r\n if (Hls.isSupported()) {\r\n hls.on(Hls.Events.MEDIA_ATTACHED, onMediaAttached);\r\n hls.on(Hls.Events.MANIFEST_PARSED, onManifestParsed);\r\n hls.on(Hls.Events.FRAG_BUFFERED, onFragBuffered);\r\n hls.on(Hls.Events.FRAG_CHANGED, onFragChanged);\r\n hls.on(Hls.Events.FRAG_PARSED, onFragParsed);\r\n hls.on(Hls.Events.ERROR, onError);\r\n\r\n hls.attachMedia(video);\r\n } else if (video.canPlayType(\"application/vnd.apple.mpegurl\")) {\r\n video.src = streamUrl;\r\n appendQueryParamsToChunksIOS();\r\n\r\n video.addEventListener(\"play\", onIosPlay);\r\n video.addEventListener(\"playing\", handleIosVideoPlaying);\r\n video.addEventListener(\"timeupdate\", handleIosVideoTimeUpdate);\r\n video.addEventListener(\"ended\", handleIosVideoEnded);\r\n }\r\n\r\n video.addEventListener(\"waiting\", onWaiting);\r\n video.addEventListener(\"seeking\", onSeeking);\r\n video.addEventListener(\"play\", onPlay);\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.addEventListener(\"pause\", onPause);\r\n video.addEventListener(\"timeupdate\", onTimeUpdate);\r\n video.addEventListener(\"canplay\", onCanPlay);\r\n video.addEventListener(\"ended\", onEnded);\r\n video.addEventListener(\"error\", onVideoError);\r\n\r\n document.addEventListener(\"visibilitychange\", onVisibilitychange);\r\n\r\n // ---------------- CLEANUP ----------------\r\n return () => {\r\n hls.destroy();\r\n\r\n video.removeEventListener(\"waiting\", onWaiting);\r\n video.removeEventListener(\"seeking\", onSeeking);\r\n video.removeEventListener(\"play\", onPlay);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n video.removeEventListener(\"pause\", onPause);\r\n video.removeEventListener(\"timeupdate\", onTimeUpdate);\r\n video.removeEventListener(\"canplay\", onCanPlay);\r\n video.removeEventListener(\"ended\", onEnded);\r\n video.removeEventListener(\"error\", onVideoError);\r\n\r\n document.removeEventListener(\"visibilitychange\", onVisibilitychange);\r\n };\r\n }, [streamUrl]);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (currentTime < duration && conditions(ConditionName.isEnded)) dispatch(setIsEnded(false));\r\n }, [currentTime]);\r\n\r\n usePingPong(qualityLevel);\r\n\r\n useJumpToCurrentTime();\r\n useAppendSubtitle();\r\n useHideSubtitle();\r\n useActiveSubtitleAutomatic();\r\n\r\n return (\r\n <>\r\n <video\r\n ref={videoRef}\r\n playsInline\r\n id=\"player-tag\"\r\n preload=\"metadata\"\r\n crossOrigin=\"anonymous\"\r\n poster={params.banner ? params.banner : details.banner}\r\n autoPlay={!!conditions(ConditionName.hasAutoPlay) || !!params.advertisement}\r\n className={`pl-items-center pl-flex-1 pl-h-full ${\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\r\n }`}\r\n style={{\r\n width: \"100%\",\r\n height: \"100%\",\r\n maxWidth: videoElementSizeInfo.width ? videoElementSizeInfo.width : \"100%\",\r\n maxHeight: videoElementSizeInfo.width\r\n ? videoElementSizeInfo.width < videoElementSizeInfo.height\r\n ? (videoElementSizeInfo.width * 9) / 16\r\n : (videoElementSizeInfo.width * 16) / 9\r\n : \"100%\",\r\n }}\r\n >\r\n <Image\r\n fill\r\n style={{ objectFit: \"cover\" }}\r\n src={params.banner ? params.banner : details.banner}\r\n onLoad={() => (bannerLoadingDurationRef.current = Date.now())}\r\n alt={params.bannerAlt ? params.bannerAlt : conditions(ConditionName.isStaticFormat) ? \"بنر ویدیو پلیر کافه ویدیو\" : (details.title ?? \"\")}\r\n />\r\n </video>\r\n </>\r\n );\r\n};\r\n\r\nexport default NonStaticVideoTag;\r\n","import { useEffect } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { continuousePlaybackIntervalTime } from \"../environment\";\nimport { ConditionName } from \"../interfaces/enums\";\nimport { conditions } from \"../conditions/conditions\";\nimport { handleContinuousPlayback } from \"../redux/actions/user.actions\";\n\nconst useContinuousPlaybackInterval = () => {\n let interval: any = null;\n\n const { isEnded } = useAppSelector(({ controller: { isEnded } }) => ({ isEnded }), shallowEqual);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n interval = setInterval(() => handleContinuousPlayback(), continuousePlaybackIntervalTime);\n return () => clearInterval(interval);\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (conditions(ConditionName.isEnded)) clearInterval(interval);\n }, [isEnded]);\n};\n\nexport default useContinuousPlaybackInterval;\n","import { useEffect, useState } from \"react\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../redux/hooks\";\nimport { sendFluentLog } from \"../logs/fluentdLogger\";\nimport { autoQualityChangeLog, pingpongLog } from \"../logs/logs\";\n\nconst usePingPong = (qualityLevel?: number) => {\n const [qualityHistory, setQualityHistory] = useState<number[]>([]);\n const [startTimer, setStartTimer] = useState<number>(0);\n\n const { qualityLevels } = useAppSelector(({ controller: { qualityLevels } }) => ({ qualityLevels }), shallowEqual);\n\n useEffect(() => {\n if (qualityLevel) {\n let newQualityArray: number[] = [];\n switch (qualityHistory.length) {\n case 0:\n newQualityArray = [qualityLevel];\n break;\n case 1:\n newQualityArray = [qualityLevel, ...qualityHistory];\n break;\n case 2:\n newQualityArray = [qualityLevel, ...qualityHistory];\n sendFluentLog(\n autoQualityChangeLog(\n `${newQualityArray[0]}P`,\n `${newQualityArray[1]}P`,\n qualityLevels.indexOf(newQualityArray[0]) - qualityLevels.indexOf(newQualityArray[1])\n )\n );\n break;\n default:\n newQualityArray = [qualityLevel, qualityHistory[0], qualityHistory[1]];\n if (newQualityArray[1] !== newQualityArray[2])\n sendFluentLog(\n autoQualityChangeLog(\n `${newQualityArray[1]}P`,\n `${newQualityArray[2]}P`,\n qualityLevels.indexOf(newQualityArray[1]) - qualityLevels.indexOf(newQualityArray[2])\n )\n );\n break;\n }\n setQualityHistory(newQualityArray);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [qualityLevel]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n if (qualityHistory.length === 3 && qualityHistory[0] === qualityHistory[2]) {\n sendFluentLog(pingpongLog(startTimer, qualityHistory));\n setQualityHistory([]);\n setStartTimer(0);\n } else {\n setStartTimer(new Date().getTime());\n }\n }, [qualityHistory]);\n};\nexport default usePingPong;\n","import { useEffect } from \"react\";\nimport { handleContinuousPlayback } from \"../redux/actions/user.actions\";\n\nconst useBeforeUnload = () => {\n useEffect(() => {\n const handleBeforeUnload = () => {\n handleContinuousPlayback();\n };\n\n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n return () => window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n }, []);\n};\n\nexport default useBeforeUnload;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkCOYFW7R4_js=require('./chunk-COYFW7R4.js'),chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),s=require('next/image'),react=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var s__default=/*#__PURE__*/_interopDefault(s);chunkAN6JAJSI_js.e();var f=()=>{let t=chunkAN6JAJSI_js.z();return react.useEffect(()=>{t(chunkAN6JAJSI_js.l(false));},[t]),jsxRuntime.jsxs("div",{className:"pl-w-full pl-h-full pl-rounded-2xl pl-flex pl-flex-col pl-justify-center pl-select-none pl-pointer-events-none pl-items-center",children:[jsxRuntime.jsx("div",{className:"pl-flex pl-justify-center",children:jsxRuntime.jsx(s__default.default,{src:chunkCOYFW7R4_js.a.notFound,alt:"",width:120,height:70})}),jsxRuntime.jsx("h1",{className:"pl-text-[12px] pl-font-medium pl-text-white pl-mt-4 pl-mb-2",children:"\u0648\u06CC\u062F\u06CC\u0648\u06CC\u06CC \u0628\u0631\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u0647"}),jsxRuntime.jsx("p",{className:"pl-text-[12px] pl-font-medium pl-text-white",children:"\u0645\u06CC\u200C\u062A\u0648\u0646\u06CC\u062F \u0648\u06CC\u062F\u06CC\u0648\u0647\u0627\u06CC \u0645\u0634\u0627\u0628\u0647 \u0628\u0627 \u0627\u0648\u0646 \u0631\u0648 \u0645\u0634\u0627\u0647\u062F\u0647 \u06A9\u0646\u06CC\u062F."})]})},x=f;module.exports=x;//# sourceMappingURL=notActive-DRH5BEL5.js.map
2
+ //# sourceMappingURL=notActive-DRH5BEL5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/notActive/notActive.tsx"],"names":["init_cjs_shims","NotActive","dispatch","useAppDispatch","useEffect","setIsLoading","jsxs","jsx","Image","importImages_default","notActive_default"],"mappings":"wTAAAA,kBAAAA,EAAAA,CAQA,IAAMC,EAAY,IAAM,CACtB,IAAMC,CAAAA,CAAWC,kBAAAA,EAAe,CAEhC,OAAAC,eAAAA,CAAU,IAAM,CACdF,CAAAA,CAASG,kBAAAA,CAAa,KAAK,CAAC,EAC9B,CAAA,CAAG,CAACH,CAAQ,CAAC,CAAA,CAGXI,eAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAW,gIAAA,CACd,QAAA,CAAA,CAAAC,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,2BAAA,CACb,QAAA,CAAAA,cAAAA,CAACC,kBAAAA,CAAA,CAAM,GAAA,CAAKC,kBAAAA,CAAO,QAAA,CAAU,GAAA,CAAI,GAAG,KAAA,CAAO,GAAA,CAAK,MAAA,CAAQ,EAAA,CAAI,EAC9D,CAAA,CACAF,cAAAA,CAAC,IAAA,CAAA,CAAG,SAAA,CAAU,8DAA8D,QAAA,CAAA,4JAAA,CAA6B,CAAA,CACzGA,cAAAA,CAAC,GAAA,CAAA,CAAE,UAAU,6CAAA,CAA8C,QAAA,CAAA,8OAAA,CAA8C,CAAA,CAAA,CAC3G,CAEJ,EAEOG,CAAAA,CAAQT","file":"notActive-DRH5BEL5.js","sourcesContent":["\"use client\";\r\n\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { useEffect } from \"react\";\r\nimport { useAppDispatch } from \"../../../helpers/redux/hooks\";\r\nimport { setIsLoading } from \"../../../helpers/redux/slices/controllerSlice\";\r\n\r\nconst NotActive = () => {\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(setIsLoading(false));\r\n }, [dispatch]);\r\n\r\n return (\r\n <div className={`pl-w-full pl-h-full pl-rounded-2xl pl-flex pl-flex-col pl-justify-center pl-select-none pl-pointer-events-none pl-items-center`}>\r\n <div className=\"pl-flex pl-justify-center\">\r\n <Image src={IMAGES.notFound} alt=\"\" width={120} height={70} />\r\n </div>\r\n <h1 className=\"pl-text-[12px] pl-font-medium pl-text-white pl-mt-4 pl-mb-2\">ویدیویی برای نمایش وجود نداره</h1>\r\n <p className=\"pl-text-[12px] pl-font-medium pl-text-white\">می‌تونید ویدیوهای مشابه با اون رو مشاهده کنید.</p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default NotActive;\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-XKRBXZUB.mjs';import {e,z,l}from'./chunk-4QMWBTB5.mjs';import s from'next/image';import {useEffect}from'react';import {jsxs,jsx}from'react/jsx-runtime';e();var f=()=>{let t=z();return useEffect(()=>{t(l(false));},[t]),jsxs("div",{className:"pl-w-full pl-h-full pl-rounded-2xl pl-flex pl-flex-col pl-justify-center pl-select-none pl-pointer-events-none pl-items-center",children:[jsx("div",{className:"pl-flex pl-justify-center",children:jsx(s,{src:a.notFound,alt:"",width:120,height:70})}),jsx("h1",{className:"pl-text-[12px] pl-font-medium pl-text-white pl-mt-4 pl-mb-2",children:"\u0648\u06CC\u062F\u06CC\u0648\u06CC\u06CC \u0628\u0631\u0627\u06CC \u0646\u0645\u0627\u06CC\u0634 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u0647"}),jsx("p",{className:"pl-text-[12px] pl-font-medium pl-text-white",children:"\u0645\u06CC\u200C\u062A\u0648\u0646\u06CC\u062F \u0648\u06CC\u062F\u06CC\u0648\u0647\u0627\u06CC \u0645\u0634\u0627\u0628\u0647 \u0628\u0627 \u0627\u0648\u0646 \u0631\u0648 \u0645\u0634\u0627\u0647\u062F\u0647 \u06A9\u0646\u06CC\u062F."})]})},v=f;export{v as default};//# sourceMappingURL=notActive-DSDPVSW4.mjs.map
2
+ //# sourceMappingURL=notActive-DSDPVSW4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/notActive/notActive.tsx"],"names":["init_esm_shims","NotActive","dispatch","useAppDispatch","useEffect","setIsLoading","jsxs","jsx","Image","importImages_default","notActive_default"],"mappings":"+KAAAA,CAAAA,EAAAA,CAQA,IAAMC,EAAY,IAAM,CACtB,IAAMC,CAAAA,CAAWC,CAAAA,EAAe,CAEhC,OAAAC,SAAAA,CAAU,IAAM,CACdF,CAAAA,CAASG,CAAAA,CAAa,KAAK,CAAC,EAC9B,CAAA,CAAG,CAACH,CAAQ,CAAC,CAAA,CAGXI,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAW,gIAAA,CACd,QAAA,CAAA,CAAAC,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,2BAAA,CACb,QAAA,CAAAA,GAAAA,CAACC,CAAAA,CAAA,CAAM,GAAA,CAAKC,CAAAA,CAAO,QAAA,CAAU,GAAA,CAAI,GAAG,KAAA,CAAO,GAAA,CAAK,MAAA,CAAQ,EAAA,CAAI,EAC9D,CAAA,CACAF,GAAAA,CAAC,IAAA,CAAA,CAAG,SAAA,CAAU,8DAA8D,QAAA,CAAA,4JAAA,CAA6B,CAAA,CACzGA,GAAAA,CAAC,GAAA,CAAA,CAAE,UAAU,6CAAA,CAA8C,QAAA,CAAA,8OAAA,CAA8C,CAAA,CAAA,CAC3G,CAEJ,EAEOG,CAAAA,CAAQT","file":"notActive-DSDPVSW4.mjs","sourcesContent":["\"use client\";\r\n\r\nimport Image from \"next/image\";\r\nimport IMAGES from \"../../../images/importImages\";\r\nimport { useEffect } from \"react\";\r\nimport { useAppDispatch } from \"../../../helpers/redux/hooks\";\r\nimport { setIsLoading } from \"../../../helpers/redux/slices/controllerSlice\";\r\n\r\nconst NotActive = () => {\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(setIsLoading(false));\r\n }, [dispatch]);\r\n\r\n return (\r\n <div className={`pl-w-full pl-h-full pl-rounded-2xl pl-flex pl-flex-col pl-justify-center pl-select-none pl-pointer-events-none pl-items-center`}>\r\n <div className=\"pl-flex pl-justify-center\">\r\n <Image src={IMAGES.notFound} alt=\"\" width={120} height={70} />\r\n </div>\r\n <h1 className=\"pl-text-[12px] pl-font-medium pl-text-white pl-mt-4 pl-mb-2\">ویدیویی برای نمایش وجود نداره</h1>\r\n <p className=\"pl-text-[12px] pl-font-medium pl-text-white\">می‌تونید ویدیوهای مشابه با اون رو مشاهده کنید.</p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default NotActive;\r\n"]}
package/package.json CHANGED
@@ -1,51 +1,52 @@
1
- {
2
- "name": "cafe-video-player",
3
- "version": "3.0.12",
4
- "private": false,
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.cjs",
7
- "types": "./dist/index.d.ts",
8
- "scripts": {
9
- "dev": "next dev",
10
- "dev:https": "next dev --experimental-https",
11
- "build": "next build",
12
- "start": "next start",
13
- "lint": "eslint . --ext .ts,.tsx,.js,.jsx",
14
- "tailwind-build": "npx tailwindcss -i ./src/app/globals.css -o ./dist/videoPlayerStyles.css",
15
- "copy-assets": "@powershell copy package.json ./dist && @powershell copy README.md ./dist && copyfiles -f ./src/videoPlayerLibrary/styles/font/*.woff2 ./dist/font",
16
- "tsup-publish": "rimraf dist && tsup && npm run copy-assets && npm run tailwind-build && npm publish ./dist",
17
- "tsup-publish-dev": "rimraf dist && tsup && npm run copy-assets && npm run tailwind-build && npm pack"
18
- },
19
- "peerDependencies": {
20
- "next": "^15.0.0",
21
- "react": "^19.0.0",
22
- "react-dom": "^19.0.0"
23
- },
24
- "dependencies": {
25
- "@reduxjs/toolkit": "^2.2.3",
26
- "animate.css": "^4.1.1",
27
- "axios": "^1.13.6",
28
- "hls.js": "^1.5.8",
29
- "react-circular-progressbar": "^2.2.0",
30
- "react-redux": "^9.1.1",
31
- "tailwind-merge": "^3.4.0",
32
- "tailwindcss-safe-area": "^0.8.0",
33
- "use-double-tap": "^1.3.6"
34
- },
35
- "devDependencies": {
36
- "@types/node": "^20",
37
- "@types/react": "^19.0.10",
38
- "@types/react-dom": "^19.0.4",
39
- "copyfiles": "^2.4.1",
40
- "eslint": "^8",
41
- "eslint-config-next": "^15.5.7",
42
- "next": "^15.0.0",
43
- "postcss": "^8",
44
- "react": "^19.0.0",
45
- "react-dom": "^19.0.0",
46
- "rimraf": "^6.1.3",
47
- "tailwindcss": "^3.4.1",
48
- "tsup": "^8.0.2",
49
- "typescript": "^5"
50
- }
51
- }
1
+ {
2
+ "name": "cafe-video-player",
3
+ "version": "3.0.13",
4
+ "private": false,
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.cjs",
7
+ "types": "./dist/index.d.ts",
8
+ "scripts": {
9
+ "dev": "next dev",
10
+ "dev:https": "next dev --experimental-https",
11
+ "build": "next build",
12
+ "start": "next start",
13
+ "lint": "eslint . --ext .ts,.tsx,.js,.jsx",
14
+ "tailwind-build": "npx tailwindcss -i ./src/app/globals.css -o ./dist/videoPlayerStyles.css",
15
+ "copy-assets": "@powershell copy package.json ./dist && @powershell copy README.md ./dist && copyfiles -f ./src/videoPlayerLibrary/styles/font/*.woff2 ./dist/font",
16
+ "tsup-build": "rimraf dist && tsup && npm run copy-assets && npm run tailwind-build",
17
+ "tsup-publish": "npm run tsup-build && npm publish ./dist",
18
+ "tsup-publish:dev": "npm run tsup-build && npm pack ./dist"
19
+ },
20
+ "peerDependencies": {
21
+ "next": "^14.0.0 || ^15.0.0 || ^16.0.0",
22
+ "react": "^18.0.0 || ^19.0.0",
23
+ "react-dom": "^18.0.0 || ^19.0.0"
24
+ },
25
+ "dependencies": {
26
+ "@reduxjs/toolkit": "^2.0.0",
27
+ "animate.css": "^4.1.1",
28
+ "axios": "^1.13.6",
29
+ "hls.js": "^1.6.16",
30
+ "react-circular-progressbar": "^2.2.0",
31
+ "react-redux": "^9.0.0",
32
+ "tailwind-merge": "^3.4.0",
33
+ "tailwindcss-safe-area": "^0.8.0",
34
+ "use-double-tap": "^1.3.6"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20",
38
+ "@types/react": "^19.0.10",
39
+ "@types/react-dom": "^19.0.4",
40
+ "copyfiles": "^2.4.1",
41
+ "eslint": "^8",
42
+ "eslint-config-next": "^15.5.7",
43
+ "next": "^15.0.0",
44
+ "postcss": "^8",
45
+ "react": "^19.0.0",
46
+ "react-dom": "^19.0.0",
47
+ "rimraf": "^6.1.3",
48
+ "tailwindcss": "^3.4.1",
49
+ "tsup": "^8.0.2",
50
+ "typescript": "^5"
51
+ }
52
+ }
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-SKRDEKL2.mjs';import'./chunk-GYUGYOVP.mjs';import'./chunk-Y7BIYTQP.mjs';import'./chunk-WU4GN63P.mjs';import'./chunk-2DV7FRU5.mjs';import'./chunk-XKRBXZUB.mjs';import'./chunk-CCO6GDG2.mjs';import {t}from'./chunk-BC4366GN.mjs';import {e}from'./chunk-4QMWBTB5.mjs';import {jsx}from'react/jsx-runtime';e();var l=()=>jsx("div",{className:`pl-w-full pl-aspect-video ${!t("isTouchScreen")&&!t("isFullScreen")&&"!pl-rounded-[12px]"}`,children:jsx(a,{})}),m=l;export{m as default};//# sourceMappingURL=staticPlayer-2IO6XEKM.mjs.map
2
+ //# sourceMappingURL=staticPlayer-2IO6XEKM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/videoPlayer/staticPlayer/staticPlayer.tsx"],"names":["init_esm_shims","StaticPlayer","jsx","conditions","videoArea_default","staticPlayer_default"],"mappings":"iUAAAA,CAAAA,EAAAA,CAMA,IAAMC,CAAAA,CAAe,IAEjBC,GAAAA,CAAC,KAAA,CAAA,CACC,SAAA,CAAW,CAAA,0BAAA,EACT,CAACC,CAAAA,CAAAA,eAAsC,GACvC,CAACA,CAAAA,CAAAA,cAAqC,CAAA,EACtC,oBACF,CAAA,CAAA,CAEA,QAAA,CAAAD,IAACE,CAAAA,CAAA,EAAU,CAAA,CACb,CAAA,CAIGC,CAAAA,CAAQJ","file":"staticPlayer-2IO6XEKM.mjs","sourcesContent":["\"use client\";\n\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport VideoArea from \"../../custom-components/videoArea/videoArea\";\n\nconst StaticPlayer = () => {\n return (\n <div\n className={`pl-w-full pl-aspect-video ${\n !conditions(ConditionName.isTouchScreen) &&\n !conditions(ConditionName.isFullScreen) &&\n \"!pl-rounded-[12px]\"\n }`}\n >\n <VideoArea />\n </div>\n );\n};\n\nexport default StaticPlayer;\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkWFHA2FPC_js=require('./chunk-WFHA2FPC.js');require('./chunk-IBV5SFIT.js'),require('./chunk-ZSSCZTW3.js'),require('./chunk-OGCKLRYP.js'),require('./chunk-AK5TFAW3.js'),require('./chunk-COYFW7R4.js'),require('./chunk-BFE2RKVK.js');var chunkU3VFRU6R_js=require('./chunk-U3VFRU6R.js'),chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),jsxRuntime=require('react/jsx-runtime');chunkAN6JAJSI_js.e();var l=()=>jsxRuntime.jsx("div",{className:`pl-w-full pl-aspect-video ${!chunkU3VFRU6R_js.t("isTouchScreen")&&!chunkU3VFRU6R_js.t("isFullScreen")&&"!pl-rounded-[12px]"}`,children:jsxRuntime.jsx(chunkWFHA2FPC_js.a,{})}),a=l;module.exports=a;//# sourceMappingURL=staticPlayer-TNS4JFRP.js.map
2
+ //# sourceMappingURL=staticPlayer-TNS4JFRP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/videoPlayer/staticPlayer/staticPlayer.tsx"],"names":["init_cjs_shims","StaticPlayer","jsx","conditions","videoArea_default","staticPlayer_default"],"mappings":"uYAAAA,kBAAAA,EAAAA,CAMA,IAAMC,CAAAA,CAAe,IAEjBC,cAAAA,CAAC,KAAA,CAAA,CACC,SAAA,CAAW,CAAA,0BAAA,EACT,CAACC,kBAAAA,CAAAA,eAAsC,GACvC,CAACA,kBAAAA,CAAAA,cAAqC,CAAA,EACtC,oBACF,CAAA,CAAA,CAEA,QAAA,CAAAD,eAACE,kBAAAA,CAAA,EAAU,CAAA,CACb,CAAA,CAIGC,CAAAA,CAAQJ","file":"staticPlayer-TNS4JFRP.js","sourcesContent":["\"use client\";\n\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport VideoArea from \"../../custom-components/videoArea/videoArea\";\n\nconst StaticPlayer = () => {\n return (\n <div\n className={`pl-w-full pl-aspect-video ${\n !conditions(ConditionName.isTouchScreen) &&\n !conditions(ConditionName.isFullScreen) &&\n \"!pl-rounded-[12px]\"\n }`}\n >\n <VideoArea />\n </div>\n );\n};\n\nexport default StaticPlayer;\n"]}
@@ -0,0 +1,2 @@
1
+ import {a,c,b as b$1,d}from'./chunk-4XKL6TLO.mjs';import {y,B,v,a as a$1,x,w,A as A$1,z as z$1}from'./chunk-73KLK4QU.mjs';import'./chunk-CCO6GDG2.mjs';import {qa,t,b,xa,c as c$1}from'./chunk-BC4366GN.mjs';import {e,z,A}from'./chunk-4QMWBTB5.mjs';import {useRef,useEffect}from'react';import {shallowEqual}from'react-redux';import I from'next/image';import {jsxs,jsx}from'react/jsx-runtime';e();var $=()=>{let c$2=z(),{params:t$1}=A(({videoData:{params:e}})=>({params:e}),shallowEqual);A(({controller:{firstPlay:e}})=>({firstPlay:e}),shallowEqual);let m=useRef(0),u=useRef(0),p=useRef(null),F=useRef(null),r=useRef(null);return useEffect(()=>{let e=r.current;if(!e)return;let n=()=>A$1(F,e),a=()=>z$1();return e.addEventListener("loadeddata",n),e.addEventListener("canplay",a),e.readyState>=2&&n(),e.readyState>=3&&a(),()=>{e.removeEventListener("loadeddata",n),e.removeEventListener("canplay",a);}},[]),useEffect(()=>{qa(m),u.current=Date.now();},[]),useEffect(()=>{let e=()=>{let n=r.current?.getBoundingClientRect();n&&c$2(c$1(n));};return t("isFirstPlay")&&e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[t$1.id]),a(),useEffect(()=>{let e=r.current;if(!t$1.vhl_mainVideoSrc||!e)return;c$2(b({...t$1,id:t$1.vhl_mainVideoSrc}));let n=e.currentTime,a=()=>{e.currentTime=n,e.play().catch(()=>{e.muted=true,e.play();}),e.removeEventListener("canplay",a);};return e.addEventListener("canplay",a),e.src=t$1.vhl_mainVideoSrc+`?date=${Date.now()}`,e.load(),xa(e),()=>{e.removeEventListener("canplay",a);}},[t$1.vhl_mainVideoSrc]),c(),b$1(),d(),jsxs("div",{style:{position:"relative",width:"100%",height:"100%"},children:[t$1.banner&&jsx(I,{fill:true,src:t$1.banner,alt:t$1.bannerAlt??"\u0628\u0646\u0631 \u0648\u06CC\u062F\u06CC\u0648 \u067E\u0644\u06CC\u0631",style:{objectFit:"cover",pointerEvents:"none"}}),jsx("video",{playsInline:true,ref:r,id:"player-tag",preload:"metadata",crossOrigin:"anonymous",poster:t$1.banner??void 0,style:{width:"100%",height:"100%"},autoPlay:!!t("hasAutoPlay")||!!t$1.advertisement,className:`pl-w-full pl-h-full pl-items-center pl-flex-1 ${!t("isTouchScreen")&&!t("isFullScreen")&&"!pl-rounded-[12px]"}`,onError:a$1,onPause:v,onEnded:B,onTimeUpdate:y,onPlay:e=>w(e,p),onPlaying:e=>x(m,u,p,e.currentTarget),children:jsx("source",{src:t$1.id+`?date=${Date.now()}`})})]})},Z=$;export{Z as default};//# sourceMappingURL=staticVideoTag-2YYZBRPY.mjs.map
2
+ //# sourceMappingURL=staticVideoTag-2YYZBRPY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoTag/staticVideoTag.tsx"],"names":["init_esm_shims","StaticVideoTag","dispatch","useAppDispatch","params","useAppSelector","shallowEqual","firstPlay","loadingDurationRef","useRef","initialWaitingRef","timerRef","intervalRef","videoRef","useEffect","video","onLoadedData","handleStaticVideoLoadedData","onCanPlay","handleStaticVideoCanPlay","handlePageLoadTime","handleResize","element","setVideoElementSizeInfo","conditions","useJumpToCurrentTime_default","setPlayerParams","currentTime","handleCanPlay","setupAutoplayBehavior","useAppendSubtitle_default","useHideSubtitle_default","useActiveSubtitleAutomatic_default","jsxs","jsx","Image","handleVideoError","handleStaticVideoPause","handleStaticVideoEnded","handleStaticVideoTimeUpdate","handleStaticVideoPlay","handleStaticVideoPlaying","staticVideoTag_default"],"mappings":"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","file":"staticVideoTag-2YYZBRPY.mjs","sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { handlePageLoadTime, setupAutoplayBehavior } from \"../../../helpers/helpers\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\nimport { setPlayerParams, setVideoElementSizeInfo } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport {\r\n handleStaticVideoCanPlay,\r\n handleStaticVideoEnded,\r\n handleStaticVideoLoadedData,\r\n handleStaticVideoPause,\r\n handleStaticVideoPlay,\r\n handleStaticVideoPlaying,\r\n handleStaticVideoTimeUpdate,\r\n handleVideoError,\r\n} from \"../../../helpers/redux/actions/playerCore.actions\";\r\nimport useJumpToCurrentTime from \"../../../helpers/hooks/useJumpToCurrentTime\";\r\nimport useHideSubtitle from \"../../../helpers/hooks/useHideSubtitle\";\r\nimport Image from \"next/image\";\r\nimport useAppendSubtitle from \"../../../helpers/hooks/useAppendSubtitle\";\r\nimport useActiveSubtitleAutomatic from \"../../../helpers/hooks/useActiveSubtitleAutomatic\";\r\n\r\nconst StaticVideoTag = () => {\r\n const dispatch = useAppDispatch();\r\n const { params } = useAppSelector(({ videoData: { params } }) => ({ params }), shallowEqual);\r\n useAppSelector(({ controller: { firstPlay } }) => ({ firstPlay }), shallowEqual);\r\n\r\n const loadingDurationRef = useRef<any>(0);\r\n const initialWaitingRef = useRef<any>(0);\r\n const timerRef = useRef<any>(null);\r\n const intervalRef = useRef<any>(null);\r\n const videoRef = useRef<HTMLVideoElement | null>(null);\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n if (!video) return;\r\n\r\n const onLoadedData = () => handleStaticVideoLoadedData(intervalRef, video);\r\n const onCanPlay = () => handleStaticVideoCanPlay();\r\n\r\n video.addEventListener(\"loadeddata\", onLoadedData);\r\n video.addEventListener(\"canplay\", onCanPlay);\r\n\r\n if (video.readyState >= 2) onLoadedData();\r\n if (video.readyState >= 3) onCanPlay();\r\n\r\n return () => {\r\n video.removeEventListener(\"loadeddata\", onLoadedData);\r\n video.removeEventListener(\"canplay\", onCanPlay);\r\n };\r\n }, []);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n handlePageLoadTime(loadingDurationRef);\r\n initialWaitingRef.current = Date.now();\r\n }, []);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const element: any = videoRef.current?.getBoundingClientRect();\r\n if (element) dispatch(setVideoElementSizeInfo(element));\r\n };\r\n\r\n if (conditions(ConditionName.isFirstPlay)) handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [params.id]);\r\n\r\n useJumpToCurrentTime();\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n\r\n if (!params.vhl_mainVideoSrc || !video) return;\r\n\r\n dispatch(setPlayerParams({ ...params, id: params.vhl_mainVideoSrc }));\r\n const currentTime = video.currentTime;\r\n\r\n const handleCanPlay = () => {\r\n video.currentTime = currentTime;\r\n video.play().catch(() => {\r\n video.muted = true;\r\n video.play();\r\n });\r\n video.removeEventListener(\"canplay\", handleCanPlay);\r\n };\r\n\r\n video.addEventListener(\"canplay\", handleCanPlay);\r\n\r\n video.src = params.vhl_mainVideoSrc + `?date=${Date.now()}`;\r\n video.load();\r\n\r\n setupAutoplayBehavior(video);\r\n\r\n return () => {\r\n video.removeEventListener(\"canplay\", handleCanPlay);\r\n };\r\n }, [params.vhl_mainVideoSrc]);\r\n\r\n useAppendSubtitle();\r\n useHideSubtitle();\r\n useActiveSubtitleAutomatic();\r\n\r\n return (\r\n <div style={{ position: \"relative\", width: \"100%\", height: \"100%\" }}>\r\n {params.banner && (\r\n <Image fill src={params.banner} alt={params.bannerAlt ?? \"بنر ویدیو پلیر\"} style={{ objectFit: \"cover\", pointerEvents: \"none\" }} />\r\n )}\r\n\r\n <video\r\n playsInline\r\n ref={videoRef}\r\n id=\"player-tag\"\r\n preload=\"metadata\"\r\n crossOrigin=\"anonymous\"\r\n poster={params.banner ?? undefined}\r\n style={{ width: \"100%\", height: \"100%\" }}\r\n autoPlay={!!conditions(ConditionName.hasAutoPlay) || !!params.advertisement}\r\n className={`pl-w-full pl-h-full pl-items-center pl-flex-1 ${\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\r\n }`}\r\n onError={handleVideoError}\r\n onPause={handleStaticVideoPause}\r\n onEnded={handleStaticVideoEnded}\r\n onTimeUpdate={handleStaticVideoTimeUpdate}\r\n onPlay={(e) => handleStaticVideoPlay(e, timerRef)}\r\n onPlaying={(e) => handleStaticVideoPlaying(loadingDurationRef, initialWaitingRef, timerRef, e.currentTarget)}\r\n >\r\n <source src={params.id + `?date=${Date.now()}`} />\r\n </video>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StaticVideoTag;\r\n"]}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkQM3W7EYS_js=require('./chunk-QM3W7EYS.js'),chunkDJ6KVZRK_js=require('./chunk-DJ6KVZRK.js');require('./chunk-BFE2RKVK.js');var chunkU3VFRU6R_js=require('./chunk-U3VFRU6R.js'),chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),react=require('react'),reactRedux=require('react-redux'),I=require('next/image'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var I__default=/*#__PURE__*/_interopDefault(I);chunkAN6JAJSI_js.e();var $=()=>{let c=chunkAN6JAJSI_js.z(),{params:t}=chunkAN6JAJSI_js.A(({videoData:{params:e}})=>({params:e}),reactRedux.shallowEqual);chunkAN6JAJSI_js.A(({controller:{firstPlay:e}})=>({firstPlay:e}),reactRedux.shallowEqual);let m=react.useRef(0),u=react.useRef(0),p=react.useRef(null),F=react.useRef(null),r=react.useRef(null);return react.useEffect(()=>{let e=r.current;if(!e)return;let n=()=>chunkDJ6KVZRK_js.A(F,e),a=()=>chunkDJ6KVZRK_js.z();return e.addEventListener("loadeddata",n),e.addEventListener("canplay",a),e.readyState>=2&&n(),e.readyState>=3&&a(),()=>{e.removeEventListener("loadeddata",n),e.removeEventListener("canplay",a);}},[]),react.useEffect(()=>{chunkU3VFRU6R_js.qa(m),u.current=Date.now();},[]),react.useEffect(()=>{let e=()=>{let n=r.current?.getBoundingClientRect();n&&c(chunkU3VFRU6R_js.c(n));};return chunkU3VFRU6R_js.t("isFirstPlay")&&e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[t.id]),chunkQM3W7EYS_js.a(),react.useEffect(()=>{let e=r.current;if(!t.vhl_mainVideoSrc||!e)return;c(chunkU3VFRU6R_js.b({...t,id:t.vhl_mainVideoSrc}));let n=e.currentTime,a=()=>{e.currentTime=n,e.play().catch(()=>{e.muted=true,e.play();}),e.removeEventListener("canplay",a);};return e.addEventListener("canplay",a),e.src=t.vhl_mainVideoSrc+`?date=${Date.now()}`,e.load(),chunkU3VFRU6R_js.xa(e),()=>{e.removeEventListener("canplay",a);}},[t.vhl_mainVideoSrc]),chunkQM3W7EYS_js.c(),chunkQM3W7EYS_js.b(),chunkQM3W7EYS_js.d(),jsxRuntime.jsxs("div",{style:{position:"relative",width:"100%",height:"100%"},children:[t.banner&&jsxRuntime.jsx(I__default.default,{fill:true,src:t.banner,alt:t.bannerAlt??"\u0628\u0646\u0631 \u0648\u06CC\u062F\u06CC\u0648 \u067E\u0644\u06CC\u0631",style:{objectFit:"cover",pointerEvents:"none"}}),jsxRuntime.jsx("video",{playsInline:true,ref:r,id:"player-tag",preload:"metadata",crossOrigin:"anonymous",poster:t.banner??void 0,style:{width:"100%",height:"100%"},autoPlay:!!chunkU3VFRU6R_js.t("hasAutoPlay")||!!t.advertisement,className:`pl-w-full pl-h-full pl-items-center pl-flex-1 ${!chunkU3VFRU6R_js.t("isTouchScreen")&&!chunkU3VFRU6R_js.t("isFullScreen")&&"!pl-rounded-[12px]"}`,onError:chunkDJ6KVZRK_js.a,onPause:chunkDJ6KVZRK_js.v,onEnded:chunkDJ6KVZRK_js.B,onTimeUpdate:chunkDJ6KVZRK_js.y,onPlay:e=>chunkDJ6KVZRK_js.w(e,p),onPlaying:e=>chunkDJ6KVZRK_js.x(m,u,p,e.currentTarget),children:jsxRuntime.jsx("source",{src:t.id+`?date=${Date.now()}`})})]})},Y=$;module.exports=Y;//# sourceMappingURL=staticVideoTag-VLNCYNKV.js.map
2
+ //# sourceMappingURL=staticVideoTag-VLNCYNKV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/custom-components/videoTag/staticVideoTag.tsx"],"names":["init_cjs_shims","StaticVideoTag","dispatch","useAppDispatch","params","useAppSelector","shallowEqual","firstPlay","loadingDurationRef","useRef","initialWaitingRef","timerRef","intervalRef","videoRef","useEffect","video","onLoadedData","handleStaticVideoLoadedData","onCanPlay","handleStaticVideoCanPlay","handlePageLoadTime","handleResize","element","setVideoElementSizeInfo","conditions","useJumpToCurrentTime_default","setPlayerParams","currentTime","handleCanPlay","setupAutoplayBehavior","useAppendSubtitle_default","useHideSubtitle_default","useActiveSubtitleAutomatic_default","jsxs","jsx","Image","handleVideoError","handleStaticVideoPause","handleStaticVideoEnded","handleStaticVideoTimeUpdate","handleStaticVideoPlay","handleStaticVideoPlaying","staticVideoTag_default"],"mappings":"6dAAAA,kBAAAA,EAAAA,CA0BA,IAAMC,CAAAA,CAAiB,IAAM,CAC3B,IAAMC,EAAWC,kBAAAA,EAAe,CAC1B,CAAE,MAAA,CAAAC,CAAO,EAAIC,kBAAAA,CAAe,CAAC,CAAE,SAAA,CAAW,CAAE,MAAA,CAAAD,CAAO,CAAE,CAAA,IAAO,CAAE,MAAA,CAAAA,CAAO,GAAIE,uBAAY,CAAA,CAC3FD,kBAAAA,CAAe,CAAC,CAAE,UAAA,CAAY,CAAE,SAAA,CAAAE,CAAU,CAAE,CAAA,IAAO,CAAE,UAAAA,CAAU,CAAA,CAAA,CAAID,uBAAY,CAAA,CAE/E,IAAME,CAAAA,CAAqBC,aAAY,CAAC,CAAA,CAClCC,EAAoBD,YAAAA,CAAY,CAAC,EACjCE,CAAAA,CAAWF,YAAAA,CAAY,IAAI,CAAA,CAC3BG,CAAAA,CAAcH,YAAAA,CAAY,IAAI,CAAA,CAC9BI,CAAAA,CAAWJ,aAAgC,IAAI,CAAA,CAErD,OAAAK,eAAAA,CAAU,IAAM,CACd,IAAMC,CAAAA,CAAQF,CAAAA,CAAS,QACvB,GAAI,CAACE,EAAO,OAEZ,IAAMC,EAAe,IAAMC,kBAAAA,CAA4BL,CAAAA,CAAaG,CAAK,CAAA,CACnEG,CAAAA,CAAY,IAAMC,kBAAAA,EAAyB,CAEjD,OAAAJ,CAAAA,CAAM,gBAAA,CAAiB,aAAcC,CAAY,CAAA,CACjDD,CAAAA,CAAM,gBAAA,CAAiB,SAAA,CAAWG,CAAS,EAEvCH,CAAAA,CAAM,UAAA,EAAc,GAAGC,CAAAA,EAAa,CACpCD,EAAM,UAAA,EAAc,CAAA,EAAGG,CAAAA,EAAU,CAE9B,IAAM,CACXH,EAAM,mBAAA,CAAoB,YAAA,CAAcC,CAAY,CAAA,CACpDD,CAAAA,CAAM,oBAAoB,SAAA,CAAWG,CAAS,EAChD,CACF,CAAA,CAAG,EAAE,CAAA,CAGLJ,eAAAA,CAAU,IAAM,CACdM,mBAAAA,CAAmBZ,CAAkB,CAAA,CACrCE,CAAAA,CAAkB,OAAA,CAAU,IAAA,CAAK,GAAA,GACnC,EAAG,EAAE,EAGLI,eAAAA,CAAU,IAAM,CACd,IAAMO,CAAAA,CAAe,IAAM,CACzB,IAAMC,CAAAA,CAAeT,EAAS,OAAA,EAAS,qBAAA,GACnCS,CAAAA,EAASpB,CAAAA,CAASqB,mBAAwBD,CAAO,CAAC,EACxD,CAAA,CAEA,OAAIE,kBAAAA,CAAAA,aAAoC,GAAGH,CAAAA,EAAa,CACxD,OAAO,gBAAA,CAAiB,QAAA,CAAUA,CAAY,CAAA,CACvC,IAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAUA,CAAY,CAChE,CAAA,CAAG,CAACjB,EAAO,EAAE,CAAC,EAEdqB,kBAAAA,EAAqB,CAErBX,eAAAA,CAAU,IAAM,CACd,IAAMC,EAAQF,CAAAA,CAAS,OAAA,CAEvB,GAAI,CAACT,CAAAA,CAAO,kBAAoB,CAACW,CAAAA,CAAO,OAExCb,CAAAA,CAASwB,kBAAAA,CAAgB,CAAE,GAAGtB,CAAAA,CAAQ,EAAA,CAAIA,EAAO,gBAAiB,CAAC,CAAC,CAAA,CACpE,IAAMuB,CAAAA,CAAcZ,CAAAA,CAAM,WAAA,CAEpBa,CAAAA,CAAgB,IAAM,CAC1Bb,CAAAA,CAAM,YAAcY,CAAAA,CACpBZ,CAAAA,CAAM,MAAK,CAAE,KAAA,CAAM,IAAM,CACvBA,CAAAA,CAAM,KAAA,CAAQ,KACdA,CAAAA,CAAM,IAAA,GACR,CAAC,CAAA,CACDA,EAAM,mBAAA,CAAoB,SAAA,CAAWa,CAAa,EACpD,CAAA,CAEA,OAAAb,EAAM,gBAAA,CAAiB,SAAA,CAAWa,CAAa,CAAA,CAE/Cb,CAAAA,CAAM,IAAMX,CAAAA,CAAO,gBAAA,CAAmB,CAAA,MAAA,EAAS,IAAA,CAAK,GAAA,EAAK,GACzDW,CAAAA,CAAM,IAAA,GAENc,mBAAAA,CAAsBd,CAAK,EAEpB,IAAM,CACXA,CAAAA,CAAM,mBAAA,CAAoB,SAAA,CAAWa,CAAa,EACpD,CACF,CAAA,CAAG,CAACxB,CAAAA,CAAO,gBAAgB,CAAC,CAAA,CAE5B0B,kBAAAA,EAAkB,CAClBC,kBAAAA,EAAgB,CAChBC,kBAAAA,GAGEC,eAAAA,CAAC,KAAA,CAAA,CAAI,MAAO,CAAE,QAAA,CAAU,WAAY,KAAA,CAAO,MAAA,CAAQ,MAAA,CAAQ,MAAO,CAAA,CAC/D,QAAA,CAAA,CAAA7B,EAAO,MAAA,EACN8B,cAAAA,CAACC,mBAAA,CAAM,IAAA,CAAI,KAAC,GAAA,CAAK/B,CAAAA,CAAO,MAAA,CAAQ,GAAA,CAAKA,CAAAA,CAAO,SAAA,EAAa,6EAAkB,KAAA,CAAO,CAAE,UAAW,OAAA,CAAS,aAAA,CAAe,MAAO,CAAA,CAAG,CAAA,CAGnI8B,cAAAA,CAAC,OAAA,CAAA,CACC,WAAA,CAAW,IAAA,CACX,IAAKrB,CAAAA,CACL,EAAA,CAAG,aACH,OAAA,CAAQ,UAAA,CACR,YAAY,WAAA,CACZ,MAAA,CAAQT,CAAAA,CAAO,MAAA,EAAU,MAAA,CACzB,KAAA,CAAO,CAAE,KAAA,CAAO,MAAA,CAAQ,OAAQ,MAAO,CAAA,CACvC,SAAU,CAAC,CAACoB,kBAAAA,CAAAA,aAAoC,CAAA,EAAK,CAAC,CAACpB,EAAO,aAAA,CAC9D,SAAA,CAAW,iDACT,CAACoB,kBAAAA,CAAAA,eAAsC,GAAK,CAACA,kBAAAA,CAAAA,cAAqC,CAAA,EAAK,oBACzF,CAAA,CAAA,CACA,OAAA,CAASY,mBACT,OAAA,CAASC,kBAAAA,CACT,QAASC,kBAAAA,CACT,YAAA,CAAcC,mBACd,MAAA,CAAS,CAAA,EAAMC,kBAAAA,CAAsB,CAAA,CAAG7B,CAAQ,CAAA,CAChD,UAAY,CAAA,EAAM8B,kBAAAA,CAAyBjC,EAAoBE,CAAAA,CAAmBC,CAAAA,CAAU,EAAE,aAAa,CAAA,CAE3G,QAAA,CAAAuB,cAAAA,CAAC,QAAA,CAAA,CAAO,GAAA,CAAK9B,EAAO,EAAA,CAAK,CAAA,MAAA,EAAS,KAAK,GAAA,EAAK,GAAI,CAAA,CAClD,CAAA,CAAA,CACF,CAEJ,CAAA,CAEOsC,CAAAA,CAAQzC","file":"staticVideoTag-VLNCYNKV.js","sourcesContent":["\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\nimport { shallowEqual } from \"react-redux\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../helpers/redux/hooks\";\r\nimport { handlePageLoadTime, setupAutoplayBehavior } from \"../../../helpers/helpers\";\r\nimport { mainPlayerVideoTag } from \"../../../helpers/constants\";\r\nimport { setPlayerParams, setVideoElementSizeInfo } from \"../../../helpers/redux/slices/videoDataSlice\";\r\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\r\nimport { conditions } from \"../../../helpers/conditions/conditions\";\r\nimport {\r\n handleStaticVideoCanPlay,\r\n handleStaticVideoEnded,\r\n handleStaticVideoLoadedData,\r\n handleStaticVideoPause,\r\n handleStaticVideoPlay,\r\n handleStaticVideoPlaying,\r\n handleStaticVideoTimeUpdate,\r\n handleVideoError,\r\n} from \"../../../helpers/redux/actions/playerCore.actions\";\r\nimport useJumpToCurrentTime from \"../../../helpers/hooks/useJumpToCurrentTime\";\r\nimport useHideSubtitle from \"../../../helpers/hooks/useHideSubtitle\";\r\nimport Image from \"next/image\";\r\nimport useAppendSubtitle from \"../../../helpers/hooks/useAppendSubtitle\";\r\nimport useActiveSubtitleAutomatic from \"../../../helpers/hooks/useActiveSubtitleAutomatic\";\r\n\r\nconst StaticVideoTag = () => {\r\n const dispatch = useAppDispatch();\r\n const { params } = useAppSelector(({ videoData: { params } }) => ({ params }), shallowEqual);\r\n useAppSelector(({ controller: { firstPlay } }) => ({ firstPlay }), shallowEqual);\r\n\r\n const loadingDurationRef = useRef<any>(0);\r\n const initialWaitingRef = useRef<any>(0);\r\n const timerRef = useRef<any>(null);\r\n const intervalRef = useRef<any>(null);\r\n const videoRef = useRef<HTMLVideoElement | null>(null);\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n if (!video) return;\r\n\r\n const onLoadedData = () => handleStaticVideoLoadedData(intervalRef, video);\r\n const onCanPlay = () => handleStaticVideoCanPlay();\r\n\r\n video.addEventListener(\"loadeddata\", onLoadedData);\r\n video.addEventListener(\"canplay\", onCanPlay);\r\n\r\n if (video.readyState >= 2) onLoadedData();\r\n if (video.readyState >= 3) onCanPlay();\r\n\r\n return () => {\r\n video.removeEventListener(\"loadeddata\", onLoadedData);\r\n video.removeEventListener(\"canplay\", onCanPlay);\r\n };\r\n }, []);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n handlePageLoadTime(loadingDurationRef);\r\n initialWaitingRef.current = Date.now();\r\n }, []);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n const handleResize = () => {\r\n const element: any = videoRef.current?.getBoundingClientRect();\r\n if (element) dispatch(setVideoElementSizeInfo(element));\r\n };\r\n\r\n if (conditions(ConditionName.isFirstPlay)) handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [params.id]);\r\n\r\n useJumpToCurrentTime();\r\n\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n\r\n if (!params.vhl_mainVideoSrc || !video) return;\r\n\r\n dispatch(setPlayerParams({ ...params, id: params.vhl_mainVideoSrc }));\r\n const currentTime = video.currentTime;\r\n\r\n const handleCanPlay = () => {\r\n video.currentTime = currentTime;\r\n video.play().catch(() => {\r\n video.muted = true;\r\n video.play();\r\n });\r\n video.removeEventListener(\"canplay\", handleCanPlay);\r\n };\r\n\r\n video.addEventListener(\"canplay\", handleCanPlay);\r\n\r\n video.src = params.vhl_mainVideoSrc + `?date=${Date.now()}`;\r\n video.load();\r\n\r\n setupAutoplayBehavior(video);\r\n\r\n return () => {\r\n video.removeEventListener(\"canplay\", handleCanPlay);\r\n };\r\n }, [params.vhl_mainVideoSrc]);\r\n\r\n useAppendSubtitle();\r\n useHideSubtitle();\r\n useActiveSubtitleAutomatic();\r\n\r\n return (\r\n <div style={{ position: \"relative\", width: \"100%\", height: \"100%\" }}>\r\n {params.banner && (\r\n <Image fill src={params.banner} alt={params.bannerAlt ?? \"بنر ویدیو پلیر\"} style={{ objectFit: \"cover\", pointerEvents: \"none\" }} />\r\n )}\r\n\r\n <video\r\n playsInline\r\n ref={videoRef}\r\n id=\"player-tag\"\r\n preload=\"metadata\"\r\n crossOrigin=\"anonymous\"\r\n poster={params.banner ?? undefined}\r\n style={{ width: \"100%\", height: \"100%\" }}\r\n autoPlay={!!conditions(ConditionName.hasAutoPlay) || !!params.advertisement}\r\n className={`pl-w-full pl-h-full pl-items-center pl-flex-1 ${\r\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\r\n }`}\r\n onError={handleVideoError}\r\n onPause={handleStaticVideoPause}\r\n onEnded={handleStaticVideoEnded}\r\n onTimeUpdate={handleStaticVideoTimeUpdate}\r\n onPlay={(e) => handleStaticVideoPlay(e, timerRef)}\r\n onPlaying={(e) => handleStaticVideoPlaying(loadingDurationRef, initialWaitingRef, timerRef, e.currentTarget)}\r\n >\r\n <source src={params.id + `?date=${Date.now()}`} />\r\n </video>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StaticVideoTag;\r\n"]}
@@ -0,0 +1,2 @@
1
+ export{a as default}from'./chunk-SKRDEKL2.mjs';import'./chunk-GYUGYOVP.mjs';import'./chunk-Y7BIYTQP.mjs';import'./chunk-WU4GN63P.mjs';import'./chunk-2DV7FRU5.mjs';import'./chunk-XKRBXZUB.mjs';import'./chunk-CCO6GDG2.mjs';import'./chunk-BC4366GN.mjs';import'./chunk-4QMWBTB5.mjs';//# sourceMappingURL=videoArea-2F2NDD76.mjs.map
2
+ //# sourceMappingURL=videoArea-2F2NDD76.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"videoArea-2F2NDD76.mjs"}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkWFHA2FPC_js=require('./chunk-WFHA2FPC.js');require('./chunk-IBV5SFIT.js'),require('./chunk-ZSSCZTW3.js'),require('./chunk-OGCKLRYP.js'),require('./chunk-AK5TFAW3.js'),require('./chunk-COYFW7R4.js'),require('./chunk-BFE2RKVK.js'),require('./chunk-U3VFRU6R.js'),require('./chunk-AN6JAJSI.js');module.exports=chunkWFHA2FPC_js.a;//# sourceMappingURL=videoArea-35ABV3CM.js.map
2
+ //# sourceMappingURL=videoArea-35ABV3CM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"videoArea-35ABV3CM.js"}
@@ -3531,10 +3531,6 @@ video {
3531
3531
  margin-top: 0.125rem;
3532
3532
  }
3533
3533
 
3534
- .pl-mt-1{
3535
- margin-top: 0.25rem;
3536
- }
3537
-
3538
3534
  .pl-mt-2{
3539
3535
  margin-top: 0.5rem;
3540
3536
  }
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkZWGZGWEB_js=require('./chunk-ZWGZGWEB.js'),chunkBFE2RKVK_js=require('./chunk-BFE2RKVK.js'),chunkU3VFRU6R_js=require('./chunk-U3VFRU6R.js'),chunkAN6JAJSI_js=require('./chunk-AN6JAJSI.js'),reactRedux=require('react-redux'),react=require('react'),c=require('next/dynamic'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var c__default=/*#__PURE__*/_interopDefault(c);chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();chunkAN6JAJSI_js.e();var h=()=>{let{params:m}=chunkAN6JAJSI_js.A(({videoData:{params:e}})=>({params:e}),reactRedux.shallowEqual);chunkAN6JAJSI_js.A(({controller:{isEnded:e}})=>({isEnded:e}),reactRedux.shallowEqual),react.useEffect(()=>{chunkU3VFRU6R_js.t("getDetails")&&chunkBFE2RKVK_js.a();},[m.id,m.type]);},d=h;var A=()=>{d();},f=A;var N=c__default.default(()=>import('./videoArea-35ABV3CM.js')),x=c__default.default(()=>import('./notActive-DRH5BEL5.js')),E=()=>{if(chunkAN6JAJSI_js.A(({videoData:{params:m,details:e,isFetchDetails:n,isValidAddress:u}})=>({params:m,details:e,isFetchDetails:n,isValidAddress:u}),reactRedux.shallowEqual),f(),react.useEffect(()=>{chunkZWGZGWEB_js.b();},[]),chunkU3VFRU6R_js.t("isFetchDetails"))return jsxRuntime.jsx(jsxRuntime.Fragment,{children:chunkU3VFRU6R_js.t("isValidAddress")?jsxRuntime.jsx("div",{className:`pl-max-h-[100dvh] pl-bg-dark-1 ${!chunkU3VFRU6R_js.t("isTouchScreen")&&!chunkU3VFRU6R_js.t("isFullScreen")&&"!pl-rounded-[12px]"}`,children:jsxRuntime.jsx(N,{})}):jsxRuntime.jsx("div",{className:"pl-w-full pl-aspect-video",children:jsxRuntime.jsx(x,{})})})},O=E;module.exports=O;//# sourceMappingURL=vodPlayer-337TYSU4.js.map
2
+ //# sourceMappingURL=vodPlayer-337TYSU4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/videoPlayer/vodPlayer/vodPlayer.tsx","../src/videoPlayerLibrary/helpers/hooks/useGetData/useGetData.tsx","../src/videoPlayerLibrary/helpers/hooks/useGetData/useGetDetails.tsx"],"names":["init_cjs_shims","useGetDetails","params","useAppSelector","shallowEqual","isEnded","useEffect","conditions","getVodDetails","useGetDetails_default","useGetData","useGetData_default","VideoArea","dynamic","NotActive","VodPlayer","details","isFetchDetails","isValidAddress","handleApplyContinuousPlayback","jsx","Fragment","vodPlayer_default"],"mappings":"4bAAAA,kBAAAA,EAAAA,CCAAA,qBCAAA,kBAAAA,EAAAA,CAOA,IAAMC,CAAAA,CAAgB,IAAM,CAC1B,GAAM,CAAE,MAAA,CAAAC,CAAO,EAAIC,kBAAAA,CAAe,CAAC,CAAE,SAAA,CAAW,CAAE,OAAAD,CAAO,CAAE,KAAO,CAAE,MAAA,CAAAA,CAAO,CAAA,CAAA,CAAIE,uBAAY,EAC3FD,kBAAAA,CAAe,CAAC,CAAE,UAAA,CAAY,CAAE,QAAAE,CAAQ,CAAE,KAAO,CAAE,OAAA,CAAAA,CAAQ,CAAA,CAAA,CAAID,uBAAY,EAE3EE,eAAAA,CAAU,IAAM,CACVC,kBAAAA,CAAAA,YAAmC,CAAA,EAAGC,qBAC5C,CAAA,CAAG,CAACN,CAAAA,CAAO,EAAA,CAAIA,EAAO,IAAI,CAAC,EAC7B,CAAA,CAEOO,CAAAA,CAAQR,EDbf,IAAMS,CAAAA,CAAa,IAAM,CACrBD,CAAAA,GAEJ,CAAA,CAEOE,CAAAA,CAAQD,EDGf,IAAME,CAAAA,CAAYC,mBAAQ,IAAM,OAAO,yBAA6C,CAAC,CAAA,CAC/EC,EAAYD,kBAAAA,CAAQ,IAAM,OAAO,yBAA6C,CAAC,EAE/EE,CAAAA,CAAY,IAAM,CAYtB,GAXAZ,kBAAAA,CACE,CAAC,CAAE,SAAA,CAAW,CAAE,MAAA,CAAAD,CAAAA,CAAQ,QAAAc,CAAAA,CAAS,cAAA,CAAAC,EAAgB,cAAA,CAAAC,CAAe,CAAE,CAAA,IAAO,CAAE,OAAAhB,CAAAA,CAAQ,OAAA,CAAAc,EAAS,cAAA,CAAAC,CAAAA,CAAgB,eAAAC,CAAe,CAAA,CAAA,CAC3Hd,uBACF,CAAA,CAEAO,CAAAA,GAEAL,eAAAA,CAAU,IAAM,CACda,kBAAAA,GACF,EAAG,EAAE,EAEDZ,kBAAAA,CAAAA,gBAAuC,CAAA,CACzC,OACEa,cAAAA,CAAAC,mBAAAA,CAAA,CACG,QAAA,CAAAd,kBAAAA,CAAAA,gBAAuC,EACtCa,cAAAA,CAAC,KAAA,CAAA,CACC,UAAW,CAAA,+BAAA,EACT,CAACb,kCAAsC,CAAA,EAAK,CAACA,iCAAqC,CAAA,EAAK,oBACzF,GAEA,QAAA,CAAAa,cAAAA,CAACR,EAAA,EAAU,CAAA,CACb,EAEAQ,cAAAA,CAAC,KAAA,CAAA,CAAI,UAAW,2BAAA,CACd,QAAA,CAAAA,eAACN,CAAAA,CAAA,EAAU,EACb,CAAA,CAEJ,CAEN,EAEOQ,CAAAA,CAAQP","file":"vodPlayer-337TYSU4.js","sourcesContent":["\"use client\";\n\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport useGetData from \"../../../helpers/hooks/useGetData/useGetData\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { handleApplyContinuousPlayback } from \"../../../helpers/redux/actions/user.actions\";\nimport dynamic from \"next/dynamic\";\nimport { useEffect } from \"react\";\n\nconst VideoArea = dynamic(() => import(\"../../custom-components/videoArea/videoArea\"));\nconst NotActive = dynamic(() => import(\"../../custom-components/notActive/notActive\"));\n\nconst VodPlayer = () => {\n useAppSelector(\n ({ videoData: { params, details, isFetchDetails, isValidAddress } }) => ({ params, details, isFetchDetails, isValidAddress }),\n shallowEqual,\n );\n\n useGetData();\n\n useEffect(() => {\n handleApplyContinuousPlayback();\n }, []);\n\n if (conditions(ConditionName.isFetchDetails))\n return (\n <>\n {conditions(ConditionName.isValidAddress) ? (\n <div\n className={`pl-max-h-[100dvh] pl-bg-dark-1 ${\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\n }`}\n >\n <VideoArea />\n </div>\n ) : (\n <div className={`pl-w-full pl-aspect-video`}>\n <NotActive />\n </div>\n )}\n </>\n );\n};\n\nexport default VodPlayer;\n","import useGetDetails from \"./useGetDetails\";\nimport useGetMarkers from \"./useGetMarkers\";\n\nconst useGetData = () => {\n useGetDetails();\n // useGetMarkers();\n};\n\nexport default useGetData;\n","import { useEffect } from \"react\";\nimport { conditions } from \"../../conditions/conditions\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../redux/hooks\";\nimport { ConditionName } from \"../../interfaces/enums\";\nimport { getVodDetails } from \"../../redux/actions/videoData.actions\";\n\nconst useGetDetails = () => {\n const { params } = useAppSelector(({ videoData: { params } }) => ({ params }), shallowEqual);\n useAppSelector(({ controller: { isEnded } }) => ({ isEnded }), shallowEqual);\n\n useEffect(() => {\n if (conditions(ConditionName.getDetails)) getVodDetails();\n }, [params.id, params.type]);\n};\n\nexport default useGetDetails;\n"]}
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-PKXJEXKI.mjs';import {a}from'./chunk-CCO6GDG2.mjs';import {t}from'./chunk-BC4366GN.mjs';import {e,A as A$1}from'./chunk-4QMWBTB5.mjs';import {shallowEqual}from'react-redux';import {useEffect}from'react';import n from'next/dynamic';import {jsx,Fragment}from'react/jsx-runtime';e();e();e();var A=()=>{let{params:m}=A$1(({videoData:{params:e}})=>({params:e}),shallowEqual);A$1(({controller:{isEnded:e}})=>({isEnded:e}),shallowEqual),useEffect(()=>{t("getDetails")&&a();},[m.id,m.type]);},f=A;var y=()=>{f();},c=y;var x=n(()=>import('./videoArea-2F2NDD76.mjs')),E=n(()=>import('./notActive-DSDPVSW4.mjs')),S=()=>{if(A$1(({videoData:{params:m,details:e,isFetchDetails:u,isValidAddress:v}})=>({params:m,details:e,isFetchDetails:u,isValidAddress:v}),shallowEqual),c(),useEffect(()=>{b();},[]),t("isFetchDetails"))return jsx(Fragment,{children:t("isValidAddress")?jsx("div",{className:`pl-max-h-[100dvh] pl-bg-dark-1 ${!t("isTouchScreen")&&!t("isFullScreen")&&"!pl-rounded-[12px]"}`,children:jsx(x,{})}):jsx("div",{className:"pl-w-full pl-aspect-video",children:jsx(E,{})})})},Q=S;export{Q as default};//# sourceMappingURL=vodPlayer-JTS4WVOB.mjs.map
2
+ //# sourceMappingURL=vodPlayer-JTS4WVOB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/videoPlayerLibrary/components/videoPlayer/vodPlayer/vodPlayer.tsx","../src/videoPlayerLibrary/helpers/hooks/useGetData/useGetData.tsx","../src/videoPlayerLibrary/helpers/hooks/useGetData/useGetDetails.tsx"],"names":["init_esm_shims","useGetDetails","params","useAppSelector","shallowEqual","isEnded","useEffect","conditions","getVodDetails","useGetDetails_default","useGetData","useGetData_default","VideoArea","dynamic","NotActive","VodPlayer","details","isFetchDetails","isValidAddress","handleApplyContinuousPlayback","jsx","Fragment","vodPlayer_default"],"mappings":"2SAAAA,CAAAA,EAAAA,CCAAA,ICAAA,CAAAA,EAAAA,CAOA,IAAMC,CAAAA,CAAgB,IAAM,CAC1B,GAAM,CAAE,MAAA,CAAAC,CAAO,EAAIC,GAAAA,CAAe,CAAC,CAAE,SAAA,CAAW,CAAE,OAAAD,CAAO,CAAE,KAAO,CAAE,MAAA,CAAAA,CAAO,CAAA,CAAA,CAAIE,YAAY,EAC3FD,GAAAA,CAAe,CAAC,CAAE,UAAA,CAAY,CAAE,QAAAE,CAAQ,CAAE,KAAO,CAAE,OAAA,CAAAA,CAAQ,CAAA,CAAA,CAAID,YAAY,EAE3EE,SAAAA,CAAU,IAAM,CACVC,CAAAA,CAAAA,YAAmC,CAAA,EAAGC,IAC5C,CAAA,CAAG,CAACN,CAAAA,CAAO,EAAA,CAAIA,EAAO,IAAI,CAAC,EAC7B,CAAA,CAEOO,CAAAA,CAAQR,EDbf,IAAMS,CAAAA,CAAa,IAAM,CACrBD,CAAAA,GAEJ,CAAA,CAEOE,CAAAA,CAAQD,EDGf,IAAME,CAAAA,CAAYC,EAAQ,IAAM,OAAO,0BAA6C,CAAC,CAAA,CAC/EC,EAAYD,CAAAA,CAAQ,IAAM,OAAO,0BAA6C,CAAC,EAE/EE,CAAAA,CAAY,IAAM,CAYtB,GAXAZ,GAAAA,CACE,CAAC,CAAE,SAAA,CAAW,CAAE,MAAA,CAAAD,CAAAA,CAAQ,QAAAc,CAAAA,CAAS,cAAA,CAAAC,EAAgB,cAAA,CAAAC,CAAe,CAAE,CAAA,IAAO,CAAE,OAAAhB,CAAAA,CAAQ,OAAA,CAAAc,EAAS,cAAA,CAAAC,CAAAA,CAAgB,eAAAC,CAAe,CAAA,CAAA,CAC3Hd,YACF,CAAA,CAEAO,CAAAA,GAEAL,SAAAA,CAAU,IAAM,CACda,CAAAA,GACF,EAAG,EAAE,EAEDZ,CAAAA,CAAAA,gBAAuC,CAAA,CACzC,OACEa,GAAAA,CAAAC,QAAAA,CAAA,CACG,QAAA,CAAAd,CAAAA,CAAAA,gBAAuC,EACtCa,GAAAA,CAAC,KAAA,CAAA,CACC,UAAW,CAAA,+BAAA,EACT,CAACb,iBAAsC,CAAA,EAAK,CAACA,gBAAqC,CAAA,EAAK,oBACzF,GAEA,QAAA,CAAAa,GAAAA,CAACR,EAAA,EAAU,CAAA,CACb,EAEAQ,GAAAA,CAAC,KAAA,CAAA,CAAI,UAAW,2BAAA,CACd,QAAA,CAAAA,IAACN,CAAAA,CAAA,EAAU,EACb,CAAA,CAEJ,CAEN,EAEOQ,CAAAA,CAAQP","file":"vodPlayer-JTS4WVOB.mjs","sourcesContent":["\"use client\";\n\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../../helpers/redux/hooks\";\nimport useGetData from \"../../../helpers/hooks/useGetData/useGetData\";\nimport { conditions } from \"../../../helpers/conditions/conditions\";\nimport { ConditionName } from \"../../../helpers/interfaces/enums\";\nimport { handleApplyContinuousPlayback } from \"../../../helpers/redux/actions/user.actions\";\nimport dynamic from \"next/dynamic\";\nimport { useEffect } from \"react\";\n\nconst VideoArea = dynamic(() => import(\"../../custom-components/videoArea/videoArea\"));\nconst NotActive = dynamic(() => import(\"../../custom-components/notActive/notActive\"));\n\nconst VodPlayer = () => {\n useAppSelector(\n ({ videoData: { params, details, isFetchDetails, isValidAddress } }) => ({ params, details, isFetchDetails, isValidAddress }),\n shallowEqual,\n );\n\n useGetData();\n\n useEffect(() => {\n handleApplyContinuousPlayback();\n }, []);\n\n if (conditions(ConditionName.isFetchDetails))\n return (\n <>\n {conditions(ConditionName.isValidAddress) ? (\n <div\n className={`pl-max-h-[100dvh] pl-bg-dark-1 ${\n !conditions(ConditionName.isTouchScreen) && !conditions(ConditionName.isFullScreen) && \"!pl-rounded-[12px]\"\n }`}\n >\n <VideoArea />\n </div>\n ) : (\n <div className={`pl-w-full pl-aspect-video`}>\n <NotActive />\n </div>\n )}\n </>\n );\n};\n\nexport default VodPlayer;\n","import useGetDetails from \"./useGetDetails\";\nimport useGetMarkers from \"./useGetMarkers\";\n\nconst useGetData = () => {\n useGetDetails();\n // useGetMarkers();\n};\n\nexport default useGetData;\n","import { useEffect } from \"react\";\nimport { conditions } from \"../../conditions/conditions\";\nimport { shallowEqual } from \"react-redux\";\nimport { useAppSelector } from \"../../redux/hooks\";\nimport { ConditionName } from \"../../interfaces/enums\";\nimport { getVodDetails } from \"../../redux/actions/videoData.actions\";\n\nconst useGetDetails = () => {\n const { params } = useAppSelector(({ videoData: { params } }) => ({ params }), shallowEqual);\n useAppSelector(({ controller: { isEnded } }) => ({ isEnded }), shallowEqual);\n\n useEffect(() => {\n if (conditions(ConditionName.getDetails)) getVodDetails();\n }, [params.id, params.type]);\n};\n\nexport default useGetDetails;\n"]}