@useloops/design-system 1.4.693 → 1.4.694

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 +1 @@
1
- import{jsxs as e,jsx as r}from"react/jsx-runtime";import{forwardRef as t,useState as o,useEffect as i,useCallback as n,useImperativeHandle as a,memo as s}from"react";import{styled as m,Stack as l}from"@mui/material";import d from"@use-it/event-listener";import{normaliseFloat as p}from"../../../utils/normaliseFloat.js";import"../../../utils/formValidation/misc.js";import"../../BrandCore/Icon/Icon.js";import"../../BrandCore/primitiveVariables.js";import"../../WebCore/utils/typography.util.js";import"../../BrandCore/textures.js";import"../../WebCore/AnnualController/AnnualController.js";import"../../WebCore/SelectItem/SelectItem.js";import"../../WebCore/Accordion/Accordion.js";import"../../WebCore/Animations/FadeIn.js";import"../../WebCore/Text/Text.js";import"@mui/icons-material";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js";import"merge-sx";import"../../WebCore/Badge/Badge.js";import"../../WebCore/Breadcrumb/Breadcrumb.js";import"../../WebCore/Button/Button.js";import"../../WebCore/ButtonBase/ButtonBase.js";import"../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js";import"../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js";import"../../WebCore/ButtonTabGroup/_partials/TabButton.js";import"../../WebCore/Checkbox/StyledCheckbox.js";import"../../WebCore/InputFieldBase/InputFieldBase.js";import"../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js";import"../../WebCore/InputLabelBase/StyledInputLabelBase.js";import"../../WebCore/Differential/DifferentialContainer.js";import"../../WebCore/Differential/DifferentialRadio.js";import"../../WebCore/DropdownMenu/StyledMenu.js";import"../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js";import"../../WebCore/FormGenerator/FormGenerator.js";import"../../WebCore/GridOverlay/GridOverlay.js";import"html-react-parser";import"../../WebCore/IconButton/IconButton.js";import"../../WebCore/IconButtonBase/IconButtonBase.js";import"../../WebCore/IconButtonGroup/IconButtonGroup.js";import"../../WebCore/Image/Image.js";import"../../WebCore/KbdGroup/Kbd.js";import"../../WebCore/KbdGroup/KbdGroup.js";import"../../WebCore/KeyValueLabel/KeyValueLabel.js";import"../../WebCore/Label/Label.js";import"../../WebCore/Likert/LikertContainer.js";import"../../WebCore/Likert/LikertLabel.js";import"../../WebCore/Likert/LikertRadio.js";import"../../WebCore/Link/StyledLink.js";import"@lottiefiles/dotlottie-react";import"../../WebCore/LoopsAiButton/LoopsAiButton.js";import"markdown-to-jsx";import"material-ui-popup-state/hooks";import u from"../../WebCore/Surface/Surface.js";import"../../WebCore/Menu/MenuItem.js";import"../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js";import"../../WebCore/ModalLayout/_partials/ModalContentWrapper.js";import"../../WebCore/NavigationButton/NavigationButton.js";import"../../WebCore/Nudge/NudgeButton.js";import"../../WebCore/NumberField/NumberField.js";import"../../BrandCore/colorRamps.js";import"../../BrandCore/semanticColor.js";import"../../BrandCore/types.js";import"../../BrandCore/typography.js";import"../../WebCore/Progress/Progress.js";import"../../WebCore/Pill/StyledPill.js";import"../../WebCore/ProgressBar/ProgressBar.js";import"../../WebCore/Radio/StyledRadio.js";import"../../WebCore/Select/StyledSelect.js";import"../../WebCore/RankItem/RankItemContainer.js";import"../../WebCore/RankItem/RankItemLabel.js";import"../../WebCore/SortableList/SortableList.js";import"../../WebCore/SortableList/components/SortableItem/SortableItem.js";import"../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js";import"@tiptap/extension-placeholder";import"@tiptap/starter-kit";import"mui-tiptap";import"../../WebCore/RichTextField/StyledRichTextEditor.js";import"../../WebCore/Skeleton/Skeleton.js";import"../../WebCore/Slider/StyledSlider.js";import"../../WebCore/StarRating/StarRating.js";import"../../WebCore/Switch/StyledSwitch.js";import"../../WebCore/Textarea/Textarea.js";import"../../WebCore/TrialCard/TrialCardContainers.js";import"../../WebCore/TrialCard/TrialPill.js";import"../../WebCore/UserMenu/UserMenuButton.js";import"../../WebCore/VideoModal/VideoModal.js";import c from"./components/ActionButton/ActionButton.js";import b from"./components/Timeline/Timeline.js";const C=m(u)(({theme:e})=>({display:"flex",flex:1,padding:"2px",gap:e.spacing(e.custom.padding.sm),flexDirection:"column"})),f=m(l)({alignItems:"center",justifyContent:"start",flexDirection:"row",flex:1}),g=s(t(({id:t,videoElement:s,initialEndTime:m=0,initialCurrentTime:l=0,initialMuted:u,initialVolume:g,markers:j,options:T,slots:W,events:{onEnd:y,onPlay:B,onSeekEnd:k,onSeeking:S,onSeekStart:v,onTimeUpdate:h,onPause:E,onVolumeChange:I,onVolumeMute:x,onRestart:L,onFirstPlay:P,onFirstEnded:A,onReset:w}={},videoSeekTime:F,slotProps:M},R)=>{const[G,V]=o(!1),[_,D]=o(!1),[K,N]=o([]),O={rtl:!1,volumeControls:!0,normaliseTime:!1,markerIndicatorMode:"time",markerIndicator:!1,markerIndicatorSize:3,volumeControlsType:"mute",disableBufferingEvents:!1,fullscreenControls:!1,hideStartTime:!1,hideEndTime:!1,...T},[{seeking:z,endTime:U,currentTime:q,playing:H,buffering:J,loaded:Q,ended:X,volume:Y,muted:Z,startTime:$,firstPlay:ee,firstEnded:re},te]=o({startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1,volume:g||1,muted:u||!1,buffering:!1});i(()=>{if(s.muted=Z,s.volume=Y,O.normaliseTime&&(void 0===m||void 0===l))throw new Error("Please supply an initial end time and initial currentTime for normalising time in VideoControls2.tsx");return()=>{be()}},[]),i(()=>{te(e=>({...e,startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0)})),s.currentTime=p(l??0)},[l,m]);const oe=n(()=>{te(e=>({...e,playing:!1,ended:!0,...!re&&{firstEnded:!0}})),y&&y(),!re&&A&&A()},[re]);i(()=>{if(!s||null==F)return;(async()=>{const e=!s.paused,r=F===U;te(e=>({...e,playing:!1,currentTime:p(F)})),await new Promise(e=>{const r=()=>{s.removeEventListener("seeked",r),e()};s.addEventListener("seeked",r),setTimeout(e,500)}),te(e=>({...e,currentTime:p(F)})),await new Promise(e=>setTimeout(e,50)),te(t=>({...t,playing:e,currentTime:p(r?F-.001:F+.001)}))})().catch(e=>{console.error("Error seeking video:",e)})},[F,s]);const ie=n(e=>{te(r=>({...r,muted:e.target?.muted,volume:"number"==typeof e.target?.volume?e.target?.volume:1})),Z!==e.target?.muted&&x&&x(!Z),Y!==e.target?.volume&&I&&I(Y)},[Z,Y]),ne=n(()=>{const e=p(s.currentTime)>=U&&U!==p(s.duration)&&!X,r=p(s.currentTime)>=U&&U===p(s.duration)&&!X&&!H;(e||r)&&(s.pause(),s.dispatchEvent(new Event("ended"))),te(e=>({...e,currentTime:p(s.currentTime)})),h&&h(p(s.currentTime))},[U,X,H]),ae=n(()=>{te(e=>({...e,playing:!1})),E&&E()},[q]),se=n(()=>{te(e=>({...e,playing:!0,ended:!1,...!O?.disableBufferingEvents&&{buffering:!1},...!ee&&{firstPlay:!0}})),!ee&&P&&P(),B&&B()},[ee,O?.disableBufferingEvents]),me=n(()=>{O?.disableBufferingEvents||te(e=>({...e,buffering:!0}))},[O?.disableBufferingEvents]),le=n(()=>{O?.disableBufferingEvents||te(e=>({...e,buffering:!1}))},[J,O?.disableBufferingEvents]),de=n(()=>{if(O?.disableBufferingEvents)return;const e=[];for(let r=0;r<s.buffered.length;r++){const t=s.buffered.start(r),o=s.buffered.end(r);if(o>=$&&t<=U){const r=Math.max(t,$),i=Math.min(o,U);e.push({start:r-$,end:i-$,startPercent:(r-$)/(U-$)*100,widthPercent:(i-r)/(U-$)*100})}}N(e)},[z,U,q,H,J,Q,X,Y,Z,$,K,O?.disableBufferingEvents]),pe=n(async e=>{H&&be(),s.currentTime=$,e&&await ce(),L&&L()},[H,q,$,U,X]),ue=n(async()=>{H&&be(),s.currentTime=$,te(e=>({...e,startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1})),w&&w()},[H,q,$,U,X,l,m]),ce=async()=>{await s.play()},be=()=>{s.pause()},Ce=n(e=>{s.currentTime=p(e),te(r=>({...r,currentTime:p(e),ended:!1,seeking:!0,...!O?.disableBufferingEvents&&{buffering:!1},firstPlay:!ee||r.firstPlay,bufferProgress:e})),S&&S(e),!ee&&P&&P()},[J,ee,O?.disableBufferingEvents]),fe=n(async()=>{document.hidden?H&&!s.paused?(V(!0),be()):V(!1):(G&&!H&&await ce(),V(!1))},[H,G,be,ce,s]),ge=n(e=>{e&&s.pause(),te(e=>({...e,seeking:!0})),v&&v()},[X]),je=n(async(e,r,t)=>{r&&(s.currentTime=r),e&&!X&&await s.play(),t&&H&&s.pause(),te(e=>({...e,...r?{currentTime:r}:{},ended:!t&&e.ended,seeking:!1})),k&&k(r)},[H,X,J,z]),Te=n(()=>{document.fullscreenElement?document.exitFullscreen():s.requestFullscreen()},[s]);return d("fullscreenchange",()=>D(!!document.fullscreenElement),document),d("visibilitychange",fe,document),d("pause",ae,s),d("playing",se,s),d("timeupdate",ne,s),d("ended",oe,s),d("volumechange",ie,s),d("waiting",me,s),d("canplay",le,s),d("progress",de,s),a(R,()=>({play:ce,pause:be,restart:pe,reset:ue,seek:(e,r,t)=>je(r,e,t),videoState:{seeking:z,endTime:U,currentTime:q,playing:H,buffering:J,loaded:Q,ended:X,volume:Y,firstPlay:ee,firstEnded:re,muted:Z,startTime:$}})),e(C,{variation:"raised",borderradius:"xl",id:t,sx:M?.paperContainer?.sx,children:[e(f,{...O?.rtl&&{dir:"rtl"},children:[r(c,{seeking:z,playing:H,ended:X,buffering:J,handleAction:async()=>{X?await pe(!0):H?be():await ce()}}),r(b,{handleSeeking:Ce,handleSeekEnd:je,handleSeekStart:ge,ended:X,marker:W?.marker,markersContainerProps:M?.markersContainer,markers:j,markerIndicatorMode:O.markerIndicatorMode,markerIndicatorSize:O.markerIndicatorSize,markerIndicator:O.markerIndicator,startTime:O.normaliseTime?$:0,currentTime:q,endTime:U,playing:H,bufferRanges:K,buffering:J,volume:Y,muted:Z,volumeControls:O.volumeControls,volumeControlsType:O.volumeControlsType,handleVolumeMute:()=>{s.muted=!Z},handleVolumeChange:e=>{s.volume=e,Z&&(s.muted=!1)},fullscreenControls:O.fullscreenControls,hideStartTime:O.hideStartTime,hideEndTime:O.hideEndTime,isFullScreen:_,handlefullscreenToggle:Te})]}),W?.bottom]})}));export{g as default};
1
+ import{jsxs as e,jsx as r}from"react/jsx-runtime";import{forwardRef as t,useState as o,useEffect as i,useCallback as n,useImperativeHandle as a,memo as s}from"react";import{styled as m,Stack as l}from"@mui/material";import d from"@use-it/event-listener";import{normaliseFloat as p}from"../../../utils/normaliseFloat.js";import"../../../utils/formValidation/misc.js";import"../../BrandCore/Icon/Icon.js";import"../../BrandCore/primitiveVariables.js";import"../../WebCore/utils/typography.util.js";import"../../BrandCore/textures.js";import"../../WebCore/AnnualController/AnnualController.js";import"../../WebCore/SelectItem/SelectItem.js";import"../../WebCore/Accordion/Accordion.js";import"../../WebCore/Animations/FadeIn.js";import"../../WebCore/Text/Text.js";import"@mui/icons-material";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js";import"merge-sx";import"../../WebCore/Badge/Badge.js";import"../../WebCore/Breadcrumb/Breadcrumb.js";import"../../WebCore/Button/Button.js";import"../../WebCore/ButtonBase/ButtonBase.js";import"../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js";import"../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js";import"../../WebCore/ButtonTabGroup/_partials/TabButton.js";import"../../WebCore/Checkbox/StyledCheckbox.js";import"../../WebCore/InputFieldBase/InputFieldBase.js";import"../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js";import"../../WebCore/InputLabelBase/StyledInputLabelBase.js";import"../../WebCore/Differential/DifferentialContainer.js";import"../../WebCore/Differential/DifferentialRadio.js";import"../../WebCore/DropdownMenu/StyledMenu.js";import"../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js";import"../../WebCore/FormGenerator/FormGenerator.js";import"../../WebCore/GridOverlay/GridOverlay.js";import"html-react-parser";import"../../WebCore/IconButton/IconButton.js";import"../../WebCore/IconButtonBase/IconButtonBase.js";import"../../WebCore/IconButtonGroup/IconButtonGroup.js";import"../../WebCore/Image/Image.js";import"../../WebCore/KbdGroup/Kbd.js";import"../../WebCore/KbdGroup/KbdGroup.js";import"../../WebCore/KeyValueLabel/KeyValueLabel.js";import"../../WebCore/Label/Label.js";import"../../WebCore/Likert/LikertContainer.js";import"../../WebCore/Likert/LikertLabel.js";import"../../WebCore/Likert/LikertRadio.js";import"../../WebCore/Link/StyledLink.js";import"@lottiefiles/dotlottie-react";import"../../WebCore/LoopsAiButton/LoopsAiButton.js";import"markdown-to-jsx";import"material-ui-popup-state/hooks";import u from"../../WebCore/Surface/Surface.js";import"../../WebCore/Menu/MenuItem.js";import"../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js";import"../../WebCore/ModalLayout/_partials/ModalContentWrapper.js";import"../../WebCore/NavigationButton/NavigationButton.js";import"../../WebCore/Nudge/NudgeButton.js";import"../../WebCore/NumberField/NumberField.js";import"../../BrandCore/colorRamps.js";import"../../BrandCore/semanticColor.js";import"../../BrandCore/types.js";import"../../BrandCore/typography.js";import"../../WebCore/Progress/Progress.js";import"../../WebCore/Pill/StyledPill.js";import"../../WebCore/ProgressBar/ProgressBar.js";import"../../WebCore/Radio/StyledRadio.js";import"../../WebCore/Select/StyledSelect.js";import"../../WebCore/RankItem/RankItemContainer.js";import"../../WebCore/RankItem/RankItemLabel.js";import"../../WebCore/SortableList/SortableList.js";import"../../WebCore/SortableList/components/SortableItem/SortableItem.js";import"../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js";import"@tiptap/extension-placeholder";import"@tiptap/starter-kit";import"mui-tiptap";import"../../WebCore/RichTextField/StyledRichTextEditor.js";import"../../WebCore/Skeleton/Skeleton.js";import"../../WebCore/Slider/StyledSlider.js";import"../../WebCore/StarRating/StarRating.js";import"../../WebCore/Switch/StyledSwitch.js";import"../../WebCore/Textarea/Textarea.js";import"../../WebCore/TrialCard/TrialCardContainers.js";import"../../WebCore/TrialCard/TrialPill.js";import"../../WebCore/UserMenu/UserMenuButton.js";import"../../WebCore/VideoModal/VideoModal.js";import c from"./components/ActionButton/ActionButton.js";import b from"./components/Timeline/Timeline.js";const C=m(u)(({theme:e})=>({display:"flex",flex:1,padding:"2px",gap:e.spacing(e.custom.padding.sm),flexDirection:"column",borderRadius:18})),f=m(l)({alignItems:"center",justifyContent:"start",flexDirection:"row",flex:1}),g=s(t(({id:t,videoElement:s,initialEndTime:m=0,initialCurrentTime:l=0,initialMuted:u,initialVolume:g,markers:j,options:T,slots:W,events:{onEnd:y,onPlay:B,onSeekEnd:k,onSeeking:S,onSeekStart:v,onTimeUpdate:h,onPause:E,onVolumeChange:I,onVolumeMute:x,onRestart:L,onFirstPlay:P,onFirstEnded:A,onReset:w}={},videoSeekTime:F,slotProps:M},R)=>{const[G,V]=o(!1),[_,D]=o(!1),[K,N]=o([]),O={rtl:!1,volumeControls:!0,normaliseTime:!1,markerIndicatorMode:"time",markerIndicator:!1,markerIndicatorSize:3,volumeControlsType:"mute",disableBufferingEvents:!1,fullscreenControls:!1,hideStartTime:!1,hideEndTime:!1,...T},[{seeking:z,endTime:U,currentTime:q,playing:H,buffering:J,loaded:Q,ended:X,volume:Y,muted:Z,startTime:$,firstPlay:ee,firstEnded:re},te]=o({startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1,volume:g||1,muted:u||!1,buffering:!1});i(()=>{if(s.muted=Z,s.volume=Y,O.normaliseTime&&(void 0===m||void 0===l))throw new Error("Please supply an initial end time and initial currentTime for normalising time in VideoControls2.tsx");return()=>{be()}},[]),i(()=>{te(e=>({...e,startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0)})),s.currentTime=p(l??0)},[l,m]);const oe=n(()=>{te(e=>({...e,playing:!1,ended:!0,...!re&&{firstEnded:!0}})),y&&y(),!re&&A&&A()},[re]);i(()=>{if(!s||null==F)return;(async()=>{const e=!s.paused,r=F===U;te(e=>({...e,playing:!1,currentTime:p(F)})),await new Promise(e=>{const r=()=>{s.removeEventListener("seeked",r),e()};s.addEventListener("seeked",r),setTimeout(e,500)}),te(e=>({...e,currentTime:p(F)})),await new Promise(e=>setTimeout(e,50)),te(t=>({...t,playing:e,currentTime:p(r?F-.001:F+.001)}))})().catch(e=>{console.error("Error seeking video:",e)})},[F,s]);const ie=n(e=>{te(r=>({...r,muted:e.target?.muted,volume:"number"==typeof e.target?.volume?e.target?.volume:1})),Z!==e.target?.muted&&x&&x(!Z),Y!==e.target?.volume&&I&&I(Y)},[Z,Y]),ne=n(()=>{const e=p(s.currentTime)>=U&&U!==p(s.duration)&&!X,r=p(s.currentTime)>=U&&U===p(s.duration)&&!X&&!H;(e||r)&&(s.pause(),s.dispatchEvent(new Event("ended"))),te(e=>({...e,currentTime:p(s.currentTime)})),h&&h(p(s.currentTime))},[U,X,H]),ae=n(()=>{te(e=>({...e,playing:!1})),E&&E()},[q]),se=n(()=>{te(e=>({...e,playing:!0,ended:!1,...!O?.disableBufferingEvents&&{buffering:!1},...!ee&&{firstPlay:!0}})),!ee&&P&&P(),B&&B()},[ee,O?.disableBufferingEvents]),me=n(()=>{O?.disableBufferingEvents||te(e=>({...e,buffering:!0}))},[O?.disableBufferingEvents]),le=n(()=>{O?.disableBufferingEvents||te(e=>({...e,buffering:!1}))},[J,O?.disableBufferingEvents]),de=n(()=>{if(O?.disableBufferingEvents)return;const e=[];for(let r=0;r<s.buffered.length;r++){const t=s.buffered.start(r),o=s.buffered.end(r);if(o>=$&&t<=U){const r=Math.max(t,$),i=Math.min(o,U);e.push({start:r-$,end:i-$,startPercent:(r-$)/(U-$)*100,widthPercent:(i-r)/(U-$)*100})}}N(e)},[z,U,q,H,J,Q,X,Y,Z,$,K,O?.disableBufferingEvents]),pe=n(async e=>{H&&be(),s.currentTime=$,e&&await ce(),L&&L()},[H,q,$,U,X]),ue=n(async()=>{H&&be(),s.currentTime=$,te(e=>({...e,startTime:p(O.normaliseTime?l:0),endTime:p(O.normaliseTime?m:s.duration),currentTime:p(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1})),w&&w()},[H,q,$,U,X,l,m]),ce=async()=>{await s.play()},be=()=>{s.pause()},Ce=n(e=>{s.currentTime=p(e),te(r=>({...r,currentTime:p(e),ended:!1,seeking:!0,...!O?.disableBufferingEvents&&{buffering:!1},firstPlay:!ee||r.firstPlay,bufferProgress:e})),S&&S(e),!ee&&P&&P()},[J,ee,O?.disableBufferingEvents]),fe=n(async()=>{document.hidden?H&&!s.paused?(V(!0),be()):V(!1):(G&&!H&&await ce(),V(!1))},[H,G,be,ce,s]),ge=n(e=>{e&&s.pause(),te(e=>({...e,seeking:!0})),v&&v()},[X]),je=n(async(e,r,t)=>{r&&(s.currentTime=r),e&&!X&&await s.play(),t&&H&&s.pause(),te(e=>({...e,...r?{currentTime:r}:{},ended:!t&&e.ended,seeking:!1})),k&&k(r)},[H,X,J,z]),Te=n(()=>{document.fullscreenElement?document.exitFullscreen():s.requestFullscreen()},[s]);return d("fullscreenchange",()=>D(!!document.fullscreenElement),document),d("visibilitychange",fe,document),d("pause",ae,s),d("playing",se,s),d("timeupdate",ne,s),d("ended",oe,s),d("volumechange",ie,s),d("waiting",me,s),d("canplay",le,s),d("progress",de,s),a(R,()=>({play:ce,pause:be,restart:pe,reset:ue,seek:(e,r,t)=>je(r,e,t),videoState:{seeking:z,endTime:U,currentTime:q,playing:H,buffering:J,loaded:Q,ended:X,volume:Y,firstPlay:ee,firstEnded:re,muted:Z,startTime:$}})),e(C,{variation:"raised",id:t,sx:M?.paperContainer?.sx,children:[e(f,{...O?.rtl&&{dir:"rtl"},children:[r(c,{seeking:z,playing:H,ended:X,buffering:J,handleAction:async()=>{X?await pe(!0):H?be():await ce()}}),r(b,{handleSeeking:Ce,handleSeekEnd:je,handleSeekStart:ge,ended:X,marker:W?.marker,markersContainerProps:M?.markersContainer,markers:j,markerIndicatorMode:O.markerIndicatorMode,markerIndicatorSize:O.markerIndicatorSize,markerIndicator:O.markerIndicator,startTime:O.normaliseTime?$:0,currentTime:q,endTime:U,playing:H,bufferRanges:K,buffering:J,volume:Y,muted:Z,volumeControls:O.volumeControls,volumeControlsType:O.volumeControlsType,handleVolumeMute:()=>{s.muted=!Z},handleVolumeChange:e=>{s.volume=e,Z&&(s.muted=!1)},fullscreenControls:O.fullscreenControls,hideStartTime:O.hideStartTime,hideEndTime:O.hideEndTime,isFullScreen:_,handlefullscreenToggle:Te})]}),W?.bottom]})}));export{g as default};
@@ -1 +1 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("@mui/material"),i=require("@use-it/event-listener"),a=require("../../../utils/normaliseFloat.js");require("../../../utils/formValidation/misc.js"),require("../../BrandCore/Icon/Icon.js"),require("../../BrandCore/primitiveVariables.js"),require("../../WebCore/utils/typography.util.js"),require("../../BrandCore/textures.js"),require("../../WebCore/AnnualController/AnnualController.js"),require("../../WebCore/SelectItem/SelectItem.js"),require("../../WebCore/Accordion/Accordion.js"),require("../../WebCore/Animations/FadeIn.js"),require("../../WebCore/Text/Text.js"),require("@mui/icons-material"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js"),require("merge-sx"),require("../../WebCore/Badge/Badge.js"),require("../../WebCore/Breadcrumb/Breadcrumb.js"),require("../../WebCore/Button/Button.js"),require("../../WebCore/ButtonBase/ButtonBase.js"),require("../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js"),require("../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js"),require("../../WebCore/ButtonTabGroup/_partials/TabButton.js"),require("../../WebCore/Checkbox/StyledCheckbox.js"),require("../../WebCore/InputFieldBase/InputFieldBase.js"),require("../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js"),require("../../WebCore/InputLabelBase/StyledInputLabelBase.js"),require("../../WebCore/Differential/DifferentialContainer.js"),require("../../WebCore/Differential/DifferentialRadio.js"),require("../../WebCore/DropdownMenu/StyledMenu.js"),require("../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js"),require("../../WebCore/FormGenerator/FormGenerator.js"),require("../../WebCore/GridOverlay/GridOverlay.js"),require("html-react-parser"),require("../../WebCore/IconButton/IconButton.js"),require("../../WebCore/IconButtonBase/IconButtonBase.js"),require("../../WebCore/IconButtonGroup/IconButtonGroup.js"),require("../../WebCore/Image/Image.js"),require("../../WebCore/KbdGroup/Kbd.js"),require("../../WebCore/KbdGroup/KbdGroup.js"),require("../../WebCore/KeyValueLabel/KeyValueLabel.js"),require("../../WebCore/Label/Label.js"),require("../../WebCore/Likert/LikertContainer.js"),require("../../WebCore/Likert/LikertLabel.js"),require("../../WebCore/Likert/LikertRadio.js"),require("../../WebCore/Link/StyledLink.js"),require("@lottiefiles/dotlottie-react"),require("../../WebCore/LoopsAiButton/LoopsAiButton.js"),require("markdown-to-jsx"),require("material-ui-popup-state/hooks");var o=require("../../WebCore/Surface/Surface.js");require("../../WebCore/Menu/MenuItem.js"),require("../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js"),require("../../WebCore/ModalLayout/_partials/ModalContentWrapper.js"),require("../../WebCore/NavigationButton/NavigationButton.js"),require("../../WebCore/Nudge/NudgeButton.js"),require("../../WebCore/NumberField/NumberField.js"),require("../../BrandCore/colorRamps.js"),require("../../BrandCore/semanticColor.js"),require("../../BrandCore/types.js"),require("../../BrandCore/typography.js"),require("../../WebCore/Progress/Progress.js"),require("../../WebCore/Pill/StyledPill.js"),require("../../WebCore/ProgressBar/ProgressBar.js"),require("../../WebCore/Radio/StyledRadio.js"),require("../../WebCore/Select/StyledSelect.js"),require("../../WebCore/RankItem/RankItemContainer.js"),require("../../WebCore/RankItem/RankItemLabel.js"),require("../../WebCore/SortableList/SortableList.js"),require("../../WebCore/SortableList/components/SortableItem/SortableItem.js"),require("../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js"),require("@tiptap/extension-placeholder"),require("@tiptap/starter-kit"),require("mui-tiptap"),require("../../WebCore/RichTextField/StyledRichTextEditor.js"),require("../../WebCore/Skeleton/Skeleton.js"),require("../../WebCore/Slider/StyledSlider.js"),require("../../WebCore/StarRating/StarRating.js"),require("../../WebCore/Switch/StyledSwitch.js"),require("../../WebCore/Textarea/Textarea.js"),require("../../WebCore/TrialCard/TrialCardContainers.js"),require("../../WebCore/TrialCard/TrialPill.js"),require("../../WebCore/UserMenu/UserMenuButton.js"),require("../../WebCore/VideoModal/VideoModal.js");var n=require("./components/ActionButton/ActionButton.js"),s=require("./components/Timeline/Timeline.js");function l(e){return e&&e.__esModule?e:{default:e}}var u=l(i);const d=t.styled(o)(({theme:e})=>({display:"flex",flex:1,padding:"2px",gap:e.spacing(e.custom.padding.sm),flexDirection:"column"})),m=t.styled(t.Stack)({alignItems:"center",justifyContent:"start",flexDirection:"row",flex:1}),c=r.forwardRef(({id:t,videoElement:i,initialEndTime:o=0,initialCurrentTime:l=0,initialMuted:c,initialVolume:b,markers:C,options:p,slots:f,events:{onEnd:q,onPlay:j,onSeekEnd:g,onSeeking:T,onSeekStart:y,onTimeUpdate:W,onPause:k,onVolumeChange:B,onVolumeMute:v,onRestart:S,onFirstPlay:h,onFirstEnded:F,onReset:E}={},videoSeekTime:I,slotProps:x},L)=>{const[P,A]=r.useState(!1),[w,M]=r.useState(!1),[R,G]=r.useState([]),V={rtl:!1,volumeControls:!0,normaliseTime:!1,markerIndicatorMode:"time",markerIndicator:!1,markerIndicatorSize:3,volumeControlsType:"mute",disableBufferingEvents:!1,fullscreenControls:!1,hideStartTime:!1,hideEndTime:!1,...p},[{seeking:_,endTime:D,currentTime:K,playing:N,buffering:O,loaded:z,ended:U,volume:H,muted:J,startTime:Q,firstPlay:X,firstEnded:Y},Z]=r.useState({startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1,volume:b||1,muted:c||!1,buffering:!1});r.useEffect(()=>{if(i.muted=J,i.volume=H,V.normaliseTime&&(void 0===o||void 0===l))throw new Error("Please supply an initial end time and initial currentTime for normalising time in VideoControls2.tsx");return()=>{de()}},[]),r.useEffect(()=>{Z(e=>({...e,startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0)})),i.currentTime=a.normaliseFloat(l??0)},[l,o]);const $=r.useCallback(()=>{Z(e=>({...e,playing:!1,ended:!0,...!Y&&{firstEnded:!0}})),q&&q(),!Y&&F&&F()},[Y]);r.useEffect(()=>{if(!i||null==I)return;(async()=>{const e=!i.paused,r=I===D;Z(e=>({...e,playing:!1,currentTime:a.normaliseFloat(I)})),await new Promise(e=>{const r=()=>{i.removeEventListener("seeked",r),e()};i.addEventListener("seeked",r),setTimeout(e,500)}),Z(e=>({...e,currentTime:a.normaliseFloat(I)})),await new Promise(e=>setTimeout(e,50)),Z(t=>({...t,playing:e,currentTime:a.normaliseFloat(r?I-.001:I+.001)}))})().catch(e=>{console.error("Error seeking video:",e)})},[I,i]);const ee=r.useCallback(e=>{Z(r=>({...r,muted:e.target?.muted,volume:"number"==typeof e.target?.volume?e.target?.volume:1})),J!==e.target?.muted&&v&&v(!J),H!==e.target?.volume&&B&&B(H)},[J,H]),re=r.useCallback(()=>{const e=a.normaliseFloat(i.currentTime)>=D&&D!==a.normaliseFloat(i.duration)&&!U,r=a.normaliseFloat(i.currentTime)>=D&&D===a.normaliseFloat(i.duration)&&!U&&!N;(e||r)&&(i.pause(),i.dispatchEvent(new Event("ended"))),Z(e=>({...e,currentTime:a.normaliseFloat(i.currentTime)})),W&&W(a.normaliseFloat(i.currentTime))},[D,U,N]),te=r.useCallback(()=>{Z(e=>({...e,playing:!1})),k&&k()},[K]),ie=r.useCallback(()=>{Z(e=>({...e,playing:!0,ended:!1,...!V?.disableBufferingEvents&&{buffering:!1},...!X&&{firstPlay:!0}})),!X&&h&&h(),j&&j()},[X,V?.disableBufferingEvents]),ae=r.useCallback(()=>{V?.disableBufferingEvents||Z(e=>({...e,buffering:!0}))},[V?.disableBufferingEvents]),oe=r.useCallback(()=>{V?.disableBufferingEvents||Z(e=>({...e,buffering:!1}))},[O,V?.disableBufferingEvents]),ne=r.useCallback(()=>{if(V?.disableBufferingEvents)return;const e=[];for(let r=0;r<i.buffered.length;r++){const t=i.buffered.start(r),a=i.buffered.end(r);if(a>=Q&&t<=D){const r=Math.max(t,Q),i=Math.min(a,D);e.push({start:r-Q,end:i-Q,startPercent:(r-Q)/(D-Q)*100,widthPercent:(i-r)/(D-Q)*100})}}G(e)},[_,D,K,N,O,z,U,H,J,Q,R,V?.disableBufferingEvents]),se=r.useCallback(async e=>{N&&de(),i.currentTime=Q,e&&await ue(),S&&S()},[N,K,Q,D,U]),le=r.useCallback(async()=>{N&&de(),i.currentTime=Q,Z(e=>({...e,startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1})),E&&E()},[N,K,Q,D,U,l,o]),ue=async()=>{await i.play()},de=()=>{i.pause()},me=r.useCallback(e=>{i.currentTime=a.normaliseFloat(e),Z(r=>({...r,currentTime:a.normaliseFloat(e),ended:!1,seeking:!0,...!V?.disableBufferingEvents&&{buffering:!1},firstPlay:!X||r.firstPlay,bufferProgress:e})),T&&T(e),!X&&h&&h()},[O,X,V?.disableBufferingEvents]),ce=r.useCallback(async()=>{document.hidden?N&&!i.paused?(A(!0),de()):A(!1):(P&&!N&&await ue(),A(!1))},[N,P,de,ue,i]),be=r.useCallback(e=>{e&&i.pause(),Z(e=>({...e,seeking:!0})),y&&y()},[U]),Ce=r.useCallback(async(e,r,t)=>{r&&(i.currentTime=r),e&&!U&&await i.play(),t&&N&&i.pause(),Z(e=>({...e,...r?{currentTime:r}:{},ended:!t&&e.ended,seeking:!1})),g&&g(r)},[N,U,O,_]),pe=r.useCallback(()=>{document.fullscreenElement?document.exitFullscreen():i.requestFullscreen()},[i]);return u.default("fullscreenchange",()=>M(!!document.fullscreenElement),document),u.default("visibilitychange",ce,document),u.default("pause",te,i),u.default("playing",ie,i),u.default("timeupdate",re,i),u.default("ended",$,i),u.default("volumechange",ee,i),u.default("waiting",ae,i),u.default("canplay",oe,i),u.default("progress",ne,i),r.useImperativeHandle(L,()=>({play:ue,pause:de,restart:se,reset:le,seek:(e,r,t)=>Ce(r,e,t),videoState:{seeking:_,endTime:D,currentTime:K,playing:N,buffering:O,loaded:z,ended:U,volume:H,firstPlay:X,firstEnded:Y,muted:J,startTime:Q}})),e.jsxs(d,{variation:"raised",borderradius:"xl",id:t,sx:x?.paperContainer?.sx,children:[e.jsxs(m,{...V?.rtl&&{dir:"rtl"},children:[e.jsx(n,{seeking:_,playing:N,ended:U,buffering:O,handleAction:async()=>{U?await se(!0):N?de():await ue()}}),e.jsx(s,{handleSeeking:me,handleSeekEnd:Ce,handleSeekStart:be,ended:U,marker:f?.marker,markersContainerProps:x?.markersContainer,markers:C,markerIndicatorMode:V.markerIndicatorMode,markerIndicatorSize:V.markerIndicatorSize,markerIndicator:V.markerIndicator,startTime:V.normaliseTime?Q:0,currentTime:K,endTime:D,playing:N,bufferRanges:R,buffering:O,volume:H,muted:J,volumeControls:V.volumeControls,volumeControlsType:V.volumeControlsType,handleVolumeMute:()=>{i.muted=!J},handleVolumeChange:e=>{i.volume=e,J&&(i.muted=!1)},fullscreenControls:V.fullscreenControls,hideStartTime:V.hideStartTime,hideEndTime:V.hideEndTime,isFullScreen:w,handlefullscreenToggle:pe})]}),f?.bottom]})});var b=r.memo(c);module.exports=b;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("@mui/material"),i=require("@use-it/event-listener"),a=require("../../../utils/normaliseFloat.js");require("../../../utils/formValidation/misc.js"),require("../../BrandCore/Icon/Icon.js"),require("../../BrandCore/primitiveVariables.js"),require("../../WebCore/utils/typography.util.js"),require("../../BrandCore/textures.js"),require("../../WebCore/AnnualController/AnnualController.js"),require("../../WebCore/SelectItem/SelectItem.js"),require("../../WebCore/Accordion/Accordion.js"),require("../../WebCore/Animations/FadeIn.js"),require("../../WebCore/Text/Text.js"),require("@mui/icons-material"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js"),require("merge-sx"),require("../../WebCore/Badge/Badge.js"),require("../../WebCore/Breadcrumb/Breadcrumb.js"),require("../../WebCore/Button/Button.js"),require("../../WebCore/ButtonBase/ButtonBase.js"),require("../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js"),require("../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js"),require("../../WebCore/ButtonTabGroup/_partials/TabButton.js"),require("../../WebCore/Checkbox/StyledCheckbox.js"),require("../../WebCore/InputFieldBase/InputFieldBase.js"),require("../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js"),require("../../WebCore/InputLabelBase/StyledInputLabelBase.js"),require("../../WebCore/Differential/DifferentialContainer.js"),require("../../WebCore/Differential/DifferentialRadio.js"),require("../../WebCore/DropdownMenu/StyledMenu.js"),require("../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js"),require("../../WebCore/FormGenerator/FormGenerator.js"),require("../../WebCore/GridOverlay/GridOverlay.js"),require("html-react-parser"),require("../../WebCore/IconButton/IconButton.js"),require("../../WebCore/IconButtonBase/IconButtonBase.js"),require("../../WebCore/IconButtonGroup/IconButtonGroup.js"),require("../../WebCore/Image/Image.js"),require("../../WebCore/KbdGroup/Kbd.js"),require("../../WebCore/KbdGroup/KbdGroup.js"),require("../../WebCore/KeyValueLabel/KeyValueLabel.js"),require("../../WebCore/Label/Label.js"),require("../../WebCore/Likert/LikertContainer.js"),require("../../WebCore/Likert/LikertLabel.js"),require("../../WebCore/Likert/LikertRadio.js"),require("../../WebCore/Link/StyledLink.js"),require("@lottiefiles/dotlottie-react"),require("../../WebCore/LoopsAiButton/LoopsAiButton.js"),require("markdown-to-jsx"),require("material-ui-popup-state/hooks");var o=require("../../WebCore/Surface/Surface.js");require("../../WebCore/Menu/MenuItem.js"),require("../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js"),require("../../WebCore/ModalLayout/_partials/ModalContentWrapper.js"),require("../../WebCore/NavigationButton/NavigationButton.js"),require("../../WebCore/Nudge/NudgeButton.js"),require("../../WebCore/NumberField/NumberField.js"),require("../../BrandCore/colorRamps.js"),require("../../BrandCore/semanticColor.js"),require("../../BrandCore/types.js"),require("../../BrandCore/typography.js"),require("../../WebCore/Progress/Progress.js"),require("../../WebCore/Pill/StyledPill.js"),require("../../WebCore/ProgressBar/ProgressBar.js"),require("../../WebCore/Radio/StyledRadio.js"),require("../../WebCore/Select/StyledSelect.js"),require("../../WebCore/RankItem/RankItemContainer.js"),require("../../WebCore/RankItem/RankItemLabel.js"),require("../../WebCore/SortableList/SortableList.js"),require("../../WebCore/SortableList/components/SortableItem/SortableItem.js"),require("../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js"),require("@tiptap/extension-placeholder"),require("@tiptap/starter-kit"),require("mui-tiptap"),require("../../WebCore/RichTextField/StyledRichTextEditor.js"),require("../../WebCore/Skeleton/Skeleton.js"),require("../../WebCore/Slider/StyledSlider.js"),require("../../WebCore/StarRating/StarRating.js"),require("../../WebCore/Switch/StyledSwitch.js"),require("../../WebCore/Textarea/Textarea.js"),require("../../WebCore/TrialCard/TrialCardContainers.js"),require("../../WebCore/TrialCard/TrialPill.js"),require("../../WebCore/UserMenu/UserMenuButton.js"),require("../../WebCore/VideoModal/VideoModal.js");var n=require("./components/ActionButton/ActionButton.js"),s=require("./components/Timeline/Timeline.js");function l(e){return e&&e.__esModule?e:{default:e}}var u=l(i);const d=t.styled(o)(({theme:e})=>({display:"flex",flex:1,padding:"2px",gap:e.spacing(e.custom.padding.sm),flexDirection:"column",borderRadius:18})),m=t.styled(t.Stack)({alignItems:"center",justifyContent:"start",flexDirection:"row",flex:1}),c=r.forwardRef(({id:t,videoElement:i,initialEndTime:o=0,initialCurrentTime:l=0,initialMuted:c,initialVolume:b,markers:C,options:p,slots:f,events:{onEnd:q,onPlay:j,onSeekEnd:g,onSeeking:T,onSeekStart:y,onTimeUpdate:W,onPause:k,onVolumeChange:B,onVolumeMute:v,onRestart:S,onFirstPlay:h,onFirstEnded:F,onReset:E}={},videoSeekTime:I,slotProps:x},L)=>{const[P,A]=r.useState(!1),[w,M]=r.useState(!1),[R,G]=r.useState([]),V={rtl:!1,volumeControls:!0,normaliseTime:!1,markerIndicatorMode:"time",markerIndicator:!1,markerIndicatorSize:3,volumeControlsType:"mute",disableBufferingEvents:!1,fullscreenControls:!1,hideStartTime:!1,hideEndTime:!1,...p},[{seeking:_,endTime:D,currentTime:K,playing:N,buffering:O,loaded:z,ended:U,volume:H,muted:J,startTime:Q,firstPlay:X,firstEnded:Y},Z]=r.useState({startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1,volume:b||1,muted:c||!1,buffering:!1});r.useEffect(()=>{if(i.muted=J,i.volume=H,V.normaliseTime&&(void 0===o||void 0===l))throw new Error("Please supply an initial end time and initial currentTime for normalising time in VideoControls2.tsx");return()=>{de()}},[]),r.useEffect(()=>{Z(e=>({...e,startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0)})),i.currentTime=a.normaliseFloat(l??0)},[l,o]);const $=r.useCallback(()=>{Z(e=>({...e,playing:!1,ended:!0,...!Y&&{firstEnded:!0}})),q&&q(),!Y&&F&&F()},[Y]);r.useEffect(()=>{if(!i||null==I)return;(async()=>{const e=!i.paused,r=I===D;Z(e=>({...e,playing:!1,currentTime:a.normaliseFloat(I)})),await new Promise(e=>{const r=()=>{i.removeEventListener("seeked",r),e()};i.addEventListener("seeked",r),setTimeout(e,500)}),Z(e=>({...e,currentTime:a.normaliseFloat(I)})),await new Promise(e=>setTimeout(e,50)),Z(t=>({...t,playing:e,currentTime:a.normaliseFloat(r?I-.001:I+.001)}))})().catch(e=>{console.error("Error seeking video:",e)})},[I,i]);const ee=r.useCallback(e=>{Z(r=>({...r,muted:e.target?.muted,volume:"number"==typeof e.target?.volume?e.target?.volume:1})),J!==e.target?.muted&&v&&v(!J),H!==e.target?.volume&&B&&B(H)},[J,H]),re=r.useCallback(()=>{const e=a.normaliseFloat(i.currentTime)>=D&&D!==a.normaliseFloat(i.duration)&&!U,r=a.normaliseFloat(i.currentTime)>=D&&D===a.normaliseFloat(i.duration)&&!U&&!N;(e||r)&&(i.pause(),i.dispatchEvent(new Event("ended"))),Z(e=>({...e,currentTime:a.normaliseFloat(i.currentTime)})),W&&W(a.normaliseFloat(i.currentTime))},[D,U,N]),te=r.useCallback(()=>{Z(e=>({...e,playing:!1})),k&&k()},[K]),ie=r.useCallback(()=>{Z(e=>({...e,playing:!0,ended:!1,...!V?.disableBufferingEvents&&{buffering:!1},...!X&&{firstPlay:!0}})),!X&&h&&h(),j&&j()},[X,V?.disableBufferingEvents]),ae=r.useCallback(()=>{V?.disableBufferingEvents||Z(e=>({...e,buffering:!0}))},[V?.disableBufferingEvents]),oe=r.useCallback(()=>{V?.disableBufferingEvents||Z(e=>({...e,buffering:!1}))},[O,V?.disableBufferingEvents]),ne=r.useCallback(()=>{if(V?.disableBufferingEvents)return;const e=[];for(let r=0;r<i.buffered.length;r++){const t=i.buffered.start(r),a=i.buffered.end(r);if(a>=Q&&t<=D){const r=Math.max(t,Q),i=Math.min(a,D);e.push({start:r-Q,end:i-Q,startPercent:(r-Q)/(D-Q)*100,widthPercent:(i-r)/(D-Q)*100})}}G(e)},[_,D,K,N,O,z,U,H,J,Q,R,V?.disableBufferingEvents]),se=r.useCallback(async e=>{N&&de(),i.currentTime=Q,e&&await ue(),S&&S()},[N,K,Q,D,U]),le=r.useCallback(async()=>{N&&de(),i.currentTime=Q,Z(e=>({...e,startTime:a.normaliseFloat(V.normaliseTime?l:0),endTime:a.normaliseFloat(V.normaliseTime?o:i.duration),currentTime:a.normaliseFloat(l??0),loaded:!0,ended:!1,firstPlay:!1,firstEnded:!1,seeking:!1,playing:!1})),E&&E()},[N,K,Q,D,U,l,o]),ue=async()=>{await i.play()},de=()=>{i.pause()},me=r.useCallback(e=>{i.currentTime=a.normaliseFloat(e),Z(r=>({...r,currentTime:a.normaliseFloat(e),ended:!1,seeking:!0,...!V?.disableBufferingEvents&&{buffering:!1},firstPlay:!X||r.firstPlay,bufferProgress:e})),T&&T(e),!X&&h&&h()},[O,X,V?.disableBufferingEvents]),ce=r.useCallback(async()=>{document.hidden?N&&!i.paused?(A(!0),de()):A(!1):(P&&!N&&await ue(),A(!1))},[N,P,de,ue,i]),be=r.useCallback(e=>{e&&i.pause(),Z(e=>({...e,seeking:!0})),y&&y()},[U]),Ce=r.useCallback(async(e,r,t)=>{r&&(i.currentTime=r),e&&!U&&await i.play(),t&&N&&i.pause(),Z(e=>({...e,...r?{currentTime:r}:{},ended:!t&&e.ended,seeking:!1})),g&&g(r)},[N,U,O,_]),pe=r.useCallback(()=>{document.fullscreenElement?document.exitFullscreen():i.requestFullscreen()},[i]);return u.default("fullscreenchange",()=>M(!!document.fullscreenElement),document),u.default("visibilitychange",ce,document),u.default("pause",te,i),u.default("playing",ie,i),u.default("timeupdate",re,i),u.default("ended",$,i),u.default("volumechange",ee,i),u.default("waiting",ae,i),u.default("canplay",oe,i),u.default("progress",ne,i),r.useImperativeHandle(L,()=>({play:ue,pause:de,restart:se,reset:le,seek:(e,r,t)=>Ce(r,e,t),videoState:{seeking:_,endTime:D,currentTime:K,playing:N,buffering:O,loaded:z,ended:U,volume:H,firstPlay:X,firstEnded:Y,muted:J,startTime:Q}})),e.jsxs(d,{variation:"raised",id:t,sx:x?.paperContainer?.sx,children:[e.jsxs(m,{...V?.rtl&&{dir:"rtl"},children:[e.jsx(n,{seeking:_,playing:N,ended:U,buffering:O,handleAction:async()=>{U?await se(!0):N?de():await ue()}}),e.jsx(s,{handleSeeking:me,handleSeekEnd:Ce,handleSeekStart:be,ended:U,marker:f?.marker,markersContainerProps:x?.markersContainer,markers:C,markerIndicatorMode:V.markerIndicatorMode,markerIndicatorSize:V.markerIndicatorSize,markerIndicator:V.markerIndicator,startTime:V.normaliseTime?Q:0,currentTime:K,endTime:D,playing:N,bufferRanges:R,buffering:O,volume:H,muted:J,volumeControls:V.volumeControls,volumeControlsType:V.volumeControlsType,handleVolumeMute:()=>{i.muted=!J},handleVolumeChange:e=>{i.volume=e,J&&(i.muted=!1)},fullscreenControls:V.fullscreenControls,hideStartTime:V.hideStartTime,hideEndTime:V.hideEndTime,isFullScreen:w,handlefullscreenToggle:pe})]}),f?.bottom]})});var b=r.memo(c);module.exports=b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useloops/design-system",
3
- "version": "1.4.693",
3
+ "version": "1.4.694",
4
4
  "description": "The official React based Loops design system",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",