{"version":3,"sources":["webpack:///./src/views/vessel/Diagnostics/index.vue?7f36","webpack:///./src/views/vessel/Diagnostics/DiagnosticsKyma.vue?e33e","webpack:///./src/views/vessel/Diagnostics/DiagnosticsKyma.vue","webpack:///./src/views/vessel/Diagnostics/DiagnosticsKyma.vue?1e16","webpack:///./src/views/vessel/Diagnostics/DiagnosticsKyma.vue?4c1b","webpack:///./src/views/vessel/Diagnostics/DiagnosticsISO.vue?e0bf","webpack:///./src/Scripts/utilities/auto-granularity.js","webpack:///./src/components/Vessel/VesselEventsTable.vue?61bc","webpack:///./src/components/Vessel/VesselEventsTable.vue","webpack:///./src/components/Vessel/VesselEventsTable.vue?abc7","webpack:///./src/components/Vessel/VesselEventsTable.vue?8cae","webpack:///./src/components/PerformanceIndicatorChart.vue?c3de","webpack:///./src/components/PerformanceIndicatorChart.vue","webpack:///./src/components/PerformanceIndicatorChart.vue?9cd6","webpack:///./src/components/PerformanceIndicatorChart.vue?8ad5","webpack:///./src/views/vessel/Diagnostics/DiagnosticsISO.vue","webpack:///./src/views/vessel/Diagnostics/DiagnosticsISO.vue?1844","webpack:///./src/views/vessel/Diagnostics/DiagnosticsISO.vue?4df7","webpack:///./src/views/vessel/Diagnostics/index.vue","webpack:///./src/views/vessel/Diagnostics/index.vue?cbd2","webpack:///./src/views/vessel/Diagnostics/index.vue?e492","webpack:///./src/components/Vessel/VesselEventsTable.vue?a3c4","webpack:///./src/components/PerformanceIndicatorChart.vue?8cc3","webpack:///./src/views/vessel/Diagnostics/index.vue?e91d","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/views/vessel/Diagnostics/DiagnosticsKyma.vue?0acc"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","DiagnosticViewTypes","on","onViewTypeChanged","model","value","callback","$$v","DiagnosticViewType","expression","component","tag","staticRenderFns","_e","staticStyle","scopedSlots","_u","key","fn","_v","proxy","nativeOn","$event","stopPropagation","createEvent","eventTableHeaders","eventTableRows","ref","header","_s","text","_g","item","formatEventDate","date","type","origin","editEvent","event","deleteEvent","preventDefault","exportExcel","showSpeedLogDeviation","EditEventOpen","notification","duration","$set","message","_l","trend","longTrend","id","name","visible","showDiagnosticsDetails","Vessels","getModule","VesselsModule","store","VesselEvents","VesselEventsModule","LongTrends","LongTrendsModule","DiagnosticsKyma","detailsError","isLoading","showError","align","sortable","currentVessel","vessel","features","some","feature","vesselLongTrends","shipSpeedDeviationKey","Object","keys","forEach","push","allEvents","tableRows","events","timestamp","source","actions","Promise","all","fetchEvents","updateTrendEventTypes","fetchVesselLongTrends","console","warn","editVessel","open","success","vesselEvent","confirmDelete","confirmed","data","vesselId","diagnosticsDetails","LongTrendExportClient","moment","utc","format","Vue","__decorate","Ref","Component","components","FeatureNotAvailable","ConfirmDialog","EditVesselEvent","DiagnosticsDetails","DiagnosticCard","VBtn","VCheckbox","VDataTable","VDivider","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","VIcon","VSkeletonLoader","VSnackbar","VSpacer","VTooltip","eventsByVesselId","ISO19030PerformanceLogVariable","logDataMinDate","eventUpdated","chart","i","getISOChartTypePeriods","ISO19030PerformanceLogData","isAnyEventUpdated","selectedTimeInMinutes","style","maxWidth","openEventModal","tableHeaders","indexOf","_k","keyCode","cancel","apply","arguments","eventModal","typeSelectValidation","required","eventTypes","_b","dateValidation","indockingDateMenu","startTimestamp","outdockingDateMenu","formattedDataMinDate","thresholdValidation","_n","dateMenu","v","length","isSaveButtonDisabled","saveEvent","ISO19030","ISO19030Module","Snackbar","SnackbarModule","VesselEventsTable","isEventEditing","endTimestamp","eventType","maintenanceThreshold","comment","Number","$route","params","Boolean","syncEvents","find","isEventMaintenance","dataMinDate","dateHelper","getFormatedDateString","dates","mode","row","e","updateEvent","$emit","showSnackbar","color","resetFormData","titleFontSize","PropSync","Prop","default","VCard","VCardActions","VCardText","VCardTitle","VDatePicker","VDialog","VForm","VMenu","VSelect","VTextField","VTextarea","title","ChartOptions","chartReady","chartEvents","formatDateForDisplay","selectedEvent","domProps","htmlStatistics","isEvaluationPeriodAvailable","hasCalculatedPeriods","PerformanceIndicatorChart","chartLoaded","mutatedPeriods","JSON","parse","stringify","periods","setTimeout","update","reflow","setDryDockingEvaluationPeriod","setEvaluationPeriodAverage","setReferencesPeriodsAverage","setDryDockingDifferenceInPerformance","setSelectedReferencePeriodAverage","setDifferenceInPerformanceOfSelectedEvent","setTriggerValue","selectedEvaluationPeriod","formatDateString","periodStartDate","selectedReferencePeriod","periodEndDate","filter","period","periodType","referencePeriods","reduce","acc","average","findPeriodOfSelectedEvent","eventId","evaluationPeriods","lastDryDockingEvent","currentDate","dryDockingEvents","diff","lastMaintenanceEvent","maintenanceEvents","isMaintenanceEffectChart","differenceInPerformanceOfSelectedEvent","toFixed","toLowerCase","includes","referencePeriodsWithoutCurrentAverage","triggerValue","referencePeriodsWithoutCurrent","isBefore","dryDockingDifferenceInPerformance","isDryDockingChart","set","periodLines","PeriodLine","Date","isPeriodReferenceType","firstReferenceIndex","findIndex","line","firstEvaluationIndex","delete","startDateMS","endDateMS","lineWidth","periodLineLabel","linkedTo","marker","radius","symbol","zIndex","dateMS","x","y","dataLabels","enabled","useHTML","formatter","performanceData","series","remove","scatterPoints","entries","map","scatterPointsSerie","stickyTracking","fillColor","maintenancePlotLines","dockingPlotLines","dryDockingPlotBands","selectedEventPlotBand","plotLines","html","getPlotLineLabelsHtml","valueOf","width","label","rotation","letter","plotBands","from","to","className","plotBandStartDate","plotBandEndDate","eventPeriods","isAfter","start","end","height","spacingTop","zoomType","fontFamily","Highcharts","ctx","options","chartSettings","legend","yAxis","labels","min","max","xAxis","plotOptions","scatter","tooltip","outside","headerFormat","pointFormat","valueDecimals","valueSuffix","xDateFormat","states","inactive","opacity","seriesData","credits","exporting","Watch","Chart","VAlert","LogVariables","LogVariablesModule","DiagnosticsISO","performanceIndicatorsLogVariable","ISOChartTypes","performanceIndicators","chartName","logVariableByName","_","isEmpty","minDate","maxDate","logDataMaxDate","minutesDiff","LogDataClient","findLogData","autoGranularity","fromDate","toDate","getTime","Math","abs","round","fetchPerformanceIndicators","fetchPerformanceIndicatorsData","state","initViewData","Store","Diagnostics","log","localStorage","setItem","strDiagnosticViewType","getItem","currentVesselLogVariables","refreshCurrentVesselLogVariables","parseInt","setDiagnosticViewType","baseMixins","mixins","extend","props","autoGrow","noResize","rowHeight","String","validator","isNaN","parseFloat","rows","computed","classes","noResizeHandle","call","watch","val","$nextTick","calculateInputHeight","$refs","input","_this$$refs$input","removeProperty","lazyValue","mounted","methods","scrollHeight","minHeight","genInput","onInput","onKeyDown","isFocused"],"mappings":"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","file":"js/chunk-234fcbba.bc39599e.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"diagnostics pt-15\"},[_c('v-card',{staticClass:\"diagnostic-view-select\",attrs:{\"color\":\"accent\",\"elevation\":\"3\",\"dark\":\"\"}},[_c('v-select',{attrs:{\"items\":_vm.DiagnosticViewTypes,\"item-text\":\"text\",\"label\":\"Diagnostics View Type\",\"hide-details\":\"\",\"return-object\":\"\",\"rounded\":\"\",\"filled\":\"\",\"dense\":\"\",\"dark\":\"\"},on:{\"change\":_vm.onViewTypeChanged},model:{value:(_vm.DiagnosticViewType),callback:function ($$v) {_vm.DiagnosticViewType=$$v},expression:\"DiagnosticViewType\"}})],1),_c(_vm.DiagnosticViewType.component,{tag:\"component\"})],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',[(_vm.featureEnabled)?_c('div',[(_vm.isLoading)?[_c('v-skeleton-loader',{attrs:{\"type\":\"table\",\"max-width\":\"800\"}}),(_vm.isLoading)?_c('v-skeleton-loader',{attrs:{\"type\":\"image, list-item-two-line, image, list-item-two-line, image, list-item-two-line\"}}):_vm._e()]:[_c('v-expansion-panels',{staticStyle:{\"max-width\":\"800px\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"white--text\",attrs:{\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" $expand \")])]},proxy:true}],null,false,2794704483)},[_c('span',{staticClass:\"font-weight-semibold\"},[_vm._v(\"Events\")]),_c('v-spacer'),_c('v-btn',{staticClass:\"mr-3 font-weight-semibold\",attrs:{\"small\":\"\",\"color\":\"white\",\"max-width\":\"150\"},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.createEvent()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_vm._v(\" New event \")],1)],1),_c('v-expansion-panel-content',[_c('v-data-table',{attrs:{\"headers\":_vm.eventTableHeaders,\"items\":_vm.eventTableRows,\"dense\":\"\",\"loading-text\":\"Loading... Please wait\",\"no-data-text\":\"No events\",\"hide-default-footer\":\"\",\"disable-pagination\":\"\",\"fixed-header\":\"\",\"sort-by\":\"date\",\"sort-desc\":true},scopedSlots:_vm._u([{key:\"header.date\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"header.name\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"header.type\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('span',_vm._g({staticClass:\"primary--text\"},on),[_vm._v(_vm._s(header.text))])]}}],null,true)},[_c('span',[_vm._v(\"Event can be either 'Trend event' or 'Info event'\")])])]}},{key:\"header.origin\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('span',_vm._g({staticClass:\"primary--text\"},on),[_vm._v(_vm._s(header.text))])]}}],null,true)},[_c('span',[_vm._v(\"Where was the event created\")])])]}},{key:\"header.actions\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"item.date\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(\" \"+_vm._s(_vm.formatEventDate(item.date))+\" \")])]}},{key:\"item.type\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"color\":item.type === 'TrendEvent' ? 'success' : 'info'}},on),[_vm._v(\" \"+_vm._s(item.type === \"TrendEvent\" ? \"mdi-alpha-t-circle\" : \"mdi-alpha-i-circle\")+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.type))])])]}},{key:\"item.origin\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(_vm._s(item.origin === \"Office\" ? \"mdi-home\" : \"mdi-ferry\"))])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.origin))])])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"mr-4\",attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.editEvent(item.event)}}},on),[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Edit event\")])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteEvent(item.event)}}},on),[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-delete-outline\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Delete event\")])])]}}],null,true)})],1)],1)],1),_c('v-divider',{staticClass:\"my-3\"}),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"mt-1 font-weight-semibold\",attrs:{\"small\":\"\",\"href\":\"#\",\"color\":\"accent\"},on:{\"click\":function($event){$event.preventDefault();return _vm.exportExcel()}}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-microsoft-excel\")]),_vm._v(\" Export all \")],1)]}}],null,false,443364442)},[_c('span',[_vm._v(\"Export all diagnostics data to Excel\")])]),_c('v-checkbox',{staticClass:\"pt-0 mt-1\",attrs:{\"label\":\"Show speed loss trend as displayed on the vessel\"},model:{value:(_vm.showSpeedLogDeviation),callback:function ($$v) {_vm.showSpeedLogDeviation=$$v},expression:\"showSpeedLogDeviation\"}})],1),_c('ConfirmDialog',{ref:\"confirmDelete\"}),_c('EditVesselEvent',{ref:\"editVessel\",attrs:{\"isOpen\":_vm.EditEventOpen},on:{\"update:isOpen\":function($event){_vm.EditEventOpen=$event},\"update:is-open\":function($event){_vm.EditEventOpen=$event}}}),_c('DiagnosticsDetails',{ref:\"diagnosticsDetails\"}),_c('v-snackbar',{attrs:{\"timeout\":_vm.notification.duration,\"color\":\"primary\"},model:{value:(_vm.notification.visible),callback:function ($$v) {_vm.$set(_vm.notification, \"visible\", $$v)},expression:\"notification.visible\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"dark\":\"\"}},[_vm._v(\"mdi-check\")]),_vm._v(_vm._s(_vm.notification.message)+\" \")],1),_c('div',{staticClass:\"d-flex flex-column\"},_vm._l((_vm.vesselLongTrends),function(trend){return _c('DiagnosticCard',{key:trend.longTrend.id,staticClass:\"mb-5\",attrs:{\"longTrendName\":trend.longTrend.name,\"visible\":trend.visible},on:{\"plotBandClicked\":_vm.showDiagnosticsDetails}})}),1)]],2):_c('FeatureNotAvailable')],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Ref, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport moment from \"moment\";\nimport LongTrendExportClient from \"@/Scripts/clients/long-trend-export-client\";\n//modules\nimport { getModule } from \"vuex-module-decorators\";\nimport LongTrendsModule from \"@/store/clients/LongTrends.module\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\nimport VesselEventsModule from \"@/store/clients/VesselEvents.module\";\n//components\nimport FeatureNotAvailable from \"@/components/FeatureNotAvailable.vue\";\nimport ConfirmDialog from \"@/components/ConfirmDialog.vue\";\nimport EditVesselEvent from \"@/components/EditVesselEvent.vue\";\nimport DiagnosticsDetails from \"@/components/diagnosticsDetails/DiagnosticsDetails.vue\";\nimport DiagnosticCard from \"@/components/DiagnosticCard.vue\";\n//types\nimport { VesselEvent } from \"@/types/vesselEvent\";\nimport { ExtendedVessel } from \"@/types/Vessel\";\nimport { IVesselLongTrend, IVesselLongTrends } from \"@/types/vesselLongTrends\";\n\nconst Vessels = getModule(VesselsModule, store);\nconst VesselEvents = getModule(VesselEventsModule, store);\nconst LongTrends = getModule(LongTrendsModule, store);\n\nexport interface IVesselLongTrendsExtended extends IVesselLongTrend {\n visible: boolean;\n}\n\n@Component({\n components: {\n FeatureNotAvailable,\n ConfirmDialog,\n EditVesselEvent,\n DiagnosticsDetails,\n DiagnosticCard,\n },\n})\nexport default class DiagnosticsKyma extends Vue {\n @Ref(\"confirmDelete\") confirmDelete!: any;\n @Ref(\"editVessel\") editVessel!: any;\n @Ref(\"diagnosticsDetails\") diagnosticsDetails!: any;\n EditEventOpen = false;\n detailsError = false;\n notification = {\n message: \"\",\n duration: 2000,\n visible: false,\n };\n\n isLoading = true;\n showError = false;\n showSpeedLogDeviation = true;\n\n get vessel(): ExtendedVessel | null {\n return Vessels.currentVessel;\n }\n\n get featureEnabled(): boolean {\n if (!this.vessel) return false;\n return this.vessel.features.some(feature => feature.name === \"Diagnostics\");\n }\n\n get vesselLongTrends(): IVesselLongTrendsExtended[] {\n const vesselLongTrends: IVesselLongTrendsExtended[] = [];\n const trend: IVesselLongTrends = { ...LongTrends.vesselLongTrends };\n const shipSpeedDeviationKey = \"ShipSpeedDev\";\n Object.keys(trend).forEach(key => {\n if (key === shipSpeedDeviationKey) {\n vesselLongTrends.push({ ...trend[key], visible: this.showSpeedLogDeviation });\n } else {\n vesselLongTrends.push({ ...trend[key], visible: true });\n }\n });\n\n return vesselLongTrends;\n }\n\n get events(): VesselEvent[] {\n return VesselEvents.allEvents;\n }\n\n eventTableHeaders = [\n { text: \"Date\", align: \"start\", sortable: false, value: \"date\" },\n { text: \"Name\", align: \"start\", sortable: false, value: \"name\" },\n { text: \"Type\", align: \"start\", sortable: false, value: \"type\" },\n { text: \"Origin\", align: \"start\", sortable: false, value: \"origin\" },\n { text: \"Actions\", align: \"start\", sortable: false, value: \"actions\" },\n ];\n\n get eventTableRows(): any[] {\n const tableRows: any[] = [];\n\n this.events.forEach(event => {\n tableRows.push({\n event,\n date: event.timestamp,\n name: event.name,\n type: event.type,\n origin: event.source,\n actions: [\"edit\", \"delete\"],\n });\n });\n\n return tableRows;\n }\n\n async created(): Promise {\n if (!this.vessel) {\n this.showError = true;\n } else {\n try {\n await Promise.all([VesselEvents.fetchEvents(this.vessel.id), VesselEvents.updateTrendEventTypes(), LongTrends.fetchVesselLongTrends(this.vessel.id)]);\n } catch (error) {\n console.warn(error);\n this.showError = true;\n } finally {\n this.isLoading = false;\n }\n }\n }\n\n async createEvent(): Promise {\n const success = await this.editVessel.open();\n if (success) {\n this.notification.message = \"Event created\";\n this.notification.visible = true;\n this.vessel ? LongTrends.fetchVesselLongTrends(this.vessel.id) : null;\n }\n }\n\n async editEvent(vesselEvent: VesselEvent): Promise {\n const success = await this.editVessel.open(vesselEvent);\n if (success) {\n this.notification.message = \"Event edited\";\n this.notification.visible = true;\n this.vessel ? LongTrends.fetchVesselLongTrends(this.vessel.id) : null;\n }\n }\n\n async deleteEvent(vesselEvent: VesselEvent): Promise {\n const confirmed = await this.confirmDelete.open(`Delete ${vesselEvent.name}`, \"Are you sure you want to delete this event?\");\n if (confirmed) {\n await VesselEvents.deleteEvent(vesselEvent);\n this.notification.message = \"Event deleted\";\n this.notification.visible = true;\n this.vessel ? LongTrends.fetchVesselLongTrends(this.vessel.id) : null;\n }\n }\n\n showDiagnosticsDetails(data: any): void {\n if (!data.vesselId) return;\n this.diagnosticsDetails.open(data);\n }\n\n exportExcel(): void {\n if (this.vessel) {\n LongTrendExportClient.exportExcel(this.vessel.id);\n }\n }\n\n formatEventDate(date: string): string {\n return moment.utc(date).format(\"DD.MMM YYYY\");\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!./DiagnosticsKyma.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!./DiagnosticsKyma.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DiagnosticsKyma.vue?vue&type=template&id=031f52ff&scoped=true&\"\nimport script from \"./DiagnosticsKyma.vue?vue&type=script&lang=ts&\"\nexport * from \"./DiagnosticsKyma.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DiagnosticsKyma.vue?vue&type=style&index=0&id=031f52ff&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 \"031f52ff\",\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 { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCheckbox,VDataTable,VDivider,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSkeletonLoader,VSnackbar,VSpacer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.featureEnabled)?_c('div',[(_vm.isLoading)?_c('div',[_c('v-skeleton-loader',{attrs:{\"type\":\"table\",\"max-width\":\"800\"}}),(_vm.isLoading)?_c('v-skeleton-loader',{attrs:{\"type\":\"image, list-item-two-line, image, list-item-two-line, image, list-item-two-line\"}}):_vm._e()],1):_c('div',{staticClass:\"diagnostics-iso\"},[_c('VesselEventsTable',{attrs:{\"eventsList\":_vm.eventsByVesselId,\"dataMinDate\":_vm.ISO19030PerformanceLogVariable.logDataMinDate},on:{\"update:eventsList\":function($event){_vm.eventsByVesselId=$event},\"update:events-list\":function($event){_vm.eventsByVesselId=$event},\"eventUpdated\":_vm.eventUpdated}}),_vm._l((_vm.ISOChartTypes),function(chart,i){return _c('PerformanceIndicatorChart',{key:(\"\" + chart + i),attrs:{\"title\":chart,\"periods\":_vm.getISOChartTypePeriods(chart),\"eventsList\":_vm.eventsByVesselId,\"performanceData\":_vm.ISO19030PerformanceLogData,\"isAnyEventUpdated\":_vm.isAnyEventUpdated},on:{\"update:eventsList\":function($event){_vm.eventsByVesselId=$event},\"update:events-list\":function($event){_vm.eventsByVesselId=$event}}})})],2)]):_c('FeatureNotAvailable',{scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('p',[_vm._v(\" We are sorry, the \"),_c('strong',[_vm._v(\"ISO19030\")]),_vm._v(\" module is not activated for \"),_c('span',[_vm._v(_vm._s(_vm.vessel.name))]),_vm._v(\".\"),_c('br'),_vm._v(\" This module requires that the vessel is equipped with a \"),_c('b',[_vm._v(\"Delfini\")]),_vm._v(\" ship performance system. \")]),_c('p',{staticClass:\"mb-0\"},[_vm._v(\"Please contact \"),_c('a',{attrs:{\"href\":\"mailto:sales@danelec.com\"}},[_vm._v(\"sales@danelec.com\")]),_vm._v(\" for more information about \"),_c('b',[_vm._v(\"ISO19030\")]),_vm._v(\" and \"),_c('b',[_vm._v(\"Delfini\")]),_vm._v(\".\")])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function(selectedTimeInMinutes) {\r\n if (selectedTimeInMinutes <= 1440) {\r\n return \"Raw\";\r\n } else if (selectedTimeInMinutes <= 2880) {\r\n return \"Minute\";\r\n } else if (selectedTimeInMinutes <= 20160) {\r\n return \"QuarterHour\";\r\n } else if (selectedTimeInMinutes <= 129600) {\r\n return \"Hour\";\r\n }\r\n\r\n return \"Day\";\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-expansion-panels',{style:((\"max-width: \" + _vm.maxWidth + \"px;\")),attrs:{\"value\":0}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"white--text\",attrs:{\"color\":\"primary\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('span',{staticClass:\"font-weight-semibold\"},[_vm._v(\"Events\")]),_c('v-spacer'),_c('v-btn',{staticClass:\"mr-3 font-weight-semibold\",attrs:{\"small\":\"\",\"color\":\"white\",\"max-width\":\"150\"},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.openEventModal()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_vm._v(\" New event \")],1)],1),_c('v-expansion-panel-content',[_c('v-data-table',{attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.tableRows,\"dense\":\"\",\"loading-text\":\"Loading... Please wait\",\"no-data-text\":\"No events\",\"items-per-page\":10,\"sort-by\":\"date\",\"sort-desc\":true},scopedSlots:_vm._u([{key:\"header.dates\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"header.actions\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"header.eventType\",fn:function(ref){\nvar header = ref.header;\nreturn [_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(header.text))])]}},{key:\"item.dates\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',[_vm._v(\" \"+_vm._s(_vm.formatEventDate(item))+\" \")])]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"top\":\"\",\"color\":\"primary lighten-2\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openEventModal('edit', item)}}},on),[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-pencil\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Edit event\")])]),_c('v-tooltip',{attrs:{\"top\":\"\",\"color\":\"primary lighten-2\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteEvent(item)}}},on),[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary lighten-3\"}},[_vm._v(\"mdi-delete\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Delete event\")])])]}}],null,true)})],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"400px\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.cancel.apply(null, arguments)},\"click:outside\":_vm.cancel},model:{value:(_vm.eventModal),callback:function ($$v) {_vm.eventModal=$$v},expression:\"eventModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Create event\")])]),_c('v-form',{staticClass:\"mt-2\"},[_c('v-card-text',[_c('v-select',{attrs:{\"rules\":[_vm.typeSelectValidation.required],\"value\":\"trendEventTypeName\",\"label\":\"Event type\",\"prepend-icon\":\"mdi-format-list-bulleted-type\",\"items\":_vm.eventTypes,\"item-text\":\"trendEventTypeName\",\"item-value\":\"trendEventTypeId\"},model:{value:(_vm.event.eventType),callback:function ($$v) {_vm.$set(_vm.event, \"eventType\", $$v)},expression:\"event.eventType\"}}),(_vm.isEventDryDocking)?_c('div',[_c('div',{staticClass:\"d-flex\"},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"auto\"},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({attrs:{\"rules\":[_vm.dateValidation.required],\"label\":\"In-docking date\",\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\"},model:{value:(_vm.event.startTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"startTimestamp\", $$v)},expression:\"event.startTimestamp\"}},'v-text-field',attrs,false),on))]}}],null,false,2735545862),model:{value:(_vm.indockingDateMenu),callback:function ($$v) {_vm.indockingDateMenu=$$v},expression:\"indockingDateMenu\"}},[_c('v-date-picker',{on:{\"input\":function($event){_vm.indockingDateMenu = false}},model:{value:(_vm.event.startTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"startTimestamp\", $$v)},expression:\"event.startTimestamp\"}})],1),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"auto\"},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({attrs:{\"rules\":[_vm.dateValidation.required],\"label\":\"Out-docking date\",\"prepend-icon\":\"mdi-calendar\",\"disabled\":_vm.event.startTimestamp === null,\"readonly\":\"\"},model:{value:(_vm.event.endTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"endTimestamp\", $$v)},expression:\"event.endTimestamp\"}},'v-text-field',attrs,false),on))]}}],null,false,3474714540),model:{value:(_vm.outdockingDateMenu),callback:function ($$v) {_vm.outdockingDateMenu=$$v},expression:\"outdockingDateMenu\"}},[_c('v-date-picker',{attrs:{\"min\":_vm.event.startTimestamp},on:{\"input\":function($event){_vm.outdockingDateMenu = false}},model:{value:(_vm.event.endTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"endTimestamp\", $$v)},expression:\"event.endTimestamp\"}})],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"400px\",\"color\":\"primary lighten-2\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"mb-1 ml-1 flex-grow-0\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"color\":\"primary lighten-2\",\"left\":\"\"}},on),[_vm._v(\"mdi-alert-circle\")])]}}],null,false,411864530)},[_c('span',{staticClass:\"mx-auto\"},[_vm._v(\"Started collecting speed-loss performance-values \"+_vm._s(_vm.formattedDataMinDate)+\". Will not be able to calculate vessel performance according to ISO 19030 before this date.\")])])],1),_c('v-text-field',{staticClass:\"mb-2\",attrs:{\"label\":\"Maintenance Threshold %\",\"prepend-icon\":\"mdi-percent-box-outline\",\"rules\":[_vm.thresholdValidation.required],\"type\":\"text\"},model:{value:(_vm.event.maintenanceThreshold),callback:function ($$v) {_vm.$set(_vm.event, \"maintenanceThreshold\", _vm._n($$v))},expression:\"event.maintenanceThreshold\"}})],1):_c('div',[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"auto\"},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({attrs:{\"rules\":[_vm.dateValidation.required],\"label\":\"Event date\",\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"400px\",\"color\":\"primary lighten-2\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"mb-1 ml-1 flex-grow-0\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"color\":\"primary lighten-2\",\"left\":\"\"}},on),[_vm._v(\"mdi-alert-circle\")])]}}],null,true)},[_c('span',{staticClass:\"mx-auto\"},[_vm._v(\"Started collecting speed-loss performance-values \"+_vm._s(_vm.formattedDataMinDate)+\". Will not be able to calculate vessel performance according to ISO 19030 before this date.\")])])]},proxy:true}],null,true),model:{value:(_vm.event.startTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"startTimestamp\", $$v)},expression:\"event.startTimestamp\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.dateMenu),callback:function ($$v) {_vm.dateMenu=$$v},expression:\"dateMenu\"}},[_c('v-date-picker',{on:{\"input\":function($event){_vm.dateMenu = false}},model:{value:(_vm.event.startTimestamp),callback:function ($$v) {_vm.$set(_vm.event, \"startTimestamp\", $$v)},expression:\"event.startTimestamp\"}})],1),_c('v-textarea',{attrs:{\"label\":\"Comment\",\"prepend-icon\":\"mdi-comment-outline\",\"rules\":[function (v) { return v && v.length <= 100 || 'Max 100 characters'; }],\"auto-grow\":\"\",\"rows\":\"2\",\"row-height\":\"20\",\"counter\":\"\",\"clearable\":\"\"},model:{value:(_vm.event.comment),callback:function ($$v) {_vm.$set(_vm.event, \"comment\", $$v)},expression:\"event.comment\"}})],1)],1),_c('v-card-actions',{staticClass:\"pt-3\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"accent\",\"form\":\"edit-event-form\",\"elevation\":\"0\",\"disabled\":_vm.isSaveButtonDisabled},on:{\"click\":_vm.saveEvent}},[_vm._v(\"Save\")]),_c('v-btn',{staticClass:\"font-weight-semibold\",attrs:{\"color\":\"primary-lighten-90\",\"text\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.cancel.apply(null, arguments)}}},[_vm._v(\"Cancel\")])],1)],1)],1)],1),_c('ConfirmDialog',{ref:\"confirmDelete\",staticClass:\"confirm-dialog\"})],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Ref, Prop, PropSync } from \"vue-property-decorator\";\n// utilities\nimport moment from \"moment\";\nimport dateHelper from \"@/Scripts/utilities/date-helper\";\nimport store from \"@/store\";\n// components\nimport ConfirmDialog from \"@/components/ConfirmDialog.vue\";\n// types\nimport { ISO19030Event } from \"@/types/ISO19030Event\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport ISO19030Module from \"@/store/clients/ISO19030.module\";\nimport SnackbarModule from \"@/store/clients/Snackbar.module\";\n\nconst ISO19030 = getModule(ISO19030Module, store);\nconst Snackbar = getModule(SnackbarModule, store);\n\ninterface TableRow {\n id: number;\n eventType: string;\n actions: string[];\n dates: {\n startTimestamp: string | null;\n endTimestamp: string | null;\n };\n}\n\n@Component({\n components: {\n ConfirmDialog,\n },\n})\nexport default class VesselEventsTable extends Vue {\n @PropSync(\"eventsList\", { required: true }) syncEvents!: any;\n @Prop({ default: 800 }) maxWidth!: number;\n @Prop() dataMinDate!: string;\n @Ref(\"confirmDelete\") confirmDelete!: any;\n\n isLoading = false;\n eventModal = false;\n dateMenu = false;\n indockingDateMenu = false;\n outdockingDateMenu = false;\n isEventEditing = false;\n eventTypes = [\"Docking\", \"Maintenance\"];\n event: ISO19030Event = {\n id: 0,\n vesselId: this.vesselId,\n startTimestamp: null,\n endTimestamp: null,\n eventType: \"Maintenance\", // by default\n maintenanceThreshold: null,\n comment: \"\",\n };\n tableHeaders = [\n { text: \"Date\", align: \"start\", sortable: false, value: \"dates\" },\n { text: \"Type\", align: \"start\", sortable: false, value: \"eventType\" },\n { text: \"Actions\", align: \"start\", sortable: false, value: \"actions\" },\n ];\n\n thresholdValidation = {\n required: (value: string) => !!value || \"Maintenance Threshold required\",\n };\n\n dateValidation = {\n required: (value: string) => !!value || \"Event date required\",\n };\n\n typeSelectValidation = {\n required: (value: any) => !!value || \"Type required\",\n };\n\n get vesselId(): number {\n return Number(this.$route.params.vesselId);\n }\n\n get isEventDryDocking(): boolean {\n return this.event.eventType === \"Docking\";\n }\n\n get isEventMaintenance(): boolean {\n return this.event.eventType === \"Maintenance\";\n }\n\n get isNewEvent(): boolean {\n if (!this.event.id) return true;\n return Boolean(!this.syncEvents.find((event: ISO19030Event) => event.id === this.event.id));\n }\n\n get isSaveButtonDisabled(): boolean {\n if (this.isEventMaintenance) return Boolean(this.event.eventType === null || this.event.startTimestamp === null);\n else return Boolean(this.event.eventType === null || this.event.startTimestamp === null || this.event.endTimestamp === null || this.event.maintenanceThreshold === null);\n }\n\n get formattedDataMinDate(): string {\n return this.dataMinDate ? dateHelper.getFormatedDateString(this.dataMinDate) : \"N/A\";\n }\n\n get tableRows(): TableRow[] {\n if (!this.syncEvents.length) return [];\n const tableRows: TableRow[] = [];\n\n this.syncEvents.forEach((event: any) => {\n tableRows.push({\n id: event.id,\n eventType: event.eventType,\n actions: [\"edit\", \"delete\"],\n dates: {\n startTimestamp: event.startTimestamp,\n endTimestamp: event.endTimestamp,\n },\n });\n });\n return tableRows;\n }\n\n formatEventDate(item: any): string {\n if (item.dates.startTimestamp && item.dates.endTimestamp) {\n return `${moment.utc(item.dates.startTimestamp).format(\"DD.MMM YYYY\")} - ${moment.utc(item.dates.endTimestamp).format(\"DD.MMM YYYY\")}`;\n } else {\n return moment.utc(item.dates.startTimestamp).format(\"DD.MMM YYYY\");\n }\n }\n\n openEventModal(mode: string, row: TableRow): void {\n this.isEventEditing = mode ? mode === \"edit\" : false;\n if (this.isEventEditing) {\n // incoming format \"2020-03-16T00:00:00\" is not compatible with datepicker\n this.event = this.syncEvents.find((e: ISO19030Event) => e.id === row.id);\n this.event.startTimestamp = moment(this.event.startTimestamp).format(\"YYYY-MM-DD\");\n this.event.endTimestamp = moment(this.event.endTimestamp).format(\"YYYY-MM-DD\");\n }\n this.eventModal = true;\n }\n\n async saveEvent(): Promise {\n try {\n if (this.isEventEditing) {\n await ISO19030.updateEvent(this.event);\n this.$emit(\"eventUpdated\", true);\n } else await ISO19030.createEvent(this.event);\n this.eventModal = false;\n Snackbar.showSnackbar({ text: `Event ${this.event.eventType} was ${this.isEventEditing ? \"updated\" : \"created\"}`, color: \"success\" });\n this.resetFormData();\n } catch (err) {\n Snackbar.showSnackbar({ text: \"Failed to create event\" });\n }\n }\n\n async deleteEvent(row: TableRow): Promise {\n const confirmDelete = await this.confirmDelete.open(`Delete ${row.eventType} | ${this.formatEventDate(row)}`, \"Are you sure you want to delete this event?\", { titleFontSize: \"1.05rem\" });\n if (!confirmDelete) return;\n\n try {\n await ISO19030.deleteEvent(row.id);\n this.eventModal = false;\n Snackbar.showSnackbar({ text: `Event '${row.eventType}' was deleted`, color: \"success\" });\n this.resetFormData();\n } catch (err) {\n Snackbar.showSnackbar({ text: \"Failed to create event\" });\n }\n }\n\n cancel(): void {\n this.resetFormData();\n this.eventModal = false;\n }\n\n resetFormData(): void {\n this.event = {\n id: 0,\n vesselId: this.vesselId,\n startTimestamp: null,\n endTimestamp: null,\n eventType: null,\n maintenanceThreshold: null,\n comment: \"\",\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!./VesselEventsTable.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!./VesselEventsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VesselEventsTable.vue?vue&type=template&id=c7d6039a&scoped=true&\"\nimport script from \"./VesselEventsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./VesselEventsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VesselEventsTable.vue?vue&type=style&index=0&id=c7d6039a&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 \"c7d6039a\",\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 { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDataTable,VDatePicker,VDialog,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VForm,VIcon,VMenu,VSelect,VSpacer,VTextField,VTextarea,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',{staticClass:\"mt-5 pb-4\"},[_c('v-card-title',[_c('span',{staticClass:\"font-weight-semibold p-title\"},[_vm._v(_vm._s(_vm.title))])]),(_vm.periods)?_c('div',{staticClass:\"highchart-container\"},[_c('Highcharts',{ref:\"chart\",staticClass:\"chart\",attrs:{\"options\":_vm.ChartOptions,\"deepCopyOnUpdate\":false,\"callback\":_vm.chartReady}})],1):_vm._e(),_c('div',{staticClass:\"highchart-container-footer justify-space-between\"},[_c('div',{staticClass:\"content-left mx-4\"},[_c('v-expansion-panels',{staticClass:\"statistics mb-4\"},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"text-overline white--text\",attrs:{\"color\":\"primary\",\"ripple\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" mdi-chevron-down \")])]},proxy:true}])},[_c('v-icon',{staticClass:\"mb-1 mr-2 flex-grow-0\",attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-chart-bar\")]),_vm._v(\" Statistics \"),_c('v-tooltip',{attrs:{\"top\":\"\",\"max-width\":\"400px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"mb-1 ml-1 flex-grow-0\",attrs:{\"color\":\"white\",\"left\":\"\"}},on),[_vm._v(\"mdi-information-outline\")])]}}])},[_c('span',{staticClass:\"mx-auto\"},[_vm._v(\"Percentage speed loss compared to reference curve\")])])],1),_c('v-expansion-panel-content',{staticClass:\"mt-3\"},[(_vm.title !== 'Maintenance Trigger')?_c('v-select',{attrs:{\"items\":_vm.chartEvents,\"item-value\":\"id\",\"return-object\":\"\",\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.formatDateForDisplay(data.item.startTimestamp, data.item.endTimestamp))+\" | \"+_vm._s(data.item.eventType)+\" \")]}},{key:\"item\",fn:function(data){return [_vm._v(\" \"+_vm._s(_vm.formatDateForDisplay(data.item.startTimestamp, data.item.endTimestamp))+\" | \"+_vm._s(data.item.eventType)+\" \")]}}],null,false,2990774396),model:{value:(_vm.selectedEvent),callback:function ($$v) {_vm.selectedEvent=$$v},expression:\"selectedEvent\"}}):_vm._e(),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.htmlStatistics)}})],1)],1)],1),(_vm.isAnyEventUpdated)?_c('v-alert',{staticStyle:{\"font-size\":\"14px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"color\":\"primary lighten-2\",\"type\":\"info\"}},[_vm._v(\" If any of the events have recently been edited, evaluation and reference periods will be updated within 5 minutes. \")]):_vm._e()],1),_c('div',{staticClass:\"content-right mx-4 width-50\"},[(!_vm.isEvaluationPeriodAvailable && this.title !== 'Maintenance Trigger' && _vm.hasCalculatedPeriods)?_c('v-alert',{staticStyle:{\"font-size\":\"14px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"type\":\"info\"}},[_vm._v(\" There is not enough data to calculate evaluation period. \")]):(!_vm.hasCalculatedPeriods)?_c('v-alert',{staticStyle:{\"font-size\":\"14px\"},attrs:{\"dense\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"type\":\"info\"}},[_vm._v(\" There is not enough data to calculate evaluation and reference periods. \")]):_vm._e()],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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, PropSync, Watch } from \"vue-property-decorator\";\n// utilities\nimport { Chart } from \"highcharts-vue\";\nimport Highcharts from \"highcharts\";\nimport dateHelper from \"@/Scripts/utilities/date-helper\";\nimport moment from \"moment\";\n// types\nimport { PerformanceIndicatorPeriod } from \"@/types/PerformanceIndicatorPeriod\";\nimport { IPlotLine } from \"@/types/highcharts/plotLine\";\nimport { LogData } from \"@/types/logData\";\nimport { IPlotBand } from \"@/types/highcharts/plotBand\";\nimport { ISO19030Event } from \"@/types/ISO19030Event\";\n\n@Component({\n components: {\n Highcharts: Chart,\n },\n})\nexport default class PerformanceIndicatorChart extends Vue {\n @Prop() title!: string;\n @Prop() isAnyEventUpdated = false;\n @Prop({ required: true }) periods!: PerformanceIndicatorPeriod[];\n @Prop({ required: true }) performanceData!: LogData;\n @PropSync(\"eventsList\", { required: true }) syncEvents!: ISO19030Event[];\n\n chart!: any;\n chartLoaded = false;\n selectedEvent: ISO19030Event = {} as ISO19030Event;\n mutatedPeriods: PerformanceIndicatorPeriod[] = JSON.parse(JSON.stringify(this.periods));\n\n @Watch(\"eventsList\")\n onEventsListChanged(): void {\n setTimeout(() => {\n this.chart.update(this.ChartOptions, true);\n this.chart.reflow();\n }, 500);\n }\n\n @Watch(\"selectedEvent\")\n onSelectedDockingEventChanged(): void {\n // re-setup evaluation period and recalculate statistics when event changed\n this.setDryDockingEvaluationPeriod();\n }\n\n get htmlStatistics(): string | undefined {\n switch (this.title) {\n case \"DryDocking Performance\":\n return `
    \n
  • Evaluation period average: ${this.setEvaluationPeriodAverage}
  • \n
  • Reference periods average: ${this.setReferencesPeriodsAverage}
  • \n
  • Difference in performance: ${this.setDryDockingDifferenceInPerformance}
  • \n
`;\n case \"InService Performance\":\n case \"Maintenance Effect\":\n return `
    \n
  • Evaluation period average: ${this.setEvaluationPeriodAverage}
  • \n
  • Reference period average: ${this.setSelectedReferencePeriodAverage}
  • \n
  • Difference in performance: ${this.setDifferenceInPerformanceOfSelectedEvent}
  • \n
`;\n case \"Maintenance Trigger\":\n return `
    \n
  • Reference period average: ${this.setSelectedReferencePeriodAverage}
  • \n
  • Maintenance trigger level (%): ${this.setTriggerValue}
  • \n ${\n this.selectedEvaluationPeriod\n ? `
  • Trigger period start date: ${this.formatDateString(this.selectedEvaluationPeriod?.periodStartDate)}
  • \n
  • Trigger period end date: ${this.formatDateString(this.selectedReferencePeriod?.periodEndDate)}
  • \n
  • Difference in performance: ${this.setDifferenceInPerformanceOfSelectedEvent}
  • `\n : `\n Maintenance trigger level not reached\n `\n }\n
`;\n }\n }\n\n get Highchart(): any {\n return this.chart;\n }\n\n get vesselId(): number {\n return Number(this.$route.params.vesselId);\n }\n\n get referencePeriods(): PerformanceIndicatorPeriod[] {\n return this.mutatedPeriods.filter(period => period.periodType === \"Reference Period\");\n }\n\n get referencePeriodsAverage(): number {\n return this.referencePeriods.reduce((acc: number, period: PerformanceIndicatorPeriod) => acc + period.average, 0) / this.referencePeriods.length;\n }\n\n get selectedReferencePeriod(): PerformanceIndicatorPeriod {\n let selectedReferencePeriod!: PerformanceIndicatorPeriod;\n if (this.selectedEvent) {\n // find period of selected event and set it as current\n const findPeriodOfSelectedEvent = this.periods.find(period => period.eventId === this.selectedEvent.id);\n if (findPeriodOfSelectedEvent) selectedReferencePeriod = findPeriodOfSelectedEvent;\n }\n return selectedReferencePeriod;\n }\n\n get isEvaluationPeriodAvailable(): boolean {\n return Boolean(this.selectedEvaluationPeriod);\n }\n\n get selectedEvaluationPeriod(): PerformanceIndicatorPeriod {\n let selectedEvaluationPeriod!: PerformanceIndicatorPeriod;\n if (this.selectedEvent) {\n const findPeriodOfSelectedEvent = this.evaluationPeriods.find(period => period.eventId === this.selectedEvent.id);\n if (findPeriodOfSelectedEvent) selectedEvaluationPeriod = findPeriodOfSelectedEvent;\n }\n\n return selectedEvaluationPeriod;\n }\n\n get lastDryDockingEvent(): ISO19030Event {\n const currentDate = moment().format(\"YYYY-MM-DD\");\n let lastDryDockingEvent!: ISO19030Event;\n this.dryDockingEvents.forEach(event => {\n const diff = moment(event.endTimestamp).diff(moment(currentDate), \"days\");\n if (diff > 0) {\n if (lastDryDockingEvent) {\n if (moment(event.endTimestamp).diff(moment(lastDryDockingEvent.endTimestamp), \"days\") < 0) {\n lastDryDockingEvent = event;\n }\n }\n } else {\n lastDryDockingEvent = event;\n }\n });\n return lastDryDockingEvent;\n }\n\n get lastMaintenanceEvent(): ISO19030Event {\n const currentDate = moment().format(\"YYYY-MM-DD\");\n let lastMaintenanceEvent!: ISO19030Event;\n this.maintenanceEvents.forEach(event => {\n const diff = moment(event.endTimestamp).diff(moment(currentDate), \"days\");\n if (diff > 0) {\n if (lastMaintenanceEvent) {\n if (moment(event.endTimestamp).diff(moment(lastMaintenanceEvent.endTimestamp), \"days\") < 0) {\n lastMaintenanceEvent = event;\n }\n }\n } else {\n lastMaintenanceEvent = event;\n }\n });\n return lastMaintenanceEvent;\n }\n\n get dryDockingEvents(): ISO19030Event[] {\n return this.syncEvents.filter(event => event.eventType === \"Docking\");\n }\n\n get maintenanceEvents(): ISO19030Event[] {\n return this.syncEvents.filter(event => event.eventType === \"Maintenance\");\n }\n\n get chartEvents(): ISO19030Event[] {\n if (this.isMaintenanceEffectChart) {\n return this.syncEvents.filter(event => event.eventType === \"Maintenance\");\n } else {\n return this.dryDockingEvents;\n }\n }\n\n get evaluationPeriods(): PerformanceIndicatorPeriod[] {\n return this.mutatedPeriods.filter(period => period.periodType === \"Evaluation Period\");\n }\n\n get hasCalculatedPeriods(): boolean {\n return Boolean(this.periods.length);\n }\n\n get differenceInPerformanceOfSelectedEvent(): number {\n return this.selectedEvaluationPeriod?.average - this.selectedReferencePeriod?.average;\n }\n\n get setDifferenceInPerformanceOfSelectedEvent(): string {\n return Boolean(this.differenceInPerformanceOfSelectedEvent) ? `${this.differenceInPerformanceOfSelectedEvent?.toFixed(1)}%` : \"N/A\";\n }\n\n get isDryDockingChart(): boolean {\n return this.title.toLowerCase().includes(\"docking\");\n }\n\n get isMaintenanceEffectChart(): boolean {\n return this.title === \"Maintenance Effect\";\n }\n\n get setEvaluationPeriodAverage(): string {\n return this.isEvaluationPeriodAvailable ? `${this.selectedEvaluationPeriod.average.toFixed(1)}%` : \"N/A\";\n }\n\n get setReferencesPeriodsAverage(): string {\n if (Boolean(this.referencePeriodsWithoutCurrentAverage)) {\n return `${this.referencePeriodsWithoutCurrentAverage.toFixed(1)}%`;\n } else {\n return \"N/A (There is no reference periods to calculate the average)\";\n }\n }\n\n get setSelectedReferencePeriodAverage(): string {\n return this.selectedReferencePeriod ? `${this.selectedReferencePeriod.average.toFixed(1)}%` : \"N/A\";\n }\n\n get setTriggerValue(): number | string | null | undefined {\n return this.selectedEvent ? this.selectedEvent?.triggerValue : \"N/A\";\n }\n\n get referencePeriodsWithoutCurrentAverage(): number {\n const referencePeriods = this.periods.filter(period => period.periodType === \"Reference Period\");\n const selectedReferencePeriod = this.periods.find(period => period.id === this.selectedReferencePeriod?.id);\n if (selectedReferencePeriod) {\n const referencePeriodsWithoutCurrent = referencePeriods.filter(period => {\n // check if period end date is before selected reference period start date\n if (moment(period.periodEndDate).isBefore(selectedReferencePeriod?.periodStartDate, \"day\") && period.id !== this.selectedReferencePeriod?.id) {\n return period;\n }\n });\n return referencePeriodsWithoutCurrent.reduce((acc: number, period: PerformanceIndicatorPeriod) => acc + period.average, 0) / referencePeriodsWithoutCurrent.length;\n } else {\n return referencePeriods.reduce((acc: number, period: PerformanceIndicatorPeriod) => acc + period.average, 0) / referencePeriods.length;\n }\n }\n\n get dryDockingDifferenceInPerformance(): number {\n if (!this.selectedReferencePeriod) return 0;\n const referencePeriodsWithoutCurrent = this.referencePeriods.filter(period => period.id !== this.selectedReferencePeriod?.id);\n const referencePeriodsWithoutCurrentAverage =\n referencePeriodsWithoutCurrent.reduce((acc: number, period: PerformanceIndicatorPeriod) => acc + period.average, 0) / referencePeriodsWithoutCurrent.length;\n return this.selectedReferencePeriod?.average - referencePeriodsWithoutCurrentAverage;\n }\n\n get setDryDockingDifferenceInPerformance(): string {\n return Boolean(this.dryDockingDifferenceInPerformance) ? `${this.dryDockingDifferenceInPerformance.toFixed(1)}%` : \"N/A\";\n }\n\n setDryDockingEvaluationPeriod(): void {\n // set selected reference period as evaluation period for dry docking chart\n if (!this.isDryDockingChart || !this.selectedReferencePeriod) return;\n this.mutatedPeriods = this.periods.filter((period: PerformanceIndicatorPeriod) => {\n if (moment(period.periodEndDate).isBefore(this.selectedEvent.startTimestamp, \"day\") || period.id === this.selectedReferencePeriod.id) {\n if (this.selectedReferencePeriod.id === period.id) {\n Vue.set(period, \"periodType\", \"Evaluation Period\");\n } else {\n Vue.set(period, \"periodType\", \"Reference Period\");\n }\n return period;\n }\n });\n }\n\n isPeriodReferenceType(type: string): boolean {\n return type === \"Reference Period\";\n }\n\n get periodLines(): any {\n if (!this.mutatedPeriods.length) return [];\n const periodLines: any = [];\n this.mutatedPeriods.forEach((period: any) => {\n // show period line if they have existed event\n if (this.syncEvents.filter(event => event.id === period.eventId).length) {\n periodLines.push(\n this.PeriodLine(\n Date.parse(period.periodStartDate),\n Date.parse(period.periodEndDate),\n period.average,\n this.isPeriodReferenceType(period.periodType) ? \"R\" : \"E\",\n this.isPeriodReferenceType(period.periodType) ? \"#ff5252\" : \"#0037ff\"\n )\n );\n }\n });\n\n // group lines by id to display common legend\n const firstReferenceIndex = periodLines.findIndex((line: any) => line.name === \"Reference period\");\n const firstEvaluationIndex = periodLines.findIndex((line: any) => line.name === \"Evaluation period\");\n if (firstReferenceIndex >= 0) {\n Vue.set(periodLines[firstReferenceIndex], \"id\", \"Reference\");\n Vue.delete(periodLines[firstReferenceIndex], \"linkedTo\");\n }\n if (firstEvaluationIndex >= 0) {\n Vue.set(periodLines[firstEvaluationIndex], \"id\", \"Evaluation\");\n Vue.delete(periodLines[firstEvaluationIndex], \"linkedTo\");\n }\n return periodLines;\n }\n\n PeriodLine(startDateMS: number, endDateMS: number, average: number, text: string, color: string): any {\n return {\n name: `${text === \"R\" ? \"Reference\" : \"Evaluation\"} period`,\n type: \"line\",\n color: color,\n lineWidth: 2,\n data: [[startDateMS, average], this.periodLineLabel(endDateMS, average, text, color)],\n linkedTo: `${text === \"R\" ? \"Reference\" : \"Evaluation\"}`,\n marker: {\n radius: 2.5,\n symbol: \"circle\",\n },\n zIndex: 5,\n };\n }\n\n periodLineLabel(dateMS: number, average: number, text: string, color: string): any {\n return {\n x: dateMS,\n y: average,\n dataLabels: {\n enabled: true,\n useHTML: true,\n formatter: function () {\n return `${text}`;\n },\n zIndex: 10,\n },\n };\n }\n\n get seriesData(): any {\n if (!this.performanceData.data) return [];\n if (this.chart.series.length) {\n /* IMPORTANT:\n There is also a bug in Highcharts when it has more than 2 series\n and they are updated dynamically it \"loses\" correct indexes of the\n series and displays data in a weird manner so the solution is to\n clear the series array before it will be updated */\n while (this.chart.series.length) {\n this.chart.series[0].remove();\n }\n }\n const scatterPoints = Object.entries(this.performanceData.data).map(([timestamp, value]) => {\n return [Date.parse(`${timestamp}Z`), value !== null ? Number(value) : null];\n });\n const scatterPointsSerie = {\n name: \"Speed Loss\",\n type: \"scatter\",\n data: scatterPoints,\n stickyTracking: false,\n /* IMPORTANT:\n https://www.highcharts.com/forum/viewtopic.php?f=9&t=44589\n Turns out scatter points have a bug. When they get updated they can be displayed as line-through-dots\n with property lineWidth: 2 so here we need to set the lineWidth: 0, otherwise it should be set always\n through chart.series.forEach loop in serie.options.lineWidth\n */\n lineWidth: 0,\n marker: {\n radius: 2.5,\n symbol: \"circle\",\n fillColor: \"#448eeb5c\",\n },\n };\n const series = [...this.periodLines, scatterPointsSerie];\n\n return series;\n }\n\n get plotLines(): IPlotLine[] {\n if (this.isMaintenanceEffectChart) {\n return [...this.maintenancePlotLines];\n } else {\n return [...this.dockingPlotLines];\n }\n }\n\n get plotBands(): IPlotBand[] {\n return [...this.dryDockingPlotBands, this.selectedEventPlotBand];\n }\n\n get maintenancePlotLines(): IPlotLine[] {\n if (!this.syncEvents.length) return [];\n const plotLines: IPlotLine[] = [];\n this.syncEvents.forEach((event: any) => {\n if (event.eventType !== \"Maintenance\") return;\n const html = this.getPlotLineLabelsHtml(event);\n plotLines.push({\n id: `plotline-${event.id}`,\n color: \"#2196F3\",\n value: moment.utc(event.startTimestamp).valueOf(),\n width: 2,\n zIndex: 5,\n label: {\n rotation: 0,\n style: { color: \"#2196F3\" },\n text: html,\n useHTML: true,\n y: -15,\n x: -11,\n },\n });\n });\n return plotLines;\n }\n\n get dockingPlotLines(): IPlotLine[] {\n if (!this.syncEvents.length) return [];\n const plotLines: IPlotLine[] = [];\n this.syncEvents.forEach(event => {\n if (event.eventType !== \"Docking\") return;\n plotLines.push(\n {\n id: `plotline-${event.id}`,\n color: \"#008000\",\n value: moment.utc(event.startTimestamp).valueOf(),\n width: 2,\n zIndex: 7,\n label: {\n rotation: 0,\n style: { color: \"#008000\" },\n text: this.getPlotLineLabelsHtml(event, \"start\", \"d\"),\n useHTML: true,\n y: -15,\n x: -11,\n },\n },\n {\n id: `plotline-${event.id}`,\n color: \"#008000\",\n value: moment.utc(event.endTimestamp).valueOf(),\n width: 2,\n zIndex: 7,\n label: {\n rotation: 0,\n style: { color: \"#008000\" },\n text: this.getPlotLineLabelsHtml(event, \"end\", \"d\"),\n useHTML: true,\n y: -15,\n x: -11,\n },\n }\n );\n });\n return plotLines;\n }\n\n getPlotLineLabelsHtml(event: ISO19030Event, timestamp = \"start\", letter = \"e\"): string {\n return `\n \n
\n ID: ${event.id}

\n

\n ${timestamp} date: ${\n timestamp === \"start\" ? dateHelper.getFormatedDateString(event.startTimestamp) : dateHelper.getFormatedDateString(event.endTimestamp)\n }\n

\n

${timestamp === \"start\" ? \"In-docking\" : \"Out-docking\"}

\n

${event.comment ?? \"No comment\"}

\n
\n `;\n }\n\n get dryDockingPlotBands(): IPlotBand[] {\n const plotBands: IPlotBand[] = [];\n if (!this.syncEvents.length || this.isMaintenanceEffectChart) return plotBands;\n\n this.syncEvents.forEach(event => {\n if (event.eventType !== \"Docking\") return;\n plotBands.push({\n from: moment.utc(event.startTimestamp).valueOf(),\n to: moment.utc(event.endTimestamp).valueOf(),\n id: event.id,\n className: \"performance-graph__plot-bands\",\n color: \"#0080001f\",\n zIndex: 4,\n });\n });\n\n return plotBands;\n }\n\n get selectedEventPlotBand(): IPlotBand {\n if (this.title === \"Maintenance Trigger\") return {} as IPlotBand;\n const eventPeriods: PerformanceIndicatorPeriod[] = this.mutatedPeriods.filter(period => period.eventId === this.selectedEvent.id);\n let plotBandStartDate!: string | undefined | null;\n let plotBandEndDate!: string | undefined | null;\n\n if (this.isMaintenanceEffectChart) {\n plotBandStartDate = eventPeriods.find(period => {\n // plotBandStartDate is the start date of the period BEFORE the event\n if (moment(period.periodStartDate).isBefore(this.selectedEvent.startTimestamp, \"day\")) {\n return period;\n }\n })?.periodStartDate;\n plotBandEndDate = eventPeriods.find(period => {\n // plotBandEndDate is the end date of the period AFTER the event\n if (moment(period.periodEndDate).isAfter(this.selectedEvent.startTimestamp, \"day\")) {\n return period;\n }\n })?.periodEndDate;\n } else {\n plotBandStartDate = this.selectedEvent?.startTimestamp;\n plotBandEndDate = eventPeriods.find(period => {\n if (moment(period.periodEndDate).isAfter(this.selectedEvent.startTimestamp, \"day\") && period.periodType === \"Evaluation Period\") {\n return period;\n }\n })?.periodEndDate;\n }\n\n if (!plotBandStartDate && !plotBandEndDate) return {} as IPlotBand;\n\n return {\n from: moment.utc(plotBandStartDate).valueOf(),\n to: moment.utc(plotBandEndDate).valueOf(),\n id: this.selectedEvent.id,\n className: \"performance-graph__plot-bands\",\n color: \"#6363f636\",\n zIndex: 4,\n };\n }\n\n formatDateForDisplay(start: string, end: string): string {\n if (!dateHelper.getFormatedDateString(end).length) return dateHelper.getFormatedDateString(start);\n else return `${dateHelper.getFormatedDateString(start)} - ${dateHelper.getFormatedDateString(end)}`;\n }\n\n formatDateString(date: string | null): string {\n if (!date) return \"\";\n return dateHelper.getFormatedDateString(date);\n }\n\n get chartSettings(): any {\n if (!this.chartLoaded) return {};\n return {\n type: \"line\",\n height: 300,\n spacingTop: 30,\n zoomType: \"x\",\n style: { fontFamily: \"Helvetica Neue\" },\n };\n }\n get ChartOptions(): any {\n if (!this.chartLoaded || !Highcharts) return {};\n const ctx = this;\n const options = {\n chart: ctx.chartSettings,\n title: { text: \"\" },\n legend: {\n enabled: true,\n },\n yAxis: {\n title: {\n text: \"Percent (%)\",\n style: { color: \"#331714\" },\n },\n labels: {\n format: \"{value}\",\n style: { color: \"#331714\" },\n },\n min: -50,\n max: 50,\n },\n xAxis: {\n type: \"datetime\",\n labels: {\n style: { color: \"#331714\" },\n },\n plotLines: this.plotLines,\n plotBands: this.plotBands,\n },\n plotOptions: {\n scatter: {\n lineWidth: 0,\n marker: {\n radius: 2.5,\n symbol: \"circle\",\n fillColor: \"#448eeb5c\",\n },\n tooltip: {\n outside: true,\n headerFormat: \"{point.key}
\",\n pointFormat: \"Value: {point.y}\",\n valueDecimals: 1,\n valueSuffix: \"%\",\n xDateFormat: \"%d. %b, %Y\",\n zIndex: 7,\n },\n },\n line: {\n tooltip: {\n outside: true,\n headerFormat: \"{point.key}
\",\n pointFormat: \"Value: {point.y}\",\n valueDecimals: 1,\n valueSuffix: \"%\",\n xDateFormat: \"%d. %b, %Y\",\n zIndex: 7,\n },\n },\n series: {\n states: {\n inactive: {\n opacity: 1,\n },\n },\n },\n },\n tooltip: {\n format: \"{value}\",\n zIndex: 50,\n },\n series: this.seriesData,\n credits: { enabled: false },\n exporting: { enabled: false },\n };\n\n return options;\n }\n\n chartReady(chart: any): void {\n this.chart = chart;\n this.chart.update(this.ChartOptions, true);\n this.chartLoaded = true;\n }\n\n mounted(): void {\n if (this.title !== \"Maintenance Effect\") {\n this.selectedEvent = this.lastDryDockingEvent;\n } else {\n this.selectedEvent = this.lastMaintenanceEvent;\n }\n this.setDryDockingEvaluationPeriod();\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!./PerformanceIndicatorChart.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!./PerformanceIndicatorChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PerformanceIndicatorChart.vue?vue&type=template&id=1040bbe5&scoped=true&\"\nimport script from \"./PerformanceIndicatorChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./PerformanceIndicatorChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PerformanceIndicatorChart.vue?vue&type=style&index=0&id=1040bbe5&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 \"1040bbe5\",\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 { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VCard,VCardTitle,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSelect,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\nimport { Component, Vue } from \"vue-property-decorator\";\nimport store from \"@/store\";\nimport _ from \"underscore\";\nimport autoGranularity from \"Utilities/auto-granularity\";\n// components\nimport FeatureNotAvailable from \"@/components/FeatureNotAvailable.vue\";\nimport VesselEventsTable from \"@/components/Vessel/VesselEventsTable.vue\";\nimport PerformanceIndicatorChart from \"@/components/PerformanceIndicatorChart.vue\";\n// types\nimport { ISO19030Event } from \"@/types/ISO19030Event.js\";\nimport { PerformanceIndicatorPeriod } from \"@/types/PerformanceIndicatorPeriod.js\";\nimport { LogVariable } from \"@/types/logVariable.js\";\nimport { LogData } from \"@/types/logData.js\";\nimport { ExtendedVessel } from \"@/types/Vessel\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport LogVariablesModule from \"@/store/clients/LogVariables.module\";\nimport ISO19030Module from \"@/store/clients/ISO19030.module\";\nimport LogDataClient from \"Clients/log-data-client\";\nimport VesselsModule from \"@/store/clients/Vessels.module\";\n\nconst ISO19030 = getModule(ISO19030Module, store);\nconst LogVariables = getModule(LogVariablesModule, store);\nconst Vessels = getModule(VesselsModule, store);\n\n@Component({\n components: {\n FeatureNotAvailable,\n VesselEventsTable,\n PerformanceIndicatorChart,\n },\n})\nexport default class DiagnosticsISO extends Vue {\n isLoading = false;\n performanceIndicatorsLogVariable: LogVariable = {} as LogVariable;\n ISO19030PerformanceLogData: LogData = {} as LogData;\n ISOChartTypes = [\"DryDocking Performance\", \"InService Performance\", \"Maintenance Trigger\", \"Maintenance Effect\"];\n isAnyEventUpdated = false;\n\n get vessel(): ExtendedVessel | null {\n return Vessels.currentVessel;\n }\n\n get featureEnabled(): boolean {\n if (!this.vessel) return false;\n return this.vessel.features.some(feature => feature.name === \"Iso19030\");\n }\n\n get vesselId(): number {\n return Number(this.$route.params.vesselId);\n }\n\n get eventsByVesselId(): ISO19030Event[] {\n return ISO19030.eventsByVesselId(this.vesselId);\n }\n\n get performanceIndicators(): PerformanceIndicatorPeriod[] {\n return ISO19030.performanceIndicators;\n }\n\n getISOChartTypePeriods(type: string): PerformanceIndicatorPeriod[] {\n switch (type) {\n case \"DryDocking Performance\":\n return this.performanceIndicators.filter(item => item.chartName === \"DryDocking Performance\");\n case \"InService Performance\":\n return this.performanceIndicators.filter(item => item.chartName === \"InService Performance\");\n case \"Maintenance Trigger\":\n return this.performanceIndicators.filter(item => item.chartName === \"Maintenance Trigger\");\n case \"Maintenance Effect\":\n return this.performanceIndicators.filter(item => item.chartName === \"Maintenance Effect\");\n default:\n return [] as PerformanceIndicatorPeriod[];\n }\n }\n\n get ISO19030PerformanceLogVariable(): LogVariable {\n return LogVariables.logVariableByName(\"ISO19030 Performance Value\");\n }\n\n async fetchPerformanceIndicatorsData(): Promise {\n if (_.isEmpty(this.ISO19030PerformanceLogVariable)) return;\n const minDate = this.ISO19030PerformanceLogVariable.logDataMinDate ?? \"\";\n const maxDate = this.ISO19030PerformanceLogVariable.logDataMaxDate ?? \"\";\n const selectedTimeInMinutes = this.minutesDiff(new Date(minDate), new Date(maxDate));\n\n this.ISO19030PerformanceLogData = await LogDataClient.findLogData(this.ISO19030PerformanceLogVariable.id, minDate, maxDate, autoGranularity(selectedTimeInMinutes));\n }\n\n minutesDiff(fromDate: Date, toDate: Date): number {\n const diff = (fromDate.getTime() - toDate.getTime()) / 1000 / 60;\n\n return Math.abs(Math.round(diff));\n }\n\n async initViewData(): Promise {\n this.isLoading = true;\n try {\n await Promise.all([await ISO19030.fetchEvents(), await ISO19030.fetchPerformanceIndicators(this.vesselId), await this.fetchPerformanceIndicatorsData()]);\n } catch (error) {\n console.warn(error);\n } finally {\n this.isLoading = false;\n }\n }\n\n eventUpdated(state: boolean): void {\n this.isAnyEventUpdated = state;\n }\n\n async created(): Promise {\n await this.initViewData();\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!./DiagnosticsISO.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!./DiagnosticsISO.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DiagnosticsISO.vue?vue&type=template&id=051faa15&scoped=true&\"\nimport script from \"./DiagnosticsISO.vue?vue&type=script&lang=ts&\"\nexport * from \"./DiagnosticsISO.vue?vue&type=script&lang=ts&\"\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 \"051faa15\",\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 { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSkeletonLoader})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from \"vue-property-decorator\";\nimport Store from \"@/store\";\n//components\nimport DiagnosticsKyma from \"./DiagnosticsKyma.vue\";\nimport DiagnosticsISO from \"./DiagnosticsISO.vue\";\nimport FeatureNotAvailable from \"@/components/FeatureNotAvailable.vue\";\n// modules\nimport { getModule } from \"vuex-module-decorators\";\nimport LogVariablesModule from \"@/store/clients/LogVariables.module\";\n\nconst LogVariables = getModule(LogVariablesModule, Store);\n\n@Component({\n components: {\n DiagnosticsKyma,\n DiagnosticsISO,\n FeatureNotAvailable,\n },\n})\nexport default class Diagnostics extends Vue {\n DiagnosticViewTypes = [\n {\n component: \"DiagnosticsKyma\",\n text: \"Kyma\",\n },\n {\n component: \"DiagnosticsISO\",\n text: \"ISO19030\",\n },\n ];\n DiagnosticViewType = this.DiagnosticViewTypes[0];\n\n onViewTypeChanged(): void {\n console.log(\"onViewTypeChanged => onViewTypeChanged:\");\n localStorage.setItem(\"DiagnosticViewType\", JSON.stringify(this.DiagnosticViewType));\n }\n\n setDiagnosticViewType(): void {\n const strDiagnosticViewType: any = localStorage.getItem(\"DiagnosticViewType\") ?? this.DiagnosticViewTypes[0];\n if (typeof strDiagnosticViewType === \"string\") this.DiagnosticViewType = JSON.parse(strDiagnosticViewType);\n else this.DiagnosticViewType = strDiagnosticViewType;\n }\n\n async created(): Promise {\n if (!LogVariables.currentVesselLogVariables.length) await LogVariables.refreshCurrentVesselLogVariables(parseInt(this.$route.params.vesselId));\n this.setDiagnosticViewType();\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=46fb2a2e&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=46fb2a2e&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 \"46fb2a2e\",\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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCard,VSelect})\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!./VesselEventsTable.vue?vue&type=style&index=0&id=c7d6039a&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!./PerformanceIndicatorChart.vue?vue&type=style&index=0&id=1040bbe5&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=46fb2a2e&lang=scss&scoped=true&\"","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DiagnosticsKyma.vue?vue&type=style&index=0&id=031f52ff&lang=scss&scoped=true&\""],"sourceRoot":""}