(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{60:function(e,t,a){e.exports=a(94)},67:function(e,t,a){},93:function(e,t,a){},94:function(e,t,a){"use strict";a.r(t);var n=a(30),r=a(31),s=a(34),o=a(32),i=a(35),c=a(0),l=a.n(c),u=a(17),d=a.n(u),h=a(12),m=a.n(h),p=a(25),g=a(7),w=(a(67),a(20)),v=a.n(w),f=a(59),b=a(106),E=a(100),C=a(107),k=a(103),y=a(101),j=a(58),O=a(102),P=a(105),S=a(57),x=a(104);v.a.defaults.headers.post["Content-Type"]="application/json",v.a.defaults.withCredentials=!0;var M=function(e){function t(e){var a;return Object(n.a)(this,t),(a=Object(s.a)(this,Object(o.a)(t).call(this,e))).state={authenticated:!1,username:void 0,password:void 0,showPasswordChange:!1},a.login=a.login.bind(Object(g.a)(Object(g.a)(a))),a.logout=a.logout.bind(Object(g.a)(Object(g.a)(a))),a.openPasswordChangeView=a.openPasswordChangeView.bind(Object(g.a)(Object(g.a)(a))),a.closePasswordChangeView=a.closePasswordChangeView.bind(Object(g.a)(Object(g.a)(a))),a.campusName=a.getCampusName(),a.init(),a}return Object(i.a)(t,e),Object(r.a)(t,[{key:"init",value:function(){var e=Object(p.a)(m.a.mark(function e(){return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getLogin();case 2:this.getMonitors();case 3:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"getCampusName",value:function(){var e=window.location.hostname.split(".")[0];return"west-meridian"===e.toLocaleLowerCase()?"West-Meridian":e.charAt(0).toUpperCase()+e.slice(1)}},{key:"getUserId",value:function(){var e=Object(p.a)(m.a.mark(function e(){var t,a,n;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,v.a.get("zm/?view=logout");case 3:return t=e.sent,a=/view=user.*?uid=(\d+)/.exec(t.data),n=a[1],e.abrupt("return",n);case 9:return e.prev=9,e.t0=e.catch(0),console.log("Failed to get UserId: ".concat(e.t0)),e.abrupt("return",null);case 13:case"end":return e.stop()}},e,null,[[0,9]])}));return function(){return e.apply(this,arguments)}}()},{key:"getAuthToken",value:function(){return this.state.loginRes?this.state.loginRes.access_token:null}},{key:"getMonitors",value:function(){var e=Object(p.a)(m.a.mark(function e(){var t,a,n;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=this.getAuthToken(),e.next=4,v.a.get("".concat("zm/","api/monitors.json?token=").concat(t));case 4:a=e.sent,console.log("Successfully received monitors!"),n=a.data.monitors.map(function(e){return{name:e.Monitor.Name,id:e.Monitor.Id}}),this.setState({monitors:n,activeMonitor:n[Math.floor(Math.random()*(n.length-1))].id,authenticated:!0}),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(0),console.log("Failed to get monitors: ".concat(e.t0)),this.logout();case 14:case"end":return e.stop()}},e,this,[[0,10]])}));return function(){return e.apply(this,arguments)}}()},{key:"getLogin",value:function(){var e=Object(p.a)(m.a.mark(function e(){var t;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,v.a.get("".concat("zm/","api/host/login.json"));case 3:return t=e.sent,e.t0=this,e.t1=t.data,e.next=9,this.getUserId();case 9:e.t2=e.sent,e.t3={loginRes:e.t1,uid:e.t2},e.t0.setState.call(e.t0,e.t3),e.next=17;break;case 14:e.prev=14,e.t4=e.catch(0),console.log(e.t4);case 17:case"end":return e.stop()}},e,this,[[0,14]])}));return function(){return e.apply(this,arguments)}}()},{key:"login",value:function(){var e=Object(p.a)(m.a.mark(function e(t,a,n){var r,s;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new FormData,n){e.next=3;break}return e.abrupt("return",null);case 3:return e.prev=3,r.append("user",t),r.append("pass",a),r.append("stateful","1"),e.next=9,v.a.post("".concat("zm/","api/host/login.json"),r);case 9:return s=e.sent,console.log("Login Succeeded!"),e.t0=this,e.t1=t,e.t2=a,e.t3=s.data,e.next=17,this.getUserId();case 17:e.t4=e.sent,e.t5={username:e.t1,password:e.t2,authenticated:!0,loginRes:e.t3,uid:e.t4},e.t0.setState.call(e.t0,e.t5),this.getMonitors(),e.next=27;break;case 23:e.prev=23,e.t6=e.catch(3),this.setState({authenticated:!1}),console.log("Failed to login: ".concat(e.t6));case 27:case"end":return e.stop()}},e,this,[[3,23]])}));return function(t,a,n){return e.apply(this,arguments)}}()},{key:"logout",value:function(){var e=Object(p.a)(m.a.mark(function e(){return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:try{v.a.post("".concat("zm/","api/host/logout.json")),this.setState({authenticated:!1}),console.log("Logout Successded!")}catch(t){console.log("Logout failed: ".concat(t))}case 1:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"openPasswordChangeView",value:function(){this.setState({showPasswordChange:!0})}},{key:"closePasswordChangeView",value:function(e){this.setState({showPasswordChange:!1}),e&&this.logout()}},{key:"updateActiveMonitor",value:function(e){this.setState({activeMonitor:e})}},{key:"getMonitorStreamLink",value:function(e){var t=Math.floor(Math.random()*Number.MAX_SAFE_INTEGER),a=this.getAuthToken();return"".concat("zm/","cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=14&buffer=1000&monitor=").concat(e,"&rand=").concat(t,"&token=").concat(a)}},{key:"render",value:function(){var e=this;return l.a.createElement("div",{className:"App"},l.a.createElement(b.a,{bg:"light",expand:"lg",collapseOnSelect:!0},l.a.createElement(E.a,null,l.a.createElement(b.a.Brand,null,l.a.createElement("a",{className:"navbar-brand",href:"https://www.polarislearning.net"},"Polaris Learning Center - ",this.campusName)),l.a.createElement(b.a.Toggle,{"aria-controls":"basic-navbar-nav"}),this.state.authenticated?l.a.createElement(b.a.Collapse,{id:"basic-navbar-nav"},l.a.createElement(C.a,{className:"mr-auto"},this.state.monitors?l.a.createElement(k.a,{eventKey:1,title:"Kids Cam",id:"kids-cam-dropdown"},this.state.monitors.map(function(t){return l.a.createElement(k.a.Item,{key:t.id,active:e.state.activeMonitor===t.id,onClick:function(){return e.updateActiveMonitor(t.id)}},t.name)})):null),l.a.createElement(C.a,null,l.a.createElement(C.a.Link,{onClick:this.openPasswordChangeView,href:"#"},"Change Password"),l.a.createElement(C.a.Link,{onClick:this.logout,href:"#"},"Logout"))):null)),this.state.authenticated?l.a.createElement(E.a,null,l.a.createElement(y.a,null,l.a.createElement(j.a,{xs:12},null!==this.state.activeMonitor&&void 0!==this.state.activeMonitor?l.a.createElement(O.a,{className:"camera-view justify-content-md-center",src:this.getMonitorStreamLink(this.state.activeMonitor),alt:"active-monitor",responsive:!0}):null))):l.a.createElement(L,{login:this.login}),l.a.createElement(A,{show:this.state.showPasswordChange,uid:this.state.uid,closePasswordChangeView:this.closePasswordChangeView}))}}]),t}(c.Component),L=function(e){function t(e){var a;return Object(n.a)(this,t),(a=Object(s.a)(this,Object(o.a)(t).call(this,e))).state={reCaptchaKey:void 0},a.recaptcha=void 0,a.username=void 0,a.password=void 0,a.handleChange=a.handleChange.bind(Object(g.a)(Object(g.a)(a))),a.handleSubmit=a.handleSubmit.bind(Object(g.a)(Object(g.a)(a))),a.verifyReCaptcha=a.verifyReCaptcha.bind(Object(g.a)(Object(g.a)(a))),a}return Object(i.a)(t,e),Object(r.a)(t,[{key:"handleChange",value:function(e){var t=e.target.name,a=e.target.value;this[t]=a}},{key:"handleSubmit",value:function(e){this.props.login(this.username,this.password,this.state.reCaptchaKey),e.preventDefault()}},{key:"verifyReCaptcha",value:function(e){this.setState({reCaptchaKey:e})}},{key:"render",value:function(){return l.a.createElement(j.a,{className:"login",xs:{span:6,offset:3}},l.a.createElement(P.a,{onSubmit:this.handleSubmit},l.a.createElement(P.a.Group,{as:y.a,controlId:"login-screen"},l.a.createElement(P.a.Label,{column:!0,sm:"2"},"Username"),l.a.createElement(j.a,{sm:"10"},l.a.createElement(P.a.Control,{type:"text",onChange:this.handleChange,placeholder:"Enter Username",name:"username",required:!0}))),l.a.createElement(P.a.Group,{as:y.a},l.a.createElement(P.a.Label,{column:!0,sm:"2"},"Password"),l.a.createElement(j.a,{sm:"10"},l.a.createElement(P.a.Control,{type:"password",onChange:this.handleChange,placeholder:"Enter Password",name:"password",required:!0}))),l.a.createElement(P.a.Group,{as:y.a},l.a.createElement(j.a,{sm:{span:10,offset:2}},l.a.createElement(f.a,{ref:"captcha",sitekey:"6Lci1CEUAAAAAGDfAAZ59fTRV6skZeqRrPFkLciF",onChange:this.verifyReCaptcha}))),l.a.createElement(P.a.Group,{as:y.a},l.a.createElement(j.a,{sm:{span:10,offset:2}},l.a.createElement(S.a,{type:"submit",disabled:!this.state.reCaptchaKey},"Login")))))}}]),t}(l.a.Component),A=function(e){function t(e){var a;return Object(n.a)(this,t),(a=Object(s.a)(this,Object(o.a)(t).call(this,e))).state={validated:!1,showError:!1,failedError:!1},a.newPassword=void 0,a.confirmPassword=void 0,a.handleChange=a.handleChange.bind(Object(g.a)(Object(g.a)(a))),a.handleSubmit=a.handleSubmit.bind(Object(g.a)(Object(g.a)(a))),a}return Object(i.a)(t,e),Object(r.a)(t,[{key:"handleChange",value:function(e){var t=e.target.name,a=e.target.value;"new-password"===t?this.newPassword=a:"confirm-password"===t&&(this.confirmPassword=a),this.newPassword!==this.confirmPassword?this.setState({showError:!0}):this.setState({showError:!1})}},{key:"handleSubmit",value:function(e){var t=this,a=new FormData;a.append("action","user"),a.append("uid",this.props.uid),a.append("newUser[Password]",this.newPassword),!1===e.currentTarget.checkValidity()&&(e.preventDefault(),e.stopPropagation()),this.setState({validated:!0}),v.a.post("".concat("zm/","index.php"),a).then(function(e){console.log("Password change succeeded!"),t.setState({failedError:!1}),t.props.closePasswordChangeView(!0)}).catch(function(e){console.log("Password change failed: ".concat(e)),t.setState({failedError:!0})}),e.preventDefault()}},{key:"render",value:function(){var e=this;return l.a.createElement(x.a,Object.assign({},this.props,{centered:!0,"aria-labelledby":"contained-modal-title-vcenter"}),l.a.createElement(x.a.Header,null,l.a.createElement(x.a.Title,null,"Change Password")),l.a.createElement(x.a.Body,null,l.a.createElement(P.a,{validated:this.state.validated},l.a.createElement(P.a.Row,null,l.a.createElement(P.a.Group,{as:j.a,controlId:"change-password-screen"},l.a.createElement(P.a.Label,{column:!0,sm:2},"New Password"),l.a.createElement(j.a,{sm:10},l.a.createElement(P.a.Control,{type:"password",onChange:this.handleChange,placeholder:"New Password",name:"new-password",required:!0})))),l.a.createElement(P.a.Row,null,l.a.createElement(P.a.Group,{as:j.a},l.a.createElement(P.a.Label,{column:!0,sm:2},"Confirm Password"),l.a.createElement(j.a,{sm:10},l.a.createElement(P.a.Control,{isInvalid:this.state.showError,type:"password",onChange:this.handleChange,placeholder:"Confirm Password",name:"confirm-password",required:!0})),l.a.createElement(P.a.Control.Feedback,{type:"invalid"},"Password does not match"))))),l.a.createElement(x.a.Footer,null,l.a.createElement(S.a,{type:"submit",onClick:this.handleSubmit,disabled:this.state.showError&&""!==this.newPassword,value:"Update"},"Update"),l.a.createElement(S.a,{type:"button",onClick:function(){return e.props.closePasswordChangeView(!1)},value:"cancel"},"Cancel")))}}]),t}(l.a.Component);a(93),l.a.Component;d.a.render(l.a.createElement(M,null),document.getElementById("root"))}},[[60,1,2]]]);