{"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?2172","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?bc09","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/StatusCard.vue?2df2","webpack:///./src/views/dataQuality/SpeedLog.vue?892b","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?bbcb"],"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","vesselNameRedirected","$route","find","foundVesselObj","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","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":"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","file":"js/chunk-11e5bc89.ee4fbacc.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<e;r++)n[r]=t[r];return n}function u(e,t){var r,n=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)),n}function s(n){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?u(Object(o),!0).forEach(function(t){var e,r;e=n,t=o[r=t],r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):u(Object(o)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(o,t))})}return n}function f(){this.chart&&this.chart.destroy()}var p=function(e,t){t=t.split(\".\")[0]<3?{render:function(t){return t(\"div\",{ref:\"chart\"})},beforeDestroy:f}:{render:function(){return Object(o.h)(\"div\",{ref:\"chart\"})},beforeUnmount:f};return s({template:'<div ref=\"chart\"></div>',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<arguments.length&&void 0!==arguments[1]?arguments[1]:{};t.component(e.tagName||\"highcharts\",p(e.highcharts||c.a,t.version))}}],o.c=c,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},o.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,\"a\",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p=\"\",o(o.s=2);function o(t){if(c[t])return c[t].exports;var e=c[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}var i,c});","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!./SensorQualityChart.vue?vue&type=style&index=0&id=043458a8&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"main pa-2\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"speed-log-content\"},[_c('div',{staticClass:\"topline d-flex align-center mb-4\"},[_c('v-autocomplete',{attrs:{\"label\":\"Select Vessel\",\"items\":_vm.extendedVessels,\"outlined\":\"\",\"item-text\":\"name\",\"hide-details\":\"auto\",\"append-icon\":\"mdi-chevron-down\",\"dense\":\"\",\"menu-props\":{ top: false, offsetY: true },\"return-object\":\"\"},on:{\"change\":_vm.onSelectedVesselChange},model:{value:(_vm.selectedVessel),callback:function ($$v) {_vm.selectedVessel=$$v},expression:\"selectedVessel\"}})],1),_c('StatusCard',{staticClass:\"mb-6\",attrs:{\"options\":{ type: 'DataQuality', status: _vm.sensorQualityStatus, tooltip: _vm.statusCardTooltip }}}),_c('SensorQualityChart',{ref:\"SensorQualityChart\",staticClass:\"mb-6\",attrs:{\"dateRange\":{ from: _vm.query.from, to: _vm.query.to },\"speedLogData\":_vm.speedLogData,\"loading\":_vm.speedLogDataLoadingState},on:{\"onZoom\":_vm.onSensorQualityChartZoom}}),_c('SpeedComparisonChart',{ref:\"SpeedComparisonChart\",attrs:{\"dateRange\":{ from: _vm.query.from, to: _vm.query.to },\"derivedSpeedThroughWaterData\":_vm.derivedSpeedThroughWaterData,\"speedThroughWaterData\":_vm.speedThroughWaterData,\"loading\":_vm.speedComparisonChartLoader},on:{\"update:loading\":function($event){_vm.speedComparisonChartLoader=$event},\"onZoom\":_vm.onSpeedComparisonChartZoom}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"status-card\"},[_c('span',{staticClass:\"status-card__title mb-1\"},[_vm._v(\" \"+_vm._s(_vm.indicatorTitle)+\" \"),(_vm.options.tooltip)?_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\")])]}}],null,false,180721462)},[_c('span',{staticClass:\"tooltip-text\"},[_vm._v(_vm._s(_vm.options.tooltip))])]):_vm._e()],1),_c('p',{staticClass:\"status-card__subtitle mb-5\"},[_vm._v(\"based on the latest datapoint\")]),_c('p',{staticClass:\"status-card__text ma-0 d-flex align-center\"},[_vm._v(\" \"+_vm._s(_vm.indicatorText)+\" \"),_c('v-icon',{staticClass:\"status-card__icon\",attrs:{\"size\":20,\"color\":_vm.statusColor}},[_vm._v(\" \"+_vm._s(_vm.indicatorIcon)+\" \")])],1)])}\nvar staticRenderFns = []\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\nimport { Vue, Component, Prop } from \"vue-property-decorator\";\n\ninterface StatusOptions {\n  type: string;\n  status: number;\n  tooltip?: string;\n}\n\n@Component({})\nexport default class StatusCard extends Vue {\n  @Prop() options!: StatusOptions;\n\n  //  @Getters\n\n  get indicatorTitle(): string {\n    if (this.options.type === \"DataAvailability\") {\n      return \"Data Availability Status\";\n    } else if (this.options.type === \"DataQuality\") {\n      return \"Live Sensor Quality\";\n    } else {\n      return \"N/A\";\n    }\n  }\n\n  get indicatorText(): string {\n    if (this.options.type === \"DataAvailability\") {\n      switch (this.options.status) {\n        case 1:\n          return \"Available\";\n        case 2:\n          return \"Observe\";\n        case 3:\n          return \"Critical\";\n        default:\n          return \"N/A\";\n      }\n    } else if (this.options.type === \"DataQuality\") {\n      switch (this.options.status) {\n        case 1:\n          return \"Good Quality\";\n        case 2:\n          return \"Degrading Quality\";\n        case 3:\n          return \"Poor Quality\";\n        default:\n          return \"N/A\";\n      }\n    } else {\n      return \"N/A\";\n    }\n  }\n\n  get indicatorIcon(): string {\n    switch (this.options.status) {\n      case 1:\n        return \"mdi-check-circle\";\n      case 2:\n        return \"mdi-alert-circle\";\n      case 3:\n        return \"mdi-minus-circle\";\n      default:\n        return \"mdi-close-circle\";\n    }\n  }\n  get statusColor() {\n    if (!this.options) return;\n    switch (this.options.status) {\n      case 1:\n        return \"success100\";\n      case 2:\n        return \"warning100\";\n      case 3:\n        return \"error100\";\n      default:\n        return \"darkGrey100\";\n    }\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!./StatusCard.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!./StatusCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatusCard.vue?vue&type=template&id=02c5d3b2&scoped=true&\"\nimport script from \"./StatusCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatusCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StatusCard.vue?vue&type=style&index=0&id=02c5d3b2&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  \"02c5d3b2\",\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 { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chart sensor-bias\"},[_vm._m(0),_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:\"topline d-flex justify-space-between\"},[_c('div',{staticClass:\"chart-title d-flex align-center\"},[_vm._v(\" Historical Sensor Quality \")]),_c('div',{staticClass:\"legend-list\"},[_c('div',{staticClass:\"legend\"},[_c('i',{staticClass:\"legend__point\",staticStyle:{\"background-color\":\"#17B26A\"}}),_c('span',{staticClass:\"legend__text\"},[_vm._v(\"Good Quality\")])]),_c('div',{staticClass:\"legend\"},[_c('i',{staticClass:\"legend__point\",staticStyle:{\"background-color\":\"#FDB022\"}}),_c('span',{staticClass:\"legend__text\"},[_vm._v(\"Degrading Quality\")])]),_c('div',{staticClass:\"legend\"},[_c('i',{staticClass:\"legend__point\",staticStyle:{\"background-color\":\"#FF4E2A\"}}),_c('span',{staticClass:\"legend__text\"},[_vm._v(\"Poor Quality\")])])])])}]\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\nimport { Component, Vue, Prop } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport moment from \"moment\";\n// utilities\nimport { Chart } from \"highcharts-vue\";\nimport Highcharts, { Series } from \"highcharts\";\nimport dateHelper from \"@/Scripts/utilities/date-helper\";\n\n//  types\nimport { IDataSerie } from \"@/types/highcharts/dataSerie\";\nimport { SpeedLogSensorQuality } from \"@/types/dataQuality/SpeedLogSensorQuality\";\n\n@Component({\n  components: {\n    Highcharts: Chart,\n  },\n})\nexport default class SensorQualityChart extends Vue {\n  @Prop({ required: true }) speedLogData!: SpeedLogSensorQuality;\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    const ctx = this;\n    if (!this.chartLoaded) return { chart: ctx.chartSettings, title: { text: null }, series: [] };\n    const options = {\n      chart: ctx.chartSettings,\n      title: { text: null },\n      legend: {\n        enabled: false,\n      },\n      yAxis: {\n        min: -20,\n        max: 20,\n        title: {\n          text: \"\",\n        },\n        labels: {\n          format: \"{value} %\",\n          style: { color: \"#331714\" },\n        },\n        plotLines: [\n          {\n            value: 0,\n            color: \"#CFC9C4\",\n            width: 2,\n            zIndex: 2,\n            dashStyle: \"dash\",\n          },\n        ],\n        plotBands: this.plotBands,\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: 0,\n        lineColor: \"#E0DCD8\",\n        max: Date.parse(`${ctx.addTimeGap(this.speedLogData.data[this.speedLogData.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          marker: {\n            radius: 3,\n            fillColor: \"#FFFFFF\",\n            lineWidth: 1,\n            lineColor: \"#CFC9C4\",\n            enabled: false,\n            states: {\n              select: {\n                radius: 4,\n              },\n              hover: { enabled: true },\n            },\n          },\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        <div style=\"line-height: 18px;\">\n            <span style=\"margin-bottom: 5px; font-size: 12px;\">${dateHelper.getFormatedDateString($this.point.x)}</span> <br />\n            <span style=\"font-size: 12px;\">${Number($this.point.y.toFixed(2))}%</span>\n        </div>\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: \"<small>{point.key}</small><br>\",\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              <div style=\"line-height: 18px;\">\n                  <span style=\"margin-bottom: 5px; font-size: 12px;\">${dateHelper.getFormatedDateString($this.point.x)}</span> <br />\n                  <span style=\"font-size: 12px;\">${Number($this.point.y.toFixed(2))} knots</span>\n              </div>\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: \"#FDB022\",\n      marker: {\n        radius: 3,\n        symbol: \"circle\",\n        color: \"#FDB022\",\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: \"#2970FF\",\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: \"#2970FF\",\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=6540a5c2&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=6540a5c2&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  \"6540a5c2\",\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<void> {\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<void> {\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<void> {\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<void> {\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<void> {\n    await Vessels.refreshExtendedVessels();\n    const vesselNameRedirected = this.$route.query.find;\n    const foundVesselObj = this.extendedVessels.find(vessel => vessel.name === vesselNameRedirected);\n    this.selectedVessel = foundVesselObj ? foundVesselObj : 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<string | null>,\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=879b1164&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=879b1164&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  \"879b1164\",\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!./StatusCard.vue?vue&type=style&index=0&id=02c5d3b2&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=879b1164&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!./SpeedComparisonChart.vue?vue&type=style&index=0&id=6540a5c2&lang=scss&scoped=true&\""],"sourceRoot":""}