@soul-refiner/design-system 2.11.11 → 2.12.1
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:
|
|
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:L,onStart:M,orientation:r,setMediaItem:q,onShowAllPlaylist:o,forwardedRef:n,subtitle:d,title:c,trailer:s,additionalMedia:u})=>{const p="undefined"!=typeof window?window:{innerHeight:0,innerWidth:600};var g=p.innerHeight/3,f=RESOLUTION*(p.innerHeight/3),h=React__default.default.useRef(null);const m=n||h,x=React__default.default.useRef({});n=React__default.default.useRef(null);const _=React__default.default.useRef(null),[b,y]=React__default.default.useState(0),[w,N]=React__default.default.useState(!1),[R,v]=React__default.default.useState(!a),[E,I]=React__default.default.useState(l?.[e].id||null),[A,O]=localStorage.useLocalStorage("videoPipHeight",g),[B,V]=localStorage.useLocalStorage("videoPipWidth",f),[U,X]=localStorage.useLocalStorage("video-volume",1),[S,Y]=localStorage.useLocalStorage("videoPipRight",16),[P,G]=localStorage.useLocalStorage("videoPipBottom",16),[$,k]=React__default.default.useState([0,0]),[z,D]=React__default.default.useState([0,0]),C=R?s:l?.[e];React__default.default.useEffect(()=>{const e=()=>{const e=x.current[E];e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"center"})},0)};return l?.length&&E&&("undefined"!=typeof window&&window.addEventListener("load",e),e()),()=>{"undefined"!=typeof window&&window.removeEventListener("load",e)}},[l,E]);const H=e=>{v(!1),q(e)};h=()=>{N(e=>!e),o&&o(!w)};const T=(e,t)=>{var a;!_?.current||(a=_.current.getBoundingClientRect()).x<16||a.y<16||e>=2*p.innerWidth/3||t>=2*p.innerHeight/3||e<MIN_PIP_WIDTH||t<MIN_PIP_HEIGHT||(V(e),O(t))};g=()=>{var e;_?.current&&(e=_.current.getBoundingClientRect(),D([e.width,e.height]))},f=e=>{var t,a,l,i;_?.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]+z[1]),l=Math.round(e*RESOLUTION),T(l,e)):t.includes("bottom")?(l=Math.round($[1]-i+z[1]),e=Math.round(l*RESOLUTION),T(e,l)):t.includes("left")?(i=Math.round(a-$[0]+z[0]),e=Math.round(i/RESOLUTION),T(i,e)):t.includes("right")&&(l=Math.round($[0]-a+z[0]),i=Math.round(l/RESOLUTION),T(l,i))))};if(!C)return null;const W=React.useMemo(()=>{let t=[{label:"All lessons",color:"dark"}];return u?.length&&u.forEach(e=>{t.push({label:e.name,color:"dark"})}),t.push({label:"Trailer",color:"dark"}),t},[u]);var e=b===W.length-1,F=u&&0<b&&b<W.length-1;return React__default.default.useEffect(()=>{b>=W.length&&y(0)},[W,b]),React__default.default.createElement(Wrapper,{$orientation:r},React__default.default.createElement(InnerWrapper,{$orientation:r,$playable:a||R},"vertical"===r&&React__default.default.createElement(box.Box,{$dir:"column",$gap:4,sx:"margin: 24px;"},React__default.default.createElement(heading.H,{as:"h2",$bold:!0,$color:"white",$fontSize:28,$lineHeight:36},c),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},d)),t&&React__default.default.createElement(ClosePip,null),React__default.default.createElement(PipWrapper,{$pip:!!t,draggable:t&&0===z[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=S+(t-$[0]),l=P+(e-$[1]),_?.current&&(i=_.current.getBoundingClientRect(),a&&16<=a&&a<=p.innerWidth-16-i.width&&Y(a),l)&&16<=l&&l<=p.innerHeight-16-i.height&&G(l),k([t,e]))}:void 0,onMouseDown:e=>{k([window.innerWidth-e.clientX,window.innerHeight-e.clientY])},ref:_,style:t?{bottom:P,height:A,right:S,width:B}: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:(
|
|
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:(C?.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 "+c,layout:"fill",priority:!0,quality:100,style:{objectFit:"contain"},src:C.thumbnail}),progressInterval:4e3,onProgress:L,onStart:M,onClickPreview:j,onReady:()=>{R||0===m?.current?.getCurrentTime()&&0!==C?.progress&&m.current.seekTo(C.progress)},pip:t,playIcon:a||R?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:m,url:C.src,width:"100%",volume:U,onVolumeChange:e=>{X(e.target.volume)}}),t&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(Resizer,{className:"top horizontal",draggable:"false",onDrag:f,onMouseDown:g,onDragEnd:()=>D([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"bottom horizontal",draggable:"false",onDrag:f,onMouseDown:g,onDragEnd:()=>D([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"right vertical",draggable:"false",onDrag:f,onMouseDown:g,onDragEnd:()=>D([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"left vertical",draggable:"false",onDrag:f,onMouseDown:g,onDragEnd:()=>D([0,0]),tabIndex:0}))),"horizontal"===r&&React__default.default.createElement(Side,null,React__default.default.createElement(ScalableContainerWrapper,{$showingAll:w},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},c),React__default.default.createElement(paragraph.P,{as:"h3",$bold:!0,$color:"grey-8"},d)),React__default.default.createElement(box.Box,{$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:b,onChange:e=>y(e),items:W,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:w,orientation:r,toggleShowingAll:h})),0===b?React__default.default.createElement(HorizontalPlaylistWrapper,{ref:n,$showingAll:w},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{key:t.id,playlistItemId:t.id,onClick:()=>{H(e),I(t.id)},title:t.title,thumbnail:t.thumbnail,shortDescription:t.shortDescription,duration:t.duration,progress:t.progress,playable:a,nowplaying:E,comingSoon:t.comingSoon,ref:e=>{x.current[t.id]=e}}))):F?u?.[b-1]?.media.map(e=>React__default.default.createElement(misc.LeaderListItem,{key:e.id,title:e.title,additionalMedia:e,handleSetPlayingTrailer:v})):e&&s?React__default.default.createElement(misc.TrailerListItem,{title:c,handleSetPlayingTrailer:v,trailer:s}):null)),"vertical"===r&&React__default.default.createElement(box.Box,{$dir:"column",$gap:24,sx:w?"z-index: 3; position:relative;":"height: auto"},React__default.default.createElement(ScalableContainerWrapperVertical,{$showingAll:w},React__default.default.createElement(box.Box,{sx:"padding: 0 1.5rem;",$align:"center"},React__default.default.createElement(tabs.Tabs,{activeIndex:b,onChange:e=>y(e),items:W,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:w,orientation:r,toggleShowingAll:h})),[React__default.default.createElement(VerticalPlaylistWrapper,{ref:n,$showingAll:w},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{comingSoon:t.comingSoon,nowplaying:E,playlistItemId:t.id,duration:t.duration,key:t.id,ref:e=>{x.current[t.id]=e},onClick:()=>{H(e),I(t.id)},playable:a,progress:t.progress,shortDescription:t.shortDescription,thumbnail:t.thumbnail,title:t.title}))),!!s&&React__default.default.createElement(box.Box,{$dir:"column",$gap:8,sx:"margin: 0px 24px;"},React__default.default.createElement(misc.TrailerListItem,{title:c,handleSetPlayingTrailer:v,trailer:s}))][b]))))},Wrapper=styled.styled.div`
|
|
12
12
|
display: flex;
|
|
13
13
|
justify-content: center;
|
|
14
14
|
background-color: var(--color-grey-0);
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Trailer } from '../common';
|
|
3
3
|
type TrailerListItemProps = {
|
|
4
4
|
trailer: Trailer;
|
|
5
5
|
title: string;
|
|
6
6
|
handleSetPlayingTrailer: React.Dispatch<React.SetStateAction<boolean>>;
|
|
7
7
|
};
|
|
8
8
|
type AdditionalListItemProps = {
|
|
9
|
-
additionalMedia:
|
|
9
|
+
additionalMedia: {
|
|
10
|
+
id: number;
|
|
11
|
+
title: string;
|
|
12
|
+
thumbnail: string;
|
|
13
|
+
};
|
|
10
14
|
title: string;
|
|
11
15
|
handleSetPlayingTrailer: React.Dispatch<React.SetStateAction<boolean>>;
|
|
12
16
|
};
|