markdown-flow-ui 0.2.8 → 0.2.9-dev.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.
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/_virtual/index.es9.js +2 -2
- package/dist/components/Slide/Slide.cjs.js +1 -1
- package/dist/components/Slide/Slide.cjs.js.map +1 -1
- package/dist/components/Slide/Slide.es.js +821 -779
- package/dist/components/Slide/Slide.es.js.map +1 -1
- package/dist/node_modules/@braintree/sanitize-url/dist/index.cjs.js +1 -1
- package/dist/node_modules/@braintree/sanitize-url/dist/index.es.js +1 -1
- package/dist/node_modules/classnames/index.cjs.js +1 -1
- package/dist/node_modules/classnames/index.es.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
|
|
2
2
|
//# sourceMappingURL=index.cjs8.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={exports:{}};exports.__module=e;
|
|
2
2
|
//# sourceMappingURL=index.cjs9.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),Er=require("../../lib/sandboxInteraction.cjs.js"),de=require("../../lib/utils.cjs.js"),Ir=require("../ui/loading-overlay-card.cjs.js"),Rr=require("../ContentRender/ContentRender.cjs.js"),yn=require("../ContentRender/IframeSandbox.cjs.js");require("../ui/inputGroup/input-group.cjs.js");require("../ContentRender/contentRenderI18n.cjs.js");const Qe=require("../../lib/mobileDevice.cjs.js"),Ar=require("./Player.cjs.js"),Cr=require("./MarkdownSlideScaling.cjs.js"),wr=require("./SubtitleOverlay.cjs.js"),kr=require("./useSlide.cjs.js"),Tr=require("./useWakePlayerFromIframe.cjs.js"),Mr=require("./utils/playerKeyboardShortcutContext.cjs.js"),Pr=require("./utils/playerKeyboardShortcuts.cjs.js"),Oe=require("./utils/mobileScreenMode.cjs.js"),Ze=require("./utils/interactionPlayback.cjs.js"),_r=require("./utils/markdownScaling.cjs.js"),Rt=require("./utils/playerNavigationContext.cjs.js"),Or=require("./utils/appendedMarkerAdvance.cjs.js"),hn=require("./utils/playbackSequence.cjs.js"),At=require("./utils/subtitleJumpNavigation.cjs.js"),xn=require("./utils/playerCustomActions.cjs.js"),jr=require("./utils/playbackTimeStore.cjs.js"),qr=require("./utils/interactionResolution.cjs.js"),Fr=require("./utils/playerToggleMode.cjs.js"),Sn=require("./utils/imageOnlyStepVisualReady.cjs.js"),Br=require("./utils/silentStepAutoAdvance.cjs.js"),Dr=require("./utils/playerVisibility.cjs.js"),vn=require("./slideI18n.cjs.js");;/* empty css */const Ct=require("../../node_modules/lucide-react/dist/esm/icons/grip-horizontal.cjs.js"),Nr=require("../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js"),Lr=2e3,Vr=300,Kr=160,Ur=16,bn=3e3,gn={x:0,y:0},Hr=typeof window>"u"?t.useEffect:t.useLayoutEffect,Yr=["button","input","textarea",'[contenteditable=""]','[contenteditable="true"]','[contenteditable="plaintext-only"]'].join(", "),kt="waitingForAudio",Wr=(i,f)=>typeof i=="string"?i:i[f]??i[kt]??vn.DEFAULT_SLIDE_BUFFERING_TEXTS[f],Gr=(i,f)=>typeof i=="string"?i:{...f,...i},Jr=(i,f)=>f?i!=="loadingAudio":!1,En=t.memo(({content:i,title:f,locale:L,defaultButtonText:fe,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:et,onDragHandlePointerCancel:X,onDragHandlePointerDown:tt,onDragHandlePointerMove:me,onDragHandlePointerUp:qe,readonly:Fe=!1})=>a.jsxRuntimeExports.jsxs("div",{className:"slide-player__interaction-card",children:[a.jsxRuntimeExports.jsx("button",{type:"button",className:"slide-player__interaction-drag-handle","aria-label":"Move interaction",onPointerCancel:X,onPointerDown:tt,onPointerMove:me,onPointerUp:qe,children:a.jsxRuntimeExports.jsxs("span",{className:"slide-player__interaction-drag-handle-icon",children:[a.jsxRuntimeExports.jsx(Ct.default,{"aria-hidden":"true"}),a.jsxRuntimeExports.jsx(Ct.default,{"aria-hidden":"true"}),a.jsxRuntimeExports.jsx(Ct.default,{"aria-hidden":"true"})]})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-header",children:a.jsxRuntimeExports.jsx("p",{className:"slide-player__interaction-title",children:f})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-body",children:a.jsxRuntimeExports.jsx(Rr.default,{content:i,locale:L,defaultButtonText:fe,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:et,readonly:Fe,sandboxMode:"content"})})]}));En.displayName="InteractionOverlayCard";const $r=(i,f)=>i.length===f.length&&i.every((L,fe)=>{const V=f[fe];return L.sequence_number===V?.sequence_number&&L.type===V?.type&&L.content===V?.content}),wt=i=>i instanceof HTMLElement&&!!i.closest(Yr),zr=({elementList:i=[],locale:f,playerEnabled:L,playerControlsVisibility:fe,playerClassName:V,fullscreenHeader:K,playerCustomActions:$,playerCustomActionPauseOnActive:z=!0,bufferingText:je,interactionTitle:et,interactionTexts:X,playerTexts:tt,playerAutoHideDelay:me=3e3,markerAutoAdvanceDelay:qe=Lr,interactionDefaultValueOptions:Fe,onSend:Tt,onPlayerVisibilityChange:nt,onMobileViewModeChange:Mt,onStepChange:Pt,enableKeyboardShortcuts:Q=!0,enableIframeScaling:In=!0,enableMarkdownScaling:Rn=!0,disableLoadingOverlay:C=!1,className:An,onPointerDown:_t,onFocusCapture:Ot,...Cn})=>{const U=t.useMemo(()=>vn.getSlideLocaleTexts(f),[f]),wn=t.useMemo(()=>Gr(je,U.bufferingText),[je,U.bufferingText]),{playerEnabled:kn,playerControlsVisibility:F}=Dr.resolveSlidePlayerVisibility({playerEnabled:L,playerControlsVisibility:fe}),Be=t.useId(),pe=t.useRef(null),rt=t.useRef(null),De=t.useRef(null),jt=t.useRef(null),Z=t.useRef(null),Ne=t.useRef(!1),ye=t.useRef(null),Le=t.useRef(null),H=t.useRef(null),he=t.useRef(null),xe=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),qt=t.useRef([]),ge=t.useRef(!1),Y=t.useRef(null),ve=t.useRef(null),Ft=t.useRef(0),Bt=t.useRef(null),Dt=t.useRef({markerCount:0,currentIndex:-1,canGoNext:!1}),ot=t.useRef(!1),{currentElementList:R,stepElementLists:Nt,slideElementList:I,currentIndex:u,audioList:y,audioSlideIndexes:Ve,currentAudioSequenceIndexes:Ke,currentStepHasSpeakableElement:h,currentInteractionElement:c,canGoPrev:Tn,canGoNext:A,handlePrev:Lt,handleNext:w,handleGoTo:Vt}=kr.default(i),Ee=t.useMemo(()=>{if(!(u<0))return I[u]},[u,I]),ee=t.useMemo(()=>R.map((e,n)=>`${e.sequence_number??`${e.type}-${n}`}:${String(e.is_new??"")}`),[R]),Mn=I.filter(e=>e.is_renderable!==!1).length===1,m=kn&&(I.length>0||y.length>0||!!c),Pn=t.useMemo(()=>({enabled:Q,ownerId:Be}),[Q,Be]),B=t.useCallback(()=>{!Q||!m||Pr.activatePlayerKeyboardShortcutOwner(Be)},[Q,Be,m]),k=t.useMemo(()=>Ke.map(e=>y[e]?.audioKey).filter(e=>!!e),[y,Ke]),[_n,Ie]=t.useState(!0),[Ue,te]=t.useState(!1),[st,Kt]=t.useState(!0),[Re,Ut]=t.useState(!0),[b,D]=t.useState(null),[On,Ht]=t.useState(null),[jn,x]=t.useState(!1),[qn,lt]=t.useState(kt),[T,at]=t.useState(!1),[Fn,He]=t.useState(!1),[Yt,Bn]=t.useState(!0),[ut,it]=t.useState(!1),[d,ct]=t.useState(),[ne,Ye]=t.useState(!1),[Wt,We]=t.useState(!1),[S,dt]=t.useState(gn),[ft,mt]=t.useState(!1),[Dn,Ae]=t.useState(0),[Gt,Nn]=t.useState(!1),j=t.useMemo(()=>Qe.isMobileDevice(),[]),[Ge,pt]=t.useState(Oe.DEFAULT_MOBILE_VIEW_MODE),[Jt,yt]=t.useState(!1),[Ln,$t]=t.useState(()=>j?Qe.isLandscapeViewport():!1),re=t.useMemo(()=>jr.createPlaybackTimeStore(),[]),{effectiveMobileViewMode:oe,isImmersiveMobileFullscreen:se,isNativeMobileFullscreen:zt,shouldRotateFullscreenViewport:Vn}=t.useMemo(()=>Oe.resolveMobileViewModeState({hasManualMobileViewMode:Jt,isMobileDevice:j,mobileViewMode:Ge}),[Jt,j,Ln,Ge]),Kn=t.useRef(oe),g=m&&F!=="hidden"&&(F==="visible"||_n),Un=se&&g,Hn=se&&g,Yn=se||zt,Xt=Gt&&!j,Wn=t.useCallback(e=>{yt(!0),pt(e)},[]),Qt=t.useCallback(()=>{yt(!1),pt(Oe.DEFAULT_MOBILE_VIEW_MODE)},[]),Gn=t.useCallback(()=>{Qt(),K?.onBack?.()},[K,Qt]),Zt=t.useCallback(e=>{it(e)},[]),en=t.useCallback(()=>{it(e=>!e)},[]),{mountedStepStates:Jn,currentMountedStateIndex:$n}=t.useMemo(()=>{const e=[],n=new Map;return Nt.forEach((o,s)=>{const l=e.findIndex(r=>$r(r.elementList,o));if(l>=0){e[l]?.sourceStepIndexes.push(s),n.set(s,l);return}e.push({elementList:o,sourceStepIndexes:[s]}),n.set(s,e.length-1)}),{mountedStepStates:e,currentMountedStateIndex:u>=0?n.get(u)??-1:-1}},[u,Nt]),tn=t.useMemo(()=>String(u),[u]),v=t.useMemo(()=>b?y.findIndex(e=>(e.audioKey??"")===b):-1,[y,b]),ht=t.useMemo(()=>v>=0?y[v]:void 0,[y,v]),zn=ht?.element?.subtitle_cues??[],Je=t.useMemo(()=>k[0]??"none",[k]),xt=t.useMemo(()=>({currentElement:xn.resolvePlayerCustomActionElement({currentAudioIndex:v,currentAudioSequenceIndexes:Ke,audioList:y,currentInteractionElement:d,currentStepElement:Ee}),currentIndex:u,currentStepElement:Ee,isActive:ut,setActive:Zt,toggleActive:en}),[d,y,v,Ke,u,Ee,ut,Zt,en]),St=t.useMemo(()=>xn.getPlayerCustomActionCount($,xt),[xt,$]),Xn=t.useMemo(()=>({"--slide-player-custom-action-count":String(St),"--slide-player-mobile-control-count":String(St+4),"--slide-interaction-drag-x":`${S.x}px`,"--slide-interaction-drag-y":`${S.y}px`}),[S.x,S.y,St]),nn=k.length>0,rn=t.useMemo(()=>c?`${c.sequence_number??"none"}:${String(c.content??"")}`:"none",[c]),Ce=t.useMemo(()=>[tn,rn].join("|"),[rn,tn]),Qn=t.useMemo(()=>[Ce,ht?.audioKey??"none",String(v)].join("|"),[v,ht?.audioKey,Ce]),on=!!t.useMemo(()=>!Je||Je==="none"?"":y.find(n=>n.audioKey===Je)?.audioUrl?.trim()??"",[y,Je]),W=z&&!!$&&ut,we=t.useMemo(()=>Fr.shouldUseAutoAdvanceToggle({canGoNext:A,currentAudioIndex:v,currentStepHasSpeakableElement:h,hasInteraction:!!c}),[A,v,c,h]),sn=t.useMemo(()=>Br.resolveSilentStepAutoAdvanceBehavior({currentElementList:R,currentStepHasSpeakableElement:h,currentInteractionElement:c,markerAutoAdvanceDelay:qe}),[R,c,h,qe]),ln=sn.delayMs,ke=sn.usesImageOnlyDelay,bt=t.useMemo(()=>`${u}:${ee.join("|")}`,[u,ee]),[Zn,er]=t.useState(null),an=!ke||Zn===bt,q=t.useCallback(()=>{Z.current!==null&&(window.clearTimeout(Z.current),Z.current=null)},[]),M=t.useCallback(()=>{H.current!==null&&(window.clearTimeout(H.current),H.current=null)},[]),P=t.useCallback(()=>{he.current!==null&&(window.clearTimeout(he.current),he.current=null)},[]),le=t.useCallback(()=>{ye.current!==null&&(window.clearTimeout(ye.current),ye.current=null)},[]),N=t.useCallback(()=>{Le.current!==null&&(window.clearTimeout(Le.current),Le.current=null)},[]),_=t.useCallback((e={})=>{le(),M(),P(),N(),D(null),re.reset(),x(!1),lt(kt),at(!1),He(!1),Ht(null),e.preservePendingSubtitleJump||(ve.current=null),ct(void 0),Ye(!1),Ae(0)},[le,N,M,P,re]),$e=t.useCallback(e=>{Ft.current+=1,Ht({...e,id:Ft.current})},[]),ae=t.useCallback(()=>{const e=k[0];return e?(D(e),!0):!1},[k]),Te=t.useCallback(()=>{M(),P(),Ye(!1),Ae(0),!ae()&&A&&w()},[A,M,P,w,ae]),un=t.useCallback(e=>{if(P(),!e)return;const n=()=>{he.current=null,Ae(Kr),Ye(!0),Y.current=null};he.current=window.setTimeout(n,Vr)},[P]),gt=t.useCallback(()=>Ne.current||!!pe.current?.querySelector(".slide-player__controls:hover"),[]),p=t.useCallback((e=Ue)=>{!m||F==="hidden"||(Ie(!0),q(),!(F==="visible"||!e||me<=0||gt())&&(Z.current=window.setTimeout(()=>{if(gt()){Z.current=null;return}Ie(!1),Z.current=null},me)))},[q,Ue,gt,me,F,m]),Me=!!At.hasResolvedInteractionElement(c),ue=!!c&&!Me,tr=t.useCallback(e=>{Kt(e)},[]),ie=t.useCallback(e=>{e&&Kt(e.shouldContinuePlayback)},[]);t.useEffect(()=>{Ut(st)},[u,st,z]),t.useEffect(()=>{z&&it(!1)},[u,z]),t.useEffect(()=>()=>{le(),N(),q(),M(),P()},[le,N,M,P,q]),t.useEffect(()=>{if(!ke){N();return}let e=!1,n=null,o=null;const s=()=>{o?.(),o=null},l=()=>{e||(s(),N(),er(bt))},r=()=>{if(e)return;s();const E=De.current?.querySelector('[data-active-step="true"]');if(!E)return;const O=Array.from(E.querySelectorAll("iframe"));if(O.length===0||Sn.areImageOnlyStepIframeVisualsReady(O)){l();return}const Xe=[],_e=()=>{e||(n!==null&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{n=null,r()}))},It=(G,ce,J)=>{G.addEventListener(ce,J,{once:!0}),Xe.push(()=>G.removeEventListener(ce,J))};O.forEach(G=>{const ce=G.contentDocument;if(!ce||ce.readyState!=="complete"){It(G,"load",_e);return}Array.from(ce.images).filter(J=>!J.complete).forEach(J=>{It(J,"load",_e),It(J,"error",_e)})}),o=()=>{Xe.forEach(G=>G())}};return n=window.requestAnimationFrame(()=>{n=null,r()}),Le.current=window.setTimeout(()=>{l()},Sn.DEFAULT_IMAGE_ONLY_VISUAL_READY_TIMEOUT_MS),()=>{e=!0,s(),N(),n!==null&&window.cancelAnimationFrame(n)}},[N,R,u,bt,ke]),t.useEffect(()=>(nt?.(g),()=>{nt?.(!1)}),[nt,g]),t.useEffect(()=>{g||(Ne.current=!1)},[g]),t.useEffect(()=>{j||Ge===Oe.DEFAULT_MOBILE_VIEW_MODE||(yt(!1),pt(Oe.DEFAULT_MOBILE_VIEW_MODE))},[j,Ge]),t.useEffect(()=>{if(!j){$t(!1);return}const e=()=>{$t(Qe.isLandscapeViewport())};return e(),Qe.subscribeMobileDeviceChange(e)},[j]),t.useEffect(()=>{Mt?.(oe)},[oe,Mt]),t.useEffect(()=>{Kn.current=oe},[oe]),t.useEffect(()=>{Pt?.(Ee,u)},[u,Ee,Pt]),t.useEffect(()=>{const e=Dt.current,n=Or.shouldAutoAdvanceIntoAppendedMarker({previousMarkerCount:e.markerCount,nextMarkerCount:I.length,previousIndex:e.currentIndex,previousCanGoNext:e.canGoNext,nextCanGoNext:A,currentAudioKey:b,hasCompletedCurrentStepAudio:T,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h,currentInteractionElement:c,isAutoAdvanceEnabled:Re,shouldUseSilentStepAutoAdvanceToggle:we});Dt.current={markerCount:I.length,currentIndex:u,canGoNext:A},n&&w()},[A,b,u,c,h,w,T,Me,Re,we,I.length]),t.useEffect(()=>{if(!m||F==="hidden"){q(),Ie(!1);return}if(F==="visible"){q(),Ie(!0);return}Ue||p(!0)},[q,Ue,F,m,p]),t.useEffect(()=>{if(typeof window>"u")return;const e=n=>{n.origin===window.location.origin&&Er.isSandboxInteractionMessage(n.data)&&n.data.eventType==="click"&&m&&(B(),te(!0),p(!0))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[B,m,p]),Tr.default({sectionRef:pe,enabled:m,keyboardShortcutsEnabled:Q,onKeyboardShortcut:B,onWake:()=>{B(),te(!0),p(!0)}}),t.useEffect(()=>{if(!m){_();return}const{hasPlaybackContextChanged:e,shouldInitializeAudioSequence:n}=hn.getPlaybackSequenceTransition({previousResetKey:Bt.current,nextResetKey:Ce,currentAudioKey:b,hasCompletedCurrentStepAudio:T});Bt.current=Ce;const o=Y.current===u&&!!c,s=Ze.shouldPresentInteractionOverlay({hasInteraction:!!c,shouldBlockPlaybackForInteraction:ue,shouldOpenInteractionOverlayAfterAudio:o,hasPlaybackContextChanged:e,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h}),l=ve.current,r=l?.slideIndex===u;if(e&&_({preservePendingSubtitleJump:r}),!(R.length===0&&!c)&&!W){if(l?.slideIndex===u&&At.canReachSubtitleJumpTarget({currentIndex:u,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:l.slideIndex})){ve.current=null,ot.current=!0,D(l.audioKey),$e({audioIndex:l.audioIndex,timeMs:l.timeMs});return}if(c&&ct(c),s){un(c);return}if(P(),Y.current=null,!!n&&!ae()){if(h){if(C){x(!1);return}x(!0);return}if(A&&!(we&&!Re)&&!(ke&&!an))return ye.current=window.setTimeout(()=>{ye.current=null,w()},ln),()=>{le()}}}},[d,A,le,R.length,u,c,b,Ce,h,ke,an,ln,w,T,C,Re,Me,ue,P,_,$e,un,m,I,ae,W,we]),t.useEffect(()=>{if(C||W||!h||ue){x(!1);return}if(T){x(!1);return}if(nn){x(!1);return}lt("waitingForAudio"),x(!0)},[nn,h,T,C,W,ue]),t.useEffect(()=>{const e=ot.current;ot.current=!1,hn.shouldStartDefaultAudioSequence({currentAudioKey:b,currentAudioSequenceLength:k.length,currentStepHasSpeakableElement:h,hasCompletedCurrentStepAudio:T,shouldBlockPlaybackForInteraction:ue,shouldPausePlaybackForCustomAction:W,shouldSkipDefaultAudioStart:e})&&ae()},[b,k,h,T,W,ue,ae]),t.useEffect(()=>{!b||v>=0||D(null)},[v,b]),t.useEffect(()=>{v>=0||re.reset()},[v,re]),t.useEffect(()=>{He(!1)},[Qn]);const{interactionDefaults:cn,interactionDefaultSelectedValues:nr,hasResolvedInteractionInput:dn,isInteractionReadonly:rr,shouldAutoContinueInteraction:fn}=t.useMemo(()=>qr.resolveSlideInteractionState(d,{interactionDefaultValueOptions:Fe}),[d,Fe]),or=!!d?.readonly||rr,Pe=Ze.shouldRenderInteractionOverlay({hasActiveInteraction:!!d,isInteractionOverlayOpen:ne}),sr=t.useCallback(e=>{const o=[...e.selectedValues??[],e.inputText?.trim()??"",e.buttonText?.trim()??""].filter(Boolean).join(", ");ct(s=>!s||!o?s:{...s,user_input:o}),Tt?.(e,d),Te()},[d,Te,Tt]);t.useEffect(()=>{const e=()=>{Nn(document.fullscreenElement===pe.current)};return e(),document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[]),t.useEffect(()=>{d&&ne||We(!1)},[d,ne]),t.useEffect(()=>{dt(gn),mt(!1),be.current=null,Se.current=null},[d]),t.useEffect(()=>{if(!Pe){Ae(0);return}const e=xe.current;if(!e)return;const n=()=>{const s=Math.ceil(e.getBoundingClientRect().height);Ae(s+Ur)};if(n(),typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{n()});return o.observe(e),()=>{o.disconnect()}},[Pe]),t.useEffect(()=>{if(M(),!!ne){if(fn)return H.current=window.setTimeout(()=>{H.current=null,Te()},bn),()=>{M()};if(!(Wt||!dn))return H.current=window.setTimeout(()=>{H.current=null,Te()},bn),()=>{M()}}},[M,Te,Wt,dn,ne,fn]);const lr=(e,n={})=>e?e.type==="slot"?a.jsxRuntimeExports.jsx(a.jsxRuntimeExports.Fragment,{children:e.content}):e.type==="html"?a.jsxRuntimeExports.jsx(yn.default,{className:"content-render-iframe",disableLoadingOverlay:C,hideFullScreen:!0,locale:f,mode:"blackboard",replaceRootScreenHeightWithFull:n.replaceRootScreenHeightWithFull,type:"sandbox",content:e.content,enableScaling:In}):a.jsxRuntimeExports.jsx(yn.default,{className:"content-render-iframe",disableLoadingOverlay:C,hideFullScreen:!0,locale:f,mode:"blackboard",type:"markdown",content:e.content}):null,ar=(e=[],n=!1)=>{if(e.length===0)return null;const o=e.filter(r=>r.is_renderable!==!1).length,s=n&&Rn?_r.resolveMarkdownScalingMode(e):"disabled",l=e.reduce((r,E,O)=>E.is_renderable!==!1?O:r,-1);return a.jsxRuntimeExports.jsx(Cr.default,{className:"slide-stage__content flex w-full flex-col gap-4",mode:s,children:e.map((r,E)=>{const O=r.type==="html"&&r.is_renderable===!1;return a.jsxRuntimeExports.jsx("div",{ref:n&&E===l?jt:null,"aria-hidden":O||void 0,className:de.cn("w-full shrink-0",o===1&&r.is_renderable!==!1&&"slide-element--single",O?"pointer-events-none fixed left-[-200vw] top-0 -z-10 h-[100dvh] w-[100vw] overflow-hidden opacity-0":r.is_renderable===!1&&"hidden"),children:lr(r,{replaceRootScreenHeightWithFull:o===1&&r.type==="html"&&r.is_renderable!==!1})},r.sequence_number??`${r.type}-${E}`)})})},ur=t.useCallback(()=>{const e=pe.current;if(e){if(document.fullscreenElement===e){document.exitFullscreen().catch(()=>{});return}e.requestFullscreen?.().catch(()=>{})}},[]),mn=t.useCallback(()=>{const e=De.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"})},[]),vt=t.useCallback(e=>At.canReachSubtitleJumpTarget({currentIndex:u,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:Ve[e.audioIndex]}),[d,Ve,u,I]),ir=t.useCallback((e,n)=>{const s=y[e.audioIndex]?.audioKey,l=Ve[e.audioIndex];return!s||l==null||!vt(e)?!1:(ie(n),Y.current=null,x(!1),at(!1),He(!1),Rt.shouldWakePlayerControlsAfterNavigation(n)&&(te(!0),p(!0)),l===u?(ve.current=null,_(),D(s),$e(e),!0):(ge.current=!0,_(),ve.current={audioIndex:e.audioIndex,audioKey:s,slideIndex:l,timeMs:e.timeMs},Vt(l),!0))},[y,Ve,vt,u,Vt,$e,_,p,ie]),cr=t.useCallback(e=>{ie(e),ge.current=!0,Y.current=null,x(!1),Rt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),_(),Lt()},[Lt,_,p,ie]),dr=t.useCallback(e=>{ie(e),ge.current=!0,Y.current=null,x(!1),Rt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),_(),w()},[w,_,p,ie]),fr=t.useCallback(({loading:e,reason:n})=>{if(C){x(!1);return}if(!h||T){x(!1);return}e&&n&<(n),x(Jr(n,e))},[h,T,C]);t.useEffect(()=>{C&&x(!1)},[C]);const mr=t.useCallback(e=>{const n=y[e]?.audioKey;if(!n||!b||n!==b)return;const o=k.findIndex(r=>r===n);if(o<0){D(null);return}const s=o+1,l=k[s];if(l){D(l);return}if(D(null),at(!0),x(!1),A){const r=u+1,E=I[r];on&&E?.type==="interaction"&&(Y.current=r),w();return}},[y,A,u,b,k,w,on,I]),pr=t.useCallback(()=>{d&&Ye(e=>!e)},[d]),yr=t.useCallback(()=>{Ne.current=!0,q(),m&&Ie(!0)},[q,m]),hr=t.useCallback(()=>{Ne.current=!1,p(!0)},[p]),Et=t.useCallback(e=>{e.stopPropagation(),g&&p(!0)},[g,p]),ze=t.useCallback((e,n)=>{const o=rt.current;if(!o)return null;const s=e.getBoundingClientRect(),l=o.getBoundingClientRect();return{minX:n.x+l.left-s.left,maxX:n.x+l.right-s.right,minY:n.y+l.top-s.top,maxY:n.y+l.bottom-s.bottom}},[]);Hr(()=>{const e=xe.current;if(!Pe||!e){Se.current=null;return}const n=Se.current,o=e.getBoundingClientRect();if(!n||ft){Se.current=o;return}const s={x:S.x+n.left-o.left,y:S.y+n.top-o.top},l=ze(e,S),r=l?Ze.clampInteractionOverlayDragOffset(s,l):s;Se.current={left:o.left+r.x-S.x,top:o.top+r.y-S.y},(r.x!==S.x||r.y!==S.y)&&dt(r)},[ze,S,ft,g,m,Pe]);const xr=t.useCallback(e=>{if(Et(e),e.button!==0||!e.currentTarget.isConnected||!xe.current)return;const n=ze(xe.current,S);n&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),be.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startOffset:S,bounds:n},mt(!0))},[ze,S,Et]),Sr=t.useCallback(e=>{const n=be.current;!n||n.pointerId!==e.pointerId||(e.preventDefault(),e.stopPropagation(),dt(Ze.clampInteractionOverlayDragOffset({x:n.startOffset.x+e.clientX-n.startClientX,y:n.startOffset.y+e.clientY-n.startClientY},n.bounds)))},[]),pn=t.useCallback(e=>{const n=be.current;!n||n.pointerId!==e.pointerId||(e.stopPropagation(),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),be.current=null,mt(!1))},[]),br=t.useCallback(e=>{B(),_t?.(e)},[B,_t]),gr=t.useCallback(e=>{B(),Ot?.(e)},[B,Ot]),vr=t.useCallback(()=>{te(!0),p(!0)},[p]);return t.useEffect(()=>{const e=qt.current,s=(e.length>0&&e.length<ee.length&&e.every((r,E)=>r===ee[E])?R.slice(e.length):[]).some(r=>r.is_new===!1);if(qt.current=ee,!s)return;const l=window.requestAnimationFrame(()=>{const r=De.current,E=jt.current;if(!r||!E)return;const O=r.getBoundingClientRect(),Xe=E.getBoundingClientRect(),_e=r.scrollTop+(Xe.top-O.top);r.scrollTo({top:Math.max(_e,0),behavior:"smooth"})});return()=>{window.cancelAnimationFrame(l)}},[R,ee]),t.useEffect(()=>{if(!ge.current||(ge.current=!1,R.length===0))return;const e=window.requestAnimationFrame(()=>{mn()});return()=>{window.cancelAnimationFrame(e)}},[R,mn]),a.jsxRuntimeExports.jsxs("section",{ref:pe,className:de.cn("relative h-full w-full",j&&"slide--mobile-device",Xt&&"slide--browser-fullscreen",se&&"slide--mobile-landscape",zt&&"slide--mobile-landscape-native",An),onClick:vr,onFocusCapture:gr,onPointerDown:br,...Cn,children:[Yn?a.jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pointer-events-none fixed left-0 top-0 z-[9999] h-[100vh] max-h-[100vh] w-[100vw]"}):null,a.jsxRuntimeExports.jsxs("div",{ref:rt,className:de.cn("slide__viewport relative h-full min-h-0 w-full",se&&"slide__viewport--mobile-landscape",se&&!Vn&&"slide__viewport--mobile-landscape-native"),children:[Un?a.jsxRuntimeExports.jsxs("div",{className:"slide-landscape-header",children:[a.jsxRuntimeExports.jsx("button",{"aria-label":K?.backAriaLabel??U.fullscreenBackAriaLabel,className:"slide-landscape-header__back",onClick:Gn,type:"button",children:a.jsxRuntimeExports.jsx(Nr.default,{className:"slide-landscape-header__icon h-6 w-6",strokeWidth:2.25})}),K?.content?a.jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:K.content}):null]}):null,a.jsxRuntimeExports.jsx("div",{className:de.cn("h-full min-h-0 w-full",Hn&&"slide__viewport-content--with-header",Mn?"slide-content--single":"grid gap-4"),children:R.length>0?a.jsxRuntimeExports.jsx("div",{className:"slide-stage",children:a.jsxRuntimeExports.jsx("div",{ref:De,className:"slide-stage__layer w-full",children:Jn.map((e,n)=>{const o=n===$n;return a.jsxRuntimeExports.jsx("div",{"data-active-step":o?"true":void 0,"aria-hidden":!o||void 0,className:"w-full h-full",style:{display:o?void 0:"none"},children:ar(e.elementList,o)},e.sourceStepIndexes[0]??n)})})}):null}),jn?a.jsxRuntimeExports.jsx(Ir.default,{message:Wr(wn,qn),className:"absolute left-1/2 top-1/2 z-[3] -translate-x-1/2 -translate-y-1/2"}):null,a.jsxRuntimeExports.jsx(wr.default,{extraBottomOffset:Dn,hasPlayerGap:g,isEnabled:Yt&&Fn,isPlayerHidden:m&&!g,playbackTimeStore:re,subtitleCues:zn}),Pe?a.jsxRuntimeExports.jsx("div",{ref:xe,"data-player-keyboard-shortcuts-ignore":"true",className:de.cn("slide-interaction-overlay",g&&m?"slide-interaction-overlay--with-player":"slide-interaction-overlay--standalone",ft&&"slide-interaction-overlay--dragging"),onClick:Et,onPointerDownCapture:e=>{wt(e.target)&&We(!0)},onFocusCapture:e=>{wt(e.target)&&We(!0)},onInputCapture:e=>{wt(e.target)&&We(!0)},style:Xn,children:a.jsxRuntimeExports.jsx(En,{content:String(d?.content??""),locale:f,defaultButtonText:cn.buttonText??"",defaultInputText:cn.inputText??"",defaultSelectedValues:nr,confirmButtonText:X?.confirmButtonText??U.interactionTexts.confirmButtonText,copyButtonText:X?.copyButtonText??U.interactionTexts.copyButtonText,copiedButtonText:X?.copiedButtonText??U.interactionTexts.copiedButtonText,onSend:sr,onDragHandlePointerCancel:pn,onDragHandlePointerDown:xr,onDragHandlePointerMove:Sr,onDragHandlePointerUp:pn,readonly:or,title:X?.title??et??U.interactionTexts.title})}):null,m?a.jsxRuntimeExports.jsx(Mr.PlayerKeyboardShortcutContext.Provider,{value:Pn,children:a.jsxRuntimeExports.jsx(Ar.default,{audioList:y,className:de.cn("absolute left-1/2 z-[2] -translate-x-1/2",Xt?"bottom-3":"-bottom-3",V,!g&&"pointer-events-none opacity-0"),currentAudioIndex:v,defaultPlaying:st,enableKeyboardShortcuts:Q,isPlaybackPaused:W,isAutoAdvanceEnabled:Re,locale:f,hasInteraction:!!d,isInteractionOpen:ne,isSubtitleEnabled:Yt,onAutoAdvanceToggle:Ut,onLoadingChange:fr,onPlaybackStarted:()=>{He(!0)},onPlaybackPreferenceChange:tr,onPlaybackTimeChange:re.setTime,onSubtitleToggle:()=>{Bn(e=>!e)},nextDisabled:!A,onEnded:mr,onFullscreen:ur,isFullscreen:Gt,mobileViewMode:oe,settingsPortalContainer:rt.current,onMobileViewModeChange:Wn,onControlsPointerEnter:yr,onControlsPointerLeave:hr,onInteractionToggle:pr,onNext:dr,onPrev:cr,onSubtitleJump:ir,canJumpToSubtitleTarget:vt,prevDisabled:!Tn,showControls:g,subtitleSeekRequest:On,texts:tt,customActionContext:xt,customActions:$,useAutoAdvanceToggle:we})}):null]})]})};exports.default=zr;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),Ar=require("../../lib/sandboxInteraction.cjs.js"),pe=require("../../lib/utils.cjs.js"),wr=require("../ui/loading-overlay-card.cjs.js"),kr=require("../ContentRender/ContentRender.cjs.js"),Sn=require("../ContentRender/IframeSandbox.cjs.js");require("../ui/inputGroup/input-group.cjs.js");require("../ContentRender/contentRenderI18n.cjs.js");const Ze=require("../../lib/mobileDevice.cjs.js"),Tr=require("./Player.cjs.js"),Mr=require("./MarkdownSlideScaling.cjs.js"),_r=require("./SubtitleOverlay.cjs.js"),Pr=require("./useSlide.cjs.js"),Or=require("./useWakePlayerFromIframe.cjs.js"),jr=require("./utils/playerKeyboardShortcutContext.cjs.js"),qr=require("./utils/playerKeyboardShortcuts.cjs.js"),qe=require("./utils/mobileScreenMode.cjs.js"),et=require("./utils/interactionPlayback.cjs.js"),Fr=require("./utils/markdownScaling.cjs.js"),At=require("./utils/playerNavigationContext.cjs.js"),Lr=require("./utils/appendedMarkerAdvance.cjs.js"),gn=require("./utils/playbackSequence.cjs.js"),wt=require("./utils/subtitleJumpNavigation.cjs.js"),vn=require("./utils/playerCustomActions.cjs.js"),Dr=require("./utils/playbackTimeStore.cjs.js"),Nr=require("./utils/interactionResolution.cjs.js"),Br=require("./utils/playerToggleMode.cjs.js"),En=require("./utils/imageOnlyStepVisualReady.cjs.js"),Vr=require("./utils/silentStepAutoAdvance.cjs.js"),Kr=require("./utils/playerVisibility.cjs.js"),An=require("./slideI18n.cjs.js");;/* empty css */const kt=require("../../node_modules/lucide-react/dist/esm/icons/grip-horizontal.cjs.js"),Ur=require("../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js"),Hr=2e3,Yr=300,Wr=160,Gr=16,In=3e3,tt={x:0,y:0},Mt=.5,Jr=typeof window>"u"?t.useEffect:t.useLayoutEffect,Xr=["button","input","textarea",'[contenteditable=""]','[contenteditable="true"]','[contenteditable="plaintext-only"]'].join(", "),_t="waitingForAudio",zr=({x:u,y:c})=>({x:Number(u.toFixed(2)),y:Number(c.toFixed(2))}),Rn=u=>Math.abs(u)>=Mt,Cn=(u,c)=>Math.abs(u.x-c.x)<Mt&&Math.abs(u.y-c.y)<Mt,$r=(u,c)=>typeof u=="string"?u:u[c]??u[_t]??An.DEFAULT_SLIDE_BUFFERING_TEXTS[c],Qr=(u,c)=>typeof u=="string"?u:{...c,...u},Zr=(u,c)=>c?u!=="loadingAudio":!1,wn=t.memo(({content:u,title:c,locale:B,defaultButtonText:ye,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:Q,copyButtonText:Z,copiedButtonText:Fe,onSend:nt,onDragHandlePointerCancel:ee,onDragHandlePointerDown:rt,onDragHandlePointerMove:he,onDragHandlePointerUp:Le,readonly:De=!1})=>a.jsxRuntimeExports.jsxs("div",{className:"slide-player__interaction-card",children:[a.jsxRuntimeExports.jsx("button",{type:"button",className:"slide-player__interaction-drag-handle","aria-label":"Move interaction",onPointerCancel:ee,onPointerDown:rt,onPointerMove:he,onPointerUp:Le,children:a.jsxRuntimeExports.jsxs("span",{className:"slide-player__interaction-drag-handle-icon",children:[a.jsxRuntimeExports.jsx(kt.default,{"aria-hidden":"true"}),a.jsxRuntimeExports.jsx(kt.default,{"aria-hidden":"true"}),a.jsxRuntimeExports.jsx(kt.default,{"aria-hidden":"true"})]})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-header",children:a.jsxRuntimeExports.jsx("p",{className:"slide-player__interaction-title",children:c})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-body",children:a.jsxRuntimeExports.jsx(kr.default,{content:u,locale:B,defaultButtonText:ye,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:Q,copyButtonText:Z,copiedButtonText:Fe,onSend:nt,readonly:De,sandboxMode:"content"})})]}));wn.displayName="InteractionOverlayCard";const eo=(u,c)=>u.length===c.length&&u.every((B,ye)=>{const V=c[ye];return B.sequence_number===V?.sequence_number&&B.type===V?.type&&B.content===V?.content}),Tt=u=>u instanceof HTMLElement&&!!u.closest(Xr),to=({elementList:u=[],locale:c,playerEnabled:B,playerControlsVisibility:ye,playerClassName:V,fullscreenHeader:K,playerCustomActions:Q,playerCustomActionPauseOnActive:Z=!0,bufferingText:Fe,interactionTitle:nt,interactionTexts:ee,playerTexts:rt,playerAutoHideDelay:he=3e3,markerAutoAdvanceDelay:Le=Hr,interactionDefaultValueOptions:De,onSend:Pt,onPlayerVisibilityChange:ot,onMobileViewModeChange:Ot,onStepChange:jt,enableKeyboardShortcuts:te=!0,enableIframeScaling:kn=!0,enableMarkdownScaling:Tn=!0,disableLoadingOverlay:w=!1,className:Mn,onPointerDown:qt,onFocusCapture:Ft,..._n})=>{const U=t.useMemo(()=>An.getSlideLocaleTexts(c),[c]),Pn=t.useMemo(()=>Qr(Fe,U.bufferingText),[Fe,U.bufferingText]),{playerEnabled:On,playerControlsVisibility:F}=Kr.resolveSlidePlayerVisibility({playerEnabled:B,playerControlsVisibility:ye}),Ne=t.useId(),xe=t.useRef(null),st=t.useRef(null),Be=t.useRef(null),Lt=t.useRef(null),ne=t.useRef(null),Ve=t.useRef(!1),be=t.useRef(null),Ke=t.useRef(null),H=t.useRef(null),Se=t.useRef(null),ge=t.useRef(null),re=t.useRef(null),ve=t.useRef(null),Dt=t.useRef([]),Ee=t.useRef(!1),Y=t.useRef(null),Ie=t.useRef(null),Nt=t.useRef(0),Bt=t.useRef(null),Vt=t.useRef({markerCount:0,currentIndex:-1,canGoNext:!1}),lt=t.useRef(!1),{currentElementList:C,stepElementLists:Kt,slideElementList:R,currentIndex:i,audioList:h,audioSlideIndexes:Ue,currentAudioSequenceIndexes:He,currentStepHasSpeakableElement:b,currentInteractionElement:d,canGoPrev:jn,canGoNext:A,handlePrev:Ut,handleNext:k,handleGoTo:Ht}=Pr.default(u),Re=t.useMemo(()=>{if(!(i<0))return R[i]},[i,R]),oe=t.useMemo(()=>C.map((e,n)=>`${e.sequence_number??`${e.type}-${n}`}:${String(e.is_new??"")}`),[C]),qn=R.filter(e=>e.is_renderable!==!1).length===1,m=On&&(R.length>0||h.length>0||!!d),Fn=t.useMemo(()=>({enabled:te,ownerId:Ne}),[te,Ne]),L=t.useCallback(()=>{!te||!m||qr.activatePlayerKeyboardShortcutOwner(Ne)},[te,Ne,m]),T=t.useMemo(()=>He.map(e=>h[e]?.audioKey).filter(e=>!!e),[h,He]),[Ln,Ce]=t.useState(!0),[Ye,se]=t.useState(!1),[at,Yt]=t.useState(!0),[Ae,Wt]=t.useState(!0),[g,D]=t.useState(null),[Dn,Gt]=t.useState(null),[Nn,S]=t.useState(!1),[Bn,it]=t.useState(_t),[M,ut]=t.useState(!1),[Vn,We]=t.useState(!1),[Jt,Kn]=t.useState(!0),[ct,dt]=t.useState(!1),[f,ft]=t.useState(),[le,Ge]=t.useState(!1),[Xt,Je]=t.useState(!1),[v,mt]=t.useState(tt),[pt,yt]=t.useState(!1),[Un,we]=t.useState(0),[zt,Hn]=t.useState(!1),j=t.useMemo(()=>Ze.isMobileDevice(),[]),[Xe,ht]=t.useState(qe.DEFAULT_MOBILE_VIEW_MODE),[$t,xt]=t.useState(!1),[Yn,Qt]=t.useState(()=>j?Ze.isLandscapeViewport():!1),ae=t.useMemo(()=>Dr.createPlaybackTimeStore(),[]),{effectiveMobileViewMode:W,isImmersiveMobileFullscreen:ie,isNativeMobileFullscreen:Zt,shouldRotateFullscreenViewport:Wn}=t.useMemo(()=>qe.resolveMobileViewModeState({hasManualMobileViewMode:$t,isMobileDevice:j,mobileViewMode:Xe}),[$t,j,Yn,Xe]),en=t.useRef(W),E=m&&F!=="hidden"&&(F==="visible"||Ln),Gn=ie&&E,Jn=ie&&E,Xn=ie||Zt,tn=zt&&!j,zn=t.useCallback(e=>{xt(!0),ht(e)},[]),nn=t.useCallback(()=>{xt(!1),ht(qe.DEFAULT_MOBILE_VIEW_MODE)},[]),$n=t.useCallback(()=>{nn(),K?.onBack?.()},[K,nn]),rn=t.useCallback(e=>{dt(e)},[]),on=t.useCallback(()=>{dt(e=>!e)},[]),G=t.useCallback(()=>{mt(e=>e.x===tt.x&&e.y===tt.y?e:tt),yt(!1),ve.current=null,re.current=null},[]),{mountedStepStates:Qn,currentMountedStateIndex:Zn}=t.useMemo(()=>{const e=[],n=new Map;return Kt.forEach((r,s)=>{const l=e.findIndex(o=>eo(o.elementList,r));if(l>=0){e[l]?.sourceStepIndexes.push(s),n.set(s,l);return}e.push({elementList:r,sourceStepIndexes:[s]}),n.set(s,e.length-1)}),{mountedStepStates:e,currentMountedStateIndex:i>=0?n.get(i)??-1:-1}},[i,Kt]),sn=t.useMemo(()=>String(i),[i]),I=t.useMemo(()=>g?h.findIndex(e=>(e.audioKey??"")===g):-1,[h,g]),bt=t.useMemo(()=>I>=0?h[I]:void 0,[h,I]),er=bt?.element?.subtitle_cues??[],ze=t.useMemo(()=>T[0]??"none",[T]),St=t.useMemo(()=>({currentElement:vn.resolvePlayerCustomActionElement({currentAudioIndex:I,currentAudioSequenceIndexes:He,audioList:h,currentInteractionElement:f,currentStepElement:Re}),currentIndex:i,currentStepElement:Re,isActive:ct,setActive:rn,toggleActive:on}),[f,h,I,He,i,Re,ct,rn,on]),gt=t.useMemo(()=>vn.getPlayerCustomActionCount(Q,St),[St,Q]),tr=t.useMemo(()=>({"--slide-player-custom-action-count":String(gt),"--slide-player-mobile-control-count":String(gt+4),"--slide-interaction-drag-x":`${v.x}px`,"--slide-interaction-drag-y":`${v.y}px`}),[v.x,v.y,gt]),ln=T.length>0,an=t.useMemo(()=>d?`${d.sequence_number??"none"}:${String(d.content??"")}`:"none",[d]),ke=t.useMemo(()=>[sn,an].join("|"),[an,sn]),nr=t.useMemo(()=>[ke,bt?.audioKey??"none",String(I)].join("|"),[I,bt?.audioKey,ke]),un=!!t.useMemo(()=>!ze||ze==="none"?"":h.find(n=>n.audioKey===ze)?.audioUrl?.trim()??"",[h,ze]),J=Z&&!!Q&&ct,Te=t.useMemo(()=>Br.shouldUseAutoAdvanceToggle({canGoNext:A,currentAudioIndex:I,currentStepHasSpeakableElement:b,hasInteraction:!!d}),[A,I,d,b]),cn=t.useMemo(()=>Vr.resolveSilentStepAutoAdvanceBehavior({currentElementList:C,currentStepHasSpeakableElement:b,currentInteractionElement:d,markerAutoAdvanceDelay:Le}),[C,d,b,Le]),dn=cn.delayMs,Me=cn.usesImageOnlyDelay,vt=t.useMemo(()=>`${i}:${oe.join("|")}`,[i,oe]),[rr,or]=t.useState(null),fn=!Me||rr===vt,q=t.useCallback(()=>{ne.current!==null&&(window.clearTimeout(ne.current),ne.current=null)},[]),_=t.useCallback(()=>{H.current!==null&&(window.clearTimeout(H.current),H.current=null)},[]),P=t.useCallback(()=>{Se.current!==null&&(window.clearTimeout(Se.current),Se.current=null)},[]),ue=t.useCallback(()=>{be.current!==null&&(window.clearTimeout(be.current),be.current=null)},[]),N=t.useCallback(()=>{Ke.current!==null&&(window.clearTimeout(Ke.current),Ke.current=null)},[]),O=t.useCallback((e={})=>{ue(),_(),P(),N(),D(null),ae.reset(),S(!1),it(_t),ut(!1),We(!1),Gt(null),e.preservePendingSubtitleJump||(Ie.current=null),ft(void 0),Ge(!1),we(0)},[ue,N,_,P,ae]),$e=t.useCallback(e=>{Nt.current+=1,Gt({...e,id:Nt.current})},[]),ce=t.useCallback(()=>{const e=T[0];return e?(D(e),!0):!1},[T]),_e=t.useCallback(()=>{_(),P(),Ge(!1),we(0),!ce()&&A&&k()},[A,_,P,k,ce]),mn=t.useCallback(e=>{if(P(),!e)return;const n=()=>{Se.current=null,we(Wr),Ge(!0),Y.current=null};Se.current=window.setTimeout(n,Yr)},[P]),Et=t.useCallback(()=>Ve.current||!!xe.current?.querySelector(".slide-player__controls:hover"),[]),p=t.useCallback((e=Ye)=>{!m||F==="hidden"||(Ce(!0),q(),!(F==="visible"||!e||he<=0||Et())&&(ne.current=window.setTimeout(()=>{if(Et()){ne.current=null;return}Ce(!1),ne.current=null},he)))},[q,Ye,Et,he,F,m]),Pe=!!wt.hasResolvedInteractionElement(d),de=!!d&&!Pe,sr=t.useCallback(e=>{Yt(e)},[]),fe=t.useCallback(e=>{e&&Yt(e.shouldContinuePlayback)},[]);t.useEffect(()=>{Wt(at)},[i,at,Z]),t.useEffect(()=>{Z&&dt(!1)},[i,Z]),t.useEffect(()=>()=>{ue(),N(),q(),_(),P()},[ue,N,_,P,q]),t.useEffect(()=>{if(!Me){N();return}let e=!1,n=null,r=null;const s=()=>{r?.(),r=null},l=()=>{e||(s(),N(),or(vt))},o=()=>{if(e)return;s();const y=Be.current?.querySelector('[data-active-step="true"]');if(!y)return;const x=Array.from(y.querySelectorAll("iframe"));if(x.length===0||En.areImageOnlyStepIframeVisualsReady(x)){l();return}const X=[],je=()=>{e||(n!==null&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{n=null,o()}))},Ct=(z,me,$)=>{z.addEventListener(me,$,{once:!0}),X.push(()=>z.removeEventListener(me,$))};x.forEach(z=>{const me=z.contentDocument;if(!me||me.readyState!=="complete"){Ct(z,"load",je);return}Array.from(me.images).filter($=>!$.complete).forEach($=>{Ct($,"load",je),Ct($,"error",je)})}),r=()=>{X.forEach(z=>z())}};return n=window.requestAnimationFrame(()=>{n=null,o()}),Ke.current=window.setTimeout(()=>{l()},En.DEFAULT_IMAGE_ONLY_VISUAL_READY_TIMEOUT_MS),()=>{e=!0,s(),N(),n!==null&&window.cancelAnimationFrame(n)}},[N,C,i,vt,Me]),t.useEffect(()=>(ot?.(E),()=>{ot?.(!1)}),[ot,E]),t.useEffect(()=>{E||(Ve.current=!1)},[E]),t.useEffect(()=>{j||Xe===qe.DEFAULT_MOBILE_VIEW_MODE||(xt(!1),ht(qe.DEFAULT_MOBILE_VIEW_MODE))},[j,Xe]),t.useEffect(()=>{if(!j){Qt(!1);return}const e=()=>{Qt(Ze.isLandscapeViewport()),G()},n=()=>{G()};e(),window.addEventListener("orientationchange",n),window.screen?.orientation?.addEventListener?.("change",n);const r=Ze.subscribeMobileDeviceChange(e);return()=>{r(),window.removeEventListener("orientationchange",n),window.screen?.orientation?.removeEventListener?.("change",n)}},[j,G]),t.useEffect(()=>{Ot?.(W)},[W,Ot]),t.useEffect(()=>{en.current!==W&&G(),en.current=W},[W,G]),t.useEffect(()=>{jt?.(Re,i)},[i,Re,jt]),t.useEffect(()=>{const e=Vt.current,n=Lr.shouldAutoAdvanceIntoAppendedMarker({previousMarkerCount:e.markerCount,nextMarkerCount:R.length,previousIndex:e.currentIndex,previousCanGoNext:e.canGoNext,nextCanGoNext:A,currentAudioKey:g,hasCompletedCurrentStepAudio:M,hasResolvedCurrentInteraction:Pe,currentStepHasSpeakableElement:b,currentInteractionElement:d,isAutoAdvanceEnabled:Ae,shouldUseSilentStepAutoAdvanceToggle:Te});Vt.current={markerCount:R.length,currentIndex:i,canGoNext:A},n&&k()},[A,g,i,d,b,k,M,Pe,Ae,Te,R.length]),t.useEffect(()=>{if(!m||F==="hidden"){q(),Ce(!1);return}if(F==="visible"){q(),Ce(!0);return}Ye||p(!0)},[q,Ye,F,m,p]),t.useEffect(()=>{if(typeof window>"u")return;const e=n=>{n.origin===window.location.origin&&Ar.isSandboxInteractionMessage(n.data)&&n.data.eventType==="click"&&m&&(L(),se(!0),p(!0))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[L,m,p]),Or.default({sectionRef:xe,enabled:m,keyboardShortcutsEnabled:te,onKeyboardShortcut:L,onWake:()=>{L(),se(!0),p(!0)}}),t.useEffect(()=>{if(!m){O();return}const{hasPlaybackContextChanged:e,shouldInitializeAudioSequence:n}=gn.getPlaybackSequenceTransition({previousResetKey:Bt.current,nextResetKey:ke,currentAudioKey:g,hasCompletedCurrentStepAudio:M});Bt.current=ke;const r=Y.current===i&&!!d,s=et.shouldPresentInteractionOverlay({hasInteraction:!!d,shouldBlockPlaybackForInteraction:de,shouldOpenInteractionOverlayAfterAudio:r,hasPlaybackContextChanged:e,hasResolvedCurrentInteraction:Pe,currentStepHasSpeakableElement:b}),l=Ie.current,o=l?.slideIndex===i;if(e&&O({preservePendingSubtitleJump:o}),!(C.length===0&&!d)&&!J){if(l?.slideIndex===i&&wt.canReachSubtitleJumpTarget({currentIndex:i,resolvedCurrentInteractionElement:f,slideElementList:R,targetSlideIndex:l.slideIndex})){Ie.current=null,lt.current=!0,D(l.audioKey),$e({audioIndex:l.audioIndex,timeMs:l.timeMs});return}if(d&&ft(d),s){mn(d);return}if(P(),Y.current=null,!!n&&!ce()){if(b){if(w){S(!1);return}S(!0);return}if(A&&!(Te&&!Ae)&&!(Me&&!fn))return be.current=window.setTimeout(()=>{be.current=null,k()},dn),()=>{ue()}}}},[f,A,ue,C.length,i,d,g,ke,b,Me,fn,dn,k,M,w,Ae,Pe,de,P,O,$e,mn,m,R,ce,J,Te]),t.useEffect(()=>{if(w||J||!b||de){S(!1);return}if(M){S(!1);return}if(ln){S(!1);return}it("waitingForAudio"),S(!0)},[ln,b,M,w,J,de]),t.useEffect(()=>{const e=lt.current;lt.current=!1,gn.shouldStartDefaultAudioSequence({currentAudioKey:g,currentAudioSequenceLength:T.length,currentStepHasSpeakableElement:b,hasCompletedCurrentStepAudio:M,shouldBlockPlaybackForInteraction:de,shouldPausePlaybackForCustomAction:J,shouldSkipDefaultAudioStart:e})&&ce()},[g,T,b,M,J,de,ce]),t.useEffect(()=>{!g||I>=0||D(null)},[I,g]),t.useEffect(()=>{I>=0||ae.reset()},[I,ae]),t.useEffect(()=>{We(!1)},[nr]);const{interactionDefaults:pn,interactionDefaultSelectedValues:lr,hasResolvedInteractionInput:yn,isInteractionReadonly:ar,shouldAutoContinueInteraction:hn}=t.useMemo(()=>Nr.resolveSlideInteractionState(f,{interactionDefaultValueOptions:De}),[f,De]),ir=!!f?.readonly||ar,Oe=et.shouldRenderInteractionOverlay({hasActiveInteraction:!!f,isInteractionOverlayOpen:le}),ur=t.useCallback(e=>{const r=[...e.selectedValues??[],e.inputText?.trim()??"",e.buttonText?.trim()??""].filter(Boolean).join(", ");ft(s=>!s||!r?s:{...s,user_input:r}),Pt?.(e,f),_e()},[f,_e,Pt]);t.useEffect(()=>{const e=()=>{Hn(document.fullscreenElement===xe.current)};return e(),document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[]),t.useEffect(()=>{f&&le||Je(!1)},[f,le]),t.useEffect(()=>{G()},[f,G]),t.useEffect(()=>{if(!Oe){we(0);return}const e=ge.current;if(!e)return;const n=()=>{const s=Math.ceil(e.getBoundingClientRect().height);we(s+Gr)};if(n(),typeof ResizeObserver>"u")return;const r=new ResizeObserver(()=>{n()});return r.observe(e),()=>{r.disconnect()}},[Oe]),t.useEffect(()=>{if(_(),!!le){if(hn)return H.current=window.setTimeout(()=>{H.current=null,_e()},In),()=>{_()};if(!(Xt||!yn))return H.current=window.setTimeout(()=>{H.current=null,_e()},In),()=>{_()}}},[_,_e,Xt,yn,le,hn]);const cr=(e,n={})=>e?e.type==="slot"?a.jsxRuntimeExports.jsx(a.jsxRuntimeExports.Fragment,{children:e.content}):e.type==="html"?a.jsxRuntimeExports.jsx(Sn.default,{className:"content-render-iframe",disableLoadingOverlay:w,hideFullScreen:!0,locale:c,mode:"blackboard",replaceRootScreenHeightWithFull:n.replaceRootScreenHeightWithFull,type:"sandbox",content:e.content,enableScaling:kn}):a.jsxRuntimeExports.jsx(Sn.default,{className:"content-render-iframe",disableLoadingOverlay:w,hideFullScreen:!0,locale:c,mode:"blackboard",type:"markdown",content:e.content}):null,dr=(e=[],n=!1)=>{if(e.length===0)return null;const r=e.filter(o=>o.is_renderable!==!1).length,s=n&&Tn?Fr.resolveMarkdownScalingMode(e):"disabled",l=e.reduce((o,y,x)=>y.is_renderable!==!1?x:o,-1);return a.jsxRuntimeExports.jsx(Mr.default,{className:"slide-stage__content flex w-full flex-col gap-4",mode:s,children:e.map((o,y)=>{const x=o.type==="html"&&o.is_renderable===!1;return a.jsxRuntimeExports.jsx("div",{ref:n&&y===l?Lt:null,"aria-hidden":x||void 0,className:pe.cn("w-full shrink-0",r===1&&o.is_renderable!==!1&&"slide-element--single",x?"pointer-events-none fixed left-[-200vw] top-0 -z-10 h-[100dvh] w-[100vw] overflow-hidden opacity-0":o.is_renderable===!1&&"hidden"),children:cr(o,{replaceRootScreenHeightWithFull:r===1&&o.type==="html"&&o.is_renderable!==!1})},o.sequence_number??`${o.type}-${y}`)})})},fr=t.useCallback(()=>{const e=xe.current;if(e){if(document.fullscreenElement===e){document.exitFullscreen().catch(()=>{});return}e.requestFullscreen?.().catch(()=>{})}},[]),xn=t.useCallback(()=>{const e=Be.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"})},[]),It=t.useCallback(e=>wt.canReachSubtitleJumpTarget({currentIndex:i,resolvedCurrentInteractionElement:f,slideElementList:R,targetSlideIndex:Ue[e.audioIndex]}),[f,Ue,i,R]),mr=t.useCallback((e,n)=>{const s=h[e.audioIndex]?.audioKey,l=Ue[e.audioIndex];return!s||l==null||!It(e)?!1:(fe(n),Y.current=null,S(!1),ut(!1),We(!1),At.shouldWakePlayerControlsAfterNavigation(n)&&(se(!0),p(!0)),l===i?(Ie.current=null,O(),D(s),$e(e),!0):(Ee.current=!0,O(),Ie.current={audioIndex:e.audioIndex,audioKey:s,slideIndex:l,timeMs:e.timeMs},Ht(l),!0))},[h,Ue,It,i,Ht,$e,O,p,fe]),pr=t.useCallback(e=>{fe(e),Ee.current=!0,Y.current=null,S(!1),At.shouldWakePlayerControlsAfterNavigation(e)&&(se(!0),p(!0)),O(),Ut()},[Ut,O,p,fe]),yr=t.useCallback(e=>{fe(e),Ee.current=!0,Y.current=null,S(!1),At.shouldWakePlayerControlsAfterNavigation(e)&&(se(!0),p(!0)),O(),k()},[k,O,p,fe]),hr=t.useCallback(({loading:e,reason:n})=>{if(w){S(!1);return}if(!b||M){S(!1);return}e&&n&&it(n),S(Zr(n,e))},[b,M,w]);t.useEffect(()=>{w&&S(!1)},[w]);const xr=t.useCallback(e=>{const n=h[e]?.audioKey;if(!n||!g||n!==g)return;const r=T.findIndex(o=>o===n);if(r<0){D(null);return}const s=r+1,l=T[s];if(l){D(l);return}if(D(null),ut(!0),S(!1),A){const o=i+1,y=R[o];un&&y?.type==="interaction"&&(Y.current=o),k();return}},[h,A,i,g,T,k,un,R]),br=t.useCallback(()=>{f&&Ge(e=>!e)},[f]),Sr=t.useCallback(()=>{Ve.current=!0,q(),m&&Ce(!0)},[q,m]),gr=t.useCallback(()=>{Ve.current=!1,p(!0)},[p]),Rt=t.useCallback(e=>{e.stopPropagation(),E&&p(!0)},[E,p]),Qe=t.useCallback((e,n)=>{const r=st.current;if(!r)return null;const s=e.getBoundingClientRect(),l=r.getBoundingClientRect();return{minX:n.x+l.left-s.left,maxX:n.x+l.right-s.right,minY:n.y+l.top-s.top,maxY:n.y+l.bottom-s.bottom}},[]);Jr(()=>{const e=ge.current;if(!Oe||!e){re.current=null;return}const n=re.current,r=e.getBoundingClientRect();if(!n||pt){re.current={left:r.left,top:r.top};return}const s=n.left-r.left,l=n.top-r.top;if(!Rn(s)&&!Rn(l)){re.current={left:r.left,top:r.top};return}const o={x:v.x+s,y:v.y+l},y=Qe(e,v),x=zr(y?et.clampInteractionOverlayDragOffset(o,y):o);re.current={left:r.left+x.x-v.x,top:r.top+x.y-v.y},Cn(x,v)||mt(X=>Cn(X,x)?X:x)},[Qe,v,pt,E,m,Oe]);const vr=t.useCallback(e=>{if(Rt(e),e.button!==0||!e.currentTarget.isConnected||!ge.current)return;const n=Qe(ge.current,v);n&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),ve.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startOffset:v,bounds:n},yt(!0))},[Qe,v,Rt]),Er=t.useCallback(e=>{const n=ve.current;!n||n.pointerId!==e.pointerId||(e.preventDefault(),e.stopPropagation(),mt(et.clampInteractionOverlayDragOffset({x:n.startOffset.x+e.clientX-n.startClientX,y:n.startOffset.y+e.clientY-n.startClientY},n.bounds)))},[]),bn=t.useCallback(e=>{const n=ve.current;!n||n.pointerId!==e.pointerId||(e.stopPropagation(),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),ve.current=null,yt(!1))},[]),Ir=t.useCallback(e=>{L(),qt?.(e)},[L,qt]),Rr=t.useCallback(e=>{L(),Ft?.(e)},[L,Ft]),Cr=t.useCallback(()=>{se(!0),p(!0)},[p]);return t.useEffect(()=>{const e=Dt.current,s=(e.length>0&&e.length<oe.length&&e.every((o,y)=>o===oe[y])?C.slice(e.length):[]).some(o=>o.is_new===!1);if(Dt.current=oe,!s)return;const l=window.requestAnimationFrame(()=>{const o=Be.current,y=Lt.current;if(!o||!y)return;const x=o.getBoundingClientRect(),X=y.getBoundingClientRect(),je=o.scrollTop+(X.top-x.top);o.scrollTo({top:Math.max(je,0),behavior:"smooth"})});return()=>{window.cancelAnimationFrame(l)}},[C,oe]),t.useEffect(()=>{if(!Ee.current||(Ee.current=!1,C.length===0))return;const e=window.requestAnimationFrame(()=>{xn()});return()=>{window.cancelAnimationFrame(e)}},[C,xn]),a.jsxRuntimeExports.jsxs("section",{ref:xe,className:pe.cn("relative h-full w-full",j&&"slide--mobile-device",tn&&"slide--browser-fullscreen",ie&&"slide--mobile-landscape",Zt&&"slide--mobile-landscape-native",Mn),onClick:Cr,onFocusCapture:Rr,onPointerDown:Ir,..._n,children:[Xn?a.jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pointer-events-none fixed left-0 top-0 z-[9999] h-[100vh] max-h-[100vh] w-[100vw]"}):null,a.jsxRuntimeExports.jsxs("div",{ref:st,className:pe.cn("slide__viewport relative h-full min-h-0 w-full",ie&&"slide__viewport--mobile-landscape",ie&&!Wn&&"slide__viewport--mobile-landscape-native"),children:[Gn?a.jsxRuntimeExports.jsxs("div",{className:"slide-landscape-header",children:[a.jsxRuntimeExports.jsx("button",{"aria-label":K?.backAriaLabel??U.fullscreenBackAriaLabel,className:"slide-landscape-header__back",onClick:$n,type:"button",children:a.jsxRuntimeExports.jsx(Ur.default,{className:"slide-landscape-header__icon h-6 w-6",strokeWidth:2.25})}),K?.content?a.jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:K.content}):null]}):null,a.jsxRuntimeExports.jsx("div",{className:pe.cn("h-full min-h-0 w-full",Jn&&"slide__viewport-content--with-header",qn?"slide-content--single":"grid gap-4"),children:C.length>0?a.jsxRuntimeExports.jsx("div",{className:"slide-stage",children:a.jsxRuntimeExports.jsx("div",{ref:Be,className:"slide-stage__layer w-full",children:Qn.map((e,n)=>{const r=n===Zn;return a.jsxRuntimeExports.jsx("div",{"data-active-step":r?"true":void 0,"aria-hidden":!r||void 0,className:"w-full h-full",style:{display:r?void 0:"none"},children:dr(e.elementList,r)},e.sourceStepIndexes[0]??n)})})}):null}),Nn?a.jsxRuntimeExports.jsx(wr.default,{message:$r(Pn,Bn),className:"absolute left-1/2 top-1/2 z-[3] -translate-x-1/2 -translate-y-1/2"}):null,a.jsxRuntimeExports.jsx(_r.default,{extraBottomOffset:Un,hasPlayerGap:E,isEnabled:Jt&&Vn,isPlayerHidden:m&&!E,playbackTimeStore:ae,subtitleCues:er}),Oe?a.jsxRuntimeExports.jsx("div",{ref:ge,"data-player-keyboard-shortcuts-ignore":"true",className:pe.cn("slide-interaction-overlay",E&&m?"slide-interaction-overlay--with-player":"slide-interaction-overlay--standalone",pt&&"slide-interaction-overlay--dragging"),onClick:Rt,onPointerDownCapture:e=>{Tt(e.target)&&Je(!0)},onFocusCapture:e=>{Tt(e.target)&&Je(!0)},onInputCapture:e=>{Tt(e.target)&&Je(!0)},style:tr,children:a.jsxRuntimeExports.jsx(wn,{content:String(f?.content??""),locale:c,defaultButtonText:pn.buttonText??"",defaultInputText:pn.inputText??"",defaultSelectedValues:lr,confirmButtonText:ee?.confirmButtonText??U.interactionTexts.confirmButtonText,copyButtonText:ee?.copyButtonText??U.interactionTexts.copyButtonText,copiedButtonText:ee?.copiedButtonText??U.interactionTexts.copiedButtonText,onSend:ur,onDragHandlePointerCancel:bn,onDragHandlePointerDown:vr,onDragHandlePointerMove:Er,onDragHandlePointerUp:bn,readonly:ir,title:ee?.title??nt??U.interactionTexts.title})}):null,m?a.jsxRuntimeExports.jsx(jr.PlayerKeyboardShortcutContext.Provider,{value:Fn,children:a.jsxRuntimeExports.jsx(Tr.default,{audioList:h,className:pe.cn("absolute left-1/2 z-[2] -translate-x-1/2",tn?"bottom-3":"-bottom-3",V,!E&&"pointer-events-none opacity-0"),currentAudioIndex:I,defaultPlaying:at,enableKeyboardShortcuts:te,isPlaybackPaused:J,isAutoAdvanceEnabled:Ae,locale:c,hasInteraction:!!f,isInteractionOpen:le,isSubtitleEnabled:Jt,onAutoAdvanceToggle:Wt,onLoadingChange:hr,onPlaybackStarted:()=>{We(!0)},onPlaybackPreferenceChange:sr,onPlaybackTimeChange:ae.setTime,onSubtitleToggle:()=>{Kn(e=>!e)},nextDisabled:!A,onEnded:xr,onFullscreen:fr,isFullscreen:zt,mobileViewMode:W,settingsPortalContainer:st.current,onMobileViewModeChange:zn,onControlsPointerEnter:Sr,onControlsPointerLeave:gr,onInteractionToggle:br,onNext:yr,onPrev:pr,onSubtitleJump:mr,canJumpToSubtitleTarget:It,prevDisabled:!jn,showControls:E,subtitleSeekRequest:Dn,texts:rt,customActionContext:St,customActions:Q,useAutoAdvanceToggle:Te})}):null]})]})};exports.default=to;
|
|
2
2
|
//# sourceMappingURL=Slide.cjs.js.map
|