"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[250,225],{3225:(e,t,a)=>{a.r(t),a.d(t,{getAllBooks:()=>s,getBooksPerYearPerGenres:()=>i,getChallenge:()=>o,getCountries:()=>l,getGenresCount:()=>m,getReadingYears:()=>r,getShortestLongestBook:()=>c,getStats:()=>n});const s=()=>fetch("/api/books",{method:"GET"}).then((e=>e.json())).then((e=>e)),n=e=>fetch("/api/books/stats",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e)),o=e=>fetch("/api/books/challenge",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e)),r=()=>fetch("/api/books/years",{method:"GET"}).then((e=>e.json())).then((e=>e)),l=e=>fetch("/api/books/countries",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e)),c=e=>fetch("/api/books/pages/stats",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e)),i=e=>fetch("/api/books/genres",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e)),m=e=>fetch("/api/books/genres/count",{method:"GET",headers:{year:e}}).then((e=>e.json())).then((e=>e))},764:(e,t,a)=>{a.d(t,{Z:()=>r});var s=a(7294),n=a.n(s),o=a(9655);const r=function(){return n().createElement(n().Fragment,null,n().createElement("div",{className:"sidebar"},n().createElement("ul",null,n().createElement("li",null,n().createElement(o.OL,{to:"/"},n().createElement("i",{className:"fa fa-chart-bar"})," Dashboard")),n().createElement("li",null,n().createElement(o.OL,{to:"/booklist"},n().createElement("i",{className:"fas fa-book"})," Boekenlijst")))))}},4250:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var s=a(7294),n=a.n(s),o=a(3225);class r extends s.Component{constructor(e){super(e),this.state={readingYears:[],challenge:0}}getComponentData(){var e=this;(0,o.getStats)(this.props.year).then((t=>{e.setState({totalbooks:t.totalbooks})})),(0,o.getChallenge)(this.props.year).then((e=>{this.setState({challenge:e&&e.length>0?e[0].nrofbooks:0})}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){var e=Math.round(this.state.totalbooks/this.state.challenge*100,0);return n().createElement(n().Fragment,null,this.state.challenge&&0!==this.state.challenge?n().createElement("div",{className:"container-fluid"},n().createElement("div",{className:"row"},n().createElement("div",{className:"col-md-12"},n().createElement("div",{className:"stat-block"},n().createElement("span",{className:"block_name"},"Book Challenge"),n().createElement("div",{className:"progress"},n().createElement("div",{className:"progress-bar progress-bar-striped",role:"progressbar",style:{width:e+"%"},"aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"100"},n().createElement("div",{className:"progress-bar-number"},e,"%"))),n().createElement("span",{className:"stats-number"},this.state.totalbooks),n().createElement("span",{className:"stats-label"},"van de"),n().createElement("span",{className:"stats-number"},this.state.challenge),n().createElement("span",{className:"stats-label"},"boeken gelezen"))))):"")}}class l extends s.Component{constructor(e){super(e),this.state={readingYears:[],totalbooks:0,totalpages:0,totalauthors:0,totalcountries:0,totalgenres:0}}getComponentData(){var e=this;(0,o.getStats)(this.props.year).then((t=>{e.setState({totalbooks:t.totalbooks,totalpages:t.totalpages,totalauthors:t.totalauthors,totalcountries:t.totalcountries,totalgenres:t.totalgenres})})),(0,o.getReadingYears)().then((e=>{this.setState({readingYears:e})}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){return n().createElement(n().Fragment,null,n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-book"}),n().createElement("span",{className:"stats-number"},this.state.totalbooks),n().createElement("span",{className:"stats-label"},"Boeken"))),n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-book-open"}),n().createElement("span",{className:"stats-number"},this.state.totalpages),n().createElement("span",{className:"stats-label"},"Bladzijdes"))),n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-pen"}),n().createElement("span",{className:"stats-number"},this.state.totalauthors),n().createElement("span",{className:"stats-label"},"Schrijvers"))),n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-book"}),n().createElement("span",{className:"stats-number"},this.state.totalgenres),n().createElement("span",{className:"stats-label"},"Genres"))),n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-globe"}),n().createElement("span",{className:"stats-number"},this.state.totalcountries),n().createElement("span",{className:"stats-label"},"Landen"))))}}class c extends s.Component{constructor(e){super(e),this.state={countries:[]}}getComponentData(){(0,o.getCountries)(this.props.year).then((e=>{this.setState({countries:e})}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){return n().createElement(n().Fragment,null,n().createElement("div",{className:"books-per-country"},n().createElement("span",{className:"block_name"},"Landen"),n().createElement("table",{id:"DataTable",className:"table responsive nowrap",width:"100%"},n().createElement("thead",null,n().createElement("tr",null,n().createElement("th",null,"#"),n().createElement("th",null,"Land"),n().createElement("th",null,"Boeken"))),n().createElement("tbody",null,this.state.countries.map(((e,t)=>{var a=e.code.toLowerCase();return n().createElement("tr",{key:t},n().createElement("td",null,t+1),n().createElement("td",null,n().createElement("img",{src:`https://flagcdn.com/32x24/${a}.png`})," ",e.country),n().createElement("td",null,e.count))}))))))}}class i extends s.Component{constructor(e){super(e),this.state={pagesStats:[]}}getComponentData(){(0,o.getShortestLongestBook)(this.props.year).then((e=>{this.setState({pagesStats:e})}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){var e="",t="";if(this.state.pagesStats.shortestbook)for(var a=0;a";if(null!==document.getElementById("shortest_rating")&&(document.getElementById("shortest_rating").innerHTML=e),this.state.pagesStats.longestbook)for(a=0;a";return null!==document.getElementById("longest_rating")&&(document.getElementById("longest_rating").innerHTML=t),n().createElement(n().Fragment,null,n().createElement("div",{className:"row"},n().createElement("div",{className:"col-md-6"},n().createElement("div",{className:"book shortest"},n().createElement("span",{className:"block_name"},"Kortste boek"),n().createElement("i",{className:"fa fa-book book-icon"}),n().createElement("div",{className:"book_pages"},this.state.pagesStats.shortestbook?this.state.pagesStats.shortestbook.pages:""," pagina's"),n().createElement("div",{className:"book_title_author"},this.state.pagesStats.shortestbook?this.state.pagesStats.shortestbook.name:""," - ",this.state.pagesStats.shortestbook?this.state.pagesStats.shortestbook.author:""),n().createElement("div",{id:"shortest_rating",className:"book_rating"}))),n().createElement("div",{className:"col-md-6"},n().createElement("div",{className:"book longest"},n().createElement("span",{className:"block_name"},"Langste boek"),n().createElement("i",{className:"fa fa-book book-icon"}),n().createElement("div",{className:"book_pages"},this.state.pagesStats.longestbook?this.state.pagesStats.longestbook.pages:""," pagina's"),n().createElement("div",{className:"book_title_author"},this.state.pagesStats.longestbook?this.state.pagesStats.longestbook.name:""," - ",this.state.pagesStats.longestbook?this.state.pagesStats.longestbook.author:""),n().createElement("div",{id:"longest_rating",className:"book_rating"})))))}}const m=(e,t)=>{var a=[],s=["#8066ee","#58c8d6","#fe4c62","#49b8fd","#ffbe0e"],n=[];e.forEach((e=>{a.includes(e.genre)||a.push(e.genre)})),a&&a.length>0&&a.forEach(((a,o)=>{for(var r=[],l=0;l<12;l++){if(r[l]=0,l+1<10)var c="0"+(l+1);else c=l+1;for(var i=0;i');const o={id:"legendMargin",beforeInit(e,t,a){const s=e.legend.fit;e.legend.fit=function(){return s.bind(e.legend)(),this.height+=30}}};new Chart(document.getElementById("chart"),{type:"bar",data:{labels:["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],datasets:n},options:{maintainAspectRatio:!1,responsive:!0,showTooltips:!0,legend:{display:!0,labels:{usePointStyle:!0}},interaction:{mode:"index"},scales:{x:{ticks:{beginAtZero:!0,color:"#101010",fontFamily:"Source Sans Pro"},stacked:!0},y:{ticks:{beginAtZero:!0,stepSize:1,color:"#101010",fontFamily:"Source Sans Pro"},stacked:!0}},plugins:{legend:{position:"top",labels:{usePointStyle:!0,color:"#101010",padding:20,font:{size:14,family:"Source Sans Pro"}}}},tooltips:{bodyFont:"Source Sans Pro"}},plugins:[o]})},d=e=>{var t=[],a=[];e.forEach((e=>{t.includes(e.genre)||t.push(e.genre),a.push(e.count)})),$("canvas#chartGenres").remove(),$("div.genresPercent").append('');var s=document.getElementById("chartGenres");new Chart(s,{type:"pie",data:{labels:t,datasets:[{label:"# of Tomatoes",data:a,backgroundColor:["#8066ee","#58c8d6","#fe4c62","#49b8fd","#ffbe0e"],borderWidth:0,borderColor:"#1f2940",tooltip:{callbacks:{label:function(e){let t=e.label,a=e.formattedValue;t||(t="Unknown");let s=0;return e.chart.data.datasets[0].data.map((e=>{s+=Number(e)})),t+": "+(100*a/s).toFixed(1)+"%"}}}}]},options:{cutout:"80%",responsive:!0,plugins:{legend:{position:"top",labels:{padding:20,usePointStyle:!0,color:"##101010",font:{size:14,family:"Source Sans Pro"}}}}},plugins:[{id:"legendMargin",beforeInit(e,t,a){const s=e.legend.fit;e.legend.fit=function(){return s.bind(e.legend)(),this.height+=30}}}]})};class h extends s.Component{constructor(e){super(e),this.state={genres:[]}}getComponentData(){(0,o.getGenresCount)(this.props.year).then((e=>{this.setState({genres:e}),d(this.state.genres,this.props.year)}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){return n().createElement(n().Fragment,null,n().createElement("div",{className:"genresPercent"},n().createElement("span",{className:"block_name"},"Genres"),n().createElement("canvas",{id:"chartGenres"})))}}class p extends s.Component{constructor(e){super(e),this.state={books:[]}}getComponentData(){(0,o.getBooksPerYearPerGenres)(this.props.year).then((e=>{this.setState({books:e}),m(e,this.props.year)}))}componentDidMount(){this.getComponentData()}componentDidUpdate(e,t){e.year!==this.props.year&&this.getComponentData()}render(){return n().createElement(n().Fragment,null,n().createElement("div",{className:"books-per-month"},n().createElement("span",{className:"block_name"},"Boeken per maand per genre"),n().createElement("canvas",{id:"chart"})))}}var g=a(764);class u extends s.Component{constructor(e){super(e),this.state={year:(new Date).getFullYear(),readingYears:[]}}changeYear(e){this.setState({year:e.target.value})}componentDidMount(){setTimeout((()=>{document.getElementById("loading-overlay").style.display="none"}),1e3),(0,o.getReadingYears)().then((e=>{this.setState({readingYears:e})}))}render(){return window.location.href.split("/"),n().createElement(n().Fragment,null,n().createElement(g.Z,null),n().createElement("div",{className:"content"},n().createElement("div",{className:"books-stats"},n().createElement("div",{className:"container-fluid"},n().createElement("div",{className:"row"},n().createElement("div",{className:"col-md-2"},n().createElement("div",{className:"stat-block"},n().createElement("i",{className:"fa fa-calendar"}),n().createElement("span",{className:"stats-number"},n().createElement("select",{className:"yearselector",value:this.state.year,onChange:e=>this.changeYear(e)},this.state.readingYears.map(((e,t)=>n().createElement("option",{key:t,value:e},e))))))),n().createElement(l,{year:this.state.year})))),n().createElement(r,{year:this.state.year}),n().createElement("div",{className:"container-fluid"},n().createElement("div",{className:"row"},n().createElement("div",{className:"col-md-9"},n().createElement(p,{year:this.state.year}),n().createElement(i,{year:this.state.year})),n().createElement("div",{className:"col-md-3"},n().createElement(c,{year:this.state.year}),n().createElement(h,{year:this.state.year}))))))}}}}]);