{"version":3,"sources":["webpack:///./src/components/dataQuality/FleetOverviewTable/index.vue?2e43","webpack:///./src/components/dataQuality/FleetOverviewTable/DataIndicator.vue?2877","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/views/dataQuality/FleetOverview.vue?1366","webpack:///./src/views/dataQuality/FleetOverview.vue?4c6d","webpack:///./src/components/dataQuality/FleetOverviewTable/index.vue?2db5","webpack:///./src/components/dataQuality/FleetOverviewTable/DataCell.vue?8180","webpack:///./src/components/dataQuality/FleetOverviewTable/DataIndicator.vue?7882","webpack:///./src/components/dataQuality/FleetOverviewTable/DataIndicator.vue","webpack:///./src/components/dataQuality/FleetOverviewTable/DataIndicator.vue?fef0","webpack:///./src/components/dataQuality/FleetOverviewTable/DataIndicator.vue?9e77","webpack:///./src/components/dataQuality/FleetOverviewTable/DataCell.vue","webpack:///./src/components/dataQuality/FleetOverviewTable/DataCell.vue?46a2","webpack:///./src/components/dataQuality/FleetOverviewTable/DataCell.vue?e4b9","webpack:///./src/components/dataQuality/FleetOverviewTable/index.vue","webpack:///./src/components/dataQuality/FleetOverviewTable/index.vue?d3b9","webpack:///./src/components/dataQuality/FleetOverviewTable/index.vue?1916","webpack:///./src/views/dataQuality/VDataTableHeaders/FleetOverview.ts","webpack:///./src/views/dataQuality/FleetOverview.vue","webpack:///./src/views/dataQuality/FleetOverview.vue?efcb","webpack:///./src/views/dataQuality/FleetOverview.vue?72d8","webpack:///./src/components/dataQuality/FleetOverviewTable/DataCell.vue?0a2a"],"names":["mixins","Elevatable","Measurable","Themeable","extend","name","props","boilerplate","Boolean","loading","tile","transition","String","type","types","Object","default","computed","attrs","this","isLoading","role","$attrs","classes","themeClasses","elevationClasses","$scopedSlots","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","methods","genBone","children","$createElement","staticClass","genBones","bone","split","length","generator","genStructure","Array","from","map","indexOf","mapBones","push","genSkeleton","getSlot","on","afterEnter","resetStyles","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","leaveCancelled","bones","replace","el","_initialStyle","display","style","setProperty","render","h","$listeners","class","measurableStyles","undefined","_vm","_h","_c","_self","model","value","callback","$$v","searchQuery","expression","headers","rows","tableLoading","onIndicatorClicked","staticRenderFns","sortBy","sortDesc","pageLimit","isLessThanLimit","$event","scopedSlots","_u","key","fn","ref","_l","header","headerClasses","headerStyles","sort","_v","_s","isNotVesselColumn","_e","isSpeedLogColumn","tooltip","_g","_b","item","index","cellData","skeletonStructure","proxy","data","align","IndicatorData","link","isNotAvailable","statusColor","icon","preventDefault","navigateToLink","apply","arguments","DataIndicator","$emit","status","Error","$router","timestamp","dateHelper","getFormatedDateTimeString","getHumanizeDuration","moment","valueOf","Vue","__decorate","Prop","Component","component","VIcon","DataCell","isIndicator","indicatorText","indicatorIcon","column","components","FleetOverviewTable","isLoadingTextDisplay","row","columnName","rowIndex","sortable","width","setTimeout","VDataTable","VSkeletonLoader","VTooltip","Vessels","getModule","VesselsModule","store","DataQuality","DataQualityModule","FleetOverview","links","fleetOverview","vessel","extendedVessels","find","id","vesselId","vesselName","encodeURIComponent","dataAvailability","dataOutliers","speedLog","trim","filter","toLowerCase","includes","loadingState","path","query","Promise","all","refreshExtendedVessels","refreshFleetOverview","VContainer","VTextField"],"mappings":"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","file":"js/chunk-0d989722.18dab0bb.js","sourcesContent":["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!./index.vue?vue&type=style&index=0&id=0653fab2&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!./DataIndicator.vue?vue&type=style&index=0&id=77052c4c&lang=scss&scoped=true&\"","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\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!./FleetOverview.vue?vue&type=style&index=0&id=51a0948f&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:\"topline d-flex align-center mb-4\"},[_c('v-text-field',{staticClass:\"search-input\",attrs:{\"prepend-inner-icon\":\"mdi-magnify\",\"placeholder\":\"Search for vessel\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"clearable\":\"\"},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1),_c('FleetOverviewTable',{attrs:{\"headers\":_vm.headers,\"rows\":_vm.rows,\"loading\":_vm.tableLoading},on:{\"onIndicatorClicked\":_vm.onIndicatorClicked}})],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:\"fleet-overview-table\"},[_c('v-data-table',{staticClass:\"data-quality-table\",attrs:{\"loading\":_vm.loading,\"items\":_vm.rows,\"headers\":_vm.headers,\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"items-per-page\":_vm.pageLimit,\"hide-default-footer\":_vm.isLessThanLimit,\"hide-default-header\":\"\"},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event}},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){return [_c('thead',{staticClass:\"v-data-table-header\"},[_c('tr',_vm._l((_vm.headers),function(header){return _c('th',{key:header.text,class:_vm.headerClasses(header),style:(_vm.headerStyles(header)),on:{\"click\":function($event){return _vm.sort(header.value)}}},[_c('span',[_vm._v(_vm._s(header.text))]),(_vm.isNotVesselColumn(header.value))?_c('span',[_c('br'),_vm._v(\"Overall Status \")]):_vm._e(),(_vm.isSpeedLogColumn(header.value))?_c('span',[_c('br'),_vm._v(\"Live Sensor Quality\")]):_vm._e(),(header.tooltip !== undefined)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"black\",\"content-class\":\"with-triangle\",\"max-width\":\"280\"},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\":\"medium\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-information-outline\")])]}}],null,true)},[_c('span',{staticClass:\"tooltip-text\"},[_vm._v(_vm._s(header.tooltip))])]):_vm._e(),(header.sortable)?_c('span',[(_vm.sortBy === header.value)?_c('v-icon',{class:{'rotate-icon': _vm.sortDesc},attrs:{\"small\":\"\"}},[_vm._v(\" mdi-arrow-up \")]):_c('v-icon',{staticClass:\"sort-icon\",attrs:{\"small\":\"\"}},[_vm._v(\" mdi-arrow-up \")])],1):_vm._e()],1)}),0)])]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.loading)?_c('tr',_vm._l((_vm.headers),function(header,index){return _c('td',{key:index},[(item[header.value])?_c('DataCell',{attrs:{\"data\":_vm.cellData(item, header, index)},on:{\"onIndicatorClicked\":_vm.onIndicatorClicked}}):_vm._e()],1)}),0):_vm._e()]}},(true)?{key:\"progress\",fn:function(){return [_c('v-skeleton-loader',{attrs:{\"type\":\"table-tbody\",\"types\":_vm.skeletonStructure}}),(_vm.isLoadingTextDisplay)?_c('span',{staticClass:\"loading-text\"},[_vm._v(\"Loading data. It might take a while\")]):_vm._e()]},proxy:true}:null],null,true)})],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',{class:['data-cell', 'd-flex', _vm.data.align]},[(_vm.isIndicator)?_c('DataIndicator',{attrs:{\"data\":_vm.IndicatorData},on:{\"onIndicatorClicked\":_vm.onIndicatorClicked}}):_c('div',[(_vm.data.link)?_c('a',{attrs:{\"href\":_vm.data.link}},[_vm._v(_vm._s(_vm.data.value))]):_c('span',[_vm._v(_vm._s(_vm.data.value))])])],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:\"data-indicator d-flex justify-center\",on:{\"click\":_vm.onIndicatorClicked}},[_c('div',{class:['status', { 'no-border' : _vm.isNotAvailable }]},[_c('v-icon',{attrs:{\"size\":12,\"color\":_vm.statusColor}},[_vm._v(\" \"+_vm._s(_vm.data.icon)+\" \")]),_c('span',[_vm._v(_vm._s(_vm.data.text))])],1),(_vm.data.link)?_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://www.google.co.uk/\"},on:{\"click\":function($event){$event.preventDefault();return _vm.navigateToLink.apply(null, arguments)}}}):_vm._e()])}\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\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n// utilities\nimport dateHelper from \"Utilities/date-helper\";\nimport moment from \"moment\";\n// types\nimport { IndicatorData } from \"@/types/dataQuality/dataQualityTable\";\n\n@Component({})\nexport default class DataIndicator extends Vue {\n @Prop({ type: Object }) data!: IndicatorData;\n\n onIndicatorClicked(): void {\n this.$emit(\"onIndicatorClicked\", this.data);\n }\n // @Getters\n get isNotAvailable(): boolean {\n return this.data.status === 0;\n }\n\n get statusColor() {\n if (!this.data) return;\n switch (this.data.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 // @Methods\n navigateToLink(): void {\n if (!this.data.link) throw new Error(\"Link is undefined\");\n this.$router.push(this.data.link);\n }\n\n getFormatedDateTimeString(timestamp: string): string {\n return dateHelper.getFormatedDateTimeString(timestamp);\n }\n\n duration(timestamp: string): string {\n return dateHelper.getHumanizeDuration(timestamp, moment().valueOf());\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!./DataIndicator.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!./DataIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataIndicator.vue?vue&type=template&id=77052c4c&scoped=true&\"\nimport script from \"./DataIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataIndicator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataIndicator.vue?vue&type=style&index=0&id=77052c4c&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 \"77052c4c\",\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';\ninstallComponents(component, {VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Emit } from \"vue-property-decorator\";\n// components\nimport DataIndicator from \"@/components/dataQuality/FleetOverviewTable/DataIndicator.vue\";\n// types\nimport { CellData, IndicatorData } from \"@/types/dataQuality/dataQualityTable\";\n\n@Component({\n components: {\n DataIndicator,\n },\n})\nexport default class DataCell extends Vue {\n @Prop({ type: Object }) data!: CellData;\n\n onIndicatorClicked(): void {\n this.$emit(\"onIndicatorClicked\", this.data);\n }\n\n // @Getters\n get isIndicator(): boolean {\n if (!this.data) return false;\n return this.data.type === \"dataIndicator\";\n }\n\n get IndicatorData(): IndicatorData | undefined {\n if (!this.isIndicator) return;\n return {\n status: this.data.value,\n text: this.indicatorText,\n icon: this.indicatorIcon,\n link: null,\n };\n }\n\n get indicatorText(): string {\n if (this.data.column === \"dataAvailability\") {\n switch (this.data.value) {\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.data.column === \"dataOutliers\") {\n switch (this.data.value) {\n case 1:\n return \"No Outliers\";\n case 2:\n return \"Minor Outliers\";\n case 3:\n return \"Major Outliers\";\n default:\n return \"N/A\";\n }\n } else if (this.data.column === \"speedLog\") {\n switch (this.data.value) {\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 if (this.data.column === \"dataAvailability\") {\n switch (this.data.value) {\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 } else if (this.data.column === \"dataOutliers\") {\n switch (this.data.value) {\n case 1:\n return \"mdi-database-check\";\n case 2:\n return \"mdi-database-alert\";\n case 3:\n return \"mdi-database-alert\";\n default:\n return \"mdi-close-circle\";\n }\n } else if (this.data.column === \"speedLog\") {\n switch (this.data.value) {\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 } else {\n return \"mdi-close-circle\";\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!./DataCell.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!./DataCell.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataCell.vue?vue&type=template&id=1c90e392&scoped=true&\"\nimport script from \"./DataCell.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataCell.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataCell.vue?vue&type=style&index=0&id=1c90e392&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 \"1c90e392\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Prop, Vue } from \"vue-property-decorator\";\nimport DataCell from \"./DataCell.vue\";\nimport { CellData, DataQualityHeader, DataQualityRow } from \"@/types/dataQuality/dataQualityTable\";\n\n@Component({\n components: {\n DataCell,\n },\n})\nexport default class FleetOverviewTable extends Vue {\n @Prop({ type: Boolean, default: false }) loading!: Boolean;\n @Prop({ type: Array, default: () => [] }) headers!: DataQualityHeader[];\n @Prop({ type: Array, default: () => [] }) rows!: DataQualityRow[];\n @Prop({ type: Array, default: () => [] }) links!: string[] | null;\n\n sortBy = \"\";\n isLoadingTextDisplay = false;\n sortDesc = false;\n pageLimit = 10;\n\n onIndicatorClicked(data: CellData): void {\n this.$emit(\"onIndicatorClicked\", data);\n }\n\n // @Getters\n get isLessThanLimit(): boolean {\n return this.rows.length <= this.pageLimit;\n }\n\n get skeletonStructure(): object {\n return { \"table-row\": `table-cell@4` };\n }\n\n // @Methods\n cellData(row: DataQualityRow, header: DataQualityHeader, index: number): any {\n return {\n column: header.value,\n columnName: header.text,\n rowIndex: row.key,\n type: header.type ?? \"\",\n value: row[header.value].value,\n link: row[header.value].link,\n align: header.align,\n };\n }\n\n headerClasses(header: any): string[] {\n return [\n header.class,\n {\n sortable: header.sortable,\n \"no-sort\": this.sortBy !== header.value,\n },\n ];\n }\n\n headerStyles(header: any): any {\n return {\n width: header.width ? header.width : \"auto\",\n \"min-width\": header.width ? header.width : \"auto\",\n };\n }\n\n isNotVesselColumn(column: string): boolean {\n return Boolean(column !== \"vesselName\" && column !== \"speedLog\");\n }\n\n isSpeedLogColumn(column: string): boolean {\n return Boolean(column === \"speedLog\");\n }\n\n sort(value: any): void {\n if (this.sortBy === value) {\n if (this.sortDesc) {\n this.sortBy = \"\";\n this.sortDesc = false;\n } else {\n this.sortDesc = true;\n }\n } else {\n this.sortBy = value;\n this.sortDesc = false;\n }\n }\n created(): void {\n setTimeout(() => (this.isLoadingTextDisplay = true), 3000);\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!./index.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!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0653fab2&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0653fab2&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 \"0653fab2\",\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 { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VDataTable,VIcon,VSkeletonLoader,VTooltip})\n","import { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\r\nexport const headers: DataQualityHeader[] = [\r\n {\r\n text: \"Vessel\",\r\n type: \"string\",\r\n value: \"vesselName\",\r\n align: \"left\",\r\n },\r\n {\r\n text: \"Data Availability\",\r\n type: \"dataIndicator\",\r\n value: \"dataAvailability\",\r\n align: \"left\",\r\n tooltip: \"Indicates whether critical data tags are available\",\r\n width: \"200px\",\r\n },\r\n {\r\n text: \"Data Outliers\",\r\n type: \"dataIndicator\",\r\n value: \"dataOutliers\",\r\n align: \"left\",\r\n tooltip: \"Indicates the amount of outliers for critical data tags\",\r\n width: \"200px\",\r\n },\r\n {\r\n text: \"Speed Log\",\r\n type: \"dataIndicator\",\r\n value: \"speedLog\",\r\n align: \"left\",\r\n tooltip: \"Indicates quality of speed log data using drift algorithm that compares it to derived STW\",\r\n width: \"200px\",\r\n },\r\n];\r\n","\n\n\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 } from \"vue-property-decorator\";\nimport store from \"@/store\";\n// components\nimport FleetOverviewTable from \"@/components/dataQuality/FleetOverviewTable/index.vue\";\n// types\nimport { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\nimport { headers } from \"./VDataTableHeaders/FleetOverview\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\n\nconst Vessels = getModule(VesselsModule, store);\nconst DataQuality = getModule(DataQualityModule, store);\n\n@Component({\n components: {\n FleetOverviewTable,\n },\n})\nexport default class FleetOverview extends Vue {\n searchQuery = \"\";\n links: (string | null)[] = [null, \"/DataQuality/DataAvailability\", \"/DataQuality/DataOutliers\", null];\n\n headers: DataQualityHeader[] = headers;\n\n // @Getters\n get rows(): any {\n var rows = DataQuality.fleetOverview.map((item, index) => {\n const vessel = Vessels.extendedVessels.find(vessel => vessel.id === item.vesselId);\n return {\n key: index,\n vesselName: {\n value: vessel ? vessel.name : \"Unknown Vessel\",\n link: vessel?.name ? `/Vessel/${item.vesselId}/${encodeURIComponent(vessel.name)}` : null,\n },\n dataAvailability: {\n value: item.dataAvailability,\n link: \"/DataQuality/DataAvailability\",\n },\n dataOutliers: {\n value: item.dataOutliers,\n link: \"/DataQuality/DataOutliers\",\n },\n speedLog: {\n value: item.speedLog,\n link: \"/DataQuality/SpeedLog\",\n },\n };\n });\n return Boolean(this.searchQuery !== null && this.searchQuery.trim()) ? rows.filter(item => item.vesselName.value.toLowerCase().includes(this.searchQuery.toLowerCase())) : rows;\n }\n\n get tableLoading(): boolean {\n return DataQuality.loadingState;\n }\n\n // @Methods\n onIndicatorClicked(data: any): void {\n this.$router.push({\n path: data.link,\n query: { find: this.rows[data.rowIndex].vesselName.value },\n });\n }\n\n // @Hooks\n async created(): Promise {\n await Promise.all([Vessels.refreshExtendedVessels(), DataQuality.refreshFleetOverview()]);\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!./FleetOverview.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!./FleetOverview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FleetOverview.vue?vue&type=template&id=51a0948f&scoped=true&\"\nimport script from \"./FleetOverview.vue?vue&type=script&lang=ts&\"\nexport * from \"./FleetOverview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FleetOverview.vue?vue&type=style&index=0&id=51a0948f&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 \"51a0948f\",\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 { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VContainer,VTextField})\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!./DataCell.vue?vue&type=style&index=0&id=1c90e392&lang=scss&scoped=true&\""],"sourceRoot":""}