@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:i,onPipChange:r,onProgress:j,onStart:L,orientation:o,setMediaItem:M,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,q]=React__default.default.useState(!1),[v,E]=React__default.default.useState(!a),[I,S]=React__default.default.useState(l?.[e].id||null),[N,A]=localStorage.useLocalStorage("videoPipHeight",f),[O,B]=localStorage.useLocalStorage("videoPipWidth",h),[V,U]=localStorage.useLocalStorage("video-volume",1),[P,X]=localStorage.useLocalStorage("videoPipRight",16),[$,Y]=localStorage.useLocalStorage("videoPipBottom",16),[k,z]=React__default.default.useState([0,0]),[D,C]=React__default.default.useState([0,0]),H=v?u: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 T=e=>{E(!1),M(e)};m=()=>{q(e=>!e),n&&n(!R)};const W=(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),A(t))};f=()=>{var e;b?.current&&(e=b.current.getBoundingClientRect(),C([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-k[1]+D[1]),l=Math.round(e*RESOLUTION),W(l,e)):t.includes("bottom")?(l=Math.round(k[1]-i+D[1]),e=Math.round(l*RESOLUTION),W(e,l)):t.includes("left")?(i=Math.round(a-k[0]+D[0]),e=Math.round(i/RESOLUTION),W(i,e)):t.includes("right")&&(l=Math.round(k[0]-a+D[0]),i=Math.round(l/RESOLUTION),W(l,i))))};return H?(e=React.useMemo(()=>{let t=[{label:"All lessons",color:"dark"}];return p?.length&&p.forEach(e=>{t.push({label:e.name,color:"dark"})}),t.push({label:"Trailer",color:"dark"}),t},[p]),React__default.default.createElement(Wrapper,{$orientation:o},React__default.default.createElement(InnerWrapper,{$orientation:o,$playable:a||v},"vertical"===o&&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},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===D[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-k[0]),l=$+(e-k[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&&Y(l),z([t,e]))}:void 0,onMouseDown:e=>{z([window.innerWidth-e.clientX,window.innerHeight-e.clientY])},ref:b,style:t?{bottom:$,height:N,right:P,width:O}: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(),r&&r(!1)},size:"large",sx:`
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:(H?.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:H.thumbnail}),progressInterval:4e3,onProgress:j,onStart:L,onClickPreview:i,onReady:()=>{v||0===x?.current?.getCurrentTime()&&0!==H?.progress&&x.current.seekTo(H.progress)},pip:t,playIcon:a||v?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:H.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:()=>C([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"bottom horizontal",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>C([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"right vertical",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>C([0,0]),tabIndex:0}),React__default.default.createElement(Resizer,{className:"left vertical",draggable:"false",onDrag:h,onMouseDown:f,onDragEnd:()=>C([0,0]),tabIndex:0}))),"horizontal"===o&&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:e,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:R,orientation:o,toggleShowingAll:m})),[React__default.default.createElement(HorizontalPlaylistWrapper,{ref:d,$showingAll:R},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{comingSoon:t.comingSoon,nowplaying:I,key:t.id,ref:e=>{_.current[t.id]=e},playlistItemId:t.id,duration:t.duration,onClick:()=>{T(e),S(t.id)},playable:a,progress:t.progress,shortDescription:t.shortDescription,thumbnail:t.thumbnail,title:t.title}))),!!p?.length&&React__default.default.createElement(React__default.default.Fragment,null,p.map(e=>React__default.default.createElement(React__default.default.Fragment,{key:e.id},React__default.default.createElement(misc.LeaderListItem,{title:s,additionalMedia:e,handleSetPlayingTrailer:E})))),!!u&&React__default.default.createElement(misc.TrailerListItem,{title:s,handleSetPlayingTrailer:E,trailer:u})][y])),"vertical"===o&&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:e,size:"medium",sx:"justify-content: flex-start;"}),React__default.default.createElement(misc.ButtonViewAll,{showingAll:R,orientation:o,toggleShowingAll:m})),[React__default.default.createElement(VerticalPlaylistWrapper,{ref:d,$showingAll:R},l.map((t,e)=>React__default.default.createElement(playlistItem.PlaylistItem,{comingSoon:t.comingSoon,nowplaying:I,playlistItemId:t.id,duration:t.duration,key:t.id,ref:e=>{_.current[t.id]=e},onClick:()=>{T(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`
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);
@@ -26,6 +26,11 @@ export interface Trailer {
26
26
  }
27
27
  export interface AdditionalMedia {
28
28
  id: number;
29
- thumbnail: string;
29
+ media: {
30
+ id: number;
31
+ title: string;
32
+ thumbnail: string;
33
+ src: string;
34
+ }[];
30
35
  name: string;
31
36
  }
@@ -1,12 +1,16 @@
1
1
  import React from 'react';
2
- import { AdditionalMedia, Trailer } from '../common';
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: 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
  };
@@ -59,7 +59,7 @@ export interface VideoPlayerProps {
59
59
  /**
60
60
  * @param AdditionalMedia if in
61
61
  */
62
- additionalMedia: AdditionalMedia[];
62
+ additionalMedia?: AdditionalMedia[];
63
63
  /**
64
64
  * @param volume the volume of the player
65
65
  * @default 1 (100%)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soul-refiner/design-system",
3
- "version": "2.11.11",
3
+ "version": "2.12.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "license": "MIT",