{"version":3,"sources":["webpack:///./src/components/dataQuality/ManageOutliersTable.vue?5bfa","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/views/dataQuality/DataOutliers.vue?3dbe","webpack:///./src/components/dataQuality/DataOutliersTable/index.vue?3014","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./src/components/dataQuality/OutliersModals/HistoricalModal.vue?2984","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./src/components/dataQuality/OutliersModals/ThresholdsModal.vue?c067","webpack:///./src/components/dataQuality/DataOutliersTable/DataCell.vue?e5e4","webpack:///./src/views/dataQuality/DataOutliers.vue?1f80","webpack:///./src/views/dataQuality/VDataTableHeaders/DataOutliers.ts","webpack:///./src/components/dataQuality/OutliersModals/ManageModal.vue?5f19","webpack:///./src/components/dataQuality/ManageOutliersTable.vue?b625","webpack:///./src/components/dataQuality/ManageOutliersTable.vue","webpack:///./src/components/dataQuality/ManageOutliersTable.vue?b0f0","webpack:///./src/components/dataQuality/ManageOutliersTable.vue?cd8d","webpack:///./src/components/dataQuality/OutliersModals/ManageModal.vue","webpack:///./src/components/dataQuality/OutliersModals/ManageModal.vue?2ecf","webpack:///./src/components/dataQuality/OutliersModals/ManageModal.vue?62fe","webpack:///./src/components/dataQuality/OutliersModals/HistoricalModal.vue?13b8","webpack:///./src/components/dataQuality/HistoricalOutliersTable.vue?a6de","webpack:///./src/components/dataQuality/HistoricalOutliersTable.vue","webpack:///./src/components/dataQuality/HistoricalOutliersTable.vue?d983","webpack:///./src/components/dataQuality/HistoricalOutliersTable.vue?124b","webpack:///./src/components/dataQuality/OutliersModals/HistoricalModal.vue","webpack:///./src/components/dataQuality/OutliersModals/HistoricalModal.vue?1841","webpack:///./src/components/dataQuality/OutliersModals/HistoricalModal.vue?3421","webpack:///./src/components/dataQuality/OutliersModals/ThresholdsModal.vue?c087","webpack:///./src/components/dataQuality/OutliersModals/ThresholdsModal.vue","webpack:///./src/components/dataQuality/OutliersModals/ThresholdsModal.vue?0ee4","webpack:///./src/components/dataQuality/OutliersModals/ThresholdsModal.vue?7d0b","webpack:///./src/components/dataQuality/DataOutliersTable/index.vue?0951","webpack:///./src/components/dataQuality/DataOutliersTable/DataCell.vue?57c2","webpack:///./src/components/dataQuality/DataOutliersTable/DataIndicator.vue?506d","webpack:///./src/components/dataQuality/DataOutliersTable/DataIndicator.vue","webpack:///./src/components/dataQuality/DataOutliersTable/DataIndicator.vue?dacf","webpack:///./src/components/dataQuality/DataOutliersTable/DataIndicator.vue?34c7","webpack:///./src/components/dataQuality/DataOutliersTable/DataCell.vue","webpack:///./src/components/dataQuality/DataOutliersTable/DataCell.vue?d45c","webpack:///./src/components/dataQuality/DataOutliersTable/DataCell.vue?5d60","webpack:///./src/components/dataQuality/DataOutliersTable/index.vue","webpack:///./src/components/dataQuality/DataOutliersTable/index.vue?2b57","webpack:///./src/components/dataQuality/DataOutliersTable/index.vue?dcf9","webpack:///./src/views/dataQuality/DataOutliers.vue","webpack:///./src/views/dataQuality/DataOutliers.vue?3ddb","webpack:///./src/views/dataQuality/DataOutliers.vue?876a","webpack:///./src/components/dataQuality/DataOutliersTable/DataIndicator.vue?be34","webpack:///./src/components/dataQuality/OutliersModals/ManageModal.vue?e8b6","webpack:///./src/components/dataQuality/HistoricalOutliersTable.vue?10fe"],"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","$","flattenIntoArray","aCallable","toObject","lengthOfArrayLike","arraySpeciesCreate","target","proto","flatMap","callbackfn","A","O","sourceLen","arguments","collection","collectionStrong","init","addToUnscopables","_vm","_h","_c","_self","model","value","callback","$$v","searchQuery","expression","$event","stopPropagation","preventDefault","ManageModal","_v","HistoricalModal","ref","date","scopedSlots","_u","key","fn","_g","_b","dateRangeText","menu","maxDate","dates","_s","dateRange","setDateRange","headers","rows","loadingState","isTableReady","openThresholdsModal","showOutliersInManageModal","outlierList","onOutlierStateChanged","ThresholdsModal","featureConfigs","isThresholdsModalDataLoading","updateFeatureConfigs","staticRenderFns","align","width","tooltip","close","isModalActive","selectedRows","tagsList","vesselIds","filterByVessels","filterByTags","isDisabled","updateOutliersAcknowledge","updateOutliersRemove","filtredRows","pageLimit","isLessThanLimit","header","_e","vessels","maxHeight","contentClass","openOnHover","clearVesselSelection","proxy","syncFilterByVessels","dataTagList","clearFeatureSelection","syncFilterByTags","item","featureUnit","featureName","Vessels","getModule","VesselsModule","store","DataQuality","DataQualityModule","ManageOutliersTable","isVesselFilterEnabled","extendedVessels","filter","vessel","includes","id","selection","filtered","row","vesselMatch","some","vesselId","tagMatch","tag","featureValues","find","feature","unit","caption","Vue","__decorate","PropSync","Prop","Component","components","component","VDataTable","VDivider","VIcon","VListItem","VListItemContent","VList","VListItemTitle","VSelect","Snackbar","SnackbarModule","selectedColumn","searchTerm","modalLoadingState","sortable","data","outliers","outlier","vesselName","Number","toFixed","timestamp","getFormatedDateTimeString","isDeleted","isAcknowledged","impact","Set","featureNames","$emit","options","fullFeatureName","acknowledgedOutliers","showSnackbar","color","dateHelper","Promise","all","refreshExtendedVessels","required","VBtn","VCard","VCardActions","VCardSubtitle","VCardText","VCardTitle","VDialog","VSpacer","updateOutliers","clearSelection","actionClasses","HistoricalOutliersTable","action","acknowledged","deleted","Users","UsersModule","userPerformedAction","users","u","auditLogs","userId","userName","actionDate","refreshUsers","_l","config","featureInputDirtyList","lowerBound","onThresholdsLowerChanged","upperBound","onThresholdUpperChanged","isDataLoading","c","VProgressCircular","VTextField","sortBy","sortDesc","currentPage","pageCount","currentItems","headerClasses","headerStyles","sort","index","highlightRedirectedVessel","cellData","onSettingsClick","skeletonStructure","IndicatorData","settings","link","isNotAvailable","statusColor","icon","outlierValueClasses","navigateToLink","apply","DataIndicator","status","Error","$router","getHumanizeDuration","moment","valueOf","DataCell","isIndicator","column","indicatorText","indicatorIcon","toString","indicatorData","DataOutliersTable","isLoadingTextDisplay","columnName","rowIndex","vesselQuery","$route","query","match","setTimeout","$refs","classList","remove","redirectedVesselRowIndex","findIndex","pageIndex","Math","floor","keys","forEach","contains","VSkeletonLoader","VTooltip","User","UserModule","DataOutliers","subtract","format","process","companyId","userCompanyId","fromDate","toDate","companyOutliers","v","indicator","flat","indicators","reduce","acc","encodeURIComponent","overallStatus","trim","toLowerCase","datepickerMenu","save","fetchCompanyOutliers","queryRequest","fetchFeatureConfigs","uniqueFeatureNames","RefManageModal","setSelectedOutliers","fetchFeatureValues","timeout","console","error","dataIndicatorHeaders","Ref","VContainer","VDatePicker","VMenu"],"mappings":"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","file":"js/chunk-0808c399.cc473cec.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!./ManageOutliersTable.vue?vue&type=style&index=0&id=3434df96&scoped=true&lang=scss&\"","// 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!./DataOutliers.vue?vue&type=style&index=0&id=e23847f2&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!./index.vue?vue&type=style&index=0&id=6de3a56e&lang=scss&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\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!./HistoricalModal.vue?vue&type=style&index=0&id=3fba2620&scoped=true&lang=scss&\"","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\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!./ThresholdsModal.vue?vue&type=style&index=0&id=c64f3218&scoped=true&lang=scss&\"","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=29847af0&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:\"data-outliers-wrapper\"},[_c('div',{staticClass:\"topline d-flex align-center mb-5\"},[_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\"}}),_c('v-btn',{staticClass:\"btn-manage primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\",\"large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.ManageModal = true}}},[_vm._v(\"Manage Outliers\")]),_c('v-btn',{staticClass:\"btn-historical primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\",\"large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.HistoricalModal = true}}},[_vm._v(\"view historical actions\")])],1),_c('div',{staticClass:\"headerline mb-5 d-flex justify-space-between align-center\"},[_c('div',{staticClass:\"info-panel\"},[_c('p',{staticClass:\"mb-2\"},[_vm._v(\"Automatically Detected Outliers\")]),_c('span',[_vm._v(\"Outliers are automatically detected based on each Feature's physical bounds (can be adjusted in Settings \"),_c('v-icon',{attrs:{\"size\":\"18\",\"color\":\"darkGrey75\"}},[_vm._v(\"mdi-cog-outline\")]),_vm._v(\")\")],1)]),_c('div',{staticClass:\"actions d-flex align-center\"},[_c('div',{staticClass:\"range-datepicker mr-5\"},[_c('v-menu',{ref:\"datepickerMenu\",staticClass:\"datepickerMenu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.date,\"content-class\":\"datepicker-menu\",\"offset-y\":\"\",\"min-width\":\"auto\"},on:{\"update:returnValue\":function($event){_vm.date=$event},\"update:return-value\":function($event){_vm.date=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({staticClass:\"datepicker-input\",attrs:{\"prepend-inner-icon\":\"mdi-calendar-blank-outline\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"readonly\":\"\"},model:{value:(_vm.dateRangeText),callback:function ($$v) {_vm.dateRangeText=$$v},expression:\"dateRangeText\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-date-picker',{staticClass:\"datepicker-container\",attrs:{\"max\":_vm.maxDate,\"color\":\"white\",\"header-color\":\"white\",\"range\":\"\"},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}},[[_c('div',{staticClass:\"datepicker-fake-title\"},[_vm._v(_vm._s(_vm.dateRange))])],_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"disabled\":!_vm.dates || _vm.dates.length < 2},on:{\"click\":function($event){return _vm.setDateRange(_vm.date)}}},[_vm._v(\" OK \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.menu = false}}},[_vm._v(\" Cancel \")])],2)],1)],1)])]),_c('DataOutliersTable',{attrs:{\"headers\":_vm.headers,\"rows\":_vm.rows,\"loading\":_vm.loadingState || !_vm.isTableReady},on:{\"onSettingsClick\":_vm.openThresholdsModal,\"showOutliersInManageModal\":_vm.showOutliersInManageModal}}),_c('ManageModal',{ref:\"RefManageModal\",attrs:{\"value\":_vm.ManageModal,\"data\":_vm.outlierList},on:{\"update:value\":function($event){_vm.ManageModal=$event},\"updateOutliers\":_vm.onOutlierStateChanged}}),_c('HistoricalModal',{attrs:{\"value\":_vm.HistoricalModal,\"data\":_vm.outlierList},on:{\"update:value\":function($event){_vm.HistoricalModal=$event},\"updateOutliers\":_vm.onOutlierStateChanged}}),_c('ThresholdsModal',{attrs:{\"value\":_vm.ThresholdsModal,\"featureConfigs\":_vm.featureConfigs,\"isDataLoading\":_vm.isThresholdsModalDataLoading},on:{\"update:value\":function($event){_vm.ThresholdsModal=$event},\"updateFeatureConfigs\":_vm.updateFeatureConfigs}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\r\nexport const headers: DataQualityHeader[] = [\r\n {\r\n text: \"Vessel\",\r\n type: \"string\",\r\n align: \"left\",\r\n value: \"vesselName\",\r\n width: \"260px\",\r\n },\r\n {\r\n text: \"Overall Status\",\r\n type: \"dataIndicator\",\r\n align: \"left\",\r\n value: \"overallStatus\",\r\n tooltip: \"Indicates overall data outliers status of the vessel and is determined by data tag with the most critical status\",\r\n },\r\n];\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.width,\"content-class\":\"ManageModal\",\"retain-focus\":false,\"scrollable\":\"\"},on:{\"click:outside\":function($event){return _vm.close()}},model:{value:(_vm.isModalActive),callback:function ($$v) {_vm.isModalActive=$$v},expression:\"isModalActive\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-6 pt-6 pb-0 mb-5 font-weight-medium\"},[_c('span',[_vm._v(\"Manage Outliers\")]),_c('v-btn',{staticClass:\"close-btn ml-auto\",attrs:{\"color\":\"mainGrey100\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',{attrs:{\"size\":\"14\"}},[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-subtitle',{staticClass:\"mainGrey100--text pa-0 px-6 mb-6\"},[_vm._v(\" You can manage detected outliers: \\\"Remove\\\" excludes the outlier from downstream applications like the Fouling Module, and \\\"Acknowledge\\\" marks the datapoint as valid and it will no longer be treated as outlier. Undo these actions in \"),_c('b',{staticClass:\"black--text\"},[_vm._v(\"\\\"View Historical Actions\\\".\")])]),_c('v-card-text',{staticClass:\"px-6 py-0\"},[_c('ManageOutliersTable',{attrs:{\"selected\":_vm.selectedRows,\"headers\":_vm.headers,\"selection\":_vm.rows,\"tagsList\":_vm.tagsList,\"vesselIds\":_vm.vesselIds,\"filterByVessels\":_vm.filterByVessels,\"filterByTags\":_vm.filterByTags,\"loading\":_vm.loading},on:{\"update:selected\":function($event){_vm.selectedRows=$event},\"update:filterByVessels\":function($event){_vm.filterByVessels=$event},\"update:filter-by-vessels\":function($event){_vm.filterByVessels=$event},\"update:filterByTags\":function($event){_vm.filterByTags=$event},\"update:filter-by-tags\":function($event){_vm.filterByTags=$event}}})],1),_c('v-card-actions',{staticClass:\"px-6 py-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"btn-acknowledge primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"click\":_vm.updateOutliersAcknowledge}},[_vm._v(\" Acknowledge \")]),_c('v-btn',{staticClass:\"btn-remove primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"click\":_vm.updateOutliersRemove}},[_vm._v(\" Remove \")])],1)],1)],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('v-data-table',{staticClass:\"data-quality-table manage-outliers-table\",attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.filtredRows,\"item-key\":\"id\",\"show-select\":\"\",\"items-per-page\":_vm.pageLimit,\"hide-default-footer\":_vm.isLessThanLimit},scopedSlots:_vm._u([{key:\"header.vesselName\",fn:function(ref){\nvar header = ref.header;\nreturn [(!_vm.loading)?_c('div',{staticClass:\"th-cell d-inline-flex\"},[_c('span',[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('v-icon',{attrs:{\"color\":\"secondary50\",\"size\":\"18\"}},[_vm._v(\"mdi-filter-variant\")])],1),_c('v-select',{staticClass:\"custom-select\",attrs:{\"items\":_vm.vessels,\"menu-props\":{\n maxHeight: '400',\n contentClass: 'custom-select-content',\n transition: 'slide-x-transition',\n openOnHover: false,\n },\"item-text\":\"name\",\"item-value\":\"id\",\"multiple\":\"\"},scopedSlots:_vm._u([{key:\"append-item\",fn:function(){return [_c('v-divider'),_c('v-list-item',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.clearVesselSelection}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"pl-1\"},[_vm._v(\" Clear selection \")])],1)],1),_c('v-divider')]},proxy:true}],null,true),model:{value:(_vm.syncFilterByVessels),callback:function ($$v) {_vm.syncFilterByVessels=$$v},expression:\"syncFilterByVessels\"}})],1):_vm._e()]}},{key:\"header.featureName\",fn:function(ref){\n var header = ref.header;\nreturn [(!_vm.loading)?_c('div',{staticClass:\"th-cell d-inline-flex\"},[_c('span',[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('v-icon',{attrs:{\"color\":\"secondary50\",\"size\":\"18\"}},[_vm._v(\"mdi-filter-variant\")])],1),_c('v-select',{staticClass:\"custom-select\",attrs:{\"items\":_vm.dataTagList,\"menu-props\":{\n maxHeight: '400',\n contentClass: 'custom-select-content',\n transition: 'slide-x-transition',\n openOnHover: false,\n },\"item-text\":\"name\",\"return-object\":\"\",\"multiple\":\"\"},scopedSlots:_vm._u([{key:\"append-item\",fn:function(){return [_c('v-divider',{staticClass:\"mb-2\"}),_c('v-list-item',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.clearFeatureSelection}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Clear selection \")])],1)],1)]},proxy:true}],null,true),model:{value:(_vm.syncFilterByTags),callback:function ($$v) {_vm.syncFilterByTags=$$v},expression:\"syncFilterByTags\"}})],1):_vm._e()]}},{key:\"item.value\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.value)+\" \"+_vm._s(_vm.featureUnit(item.featureName)))])]}}],null,true),model:{value:(_vm.selectedRows),callback:function ($$v) {_vm.selectedRows=$$v},expression:\"selectedRows\"}})}\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, PropSync, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\n// types\nimport { ExtendedVessel } from \"@/types/Vessel\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\n\nconst Vessels = getModule(VesselsModule, store);\nconst DataQuality = getModule(DataQualityModule, store);\n\n@Component({\n components: {},\n})\nexport default class ManageOutliersTable extends Vue {\n @PropSync(\"selected\", { type: Array, default: () => [] }) selectedRows!: Object[];\n @PropSync(\"filterByVessels\") syncFilterByVessels!: ExtendedVessel[];\n @PropSync(\"filterByTags\") syncFilterByTags!: string[];\n @Prop({ type: Boolean, default: false }) loading!: Boolean;\n @Prop({ type: Array, default: () => [] }) selection!: Object[];\n @Prop({ type: Array, default: () => [] }) headers!: Object[];\n @Prop({ type: Array, default: () => [] }) tagsList!: Object[];\n @Prop({ type: Array, default: () => [] }) vesselIds!: Object[];\n item: any = {};\n isVesselFilterEnabled = false;\n pageLimit = 10;\n\n // @Getters\n get vessels(): ExtendedVessel[] {\n return Vessels.extendedVessels.filter(vessel => this.vesselIds.includes(vessel.id));\n }\n\n get isLessThanLimit(): boolean {\n return this.selection.length <= this.pageLimit;\n }\n\n get dataTagList(): any[] {\n return this.tagsList;\n }\n\n get filtredRows(): Object[] {\n const filtered = this.selection.filter((row: any) => {\n const vesselMatch = this.syncFilterByVessels.length === 0 || this.syncFilterByVessels.some(vesselId => vesselId === row.vesselId);\n const tagMatch = this.syncFilterByTags.length === 0 || this.syncFilterByTags.some(tag => tag === row.featureName);\n return vesselMatch && tagMatch;\n });\n return filtered;\n }\n\n // @Methods\n featureUnit(featureName: string): string {\n return DataQuality.featureValues.find(feature => feature.name === featureName)?.unit.caption || \"n/a\";\n }\n\n clearVesselSelection(): void {\n this.syncFilterByVessels = [];\n }\n\n clearFeatureSelection(): void {\n this.syncFilterByTags = [];\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!./ManageOutliersTable.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!./ManageOutliersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageOutliersTable.vue?vue&type=template&id=3434df96&scoped=true&\"\nimport script from \"./ManageOutliersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageOutliersTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageOutliersTable.vue?vue&type=style&index=0&id=3434df96&scoped=true&lang=scss&\"\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 \"3434df96\",\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 { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VDataTable,VDivider,VIcon,VListItem,VListItemContent,VListItemTitle,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, PropSync } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport dateHelper from \"Utilities/date-helper\";\n// types\nimport { ManageOutliersRow } from \"@/types/dataQuality/ManageOutliersRow\";\nimport { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\nimport { DataOutlier } from \"@/types/dataQuality/dataOutliers\";\nimport { ExtendedVessel } from \"@/types/Vessel\";\n// components\nimport ManageOutliersTable from \"@/components/dataQuality/ManageOutliersTable.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport SnackbarModule from \"@/store/clients/Snackbar.module\";\n\nconst DataQuality = getModule(DataQualityModule, store);\nconst Vessels = getModule(VesselsModule, store);\nconst Snackbar = getModule(SnackbarModule, store);\n\n@Component({\n components: {\n ManageOutliersTable,\n },\n})\nexport default class ManageModal extends Vue {\n @PropSync(\"value\", { required: true }) isModalActive!: boolean;\n @Prop({ type: String, default: \"1048px\" }) width!: string;\n @Prop() data!: { featureName: string; vesselId: number; vesselName: string; outliers: DataOutlier[] }[];\n\n selectedRows: ManageOutliersRow[] = [];\n selectedColumn = \"\";\n searchTerm = \"\";\n filterByVessels: number[] = [];\n filterByTags: string[] = [];\n\n // @Getters\n get loading(): boolean {\n return DataQuality.modalLoadingState;\n }\n\n get headers(): DataQualityHeader[] {\n return [\n { text: \"Vessel\", value: \"vesselName\", sortable: false },\n { text: \"Feature\", value: \"featureName\", sortable: false },\n { text: \"Outlier Value\", value: \"value\" },\n { text: \"Date & Time\", value: \"date\" },\n // { text: \"Impacts\", value: \"impact\" },\n ];\n }\n\n get rows(): ManageOutliersRow[] {\n return this.data.flatMap(item =>\n item.outliers\n .map(outlier => ({\n id: outlier.id,\n vesselName: item.vesselName,\n vesselId: item.vesselId,\n featureName: item.featureName,\n value: Number(outlier.value).toFixed(6),\n timestamp: outlier.timestamp,\n date: `${this.getFormatedDateTimeString(outlier.timestamp)} UTC`,\n isDeleted: outlier.isDeleted,\n isAcknowledged: outlier.isAcknowledged,\n impact: \"\",\n }))\n .filter(outlier => outlier.isAcknowledged !== true && outlier.isDeleted !== true)\n );\n }\n\n get vesselIds(): number[] {\n const vesselIds = this.data.filter(item => item.outliers.length > 0).map(item => item.vesselId);\n return Array.from(new Set(vesselIds));\n }\n\n get tagsList(): string[] {\n const featureNames = this.rows.map(row => row.featureName);\n return Array.from(new Set(featureNames));\n }\n\n get isDisabled(): boolean {\n return this.selectedRows.length === 0;\n }\n\n // @Methods\n open(): void {\n this.isModalActive = true;\n this.$emit(\"open\");\n }\n\n close(): void {\n this.isModalActive = false;\n this.selectedRows = [];\n this.filterByVessels = [];\n this.filterByTags = [];\n this.$emit(\"close\");\n }\n\n setSelectedOutliers(options: { feature: string; vesselId: number }): void {\n const fullFeatureName: any = this.rows.find(row => row.featureName.replace(/\\s/g, \"\") === options.feature && row.vesselId === options.vesselId)?.featureName;\n if (fullFeatureName) this.filterByTags = [fullFeatureName];\n this.filterByVessels = [options.vesselId];\n this.selectedRows = this.rows.filter(row => row.featureName.replace(/\\s/g, \"\") === options.feature && row.vesselId === options.vesselId);\n this.isModalActive = true;\n }\n\n async updateOutliersAcknowledge(): Promise {\n const acknowledgedOutliers = this.selectedRows.map(row => {\n return {\n id: row.id,\n isAcknowledged: true,\n isDeleted: row.isDeleted,\n value: Number(row.value),\n timestamp: row.timestamp,\n };\n });\n await DataQuality.updateOutliersAcknowledge(acknowledgedOutliers);\n this.$emit(\"updateOutliers\");\n Snackbar.showSnackbar({ text: \"Outlier(s) successfully updated with the status 'Acknowledged'\", color: \"success\" });\n this.close();\n }\n\n async updateOutliersRemove(): Promise {\n const acknowledgedOutliers = this.selectedRows.map(row => {\n return {\n id: row.id,\n isAcknowledged: row.isAcknowledged,\n isDeleted: true,\n value: Number(row.value),\n timestamp: row.timestamp,\n };\n });\n await DataQuality.updateOutliersRemove(acknowledgedOutliers);\n this.$emit(\"updateOutliers\");\n Snackbar.showSnackbar({ text: \"Outlier(s) successfully updated with the status 'Removed'\", color: \"success\" });\n this.close();\n }\n\n getFormatedDateTimeString(timestamp: string): string {\n return dateHelper.getFormatedDateTimeString(timestamp);\n }\n\n // @Hooks\n async created(): Promise {\n await Promise.all([Vessels.refreshExtendedVessels()]);\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!./ManageModal.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!./ManageModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageModal.vue?vue&type=template&id=694fb022&scoped=true&\"\nimport script from \"./ManageModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageModal.vue?vue&type=style&index=0&id=694fb022&scoped=true&lang=scss&\"\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 \"694fb022\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VDialog,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.width,\"content-class\":\"ManageModal\",\"retain-focus\":false,\"scrollable\":\"\"},on:{\"click:outside\":function($event){return _vm.close()}},model:{value:(_vm.isModalActive),callback:function ($$v) {_vm.isModalActive=$$v},expression:\"isModalActive\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-6 pt-6 pb-0 mb-5 font-weight-medium\"},[_c('span',[_vm._v(\"Historical Actions\")]),_c('v-btn',{staticClass:\"close-btn ml-auto\",attrs:{\"color\":\"mainGrey100\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',{attrs:{\"size\":\"14\"}},[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-subtitle',{staticClass:\"mainGrey100--text pa-0 px-6 mb-6\"},[_vm._v(\" You can view all outliers that have been marked as acknowledged or removed and undo these actions. \")]),_c('v-card-text',{staticClass:\"px-6 py-0\"},[_c('HistoricalOutliersTable',{attrs:{\"selected\":_vm.selectedRows,\"loading\":_vm.loading,\"headers\":_vm.headers,\"selection\":_vm.rows,\"tagsList\":_vm.tagsList,\"vesselIds\":_vm.vesselIds},on:{\"update:selected\":function($event){_vm.selectedRows=$event}}})],1),_c('v-card-actions',{staticClass:\"px-6 py-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"btn-undo primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"click\":_vm.updateOutliers}},[_vm._v(\" Undo Action \")])],1)],1)],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('v-data-table',{staticClass:\"data-quality-table historical-data-table\",attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.selection,\"item-key\":\"id\",\"show-select\":\"\",\"items-per-page\":_vm.pageLimit,\"hide-default-footer\":_vm.isLessThanLimit},scopedSlots:_vm._u([{key:\"header.vesselName\",fn:function(ref){\nvar header = ref.header;\nreturn [(!_vm.loading)?_c('div',{staticClass:\"th-cell d-inline-flex\"},[_c('span',[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('v-icon',{attrs:{\"color\":\"secondary50\",\"size\":\"18\"}},[_vm._v(\"mdi-filter-variant\")])],1),_c('v-select',{staticClass:\"custom-select\",attrs:{\"items\":_vm.vessels,\"menu-props\":{\n maxHeight: '400',\n contentClass: 'custom-select-content',\n transition: 'slide-x-transition',\n openOnHover: true,\n },\"item-text\":\"name\",\"return-object\":\"\",\"multiple\":\"\"},scopedSlots:_vm._u([{key:\"append-item\",fn:function(){return [_c('v-divider',{staticClass:\"mb-2\"}),_c('v-list-item',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.clearSelection}},[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"pl-1\"},[_vm._v(\" Clear selection \")])],1)],1)]},proxy:true}],null,true),model:{value:(_vm.filterByVessels),callback:function ($$v) {_vm.filterByVessels=$$v},expression:\"filterByVessels\"}})],1):_vm._e()]}},{key:\"header.featureName\",fn:function(ref){\n var header = ref.header;\nreturn [(!_vm.loading)?_c('div',{staticClass:\"th-cell d-inline-flex\"},[_c('span',[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('v-icon',{attrs:{\"color\":\"secondary50\",\"size\":\"18\"}},[_vm._v(\"mdi-filter-variant\")])],1),_c('v-select',{staticClass:\"custom-select\",attrs:{\"items\":_vm.dataTagList,\"menu-props\":{\n maxHeight: '400',\n contentClass: 'custom-select-content',\n transition: 'slide-x-transition',\n openOnHover: true,\n },\"item-text\":\"name\",\"return-object\":\"\",\"multiple\":\"\"},scopedSlots:_vm._u([{key:\"append-item\",fn:function(){return [_c('v-divider',{staticClass:\"mb-2\"}),_c('v-list-item',{staticClass:\"cursor-pointer\",on:{\"click\":_vm.clearSelection}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Clear selection \")])],1)],1)]},proxy:true}],null,true),model:{value:(_vm.filterByTags),callback:function ($$v) {_vm.filterByTags=$$v},expression:\"filterByTags\"}})],1):_vm._e()]}},{key:\"item.action\",fn:function(ref){\n var value = ref.value;\nreturn [_c('span',{class:_vm.actionClasses(value)},[_vm._v(_vm._s(value === 'Deleted' ? 'Removed' : value))])]}},{key:\"item.value\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',[_vm._v(_vm._s(item.value)+\" \"+_vm._s(_vm.featureUnit(item.featureName)))])]}}],null,true),model:{value:(_vm.selectedRows),callback:function ($$v) {_vm.selectedRows=$$v},expression:\"selectedRows\"}})}\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, PropSync, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\n// types\nimport { ExtendedVessel } from \"@/types/Vessel\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\n\nconst DataQuality = getModule(DataQualityModule, store);\nconst Vessels = getModule(VesselsModule, store);\n\n@Component({\n components: {},\n})\nexport default class HistoricalOutliersTable extends Vue {\n @PropSync(\"selected\", { type: Array, default: () => [] }) selectedRows!: Object[];\n @Prop({ type: Boolean, default: false }) loading!: Boolean;\n @Prop({ type: Array, default: () => [] }) selection!: Object[];\n @Prop({ type: Array, default: () => [] }) headers!: Object[];\n @Prop({ type: Array, default: () => [] }) tagsList!: Object[];\n @Prop({ type: Array, default: () => [] }) vesselIds!: Object[];\n\n item: any = {};\n filterByVessels: ExtendedVessel[] = [];\n filterByTags: any[] = [];\n pageLimit = 10;\n\n // @Getters\n get vessels(): ExtendedVessel[] {\n return Vessels.extendedVessels.filter(vessel => this.vesselIds.includes(vessel.id));\n }\n\n get isLessThanLimit(): boolean {\n return this.selection.length <= this.pageLimit;\n }\n\n get dataTagList(): any[] {\n return this.tagsList;\n }\n // @Methods\n featureUnit(featureName: string): string {\n return DataQuality.featureValues.find(feature => feature.name === featureName)?.unit.caption || \"n/a\";\n }\n\n clearSelection(): void {\n this.filterByVessels = [];\n }\n\n actionClasses(action: string): any[] {\n return [{ \"action-span\": action !== \"N/A\" }, { acknowledged: action === \"Acknowledged\" }, { deleted: action === \"Deleted\" }];\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!./HistoricalOutliersTable.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!./HistoricalOutliersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HistoricalOutliersTable.vue?vue&type=template&id=e43276b6&scoped=true&\"\nimport script from \"./HistoricalOutliersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./HistoricalOutliersTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HistoricalOutliersTable.vue?vue&type=style&index=0&id=e43276b6&scoped=true&lang=scss&\"\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 \"e43276b6\",\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 { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VDataTable,VDivider,VIcon,VListItem,VListItemContent,VListItemTitle,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, PropSync } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport dateHelper from \"Utilities/date-helper\";\n// types\nimport { HistoricalOutliersRow } from \"@/types/dataQuality/HistoricalOutliersRow\";\nimport { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\nimport { DataOutlier } from \"@/types/dataQuality/dataOutliers\";\nimport { UserProfile } from \"@/types/userProfile\";\n// components\nimport HistoricalOutliersTable from \"@/components/dataQuality/HistoricalOutliersTable.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport UsersModule from \"@/store/clients/Users.module\";\nimport SnackbarModule from \"@/store/clients/Snackbar.module\";\n\nconst DataQuality = getModule(DataQualityModule, store);\nconst Vessels = getModule(VesselsModule, store);\nconst Users = getModule(UsersModule, store);\nconst Snackbar = getModule(SnackbarModule, store);\n\n@Component({\n components: {\n HistoricalOutliersTable,\n },\n})\nexport default class HistoricalModal extends Vue {\n @PropSync(\"value\", { required: true }) isModalActive!: boolean;\n @Prop({ type: String, default: \"1290px\" }) width!: string;\n @Prop() data!: { featureName: string; vesselId: number; vesselName: string; outliers: DataOutlier[] }[];\n\n selectedRows: HistoricalOutliersRow[] = [];\n selectedColumn = \"\";\n searchTerm = \"\";\n\n // @Getters\n get loading(): boolean {\n return DataQuality.modalLoadingState;\n }\n\n get headers(): DataQualityHeader[] {\n return [\n { text: \"Vessel\", value: \"vesselName\", sortable: false },\n { text: \"Feature\", value: \"featureName\", sortable: false },\n { text: \"Outlier Value\", value: \"value\" },\n { text: \"Date & Time\", value: \"date\" },\n { text: \"Action\", value: \"action\" },\n { text: \"Performed by\", value: \"userName\" },\n { text: \"Action date\", value: \"actionDate\" },\n ];\n }\n\n get rows(): HistoricalOutliersRow[] {\n return this.data.flatMap(item =>\n item.outliers\n .map(outlier => {\n const userPerformedAction = this.users.find(u => {\n if (!outlier.auditLogs || outlier.auditLogs.length === 0) return;\n return outlier.auditLogs[outlier.auditLogs.length - 1].userId === u.id;\n });\n return {\n id: outlier.id,\n action: outlier.auditLogs && outlier.auditLogs.length ? outlier.auditLogs[outlier.auditLogs.length - 1].action : \"N/A\",\n vesselName: item.vesselName,\n featureName: item.featureName,\n value: Number(outlier.value).toFixed(6),\n timestamp: outlier.timestamp,\n date: `${this.getFormatedDateTimeString(outlier.timestamp)} UTC`,\n isDeleted: outlier.isDeleted,\n isAcknowledged: outlier.isAcknowledged,\n userName: userPerformedAction ? userPerformedAction.name : \"N/A\",\n actionDate: outlier.auditLogs && outlier.auditLogs.length ? `${this.getFormatedDateTimeString(outlier.auditLogs[outlier.auditLogs.length - 1].timestamp)} UTC` : \"N/A\",\n };\n })\n .filter(outlier => outlier.isAcknowledged === true || outlier.isDeleted === true)\n );\n }\n\n get vesselIds(): number[] {\n const vesselIds = this.data.filter(item => item.outliers.length > 0).map(item => item.vesselId);\n return Array.from(new Set(vesselIds));\n }\n\n get tagsList(): string[] {\n const featureNames = this.rows.map(row => row.featureName);\n return Array.from(new Set(featureNames));\n }\n\n get isDisabled(): boolean {\n return this.selectedRows.length === 0;\n }\n\n get users(): UserProfile[] {\n return Users.users;\n }\n\n // @Methods\n open(): void {\n this.isModalActive = true;\n this.$emit(\"open\");\n }\n\n close(): void {\n this.isModalActive = false;\n this.selectedRows = [];\n this.$emit(\"close\");\n }\n\n async updateOutliers(): Promise {\n const acknowledgedOutliers = this.selectedRows.map(row => {\n return {\n id: row.id,\n isAcknowledged: false,\n isDeleted: false,\n value: Number(row.value),\n timestamp: row.timestamp,\n };\n });\n await DataQuality.updateOutliersAcknowledge(acknowledgedOutliers);\n await DataQuality.updateOutliersRemove(acknowledgedOutliers);\n this.$emit(\"updateOutliers\");\n Snackbar.showSnackbar({ text: \"Outlier(s) status successfully updated\", color: \"success\" });\n this.close();\n }\n\n getFormatedDateTimeString(timestamp: string): string {\n return dateHelper.getFormatedDateTimeString(timestamp);\n }\n\n // @Hooks\n async created(): Promise {\n await Promise.all([Vessels.refreshExtendedVessels(), Users.refreshUsers()]);\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!./HistoricalModal.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!./HistoricalModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HistoricalModal.vue?vue&type=template&id=3fba2620&scoped=true&\"\nimport script from \"./HistoricalModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./HistoricalModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HistoricalModal.vue?vue&type=style&index=0&id=3fba2620&scoped=true&lang=scss&\"\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 \"3fba2620\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VDialog,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"max-width\":_vm.width,\"content-class\":\"ManageModal\",\"retain-focus\":false,\"scrollable\":\"\"},on:{\"click:outside\":function($event){return _vm.close()}},model:{value:(_vm.isModalActive),callback:function ($$v) {_vm.isModalActive=$$v},expression:\"isModalActive\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-6 pt-6 pb-0 mb-5 font-weight-medium\"},[_c('span',[_vm._v(\"Settings\")]),_c('v-btn',{staticClass:\"close-btn ml-auto\",attrs:{\"color\":\"mainGrey100\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',{attrs:{\"size\":\"14\"}},[_vm._v(\"mdi-close\")])],1)],1),_c('v-card-subtitle',{staticClass:\"mainGrey100--text pa-0 px-6 mb-6\"},[_vm._v(\" Set ranges for outlier detection. Recalculating outliers and updating the table may take up to 24 hours \")]),_c('v-card-text',{staticClass:\"feature-item-list px-6 py-0\"},_vm._l((_vm.featureConfigs),function(config){return _c('div',{key:config.featureName,staticClass:\"feature-item\"},[_c('p',{staticClass:\"feature-item__headline mb-2\"},[_vm._v(_vm._s(config.featureName))]),_c('div',{staticClass:\"feature-item__inputs\",class:{ 'dirty': _vm.featureInputDirtyList.includes(config.featureName) }},[_c('div',{staticClass:\"feature-item__input\"},[_c('label',{staticClass:\"feature-item__label mb-2\"},[_vm._v(\"Min\")]),_c('v-text-field',{attrs:{\"value\":config.lowerBound,\"suffix\":_vm.featureUnit(config.featureName),\"type\":\"number\",\"hide-details\":\"auto\",\"outlined\":\"\",\"dense\":\"\"},on:{\"input\":function($event){return _vm.onThresholdsLowerChanged(config.featureName, $event)}}})],1),_c('div',{staticClass:\"feature-item__input\"},[_c('label',{staticClass:\"feature-item__label mb-2\"},[_vm._v(\"Max\")]),_c('v-text-field',{attrs:{\"value\":config.upperBound,\"suffix\":_vm.featureUnit(config.featureName),\"type\":\"number\",\"hide-details\":\"auto\",\"outlined\":\"\",\"dense\":\"\"},on:{\"input\":function($event){return _vm.onThresholdUpperChanged(config.featureName, $event)}}})],1)])])}),0),_c('div',{staticClass:\"loader-overlay\",class:{ 'active': _vm.isDataLoading }},[_c('v-progress-circular',{attrs:{\"size\":70,\"width\":7,\"color\":\"primary\",\"indeterminate\":\"\"}})],1),_c('v-card-actions',{staticClass:\"px-6 py-5\"},[_c('v-spacer'),_c('v-btn',{staticClass:\"btn-remove primary--text\",attrs:{\"color\":\"lightGrey100\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.updateFeatureConfigs()}}},[_vm._v(\" Confirm \")])],1)],1)],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, PropSync, Watch } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport moment from \"moment\";\n// types\nimport { ManageOutliersRow } from \"@/types/dataQuality/ManageOutliersRow\";\nimport { DataQualityHeader } from \"@/types/dataQuality/dataQualityTable\";\nimport { FeatureConfig } from \"@/types/dataQuality/dataOutliers\";\n// components\nimport ManageOutliersTable from \"@/components/dataQuality/ManageOutliersTable.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\n\nconst DataQuality = getModule(DataQualityModule, store);\n\n@Component({\n components: {},\n})\nexport default class ThresholdsModal extends Vue {\n @PropSync(\"value\", { required: true }) isModalActive!: boolean;\n @Prop({ type: String, default: \"448px\" }) width!: string;\n @Prop() readonly isDataLoading!: boolean;\n @Prop({ type: Array, default: () => [] }) featureConfigs!: FeatureConfig[];\n\n featureInputDirtyList: string[] = [];\n\n // @Getters\n\n // @Methods\n open(): void {\n this.isModalActive = true;\n this.$emit(\"open\");\n }\n\n close(): void {\n this.isModalActive = false;\n this.$emit(\"close\");\n }\n\n onThresholdUpperChanged(featureName: string, value: string | number) {\n if (!this.featureInputDirtyList.includes(featureName)) this.featureInputDirtyList.push(featureName);\n\n const config = this.featureConfigs.find(c => c.featureName === featureName);\n if (config) {\n config.upperBound = value === \"\" ? null : Number(value);\n }\n }\n\n onThresholdsLowerChanged(featureName: string, value: string | number) {\n if (!this.featureInputDirtyList.includes(featureName)) this.featureInputDirtyList.push(featureName);\n\n const config = this.featureConfigs.find(c => c.featureName === featureName);\n if (config) {\n config.lowerBound = value === \"\" ? null : Number(value);\n }\n }\n\n featureUnit(featureName: string): string {\n return DataQuality.featureValues.find(feature => feature.name === featureName)?.unit.caption || \"n/a\";\n }\n\n updateFeatureConfigs(): void {\n this.$emit(\"updateFeatureConfigs\", this.featureConfigs);\n this.close();\n }\n\n // @Hooks\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!./ThresholdsModal.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!./ThresholdsModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThresholdsModal.vue?vue&type=template&id=c64f3218&scoped=true&\"\nimport script from \"./ThresholdsModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThresholdsModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThresholdsModal.vue?vue&type=style&index=0&id=c64f3218&scoped=true&lang=scss&\"\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 \"c64f3218\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardSubtitle,VCardText,VCardTitle,VDialog,VIcon,VProgressCircular,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-outliers-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\":\"\",\"page\":_vm.currentPage},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},\"page-count\":function($event){_vm.pageCount = $event},\"current-items\":function($event){_vm.currentItems = $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))]),(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;\nvar index = ref.index;\nreturn [(!_vm.loading)?_c('tr',{ref:(\"rowIndex\" + index),class:{ 'redirected': _vm.highlightRedirectedVessel(item, (\"rowIndex\" + index)) }},_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:{\"onSettingsClick\":function($event){return _vm.onSettingsClick(item)},\"showOutliersInManageModal\":_vm.showOutliersInManageModal}}):_vm._e()],1)}),0):_vm._e()]}},{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}])})],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:{\"showOutliersInManageModal\":_vm.showOutliersInManageModal}}):(_vm.isActions)?_c('div',[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.settings}},[_c('v-icon',{attrs:{\"color\":\"darkGrey75\",\"size\":\"20\"}},[_vm._v(\"mdi-cog-outline\")])],1)],1):_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',{class:['data-indicator', 'd-flex', _vm.data.align]},[(_vm.data.type === 'dataIndicator')?_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):_c('div',{staticClass:\"outliers-value d-flex align-center justify-center\",class:_vm.outlierValueClasses,on:{\"click\":_vm.showOutliersInManageModal}},[(_vm.data.status)?_c('span',[_vm._v(_vm._s(_vm.data.text))]):_c('v-icon',{attrs:{\"size\":14,\"color\":\"success100\"}},[_vm._v(\" mdi-check \")])],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\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 // @Getters\n get isNotAvailable(): boolean {\n return this.data.status === null;\n }\n\n get statusColor() {\n if (!this.data) return;\n if (this.data.status === 0) return \"success100\";\n else if (Number(this.data.status) > 0 && Number(this.data.status) <= 10) return \"warning100\";\n else if (Number(this.data.status) > 10) return \"error100\";\n else return \"darkGrey100\";\n }\n\n get outlierValueClasses() {\n if (!this.data) return;\n if (this.data.status === 0) return \"no-outliers\";\n else if (Number(this.data.status) > 0 && Number(this.data.status) <= 10) return \"minor\";\n else if (Number(this.data.status) > 10) return \"major\";\n else return \"not-available\";\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 showOutliersInManageModal(): void {\n if (this.outlierValueClasses === \"no-outliers\" || this.outlierValueClasses === \"not-available\") return;\n this.$emit(\"showOutliersInManageModal\", this.data);\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=2bd22b82&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=2bd22b82&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 \"2bd22b82\",\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\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n// components\nimport DataIndicator from \"@/components/dataQuality/DataOutliersTable/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 // @Getters\n get isIndicator(): boolean {\n if (!this.data) return false;\n return this.data.type === \"dataIndicator\" || this.data.type === \"percentIndicator\";\n }\n\n get isActions(): boolean {\n if (!this.data) return false;\n return this.data.type === \"settings\";\n }\n\n get IndicatorData(): IndicatorData | undefined {\n if (!this.isIndicator) return;\n return {\n column: this.data.column,\n vesselId: this.data.vesselId,\n status: this.data.value,\n type: this.data.type,\n text: this.indicatorText,\n icon: this.indicatorIcon,\n align: this.data.align,\n link: null,\n };\n }\n\n get indicatorText(): string {\n if (this.data.column === \"overallStatus\") {\n if (this.data.value === 0) return \"No Outliers\";\n else if (Number(this.data.value) > 0 && Number(this.data.value) <= 10) return \"Minor Outliers\";\n else if (Number(this.data.value) > 10) return \"Major Outliers\";\n else return \"N/A\";\n } else {\n return this.data.value ? this.data.value.toString() : \"\";\n }\n }\n\n get indicatorIcon(): string {\n if (this.data.column === \"overallStatus\") {\n if (this.data.value === 0) return \"mdi-database-check\";\n else if (Number(this.data.value) > 0 && Number(this.data.value) <= 10) return \"mdi-database-alert\";\n else if (Number(this.data.value) > 10) return \"mdi-database-alert\";\n else return \"mdi-close-circle\";\n } else {\n return \"mdi-close-circle\";\n }\n }\n\n // @Methods\n settings() {\n this.$emit(\"onSettingsClick\");\n }\n\n showOutliersInManageModal(indicatorData: IndicatorData): void {\n this.$emit(\"showOutliersInManageModal\", indicatorData);\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=29847af0&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=29847af0&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 \"29847af0\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, IndicatorData, DataQualityHeader, DataQualityRow } from \"@/types/dataQuality/dataQualityTable\";\n\n@Component({\n components: {\n DataCell,\n },\n})\nexport default class DataOutliersTable 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 pageCount = 0;\n currentItems: DataQualityRow[] = [];\n currentPage = 1;\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@7` };\n }\n\n // @Methods\n cellData(row: DataQualityRow, header: DataQualityHeader, index: number): any {\n return {\n column: header.value,\n columnName: header.text,\n vesselId: row.vesselId,\n type: header.type,\n align: header.align,\n value: row[header.value].value,\n link: row[header.value].link,\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 highlightRedirectedVessel(item: DataQualityRow, rowIndex: string): boolean {\n const vesselQuery = this.$route.query.find;\n if (!vesselQuery) return false;\n\n let match = item.vesselName.value.includes(vesselQuery);\n if (match) {\n setTimeout(() => {\n if (!this.$refs[`rowIndex${rowIndex}`]) return;\n (this.$refs[`rowIndex${rowIndex}`] as any).classList.remove(\"redirected\");\n }, 8000);\n } else {\n const redirectedVesselRowIndex = this.rows.findIndex((row: DataQualityRow) => row.vesselName.value.includes(vesselQuery));\n if (redirectedVesselRowIndex === -1) return false;\n const pageIndex = Math.floor(redirectedVesselRowIndex / this.pageLimit);\n this.currentPage = pageIndex + 1; // Update the page to the correct page index\n setTimeout(() => {\n Object.keys(this.$refs).forEach((key: any) => {\n if ((this.$refs[key] as any).classList.contains(\"redirected\")) (this.$refs[key] as any).classList.remove(\"redirected\");\n });\n }, 8000);\n }\n return match;\n }\n\n onSettingsClick(row: any): void {\n this.$emit(\"onSettingsClick\", row.vesselId);\n }\n\n showOutliersInManageModal(indicatorData: IndicatorData): void {\n this.$emit(\"showOutliersInManageModal\", indicatorData);\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\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=6de3a56e&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=6de3a56e&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 \"6de3a56e\",\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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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\";\n// utilities\nimport dateHelper from \"@/Scripts/utilities/date-helper\";\nimport moment from \"moment\";\n// types\nimport { DataQualityHeader, IndicatorData } from \"@/types/dataQuality/dataQualityTable\";\nimport { headers } from \"./VDataTableHeaders/DataOutliers\";\nimport { DataOutlier, FeatureConfig } from \"@/types/dataQuality/dataOutliers\";\n// components\nimport ManageModal from \"@/components/dataQuality/OutliersModals/ManageModal.vue\";\nimport HistoricalModal from \"@/components/dataQuality/OutliersModals/HistoricalModal.vue\";\nimport ThresholdsModal from \"@/components/dataQuality/OutliersModals/ThresholdsModal.vue\";\nimport DataOutliersTable from \"@/components/dataQuality/DataOutliersTable/index.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport DataQualityModule from \"@/store/clients/DataQuality.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport UserModule from \"@/store/clients/User.module\";\nimport SnackbarModule from \"@/store/clients/Snackbar.module\";\n\nconst Vessels = getModule(VesselsModule, store);\nconst DataQuality = getModule(DataQualityModule, store);\nconst User = getModule(UserModule, store);\nconst Snackbar = getModule(SnackbarModule, store);\n\n@Component({\n components: {\n DataOutliersTable,\n ManageModal,\n HistoricalModal,\n ThresholdsModal,\n },\n})\nexport default class DataOutliers extends Vue {\n @Ref(\"RefManageModal\") RefManageModal!: any;\n\n searchQuery = \"\";\n ManageModal = false;\n HistoricalModal = false;\n ThresholdsModal = false;\n isThresholdsModalDataLoading = false;\n isTableReady = false;\n // TODO current dayte and year back\n dates: string[] = [moment().subtract(1, \"years\").format(\"YYYY-MM-DD\"), moment().format(\"YYYY-MM-DD\")];\n date = moment().format(\"YYYY-MM-DD\");\n maxDate = moment().format(\"YYYY-MM-DD\");\n menu = false;\n headers: DataQualityHeader[] = headers;\n featureConfigs: FeatureConfig[] = [];\n\n // @GETTERS\n get isEnvDevelopment(): boolean {\n return process.env.NODE_ENV === \"development\";\n }\n\n vesselName(vesselId: number): string | undefined {\n const vesselName = Vessels.extendedVessels.find(vessel => vessel.id === vesselId)?.name;\n if (!vesselName) return;\n return vesselName;\n }\n\n get loadingState() {\n return DataQuality.loadingState;\n }\n\n get dateRangeText() {\n return `${moment(this.dates[0]).format(\"ll\")} - ${moment(this.dates[1]).format(\"ll\")}`;\n }\n\n get dateRange() {\n return `${moment(this.dates[0]).format(\"DD MMM\")} - ${moment(this.dates[1]).format(\"DD MMM\")}`;\n }\n\n get queryRequest(): { companyId: number | null; fromDate?: string; toDate?: string } {\n return { companyId: User.userCompanyId, fromDate: this.dates[0], toDate: this.dates[1] };\n }\n\n get userCompanyId(): number | null {\n return User.userCompanyId;\n }\n\n get outlierList(): { featureName: string; vesselId: number; vesselName: string; outliers: DataOutlier[] }[] {\n return DataQuality.companyOutliers\n .map(item => {\n const vessel = Vessels.extendedVessels.find(v => v.id === item.vesselId);\n return item.data.map(indicator => {\n return {\n vesselId: item.vesselId,\n vesselName: vessel ? vessel.name : \"Unknown Vessel\",\n featureName: indicator.featureName,\n outliers: indicator.outliers || [],\n };\n });\n })\n .flat();\n }\n\n get uniqueFeatureNames(): string[] {\n const featureNames = this.outlierList.map(item => item.featureName);\n return Array.from(new Set(featureNames));\n }\n\n get rows(): any {\n var rows = DataQuality.companyOutliers.map((item, index) => {\n const vesselName = this.vesselName(item.vesselId);\n const indicators = item.data.reduce((acc: any, indicator) => {\n acc[indicator.featureName.replace(/\\s/g, \"\")] = {\n value: indicator.value,\n link: null,\n };\n return acc;\n }, {});\n return {\n key: index,\n vesselId: item.vesselId,\n vesselName: {\n value: vesselName ?? \"Uknown Vessel\",\n link: vesselName ? `/Vessel/${item.vesselId}/${encodeURIComponent(vesselName)}` : null,\n },\n overallStatus: {\n value: item.overallStatus,\n link: null,\n },\n ...indicators,\n settings: {\n value: null,\n link: null,\n },\n };\n });\n if (this.searchQuery && this.searchQuery.trim()) {\n const query = this.searchQuery.toLowerCase();\n return rows.filter(item => item.vesselName.value.toLowerCase().includes(query));\n }\n\n return rows;\n }\n // @METHODS\n async setDateRange(date: string): Promise {\n (this.$refs.datepickerMenu as any).save(date);\n await DataQuality.fetchCompanyOutliers(this.queryRequest);\n }\n\n async openThresholdsModal(vesselId: string): Promise {\n this.isThresholdsModalDataLoading = true;\n this.ThresholdsModal = true;\n this.featureConfigs = await DataQuality.fetchFeatureConfigs(vesselId);\n if (this.featureConfigs.length === 0) {\n this.featureConfigs = this.uniqueFeatureNames.map(name => {\n return {\n featureName: name,\n vesselId: Number(vesselId),\n lowerBound: 0,\n upperBound: 0,\n };\n });\n }\n this.isThresholdsModalDataLoading = false;\n }\n\n showOutliersInManageModal(indicatorData: IndicatorData): void {\n this.RefManageModal.setSelectedOutliers({ feature: indicatorData.column, vesselId: indicatorData.vesselId });\n }\n\n async updateFeatureConfigs(featureConfigs: FeatureConfig[]) {\n try {\n await DataQuality.updateFeatureConfigs(featureConfigs);\n await Promise.all([DataQuality.fetchCompanyOutliers(this.queryRequest), DataQuality.fetchFeatureValues()]);\n\n Snackbar.showSnackbar({ text: \"Thresholds successfully updated\", color: \"success\", timeout: 3000 });\n setTimeout(() => {\n Snackbar.showSnackbar({ text: \"Outliers will update within 24 hours.\", color: \"info\", timeout: 15000 });\n }, 3000);\n } catch (error) {\n console.error(error);\n }\n }\n\n async onOutlierStateChanged(): Promise {\n await DataQuality.fetchCompanyOutliers(this.queryRequest);\n }\n // @HOOKS\n async created(): Promise {\n await Promise.all([Vessels.refreshExtendedVessels(), DataQuality.fetchCompanyOutliers(this.queryRequest), DataQuality.fetchFeatureValues()]);\n const dataIndicatorHeaders = DataQuality.companyOutliers[0].data.map(indicator => ({\n text: indicator.featureName,\n type: \"percentIndicator\",\n value: indicator.featureName.replace(/\\s/g, \"\"),\n width: \"140px\",\n align: \"center\",\n class: \"text-center\",\n sortable: false,\n }));\n // add settings column\n dataIndicatorHeaders.push({\n text: \"\",\n type: \"settings\",\n align: \"center\",\n value: \"settings\",\n class: \"text-center\",\n sortable: false,\n width: \"65px\",\n });\n this.headers = [...this.headers, ...dataIndicatorHeaders];\n this.isTableReady = 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!./DataOutliers.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!./DataOutliers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataOutliers.vue?vue&type=template&id=e23847f2&scoped=true&\"\nimport script from \"./DataOutliers.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataOutliers.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataOutliers.vue?vue&type=style&index=0&id=e23847f2&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 \"e23847f2\",\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VContainer,VDatePicker,VIcon,VMenu,VSpacer,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!./DataIndicator.vue?vue&type=style&index=0&id=2bd22b82&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!./ManageModal.vue?vue&type=style&index=0&id=694fb022&scoped=true&lang=scss&\"","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!./HistoricalOutliersTable.vue?vue&type=style&index=0&id=e43276b6&scoped=true&lang=scss&\""],"sourceRoot":""}