1(this.webpackJsonpcouchpile=this.webpackJsonpcouchpile||[]).push([[0],{106:function(e,t,n){e.exports=n.p+"static/media/stayAwake.d55bddf8.mp4"},108:function(e,t,n){e.exports=n(239)},113:function(e,t,n){},239:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(35),i=n.n(r),s=n(5),c=n(6),l=n(10),u=n(9),d=(n(113),n(96)),m=n.n(d),p=n(7),h=n(1),f=function(){function e(){Object(s.a)(this,e)}return Object(c.a)(e,null,[{key:"transmit",value:function(e){var t=e.nick_name,n=e.namespace,a=e.room_key,o={sender_nick_name:t,action:e.action};window.Ably.channels.get(this.channelName(n,a)).publish(n,o)}},{key:"channelName",value:function(e,t){return e+":room_"+t}}]),e}(),v=function(e,t){return{type:"CHANGE_USER",name:e,new_value:t}},b=function(e){var t,n=e.video_url,a=e.subtitle_url,o=e.is_playing,r=e.video_position,i=e.video_position_timestamp,s=e.password,c=e.video_length;return{type:"SET_ROOM",video_url:n,subtitle_url:a,is_playing:o,video_position:(t=r,t?Number.parseFloat(t):0),video_position_timestamp:i,password:s,video_length:c}},_=function(){return{type:"LOGOUT"}},k=function(e,t){return{type:"ADD_CHAT",nick_name:e,message:t}},g=function(e){var t=e.nick_name,n=e.room_key,a=e.namespace,o=e.action;return function(e){f.transmit({nick_name:t,room_key:n,namespace:a,event_name:a+"_action",action:o}),e(o)}},y=n(11),E=n(36),w=n(98),O=n.n(w),j=n(14),C=n.n(j),N=n(20),x=n(19),S=n(8),U=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).state={video_url:a.props.video_url,subtitle_url:a.props.subtitle_url},a}return Object(c.a)(n,[{key:"handleChange",value:function(e){var t={[e.target.name]:e.target.value};this.setState(t)}},{key:"showS3Warning",value:function(){return this.state.video_url.includes("https://s3.console.aws")}},{key:"showFacebookWarning",value:function(){return this.state.video_url.includes("https://l.messenger.com/")}},{key:"componentDidUpdate",value:function(e){e.video_url!==this.props.video_url&&this.setState({video_url:this.props.video_url}),e.subtitle_url!==this.props.subtitle_url&&this.setState({subtitle_url:this.props.subtitle_url})}},{key:"saveUrls",value:function(){var e=Object(N.a)(C.a.mark((function e(t){var n,a,o;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.preventDefault(),e.next=3,this.processUrl(this.state.video_url);case 3:return n=e.sent,e.next=6,this.processUrl(this.state.subtitle_url);case 6:a=e.sent,this.props.broadcastAnd({nick_name:this.props.nick_name,room_key:this.props.room_key,namespace:"control",action:b({video_url:n,subtitle_url:a,video_position:0,video_position_timestamp:0,video_length:0,is_playing:!1,password:this.props.password})}),o="[Loaded '"+this.state.video_url+"']",this.props.broadcastAnd({nick_name:this.props.nick_name,room_key:this.props.room_key,namespace:"chat",action:k(this.props.nick_name,o)});case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"processUrl",value:function(){var e=Object(N.a)(C.a.mark((function e(t){var n,a;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new RegExp("^https://app.put.io/a-gift-from/(.*)/(.*)","i"),!(a=n.exec(t))||!a[2]){e.next=8;break}return e.next=5,this.getPutIOVideoUrl(a[2]);case 5:return e.abrupt("return",e.sent);case 8:return e.abrupt("return",t);case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"getPutIOVideoUrl",value:function(){var e=Object(N.a)(C.a.mark((function e(t){var n,a,o;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="https://api.put.io/v2/files/public?codecs_parent=1&media_info_parent=1&mp4_status_parent=1&mp4_stream_url_parent=1&oauth_token="+t+"&stream_url_parent=1&video_metadata_parent=1",e.next=3,fetch(n);case 3:return a=e.sent,e.next=6,a.json();case 6:return o=e.sent,e.abrupt("return",o.parent.stream_url);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"render",value:function(){return o.a.createElement("form",{onSubmit:this.saveUrls.bind(this)},o.a.createElement("div",{className:"field is-horizontal"},o.a.createElement("div",{className:"field-label is-normal"},o.a.createElement("label",{className:"label"},"Video URL")),o.a.createElement("div",{className:"field-body"},o.a.createElement("div",{className:"field"},o.a.createElement("div",{className:"control has-icons-left is-expanded"},o.a.createElement("input",{className:"input",type:"text",placeholder:"",name:"video_url",value:this.state.video_url,onChange:this.handleChange.bind(this)}),o.a.createElement("span",{className:"icon is-small is-left"},o.a.createElement(x.a,{icon:S.o,size:"lg",fixedWidth:!0}))),this.showS3Warning()?o.a.createElement("p",{className:"notification is-danger"},"This looks like an S3 console URL, not the public link. It might not work for other people. Instead, on the S3 page, click Make Public, then look for the Object Url near the bottom of the page."):"",this.show
1FacebookWarning()?o.a.createElement("p",{className:"notification is-danger"},'This looks like Facebook Messenger has mangled the link. Try opening it yourself, then copying the "real" (not facebook) link from the browser address bar. '):"",o.a.createElement("p",{className:"help"},"Enter a full URL of a video file, beginning https://. Make sure that you have the rights to this file, and that it's in a format that browsers can handle. (Use something like Handbrake to re-encode if needed). For example: http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 "),o.a.createElement("p",{className:"help"},'PutIO "share this with a friend" URLs are supported, but the file must be playable in a browser without transcoding (not all are).'),o.a.createElement("p",{className:"help"},"Youtube URLs also work, but you may get ads, and if you click any of Youtube's controls or suggested videos you'll go out of sync.")))),o.a.createElement("div",{className:"field is-horizontal"},o.a.createElement("div",{className:"field-label is-normal"},o.a.createElement("label",{className:"label"},"Subtitle URL (optional)")),o.a.createElement("div",{className:"field-body"},o.a.createElement("div",{className:"field"},o.a.createElement("div",{className:"control has-icons-left is-expanded"},o.a.createElement("input",{className:"input",type:"text",placeholder:"",name:"subtitle_url",value:this.state.subtitle_url,onChange:this.handleChange.bind(this)}),o.a.createElement("span",{className:"icon is-small is-left"},o.a.createElement(x.a,{icon:S.b,size:"lg",fixedWidth:!0}))),o.a.createElement("p",{className:"help"},"Enter a full URL of a VTT file, beginning https://. If needed you can ",o.a.createElement("a",{href:"https://gotranscript.com/subtitle-converter"},"convert SRT files to VTT format"),". ")))),o.a.createElement("div",{className:"field is-horizontal"},o.a.createElement("div",{className:"field-label is-normal"},o.a.createElement("label",{className:"label"})),o.a.createElement("div",{className:"field-body"},o.a.createElement("div",{className:"field"},o.a.createElement("div",{className:"control"},o.a.createElement("input",{type:"submit",className:"button is-dark",value:"Set"}))))))}}]),n}(a.Component),R=Object(p.b)((function(e){return{video_url:e.room.video_url,subtitle_url:e.room.subtitle_url,password:e.room.password,room_key:e.user.room_key,nick_name:e.user.nick_name}}),{broadcastAnd:g})(U),M=n(2);function A(){var e=Object(h.a)(["\n width:",";\n height:",";\n margin:5px;\n padding-left: 0;\n padding-right: 0;\n overflow:hidden;\n"]);return A=function(){return e},e}var T=M.a.button.attrs({className:"button"})(A(),(function(e){return e.size}),(function(e){return e.size}));function F(e){return o.a.createElement(T,{title:e.title,className:e.highlighted?"is-primary":"is-dark",onClick:e.onClick,size:e.size,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onTouchStart:e.onMouseDown,onTouchEnd:e.onMouseUp},o.a.createElement(x.a,{icon:e.icon,fixedWidth:!0}))}F.defaultProps={size:"45px"};var L=F,P=Object(p.b)((function(e){return{password:e.room.password,nick_name:e.user.nick_name,room_key:e.user.room_key,view_mode:e.user.view_mode,video_length:e.room.video_length,ideal_position:e.user.ideal_position,video_position:e.room.video_position,room_password:e.user.room_password,is_playing:e.room.is_playing,video_url:e.room.video_url,subtitle_url:e.room.subtitle_url,subtitles_enabled:e.user.subtitles_enabled}}),{changeUser:v,logout:_})((function(e){return o.a.createElement(o.a.Fragment,null,o.a.createElement(L,{title:"Leave room",key:"exit",icon:S.l,onClick:e.logout},"Exit"),o.a.createElement(L,{title:"Fullscreen",key:"fullscreen",icon:S.d,onClick:function(){document.getElementById("root").requestFullscreen()}},"Fullscreen"),o.a.createElement(L,{title:"Toggle chat/movie/both",key:"changeview",icon:S.c,onClick:function(){switch(e.view_mode){case"video":e.changeUser("view_mode","chat");break;case"chat":e.changeUser("view_mode","full");break;case"full":e.changeUser("view_mode","video")}}},"Change View"),e.subtitle_url?o.a.createElement(L,{title:"Toggle subtitles",highlighted:e.subtitles_enabled,key:"togglesubtitles",icon:S.b,onClick:function(){e.changeUser("subtitles_enabled",!e.subtitles_enabled)}},"Toggle Subtitles"):"")})),D=function(){function e(){Object(s.a)(this,e)}return Object(c.a)(e,null,[{key:"utc",value:function(){return this.clock_drift?Date.now()+this.clock_drift:Date.now()}},{key:"setClockDrift",value:function(){var e=Object(N.a)(C.a.mark((function e(){var t,n,a;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("https://worldtimeapi.org/api/timezone/Etc/UTC.json");case 2:return t=e.sent,e.next=5,t.json();case 5:n=e.sent,a=1e3*n.unixtime,this.clock_drift=a-Date.now();case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),e}(),I=Object(p.b)((function(e){return{password:e.room.password,nick_name:e.user.nick_name,room_key:e.user.room_key,view_mode:e.user.view_mode,video_length:e.room.video_length,ideal_position:e.user.ideal_position,video_position:e.room.video_position,room_password:e.user.room_password,is_playing:e.room.is_playing,video_url:e.room.video_url,subtitle_url:e.room.subtitle_url}}),{broadcastAnd:g})((function(e){var t=function(){return{nick_name:e.nick_name,room_key:e.room_key}},n=function(n,a){var o=Object(y.a)(Object(y.a)({},{is_playing:e.is_playing,video_url:e.video_url,subtitle_url:e.subtitle_url,video_position:e.ideal_position,video_position_timestamp:D.utc(),video_length:e.video_length,password:e.password}),n);e.broadcastAnd(Object(y.a)(Object(y.a)({},t()),{},{namespace:"control",action:b(o)})),function(n){e.broadcastAnd(Object(y.a)(Object(y.a)({},t()),{},{namespace:"chat",action:k(e.nick_name,n)}))}(a)};return o.a.createElement(o.a.Fragment,null,o.a.createElement(L,{title:"Load a movie URL (for everyone)",key:"eject",icon:S.e,onClick:function(){n({video_url:"",subtitle_url:"",video_position:0,video_length:0},"[Hit eject]")}},"Eject"),o.a.createElement(L,{title:"Play (for everyone)",key:"play",icon:S.k,highlighted:e.is_playing,onClick:function(){n({is_playing:!0},"[Hit play at position "+parseInt(e.ideal_position)+"s]")}},"Play"),o.a.createElement(L,{title:"Pause (for everyone)",key:"pause",icon:S.j,highlighted:!e.is_playing,onClick:function(){n({is_playing:!1},"[Hit pause at position "+parseInt(e.ideal_position)+"s]")}},"Pause"),o.a.createElement(L,{title:"Skip backwards 30s (for everyone)",key:"backward",icon:S.a,onClick:function(){n({video_position:e.ideal_position-30},"[Hit back]")}},"Back"),o.a.createElement(L,{title:"Skip forwards 30s (for everyone)",key:"forward",icon:S.f,onClick:function(){n({video_position:e.ideal_position+30},"[Hit forward]")}},"Forward"))}));function V(){var e=Object(h.a)(["\n background-color:var(--panel-bg-colour);\n padding: 5px;\n width:100%;\n height:100%;\n display:flex;\n flex-wrap: wrap;\n flex-direction:",";
1\n align-items: center;\n justify-content: center\n"]);return V=function(){return e},e}var W=M.a.div(V(),(function(e){return"horizontal"===e.layout?"row":"column"})),G=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){return Object(s.a)(this,n),t.apply(this,arguments)}return Object(c.a)(n,[{key:"render",value:function(){return o.a.createElement(W,{layout:"chat"===this.props.viewMode?"vertical":"horizontal"},this.props.children)}}]),n}(a.Component),z=function(e){return o.a.createElement("div",{style:{flex:1,flexGrow:0}},o.a.createElement(G,{viewMode:e.view_mode},o.a.createElement("div",{style:{display:"inline-block",marginRight:"20px"}},e.controls),e.progressBar?o.a.createElement("div",{style:{flex:1,width:"100%"}},e.progressBar):null))},H=n(16),B=function(e){return e.user.nick_name&&e.user.room_key},K=function(e){return!e.room.password||e.user.room_password===e.room.password},Y=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).input_password=o.a.createRef(),a}return Object(c.a)(n,[{key:"render",value:function(){var e=this;return o.a.createElement("div",{className:"modal is-active"},o.a.createElement("div",{className:"modal-background"}),o.a.createElement("div",{className:"modal-card"},o.a.createElement("header",{className:"modal-card-head"},o.a.createElement("p",{className:"modal-card-title"},this.props.title),o.a.createElement("button",{className:"delete","aria-label":"close",onClick:this.props.onClose})),o.a.createElement("section",{className:"modal-card-body"},o.a.createElement("input",{className:"input",type:"text",placeholder:"Password",ref:this.input_password})),o.a.createElement("footer",{className:"modal-card-foot",style:{justifyContent:"flex-end"}},o.a.createElement("button",{onClick:function(){return e.props.onClick(e.input_password.current.value)},className:"button is-primary"},"Do it"))),o.a.createElement("button",{className:"modal-close is-large","aria-label":"close",onClick:this.props.onClose}))}}]),n}(a.Component),J=Object(p.b)((function(e){return{canSeeControls:K(e),password:e.room.password,nick_name:e.user.nick_name,room_key:e.user.room_key,view_mode:e.user.view_mode,video_length:e.room.video_length,ideal_position:e.user.ideal_position,video_position:e.room.video_position,room_password:e.user.room_password,is_playing:e.room.is_playing,video_url:e.room.video_url,subtitle_url:e.room.subtitle_url}}),{broadcastAnd:g,changeUser:v})((function(e){var t=Object(a.useState)(""),n=Object(H.a)(t,2),r=n[0],i=n[1],s=function(){return{nick_name:e.nick_name,room_key:e.room_key}},c=function(t,n){var a=Object(y.a)(Object(y.a)({},{is_playing:e.is_playing,video_url:e.video_url,subtitle_url:e.subtitle_url,video_position:e.ideal_position,video_position_timestamp:D.utc(),video_length:e.video_length,password:e.password}),t);e.broadcastAnd(Object(y.a)(Object(y.a)({},s()),{},{namespace:"control",action:b(a)})),function(t){e.broadcastAnd(Object(y.a)(Object(y.a)({},s()),{},{namespace:"chat",action:k(e.nick_name,t)}))}(n)},l=function(){c({password:""},"[Removed lock on controls]")},u=function(t){c({password:t},"[Locked controls]"),e.changeUser("room_password",t),m()},d=function(t){e.changeUser("room_password",t),m()},m=function(){i("")};return o.a.createElement(o.a.Fragment,null,e.password?e.canSeeControls?o.a.createElement(L,{title:"Remove lock",key:"clearlock",icon:S.h,highlighted:"true",onClick:l},"Remove lock"):o.a.createElement(L,{title:"Enter password to access controls",key:"unlock",icon:S.m,onClick:i.bind(void 0,"unlock")},"Unlock"):o.a.createElement(L,{title:"Set a password to restrict controls",key:"lock",icon:S.h,onClick:i.bind(void 0,"lock")},"Lock"),function(){switch(r){case"lock":return o.a.createElement(Y,{title:"Lock Controls",onClose:m,onClick:u});case"unlock":return o.a.createElement(Y,{title:"Unlock Controls",onClose:m,onClick:d});default:return null}}())})),q=function(){function e(){Object(s.a)(this,e)}return Object(c.a)(e,null,[{key:"secsToHHMMSS",value:function(e){var t=Math.floor(e/3600);e-=3600*t;var n=Math.floor(e/60);return e-=60*n,t<1?n.toString().padStart(2,"0")+":"+e.toString().padStart(2,"0"):t.toString().padStart(2,"0")+":"+n.toString().padStart(2,"0")+":"+e.toString().padStart(2,"0")}}]),e}();function X(){var e=Object(h.a)(["\n min-width: 100px;\n margin-top: 15px;\n margin-bottom: 15px\n"]);return X=function(){return e},e}var Q=M.a.progress(X()),Z=Object(p.b)((function(e){return{nickName:e.user.nick_name,roomKey:e.user.room_key,videoLength:e.room.video_length,idealPosition:e.user.ideal_position,isPlaying:e.room.is_playing,videoUrl:e.room.video_url,subtitleUrl:e.room.subtitle_url,password:e.room.password}}),{broadcastAnd:g,addChat:k})((function(e){var t=Object(a.useRef)(null),n=function(){return{is_playing:e.isPlaying,video_url:e.videoUrl,subtitle_url:e.subtitleUrl,video_position:e.idealPosition,video_position_timestamp:D.utc(),video_length:e.videoLe
1ngth,password:e.password}},r=function(t){e.broadcastAnd({nick_name:e.nickName,room_key:e.roomKey,namespace:"chat",action:k(e.nickName,t)})};return o.a.createElement(Q,{ref:t,className:"progress",value:e.videoLength>0?100*e.idealPosition/e.videoLength:0,max:"100",onClick:function(a){var o=((a.clientX-t.current.getBoundingClientRect().left)/t.current.getBoundingClientRect().width*e.videoLength).toFixed();e.broadcastAnd({nick_name:e.nickName,room_key:e.roomKey,namespace:"control",action:b(Object(y.a)(Object(y.a)({},n()),{},{video_position:o}))}),r("[Skipped to "+q.secsToHHMMSS(o)+"]")}})}));function $(){var e=Object(h.a)(["\n position: absolute;\n bottom: 50px;\n"]);return $=function(){return e},e}var ee=M.a.div.attrs({className:"notification is-warning is-light"})($()),te=function(e){return o.a.createElement(ee,null,"We need to load ",Math.floor(e.percentGoal),"% of the movie. We've loaded ",Math.floor(e.percentLoaded),"% so far. Please wait..")};function ne(){var e=Object(h.a)(["\n background-color:black;\n height: 100%;\n display: flex;\n flex-direction:column;\n"]);return ne=function(){return e},e}var ae=M.a.div(ne()),oe=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).getFullRoomDetails=function(){return{is_playing:a.props.is_playing,video_url:a.props.video_url,subtitle_url:a.props.subtitle_url,video_position:a.props.ideal_position||0,video_position_timestamp:D.utc(),video_length:a.props.video_length,password:a.props.password}},a.getUserInfo=function(){return{nick_name:a.props.nick_name,room_key:a.props.room_key}},a.player=o.a.createRef(),a.state={playerReady:!1,showPlayer:!0,showControls:!0,lastSawMouseMovement:Date.now(),needToRenderLoadWarning:!1,percent_loaded:0,percent_played:0},a.interval=setInterval(a.heartbeat.bind(Object(E.a)(a)),1e3),a}return Object(c.a)(n,[{key:"componentWillUnmount",value:function(){clearInterval(this.interval)}},{key:"heartbeat",value:function(){Date.now()-this.state.lastSawMouseMovement>3e3&&this.setState({showControls:!1})}},{key:"componentDidUpdate",value:function(e,t){var n=this;if(this.state.playerReady&&this.state.showPlayer)if(e.video_url===this.props.video_url){e.subtitles_enabled!==this.props.subtitles_enabled&&(this.setState({showPlayer:!1}),setTimeout((function(){n.setState({showPlayer:!0})}),50));var a=this.props.ideal_position?this.props.ideal_position:0;Math.abs(a-this.player.current.getCurrentTime())>5&&this.player.current.seekTo(this.props.ideal_position)}else this.setState({playerReady:!1})}},{key:"handleReady",value:function(){this.setState({playerReady:!0})}},{key:"renderForm",value:function(){if(""===this.props.video_url)return o.a.createElement(R,null)}},{key:"handleDuration",value:function(e){this.props.video_length||this.props.broadcastAnd(Object(y.a)(Object(y.a)({},this.getUserInfo()),{},{namespace:"control",action:b(Object(y.a)(Object(y.a)({},this.getFullRoomDetails()),{},{video_length:e}))}))}},{key:"renderControlToolbar",value:function(){return this.props.canSeeControls?o.a.createElement(z,{controls:o.a.createElement(o.a.Fragment,null,o.a.createElement(P,null),o.a.createElement(J,null),o.a.createElement(I,null)),progressBar:o.a.createElement(Z,null)}):o.a.createElement(z,{controls:o.a.createElement(o.a.Fragment,null,o.a.createElement(P,null),o.a.createElement(J,null)),progressBar:null})}},{key:"checkForVideoLoad",value:function(e){this.setState({needToRenderLoadWarning:Math.floor(100*e.played)>Math.floor(100*e.loaded),percent_loaded:Math.round(100*e.loaded),percent_played:Math.round(100*e.played)})}},{key:"subtitleConfig",value:function(){return{file:{attributes:{crossOrigin:"true"},tracks:[{kind:"subtitles",src:this.props.subtitle_url,default:!0}]}}}},{key:"render",value:function(){var e=this;return this.state.showPlayer?o.a.createElement(ae,{onMouseMove:function(){e.setState({lastSawMouseMovement:Date.now(),showControls:!0})}},o.a.createElement("div",{style:{flex:4,flexGrow:100,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"}},this.renderForm(),this.state.needToRenderLoadWarning?o.a.createElement(te,{percentGoal:this.state.percent_played,percentLoaded:this.state.percent_loaded}):null,o.a.createElement(O.a,{onReady:this.handleReady.bind(this),onDuration:this.handleDuration.bind(this),onProgress:function(t){return e.checkForVideoLoad(t)},ref:this.player,url:this.props.video_url,playing:this.props.is_playing,controls:!1,width:"100%",height:"100%",config:this.props.subtitles_enabled?this.subtitleConfig():{}})),"full"===this.view_mode||this.state.showControls?this.renderControlToolbar():null):o.a.createElement("div",null)}}]),n}(a.Component),re=Object(p.b)((function(e){return{subtitles_enabled:e.user.subtitles_enabled,video_url:e.room.video_url,subtitle_url:e.room.subtitle_url,
1ideal_position:e.user.ideal_position,is_playing:e.room.is_playing,password:e.room.password,video_length:e.room.video_length,nick_name:e.user.nick_name,room_key:e.user.room_key,canSeeControls:K(e)}}),{broadcastAnd:g})(oe),ie=n(29),se=n(21);var ce=Object(se.combineReducers)({user:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;switch(n.type){case"CHANGE_USER":return(e=Object(y.a)({},t))[n.name]=n.new_value,e;case"LOGOUT":return{nick_name:"",room_key:"",view_mode:"full",ideal_position:0};default:return t}},room:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_ROOM":return{video_url:t.video_url,subtitle_url:t.subtitle_url,is_playing:t.is_playing,video_position:t.video_position,video_position_timestamp:t.video_position_timestamp,video_length:t.video_length,password:t.password};case"LOGOUT":return{video_url:"",is_playing:!1,last_pos:0,last_pos_timestamp:0,password:null};default:return e}},chats:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n={};switch(t.type){case"ADD_CHAT":return n={nick_name:t.nick_name,message:t.message,timestamp:D.utc()},[].concat(Object(ie.a)(e),[n]);case"LOGOUT":return[];default:return e}},present:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"PRESENCE_JOIN":return[].concat(Object(ie.a)(e),[t.presence]);case"PRESENCE_LEAVE":return e.filter((function(e){return e.connection_id!==t.connection_id}));case"LOGOUT":return[];default:return e}}}),le=n(102),ue=n(103),de=n(51),me=Object(de.load)({states:["user"],namespace:"couchpile25",preloadedState:{user:{nick_name:"",room_key:"",room_password:"",view_mode:"full",ideal_position:0},room:{video_url:"",subtitle_url:"",video_position:0,video_position_timestamp:0,video_length:0,is_playing:!1,password:null},chats:[],present:[]}}),pe=Object(se.createStore)(ce,me,Object(le.composeWithDevTools)(Object(se.applyMiddleware)(ue.a,Object(de.save)({states:["user"],namespace:"couchpile25"})))),he=n(104),fe=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).setupAbly(),a.state={connectionState:"Not yet initialised.",processedFirstControlMessage:!1},a}return Object(c.a)(n,[{key:"setupAbly",value:function(){window.Ably=new he.Realtime({key:window.ABLY_API_KEY,clientId:this.props.nick_name})}},{key:"channelForRoomKey",value:function(e,t){return e+":room_"+t}},{key:"componentDidMount",value:function(){var e=window.Ably.channels.get("[?rewind=1]"+this.channelForRoomKey("control",this.props.room_key)),t=window.Ably.channels.get(this.channelForRoomKey("chat",this.props.room_key)),n=function(e){if(""!==e.data&&("control"===e.name&&!this.state.processedFirstControlMessage||e.data.sender_nick_name!==this.props.nick_name))switch(e.name){case"control":this.setState({processedFirstControlMessage:!0}),console.log("Firing received with ",e.data),this.props.receivedAblyMessage(e.data);break;case"chat":this.props.receivedAblyMessage(e.data)}};e.subscribe(n.bind(this)),t.subscribe(n.bind(this)),t.presence.subscribe((function(e){switch(e.action){case"enter":case"present":pe.dispatch({type:"PRESENCE_JOIN",presence:{client_id:e.clientId,connection_id:e.connectionId}});break;case"leave":pe.dispatch(function(e){return{type:"PRESENCE_LEAVE",connection_id:e}}(e.connectionId))}})),t.presence.enter()}},{key:"componentWillUnmount",value:function(){window.Ably.channels.get(this.channelForRoomKey("chat",this.props.room_key)).presence.leave(),window.Ably.channels.get(this.channelForRoomKey("chat",this.props.room_key)).presence.unsubscribe(),window.Ably.channels.get(this.channelForRoomKey("control",this.props.room_key)).unsubscribe(),window.Ably.channels.get(this.channelForRoomKey("chat",this.props.room_key)).unsubscribe()}},{key:"render",value:function(){return null}}]),n}(a.Component),ve=Object(p.b)((function(e){return{room_key:e.user.room_key,nick_name:e.user.nick_name}}),{receivedAblyMessage:function(e){return e.action}})(fe);function be(){var e=Object(h.a)(["\n height:2em;\n background-color:#000;\n color:#fff;\n padding:3px;\n"]);return be=function(){return e},e}
1var _e=M.a.input(be()),ke=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).onChange=function(e){return a.setState({[e.target.name]:e.target.value})},a.state={message:""},a}return Object(c.a)(n,[{key:"sendChat",value:function(e){""!==this.state.message&&(this.props.broadcastAnd({nick_name:this.props.nick_name,room_key:this.props.room_key,namespace:"chat",action:k(this.props.nick_name,this.state.message)}),this.setState({message:""})),e.preventDefault()}},{key:"render",value:function(){return o.a.createElement("div",null,o.a.createElement("form",{onSubmit:this.sendChat.bind(this)},o.a.createElement("div",{className:"field"},o.a.createElement("div",{className:"control"},o.a.createElement(_e,{className:"input",type:"text",placeholder:"Your message",name:"message",value:this.state.message,onChange:this.onChange})))))}}]),n}(a.Component),ge=Object(p.b)((function(e){return{room_key:e.user.room_key,nick_name:e.user.nick_name}}),{broadcastAnd:g})(ke);function ye(){var e=Object(h.a)(["\n"]);return ye=function(){return e},e}function Ee(){var e=Object(h.a)(["\n font-weight:bold;\n"]);return Ee=function(){return e},e}function we(){var e=Object(h.a)(["\n margin-bottom:0.5em;\n animation: "," 100ms, "," 20s step-end;\n\n"]);return we=function(){return e},e}function Oe(){var e=Object(h.a)(["\n 0% {\n color: rgba(255,255,0,1);\n }\n 100% {\n color: rgba(255,255,255,1);\n }\n"]);return Oe=function(){return e},e}function je(){var e=Object(h.a)(["\n 0% {\n background: rgba(255,255,0,1);\n }\n 100% {\n background: rgba(0,0,0,0);\n }\n"]);return je=function(){return e},e}var Ce=Object(M.b)(je()),Ne=Object(M.b)(Oe()),xe=M.a.div(we(),Ce,Ne),Se=M.a.span(Ee()),Ue=M.a.span(ye());var Re=function(e){return o.a.createElement(xe,null,o.a.createElement(Se,null,e.chat.nick_name,": "),o.a.createElement(Ue,null,e.chat.message))};function Me(){var e=Object(h.a)(["\n padding-left: 2px;\n padding-right: 2px;\n margin: 2px;\n font-size: 70%;\n color: #ddd;\n overflow-wrap: anywhere; \n"]);return Me=function(){return e},e}var Ae=M.a.span(Me());var Te=function(e){return o.a.createElement(Ae,null,o.a.createElement(x.a,{icon:S.n,size:"sm",fixedWidth:!0})," ",e.nick_name)};function Fe(){var e=Object(h.a)(["\nfont-size:70%;\nline-height:1.1em;\n"]);return Fe=function(){return e},e}var Le=M.a.div(Fe()),Pe=function(e){var t=Object(a.useState)(!0),n=Object(H.a)(t,2),r=n[0],i=n[1];return r?o.a.createElement(Le,{onClick:function(){i(!1)}},"Heads up: Video-chat mode is even ",o.a.createElement("i",null,"more")," experimental. It also costs me money, so it may stop working at any time if the Twilio account runs out of credit. Click and hold on the microphone button to speak. You really should have headphones on for this. ",o.a.createElement("a",{href:"#hide",onClick:function(){i(!1)}},"[close]")):null},De=n(38);function Ie(){var e=Object(h.a)(["\noverflow:hidden;\n"]);return Ie=function(){return e},e}function Ve(){var e=Object(h.a)(["\nwidth: 100%;\ndisplay: grid;\nmin-height:20px;\ngrid-template-columns: repeat(auto-fill, minmax(120px, 1fr));\n"]);return Ve=function(){return e},e}function We(){var e=Object(h.a)(["\n position:absolute;\n top:0;\n right:0;\n width:50px;\n border:2px solid grey;\n text-align:center;\n font-size:60%;\n"]);return We=function(){return e},e}var Ge=function(e){var t=e.track,n=e.alwaysMuted,r=Object(a.useRef)(null);return Object(a.useEffect)((function(){t.attach(r.current),r.current.muted=n;var e=r.current;return function(){t.detach(e)}}),[t,n]),"video"===t.kind?o.a.createElement("video",{ref:r}):o.a.createElement("audio",{ref:r})},ze=function(e){var t=e.publication,n=e.alwaysMuted,r=Object(a.useState)(t&&t.track),i=Object(H.a)(r,2),s=i[0],c=i[1];return Object(a.useEffect)((function(){if(c(t&&t.track),t){var e=function(){return c(null)};return t.on("subscribed",c),t.on("unsubscribed",e),function(){t.off("subscribed",c),t.off("unsubscribed",e)}}}),[t]),s?o.a.createElement(Ge,{track:s,alwaysMuted:n}):o.a.createElement("div",null,"No track")},He=function(e){var t=Object(a.useState)([]),n=Object(H.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){i(Array.from(e.participant.tracks.values())
1);var t=function(e){return i((function(t){return[].concat(Object(ie.a)(t),[e])}))},n=function(e){return i((function(t){return t.filter((function(t){return t!==e}))}))};return e.participant.on("trackPublished",t),e.participant.on("trackUnpublished",n),function(){e.participant.off("trackPublished",t),e.participant.off("trackUnpublished",n)}}),[e.participant]),o.a.createElement(o.a.Fragment,null,r.map((function(t){return o.a.createElement(ze,{key:t.trackSid,publication:t,alwaysMuted:e.alwaysMuted})})))},Be=M.a.div(We()),Ke=M.a.div(Ve()),Ye=M.a.div(Ie()),Je=function(e){var t=Object(a.useState)(!1),n=Object(H.a)(t,2),r=n[0],i=n[1],s=function(t){console.log("Set mic to ",t),!0===t?e.localAudioTrack&&e.localAudioTrack.enable():e.localAudioTrack&&e.localAudioTrack.disable()};return o.a.createElement(L,{icon:S.i,highlighted:r,onMouseDown:function(){i(!0),s(!0)},onMouseUp:function(){i(!1),s(!1)}})},qe=function(e){var t=Object(a.useState)(void 0),n=Object(H.a)(t,2),r=n[0],i=n[1],s=Object(a.useState)([]),c=Object(H.a)(s,2),l=c[0],u=c[1],d=Object(a.useState)(void 0),m=Object(H.a)(d,2),p=m[0],h=m[1],f=Object(a.useState)(null),v=Object(H.a)(f,2),b=v[0],_=v[1];return Object(a.useEffect)((function(){function t(){return(t=Object(N.a)(C.a.mark((function t(){var a,r,s,l,u,d,m;return C.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return console.log("Getting token"),t.next=3,fetch(".netlify/functions/twilioToken?roomKey="+encodeURI(e.roomKey)+"&nickName="+encodeURI(e.nickName));case 3:return a=t.sent,t.next=6,a.json();case 6:return r=t.sent,console.log("Connecting with...",r.token),t.next=10,n();case 10:return s=t.sent,t.next=13,o();case 13:return l=t.sent,u={audio:!1,video:!1,tracks:[],maxAudioBitrate:2e5,maxVideoBitrate:15e4},d=[],s&&d.push(s),l&&d.push(l),u.tracks=d,t.next=23,Object(De.connect)(r.token,u);case 23:if(m=t.sent,console.log("Connected, room is",m),m){t.next=27;break}return t.abrupt("return");case 27:c(m),i(m);case 29:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function n(){return a.apply(this,arguments)}function a(){return(a=Object(N.a)(C.a.mark((function e(){var t,n;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,console.log("Getting video"),t={audio:!1,video:{width:384,height:384}},e.next=5,navigator.mediaDevices.getUserMedia(t);case 5:return n=e.sent,e.abrupt("return",new De.LocalVideoTrack(n.getVideoTracks()[0]));case 9:if(e.prev=9,e.t0=e.catch(0),"NotFoundError"!==e.t0.name&&"AbortError"!==e.t0.name&&"NotReadableError"!==e.t0.name){e.next=16;break}return console.log("Looks like you don't have a camera"),e.abrupt("return",void 0);case 16:throw console.log("Got error",e.t0.name),e.t0;case 18:case"end":return e.stop()}}),e,null,[[0,9]])})))).apply(this,arguments)}function o(){return s.apply(this,arguments)}function s(){return(s=Object(N.a)(C.a.mark((function e(){var t;return C.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,console.log("Getting audio"),e.next=4,Object(De.createLocalAudioTrack)();case 4:return t=e.sent,_(t),t.disable(),console.log("Got audio"),e.abrupt("return",t);case 11:if(e.prev=11,e.t0=e.catch(0),"NotFoundError"!==e.t0.name&&"AbortError"!==e.t0.name&&"NotReadableError"!==e.t0.name){e.next=18;break}return console.log("Looks like you don't have a microphone"),e.abrupt("return",void 0);case 18:throw console.log("Got error",e.t0.name),e.t0;case 20:case"end":return e.stop()}}),e,null,[[0,11]])})))).apply(this,arguments)}function c(e){console.log("Setuproom, existing particip are",e.participants),u(Array.from(e.participants.values())),h(e.localParticipant),e.on("participantConnected",(function(e){console.log("A remote Participant connected: ".concat(e)),u((function(t){return[].concat(Object(ie.a)(t),[e])}))})),e.on("participantDisconnected",(function(e){console.log("A remote Participant connected: ".concat(e)),u((function(t){return t.filter((function(t){return t!==e}))}))}))}return console.log("Useeffect for videochat"),r||function(){t.apply(this,arguments)}(),function(){console.log("Teardown for videochat"),"connected"===(null===r||void 0===r?void 0:r.state)&&(console.log("Connected, disconnecting"),r.disconnect())}}),[r,e.nickName,e.roomKey]),o.a.createElement(o.a.Fragment,null,o.a.createElement(Pe,null),o.a.createElement(Je,{localAudioTrack:b}),o.a.createElement(Ke,null,o.a.createElement(Be,null,p?o.a.createElement(He,{participant:p,alwaysMuted:!0}):o.a.createElement("div",null,"No camera")),l.map((function(e){return o.a.createElement(Ye,{key:e.sid+"-1"},o.a.createElement(He,{participant:e,alwaysMuted:!1}))}
1))))};function Xe(){var e=Object(h.a)(["\n\tmax-height: 60%;\n\toverflow: scroll;\n"]);return Xe=function(){return e},e}var Qe=M.a.div(Xe()),Ze=Object(p.b)((function(e){return{room_key:e.user.room_key,nick_name:e.user.nick_name,view_mode:e.user.view_mode,chats:e.chats,present:e.present,canSeeControls:K(e)}}),{changeUser:v,logout:_})((function(e){var t=Object(a.useRef)(null),n=Object(a.useState)(!1),r=Object(H.a)(n,2),i=r[0],s=r[1];Object(a.useEffect)((function(){t&&t.current.scrollIntoView(!1,{behavior:"smooth",block:"end"})}));return o.a.createElement("div",{style:{height:"100%",display:"flex",flexDirection:"column"}},o.a.createElement("div",{style:{flexGrow:0}},["WEDSWATCHPARTY","WATCHIT"].includes(e.room_key.toUpperCase())?"":o.a.createElement(L,{title:"Toggle video chat",key:"videochat",icon:S.o,highlighted:i,onClick:function(){return s(!i)}},"Toggle video chat"),e.room_key,e.present.map((function(e){return o.a.createElement(Te,{key:e.connection_id,nick_name:e.client_id})}))),i?o.a.createElement(Qe,null,o.a.createElement(qe,{nickName:e.nick_name,roomKey:e.room_key})):null,o.a.createElement("div",{style:{flexGrow:100,overflowY:"scroll",overflowWrap:"anywhere"}},e.chats?e.chats.map((function(e){return o.a.createElement(Re,{key:e.timestamp,chat:e})})):null,o.a.createElement("div",{ref:t})),o.a.createElement("div",{className:"chat-container",style:{flexGrow:0}},o.a.createElement(ge,null)),o.a.createElement("div",{style:{flexGrow:0}},"chat"===e.view_mode?e.canSeeControls?o.a.createElement(z,{controls:o.a.createElement(o.a.Fragment,null,o.a.createElement(P,null),o.a.createElement(J,null),o.a.createElement(I,null)),progressBar:o.a.createElement(Z,null)}):o.a.createElement(z,{controls:o.a.createElement(o.a.Fragment,null,o.a.createElement(P,null),o.a.createElement(J,null)),progressBar:null}):null))}));var $e=Object(p.b)((function(e){return{view_mode:e.user.view_mode}}),{})((function(e){return o.a.createElement("div",{className:"modal is-active",onClick:e.onClick},o.a.createElement("div",{className:"modal-background"}),o.a.createElement("div",{className:"modal-card"},o.a.createElement("header",{className:"modal-card-head"},o.a.createElement("p",{className:"modal-card-title"},"Couchpile Player"),o.a.createElement("button",{className:"delete","aria-label":"close"})),o.a.createElement("section",{className:"modal-card-body"},o.a.createElement("p",null,function(e){switch(e){case"full":case"video":return"Video playback will now be synced among everyone here. You can also open this page on your phone to use the chat by itself in a second screen, if you'd like.";case"chat":return"Hopefully you've also joined this room from your laptop, desktop, or projector, which is now showing the video. You can use this second screen to participate in the chat. Use the toolbar to change modes if you prefer.";default:return""}}(e.view_mode))),o.a.createElement("footer",{className:"modal-card-foot",style:{justifyContent:"flex-end"}},o.a.createElement("button",{onClick:e.onClick,className:"button is-primary"},"Let's Watch"))),o.a.createElement("button",{className:"modal-close is-large","aria-label":"close"}))})),et=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){return Object(s.a)(this,n),t.apply(this,arguments)}return Object(c.a)(n,[{key:"render",value:function(){return o.a.createElement("div",{className:"Sidebar"},this.props.children)}}]),n}(a.Component),tt=n(105),nt=Object(p.b)((function(e){return{is_playing:e.room.is_playing,video_position:e.room.video_position,video_position_timestamp:e.room.video_position_timestamp,ideal_position:e.user.ideal_position}}),{changeUser:v})((function(e){Object(a.useEffect)((function(){t();var e=setInterval((function(){t()}),1e3);return function(){return clearInterval(e)}}));var t=function(){var t=n(e.is_playing,e.video_position,e.video_position_timestamp);Math.abs(t-e.ideal_position)>1&&e.changeUser("ideal_position",t)},n=function(e,t,n){return t=t||0,n=n||0,e?t+(D.utc()-n)/1e3:t};return null})),at=n(106),ot=n.n(at);function rt(){var e=Object(h.a)(["\n width:2px;\n height:2px;\n"]);return rt=function(){return e},e}var it=M.a.div(rt()),st=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).videoElement=o.a.createRef(),a}
1return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.videoElement.current.play()}},{key:"render",value:function(){return o.a.createElement(it,null,o.a.createElement("video",{ref:this.videoElement,muted:!0,playsInline:!0,title:"NoSleepManual",loop:!0},o.a.createElement("source",{src:ot.a})))}}]),n}(a.Component),ct=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).state={modal_needed:!0},a}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.setInitialViewMode()}},{key:"setInitialViewMode",value:function(){this.props.changeUser("view_mode",tt.isMobile?"chat":"full")}},{key:"renderModalOrPage",value:function(){return this.state.modal_needed?o.a.createElement($e,{onClick:this.modalClick.bind(this)}):this.renderPage()}},{key:"renderVideo",value:function(){return o.a.createElement("div",{style:{flex:"4 0 0"}},o.a.createElement(re,null))}},{key:"renderChat",value:function(){return o.a.createElement("div",{style:{flex:"1 0 0",overflow:"hidden"}},o.a.createElement(et,null,o.a.createElement(Ze,null)))}},{key:"renderContents",value:function(){switch(this.props.view_mode){case"full":return o.a.createElement(o.a.Fragment,null,this.renderVideo(),this.renderChat());case"video":return this.renderVideo();case"chat":return o.a.createElement(o.a.Fragment,null,this.renderChat(),o.a.createElement(st,null))}}},{key:"renderPage",value:function(){return o.a.createElement("div",{style:{height:"100%",display:"flex",flexDirection:"row"}},this.renderContents())}},{key:"modalClick",value:function(){this.setState({modal_needed:!1})}},{key:"render",value:function(){return o.a.createElement(o.a.Fragment,null,o.a.createElement(ve,null),this.renderModalOrPage(),o.a.createElement(nt,null))}}]),n}(a.Component),lt=Object(p.b)((function(e){return{room_key:e.user.room_key,nick_name:e.user.nick_name,view_mode:e.user.view_mode}}),{broadcastAnd:g,logout:_,changeUser:v})(ct),ut=function(e){return o.a.createElement("div",{className:"notification is-warning is-light"},o.a.createElement("p",null,"This is an experimental hack by ",o.a.createElement("a",{href:"https://gwynmorfey.com"},"Gwyn")," (& others). Don't use it for anything important."),o.a.createElement("p",null,"New (15 Jul 20): Added subtitle support."))},dt=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),(a=t.call(this,e)).input_nick_name=o.a.createRef(),a.input_room_key=o.a.createRef(),a.input_room_password=o.a.createRef(),a}return Object(c.a)(n,[{key:"saveChanges",value:function(e){this.props.changeUser("nick_name",this.input_nick_name.current.value),this.props.changeUser("room_key",this.input_room_key.current.value.toUpperCase()),e.preventDefault()}},{key:"render",value:function(){return o.a.createElement("div",{className:"section"},o.a.createElement("div",{className:"container"},o.a.createElement("h1",{className:"title"},"Couchpile: watch anything together"),o.a.createElement("form",{onSubmit:this.saveChanges.bind(this)},o.a.createElement("div",{className:"field"},o.a.createElement("label",{className:"label"},"Nickname"),o.a.createElement("div",{className:"control has-icons-left"},o.a.createElement("input",{className:"input",type:"text",placeholder:"",defaultValue:this.props.nick_name,ref:this.input_nick_name}),o.a.createElement("span",{className:"icon is-small is-left"},o.a.createElement(x.a,{icon:S.n,size:"lg",fixedWidth:!0}))),o.a.createElement("p",{className:"help"},"Shown to others in the room")),o.a.createElement("div",{className:"field"},o.a.createElement("label",{className:"label"},"Room key"),o.a.createElement("div",{className:"control has-icons-left"},o.a.createElement("input",{className:"input",type:"text",placeholder:"",defaultValue:this.props.room_key,ref:this.input_room_key}),o.a.createElement("span",{className:"icon is-small is-left"},o.a.createElement(x.a,{icon:S.g,size:"lg",fixedWidth:!0}))),o.a.createElement("p",{className:"help"},"Enter the key you were given, or make something up to create a new room.")),o.a.createElement("div",{className:"field"},o.a.createElement("div",{className:"control"},o.a.createElement("input",{type:"submit",className:"button is-primary",value:"Enter room"})))),o.a.createElement(ut,null)))}}]),n}(a.Component),mt=Object(p.b)((function(e){return{nick_name:e.user.nick_name,room_key:e.user.room_key}}
1),{changeUser:v})(dt);function pt(){var e=Object(h.a)(["\n --panel-bg-colour: #151520;\n --panel-fg-colour: #eeeeee;\n height:100%;\n"]);return pt=function(){return e},e}var ht=M.a.div(pt()),ft=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var a;return Object(s.a)(this,n),a=t.call(this,e),D.setClockDrift(),a}return Object(c.a)(n,[{key:"render",value:function(){return o.a.createElement(ht,{className:"App"},this.props.selectCanShowRoom?o.a.createElement(lt,null):o.a.createElement(mt,null))}}]),n}(a.Component),vt=Object(p.b)((function(e){return{selectCanShowRoom:B(e)}}),{})(ft),bt=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){return Object(s.a)(this,n),t.apply(this,arguments)}return Object(c.a)(n,[{key:"render",value:function(){return o.a.createElement(m.a,null,o.a.createElement(p.a,{store:pe},o.a.createElement(vt,null)))}}]),n}(a.Component);i.a.render(o.a.createElement(bt,null),document.getElementById("root"))}},[[108,1,2]]]); 2//# sourceMappingURL=main.b72c524b.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.