{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/blocks/woolTimeriteBlock/js/woolTimeriteBlock.js","webpack:///./wool/mediaQuery.js","webpack:///./wool/numberFormatter.js","webpack:////Users/owenli/Documents/workspace/awi-wool-fe/node_modules/moment/locale sync ^\\.\\/.*$"],"names":["CLS","moment","require","uuidv4","d3","WoolTimeriteBlock","element","_this","this","className","arguments","length","undefined","_classCallCheck","$element","$","$error","find","$woolTimeriteBlockCharts","$bestTime","$calculate","$opportunity","$diapause","$recovery","$inputPostcode","$errorMsg","$loading","$printBtn","$select","$labelRedline","$labelGreenline","$labelGreyBox","$learnMore","$learnMoreBtn","$bottomGraph","selectize","valueField","labelField","searchField","options","file","create","setChartId","isDataEmpty","timeRitedata","margin","top","right","bottom","left","mediaQuery","numberFormatter","heightRatio","setButtonEvent","showBottomChart","on","concat","e","datas","data","_","isNil","html","css","print","initChart","dotFocusRadius","spray_date","sprayDatesArr","sprayDateInNum","printChart","key","value","_this2","event","inputPostcode","val","postcodeData","postcode","lat","lon","forEach","postcodeLocality","api","empty","getChartDataFromApi","_this3","hasClass","removeClass","addClass","_this4","url","ajax","type","dataType","success","response","trigger","isEmpty","error","select","opportunityId","diapauseId","recoveryId","attr","_this5","spray_dates_duplicate","spray_dates","datum","sims","sprayDate","push","includes","setTimeout","getBestSprayDate","visibility","bestTime","drawOpportunity","drawDiapause","drawRecovery","date","currentYear","Date","getFullYear","startDate","getTime","toLocaleDateString","year","month","day","timerite_date","window_start_date","start_date","window_end_date","end_date","append","maxDis","newData","maxDiArr","values","Di","Math","max","apply","i","indexOf","remove","setChartDimensions","$tooltip","drawSvgOpportunity","drawTooltip","defineXAxesScales","defineYAxesScales","drawXAxes","drawYAxes","svgOpportunity","defineColors","drawPaths","drawPoints","drawSvgDiapause","defineXAxesScales2","svgDiapause","drawSvgRecovery","svgRecovery","drawLabels","tooltip","getChartNodeOpportunity","width","breakpointMaxWidth","BREAKPOINTS","SM","height","_this6","timeData","dataDate","convertDate","_this7","time","_this8","getXAxisBottomData","xMinTickValue","xMaxTickValue","add","subtract","format","xAxisBottom","scaleTime","range","domain","extent","getMomentDate","toDate","nice","_this9","getXAxisBottomData2","xAxisBottom2","getYAxisLeftData","yMinTickValue","minBy","yMaxTickValue","maxBy","yTickValue","getLinearTick","ceil","floor","toString","yAxisLeft","scaleLinear","num","outerIndex","_this10","xMinTickDate","xMaxTickDate","duration","diff","call","axisBottom","ticks","timeDay","every","tickFormat","index","asMonths","asYears","selectAll","nodes","getChartNodeDiapauseId","getChartNodeRecoveryId","each","style","chartObj","_this11","axisLeft","formatNumbersWithCommas","tickSize","tickPadding","tickValues","_this12","colors","_this13","globalMaxDi","globalMaxDiArr","objData","objDataShaded","obj","di","newDataShadedss","area","x","innerDatum","y","y1","curve","curveCatmullRom","alpha","diapause_prop","tempData","M1","M2","M3","M4","M5","Ew","mites","mitesObj","winterEggs","diapauseEggs","populationWidth","populationHeight","stackedSeries","stack","keys","stackGen","xScale","yScale","colorScale","scaleOrdinal","areaGen","d","y0","join","_this14","enter","innerIndex","toInteger","getDate","getMonth","outerWidth","outerHeight","leftPosition","mouse","topPosition","parseInt","_this15","labels","label","dataLength","legendItemMaxColumns","xAxisWidth","getBoundingClientRect","textItemWidth","marginSpacer","svgHeight","legendItemRowIndex","legendGroup","legendItem","textElement","textWrap","lineWidth","maxWidth","words","text","tspan","textLength","node","getComputedTextLength","slice","power","tickCount","intervals","pow","opportunity","diapause","recovery","logos","description","a","window","open","document","write","close","MediaQuery","XS","MD","LG","XL","breakpoint","documentElement","clientWidth","innerWidth","isFinite","NumberFormatter","number","parts","split","replace","map","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-ps","./ar-ps.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn-bd","./bn-bd.js","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-in","./en-in.js","./en-nz","./en-nz.js","./en-sg","./en-sg.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-mx","./es-mx.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fil","./fil.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./ga","./ga.js","./gd","./gd.js","./gl","./gl.js","./gom-deva","./gom-deva.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it-ch","./it-ch.js","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku-kmr","./ku-kmr.js","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./oc-lnc","./oc-lnc.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tk","./tk.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-mo","./zh-mo.js","./zh-tw","./zh-tw.js","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","Object","resolve","module","exports"],"mappings":"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A,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,WAAA,IACAC,cAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,WAAA,IACAC,cAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,QAAA,IACAC,WAAA,IACAC,OAAA,IACAC,UAAA,IACAC,QAAA,IACAC,WAAA,IACAC,QAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,WAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,YAAA,IACAC,eAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,KAIA,SAAAC,EAAAC,GACA,IAAAC,EAAAC,EAAAF,GACA,OAAAG,EAAAF,GAEA,SAAAC,EAAAF,GACA,IAAAG,EAAAC,EAAAxR,EAAAoR,GAAA,CACA,IAAAtjB,EAAA,IAAA2jB,MAAA,uBAAAL,EAAA,KAEA,MADAtjB,EAAA4jB,KAAA,mBACA5jB,EAEA,OAAAkS,EAAAoR,GAEAD,EAAA/V,KAAA,WACA,OAAAuW,OAAAvW,KAAA4E,IAEAmR,EAAAS,QAAAN,EACAO,EAAAC,QAAAX,EACAA,EAAAE,GAAA","file":"block-42.430117f348aedc9992ce.js","sourcesContent":["const NS = 'WoolTimeriteBlock';\nconst CLS = 'woolTimeriteBlock';\n\nlet moment = require('moment');\nlet uuidv4 = require('uuid/v4');\nlet d3 = require('d3');\n\nimport { mediaQuery } from '../../../../global/js/wool/mediaQuery';\nimport { numberFormatter } from '../../../../global/js/wool/numberFormatter';\nimport file from '../../../../global/data/postcode_au.json';\nimport { toInteger } from 'lodash';\nimport {selectize} from '@selectize/selectize';\n\nexport class WoolTimeriteBlock {\n\tconstructor(element, className = CLS) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.$error = this.$element.find(`.error`);\n\t\tthis.$woolTimeriteBlockCharts = this.$element.find(`.woolTimeriteBlock-charts`);\n\t\tthis.$bestTime = this.$element.find(`.best-time`);\n\t\tthis.$calculate = this.$element.find(`.calculate`);\n\t\tthis.$opportunity = this.$element.find(`.opportunity`);\n\t\tthis.$diapause = this.$element.find(`.diapause`);\n\t\tthis.$recovery = this.$element.find(`.recovery`);\n\t\tthis.$inputPostcode = this.$element.find(`.inputPostcode`);\n\t\tthis.$errorMsg = this.$element.find(`.errorMsg`);\n\t\tthis.$loading = this.$element.find(`#loading`);\n\t\tthis.$printBtn = this.$element.find(`#printBtn`);\n\t\tthis.$select = this.$element.find(`select`);\n\t\tthis.$labelRedline = this.$element.find(`.label-redline`);\n\t\tthis.$labelGreenline = this.$element.find(`.label-greenline`);\n\t\tthis.$labelGreyBox = this.$element.find(`.label-greybox`);\n\t\tthis.$learnMore = this.$element.find(`.learnMore`);\n\t\tthis.$learnMoreBtn = this.$element.find(`.learnMoreBtn`);\n\t\tthis.$bottomGraph = this.$element.find(`.bottom-graph`);\n\t\tthis.$select.selectize({ valueField: 'postcodeLocality',\n\t\tlabelField: 'postcodeLocality',\n\t\tsearchField: 'postcodeLocality',\n\t\toptions:file,\n\t\tcreate: false});\n\t\tthis.setChartId();\n\n\t\tthis.isDataEmpty = false;\n\t\tthis.timeRitedata = {};\n\t\tthis.margin = {\n\t\t\ttop: 10,\n\t\t\tright: 30,\n\t\t\tbottom: 50,\n\t\t\tleft: 90\n\t\t};\n\t\tthis.file = file;\n\t\tthis.mediaQuery = mediaQuery;\n\t\tthis.numberFormatter = numberFormatter;\n\t\tthis.heightRatio = 0.55;\n\t\tthis.setButtonEvent();\n\t\tthis.showBottomChart();\n\n\t\tthis.$element.on(`${className}.update`, (e, datas) => {\n\t\t\tlet data = datas.data;\n\t\t\tif(!_.isNil(data)) {\n\t\t\t\tthis.isDataEmpty = false;\n\t\t\t\tthis.data = data;\n\t\t\t\tthis.initChart();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$errorMsg.html(\"No data available for this postcode.\");\n\t\t\t\tthis.$woolTimeriteBlockCharts.css('display','none');\n\t\t\t\tthis.$loading.css('display','none');\n\t\t\t\tthis.print = false;\n\t\t\t}\n\t\t});\n\n\t\tthis.dotFocusRadius = 7;\n\t\tthis.spray_date;\n\t\tthis.sprayDatesArr = [];\n\t\tthis.sprayDateInNum;\n\n\t\tthis.printChart();\n\t}\n\n\t// Calculate btn pass the lat and log to API\n\tsetButtonEvent() {\n\t\t$(this.$calculate).on('click', (event) => {\n\t\t\tthis.$woolTimeriteBlockCharts.css('display','block');\n\t\t\tthis.$labelGreenline.css('display','none');\n\t\t\tthis.$labelRedline.css('display','none');\n\t\t\tthis.$labelGreyBox.css('display','none');\n\t\t\tthis.print = true; // Set print btn true(display) in when start calculate\n\t\t\t//var inputPostcode = $(this.$inputPostcode).val();\n\t\t\tvar inputPostcode = $(this.$select).val();\n\t\t\tthis.postcodeData = this.file;\n\t\t\tthis.$errorMsg.html(\" \");\n\t\t\tthis.postcode = 0;\n\t\t\tthis.lat = 0;\n\t\t\tthis.lon = 0;\n\t\t this.postcodeData.forEach((element) => {\n\t\t\tif(element.postcodeLocality === inputPostcode){\n\t\t\t\tthis.postcode = element.postcode;\n\t\t\t\tthis.lat = element.lat;\n\t\t\t\tthis.lon = element.lon;\n\t\t\t\tthis.api = \"https://rlem-diapause-cdsy77yrna-uc.a.run.app/?verbose=true&lon=\"+this.lon+\"&lat=\"+this.lat;\n\t\t\t\treturn;\n\t\t\t}\n\t\t });\n\t\t if(!this.postcode || this.postcode == 0 || this.postcode > 9999){\n\t\t\t\tthis.$errorMsg.html(\"Please enter the correct postcode\");\n\t\t\t\tthis.$woolTimeriteBlockCharts.css('display','none');\n\t\t\t\tthis.print = false;\n\t\t\t}\n\t\t $('.left_label').css('display','none');\n\t\t $('h3').css('display','none');\n\t\t $('.description').css('display','none');\n\t\t this.$learnMore.css('display','none');\n\t\t $(this.$loading).css('display','block');\n\t\t \t\tthis.$bestTime.empty();\n\t\t\t\tthis.$opportunity.empty();\n\t\t\t\tthis.$diapause.empty();\n\t\t\t\tthis.$recovery.empty();\n\t\t\t\tthis.getChartDataFromApi();\n\t\t}); \n\t}\n\n\tshowBottomChart(){\n\t\t$(this.$learnMoreBtn).on('click', (event) => {\n\t\t\tif($(this.$bottomGraph).hasClass('isOpen')){\n\t\t\t\t$(this.$learnMore).removeClass('isOpen');\n\t\t\t\t$(this.$bottomGraph).removeClass('isOpen');\n\t\t\t}\n\t\t\telse{\n\t\t\t\t$(this.$learnMore).addClass('isOpen');\n\t\t\t\t$(this.$bottomGraph).addClass('isOpen');\n\t\t\t}\n\t\t});\n\t}\n\n\t// Retrieves the data from the API\n\tgetChartDataFromApi() {\n\t\tlet url = this.api;\n\t\tif(this.api) {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: (response) => {\n\t\t\t\t\tif(response && response.length > 0) {\n\t\t\t\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\t\t\t\tdata: response\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.$element.trigger(`${CLS}`, {\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\tisEmpty: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$('h3').css('display','block');\n\t\t\t\t\t$('.left_label').css('display','block');\n\t\t\t\t\t$('.description').css('display','block');\n\t\t\t\t\tthis.$loading.css('display','none');\n\t\t\t\t\tif(this.print){\n\t\t\t\t\t\tthis.$printBtn.css('display', 'block');\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.$printBtn.css('display', 'none');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: () => {\n\t\t\t\t\tthis.$element.trigger(`${CLS}`, {\n\t\t\t\t\t\tdata: null\n\t\t\t\t\t});\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tconsole.error(`${NS}::Error`, 'API is not set.');\n\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\tdata: null\n\t\t\t});\n\t\t}\n\t}\n\n\tgetChartNodeOpportunity() {\n\t\treturn d3.select(`[data-uuid=\"${this.opportunityId}\"]`);\n\t}\n\tgetChartNodeDiapauseId() {\n\t\treturn d3.select(`[data-uuid=\"${this.diapauseId}\"]`);\n\t}\n\tgetChartNodeRecoveryId() {\n\t\treturn d3.select(`[data-uuid=\"${this.recoveryId}\"]`);\n\t}\n\n\t// Ensures that the chart contains a unique id\n\tsetChartId() {\n\t\tthis.opportunityId = uuidv4();\n\t\tthis.diapauseId = uuidv4();\n\t\tthis.recoveryId = uuidv4();\n\t\tthis.$opportunity.attr('data-uuid', this.opportunityId);\n\t\tthis.$diapause.attr('data-uuid', this.diapauseId);\n\t\tthis.$recovery.attr('data-uuid', this.recoveryId);\n\t}\n\n\t// Initializes the chart by revealing it, drawing it and implementing an event that redraws it when the window resizes\n\tinitChart() {\n\t\tlet spray_dates_duplicate = []; // Array for all spray dates\n\t\tlet spray_dates = []; // Array for all spray dates remove the duplicates\n\t\tthis.sprayDatesArr = []; // copy spray_dates array to this.sprayDatesArr\n\t\t_.forEach(this.data, (datum) => {\n\t\t\t_.forEach(datum.sims, (value) => {\n\t\t\t\t_.forEach(value, (sprayDate) => {\n\t\t\t\t\tspray_dates_duplicate.push(sprayDate.spray_date);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t\tspray_dates_duplicate.forEach(element => {\n\t\t\tif (!spray_dates.includes(element)) {\n\t\t\t\tspray_dates.push(element);\n\t\t\t}\n\t\t});\n\t\tthis.sprayDatesArr = spray_dates;\n\t\tsetTimeout(() => {\n\t\t\tthis.sprayDateInNum = this.sprayDatesArr[this.getBestSprayDate()-1]; //get the spray date in number\n\t\t\tthis.$diapause.css({ visibility: 'visible' });\n\t\t\tthis.$opportunity.css({ visibility: 'visible' });\n\t\t\tthis.$recovery.css({ visibility: 'visible' });\n\t\t\tthis.bestTime();\n\t\t\tthis.drawOpportunity();\n\t\t\tthis.drawDiapause();\n\t\t\tthis.drawRecovery();\n\t\t}, \"500\");\n\n\t}\n\n\t// Convert num to Julian day\n\tconvertDate(date){\n\t\tconst currentYear = new Date().getFullYear(); \n\t\t\t// Create a date for January 1 of the current year \n\t\t\tconst startDate = new Date(currentYear, 0, 1); \n\t\t\t// Calculate the date by adding the Julian day minus 1 (since we start counting from 1) \n\t\t\tconst resultDate = new Date(startDate.getTime() + (date - 1) * 24 * 60 * 60 * 1000); \n\t\t\tconst options = {\n \t\t\t\tyear: \"numeric\", month: \"numeric\", day: \"numeric\"\n\t\t\t};\n\t\t\treturn resultDate.toLocaleDateString(\"en-GB\", options);\n\t}\n\n\t// Display the your TIMERITE date\n\tbestTime(){\n\t\tvar date;\n\t\tvar timerite_date;\n\t\tvar window_start_date;\n\t\tvar start_date;\n\t\tvar window_end_date;\n\t\tvar end_date;\n\t\tconst options = {\n\t\t\tyear: \"numeric\", month: \"numeric\", day: \"numeric\"\n\t\t};\n\t\tdate = new Date(this.data[0].timerite_date);\n\t\twindow_start_date = new Date(this.data[0].window_start_date);\n\t\twindow_end_date = new Date(this.data[0].window_end_date);\n\t\ttimerite_date = date.toLocaleDateString(\"en-GB\", options);\n\t\tstart_date = window_start_date.toLocaleDateString(\"en-GB\", options);\n\t\tend_date = window_end_date.toLocaleDateString(\"en-GB\", options);\n\t\tthis.$labelRedline.css(\"display\", \"block\");\n\t\tthis.$labelGreenline.css(\"display\", \"block\");\n\t\tthis.$labelGreyBox.css('display','block');\n\t\tthis.$learnMore.css('display','block');\n\t\tthis.$bestTime.append(`

Your TIMERITE® Best spray date is `+timerite_date+`

Your TIMERITE® Best window of opportunity is ` + start_date + ` to ` + end_date + `.
`);\n\t}\n\n\t//\n\tgetBestSprayDate(){\n\t\tvar spray_date = [];\n\t\tvar maxDis = [];\n\t\tvar newData =[];\n\t\t_.forEach(this.data[0].sims, (datas) => {\n\t\t\tspray_date.push(datas[0].spray_date);\n\t\t\tvar maxDiArr = [];\n\t\t\t_.forEach(datas, (values) => {\n\t\t\t\tmaxDiArr.push(values.Di);\n\t\t\t});\n\t\t\tmaxDis.push(Math.max(...maxDiArr));\n\t\t});\n\t\t\n\t\tfor(var i = 0; i < spray_date.length; i++){\n\t\t\tnewData.push(200-maxDis[i]);\n\t\t}\n\t\treturn newData.indexOf(Math.max(...newData))+1;\n\t}\n\n\tdrawOpportunity(spray_date) {\n\n\t\tif(!spray_date){\n\t\t\tthis.spray_date = this.getBestSprayDate();\n\t\t}\n\t\telse{\n\t\t\tthis.spray_date = spray_date;\n\t\t}\n\n\t\td3.select(`[data-uuid=\"${this.opportunityId}\"]`).select('svg').remove(); // Removes the chart\n\t\tthis.setChartDimensions();\n\n\t\tif(this.$tooltip && this.$tooltip.length > 0) {\n\t\t\tthis.$tooltip.remove(); // Removes the tooltip\n\t\t}\n\t\tthis.drawSvgOpportunity();\n\t\tthis.drawTooltip();\n\n\t\tthis.defineXAxesScales();\n\t\tthis.defineYAxesScales();\n\t\tthis.drawXAxes(1);\n\t\tthis.drawYAxes(this.svgOpportunity);\n\n\t\tif(!this.isDataEmpty) {\n\t\t\tthis.defineColors();\n\t\t\tthis.drawPaths(1);\n\t\t\tthis.drawPoints();\n\t\t}\n\t}\n\n\tdrawDiapause(spray_date) {\n\t\tif(!spray_date){\n\t\t\tthis.spray_date = this.getBestSprayDate();\n\t\t}\n\t\telse{\n\t\t\tthis.spray_date = spray_date;\n\t\t}\n\t\t\n\t\td3.select(`[data-uuid=\"${this.diapauseId}\"]`).select('svg').remove(); // Removes the chart\n\t\tthis.setChartDimensions();\n\n\t\tthis.drawSvgDiapause();\n\n\t\tthis.defineXAxesScales2();\n\t\tthis.defineYAxesScales();\n\t\tthis.drawXAxes(2);\n\t\tthis.drawYAxes(this.svgDiapause);\n\n\t\tif(!this.isDataEmpty) {\n\t\t\tthis.defineColors();\n\t\t\tthis.drawPaths(2);\n\t\t}\n\t}\n\n\tdrawRecovery(spray_date) {\n\t\tif(!spray_date){\n\t\t\tthis.spray_date = this.getBestSprayDate();\n\t\t}\n\t\telse{\n\t\t\tthis.spray_date = spray_date;\n\t\t}\n\t\t\n\t\td3.select(`[data-uuid=\"${this.recoveryId}\"]`).select('svg').remove(); // Removes the chart\n\t\tthis.setChartDimensions();\n\n\t\tthis.drawSvgRecovery();\n\n\t\tthis.defineXAxesScales2();\n\t\tthis.defineYAxesScales();\n\t\tthis.drawXAxes(3);\n\t\tthis.drawYAxes(this.svgRecovery);\n\n\t\tif(!this.isDataEmpty) {\n\t\t\tthis.defineColors();\n\t\t\tthis.drawPaths(3);\n\t\t\tthis.drawLabels(3);\n\t\t}\n\t}\n\n\tdrawTooltip() {\n\t\tthis.tooltip = this.getChartNodeOpportunity()\n\t\t\t.append('div')\n\t\t\t.attr('class', `${CLS}-chart-tooltip`);\n\t\tthis.$tooltip = this.$opportunity.find(`.opportunity .${CLS}-chart-tooltip`);\n\t}\n\n\tsetChartDimensions() {\n\t\tthis.width = $(this.element).width() - this.margin.left - this.margin.right;\n\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\tthis.height = this.$element.width() * this.heightRatio;\n\t\t}\n\t\telse{\n\t\t\tthis.height = (this.$element.width() * this.heightRatio)-300;\n\t\t}\n\t}\n\n\tdrawSvgOpportunity() {\n\t\tthis.svgOpportunity = d3.select(`[data-uuid=\"${this.opportunityId}\"]`)\n\t\t\t.append('svg')\n\t\t\t.attr('width', this.width + this.margin.left + this.margin.right)\n\t\t\t.attr('height', this.height + this.margin.top + this.margin.bottom)\n\t\t\t.append('g')\n\t\t\t.attr('transform', `translate(${this.margin.left},${this.margin.top})`);\n\t}\n\n\tdrawSvgDiapause() {\n\t\tthis.svgDiapause = d3.select(`[data-uuid=\"${this.diapauseId}\"]`)\n\t\t\t.append('svg')\n\t\t\t.attr('width', this.$diapause.width + this.margin.left + this.margin.right)\n\t\t\t.attr('height', this.height + this.margin.top + this.margin.bottom)\n\t\t\t.append('g')\n\t\t\t.attr('transform', `translate(${this.margin.left},${this.margin.top})`);\n\t}\t\n\n\tdrawSvgRecovery() {\n\t\tthis.svgRecovery = d3.select(`[data-uuid=\"${this.recoveryId}\"]`)\n\t\t\t.append('svg')\n\t\t\t.attr('width', this.$recovery.width + this.margin.left + this.margin.right)\n\t\t\t.attr('height', this.height + this.margin.top + this.margin.bottom)\n\t\t\t.append('g')\n\t\t\t.attr('transform', `translate(${this.margin.left},${this.margin.top})`);\n\t}\n\n\t//For opportunity Chart X Axis\n\tgetXAxisBottomData() {\n\t\tlet timeData = [];\n\t\t_.forEach(this.data[0].sims, (datum) => {\n\t\t\ttimeData.push(datum[0].spray_date);\n\t\t});\n\t\tlet dataDate = [];\n\t\ttimeData.forEach(element => {\n\t\t\tdataDate.push(this.convertDate(element));\n\t\t});\n\t\treturn dataDate;\n\t}\n\n\t//For diapause and Mite population recovery Charts\n\tgetXAxisBottomData2() {\n\t\tlet timeData = [];\n\t\t_.forEach(this.data, (datum) => {\n\t\t\t_.forEach(datum.sims, (value) => {\n\t\t\t\t_.forEach(value, (time) => {\n\t\t\t\t\ttimeData.push(time.time);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t\tlet data = [];\n\t\ttimeData.forEach(element => {\n\t\t\tif (!data.includes(element)) {\n\t\t\t\tdata.push(element);\n\t\t\t}\n\t\t});\n\t\tlet dataDate = [];\n\t\tdata.forEach(element => {\n\t\t\tdataDate.push(this.convertDate(element));\n\t\t});\n\t\treturn dataDate;\n\t}\n\n\t//For all charts\n\tgetYAxisLeftData() {\n\t\tlet data = [];\n\t\tfor(var i=0; i<=100; i++){\n\t\t\tdata.push(i);\n\t\t}\n\t\treturn data;\n\t}\n\n\t//For opportunity Chart\n\tdefineXAxesScales() {\n\t\tvar data = this.getXAxisBottomData();\n\t\tthis.xMinTickValue = data[0];\n\t\tthis.xMaxTickValue = data[data.length - 1];\n\n\t\tif(this.xMinTickValue === this.xMaxTickValue) {\n\t\t\tthis.xMaxTickValue = moment(this.xMinTickValue, 'DD/MM/YYYY').add(1, 'years').subtract(2, 'months').format('DD/MM/YYYY');\n\t\t\tdata.push(this.xMaxTickValue);\n\t\t}\n\n\t\tthis.xAxisBottom = d3.scaleTime()\n\t\t\t.range([0, this.width])\n\t\t\t.domain(d3.extent(data, (datum) => {\n\t\t\t\treturn this.getMomentDate(datum).toDate();\n\t\t\t})).nice();\n\t}\n\n\t//For diapause and Mite population recovery Charts\n\tdefineXAxesScales2() {\n\t\tvar data = this.getXAxisBottomData2();\n\t\tthis.xMinTickValue = data[0];\n\t\tthis.xMaxTickValue = data[data.length - 1];\n\n\t\tif(this.xMinTickValue === this.xMaxTickValue) {\n\t\t\tthis.xMaxTickValue = moment(this.xMinTickValue, 'DD/MM/YYYY').add(1, 'years').subtract(2, 'months').format('DD/MM/YYYY');\n\t\t\tdata.push(this.xMaxTickValue);\n\t\t}\n\n\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\tthis.xAxisBottom2 = d3.scaleTime()\n\t\t\t.range([0, this.width])\n\t\t\t.domain(d3.extent(data, (datum) => {\n\t\t\t\treturn this.getMomentDate(datum).toDate();\n\t\t\t})).nice();\n\t\t}\n\t\telse{\n\t\t\tthis.xAxisBottom2 = d3.scaleTime()\n\t\t\t.range([0, this.width/2-105])\n\t\t\t.domain(d3.extent(data, (datum) => {\n\t\t\t\treturn this.getMomentDate(datum).toDate();\n\t\t\t})).nice();\n\t\t}\n\t}\n\n\t//For all charts\n\tdefineYAxesScales() {\n\t\tlet data = this.getYAxisLeftData();\n\t\tlet yMinTickValue = _.minBy(data, (datum) => {\n\t\t\treturn datum;\n\t\t});\n\n\t\tlet yMaxTickValue = _.maxBy(data, (datum) => {\n\t\t\treturn datum;\n\t\t});\n\n\t\tif(yMinTickValue !== yMaxTickValue) {\n\t\t\tlet range = yMaxTickValue - yMinTickValue;\n\t\t\tthis.yTickValue = this.getLinearTick(range);\n\n\t\t\tthis.yMaxTickValue = Math.ceil((yMaxTickValue) / this.yTickValue) * this.yTickValue;\n\t\t\tthis.yMinTickValue = Math.floor((yMinTickValue / this.yTickValue)) * this.yTickValue;\n\t\t}\n\t\telse {\n\t\t\tthis.yMaxTickValue = Math.ceil(yMaxTickValue);\n\t\t\tthis.yMinTickValue = Math.floor(yMinTickValue);\n\t\t\tthis.yTickValue = _.floor(this.yMaxTickValue, (((this.yMaxTickValue + '').toString().length) * -1) + 1); // Rounds to the negative {x} sf.; // Rounds to the negative {x} sf.\n\t\t\tif(this.yTickValue !== 0) {\n\t\t\t\tthis.yMaxTickValue *= 2.05;\n\t\t\t\tthis.yMinTickValue = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.yMinTickValue = -1;\n\t\t\t\tthis.yTickValue = 1;\n\t\t\t\tthis.yMaxTickValue = 1;\n\t\t\t}\n\t\t}\n\n\t\tthis.yAxisLeft = d3.scaleLinear()\n\t\t\t.range([this.height, 0])\n\t\t\t.domain([\n\t\t\t\tthis.yMinTickValue,\n\t\t\t\tthis.yMaxTickValue\n\t\t\t]).nice();\n\t}\n\n\tdrawXAxes(num) {\n\t\tlet tickOffset = 1;\n\n\t\tlet xMinTickDate = moment(this.xMinTickValue, 'DD/MM/YYYY');\n\t\tlet xMaxTickDate = moment(this.xMaxTickValue, 'DD/MM/YYYY');\n\t\tlet duration = moment.duration(xMaxTickDate.diff(xMinTickDate));\n\n\t\t// Render x-axes text values\n\t\tif(num === 1){\n\t\t\t(() => {\n\t\t\t\tlet outerIndex = 0;\n\t\t\t\tthis.svgOpportunity.append('g')\n\t\t\t\t\t.attr('class', 'x-axis')\n\t\t\t\t\t.attr('transform', `translate(0,${this.height + tickOffset})`)\n\t\t\t\t\t.call(d3.axisBottom(this.xAxisBottom).ticks(d3.timeDay.every(1)).tickFormat((value, index) => {\n\t\t\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t\t\t// Return weekly date format if months <= 2\n\t\t\t\t\t\t\t\tif(index % 7 === 0) {//check if the index(days) has whole weeks\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\t\t// Return {x} monthly value based on {x} yearly value\n\t\t\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears()) * 2) === 0) {\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}));\n\t\t\t})();\n\t\t}\n\n\t\tif(num === 2){\n\t\t\t(() => {\n\t\t\t\tlet outerIndex = 0;\n\t\t\t\tthis.svgDiapause.append('g')\n\t\t\t\t\t.attr('class', 'x-axis')\n\t\t\t\t\t.attr('transform', `translate(0,${this.height + tickOffset})`)\n\t\t\t\t\t.call(d3.axisBottom(this.xAxisBottom2).ticks(d3.timeDay.every(1)).tickFormat((value, index) => {\n\t\t\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t\t\t// Return weekly date format if months <= 2\n\t\t\t\t\t\t\t\tif(index % 7 === 0) {//check if the index(days) has whole weeks\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\t\t// Return {x} monthly value based on {x} yearly value\n\t\t\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears()) * 2) === 0) {\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}));\n\t\t\t})();\n\t\t}\n\n\t\tif(num === 3){\n\t\t\t(() => {\n\t\t\t\tlet outerIndex = 0;\n\t\t\t\tthis.svgRecovery.append('g')\n\t\t\t\t\t.attr('class', 'x-axis')\n\t\t\t\t\t.attr('transform', `translate(0,${this.height + tickOffset})`)\n\t\t\t\t\t.call(d3.axisBottom(this.xAxisBottom2).ticks(d3.timeDay.every(1)).tickFormat((value, index) => {\n\t\t\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t\t\t// Return weekly date format if months <= 2\n\t\t\t\t\t\t\t\tif(index % 7 === 0) {//check if the index(days) has whole weeks\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Return every first day of the month\n\t\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\t\t// Return {x} monthly value based on {x} yearly value\n\t\t\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears()) * 2) === 0) {\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t\treturn moment(value).format('DD MMM YY');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}));\n\t\t\t})();\n\t\t}\n\n\t\t// Render lines\n\t\t(() => {\n\t\t\tlet outerIndex = 0;\n\t\t\tthis.getChartNodeOpportunity().select('.x-axis').selectAll('line').attr('y2', (value, index, nodes) => {\n\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t// Return weekly tick when if months <= 2\n\t\t\t\t\t\tif(index % 7 === 0) { //check if the index(days) has whole weeks\n\t\t\t\t\t\t\treturn 20; //the height of the vertical line of each month.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Return monthly tick value\n\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t// Return {x} monthly tick based on {x} yearly value\n\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears())) === 0) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 8;\n\t\t\t});\n\t\t\tthis.getChartNodeDiapauseId().select('.x-axis').selectAll('line').attr('y2', (value, index, nodes) => {\n\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t// Return weekly tick when if months <= 2\n\t\t\t\t\t\tif(index % 7 === 0) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Return monthly tick value\n\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 8;\n\t\t\t});\n\t\t\tthis.getChartNodeRecoveryId().select('.x-axis').selectAll('line').attr('y2', (value, index, nodes) => {\n\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\t// Return weekly tick when if months <= 2\n\t\t\t\t\t\tif(index % 7 === 0) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Return monthly tick value\n\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\treturn 20;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 8;\n\t\t\t});\n\t\t})();\n\n\t\t// Conceal x-axes text values for mobile devices\n\t\t(() => {\n\t\t\tlet ticks = this.getChartNodeOpportunity().select('.x-axis').selectAll('text');\n\t\t\tlet outerIndex = 0;\n\t\t\tticks.each((value, index, nodes) => {\n\t\t\t\tnodes[index].style.visibility = 'hidden';\n\t\t\t\tif(duration.asMonths() <= 12) {\n\t\t\t\t\tif(duration.asMonths() <= 2) {\n\t\t\t\t\t\tif(duration.asMonths() <= 1) {\n\t\t\t\t\t\t\tif(index % 7 === 0) {\n\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Return forntlightly on mobile for excess of one month\n\t\t\t\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\t\t\t\tif(index % 14 === 0) {\n\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(index % 7 === 0) {\n\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\t\tif(duration.asMonths() > 8) {\n\t\t\t\t\t\t\t\t// Returns every other month on mobile when months > 8\n\t\t\t\t\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\t\t\t\t\tif(outerIndex % 3 === 0) {\n\t\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif(outerIndex % 2 === 0) {\n\t\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(duration.asMonths() > 4) {\n\t\t\t\t\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\t\t\t\t\tif(outerIndex % 2 === 0) {\n\t\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(moment(value).date() === 1) {\n\t\t\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears()) * 4) === 0) {\n\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif(outerIndex % (Math.floor(duration.asYears()) * 2) === 0) {\n\t\t\t\t\t\t\t\tnodes[index].style.visibility = 'visible';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\touterIndex++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t})();\n\t}\n\n\tdrawYAxes(chartObj) {\n\n\t\tlet data = this.getYAxisLeftData();\n\t\tlet yMinTickValue = _.minBy(data, (datum) => {\n\t\t\treturn datum;\n\t\t});\n\n\t\tlet yMaxTickValue = _.maxBy(data, (datum) => {\n\t\t\treturn datum;\n\t\t});\n\n\t\tchartObj.append('g')\n\t\t.attr('class', 'y-axis')\n\t\t.attr('transform', `translate(-25, 0)`)\n\t\t.call(d3.axisLeft(this.yAxisLeft).tickFormat((value, index) => {\n\t\t\tif(data.length > 1 && yMinTickValue !== yMaxTickValue) {\n\t\t\t\t// If mobile devices and the modulo by 4 is 1\n\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\tif(index % 4 === 1) {\n\t\t\t\t\t\treturn this.numberFormatter.formatNumbersWithCommas(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(index % 2 === 1) {\n\t\t\t\t\t\treturn this.numberFormatter.formatNumbersWithCommas(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn this.numberFormatter.formatNumbersWithCommas(value);\n\t\t\t}\n\t\t}).tickSize(-8).tickPadding(12).tickValues(d3.range(this.yMinTickValue, this.yMaxTickValue, this.yTickValue)));\n\n\t\tthis.getChartNodeOpportunity().select('.y-axis').selectAll('line').attr('x2', (value, index, nodes) => {\n\t\t\tif(data.length > 1 && yMinTickValue !== yMaxTickValue) {\n\t\t\t\t// If mobile devices and the modulo by 4 is 1\n\t\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\t\tif(index % 4 === 1) {\n\t\t\t\t\t\treturn -20;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(index % 2 === 1) {\n\t\t\t\t\t\treturn -20;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -10;\n\t\t});\n\t}\n\n\t// Util method to format moment dates\n\tgetMomentDate(date, format = 'DD/MM/YYYY') {\n\t\treturn moment(date, format);\n\t}\n\n\t// Define Colors for the charts\n\tdefineColors() {\n\t\tthis.colors = [];\n\t\t_.forEach(this.data, () => {\n\t\t\tthis.colors.push(\"#333\", \"#0c7fbb\", \"#77b559\", \"#de4443\");\n\t\t});\n\t}\n\n\tdrawPaths(num) {\n\t\tif(num === 1){\n\t\t\tvar spray_date = [];\n\t\t\tvar globalMaxDiArr = [];\n\t\t\tvar maxDis = [];\n\t\t\tvar globalMaxDi;\n\t\t\tvar objData = [];\n\t\t\tvar objDataShaded = [];\n\t\t\tvar newData =[];\n\t\t\tvar newDataShaded = [];\n\t\t\t_.forEach(this.data[0].sims, (datas) => {\n\t\t\t\tspray_date.push(datas[0].spray_date);\n\t\t\t});\n\t\t\t_.forEach(this.data[0].sims, (datas) => {\n\t\t\t\tvar maxDiArr = [];\n\t\t\t\t_.forEach(datas, (values) => {\n\t\t\t\t\tmaxDiArr.push(values.Di);\n\t\t\t\t});\n\t\t\t\tmaxDis.push(Math.max(...maxDiArr));\n\t\t\t});\n\t\t\t\n\t\t\t_.forEach(this.data[0].sims, (datas) => {\n\t\t\t\t_.forEach(datas, (values) => {\n\t\t\t\t\tglobalMaxDiArr.push(values.Di);\n\t\t\t\t});\n\t\t\t});\n\t\t\tglobalMaxDi = Math.max(...globalMaxDiArr);\n\t\t\tfor(var i = 0; i < spray_date.length; i++){\n\t\t\t\tvar obj = {\n\t\t\t\t\tdi: maxDis[i],\n\t\t\t\t\tspray_date: spray_date[i]\n\t\t\t\t};\n\t\t\t\tobjData.push(obj);\n\t\t\t}\n\t\t\tnewData.push(objData);\n\n\t\t\t_.forEach(newData[0], (datas) => {\n\t\t\t\tif((globalMaxDi-datas.di)/globalMaxDi * 100 > 88 ){\n\t\t\t\t\tobjDataShaded.push(datas);\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tnewDataShaded.push(objDataShaded);\n\n\n\t\t\tvar window_start_date;\n\t\t\tvar start_date;\n\t\t\tvar window_end_date;\n\t\t\tvar end_date;\n\n\t\t\twindow_start_date = new Date(this.data[0].window_start_date);\n\t\t\twindow_end_date = new Date(this.data[0].window_end_date);\n\t\t\tstart_date = window_start_date.toLocaleDateString(\"en-GB\", options);\n\t\t\tend_date = window_end_date.toLocaleDateString(\"en-GB\", options);\n\n\n\t\t\tlet newDataShadedss = [];\n\t\t\tnewDataShadedss[0] = [{spray_date:window_start_date},{spray_date:window_end_date}];\n\t\t\t_.forEach(newDataShadedss, (datas) => {\n\t\t\t\tthis.svgOpportunity.append('path')\n\t\t\t\t\t.datum(datas)\n\t\t\t\t\t.attr(\"fill\", \"#dddddd\")\n\t\t\t\t\t.attr('stroke', \"#dddddd\")\n\t\t\t\t\t.attr('d', d3.area()\n\t\t\t\t\t\t.x((innerDatum) => {\n\t\t\t\t\t\t\treturn this.xAxisBottom(innerDatum.spray_date);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.y(this.height)\n\t\t\t\t\t\t.y1(0)\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\n\t\t\t});\n\n\t\t\t_.forEach(newData, (datas, index) => {\n\t\t\t\tthis.svgOpportunity.append('path')\n\t\t\t\t\t.datum(datas)\n\t\t\t\t\t.attr('class', 'plot-line')\n\t\t\t\t\t.attr('stroke', this.colors[index])\n\t\t\t\t\t.attr('d', d3.area()\n\t\t\t\t\t\t.x((innerDatum) => {\n\t\t\t\t\t\t\treturn this.xAxisBottom(this.getMomentDate(this.convertDate(innerDatum.spray_date)).toDate());\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.y((innerDatum) => {\n\t\t\t\t\t\t\treturn this.yAxisLeft((globalMaxDi-innerDatum.di)/globalMaxDi * 100);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.curve(d3.curveCatmullRom.alpha(1))\n\t\t\t\t\t);\n\t\t\t});\n\n\t\t\tvar date;\n\t\tconst options = {\n\t\t\tyear: \"numeric\", month: \"numeric\", day: \"numeric\"\n\t\t};\n\t\tdate = new Date(this.data[0].timerite_date);\n\n\t\t\tthis.svgOpportunity.append(\"line\")\n\t\t\t.attr(\"x1\", this.xAxisBottom(date))\n\t\t\t.attr(\"y1\", 0)\n\t\t\t.attr(\"x2\", this.xAxisBottom(date))\n\t\t\t.attr(\"y2\", this.height)\n\t\t\t.style(\"stroke-width\", 1)\n\t\t\t.style(\"stroke\", \"green\")\n\t\t\t.style(\"fill\", \"none\");\n\n\n\t\t\tthis.svgOpportunity.append(\"line\")\n\t\t\t.attr(\"x1\", this.xAxisBottom(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y1\", 0)\n\t\t\t.attr(\"x2\", this.xAxisBottom(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y2\", this.height)\n\t\t\t.style(\"stroke-width\", 3)\n\t\t\t.style(\"stroke\", \"red\")\n\t\t\t.style(\"fill\", \"none\");\n\t\t}\n\t\tif(num === 2){\n\t\t\tvar newData = [];\n\t\t\t_.forEach(this.data, () => {\n\t\t\t\tnewData.push(this.data[0].sims[this.spray_date]);\n\t\t\t});\n\t\t\t_.forEach(newData, (datas, index) => {\n\t\t\t\tthis.svgDiapause.append('path')\n\t\t\t\t\t.datum(datas)\n\t\t\t\t\t.attr('class', 'plot-line')\n\t\t\t\t\t.attr('stroke', this.colors[index])\n\t\t\t\t\t.attr('d', d3.area()\n\t\t\t\t\t\t.x((innerDatum) => {\n\t\t\t\t\t\t\treturn this.xAxisBottom2(this.getMomentDate(this.convertDate(innerDatum.time)).toDate());\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.y((innerDatum) => {\n\t\t\t\t\t\t\treturn this.yAxisLeft(innerDatum.diapause_prop * 100);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.curve(d3.curveCatmullRom.alpha(1))\n\t\t\t\t\t);\n\t\t\t});\n\t\t\tthis.svgDiapause.append(\"line\")\n\t\t\t.attr(\"x1\", this.xAxisBottom2(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y1\", 0)\n\t\t\t.attr(\"x2\", this.xAxisBottom2(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y2\", this.height)\n\t\t\t.style(\"stroke-width\", 2)\n\t\t\t.style(\"stroke\", \"red\")\n\t\t\t.style(\"fill\", \"none\");\n\t\t}\n\t\tif(num === 3){\n\t\t\tvar tempData = [];\n\t\t\tvar newData = [];\n\t\t\t_.forEach(this.data[0].sims[this.spray_date], (datas, index) => {\n\t\t\t\ttempData.push(datas);\n\t\t\t});\n\t\t\t_.forEach(tempData, (values) => {\n\t\t\t\tlet total = values.M1 + values.M2 + values.M3 + values.M4 + values.M5 + values.Ew + values.Di;\n\t\t\t\tlet time = values.time;\n\t\t\t\tlet mites = values.M1 + values.M2 + values.M3 + values.M4 + values.M5;\n\t\t\t\tlet winterEggs = values.Ew;\n\t\t\t\tlet diapauseEggs = values.Di;\n\t\t\t\tvar mitesObj = {\n\t\t\t\t\ttime: time,\n\t\t\t\t\twinterEggs: winterEggs,\n\t\t\t\t\tmites: mites,\n\t\t\t\t\tdiapauseEggs: diapauseEggs\n\t\t\t\t}\n\t\t\t\tnewData.push(mitesObj);\n\t\t\t});\n\t\t\tif(this.mediaQuery.breakpointMaxWidth(this.mediaQuery.BREAKPOINTS.SM)) {\n\t\t\t\tthis.populationWidth = this.width + 90;\n\t\t\t\tthis.populationHeight = 210;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.populationWidth = this.width/2-12;\n\t\t\t\tthis.populationHeight = 305;\n\t\t\t}\n\t\t\tvar stackGen = d3.stack().keys([\"winterEggs\", \"mites\", \"diapauseEggs\"]);\n\t\t\tvar stackedSeries = stackGen(newData); \n\t\t\tvar xScale = d3.scaleTime()\n\t\t\t.domain([newData[0].time, newData[newData.length-1].time])\n\t\t\t.range([90, this.populationWidth]);\n\t\t\tvar yScale = d3.scaleLinear()\n\t\t\t.domain([0, 210])\n\t\t\t.range([this.populationHeight, 0]);\n\n\t\t\tvar colorScale = d3.scaleOrdinal()\n\t\t\t.domain([\"winterEggs\", \"mites\", \"diapauseEggs\"])\n\t\t\t.range([\"#77b559\", \"#0c7fbb\", \"#de4443\"]);\n\n\t\t\tvar areaGen = d3.area()\n\t\t\t.x((d) => xScale(d.data.time))\n\t\t\t.y0((d) => yScale(d[0]))\n\t\t\t.y1((d) => yScale(d[1]));\n\n\t\t\td3.select(`[data-uuid=\"${this.recoveryId}\"] svg`)\n\t\t\t.selectAll(\".areas\")\n\t\t\t.data(stackedSeries)\n\t\t\t.join(\"path\")\n\t\t\t.attr(\"d\", areaGen)\n\t\t\t.attr(\"fill\", (d) => colorScale(d.key))\n\t\t\t.style(\"opacity\", \"0.7\");\n\n\t\t\t//draw green line for spray date\n\t\t\tthis.svgRecovery.append(\"line\")\n\t\t\t.attr(\"x1\", this.xAxisBottom2(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y1\", 0)\n\t\t\t.attr(\"x2\", this.xAxisBottom2(this.getMomentDate(this.convertDate(this.sprayDateInNum)).toDate()))\n\t\t\t.attr(\"y2\", this.height)\n\t\t\t.style(\"stroke-width\", 2)\n\t\t\t.style(\"stroke\", \"red\")\n\t\t\t.style(\"fill\", \"none\");\n\t\t}\n\t}\n\n\t// For Window of opportunity\n\tdrawPoints() {\n\t\t\tvar spray_date = [];\n\t\t\tvar globalMaxDiArr = [];\n\t\t\tvar maxDis = [];\n\t\t\tvar globalMaxDi;\n\t\t\tvar objData = [];\n\t\t\tvar newData =[];\n\t\t\t_.forEach(this.data[0].sims, (datas) => {\n\t\t\t\tspray_date.push(datas[0].spray_date);\n\t\t\t\tvar maxDiArr = [];\n\t\t\t\t_.forEach(datas, (values) => {\n\t\t\t\t\tmaxDiArr.push(values.Di);\n\t\t\t\t\tglobalMaxDiArr.push(values.Di);\n\t\t\t\t});\n\t\t\t\tmaxDis.push(Math.max(...maxDiArr));\n\t\t\t});\n\t\t\tglobalMaxDi = Math.max(...globalMaxDiArr);\n\t\t\tfor(var i = 0; i < spray_date.length; i++){\n\t\t\t\tvar obj = {\n\t\t\t\t\tdi: maxDis[i],\n\t\t\t\t\tspray_date: spray_date[i]\n\t\t\t\t};\n\t\t\t\tobjData.push(obj);\n\t\t\t}\n\t\t\tnewData.push(objData);\n\t\t\t_.forEach(newData, (datas, index) => {\n\t\t\t\tthis.svgOpportunity.append('g')\n\t\t\t\t\t.selectAll('dot')\n\t\t\t\t\t.data(datas)\n\t\t\t\t\t.enter()\n\t\t\t\t\t.append('circle')\n\t\t\t\t\t.attr('class', 'plot-circle')\n\t\t\t\t\t.attr('stroke', (innerDatum) =>{\n\t\t\t\t\t\treturn this.colors[0];\n\t\t\t\t\t})\n\t\t\t\t\t.attr('cx', (innerDatum) => {\n\t\t\t\t\t\treturn this.xAxisBottom(this.getMomentDate(this.convertDate(innerDatum.spray_date)).toDate());\n\t\t\t\t\t})\n\t\t\t\t\t.attr('cy', (innerDatum) => {\n\t\t\t\t\t\treturn this.yAxisLeft((globalMaxDi-innerDatum.di)/globalMaxDi * 100);\n\t\t\t\t\t})\n\t\t\t\t\t.attr('r', (innerDatum) =>{\n\t\t\t\t\t\treturn 4;\n\t\t\t\t\t})\n\t\t\t\t\t.attr('fill', (innerDatum) =>{\n\t\t\t\t\t\treturn \"#fff\";\n\t\t\t\t\t})\n\t\t\t\t\t.on('mouseover', (innerDatum, innerIndex, nodes) => {\n\t\t\t\t\t\tthis.tooltip.style('display', 'block');\n\t\t\t\t\t\t// Have the dots grow\n\t\t\t\t\t\tlet circle = d3.select(nodes[innerIndex]);\n\t\t\t\t\t\tcircle.attr('r', (innerDatum) =>{\n\t\t\t\t\t\t\treturn 4;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('cx', () => {\n\t\t\t\t\t\t\t\treturn this.xAxisBottom(this.getMomentDate(this.convertDate(innerDatum.spray_date)).toDate());\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('cy', () => {\n\t\t\t\t\t\t\t\treturn this.yAxisLeft((globalMaxDi-innerDatum.di)/globalMaxDi * 100);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('fill', this.colors[0]);\n\t\t\t\t\t})\n\t\t\t\t\t.on('mousemove', (innerDatum, innerIndex, nodes) => {\n\t\t\t\t\t\tlet value = toInteger((globalMaxDi-innerDatum.di)/globalMaxDi * 100);\n\t\t\t\t\t\tlet date = this.getMomentDate(this.convertDate(innerDatum.spray_date)).toDate();\n\t\t\t\t\t\tthis.tooltip.html(`
${date.getDate()}/${date.getMonth()+1}/${date.getFullYear()}
${value}%
`);\n\t\t\t\t\t\tlet tooltipWidth = this.$tooltip.outerWidth();\n\t\t\t\t\t\tlet tooltipHeight = this.$tooltip.outerHeight();\n\t\t\t\t\t\tlet topPositionOffset = 30;\n\t\t\t\t\t\t// Subtract the left margin alongside half of the tooltip width. This horizontally centers the tooltip\n\t\t\t\t\t\tlet leftPosition = (d3.mouse(nodes[innerIndex])[0] + this.margin.left) - 40;\n\t\t\t\t\t\tlet topPosition = ((d3.mouse(nodes[innerIndex])[1]) + this.margin.top) - 20 - topPositionOffset;\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.tooltip.style('left', `${leftPosition}px`)\n\t\t\t\t\t\t\t.style('top', `${topPosition}px`);\n\t\t\t\t\t})\n\t\t\t\t\t.on('mouseleave', (innerDatum, innerIndex, nodes) => {\n\t\t\t\t\t\tthis.tooltip.style('display', 'none');\n\t\t\t\t\t\t// Revert the dot size\n\t\t\t\t\t\tlet circle = d3.select(nodes[innerIndex]);\n\t\t\t\t\t\tcircle.attr('r', (innerDatum) =>{\n\t\t\t\t\t\t\treturn 4;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('cx', () => {\n\t\t\t\t\t\t\t\treturn this.xAxisBottom(this.getMomentDate(this.convertDate(innerDatum.spray_date)).toDate());\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('cy', () => {\n\t\t\t\t\t\t\t\treturn this.yAxisLeft((globalMaxDi-innerDatum.di)/globalMaxDi * 100);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.attr('fill', (innerDatum) =>{\n\t\t\t\t\t\t\t\treturn \"#fff\";\n\t\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.on('click',(innerDatum, innerIndex, nodes) =>{\n\t\t\t\t\t\tthis.tooltip.style('display', 'none');\n\t\t\t\t\t\tlet value = innerDatum.spray_date;\n\t\t\t\t\t\tlet spray_dates_duplicate = [];\n\t\t\t\t\t\tlet spray_dates = [];\n\t\t\t\t\t\tlet spray_date = 0;\n\t\t\t\t\t\t_.forEach(this.data, (datum) => {\n\t\t\t\t\t\t\t_.forEach(datum.sims, (value) => {\n\t\t\t\t\t\t\t\t_.forEach(value, (sprayDate) => {\n\t\t\t\t\t\t\t\t\tspray_dates_duplicate.push(sprayDate.spray_date);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tspray_dates_duplicate.forEach(element => {\n\t\t\t\t\t\t\tif (!spray_dates.includes(element)) {\n\t\t\t\t\t\t\t\tspray_dates.push(element);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\tspray_date = (spray_dates.indexOf(parseInt(value)));\n\t\t\t\t\t\t\t\tthis.sprayDateInNum = this.sprayDatesArr[spray_date];\t\t\t\n\t\t\t\t\t\t\t\tthis.drawOpportunity(spray_date);\n\t\t\t\t\t\t\t\tthis.drawDiapause(spray_date);\n\t\t\t\t\t\t\t\tthis.drawRecovery(spray_date);\n\t\t\t\t\t})\n\t\t\t});\n\t}\n\n\t// For mite population recovery following control chart\n\tdrawLabels() {\n\t\tvar labels = [];\n\t\tlabels.push( {label: \" Mites \",} ,{label: \" Winter eggs \",}, {label: \" Mites with diapause eggs\",});\n\t\tlet textItemWidth = 50;\n\t\tlet textItemHeight = 30;\n\t\tlet lineWidth = 20;\n\t\tlet marginSpacer = 15;\n\t\tlet legendItemWidth = textItemWidth + lineWidth + marginSpacer + marginSpacer;\n\t\tlet legendItemOffset = lineWidth + 5; // Relative to the line\n\t\tlet topPosition = this.height + this.margin.top + this.margin.bottom;\n\t\tlet dataLength = labels.length;\n\t\tlet leftPosition = 0;\n\t\t// Recallibrate left position when there is an overflow of items\n\t\tif(leftPosition < 0) {\n\t\t\tleftPosition = -(marginSpacer * 4);\n\t\t}\n\t\t// Assign the max amount of legend items that can fit in a column\n\t\tlet legendItemMaxColumns = 0;\n\t\tlet xAxisWidth = $('.x-axis')[0].getBoundingClientRect().width;\n\t\tfor(let index = 0; index < dataLength; index++) {\n\t\t\tif(index * legendItemWidth > (xAxisWidth - (marginSpacer * 3))) {\n\t\t\t\tlegendItemMaxColumns = index - 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet legendItemRowIndex = 0;\n\n\t\tlet legendGroup = this.svgRecovery.append('g').attr('class', 'legend')\n\t\t.attr('transform', `translate(${leftPosition}, ${topPosition})`);\n\t\t\tlet adjustSvgHeight = () => {\n\t\t\t\tlet svgHeight = this.$element.find('svg').attr('height');\n\t\t\t\tthis.$element.find('svg').attr('height', parseInt(svgHeight) + marginSpacer + textItemHeight);\n\t\t\t};\n\t\tadjustSvgHeight();\n\t\t_.forEach(labels, (datum, index) => {\n\t\t\tif(index % legendItemMaxColumns === 0 && index !== 0) {\n\t\t\t\tlegendItemRowIndex++;\n\t\t\t}\n\t\t\tlet legendItemX = () => {\n\t\t\t\tif(legendItemMaxColumns !== 0) {\n\t\t\t\t\treturn (index % legendItemMaxColumns) * legendItemWidth;\n\t\t\t\t}\n\t\t\t\treturn index * legendItemWidth;\n\t\t\t};\n\t\t\tlet legendItemY= () => {\n\t\t\t\treturn legendItemRowIndex * textItemHeight;\n\t\t\t};\n\t\t\tlet legendItem = legendGroup.append('g')\n\t\t\t\t.attr('class', 'legend-item')\n\t\t\t\t.attr('transform', `translate(${legendItemX()}, ${legendItemY()})`);\n\t\t\tlegendItem.append('line')\n\t\t\t\t.attr('y1', -4)\n\t\t\t\t.attr('y2', -4)\n\t\t\t\t.attr('x2', lineWidth)\n\t\t\t\t.attr('stroke', this.colors[index+1])\n\t\t\t\t.attr('stroke-width', 8);\n\n\t\t\tlet textElement = legendItem.append('text').html(datum.label);\n\t\t\tthis.textWrap(textElement, textItemWidth, legendItemOffset, 0);\n\t\t});\n\t}\n\n\t// Creates an inner tspan element for the text element and clips the text\n\ttextWrap(textElement, maxWidth, x, y) {\n\t\tlet words = textElement.text();\n\t\tlet tspan = textElement.text(null).append('tspan').text(words).attr('x', x).attr('y', y);\n\n\t\tlet textLength = tspan.node().getComputedTextLength();\n\t\tlet text = tspan.text();\n\t\twhile(textLength > maxWidth && text.length > 0) {\n\t\t\ttext = text.slice(0, -1);\n\t\t\ttspan.text(text + '…');\n\t\t\ttextLength = tspan.node().getComputedTextLength();\n\t\t}\n\t}\n\n\t// Gets an appropriate tick interval depending on the range\n\tgetLinearTick(range, power = 0, tickCount = 20) {\n\t\tif(range !== 0) {\n\t\t\tlet intervals = [0.1, 0.2, 0.5, 1, 2, 5];\n\t\t\tfor(let i = 0; i < intervals.length; i++) {\n\t\t\t\tif((range / (intervals[i] * Math.pow(10, power))) > tickCount) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn intervals[i] * Math.pow(10, power);\n\t\t\t\t}\n\t\t\t}\n\t\t\tpower += 1;\n\t\t\treturn this.getLinearTick(range, power, tickCount);\n\t\t}\n\t\treturn 1;\n\t}\n\n\tprintChart(){\n\t\t$(this.$printBtn).on('click', (event) => {\n\t\t\tvar opportunity = $('.opportunity-container').html(); \n\t\t\tvar diapause = $('.diapause-container').html(); \n\t\t\tvar recovery = $('.recovery-container').html(); \n\t\t\tvar logos = $('.logos').html(); \n\t\t\tvar description = $('.description').html(); \n var a = window.open('', '', 'height=1800, width=2000'); \n a.document.write(''); \n\t\t\ta.document.write(''); \n\t\t\ta.document.write('

TIMERITE® was developed and funded by AWI and CSIRO. Updates and improvements were made by Cesar Australia and CSIRO, with funding from AWI, GRDC, MLA and Cesar Australia.

');\n\t\t\ta.document.write(logos); \n\t\t\ta.document.write(opportunity); \n\t\t\ta.document.write('
');\n a.document.write(diapause); \n\t\t\ta.document.write(''); \n\t\t\ta.document.write(recovery); \n\t\t\ta.document.write('
'); \n\t\t\ta.document.write(description); \n a.document.write(''); \n a.document.close(); \n a.print(); \n\t\t});\n\t}\n}\n","class MediaQuery {\n\tconstructor() {\n\t\tthis.BREAKPOINTS = {\n\t\t\tXS: 0,\n\t\t\tSM: 576,\n\t\t\tMD: 768,\n\t\t\tLG: 992,\n\t\t\tXL: 1200\n\t\t};\n\t}\n\n\tbreakpointMaxWidth(breakpoint) {\n\t\tlet width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n\t\tif(_.isFinite(breakpoint)) {\n\t\t\treturn breakpoint > width;\n\t\t}\n\t\tconsole.error(`MediaQuery::Error`, 'Please supply a valid breakpoint');\n\t\treturn false;\n\t}\n}\n\nexport let mediaQuery = new MediaQuery();\n","class NumberFormatter {\n\tformatNumbersWithCommas(number) {\n\t\tlet parts = number.toString().split('.');\n\t\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\t\treturn parts.join('.');\n\t}\n}\n\nexport let numberFormatter = new NumberFormatter();\n","var map = {\n\t\"./af\": 515,\n\t\"./af.js\": 515,\n\t\"./ar\": 516,\n\t\"./ar-dz\": 517,\n\t\"./ar-dz.js\": 517,\n\t\"./ar-kw\": 518,\n\t\"./ar-kw.js\": 518,\n\t\"./ar-ly\": 519,\n\t\"./ar-ly.js\": 519,\n\t\"./ar-ma\": 520,\n\t\"./ar-ma.js\": 520,\n\t\"./ar-ps\": 521,\n\t\"./ar-ps.js\": 521,\n\t\"./ar-sa\": 522,\n\t\"./ar-sa.js\": 522,\n\t\"./ar-tn\": 523,\n\t\"./ar-tn.js\": 523,\n\t\"./ar.js\": 516,\n\t\"./az\": 524,\n\t\"./az.js\": 524,\n\t\"./be\": 525,\n\t\"./be.js\": 525,\n\t\"./bg\": 526,\n\t\"./bg.js\": 526,\n\t\"./bm\": 527,\n\t\"./bm.js\": 527,\n\t\"./bn\": 528,\n\t\"./bn-bd\": 529,\n\t\"./bn-bd.js\": 529,\n\t\"./bn.js\": 528,\n\t\"./bo\": 530,\n\t\"./bo.js\": 530,\n\t\"./br\": 531,\n\t\"./br.js\": 531,\n\t\"./bs\": 532,\n\t\"./bs.js\": 532,\n\t\"./ca\": 533,\n\t\"./ca.js\": 533,\n\t\"./cs\": 534,\n\t\"./cs.js\": 534,\n\t\"./cv\": 535,\n\t\"./cv.js\": 535,\n\t\"./cy\": 536,\n\t\"./cy.js\": 536,\n\t\"./da\": 537,\n\t\"./da.js\": 537,\n\t\"./de\": 538,\n\t\"./de-at\": 539,\n\t\"./de-at.js\": 539,\n\t\"./de-ch\": 540,\n\t\"./de-ch.js\": 540,\n\t\"./de.js\": 538,\n\t\"./dv\": 541,\n\t\"./dv.js\": 541,\n\t\"./el\": 542,\n\t\"./el.js\": 542,\n\t\"./en-au\": 543,\n\t\"./en-au.js\": 543,\n\t\"./en-ca\": 544,\n\t\"./en-ca.js\": 544,\n\t\"./en-gb\": 545,\n\t\"./en-gb.js\": 545,\n\t\"./en-ie\": 546,\n\t\"./en-ie.js\": 546,\n\t\"./en-il\": 547,\n\t\"./en-il.js\": 547,\n\t\"./en-in\": 548,\n\t\"./en-in.js\": 548,\n\t\"./en-nz\": 549,\n\t\"./en-nz.js\": 549,\n\t\"./en-sg\": 550,\n\t\"./en-sg.js\": 550,\n\t\"./eo\": 551,\n\t\"./eo.js\": 551,\n\t\"./es\": 552,\n\t\"./es-do\": 553,\n\t\"./es-do.js\": 553,\n\t\"./es-mx\": 554,\n\t\"./es-mx.js\": 554,\n\t\"./es-us\": 555,\n\t\"./es-us.js\": 555,\n\t\"./es.js\": 552,\n\t\"./et\": 556,\n\t\"./et.js\": 556,\n\t\"./eu\": 557,\n\t\"./eu.js\": 557,\n\t\"./fa\": 558,\n\t\"./fa.js\": 558,\n\t\"./fi\": 559,\n\t\"./fi.js\": 559,\n\t\"./fil\": 560,\n\t\"./fil.js\": 560,\n\t\"./fo\": 561,\n\t\"./fo.js\": 561,\n\t\"./fr\": 562,\n\t\"./fr-ca\": 563,\n\t\"./fr-ca.js\": 563,\n\t\"./fr-ch\": 564,\n\t\"./fr-ch.js\": 564,\n\t\"./fr.js\": 562,\n\t\"./fy\": 565,\n\t\"./fy.js\": 565,\n\t\"./ga\": 566,\n\t\"./ga.js\": 566,\n\t\"./gd\": 567,\n\t\"./gd.js\": 567,\n\t\"./gl\": 568,\n\t\"./gl.js\": 568,\n\t\"./gom-deva\": 569,\n\t\"./gom-deva.js\": 569,\n\t\"./gom-latn\": 570,\n\t\"./gom-latn.js\": 570,\n\t\"./gu\": 571,\n\t\"./gu.js\": 571,\n\t\"./he\": 572,\n\t\"./he.js\": 572,\n\t\"./hi\": 573,\n\t\"./hi.js\": 573,\n\t\"./hr\": 574,\n\t\"./hr.js\": 574,\n\t\"./hu\": 575,\n\t\"./hu.js\": 575,\n\t\"./hy-am\": 576,\n\t\"./hy-am.js\": 576,\n\t\"./id\": 577,\n\t\"./id.js\": 577,\n\t\"./is\": 578,\n\t\"./is.js\": 578,\n\t\"./it\": 579,\n\t\"./it-ch\": 580,\n\t\"./it-ch.js\": 580,\n\t\"./it.js\": 579,\n\t\"./ja\": 581,\n\t\"./ja.js\": 581,\n\t\"./jv\": 582,\n\t\"./jv.js\": 582,\n\t\"./ka\": 583,\n\t\"./ka.js\": 583,\n\t\"./kk\": 584,\n\t\"./kk.js\": 584,\n\t\"./km\": 585,\n\t\"./km.js\": 585,\n\t\"./kn\": 586,\n\t\"./kn.js\": 586,\n\t\"./ko\": 587,\n\t\"./ko.js\": 587,\n\t\"./ku\": 588,\n\t\"./ku-kmr\": 589,\n\t\"./ku-kmr.js\": 589,\n\t\"./ku.js\": 588,\n\t\"./ky\": 590,\n\t\"./ky.js\": 590,\n\t\"./lb\": 591,\n\t\"./lb.js\": 591,\n\t\"./lo\": 592,\n\t\"./lo.js\": 592,\n\t\"./lt\": 593,\n\t\"./lt.js\": 593,\n\t\"./lv\": 594,\n\t\"./lv.js\": 594,\n\t\"./me\": 595,\n\t\"./me.js\": 595,\n\t\"./mi\": 596,\n\t\"./mi.js\": 596,\n\t\"./mk\": 597,\n\t\"./mk.js\": 597,\n\t\"./ml\": 598,\n\t\"./ml.js\": 598,\n\t\"./mn\": 599,\n\t\"./mn.js\": 599,\n\t\"./mr\": 600,\n\t\"./mr.js\": 600,\n\t\"./ms\": 601,\n\t\"./ms-my\": 602,\n\t\"./ms-my.js\": 602,\n\t\"./ms.js\": 601,\n\t\"./mt\": 603,\n\t\"./mt.js\": 603,\n\t\"./my\": 604,\n\t\"./my.js\": 604,\n\t\"./nb\": 605,\n\t\"./nb.js\": 605,\n\t\"./ne\": 606,\n\t\"./ne.js\": 606,\n\t\"./nl\": 607,\n\t\"./nl-be\": 608,\n\t\"./nl-be.js\": 608,\n\t\"./nl.js\": 607,\n\t\"./nn\": 609,\n\t\"./nn.js\": 609,\n\t\"./oc-lnc\": 610,\n\t\"./oc-lnc.js\": 610,\n\t\"./pa-in\": 611,\n\t\"./pa-in.js\": 611,\n\t\"./pl\": 612,\n\t\"./pl.js\": 612,\n\t\"./pt\": 613,\n\t\"./pt-br\": 614,\n\t\"./pt-br.js\": 614,\n\t\"./pt.js\": 613,\n\t\"./ro\": 615,\n\t\"./ro.js\": 615,\n\t\"./ru\": 616,\n\t\"./ru.js\": 616,\n\t\"./sd\": 617,\n\t\"./sd.js\": 617,\n\t\"./se\": 618,\n\t\"./se.js\": 618,\n\t\"./si\": 619,\n\t\"./si.js\": 619,\n\t\"./sk\": 620,\n\t\"./sk.js\": 620,\n\t\"./sl\": 621,\n\t\"./sl.js\": 621,\n\t\"./sq\": 622,\n\t\"./sq.js\": 622,\n\t\"./sr\": 623,\n\t\"./sr-cyrl\": 624,\n\t\"./sr-cyrl.js\": 624,\n\t\"./sr.js\": 623,\n\t\"./ss\": 625,\n\t\"./ss.js\": 625,\n\t\"./sv\": 626,\n\t\"./sv.js\": 626,\n\t\"./sw\": 627,\n\t\"./sw.js\": 627,\n\t\"./ta\": 628,\n\t\"./ta.js\": 628,\n\t\"./te\": 629,\n\t\"./te.js\": 629,\n\t\"./tet\": 630,\n\t\"./tet.js\": 630,\n\t\"./tg\": 631,\n\t\"./tg.js\": 631,\n\t\"./th\": 632,\n\t\"./th.js\": 632,\n\t\"./tk\": 633,\n\t\"./tk.js\": 633,\n\t\"./tl-ph\": 634,\n\t\"./tl-ph.js\": 634,\n\t\"./tlh\": 635,\n\t\"./tlh.js\": 635,\n\t\"./tr\": 636,\n\t\"./tr.js\": 636,\n\t\"./tzl\": 637,\n\t\"./tzl.js\": 637,\n\t\"./tzm\": 638,\n\t\"./tzm-latn\": 639,\n\t\"./tzm-latn.js\": 639,\n\t\"./tzm.js\": 638,\n\t\"./ug-cn\": 640,\n\t\"./ug-cn.js\": 640,\n\t\"./uk\": 641,\n\t\"./uk.js\": 641,\n\t\"./ur\": 642,\n\t\"./ur.js\": 642,\n\t\"./uz\": 643,\n\t\"./uz-latn\": 644,\n\t\"./uz-latn.js\": 644,\n\t\"./uz.js\": 643,\n\t\"./vi\": 645,\n\t\"./vi.js\": 645,\n\t\"./x-pseudo\": 646,\n\t\"./x-pseudo.js\": 646,\n\t\"./yo\": 647,\n\t\"./yo.js\": 647,\n\t\"./zh-cn\": 648,\n\t\"./zh-cn.js\": 648,\n\t\"./zh-hk\": 649,\n\t\"./zh-hk.js\": 649,\n\t\"./zh-mo\": 650,\n\t\"./zh-mo.js\": 650,\n\t\"./zh-tw\": 651,\n\t\"./zh-tw.js\": 651\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 670;"],"sourceRoot":""}