@soul-refiner/design-system 2.14.31 → 2.14.33
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var React=require("react"),Image=require("next/image"),ReactPlayer=require("react-player"),styled=require("styled-components"),button=require("../../actions/button/button.js"),box=require("../../atoms/box/box.js"),tabs=(require("../../navigation/breadcrumb/breadcrumb.js"),require("../../navigation/inner/inner.js"),require("../../navigation/tabs/tabs.js")),select_item=require("../../../icons/basic/select_item.js"),heading=require("../../atoms/typography/heading.js"),paragraph=require("../../atoms/typography/paragraph.js"),lock_circle=require("../../../icons/security/lock_circle.js"),play_solid=require("../../../icons/audio_video/play_solid.js"),localStorage=require("../../../utils/local-storage.js"),playlistItem=require("./playlist-item.js"),misc=require("./misc.js");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React),Image__default=_interopDefaultCompat(Image),ReactPlayer__default=_interopDefaultCompat(ReactPlayer);const RESOLUTION=1280/720,MIN_PIP_HEIGHT=200,MIN_PIP_WIDTH=RESOLUTION*MIN_PIP_HEIGHT,VideoPlayer=({activeIndex:e,pip:t,playable:a,playlist:l,onClickPreview:j,onPipChange:i,onProgress:M,onStart:L,orientation:r,setMediaItem:o,onShowAllPlaylist:n,forwardedRef:d,subtitle:c,title:s,trailer:u,additionalMedia:p
|
|
2
|
+
"use strict";var React=require("react"),Image=require("next/image"),ReactPlayer=require("react-player"),styled=require("styled-components"),button=require("../../actions/button/button.js"),box=require("../../atoms/box/box.js"),tabs=(require("../../navigation/breadcrumb/breadcrumb.js"),require("../../navigation/inner/inner.js"),require("../../navigation/tabs/tabs.js")),select_item=require("../../../icons/basic/select_item.js"),heading=require("../../atoms/typography/heading.js"),paragraph=require("../../atoms/typography/paragraph.js"),lock_circle=require("../../../icons/security/lock_circle.js"),play_solid=require("../../../icons/audio_video/play_solid.js"),localStorage=require("../../../utils/local-storage.js"),playlistItem=require("./playlist-item.js"),misc=require("./misc.js");function _interopDefaultCompat(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultCompat(React),Image__default=_interopDefaultCompat(Image),ReactPlayer__default=_interopDefaultCompat(ReactPlayer);const RESOLUTION=1280/720,MIN_PIP_HEIGHT=200,MIN_PIP_WIDTH=RESOLUTION*MIN_PIP_HEIGHT,VideoPlayer=({activeIndex:e,pip:t,playable:a,playlist:l,onClickPreview:j,onPipChange:i,onProgress:M,onStart:L,orientation:r,setMediaItem:o,onShowAllPlaylist:n,forwardedRef:d,subtitle:c,title:s,trailer:u,additionalMedia:p})=>{const g="undefined"!=typeof window?window:{innerHeight:0,innerWidth:600};var f=g.innerHeight/3,h=RESOLUTION*(g.innerHeight/3),m=React__default.default.useRef(null);const x=d||m,_=React__default.default.useRef({});d=React__default.default.useRef(null);const b=React__default.default.useRef(null),[y,w]=React__default.default.useState(0),[R,N]=React__default.default.useState(!1),[v,E]=React__default.default.useState(!a),[I,S]=React__default.default.useState(l?.[e].id||null),[O,q]=localStorage.useLocalStorage("videoPipHeight",f),[A,B]=localStorage.useLocalStorage("videoPipWidth",h),[V,U]=localStorage.useLocalStorage("video-volume",1),[P,X]=localStorage.useLocalStorage("videoPipRight",16),[Y,F]=localStorage.useLocalStorage("videoPipBottom",16),[$,G]=React__default.default.useState([0,0]),[k,z]=React__default.default.useState([0,0]),[D,J]=React__default.default.useState(!1),T=v?u:(D?p:l)?.[e];React__default.default.useEffect(()=>{const e=()=>{const e=_.current[I];e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center"})},0)};return l?.length&&I&&("undefined"!=typeof window&&window.addEventListener("load",e),e()),()=>{"undefined"!=typeof window&&window.removeEventListener("load",e)}},[l,I]);const C=(e,t=!1)=>{E(!1),t||(J(!1),setTimeout(()=>{o(e,t)},500)),t&&(o(e,t),setTimeout(()=>{J(!0)},500))};m=()=>{N(e=>!e),n&&n(!R)};const H=(e,t)=>{var a;!b?.current||(a=b.current.getBoundingClientRect()).x<16||a.y<16||e>=2*g.innerWidth/3||t>=2*g.innerHeight/3||e<MIN_PIP_WIDTH||t<MIN_PIP_HEIGHT||(B(e),q(t))};f=()=>{var e;b?.current&&(e=b.current.getBoundingClientRect(),z([e.width,e.height]))},h=e=>{var t,a,l,i;b?.current&&(t=e.currentTarget.getAttribute("class")?.split(" ")||[],a=window.innerWidth-e.clientX,i=window.innerHeight-e.clientY,e.clientX<0||e.clientY<0||(e.stopPropagation(),e.preventDefault(),t.includes("top")?(e=Math.round(i-$[1]+k[1]),l=Math.round(e*RESOLUTION),H(l,e)):t.includes("bottom")?(l=Math.round($[1]-i+k[1]),e=Math.round(l*RESOLUTION),H(e,l)):t.includes("left")?(i=Math.round(a-$[0]+k[0]),e=Math.round(i/RESOLUTION),H(i,e)):t.includes("right")&&(l=Math.round($[0]-a+k[0]),i=Math.round(l/RESOLUTION),H(l,i))))};const W=React.useMemo(()=>{var e=[{label:"All lessons",color:"dark"}];return p?.length&&e.push({label:"Resources",color:"dark"}),e.push({label:"Trailer",color:"dark"}),e},[p]);var e=y===W.length-1,K=p&&0<y&&y<W.length-1;return React__default.default.useEffect(()=>{y>=W.length&&w(0)},[W,y]),T?React__default.default.createElement(Wrapper,{$orientation:r},React__default.default.createElement(InnerWrapper,{$orientation:r,$playable:a||v||D},"vertical"===r&&React__default.default.createElement(box.Box,{className:"pip-trigger-vertical pip-trigger",$dir:"column",$gap:4,sx:"margin: 24px;"},React__default.default.createElement(heading.H,{as:"h2",$bold:!0,$color:"white",$fontSize:28,$lineHeight:36},s),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},c)),t&&React__default.default.createElement(ClosePip,null),React__default.default.createElement(PipWrapper,{$pip:!!t,draggable:t&&0===k[0],onDrag:t?e=>{var t,a,l,i;e.clientX<0||e.clientY<0||(t=window.innerWidth-e.clientX,e=window.innerHeight-e.clientY,a=P+(t-$[0]),l=Y+(e-$[1]),b?.current&&(i=b.current.getBoundingClientRect(),a&&16<=a&&a<=g.innerWidth-16-i.width&&X(a),l)&&16<=l&&l<=g.innerHeight-16-i.height&&F(l),G([t,e]))}:void 0,onMouseDown:e=>{G([window.innerWidth-e.clientX,window.innerHeight-e.clientY])},ref:b,style:t?{bottom:Y,height:O,right:P,width:A}:void 0},t&&React__default.default.createElement(button.Button,{className:"close-pip",icon:React__default.default.createElement(select_item.SelectItem,{color:"grey-0"}),onClick:e=>{e.stopPropagation(),i&&i(!1)},size:"large",sx:`
|
|
3
3
|
display: none;
|
|
4
4
|
position: absolute;
|
|
5
5
|
top: 8px;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
svg {
|
|
9
9
|
fill: var(--color-white);
|
|
10
10
|
}
|
|
11
|
-
`,type:"text"}),React__default.default.createElement(ReactPlayer__default.default,{className:"player",config:{file:{attributes:{crossOrigin:"true",disablePictureInPicture:"true"},forceHLS:!0,hlsOptions:{autoStartLoad:!0},tracks:(T?.subtitles||[]).map(e=>({kind:"subtitles",label:e.label,src:e.src,srcLang:e.locale}))}},controls:!0,height:"100%",light:React__default.default.createElement(Image__default.default,{alt:"thumbnail for "+s,layout:"fill",priority:!0,quality:100,style:{objectFit:"contain"},src:T.thumbnail}),progressInterval:4e3,onProgress:M,onStart:L,onClickPreview:j,onReady:()=>{
|
|
11
|
+
`,type:"text"}),React__default.default.createElement(ReactPlayer__default.default,{className:"player",config:{file:{attributes:{crossOrigin:"true",disablePictureInPicture:"true"},forceHLS:!0,hlsOptions:{autoStartLoad:!0},tracks:(T?.subtitles||[]).map(e=>({kind:"subtitles",label:e.label,src:e.src,srcLang:e.locale}))}},controls:!0,height:"100%",light:React__default.default.createElement(Image__default.default,{alt:"thumbnail for "+s,layout:"fill",priority:!0,quality:100,style:{objectFit:"contain"},src:T.thumbnail}),progressInterval:4e3,onProgress:e=>M(e,D),onStart:L,onClickPreview:j,onReady:()=>{v||D||0===x?.current?.getCurrentTime()&&0!==T?.progress&&x.current.seekTo(T.progress)},pip:t,playIcon:a||v||D?React__default.default.createElement(play_solid.PlaySolid,{color:"white",size:24,sx:"position: absolute; width: 54px; height: 54px;"}):React__default.default.createElement(lock_circle.LockCircle,{color:"white",size:24,sx:"position: absolute; width: 54px; height: 54px;"}),playing:a,ref:x,url:T.src,width:"100%",volume:V,onVolumeChange:e=>{U(e.target.volume)}}),t&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(Resizer,{className:"top horizontal",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>z([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"bottom horizontal",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>z([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"right vertical",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>z([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"left vertical",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>z([0,0]),tabIndex:0}))),"horizontal"===r&&React__default.default.createElement(Side,null,React__default.default.createElement(ScalableContainerWrapper,{$showingAll:R},React__default.default.createElement(box.Box,{$dir:"column",$gap:4},React__default.default.createElement(heading.H,{as:"h2",$bold:!0,$color:"white",$fontSize:28,$lineHeight:36},s),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},c)),React__default.default.createElement(box.Box,{$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:y,onChange:e=>w(e),items:W,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:R,orientation:r,toggleShowingAll:m})),0===y?React__default.default.createElement(HorizontalPlaylistWrapper,{ref:d,$showingAll:R},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{key:t.id,playlistItemId:t.id,onClick:()=>{S(t.id),C(e)},title:t.title,thumbnail:t.thumbnail,shortDescription:t.shortDescription,duration:t.duration,progress:t.progress,playable:a,nowplaying:I,comingSoon:t.comingSoon||!1,ref:e=>{_.current[t.id]=e}}))):K?p?.map((t,e)=>"VIDEO"===t.type?React__default.default.createElement(playlistItem.PlaylistItem,{key:t.id,playlistItemId:t.id,onClick:()=>{S(t.id),C(e,!0)},progress:0,title:t.name,thumbnail:t.thumbnail||"",shortDescription:t.shortDescription,playable:!0,nowplaying:I,ref:e=>{_.current[t.id]=e}}):React__default.default.createElement(React__default.default.Fragment,null,"TODO file type")):e&&u?React__default.default.createElement(misc.TrailerListItem,{title:s,handleSetPlayingTrailer:E,trailer:u}):null)),"vertical"===r&&React__default.default.createElement(box.Box,{$dir:"column",$gap:24,sx:R?"z-index: 3; position:relative;":"height: auto"},React__default.default.createElement(ScalableContainerWrapperVertical,{$showingAll:R},React__default.default.createElement(box.Box,{sx:"padding: 0 1.5rem;",$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:y,onChange:e=>w(e),items:W,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:R,orientation:r,toggleShowingAll:m})),[React__default.default.createElement(VerticalPlaylistWrapper,{ref:d,$showingAll:R},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{comingSoon:t.comingSoon||!1,nowplaying:I,playlistItemId:t.id,duration:t.duration,key:t.id,ref:e=>{_.current[t.id]=e},onClick:()=>{C(e),S(t.id)},playable:a,progress:t.progress,shortDescription:t.shortDescription,thumbnail:t.thumbnail,title:t.title}))),!!u&&React__default.default.createElement(box.Box,{$dir:"column",$gap:8,sx:"margin: 0px 24px;"},React__default.default.createElement(misc.TrailerListItem,{title:s,handleSetPlayingTrailer:E,trailer:u}))][y])))):null},Wrapper=styled.styled.div`
|
|
12
12
|
display: flex;
|
|
13
13
|
justify-content: center;
|
|
14
14
|
background-color: var(--color-grey-0);
|
|
@@ -23,7 +23,7 @@ export interface VideoPlayerProps {
|
|
|
23
23
|
onProgress: (progress: {
|
|
24
24
|
playedSeconds: number;
|
|
25
25
|
loadedSeconds: number;
|
|
26
|
-
}) => void;
|
|
26
|
+
}, playingResource?: boolean) => void;
|
|
27
27
|
/**
|
|
28
28
|
* @param onStart the handler for mounting the video
|
|
29
29
|
*/
|
|
@@ -43,7 +43,7 @@ export interface VideoPlayerProps {
|
|
|
43
43
|
/**
|
|
44
44
|
* @param setMediaItem sets the index of the item to be played
|
|
45
45
|
*/
|
|
46
|
-
setMediaItem: (index: number) => void;
|
|
46
|
+
setMediaItem: (index: number, playingResource?: boolean) => void;
|
|
47
47
|
/**
|
|
48
48
|
* @param subtitle the video player's subtitle
|
|
49
49
|
*/
|
|
@@ -70,11 +70,9 @@ export interface VideoPlayerProps {
|
|
|
70
70
|
*/
|
|
71
71
|
forwardedRef?: React.MutableRefObject<any>;
|
|
72
72
|
onShowAllPlaylist?: (isOpen: boolean) => void;
|
|
73
|
-
playingResource?: boolean;
|
|
74
|
-
setPlayingResource?: (value: boolean) => void;
|
|
75
73
|
}
|
|
76
74
|
/**
|
|
77
75
|
* ReactPlayer props reference -> https://www.npmjs.com/package/react-player#props
|
|
78
76
|
* HLS Option props reference -> https://github.com/video-dev/hls.js/blob/master/docs/API.md#fine-tuning
|
|
79
77
|
*/
|
|
80
|
-
export declare const VideoPlayer: ({ activeIndex, pip, playable, playlist, onClickPreview, onPipChange, onProgress, onStart, orientation, setMediaItem, onShowAllPlaylist, forwardedRef, subtitle, title, trailer, additionalMedia,
|
|
78
|
+
export declare const VideoPlayer: ({ activeIndex, pip, playable, playlist, onClickPreview, onPipChange, onProgress, onStart, orientation, setMediaItem, onShowAllPlaylist, forwardedRef, subtitle, title, trailer, additionalMedia, }: VideoPlayerProps) => React.JSX.Element | null;
|