{"version":3,"sources":["webpack:///./node_modules/highcharts-vue/dist/highcharts-vue.min.js","webpack:///./src/components/dataQuality/speedLog/Charts/SensorQualityChart.vue?9dc1","webpack:///./src/views/dataQuality/SpeedLog.vue?1b33","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?e32a","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?5f48","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?5786","webpack:///./src/components/dataQuality/speedLog/Charts/SensorQualityChart.vue?1dd2","webpack:///./src/components/dataQuality/speedLog/Charts/SensorQualityChart.vue","webpack:///./src/components/dataQuality/speedLog/Charts/SensorQualityChart.vue?3347","webpack:///./src/components/dataQuality/speedLog/Charts/SensorQualityChart.vue?c48c","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?3ad1","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?1f2b","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?7b34","webpack:///./src/views/dataQuality/SpeedLog.vue","webpack:///./src/views/dataQuality/SpeedLog.vue?46de","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///./src/views/dataQuality/SpeedLog.vue?4974","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?bfbc","webpack:///./src/views/dataQuality/SpeedLog.vue?717f","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?2df2"],"names":["t","e","module","exports","window","r","n","c","o","m","i","d","l","h","a","isObject","isClass","isDOMElement","isArray","forEach","objectEach","Array","Symbol","iterator","from","Object","prototype","toString","call","slice","constructor","name","test","TypeError","length","u","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","s","arguments","defineProperty","value","configurable","writable","getOwnPropertyDescriptors","defineProperties","f","this","chart","destroy","p","split","render","ref","beforeDestroy","beforeUnmount","template","props","constructorType","type","String","default","options","required","callback","Function","updateArgs","highcharts","deepCopyOnUpdate","Boolean","watch","handler","update","concat","deep","mounted","$refs","console","warn","version","component","tagName","get","toStringTag","__esModule","create","bind","hasOwnProperty","_vm","_h","$createElement","_c","_self","staticClass","attrs","extendedVessels","top","offsetY","on","onSelectedVesselChange","model","$$v","selectedVessel","expression","status","sensorQualityStatus","tooltip","statusCardTooltip","query","to","speedLogData","speedLogDataLoadingState","onSensorQualityChartZoom","derivedSpeedThroughWaterData","speedThroughWaterData","speedComparisonChartLoader","$event","onSpeedComparisonChartZoom","staticRenderFns","_v","_s","indicatorTitle","scopedSlots","_u","key","fn","_g","_b","_e","indicatorText","statusColor","indicatorIcon","StatusCard","Vue","__decorate","Prop","Component","VIcon","VTooltip","_m","noData","loading","ChartOptions","chartReady","staticStyle","SensorQualityChart","chartLoaded","ctx","chartSettings","title","text","series","legend","enabled","yAxis","min","max","labels","format","style","color","plotLines","width","zIndex","dashStyle","plotBands","xAxis","minRange","y","minorTickLength","tickLength","lineColor","Date","parse","addTimeGap","data","timeStamp","plotOptions","area","threshold","marker","showInLegend","dataLabels","radius","fillColor","lineWidth","states","select","hover","useHTML","backgroundColor","borderWidth","borderRadius","shadow","fontSize","formatter","$this","dateHelper","getFormatedDateString","point","x","Number","toFixed","seriesData","credits","exporting","zoomType","spacingRight","spacingLeft","spacingTop","height","fontFamily","events","selection","setTimeout","$emit","resetZoom","resetSelection","speedLossPoints","enableMouseTracking","cropThreshold","symbol","outside","headerFormat","pointFormat","valueDecimals","valueSuffix","xDateFormat","zones","linearGradient","x1","x2","y1","y2","stops","item","bias","map","id","zoom","redraw","timestamp","date","moment","utc","valueOf","add","components","Highcharts","Chart","VProgressLinear","SpeedComparisonChart","align","verticalAlign","itemStyle","cursor","fontWeight","remove","scatterPointsSerie","stickyTracking","scatterPointsSerie2","DataQuality","getModule","DataQualityModule","store","Vessels","VesselsModule","Snackbar","SnackbarModule","SpeedLog","useDerivedSTW","imo","subtract","imoNumber","fetchSpeedLog","fetchDerivedSpeedThroughWater","fetchSpeedThroughWater","vessel","hasDataQualityEnabled","derivedSpeedThroughWaterLoadingState","speedThroughWaterLoadingState","lastSpeedPoint","showSnackbar","features","some","feature","refreshExtendedVessels","Promise","all","Ref","defaultMenuProps","VSelectMenuProps","offsetOverflow","transition","VSelect","extend","allowOverflow","autoSelectFirst","queryText","itemText","toLocaleLowerCase","indexOf","hideNoData","menuProps","noFilter","searchInput","lazySearch","computed","classes","selectedIndex","computedItems","filteredItems","selectedValues","selectedItems","getValue","hasDisplayedItems","hideSelected","hasItem","currentRange","selectedItem","getText","isSearching","internalSearch","allItems","getPropertyFromItem","set","val","isAnyValueAllowed","isDirty","searchIsDirty","multiple","menuCanShow","isFocused","$_menuProps","contentClass","trim","find","valueComparator","internalValue","listData","items","virtualizedItems","document","addEventListener","onCopy","input","removeEventListener","blur","updateSelf","isMenuActive","hasSlot","oldVal","activateMenu","created","setSearch","destroyed","methods","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","findIndex","$nextTick","getTiles","onInternalSearchChanged","updateMenuDimensions","updateDimensions","changeSelectedIndex","keyCode","keyCodes","left","right","backspace","delete","deleteCurrentItem","curIndex","curItem","isInteractive","getDisabled","lastIndex","nextIndex","nextItem","selectItem","setValue","clearableCallback","genInput","VTextField","mergeData","getObjectValueByPath","autocomplete","domProps","genInputSlot","slot","role","genSelections","onClick","onFocus","isAppendInner","target","onInput","badInput","validity","onKeyDown","ctrlKey","home","end","includes","onSpaceDown","onTabDown","onUpDown","preventDefault","setSelectedItems","event","currentItem","currentItemText","clipboardData","setData","VAutocomplete","VContainer"],"mappings":"6HAAC,SAASA,EAAEC,GAAqDC,EAAOC,QAAQF,EAAE,EAAQ,QAAc,EAAQ,SAA/G,CAA0TG,QAAO,SAASC,EAAEC,GAAG,OAAOC,EAAE,GAAGC,EAAEC,EAAEC,EAAE,CAAC,SAASV,EAAEC,GAAGD,EAAEG,QAAQE,GAAG,SAASL,EAAEC,GAAGD,EAAEG,QAAQG,GAAG,SAASN,EAAEC,EAAEI,GAAG,aAAaA,EAAEA,EAAEJ,GAAGI,EAAEM,EAAEV,EAAE,SAAQ,WAAW,OAAOW,KAAIP,EAAEM,EAAEV,EAAE,WAAU,WAAW,OAAOY,KAAQZ,EAAEI,EAAE,GAAR,IAAWE,EAAEF,EAAEC,EAAEL,GAAG,SAASK,EAAEN,EAAEC,GAAG,OAAO,SAASI,EAAEC,EAAEE,EAAEE,GAAG,SAASV,EAAEA,EAAEC,IAAIM,EAAEO,EAAEC,SAASf,GAAGU,IAAIH,EAAEO,EAAEE,QAAQhB,IAAIO,EAAEO,EAAEG,aAAajB,GAAGM,EAAEL,GAAGO,EAAEP,GAAGK,EAAEL,GAAGI,EAAEC,EAAEL,IAAIM,EAAEO,EAAEI,QAAQlB,GAAG,GAAG,GAAGA,EAAEU,GAAG,OAAOH,EAAEO,EAAEI,QAAQV,GAAGA,EAAEW,QAAQnB,GAAGO,EAAEO,EAAEM,WAAWZ,EAAER,GAAGM,EAAnM,CAAsM,GAAGN,EAAEC,GAAG,IAAIO,EAAEH,EAAE,GAAG,SAASK,EAAEV,GAAG,OAAO,SAASA,GAAG,GAAGqB,MAAMH,QAAQlB,GAAG,OAAOc,EAAEd,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBsB,QAAQ,MAAMtB,EAAEsB,OAAOC,WAAW,MAAMvB,EAAE,cAAc,OAAOqB,MAAMG,KAAKxB,GAA7G,CAAiHA,IAAI,SAASA,EAAEC,GAAG,GAAGD,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAOc,EAAEd,EAAEC,GAAG,IAAII,EAAEoB,OAAOC,UAAUC,SAASC,KAAK5B,GAAG6B,MAAM,GAAG,GAAG,MAAM,SAASxB,EAAE,WAAWA,GAAGL,EAAE8B,YAAY9B,EAAE8B,YAAYC,KAAK1B,IAAI,QAAQA,EAAEgB,MAAMG,KAAKxB,GAAG,cAAcK,GAAG,2CAA2C2B,KAAK3B,GAAGS,EAAEd,EAAEC,QAAG,GAAnR,CAA4RD,IAAI,WAAW,MAAM,IAAIiC,UAAU,wIAA/B,GAA0K,SAASnB,EAAEd,EAAEC,IAAI,MAAMA,GAAGA,EAAED,EAAEkC,UAAUjC,EAAED,EAAEkC,QAAQ,IAAI,IAAI7B,EAAE,EAAEC,EAAE,IAAIe,MAAMpB,GAAGI,EAAEJ,EAAEI,IAAIC,EAAED,GAAGL,EAAEK,GAAG,OAAOC,EAAE,SAAS6B,EAAElC,EAAED,GAAG,IAAIK,EAAEC,EAAEmB,OAAOW,KAAKnC,GAAG,OAAOwB,OAAOY,wBAAwBhC,EAAEoB,OAAOY,sBAAsBpC,GAAGD,IAAIK,EAAEA,EAAEiC,QAAO,SAAStC,GAAG,OAAOyB,OAAOc,yBAAyBtC,EAAED,GAAGwC,eAAclC,EAAEmC,KAAKC,MAAMpC,EAAED,IAAIC,EAAE,SAASqC,EAAErC,GAAG,IAAI,IAAIN,EAAE,EAAEA,EAAE4C,UAAUV,OAAOlC,IAAI,CAAC,IAAIQ,EAAE,MAAMoC,UAAU5C,GAAG4C,UAAU5C,GAAG,GAAGA,EAAE,EAAEmC,EAAEV,OAAOjB,IAAG,GAAIW,SAAQ,SAASnB,GAAG,IAAIC,EAAEI,EAAEJ,EAAEK,EAAEN,EAAEQ,EAAEH,EAAEL,GAAGK,KAAKJ,EAAEwB,OAAOoB,eAAe5C,EAAEI,EAAE,CAACyC,MAAM9C,EAAEwC,YAAW,EAAGO,cAAa,EAAGC,UAAS,IAAK/C,EAAEI,GAAGL,KAAIyB,OAAOwB,0BAA0BxB,OAAOyB,iBAAiB5C,EAAEmB,OAAOwB,0BAA0BzC,IAAI2B,EAAEV,OAAOjB,IAAIW,SAAQ,SAASnB,GAAGyB,OAAOoB,eAAevC,EAAEN,EAAEyB,OAAOc,yBAAyB/B,EAAER,OAAM,OAAOM,EAAE,SAAS6C,IAAIC,KAAKC,OAAOD,KAAKC,MAAMC,UAAU,IAAIC,EAAE,SAAStD,EAAED,GAAwK,OAArKA,EAAEA,EAAEwD,MAAM,KAAK,GAAG,EAAE,CAACC,OAAO,SAASzD,GAAG,OAAOA,EAAE,MAAM,CAAC0D,IAAI,WAAWC,cAAcR,GAAG,CAACM,OAAO,WAAW,OAAOhC,OAAOjB,EAAEK,EAATY,CAAY,MAAM,CAACiC,IAAI,WAAWE,cAAcT,GAAUR,EAAE,CAACkB,SAAS,0BAA0BC,MAAM,CAACC,gBAAgB,CAACC,KAAKC,OAAOC,QAAQ,SAASC,QAAQ,CAACH,KAAKvC,OAAO2C,UAAS,GAAIC,SAASC,SAASC,WAAW,CAACP,KAAK3C,MAAM6C,QAAQ,WAAW,MAAM,EAAC,GAAG,KAAMM,WAAW,CAACR,KAAKvC,QAAQgD,iBAAiB,CAACT,KAAKU,QAAQR,SAAQ,IAAKS,MAAM,CAACR,QAAQ,CAACS,QAAQ,SAAS5E,GAAG,IAAIC,GAAGA,EAAEmD,KAAKC,OAAOwB,OAAOnC,MAAMzC,EAAE,CAACK,EAAEN,EAAEoD,KAAKqB,mBAAmBK,OAAOpE,EAAE0C,KAAKmB,eAAeQ,MAAK,IAAKC,QAAQ,WAAW,IAAIhF,EAAEoD,KAAKoB,YAAYvE,EAAEmD,KAAKe,SAASnE,EAAEoD,KAAKW,iBAAiBX,KAAKC,MAAMrD,EAAEoD,KAAKW,iBAAiBX,KAAK6B,MAAM5B,MAAM/C,EAAE8C,KAAKe,SAAQ,GAAIf,KAAKiB,UAAU,MAAMjB,KAAKe,QAAQe,QAAQC,KAAK,IAAIL,OAAO1B,KAAKW,gBAAgB,gIAAgImB,QAAQC,KAAK,6CAA6CnF,IAAIY,EAAE2C,EAAEhD,EAAEO,EAAEN,EAAE4E,SAAS/E,EAAEC,EAAEE,GAAGM,EAAEsE,SAAS,SAASvE,EAAEb,GAAG,IAAIC,EAAE,EAAE2C,UAAUV,aAAQ,IAASU,UAAU,GAAGA,UAAU,GAAG,GAAG5C,EAAEqF,UAAUpF,EAAEqF,SAAS,aAAa/B,EAAEtD,EAAEuE,YAAYjE,EAAEO,EAAEd,EAAEoF,aAAa5E,EAAED,EAAEA,EAAEC,EAAEG,EAAE,SAASX,EAAEC,EAAEI,GAAGG,EAAEA,EAAER,EAAEC,IAAIwB,OAAOoB,eAAe7C,EAAEC,EAAE,CAACuC,YAAW,EAAG+C,IAAIlF,KAAKG,EAAEH,EAAE,SAASL,GAAG,oBAAoBsB,QAAQA,OAAOkE,aAAa/D,OAAOoB,eAAe7C,EAAEsB,OAAOkE,YAAY,CAAC1C,MAAM,WAAWrB,OAAOoB,eAAe7C,EAAE,aAAa,CAAC8C,OAAM,KAAMtC,EAAER,EAAE,SAASC,EAAED,GAAG,GAAG,EAAEA,IAAIC,EAAEO,EAAEP,IAAI,EAAED,EAAE,OAAOC,EAAE,GAAG,EAAED,GAAG,iBAAiBC,GAAGA,GAAGA,EAAEwF,WAAW,OAAOxF,EAAE,IAAII,EAAEoB,OAAOiE,OAAO,MAAM,GAAGlF,EAAEH,EAAEA,GAAGoB,OAAOoB,eAAexC,EAAE,UAAU,CAACmC,YAAW,EAAGM,MAAM7C,IAAI,EAAED,GAAG,iBAAiBC,EAAE,IAAI,IAAIK,KAAKL,EAAEO,EAAEG,EAAEN,EAAEC,EAAE,SAASN,GAAG,OAAOC,EAAED,IAAI2F,KAAK,KAAKrF,IAAI,OAAOD,GAAGG,EAAEF,EAAE,SAASN,GAAG,IAAIC,EAAED,GAAGA,EAAEyF,WAAW,WAAW,OAAOzF,EAAEkE,SAAS,WAAW,OAAOlE,GAAG,OAAOQ,EAAEG,EAAEV,EAAE,IAAIA,GAAGA,GAAGO,EAAEA,EAAE,SAASR,EAAEC,GAAG,OAAOwB,OAAOC,UAAUkE,eAAehE,KAAK5B,EAAEC,IAAIO,EAAE+C,EAAE,GAAG/C,EAAEA,EAAEmC,EAAE,GAAG,SAASnC,EAAER,GAAG,GAAGO,EAAEP,GAAG,OAAOO,EAAEP,GAAGG,QAAQ,IAAIF,EAAEM,EAAEP,GAAG,CAACU,EAAEV,EAAEY,GAAE,EAAGT,QAAQ,IAAI,OAAOO,EAAEV,GAAG4B,KAAK3B,EAAEE,QAAQF,EAAEA,EAAEE,QAAQK,GAAGP,EAAEW,GAAE,EAAGX,EAAEE,QAAQ,IAAIO,EAAEH,M,kCCAtvI,W,2FCAA,IAAIkD,EAAS,WAAa,IAAIoC,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,YAAYC,MAAM,CAAC,MAAQ,KAAK,CAACH,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ,gBAAgB,MAAQN,EAAIO,gBAAgB,SAAW,GAAG,YAAY,OAAO,eAAe,OAAO,cAAc,mBAAmB,MAAQ,GAAG,aAAa,CAAEC,KAAK,EAAOC,SAAS,GAAO,gBAAgB,IAAIC,GAAG,CAAC,OAASV,EAAIW,wBAAwBC,MAAM,CAAC3D,MAAO+C,EAAkB,eAAExB,SAAS,SAAUqC,GAAMb,EAAIc,eAAeD,GAAKE,WAAW,qBAAqB,GAAGZ,EAAG,aAAa,CAACE,YAAY,OAAOC,MAAM,CAAC,QAAU,CAAEnC,KAAM,cAAe6C,OAAQhB,EAAIiB,oBAAqBC,QAASlB,EAAImB,sBAAuBhB,EAAG,qBAAqB,CAACtC,IAAI,qBAAqBwC,YAAY,OAAOC,MAAM,CAAC,UAAY,CAAE3E,KAAMqE,EAAIoB,MAAMzF,KAAM0F,GAAIrB,EAAIoB,MAAMC,IAAK,aAAerB,EAAIsB,aAAa,QAAUtB,EAAIuB,0BAA0Bb,GAAG,CAAC,OAASV,EAAIwB,4BAA4BrB,EAAG,uBAAuB,CAACtC,IAAI,uBAAuByC,MAAM,CAAC,UAAY,CAAE3E,KAAMqE,EAAIoB,MAAMzF,KAAM0F,GAAIrB,EAAIoB,MAAMC,IAAK,6BAA+BrB,EAAIyB,6BAA6B,sBAAwBzB,EAAI0B,sBAAsB,QAAU1B,EAAI2B,4BAA4BjB,GAAG,CAAC,iBAAiB,SAASkB,GAAQ5B,EAAI2B,2BAA2BC,GAAQ,OAAS5B,EAAI6B,+BAA+B,MACr6CC,EAAkB,G,mLCDlB,EAAS,WAAa,IAAI9B,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACL,EAAI+B,GAAG,IAAI/B,EAAIgC,GAAGhC,EAAIiC,gBAAgB,KAAMjC,EAAI1B,QAAe,QAAE6B,EAAG,YAAY,CAACG,MAAM,CAAC,OAAS,GAAG,MAAQ,QAAQ,gBAAgB,gBAAgB,YAAY,OAAO4B,YAAYlC,EAAImC,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASxE,GACjZ,IAAI6C,EAAK7C,EAAI6C,GACTJ,EAAQzC,EAAIyC,MAChB,MAAO,CAACH,EAAG,SAASH,EAAIsC,GAAGtC,EAAIuC,GAAG,CAAClC,YAAY,OAAOC,MAAM,CAAC,MAAQ,aAAa,KAAO,OAAO,SAASA,GAAM,GAAOI,GAAI,CAACV,EAAI+B,GAAG,iCAAiC,MAAK,EAAM,YAAY,CAAC5B,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG/B,EAAIgC,GAAGhC,EAAI1B,QAAQ4C,cAAclB,EAAIwC,MAAM,GAAGrC,EAAG,IAAI,CAACE,YAAY,8BAA8B,CAACL,EAAI+B,GAAG,mCAAmC5B,EAAG,IAAI,CAACE,YAAY,8CAA8C,CAACL,EAAI+B,GAAG,IAAI/B,EAAIgC,GAAGhC,EAAIyC,eAAe,KAAKtC,EAAG,SAAS,CAACE,YAAY,oBAAoBC,MAAM,CAAC,KAAO,GAAG,MAAQN,EAAI0C,cAAc,CAAC1C,EAAI+B,GAAG,IAAI/B,EAAIgC,GAAGhC,EAAI2C,eAAe,QAAQ,MACpmB,EAAkB,GC2CDC,EAAU,8KAK7B,WACE,MAA0B,qBAAtBrF,KAAKe,QAAQH,KACR,2BACwB,gBAAtBZ,KAAKe,QAAQH,KACf,sBAEA,QAXkB,yBAe7B,WACE,GAA0B,qBAAtBZ,KAAKe,QAAQH,KACf,OAAQZ,KAAKe,QAAQ0C,QACnB,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,UACT,KAAK,EACH,MAAO,WACT,QACE,MAAO,UAEN,IAA0B,gBAAtBzD,KAAKe,QAAQH,KAYtB,MAAO,MAXP,OAAQZ,KAAKe,QAAQ0C,QACnB,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,oBACT,KAAK,EACH,MAAO,eACT,QACE,MAAO,UApCc,yBA2C7B,WACE,OAAQzD,KAAKe,QAAQ0C,QACnB,KAAK,EACH,MAAO,mBACT,KAAK,EACH,MAAO,mBACT,KAAK,EACH,MAAO,mBACT,QACE,MAAO,sBApDgB,uBAuD7B,WACE,GAAKzD,KAAKe,QACV,OAAQf,KAAKe,QAAQ0C,QACnB,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,WACT,QACE,MAAO,mBAjEgB,GAAS6B,QAC9BC,gBAAPC,kBAAO,8BADWH,EAAU,gBAD9BI,eAAU,KACUJ,WC/CoZ,I,sECQrapD,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,EAAiB,QAMhC,IAAkBA,EAAW,CAACyD,QAAA,KAAMC,WAAA,OCzBpC,IAAI,EAAS,WAAa,IAAIlD,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACL,EAAImD,GAAG,GAAGhD,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAAEL,EAAIoD,SAAWpD,EAAIqD,QAASlD,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,0BAA2B/B,EAAW,QAAEG,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,gBAAiB/B,EAAW,QAAEG,EAAG,oBAAoB,CAACE,YAAY,mBAAmBC,MAAM,CAAC,MAAQ,gCAAgC,cAAgB,GAAG,QAAU,GAAG,OAAS,OAAON,EAAIwC,MAAM,GAAGrC,EAAG,aAAa,CAACtC,IAAI,QAAQwC,YAAY,oBAAoBC,MAAM,CAAC,QAAUN,EAAIsD,aAAa,kBAAmB,EAAM,SAAWtD,EAAIuD,eAAe,MACprB,EAAkB,CAAC,WAAa,IAAIvD,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,wCAAwC,CAACF,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACL,EAAI+B,GAAG,iCAAiC5B,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgBmD,YAAY,CAAC,mBAAmB,aAAarD,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,oBAAoB5B,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgBmD,YAAY,CAAC,mBAAmB,aAAarD,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,yBAAyB5B,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgBmD,YAAY,CAAC,mBAAmB,aAAarD,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,0B,kECkF5yB0B,EAAkB,wDAAvC,iD,0BAME,EAAAC,aAAc,EANhB,EAAuC,iDASrC,WACE,IAAMC,EAAMpG,KACZ,IAAKA,KAAKmG,YAAa,MAAO,CAAElG,MAAOmG,EAAIC,cAAeC,MAAO,CAAEC,KAAM,MAAQC,OAAQ,IACzF,IAAMzF,EAAU,CACdd,MAAOmG,EAAIC,cACXC,MAAO,CAAEC,KAAM,MACfE,OAAQ,CACNC,SAAS,GAEXC,MAAO,CACLC,KAAM,GACNC,IAAK,GACLP,MAAO,CACLC,KAAM,IAERO,OAAQ,CACNC,OAAQ,YACRC,MAAO,CAAEC,MAAO,YAElBC,UAAW,CACT,CACExH,MAAO,EACPuH,MAAO,UACPE,MAAO,EACPC,OAAQ,EACRC,UAAW,SAGfC,UAAWtH,KAAKsH,WAElBC,MAAO,CACLjB,MAAO,CACLC,KAAM,MAER3F,KAAM,WACN4G,SAAU,EACVV,OAAQ,CACNW,EAAG,IAELC,gBAAiB,EACjBC,WAAY,EACZC,UAAW,UACXf,IAAKgB,KAAKC,MAAL,UAAc1B,EAAI2B,WAAW/H,KAAK+D,aAAaiE,KAAKhI,KAAK+D,aAAaiE,KAAKlJ,OAAS,GAAGmJ,cAE9FC,YAAa,CACXC,KAAM,CACJC,UAAW,EACXC,OAAQ,CACN3B,SAAS,IAGbF,OAAQ,CACN8B,cAAc,EACdC,WAAY,CAAE7B,SAAS,GACvB2B,OAAQ,CACNG,OAAQ,EACRC,UAAW,UACXC,UAAW,EACXd,UAAW,UACXlB,SAAS,EACTiC,OAAQ,CACNC,OAAQ,CACNJ,OAAQ,GAEVK,MAAO,CAAEnC,SAAS,OAK1B/C,QAAS,CACPmF,SAAS,EACTC,gBAAiB,OACjBC,YAAa,EACbC,aAAc,GACdC,QAAQ,EACRlC,MAAO,CACLC,MAAO,OACPkC,SAAU,IAEZC,UAAW,WACT,IAAMC,EAAarJ,KACnB,2HAEuDsJ,OAAWC,sBAAsBF,EAAMG,MAAMC,GAFpG,sEAGmCC,OAAOL,EAAMG,MAAM/B,EAAEkC,QAAQ,IAHhE,wCAQJnD,OAAQxG,KAAK4J,WACbC,QAAS,CAAEnD,SAAS,GACpBoD,UAAW,CAAEpD,SAAS,IAGxB,OAAO3F,IAvG4B,yBA0GrC,WACE,IAAKf,KAAKmG,YAAa,MAAO,GAC9B,IAAMC,EAAMpG,KACZ,MAAO,CACLY,KAAM,OACNmJ,SAAU,IACVC,aAAc,EACdC,YAAa,EACbC,WAAY,GAEZC,OAAQ,IACRnD,MAAO,CAAEoD,WAAY,kBACrBC,OAAQ,CACNC,UAAW,SAAUzN,GACnB,IAAMwM,EAAarJ,KACnBuK,YAAW,WAET,OADAnE,EAAIoE,MAAM,SAAU,CAAEpM,KAAMiL,EAAM9B,MAAM,GAAGX,IAAK9C,GAAIuF,EAAM9B,MAAM,GAAGV,IAAK4D,UAAWnJ,QAAQzE,EAAE6N,mBACtF,IACN,UA5H0B,sBAkIrC,WAAc,MACZ,GAAI,UAAC1K,KAAK+D,oBAAN,QAAC,EAAmBiE,KAAM,MAAO,GACrC,IAAIxB,EAAuB,GAI3B,OAFAA,EAAS,CAACxG,KAAK2K,iBAERnE,IAxI4B,2BA2IrC,WAAmB,QACjB,MAAO,CACL7H,KAAM,0BACNiC,KAAM,OACNqG,MAAO,UACPG,OAAQ,EACRwD,qBAAqB,EACrBC,cAAe,KACfxC,OAAQ,CACNyC,OAAQ,UAEVnH,QAAS,CACPoH,SAAS,EACTjC,SAAS,EACTpC,SAAS,EACTsC,YAAa,EACbE,QAAQ,EACR8B,aAAc,iCACdC,YAAa,YACbC,cAAe,EACfC,YAAa,KACbC,YAAa,aACbrC,gBAAiB,OACjB/B,MAAO,CACLmC,SAAU,OACVlC,MAAO,SAGXoE,MAAO,CACL,CACE3L,OAAQ,GACRuH,MAAO,CACLqE,eAAgB,CAAEC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC3CC,MAAO,CACL,CAAC,EAAG,WACJ,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,EAAG,cAIV,CACEjM,OAAQ,EACRuH,MAAO,CACLqE,eAAgB,CAAEC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC3CC,MAAO,CACL,CAAC,EAAG,WACJ,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,EAAG,cAIV,CACEjM,MAAO,EACPuH,MAAO,WAET,CACEvH,MAAO,GACPuH,MAAO,CACLqE,eAAgB,CAAEC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC3CC,MAAO,CACL,CAAC,EAAG,WACJ,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,EAAG,cAIV,CACE1E,MAAO,CACLqE,eAAgB,CAAEC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC3CC,MAAO,CACL,CAAC,EAAG,WACJ,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,EAAG,eAKZ3D,KAAI,oBAAEhI,KAAK+D,oBAAP,aAAE,EAAmBiE,KAAK9I,QAAO,SAAA0M,GAAI,OAAkB,OAAdA,EAAKC,MAA+B,IAAdD,EAAKC,QAAYC,KAAI,SAAAF,GAAI,MAAI,CAAC/D,KAAKC,MAAL,UAAc8D,EAAK3D,YAAc2D,EAAKC,gBAAnI,QAA6I,MAxPhH,qBA4PrC,WACE,MAAO,CACL,CACElN,KAAM,SACNsI,MAAO,UACP7I,KAAM,GACN0F,GAAI,KAEN,CACEiI,GAAI,YACJ9E,MAAO,UACP7I,KAAM,EACN0F,GAAI,IAEN,CACEnF,KAAM,WACNsI,MAAO,UACP7I,KAAM,EACN0F,IAAK,GAEP,CACEiI,GAAI,qBACJ9E,MAAO,UACP7I,MAAO,EACP0F,IAAK,IAEP,CACEnF,KAAM,kBACNsI,MAAO,UACP7I,MAAO,GACP0F,IAAK,QA1R0B,kBA+RrC,WACE,OAAkC,IAA3B9D,KAAK4J,WAAW9K,SAhSY,wBAwSrC,SAAWmB,GACTD,KAAKC,MAAQA,EACbD,KAAKC,MAAMwB,OAAOzB,KAAK+F,cAAc,GACrC/F,KAAKmG,aAAc,IA3SgB,kBA8SrC,SAAKmE,GACHtK,KAAKC,MAAMsH,MAAM,GAAGyE,KAAK1B,EAAUlM,KAAMkM,EAAUxG,IACnD9D,KAAKC,MAAMgM,WAhTwB,wBAmTrC,SAAWC,GACT,IAAMC,EAAYC,IAAOC,IAAIH,GAAWI,UACxC,OAAOF,IAAOD,GAAMI,IAAI,EAAG,YArTQ,GAASjH,QACpBC,gBAAzBC,eAAK,CAAExE,UAAU,KAAQ,mCACAuE,gBAAzBC,eAAK,CAAExE,UAAU,KAAQ,gCAClBuE,gBAAPC,kBAAO,8BAHWU,EAAkB,gBALtCT,eAAU,CACT+G,WAAY,CACVC,WAAYC,eAGKxG,WCnF8a,I,wBCQ/b,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,IAAiB,QAKhC,IAAkB,EAAW,CAACyG,kBAAA,OCxB9B,IAAI,EAAS,WAAa,IAAIlK,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,MAAM,CAACE,YAAY,wCAAwC,CAACF,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACL,EAAI+B,GAAG,2BAA2B5B,EAAG,YAAY,CAACG,MAAM,CAAC,OAAS,GAAG,MAAQ,QAAQ,gBAAgB,gBAAgB,YAAY,OAAO4B,YAAYlC,EAAImC,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASxE,GACzc,IAAI6C,EAAK7C,EAAI6C,GACTJ,EAAQzC,EAAIyC,MAChB,MAAO,CAACH,EAAG,SAASH,EAAIsC,GAAGtC,EAAIuC,GAAG,CAAClC,YAAY,OAAOC,MAAM,CAAC,MAAQ,aAAa,KAAO,OAAO,SAASA,GAAM,GAAOI,GAAI,CAACV,EAAI+B,GAAG,mCAAmC,CAAC5B,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,+KAA+K,GAAG5B,EAAG,MAAM,CAACE,YAAY,eAAe,CAACL,EAAImD,GAAG,GAAGnD,EAAImD,GAAG,GAAGhD,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,YAAY,CAACG,MAAM,CAAC,OAAS,GAAG,MAAQ,QAAQ,gBAAgB,gBAAgB,YAAY,OAAO4B,YAAYlC,EAAImC,GAAG,CAAC,CAACC,IAAI,YAAYC,GAAG,SAASxE,GACznB,IAAI6C,EAAK7C,EAAI6C,GACTJ,EAAQzC,EAAIyC,MAChB,MAAO,CAACH,EAAG,SAASH,EAAIsC,GAAGtC,EAAIuC,GAAG,CAACjC,MAAM,CAAC,MAAQ,aAAa,KAAO,OAAO,SAASA,GAAM,GAAOI,GAAI,CAACV,EAAI+B,GAAG,mCAAmC,CAAC5B,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU,CAACL,EAAI+B,GAAG,2FAA2F/B,EAAI+B,GAAG,KAAK5B,EAAG,MAAMA,EAAG,OAAO,CAACqD,YAAY,CAAC,QAAU,QAAQ,CAACxD,EAAI+B,GAAG,iGAAiG,OAAO5B,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAAEL,EAAIoD,SAAWpD,EAAIqD,QAASlD,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,0BAA2B/B,EAAW,QAAEG,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,gBAAiB/B,EAAW,QAAEG,EAAG,oBAAoB,CAACE,YAAY,mBAAmBC,MAAM,CAAC,MAAQ,gCAAgC,cAAgB,GAAG,QAAU,GAAG,OAAS,OAAON,EAAIwC,MAAM,GAAGrC,EAAG,aAAa,CAACtC,IAAI,QAAQwC,YAAY,oBAAoBC,MAAM,CAAC,QAAUN,EAAIsD,aAAa,kBAAmB,EAAM,SAAWtD,EAAIuD,eAAe,MAC5gC,EAAkB,CAAC,WAAa,IAAIvD,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgBmD,YAAY,CAAC,mBAAmB,aAAarD,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,YAAY,WAAa,IAAI/B,EAAIzC,KAAS0C,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgBmD,YAAY,CAAC,mBAAmB,aAAarD,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAI+B,GAAG,qB,qBC0GtfoI,EAAoB,wDAAzC,iD,0BAOE,EAAAzG,aAAc,EAPhB,EAAyC,iDAUvC,WACE,IAAKnG,KAAKmG,cAAgBsG,IAAY,MAAO,GAC7C,IAAMrG,EAAMpG,KACNe,EAAU,CACdd,MAAOmG,EAAIC,cACXC,MAAO,CAAEC,KAAM,IACfE,OAAQ,CACNC,SAAS,EACTmG,MAAO,QACPC,cAAe,MACfrD,EAAG,EACHhC,GAAI,GACJsF,UAAW,CACT9F,MAAO,UACP+F,OAAQ,UACR7D,SAAU,OACV8D,WAAY,MAGhBtG,MAAO,CACLC,IAAK,EACLC,IAAK,GACLP,MAAO,CACLC,KAAM,IAERO,OAAQ,CACNC,OAAQ,gBACRC,MAAO,CAAEC,MAAO,aAGpBM,MAAO,CACLjB,MAAO,CACLC,KAAM,MAER3F,KAAM,WACN4G,SAAU,EACVV,OAAQ,CACNW,EAAG,IAELC,gBAAiB,EACjBC,WAAY,EACZd,IAAKgB,KAAKC,MAAL,UAAc1B,EAAI2B,WAAW/H,KAAKmE,sBAAsB6D,KAAKhI,KAAKmE,sBAAsB6D,KAAKlJ,OAAS,GAAGoN,cAEhHhE,YAAa,CACXC,KAAM,CACJC,UAAW,EACXC,OAAQ,CACN3B,SAAS,IAGbF,OAAQ,CACN8B,cAAc,EACdC,WAAY,CAAE7B,SAAS,KAG3B/C,QAAS,CACPmF,SAAS,EACTC,gBAAiB,OACjBC,YAAa,EACbC,aAAc,GACdC,QAAQ,EACRlC,MAAO,CACLC,MAAO,OACPkC,SAAU,IAEZC,UAAW,WACT,IAAMC,EAAarJ,KACnB,uLAEqFsJ,OAAWC,sBAAsBF,EAAMG,MAAMC,GAFlI,oGAGiEC,OAAOL,EAAMG,MAAM/B,EAAEkC,QAAQ,IAH9F,yGAQJnD,OAAQxG,KAAK4J,WACbC,QAAS,CAAEnD,SAAS,GACpBoD,UAAW,CAAEpD,SAAS,IAGxB,OAAO3F,IA1F8B,yBA6FvC,WACE,IAAKf,KAAKmG,YAAa,MAAO,GAC9B,IAAMC,EAAMpG,KACZ,MAAO,CACLY,KAAM,OACNmJ,SAAU,KACVC,aAAc,EACdC,YAAa,EACbC,WAAY,GAEZC,OAAQ,IACRnD,MAAO,CAAEoD,WAAY,kBACrBC,OAAQ,CACNC,UAAW,SAAUzN,GACnB,IAAMwM,EAAarJ,KACnBuK,YAAW,WAET,OADAnE,EAAIoE,MAAM,SAAU,CAAEpM,KAAMiL,EAAM9B,MAAM,GAAGX,IAAK9C,GAAIuF,EAAM9B,MAAM,GAAGV,IAAK4D,UAAWnJ,QAAQzE,EAAE6N,mBACtF,IACN,UA/G4B,sBAqHvC,WAAc,gBACZ,GAAI,UAAC1K,KAAKkE,oCAAN,QAAC,EAAmC8D,MAAQ,UAAChI,KAAKmE,6BAAN,QAAC,EAA4B6D,KAAM,MAAO,GAE1F,GAAIhI,KAAKC,OAASD,KAAKC,MAAMuG,QAAUxG,KAAKC,MAAMuG,OAAO1H,OAEvD,MAAOkB,KAAKC,MAAMuG,OAAO1H,OACvBkB,KAAKC,MAAMuG,OAAO,GAAG0G,SAIzB,IAAMC,EAAqB,CACzBxO,KAAM,GACNiC,KAAM,UACNoH,KAAI,oBAAEhI,KAAKkE,oCAAP,aAAE,EAAmC8D,KAAK9I,QAAO,SAAA0M,GAAI,OAAmB,OAAfA,EAAKlM,OAAiC,IAAfkM,EAAKlM,SAAaoM,KAAI,SAAAF,GAAI,MAAI,CAAC/D,KAAKC,MAAL,UAAc8D,EAAKM,YAAcN,EAAKlM,iBAArJ,QAAgK,GACpK0N,gBAAgB,EAEhB1E,UAAW,EACXzB,MAAO,UACPoB,OAAQ,CACNG,OAAQ,EACRsC,OAAQ,SACR7D,MAAO,YAILoG,EAAsB,CAC1B1O,KAAM,GACNiC,KAAM,UACNoH,KAAI,oBAAEhI,KAAKmE,6BAAP,aAAE,EAA4B6D,KAAK9I,QAAO,SAAA0M,GAAI,OAAmB,OAAfA,EAAKlM,OAAiC,IAAfkM,EAAKlM,SAAaoM,KAAI,SAAAF,GAAI,MAAI,CAAC/D,KAAKC,MAAL,UAAc8D,EAAKM,YAAcN,EAAKlM,iBAA9I,QAAyJ,GAC7J0N,gBAAgB,EAChBnG,MAAO,UAEPyB,UAAW,EACXL,OAAQ,CACNG,OAAQ,EACRsC,OAAQ,SACR7D,MAAO,YAILT,EAAS,CAAC2G,EAAoBE,GAEpC,OAAO7G,IA/J8B,kBAkKvC,WACE,OAAkC,IAA3BxG,KAAK4J,WAAW9K,SAnKc,wBAuKvC,SAAWmB,GACTD,KAAKC,MAAQA,EACbD,KAAKC,MAAMwB,OAAOzB,KAAK+F,cAAc,GACrC/F,KAAKmG,aAAc,IA1KkB,kBA6KvC,SAAKmE,GACHtK,KAAKC,MAAMsH,MAAM,GAAGyE,KAAK1B,EAAUlM,KAAMkM,EAAUxG,IACnD9D,KAAKC,MAAMgM,WA/K0B,wBAkLvC,SAAWC,GACT,IAAMC,EAAYC,IAAOC,IAAIH,GAAWI,UACxC,OAAOF,IAAOD,GAAMI,IAAI,EAAG,YApLU,GAASjH,QACtBC,gBAAzBC,eAAK,CAAExE,UAAU,KAAQ,mDACAuE,gBAAzBC,eAAK,CAAExE,UAAU,KAAQ,4CACAuE,gBAAzBC,eAAK,CAAExE,UAAU,KAAQ,gCAClBuE,gBAAPC,kBAAO,8BAJWoH,EAAoB,gBALxCnH,eAAU,CACT+G,WAAY,CACVC,WAAYC,eAGKE,WCjHgb,ICQjc,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,IAAiB,QAOhC,IAAkB,EAAW,CAAClH,QAAA,KAAMiH,kBAAA,KAAgBhH,WAAA,O,oDC8C9C2H,EAAcC,eAAUC,OAAmBC,QAC3CC,EAAUH,eAAUI,OAAeF,QACnCG,EAAWL,eAAUM,OAAgBJ,QAStBK,EAAQ,wDAA7B,iD,0BAIE,EAAAC,eAAgB,EAChB,EAAAxK,eAAwC,KACxC,EAAAM,MAAmD,CACjDmK,IAAK,EACL5P,KAAMgO,IAAOC,MAAM4B,SAAS,EAAG,QAAQlH,OAAO,cAC9CjD,GAAIsI,IAAOC,MAAMtF,OAAO,eAT5B,EAA6B,sHAa3B,2GACE/G,KAAK6D,MAAMmK,KAAM,UAAAhO,KAAKuD,sBAAL,eAAqB2K,YAAa,EADrD,SAEQlO,KAAKmO,gBAFb,uBAGQnO,KAAKoO,gCAHb,uBAIQpO,KAAKqO,yBAJb,gDAb2B,oFAqB3B,WAAmB,WACjB,OAAOX,EAAQ1K,gBAAgB9D,QAAO,SAAAoP,GAAM,OAAI,EAAKC,sBAAsBD,QAtBlD,wBAyB3B,WACE,OAAOhB,EAAYvJ,eA1BM,wCA6B3B,WACE,OAAOuJ,EAAYpJ,+BA9BM,iCAiC3B,WACE,OAAOoJ,EAAYnJ,wBAlCM,oCAqC3B,WACE,OAAOmJ,EAAYtJ,2BAtCM,gDAyC3B,WACE,OAAOsJ,EAAYkB,uCA1CM,yCA6C3B,WACE,OAAOlB,EAAYmB,gCA9CM,sCAiD3B,WACE,OAAOnN,QAAQgM,EAAYmB,+BAAiCnB,EAAYkB,wCAlD/C,+BAqD3B,WAAuB,UACrB,GAAI,UAACxO,KAAK+D,oBAAN,QAAC,EAAmBiE,MAA2C,KAAnC,UAAAhI,KAAK+D,oBAAL,eAAmBiE,KAAKlJ,QAAc,OAAO,EAC7E,IAAM4P,EAAc,UAAG1O,KAAK+D,aAAaiE,KAAKhI,KAAK+D,aAAaiE,KAAKlJ,OAAS,GAAG+M,YAA7D,QAAqE,EACzF,OAAI6C,IAAmB,GAAKA,GAAkB,EAAU,EACpDA,EAAiB,IAAMA,GAAkB,GAAW,EACnDA,EAAiB,GAAKA,GAAkB,IAAQA,GAAkB,GAAKA,IAAmB,GAAY,EAEpG,IA5DkB,6BA+D3B,WACE,MAAO,iOAhEkB,oFAoE3B,uHAEUpB,EAAYa,cAAcnO,KAAK6D,OAFzC,yDAII+J,EAASe,aAAa,CAAEpI,KAAM,mCAJlC,wDApE2B,6JA4E3B,uHAEU+G,EAAYc,8BAA8B,CAAEF,UAAWlO,KAAK6D,MAAMmK,MAF5E,yDAIIJ,EAASe,aAAa,CAAEpI,KAAM,qDAJlC,wDA5E2B,sJAoF3B,uHAEU+G,EAAYe,uBAAuB,CAAEH,UAAWlO,KAAK6D,MAAMmK,MAFrE,yDAIIJ,EAASe,aAAa,CAAEpI,KAAM,6CAJlC,wDApF2B,4FA4F3B,SAAsB+H,GACpB,OAAOA,EAAOM,SAASC,MAAK,SAAAC,GAAO,MAAqB,gBAAjBA,EAAQnQ,UA7FtB,sCAgG3B,SAAyB2L,GACvBtK,KAAK4M,qBAAqBZ,KAAK1B,KAjGN,wCAoG3B,SAA2BA,GACzBtK,KAAKkG,mBAAmB8F,KAAK1B,KArGJ,8EAyG3B,oHACQoD,EAAQqB,yBADhB,cAEE/O,KAAKuD,eAAiBvD,KAAKgD,gBAAgB,GAC3ChD,KAAK6D,MAAMmK,KAAM,UAAAhO,KAAKuD,sBAAL,eAAqB2K,YAAa,EAHrD,SAIQc,QAAQC,IAAI,CAACjP,KAAKmO,gBAAiBnO,KAAKoO,gCAAiCpO,KAAKqO,2BAJtF,gDAzG2B,8DAAS/I,QACPC,gBAA5B2J,eAAI,yBAAwB,2CACF3J,gBAA1B2J,eAAI,uBAAsB,yCAFRpB,EAAQ,gBAP5BrI,eAAU,CACT+G,WAAY,CACVnH,aACAa,qBACA0G,2BAGiBkB,YCnFgY,M,2ICmB/YqB,GAAmB,mCACpBC,SADiB,IAEpBlM,SAAS,EACTmM,gBAAgB,EAChBC,YAAY,IAICC,WAAQC,OAAO,CAC5B7Q,KAAM,iBAEN+B,MAAO,CACL+O,cAAe,CACb7O,KAAMU,QACNR,SAAS,GAEX4O,gBAAiB,CACf9O,KAAMU,QACNR,SAAS,GAEX5B,OAAQ,CACN0B,KAAMM,SACNJ,QAAS,SAAC8K,EAAW+D,EAAmBC,GACtC,OAAOA,EAASC,oBAAoBC,QAAQH,EAAUE,sBAAwB,IAGlFE,WAAYzO,QACZ0O,UAAW,CACTpP,KAAM2O,QAAQxO,QAAQL,MAAMsP,UAAUpP,KACtCE,QAAS,kBAAMqO,KAEjBc,SAAU3O,QACV4O,YAAa,CACXtP,KAAMC,SAIVmH,KA7B4B,WA8B1B,MAAO,CACLmI,WAAYnQ,KAAKkQ,cAIrBE,SAAU,CACRC,QADQ,WAEN,0CACKd,QAAQxO,QAAQqP,SAASC,QAAQ7R,KAAKwB,OAD3C,IAEE,kBAAkB,EAClB,qCAAsCA,KAAKsQ,eAAiB,KAGhEC,cARQ,WASN,OAAOvQ,KAAKwQ,eAEdC,eAXQ,WAWM,WACZ,OAAOzQ,KAAK0Q,cAAc5E,KAAI,SAAAF,GAAI,OAAI,EAAK+E,SAAS/E,OAEtDgF,kBAdQ,WAcS,WACf,OAAO5Q,KAAK6Q,aACR7Q,KAAKwQ,cAAc3B,MAAK,SAAAjD,GAAI,OAAK,EAAKkF,QAAQlF,MAC9C5L,KAAKwQ,cAAc1R,OAAS,GAElCiS,aAnBQ,WAoBN,OAAyB,MAArB/Q,KAAKgR,aAA6B,EAE/BnQ,OAAOb,KAAKiR,QAAQjR,KAAKgR,eAAelS,QAEjD0R,cAxBQ,WAwBK,WACX,OAAKxQ,KAAKkR,aAAelR,KAAKiQ,UAAmC,MAAvBjQ,KAAKmR,eAA+BnR,KAAKoR,SAE5EpR,KAAKoR,SAASlS,QAAO,SAAA0M,GAC1B,IAAMlM,EAAQ2R,gBAAoBzF,EAAM,EAAKgE,UACvCrJ,EAAgB,MAAT7G,EAAgBmB,OAAOnB,GAAS,GAE7C,OAAO,EAAKR,OAAO0M,EAAM/K,OAAO,EAAKsQ,gBAAiB5K,OAG1D4K,eAAgB,CACdhP,IADc,WAEZ,OAAOnC,KAAKmQ,YAEdmB,IAJc,SAITC,GAGCvR,KAAKmQ,aAAeoB,IACtBvR,KAAKmQ,WAAaoB,EAClBvR,KAAKwK,MAAM,sBAAuB+G,MAIxCC,kBA/CQ,WAgDN,OAAO,GAETC,QAlDQ,WAmDN,OAAOzR,KAAK0R,eAAiB1R,KAAK0Q,cAAc5R,OAAS,GAE3DoS,YArDQ,WAsDN,OACElR,KAAK2R,UACL3R,KAAK0R,eAEL1R,KAAK0R,eACL1R,KAAKmR,iBAAmBnR,KAAKiR,QAAQjR,KAAKgR,eAG9CY,YA9DQ,WA+DN,QAAK5R,KAAK6R,YAEH7R,KAAK4Q,oBAAsB5Q,KAAK+P,aAEzC+B,YAnEQ,WAoEN,IAAMpR,EAAQ6O,QAAQxO,QAAQqP,SAAS0B,YAAYtT,KAAKwB,MAExD,OADCU,EAAcqR,aAAe,kCAA4BrR,EAAcqR,cAAgB,IAAKC,OAC7F,mCACK7C,IACAzO,IAGPgR,cA3EQ,WA4EN,OAA8B,MAAvB1R,KAAKmR,gBACc,KAAxBnR,KAAKmR,gBAETH,aA/EQ,WA+EI,WACV,OAAIhR,KAAK2R,SAAiB,KAEnB3R,KAAK0Q,cAAcuB,MAAK,SAAA3U,GAC7B,OAAO,EAAK4U,gBAAgB,EAAKvB,SAASrT,GAAI,EAAKqT,SAAS,EAAKwB,oBAGrEC,SAtFQ,WAuFN,IAAMpK,EAAOuH,QAAQxO,QAAQqP,SAASgC,SAAS5T,KAAKwB,MAapD,OAXAgI,EAAKtH,MAAL,mCACKsH,EAAKtH,OADV,IAEE2R,MAAOrS,KAAKsS,iBACZrC,SACEjQ,KAAKiQ,WACJjQ,KAAKkR,cACLlR,KAAKwQ,cAAc1R,OAEtBoR,YAAalQ,KAAKmR,iBAGbnJ,IAIXzG,MAAO,CACLiP,cAAe,yBACf2B,cAAe,YACfN,UAHK,SAGMN,GACLA,GACFgB,SAASC,iBAAiB,OAAQxS,KAAKyS,QACvCzS,KAAK6B,MAAM6Q,OAAS1S,KAAK6B,MAAM6Q,MAAM9J,WAErC2J,SAASI,oBAAoB,OAAQ3S,KAAKyS,QAC1CzS,KAAK4S,OACL5S,KAAK6S,eAGTC,aAbK,SAaSvB,IACRA,GAAQvR,KAAK+S,UAEjB/S,KAAKmQ,WAAa,OAEpBkC,MAlBK,SAkBEd,EAAKyB,GAONA,GAAUA,EAAOlU,SACnBkB,KAAK+P,aACL/P,KAAK6R,WACJ7R,KAAK8S,eACNvB,EAAIzS,QACJkB,KAAKiT,gBAET/C,YAhCK,SAgCQqB,GACXvR,KAAKmQ,WAAaoB,GAEpBJ,eAAgB,0BAChBvB,SAAU,cAGZsD,QAlL4B,WAmL1BlT,KAAKmT,aAGPC,UAtL4B,WAuL1Bb,SAASI,oBAAoB,OAAQ3S,KAAKyS,SAG5CY,QAAS,CACPC,uBADO,SACiB/B,EAAcyB,GAAe,WAGnD,GAAIzB,IAAQyB,EAAZ,CAEA,IAAKhT,KAAK0P,gBAAiB,CACzB,IAAM6D,EAAkBP,EAAOhT,KAAK6B,MAAM2R,KAAKC,WAE3CF,EACFvT,KAAK0T,aAAanC,EAAIoC,WAAU,SAAArW,GAAC,OAAIA,IAAMiW,MAE3CvT,KAAK0T,cAAc,GAErB1T,KAAKwK,MAAM,oBAAqBxK,KAAK6B,MAAM2R,KAAKC,WAGlDzT,KAAK4T,WAAU,WAEV,EAAKzC,iBACU,IAAfI,EAAIzS,QACF,EAAK4Q,mBAGV,EAAK7N,MAAM2R,KAAKK,WAEZ,EAAKnE,iBAAmB6B,EAAIzS,SAC9B,EAAK4U,aAAa,GAClB,EAAKlJ,MAAM,oBAAqB,EAAK3I,MAAM2R,KAAKC,kBAItDK,wBAhCO,WAiCL9T,KAAK+T,wBAEPA,qBAnCO,WAqCL/T,KAAK8S,cAAgB9S,KAAK6B,MAAM2R,MAAQxT,KAAK6B,MAAM2R,KAAKQ,oBAE1DC,oBAvCO,SAuCcC,GAGflU,KAAK0R,gBAEL1R,KAAK2R,UAAYuC,IAAYC,QAASC,MACZ,IAAxBpU,KAAKsQ,cACPtQ,KAAKsQ,cAAgBtQ,KAAK0Q,cAAc5R,OAAS,EAEjDkB,KAAKsQ,gBAEEtQ,KAAK2R,UAAYuC,IAAYC,QAASE,MAC3CrU,KAAKsQ,eAAiBtQ,KAAK0Q,cAAc5R,OAAS,EACpDkB,KAAKsQ,eAAiB,EAEtBtQ,KAAKsQ,gBAEE4D,IAAYC,QAASG,WAAaJ,IAAYC,QAASI,QAChEvU,KAAKwU,sBAGTA,kBA5DO,WA6DL,IAAMC,EAAWzU,KAAKsQ,cAChBoE,EAAU1U,KAAK0Q,cAAc+D,GAGnC,GACGzU,KAAK2U,gBACN3U,KAAK4U,YAAYF,GAFnB,CAKA,IAAMG,EAAY7U,KAAK0Q,cAAc5R,OAAS,EAI9C,IAC0B,IAAxBkB,KAAKsQ,eACS,IAAduE,EAFF,CASA,IAAM/V,EAASkB,KAAK0Q,cAAc5R,OAC5BgW,EAAYL,IAAa3V,EAAS,EACpC2V,EACAA,EAAW,EACTM,EAAW/U,KAAK0Q,cAAcoE,GAE/BC,EAGH/U,KAAKgV,WAAWN,GAFhB1U,KAAKiV,SAASjV,KAAK2R,SAAW,GAAK,MAKrC3R,KAAKsQ,cAAgBwE,OAjBnB9U,KAAKsQ,cAAgBuE,IAmBzBK,kBAjGO,WAkGLlV,KAAKmR,eAAiB,KAEtB5B,QAAQxO,QAAQsS,QAAQ6B,kBAAkB1W,KAAKwB,OAEjDmV,SAtGO,WAuGL,IAAMzC,EAAQ0C,QAAWrU,QAAQsS,QAAQ8B,SAAS3W,KAAKwB,MAUvD,OARA0S,EAAM1K,KAAOqN,gBAAU3C,EAAM1K,KAAO,CAClCjF,MAAO,CACL,wBAAyBuS,gBAAqBtV,KAAK6B,MAAM2R,KAAM,iBAC/D+B,aAAcD,gBAAqB5C,EAAM1K,KAAO,qBAAsB,QAExEwN,SAAU,CAAE9V,MAAOM,KAAKmR,kBAGnBuB,GAET+C,aAnHO,WAoHL,IAAMC,EAAOnG,QAAQxO,QAAQsS,QAAQoC,aAAajX,KAAKwB,MAIvD,OAFA0V,EAAK1N,KAAMjF,MAAO4S,KAAO,WAElBD,GAETE,cA1HO,WA2HL,OAAO5V,KAAK+S,SAAW/S,KAAK2R,SACxBpC,QAAQxO,QAAQsS,QAAQuC,cAAcpX,KAAKwB,MAC3C,IAEN6V,QA/HO,SA+HEhZ,GACFmD,KAAK2U,gBAEV3U,KAAKsQ,eAAiB,EACjBtQ,KAAKsQ,eAAiB,EACvBtQ,KAAK8V,UAEJ9V,KAAK+V,cAAclZ,EAAEmZ,SAAShW,KAAKiT,iBAE1CgD,QAxIO,SAwIEpZ,GACP,KACEmD,KAAKsQ,eAAiB,IACrBzT,EAAEmZ,OAFL,CAKA,IAAMA,EAASnZ,EAAEmZ,OACXtW,EAAQsW,EAAOtW,MAGjBsW,EAAOtW,OAAOM,KAAKiT,eAElBjT,KAAK2R,UAAsB,KAAVjS,GAAcM,KAAKwU,oBAEzCxU,KAAKmR,eAAiBzR,EACtBM,KAAKkW,SAAWF,EAAOG,UAAYH,EAAOG,SAASD,WAErDE,UAzJO,SAyJIvZ,GACT,IAAMqX,EAAUrX,EAAEqX,SAGhBrX,EAAEwZ,SACD,CAAClC,QAASmC,KAAMnC,QAASoC,KAAKC,SAAStC,IAExC3E,QAAQxO,QAAQsS,QAAQ+C,UAAU5X,KAAKwB,KAAMnD,GAO/CmD,KAAKiU,oBAAoBC,IAE3BuC,YAzKO,SAyKM5Z,KACb6Z,UA1KO,SA0KI7Z,GACT0S,QAAQxO,QAAQsS,QAAQqD,UAAUlY,KAAKwB,KAAMnD,GAC7CmD,KAAK6S,cAEP8D,SA9KO,SA8KG9Z,GAERA,EAAE+Z,iBAKF5W,KAAKiT,gBAEP+B,WAvLO,SAuLKpJ,GACV2D,QAAQxO,QAAQsS,QAAQ2B,WAAWxW,KAAKwB,KAAM4L,GAC9C5L,KAAKmT,aAEP0D,iBA3LO,WA4LLtH,QAAQxO,QAAQsS,QAAQwD,iBAAiBrY,KAAKwB,MAIzCA,KAAK6R,WAAW7R,KAAKmT,aAE5BA,UAlMO,WAkME,WAGPnT,KAAK4T,WAAU,WAEV,EAAKjC,UACL,EAAKR,gBACL,EAAK2B,eAEN,EAAK3B,gBACF,EAAKT,cAAc5R,QACpB,EAAK6S,UACL,EAAKoB,QAEH,KACA,EAAK9B,QAAQ,EAAKD,mBAI5B6B,WArNO,YAuNF7S,KAAK0R,eACL1R,KAAKmS,iBAILnS,KAAK2R,UACL3R,KAAKkS,gBACJlS,KAAKmR,eACLnR,KAAK2Q,SAAS3Q,KAAKmS,iBAGrBnS,KAAKmT,cAGTrC,QArOO,SAqOElF,GACP,OAAO5L,KAAKyQ,eAAeX,QAAQ9P,KAAK2Q,SAAS/E,KAAU,GAE7D6G,OAxOO,SAwOCqE,GAAqB,QAC3B,IAA4B,IAAxB9W,KAAKsQ,cAAT,CAEA,IAAMyG,EAAc/W,KAAK0Q,cAAc1Q,KAAKsQ,eACtC0G,EAAkBhX,KAAKiR,QAAQ8F,GACrC,SAAAD,EAAMG,gBAAN,EAAqBC,QAAQ,aAAcF,GAC3C,SAAAF,EAAMG,gBAAN,EAAqBC,QAAQ,2CAA4CF,GACzEF,EAAMF,sB,aC5bR,GAAY,eACd,GACAvW,EACAkE,GACA,EACA,KACA,WACA,MAIa,gBAAiB,QAMhC,IAAkB,GAAW,CAAC4S,cAAA,GAAcC,cAAA,Q,kCCzB5C,W,oCCAA,W,qCCAA,W","file":"js/chunk-c4a6e4fa.669c0dd2.js","sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"highcharts\"),require(\"vue\")):\"function\"==typeof define&&define.amd?define([\"highcharts\",\"vue\"],e):\"object\"==typeof exports?exports.HighchartsVue=e(require(\"highcharts\"),require(\"vue\")):t.HighchartsVue=e(t.Highcharts,t.Vue)}(window,function(r,n){return c={},o.m=i=[function(t,e){t.exports=r},function(t,e){t.exports=n},function(t,e,r){\"use strict\";r.r(e),r.d(e,\"Chart\",function(){return l}),r.d(e,\"default\",function(){return h});var e=r(0),c=r.n(e);function n(t,e){return function r(n,o,i){function t(t,e){!c.a.isObject(t,!i)||c.a.isClass(t)||c.a.isDOMElement(t)?n[e]=o[e]:n[e]=r(n[e]||c.a.isArray(t)?[]:{},t,i)}return c.a.isArray(o)?o.forEach(t):c.a.objectEach(o,t),n}({},t,e)}var o=r(1);function i(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||function(t,e){if(t){if(\"string\"==typeof t)return a(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return\"Map\"===(r=\"Object\"===r&&t.constructor?t.constructor.name:r)||\"Set\"===r?Array.from(t):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r',props:{constructorType:{type:String,default:\"chart\"},options:{type:Object,required:!0},callback:Function,updateArgs:{type:Array,default:function(){return[!0,!0]}},highcharts:{type:Object},deepCopyOnUpdate:{type:Boolean,default:!0}},watch:{options:{handler:function(t){var e;(e=this.chart).update.apply(e,[n(t,this.deepCopyOnUpdate)].concat(i(this.updateArgs)))},deep:!0}},mounted:function(){var t=this.highcharts||e;this.options&&t[this.constructorType]?this.chart=t[this.constructorType](this.$refs.chart,n(this.options,!0),this.callback||null):this.options?console.warn(\"'\".concat(this.constructorType,\"' constructor-type is incorrect. Sometimes this error is caused by the fact, that the corresponding module wasn't imported.\")):console.warn('The \"options\" parameter was not passed.')}},t)},l=p(c.a,o.version||r.n(o).a.version);function h(t){var e=1\n ${dateHelper.getFormatedDateString($this.point.x)}
\n ${Number($this.point.y.toFixed(2))}%\n \n `;\n },\n },\n series: this.seriesData,\n credits: { enabled: false },\n exporting: { enabled: false },\n };\n\n return options;\n }\n\n get chartSettings(): any {\n if (!this.chartLoaded) return {};\n const ctx = this;\n return {\n type: \"line\",\n zoomType: \"x\",\n spacingRight: 0,\n spacingLeft: 0,\n spacingTop: 28,\n // animation: false,\n height: 315,\n style: { fontFamily: \"Helvetica Neue\" },\n events: {\n selection: function (e: any) {\n const $this: any = this;\n setTimeout(() => {\n ctx.$emit(\"onZoom\", { from: $this.xAxis[0].min, to: $this.xAxis[0].max, resetZoom: Boolean(e.resetSelection) });\n return false;\n }, 100);\n },\n },\n };\n }\n\n get seriesData(): IDataSerie[] {\n if (!this.speedLogData?.data) return [] as IDataSerie[];\n let series: IDataSerie[] = [];\n\n series = [this.speedLossPoints];\n\n return series;\n }\n\n get speedLossPoints(): IDataSerie {\n return {\n name: \"Deviation from baseline\",\n type: \"line\",\n color: \"#17b26a\",\n zIndex: 1,\n enableMouseTracking: true,\n cropThreshold: 9999,\n marker: {\n symbol: \"circle\",\n },\n tooltip: {\n outside: true,\n useHTML: true,\n enabled: true,\n borderWidth: 0,\n shadow: false,\n headerFormat: \"{point.key}
\",\n pointFormat: \"{point.y}\",\n valueDecimals: 1,\n valueSuffix: \" %\",\n xDateFormat: \"%d. %b, %Y\",\n backgroundColor: \"#000\",\n style: {\n fontSize: \"12px\",\n color: \"#fff\",\n },\n },\n zones: [\n {\n value: -10,\n color: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, \"#f6ab5e\"],\n [0.1, \"#f3a25a\"],\n [0.2, \"#f09455\"],\n [0.3, \"#ee8e53\"],\n [0.4, \"#ec8550\"],\n [0.5, \"#ea814e\"],\n [0.6, \"#e7774a\"],\n [0.7, \"#e67148\"],\n [0.8, \"#e46b46\"],\n [0.9, \"#e26343\"],\n [1, \"#dc503c\"],\n ],\n },\n },\n {\n value: -5,\n color: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, \"#5db96a\"],\n [0.1, \"#76bb6a\"],\n [0.2, \"#9fc069\"],\n [0.3, \"#aec169\"],\n [0.4, \"#acc16a\"],\n [0.5, \"#c5c36a\"],\n [0.6, \"#d0c66a\"],\n [0.7, \"#e4c86a\"],\n [0.8, \"#f7ca6a\"],\n [0.9, \"#fec668\"],\n [1, \"#f6ab5e\"],\n ],\n },\n },\n {\n value: 5,\n color: \"#17b26a\",\n },\n {\n value: 10,\n color: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, \"#f6ab5e\"],\n [0.1, \"#fec668\"],\n [0.2, \"#f7ca6a\"],\n [0.3, \"#e4c86a\"],\n [0.4, \"#d0c66a\"],\n [0.5, \"#c5c36a\"],\n [0.6, \"#acc16a\"],\n [0.7, \"#aec169\"],\n [0.8, \"#9fc069\"],\n [0.9, \"#76bb6a\"],\n [1, \"#5db96a\"],\n ],\n },\n },\n {\n color: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, \"#dc503c\"],\n [0.1, \"#e26343\"],\n [0.2, \"#e46b46\"],\n [0.3, \"#e67148\"],\n [0.4, \"#e7774a\"],\n [0.5, \"#ea814e\"],\n [0.6, \"#ec8550\"],\n [0.7, \"#ee8e53\"],\n [0.8, \"#f09455\"],\n [0.9, \"#f3a25a\"],\n [1, \"#f6ab5e\"],\n ],\n },\n },\n ],\n data: this.speedLogData?.data.filter(item => item.bias !== null && item.bias !== 0).map(item => [Date.parse(`${item.timeStamp}`), item.bias]) ?? [],\n };\n }\n\n get plotBands(): any {\n return [\n {\n name: \"pb-red\",\n color: \"#FDECEC\",\n from: 10,\n to: 100,\n },\n {\n id: \"pb-orange\",\n color: \"#FFFAEB\",\n from: 5,\n to: 10,\n },\n {\n name: \"pb-green\",\n color: \"#ECFDF3\",\n from: 5,\n to: -5,\n },\n {\n id: \"pb-orange-negative\",\n color: \"#FFFAEB\",\n from: -5,\n to: -10,\n },\n {\n name: \"pb-red-negative\",\n color: \"#FDECEC\",\n from: -10,\n to: -100,\n },\n ];\n }\n\n get noData() {\n return this.seriesData.length === 0;\n }\n\n // get xAxisMinDate() {\n\n // }\n\n // @Methods\n chartReady(chart: any): void {\n this.chart = chart;\n this.chart.update(this.ChartOptions, true);\n this.chartLoaded = true;\n }\n\n zoom(selection: { from: string; to: string; resetZoom: boolean }): void {\n this.chart.xAxis[0].zoom(selection.from, selection.to);\n this.chart.redraw();\n }\n\n addTimeGap(timestamp: string): any {\n const date: any = moment.utc(timestamp).valueOf();\n return moment(date).add(2, \"days\");\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorQualityChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorQualityChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SensorQualityChart.vue?vue&type=template&id=043458a8&scoped=true&\"\nimport script from \"./SensorQualityChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SensorQualityChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SensorQualityChart.vue?vue&type=style&index=0&id=043458a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"043458a8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chart speed-comparison-chart\"},[_c('div',{staticClass:\"topline d-flex justify-space-between\"},[_c('div',{staticClass:\"chart-title d-flex align-center\"},[_vm._v(\" Speed Data Comparison \"),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"black\",\"content-class\":\"with-triangle\",\"max-width\":\"234\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"ml-1\",attrs:{\"color\":\"darkGrey75\",\"size\":\"16\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-outline\")])]}}])},[_c('span',{staticClass:\"tooltip-text\"},[_vm._v(\"Compares speed log data with derived speed through water to assess raw data quality and identify gaps between. Each daily point is a rolling 7 day historical average.\")])])],1),_c('div',{staticClass:\"legend-list\"},[_vm._m(0),_vm._m(1),_c('div',{staticClass:\"legend\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"black\",\"content-class\":\"with-triangle\",\"max-width\":\"234\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"darkGrey75\",\"size\":\"16\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-outline\")])]}}])},[_c('span',{staticClass:\"tooltip-text\"},[_c('span',{staticClass:\"d-flex\"},[_vm._v(\"Derived STW is estimated vessel speed relative to water, based on SOG, COG, and wind.\")]),_vm._v(\" \"),_c('br'),_c('span',{staticStyle:{\"opacity\":\"0.8\"}},[_vm._v(\"Derived STW = SOG * cos (COG-Heading) - CurrentSpeed * cos(CurrentDirection - Heading)\")])])])],1)])]),_c('div',{staticClass:\"graph-container\"},[(_vm.noData && !_vm.loading)?_c('div',{staticClass:\"no-data-slot\"},[_vm._v(\" No data to display \")]):(_vm.loading)?_c('div',{staticClass:\"loading-slot\"},[_vm._v(\" Loading... \"),(_vm.loading)?_c('v-progress-linear',{staticClass:\"loading-progress\",attrs:{\"color\":\"lightGrey100 primaryLighten80\",\"indeterminate\":\"\",\"rounded\":\"\",\"height\":\"6\"}}):_vm._e()],1):_c('Highcharts',{ref:\"chart\",staticClass:\"sensor-bias-chart\",attrs:{\"options\":_vm.ChartOptions,\"deepCopyOnUpdate\":false,\"callback\":_vm.chartReady}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"legend\"},[_c('i',{staticClass:\"legend__point\",staticStyle:{\"background-color\":\"#2970FF\"}}),_c('span',{staticClass:\"legend__text\"},[_vm._v(\"STW\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"legend\"},[_c('i',{staticClass:\"legend__point\",staticStyle:{\"background-color\":\"#FDB022\"}}),_c('span',{staticClass:\"legend__text\"},[_vm._v(\"Derived STW\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport store from \"@/store\";\n// utilities\nimport { Chart } from \"highcharts-vue\";\nimport Highcharts from \"highcharts\";\nimport moment from \"moment\";\nimport dateHelper from \"@/Scripts/utilities/date-helper\";\n\n// types\nimport { IDataSerie } from \"@/types/highcharts/dataSerie\";\nimport { SpeedThroughWater } from \"@/types/dataQuality/SpeedThroughWater\";\n\n@Component({\n components: {\n Highcharts: Chart,\n },\n})\nexport default class SpeedComparisonChart extends Vue {\n @Prop({ required: true }) derivedSpeedThroughWaterData!: SpeedThroughWater;\n @Prop({ required: true }) speedThroughWaterData!: SpeedThroughWater;\n @Prop({ required: true }) dateRange!: { from: string; to: string };\n @Prop() loading!: boolean;\n\n chart!: any;\n chartLoaded = false;\n\n // @Getters\n get ChartOptions(): any {\n if (!this.chartLoaded || !Highcharts) return {};\n const ctx = this;\n const options = {\n chart: ctx.chartSettings,\n title: { text: \"\" },\n legend: {\n enabled: false,\n align: \"right\",\n verticalAlign: \"top\",\n x: 0,\n y: -30,\n itemStyle: {\n color: \"#666666\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n fontWeight: 400,\n },\n },\n yAxis: {\n min: 0,\n max: 25,\n title: {\n text: \"\",\n },\n labels: {\n format: \"{value} knots\",\n style: { color: \"#331714\" },\n },\n },\n xAxis: {\n title: {\n text: null,\n },\n type: \"datetime\",\n minRange: 1,\n labels: {\n y: 35,\n },\n minorTickLength: 0,\n tickLength: 4,\n max: Date.parse(`${ctx.addTimeGap(this.speedThroughWaterData.data[this.speedThroughWaterData.data.length - 1].timestamp)}`),\n },\n plotOptions: {\n area: {\n threshold: 0,\n marker: {\n enabled: false,\n },\n },\n series: {\n showInLegend: true,\n dataLabels: { enabled: false },\n },\n },\n tooltip: {\n useHTML: true,\n backgroundColor: \"#000\",\n borderWidth: 0,\n borderRadius: 13,\n shadow: false,\n style: {\n color: \"#fff\",\n fontSize: 14,\n },\n formatter: function () {\n const $this: any = this;\n return `\n
\n ${dateHelper.getFormatedDateString($this.point.x)}
\n ${Number($this.point.y.toFixed(2))} knots\n
\n `;\n },\n },\n series: this.seriesData,\n credits: { enabled: false },\n exporting: { enabled: false },\n };\n\n return options;\n }\n\n get chartSettings(): any {\n if (!this.chartLoaded) return {};\n const ctx = this;\n return {\n type: \"line\",\n zoomType: \"xy\",\n spacingRight: 0,\n spacingLeft: 0,\n spacingTop: 28,\n // animation: false,\n height: 315,\n style: { fontFamily: \"Helvetica Neue\" },\n events: {\n selection: function (e: any) {\n const $this: any = this;\n setTimeout(() => {\n ctx.$emit(\"onZoom\", { from: $this.xAxis[0].min, to: $this.xAxis[0].max, resetZoom: Boolean(e.resetSelection) });\n return false;\n }, 100);\n },\n },\n };\n }\n\n get seriesData(): any {\n if (!this.derivedSpeedThroughWaterData?.data || !this.speedThroughWaterData?.data) return [] as IDataSerie[];\n // bugfix < >\n if (this.chart && this.chart.series && this.chart.series.length) {\n /* IMPORTANT: There is also a bug in Highcharts when it has more than 2 series and they are updated dynamically it \"loses\" correct indexes of the series and displays data in a weird manner so the solution is to clear the series array before it will be updated */\n while (this.chart.series.length) {\n this.chart.series[0].remove();\n }\n }\n // bugfix \n const scatterPointsSerie = {\n name: \"\",\n type: \"scatter\",\n data: this.derivedSpeedThroughWaterData?.data.filter(item => item.value !== null && item.value !== 0).map(item => [Date.parse(`${item.timestamp}`), item.value]) ?? [],\n stickyTracking: false,\n /* IMPORTANT: https://www.highcharts.com/forum/viewtopic.php?f=9&t=44589 Turns out scatter points have a bug. When they get updated they can be displayed as line-through-dots with property lineWidth: 2 so here we need to set the lineWidth: 0, otherwise it should be set always through chart.series.forEach loop in serie.options.lineWidth*/\n lineWidth: 0,\n color: \"#2970FF\",\n marker: {\n radius: 3,\n symbol: \"circle\",\n color: \"#2970FF\",\n },\n };\n\n const scatterPointsSerie2 = {\n name: \"\",\n type: \"scatter\",\n data: this.speedThroughWaterData?.data.filter(item => item.value !== null && item.value !== 0).map(item => [Date.parse(`${item.timestamp}`), item.value]) ?? [],\n stickyTracking: false,\n color: \"#FDB022\",\n /* IMPORTANT: https://www.highcharts.com/forum/viewtopic.php?f=9&t=44589 Turns out scatter points have a bug. When they get updated they can be displayed as line-through-dots with property lineWidth: 2 so here we need to set the lineWidth: 0, otherwise it should be set always through chart.series.forEach loop in serie.options.lineWidth */\n lineWidth: 0,\n marker: {\n radius: 3,\n symbol: \"circle\",\n color: \"#FDB022\",\n },\n };\n\n const series = [scatterPointsSerie, scatterPointsSerie2];\n\n return series;\n }\n\n get noData() {\n return this.seriesData.length === 0;\n }\n\n // @Methods\n chartReady(chart: any): void {\n this.chart = chart;\n this.chart.update(this.ChartOptions, true);\n this.chartLoaded = true;\n }\n\n zoom(selection: { from: string; to: string; resetZoom: boolean }): void {\n this.chart.xAxis[0].zoom(selection.from, selection.to);\n this.chart.redraw();\n }\n\n addTimeGap(timestamp: string): any {\n const date: any = moment.utc(timestamp).valueOf();\n return moment(date).add(2, \"days\");\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedComparisonChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedComparisonChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpeedComparisonChart.vue?vue&type=template&id=5e1e7272&scoped=true&\"\nimport script from \"./SpeedComparisonChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpeedComparisonChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SpeedComparisonChart.vue?vue&type=style&index=0&id=5e1e7272&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e1e7272\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VProgressLinear,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Ref } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport moment from \"moment\";\n// types\nimport { ExtendedVessel } from \"@/types/Vessel\";\nimport { SpeedLogSensorQuality } from \"@/types/dataQuality/SpeedLogSensorQuality\";\nimport { SpeedThroughWater } from \"@/types/dataQuality/SpeedThroughWater\";\n// components\nimport StatusCard from \"@/components/dataQuality/speedLog/StatusCard.vue\";\nimport SensorQualityChart from \"@/components/dataQuality/speedLog/Charts/SensorQualityChart.vue\";\nimport SpeedComparisonChart from \"@/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport SnackbarModule from \"@/store/clients/Snackbar.module\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\n\nconst DataQuality = getModule(DataQualityModule, store);\nconst Vessels = getModule(VesselsModule, store);\nconst Snackbar = getModule(SnackbarModule, store);\n\n@Component({\n components: {\n StatusCard,\n SensorQualityChart,\n SpeedComparisonChart,\n },\n})\nexport default class SpeedLog extends Vue {\n @Ref(\"SpeedComparisonChart\") SpeedComparisonChart!: any;\n @Ref(\"SensorQualityChart\") SensorQualityChart!: any;\n\n useDerivedSTW = false;\n selectedVessel: ExtendedVessel | null = null;\n query: { imo: number; from: string; to: string } = {\n imo: 0,\n from: moment.utc().subtract(1, \"year\").format(\"YYYY-MM-DD\"),\n to: moment.utc().format(\"YYYY-MM-DD\"),\n };\n\n // @Watchers\n async onSelectedVesselChange(): Promise {\n this.query.imo = this.selectedVessel?.imoNumber || 0;\n await this.fetchSpeedLog();\n await this.fetchDerivedSpeedThroughWater();\n await this.fetchSpeedThroughWater();\n }\n\n // @Getters\n get extendedVessels(): ExtendedVessel[] {\n return Vessels.extendedVessels.filter(vessel => this.hasDataQualityEnabled(vessel));\n }\n\n get speedLogData(): SpeedLogSensorQuality {\n return DataQuality.speedLogData;\n }\n\n get derivedSpeedThroughWaterData(): SpeedThroughWater {\n return DataQuality.derivedSpeedThroughWaterData;\n }\n\n get speedThroughWaterData(): SpeedThroughWater {\n return DataQuality.speedThroughWaterData;\n }\n\n get speedLogDataLoadingState() {\n return DataQuality.speedLogDataLoadingState;\n }\n\n get derivedSpeedThroughWaterLoadingState() {\n return DataQuality.derivedSpeedThroughWaterLoadingState;\n }\n\n get speedThroughWaterLoadingState() {\n return DataQuality.speedThroughWaterLoadingState;\n }\n\n get speedComparisonChartLoader() {\n return Boolean(DataQuality.speedThroughWaterLoadingState || DataQuality.derivedSpeedThroughWaterLoadingState);\n }\n\n get sensorQualityStatus(): number {\n if (!this.speedLogData?.data || this.speedLogData?.data.length === 0) return 0;\n const lastSpeedPoint = this.speedLogData.data[this.speedLogData.data.length - 1].bias ?? 0;\n if (lastSpeedPoint >= -5 && lastSpeedPoint <= 5) return 1;\n if (lastSpeedPoint > 10 || lastSpeedPoint < -10) return 3;\n if ((lastSpeedPoint > 5 && lastSpeedPoint <= 10) || (lastSpeedPoint < -5 && lastSpeedPoint >= -10)) return 2;\n\n return 0;\n }\n\n get statusCardTooltip(): string {\n return \"Based on the relative change between measured STW and derived STW, excluding port and maneuvering data, and averaged over the last 7 days. Small variations are normal, caused by noise in measured STW or sea current data.\";\n }\n\n // @Methods\n async fetchSpeedLog(): Promise {\n try {\n await DataQuality.fetchSpeedLog(this.query);\n } catch (error) {\n Snackbar.showSnackbar({ text: \"Failed to fetch speed log data\" });\n }\n }\n\n async fetchDerivedSpeedThroughWater(): Promise {\n try {\n await DataQuality.fetchDerivedSpeedThroughWater({ imoNumber: this.query.imo });\n } catch (error) {\n Snackbar.showSnackbar({ text: \"Failed to fetch derived speed through water data\" });\n }\n }\n\n async fetchSpeedThroughWater(): Promise {\n try {\n await DataQuality.fetchSpeedThroughWater({ imoNumber: this.query.imo });\n } catch (error) {\n Snackbar.showSnackbar({ text: \"Failed to fetch speed through water data\" });\n }\n }\n\n hasDataQualityEnabled(vessel: ExtendedVessel): boolean {\n return vessel.features.some(feature => feature.name === \"DataQuality\");\n }\n\n onSensorQualityChartZoom(selection: { from: string; to: string; resetZoom: boolean }): void {\n this.SpeedComparisonChart.zoom(selection);\n }\n\n onSpeedComparisonChartZoom(selection: { from: string; to: string; resetZoom: boolean }): void {\n this.SensorQualityChart.zoom(selection);\n }\n\n // @Hooks\n async created(): Promise {\n await Vessels.refreshExtendedVessels();\n this.selectedVessel = this.extendedVessels[0];\n this.query.imo = this.selectedVessel?.imoNumber || 0;\n await Promise.all([this.fetchSpeedLog(), this.fetchDerivedSpeedThroughWater(), this.fetchSpeedThroughWater()]);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedLog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedLog.vue?vue&type=script&lang=ts&\"","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","import { render, staticRenderFns } from \"./SpeedLog.vue?vue&type=template&id=23a423c6&scoped=true&\"\nimport script from \"./SpeedLog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpeedLog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SpeedLog.vue?vue&type=style&index=0&id=23a423c6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23a423c6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAutocomplete,VContainer})\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedComparisonChart.vue?vue&type=style&index=0&id=5e1e7272&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpeedLog.vue?vue&type=style&index=0&id=23a423c6&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusCard.vue?vue&type=style&index=0&id=02c5d3b2&lang=scss&scoped=true&\""],"sourceRoot":""}