{"version":3,"sources":["webpack:///./node_modules/highcharts-vue/dist/highcharts-vue.min.js","webpack:///./src/views/dataQuality/SpeedLog.vue?8c8c","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?e187","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?0bdf","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?0c68","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/SensorQualityChart.vue?b0ac","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///./src/components/dataQuality/speedLog/StatusCard.vue?20be","webpack:///./src/views/dataQuality/SpeedLog.vue?f07d","webpack:///./src/components/dataQuality/speedLog/Charts/SpeedComparisonChart.vue?4bc8"],"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","useDerivedSTW","speedLogData","query","to","speedLogDataLoadingState","derivedSpeedThroughWaterData","speedThroughWaterData","speedComparisonChartLoader","$event","_v","staticRenderFns","_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","labels","format","style","color","xAxis","minRange","y","minorTickLength","tickLength","plotOptions","area","threshold","marker","showInLegend","dataLabels","radius","fillColor","lineWidth","lineColor","states","select","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","event","$emit","data","baseline","dashStyle","enableMouseTracking","cropThreshold","zIndex","Date","parse","dateRange","speedLossPoints","symbol","outside","headerFormat","pointFormat","valueDecimals","valueSuffix","xDateFormat","zones","item","bias","map","timeStamp","components","Highcharts","Chart","VProgressLinear","SpeedComparisonChart","align","verticalAlign","itemStyle","cursor","fontWeight","max","log","remove","scatterPointsSerie","timestamp","stickyTracking","scatterPointsSerie2","DataQuality","getModule","DataQualityModule","store","Vessels","VesselsModule","Snackbar","SnackbarModule","SpeedLog","imo","moment","utc","subtract","imoNumber","fetchSpeedLog","fetchDerivedSpeedThroughWater","fetchSpeedThroughWater","hostnameParts","location","hostname","derivedSpeedThroughWaterLoadingState","speedThroughWaterLoadingState","lastSpeedPoint","showSnackbar","refreshExtendedVessels","Promise","all","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","some","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","currentItem","currentItemText","clipboardData","setData","VAutocomplete","VContainer","VSwitch","Selectable","directives","Touch","inset","flat","VInput","isActive","isDisabled","validationState","hasError","shouldValidate","hasSuccess","hasColor","computedColor","switchData","setTextColor","undefined","class","themeClasses","genDefaultSlot","genSwitch","genLabel","attrs$","switchAttrs","genRipple","onSwipeLeft","onSwipeRight","genProgress","VFabTransition","$slots","progress","VProgressCircular","size","width","indeterminate","onChange","onKeydown"],"mappings":"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","file":"js/chunk-25024116.2ac88e43.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 (event: any) {\n // trigger onChartZoom event on zoom\n ctx.$emit(\"onEventChartZoom\", event);\n },\n },\n };\n }\n\n get seriesData(): IDataSerie[] {\n if (!this.speedLogData?.data) return [] as IDataSerie[];\n const baseline = {\n name: \"Baseline\",\n type: \"line\",\n dashStyle: \"dash\",\n color: \"#CFC9C4\",\n enableMouseTracking: false,\n lineWidth: 1,\n cropThreshold: 9999,\n marker: { enabled: false },\n zIndex: 4,\n data: [[Date.parse(`${this.dateRange.from}`), 0] as [number | null, number | null], [Date.parse(`${this.dateRange.to}`), 0] as [number | null, number | null]],\n };\n let series: IDataSerie[] = [];\n\n series = [this.speedLossPoints, baseline];\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: 3,\n // color: {\n // linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n // stops: [\n // [0, \"#db4b39\"],\n // [0.1, \"#e26343\"],\n // [0.2, \"#f9b562\"],\n // [0.3, \"#f8ca6a\"],\n // [0.4, \"#d9c76a\"],\n // [0.5, \"#b8c369\"],\n // [0.6, \"#91bf6a\"],\n // [0.7, \"#67bb6a\"],\n // [0.8, \"#4cb86a\"],\n // [0.9, \"#24b369\"],\n // [1, \"#17b26a\"],\n // ],\n // },\n // },\n // {\n // value: 0.48,\n // color: \"#7cb5ec\",\n // },\n // {\n // value: -1,\n // color: {\n // linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n // stops: [\n // [0, \"#17b26a\"],\n // [0.1, \"#24b369\"],\n // [0.2, \"#4cb86a\"],\n // [0.3, \"#67bb6a\"],\n // [0.4, \"#91bf6a\"],\n // [0.5, \"#b8c369\"],\n // [0.6, \"#d9c76a\"],\n // [0.7, \"#f8ca6a\"],\n // [0.8, \"#f9b562\"],\n // [0.9, \"#e26343\"],\n // [1, \"#db4b39\"],\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 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","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=487b4c1d&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=487b4c1d&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 \"487b4c1d\",\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('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\"},[_vm._v(\"Derived STW is estimated vessel speed relative to water, based on SOG, currents, and wind\")])])],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\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() 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: 0,\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: \"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 (event: any) {\n // trigger onChartZoom event on zoom\n ctx.$emit(\"onEventChartZoom\", event);\n },\n },\n };\n }\n\n get seriesData(): any {\n if (!this.derivedSpeedThroughWaterData?.data || !this.speedThroughWaterData?.data) return [] as IDataSerie[];\n // bugfix < >\n console.log(this.chart);\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","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=58f3752d&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=58f3752d&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 \"58f3752d\",\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\nimport { Vue, Component, Watch } 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 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;\n }\n\n get isEnvDevelopment(): boolean {\n const hostnameParts = window.location.hostname.split(\".\");\n console.log(\"My hostname is: \" + window.location.hostname);\n if (hostnameParts[0] === \"preprod\" || hostnameParts[0] === \"test\" || hostnameParts[0] === \"localhost\") {\n return true;\n }\n return false;\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 console.log(\"speedComparisonChartLoader\", Boolean(DataQuality.speedThroughWaterLoadingState || DataQuality.derivedSpeedThroughWaterLoadingState));\n return Boolean(DataQuality.speedThroughWaterLoadingState || DataQuality.derivedSpeedThroughWaterLoadingState);\n }\n\n get sensorQualityStatus(): number {\n console.log(\"this.speedLogData?.data\", this.speedLogData?.data);\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 // @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 // @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=289dff38&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=289dff38&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 \"289dff38\",\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';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VAutocomplete,VContainer,VSwitch})\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!./SensorQualityChart.vue?vue&type=style&index=0&id=487b4c1d&lang=scss&scoped=true&\"","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\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=456d59cb&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=289dff38&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=58f3752d&lang=scss&scoped=true&\""],"sourceRoot":""}