{"version":3,"file":"app.46e31e7cfbffb8a4.bundle.js","mappings":"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","sources":["webpack://marinsights/./src/core/services/tools.ts","webpack://marinsights/./src/views/layouts/layout1.vue?5e2d","webpack://marinsights/./src/components/buttons/BackToTop.vue?c7c1","webpack://marinsights/./src/components/icons/DownChevronIcon.vue?905c","webpack://marinsights/./src/components/icons/DownChevronIcon.vue?fcc7","webpack://marinsights/./src/components/icons/DownChevronIcon.vue","webpack://marinsights/./src/components/buttons/BackToTop.vue?c138","webpack://marinsights/./src/components/buttons/BackToTop.vue","webpack://marinsights/./src/components/buttons/NavigationLinkPrimary.vue?bcfa","webpack://marinsights/./src/components/icons/DashboardIcon.vue?e2f6","webpack://marinsights/./src/components/icons/DashboardIcon.vue?0eb2","webpack://marinsights/./src/components/icons/DashboardIcon.vue","webpack://marinsights/./src/components/icons/FilesIcon.vue?f8d0","webpack://marinsights/./src/components/icons/FilesIcon.vue?7d7e","webpack://marinsights/./src/components/icons/FilesIcon.vue","webpack://marinsights/./src/components/icons/FleetIcon.vue?f013","webpack://marinsights/./src/components/icons/FleetIcon.vue?5acf","webpack://marinsights/./src/components/icons/FleetIcon.vue","webpack://marinsights/./src/components/icons/HomeIcon.vue?b75a","webpack://marinsights/./src/components/icons/HomeIcon.vue?1104","webpack://marinsights/./src/components/icons/HomeIcon.vue","webpack://marinsights/./src/components/icons/MapIcon.vue?5fbc","webpack://marinsights/./src/components/icons/MapIcon.vue?5c4b","webpack://marinsights/./src/components/icons/MapIcon.vue","webpack://marinsights/./src/components/icons/AnalyticsIcon.vue?e075","webpack://marinsights/./src/components/icons/AnalyticsIcon.vue?c0e8","webpack://marinsights/./src/components/icons/AnalyticsIcon.vue","webpack://marinsights/./src/components/buttons/NavigationLinkPrimary.vue?bbe6","webpack://marinsights/./src/components/buttons/NavigationLinkPrimary.vue","webpack://marinsights/./src/components/icons/ProfileIcon.vue","webpack://marinsights/./src/components/icons/ProfileIcon.vue?8191","webpack://marinsights/./src/components/icons/QuestionIcon.vue","webpack://marinsights/./src/components/icons/QuestionIcon.vue?f750","webpack://marinsights/./src/views/layouts/layout1.vue?5101","webpack://marinsights/./src/views/layouts/layout1.vue","webpack://marinsights/./src/views/pages/Analytics.detail.vue?6b96","webpack://marinsights/./src/components/cards/DashboardCard.vue?7795","webpack://marinsights/./src/components/cards/GenericCardShell.vue?91ce","webpack://marinsights/./src/components/cards/GenericCardShell.vue","webpack://marinsights/./src/components/cards/DashboardSmallCard.vue?e6b0","webpack://marinsights/./src/components/icons/MonitorIcon.vue?017c","webpack://marinsights/./src/components/icons/MonitorIcon.vue?022c","webpack://marinsights/./src/components/icons/MonitorIcon.vue","webpack://marinsights/./src/components/icons/SmartphoneIcon.vue?9a03","webpack://marinsights/./src/components/icons/SmartphoneIcon.vue?1941","webpack://marinsights/./src/components/icons/SmartphoneIcon.vue","webpack://marinsights/./src/components/icons/TabletIcon.vue?8ecd","webpack://marinsights/./src/components/icons/TabletIcon.vue?ae4b","webpack://marinsights/./src/components/icons/TabletIcon.vue","webpack://marinsights/./src/components/cards/DashboardSmallCard.vue?7183","webpack://marinsights/./src/components/cards/DashboardSmallCard.vue","webpack://marinsights/./src/components/cards/DashboardCard.vue?8582","webpack://marinsights/./src/components/cards/DashboardCard.vue","webpack://marinsights/./src/components/reports/categories/services/reports/headers/ReportGroupHeader.vue?9cf7","webpack://marinsights/./src/components/icons/UploadIcon.vue?dac3","webpack://marinsights/./src/components/icons/UploadIcon.vue?0740","webpack://marinsights/./src/components/icons/UploadIcon.vue","webpack://marinsights/./src/components/reports/categories/services/reports/headers/ReportGroupHeader.vue?475b","webpack://marinsights/./src/components/reports/categories/services/reports/headers/ReportGroupHeader.vue","webpack://marinsights/./src/components/reports/categories/services/reports/ServiceReport.vue?ea03","webpack://marinsights/./src/core/managers/report.manager.ts","webpack://marinsights/./src/components/reports/categories/services/reports/attributes/ReportAttributeTab.vue?7ace","webpack://marinsights/./src/components/reports/categories/services/reports/attributes/ReportAttributeTab.vue?9e97","webpack://marinsights/./src/components/reports/categories/services/reports/attributes/ReportAttributeTab.vue","webpack://marinsights/./src/components/reports/categories/services/reports/attributes/ReportAttributeTab.loading.vue","webpack://marinsights/./src/components/reports/categories/services/reports/attributes/ReportAttributeTab.loading.vue?648a","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportRow.vue?5d60","webpack://marinsights/./src/components/icons/DownloadIcon.vue?8d72","webpack://marinsights/./src/components/icons/DownloadIcon.vue?15e6","webpack://marinsights/./src/components/icons/DownloadIcon.vue","webpack://marinsights/./src/components/icons/LoaderIcon.vue?d0f6","webpack://marinsights/./src/components/icons/LoaderIcon.vue?7612","webpack://marinsights/./src/components/icons/LoaderIcon.vue","webpack://marinsights/./src/core/services/format.service.ts","webpack://marinsights/./src/components/icons/fileIcons/blank.vue","webpack://marinsights/./src/components/icons/fileIcons/blank.vue?dccd","webpack://marinsights/./src/components/icons/fileIcons/csv.vue","webpack://marinsights/./src/components/icons/fileIcons/csv.vue?01f6","webpack://marinsights/./src/components/icons/fileIcons/doc.vue","webpack://marinsights/./src/components/icons/fileIcons/doc.vue?ad2b","webpack://marinsights/./src/components/icons/fileIcons/docx.vue","webpack://marinsights/./src/components/icons/fileIcons/docx.vue?9b40","webpack://marinsights/./src/components/icons/fileIcons/xls.vue","webpack://marinsights/./src/components/icons/fileIcons/xls.vue?50e4","webpack://marinsights/./src/components/icons/fileIcons/xlsx.vue","webpack://marinsights/./src/components/icons/fileIcons/xlsx.vue?8b22","webpack://marinsights/./src/components/icons/fileIcons/txt.vue","webpack://marinsights/./src/components/icons/fileIcons/txt.vue?b0b1","webpack://marinsights/./src/components/icons/fileIcons/tsv.vue","webpack://marinsights/./src/components/icons/fileIcons/tsv.vue?c2a4","webpack://marinsights/./src/components/icons/fileIcons/pdf.vue","webpack://marinsights/./src/components/icons/fileIcons/pdf.vue?2efb","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportRow.vue?1cbf","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportRow.vue","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportInstanceLoading.vue?58a0","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportInstanceLoading.vue?9a97","webpack://marinsights/./src/components/reports/categories/services/reports/list/ReportInstanceLoading.vue","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportForm.vue?c2d0","webpack://marinsights/./src/components/reports/categories/services/reports/form/DropZone.vue","webpack://marinsights/./src/components/reports/categories/services/reports/form/DropZone.vue?6422","webpack://marinsights/./src/components/reports/categories/services/reports/form/FilePreview.vue","webpack://marinsights/./src/components/reports/categories/services/reports/form/FilePreview.vue?ad81","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportFormHeader.vue?9181","webpack://marinsights/./src/components/icons/CrossIcon.vue?a335","webpack://marinsights/./src/components/icons/CrossIcon.vue?10df","webpack://marinsights/./src/components/icons/CrossIcon.vue","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportFormHeader.vue?fc0f","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportFormHeader.vue","webpack://marinsights/./src/components/icons/CalendarIcon.vue?818d","webpack://marinsights/./src/components/icons/CalendarIcon.vue?5047","webpack://marinsights/./src/components/icons/CalendarIcon.vue","webpack://marinsights/./src/core/managers/context.manager.ts","webpack://marinsights/./src/core/model/report.model.ts","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportForm.vue?7e7b","webpack://marinsights/./src/components/reports/categories/services/reports/form/ServiceReportForm.vue","webpack://marinsights/./src/components/common/pagination.vue?a82e","webpack://marinsights/./src/components/icons/LeftArrowIcon.vue?6683","webpack://marinsights/./src/components/icons/LeftArrowIcon.vue?cdfe","webpack://marinsights/./src/components/icons/LeftArrowIcon.vue","webpack://marinsights/./src/components/icons/RightArrowIcon.vue?db94","webpack://marinsights/./src/components/icons/RightArrowIcon.vue?135a","webpack://marinsights/./src/components/icons/RightArrowIcon.vue","webpack://marinsights/./src/components/common/pagination.vue?2ed8","webpack://marinsights/./src/components/common/pagination.vue","webpack://marinsights/./src/map/core/dal/apiClient.ts","webpack://marinsights/./src/map/core/bll/report/reportManager.ts","webpack://marinsights/./src/components/reports/categories/services/reports/ServiceReport.vue?a01c","webpack://marinsights/./src/components/reports/categories/services/reports/ServiceReport.vue","webpack://marinsights/./src/components/cards/ServiceCardContent.vue?3d14","webpack://marinsights/./src/components/cards/ServicesCardChart.vue?155c","webpack://marinsights/./src/core/managers/chart.manager.ts","webpack://marinsights/./src/core/managers/kpi.manager.ts","webpack://marinsights/./src/store/index.ts","webpack://marinsights/./src/core/services/colours.service.ts","webpack://marinsights/./src/core/charts/baseChart.service.ts","webpack://marinsights/./src/core/charts/bar.chart.service.ts","webpack://marinsights/./src/core/charts/unstack-bar.chart.service.ts","webpack://marinsights/./src/core/charts/barxline.chart.service.ts","webpack://marinsights/./src/core/charts/horizontal-bar.chart.service.ts","webpack://marinsights/./src/core/charts/line.chart.service.ts","webpack://marinsights/./src/core/charts/pie.chart.service.ts","webpack://marinsights/./src/core/charts/undefined.chart.service.ts","webpack://marinsights/./src/core/charts/gauge.chart.service.ts","webpack://marinsights/./src/core/services/kpi.service.ts","webpack://marinsights/./src/core/composables/preview.composable.ts","webpack://marinsights/./src/components/cards/ServicesCardChart.vue?78de","webpack://marinsights/./src/components/cards/ServicesCardChart.vue","webpack://marinsights/./src/components/cards/ServicesCardKpiShell.vue?e16e","webpack://marinsights/./src/components/cards/ServicesCardKpi.vue?b5f0","webpack://marinsights/./src/components/cards/ServicesCardKpi.vue?a668","webpack://marinsights/./src/components/cards/ServicesCardKpi.vue","webpack://marinsights/./src/components/cards/ServicesCardKpiShell.vue?9ff4","webpack://marinsights/./src/components/cards/ServicesCardKpiShell.vue","webpack://marinsights/./src/components/cards/ServicesCardPreview.vue?42f2","webpack://marinsights/./src/components/cards/ServicesCardPreview.vue?4bc0","webpack://marinsights/./src/components/cards/ServicesCardPreview.vue","webpack://marinsights/./src/components/cards/ServicesCardFleet.vue?a4c8","webpack://marinsights/./src/components/cards/ServicesCardFleet.vue?69ea","webpack://marinsights/./src/components/cards/ServicesCardFleet.vue","webpack://marinsights/./src/components/Observer.vue?1a9c","webpack://marinsights/./src/components/Observer.vue?f1dd","webpack://marinsights/./src/components/Observer.vue","webpack://marinsights/./src/components/cards/ServiceCardContent.vue?5985","webpack://marinsights/./src/components/cards/ServiceCardContent.vue","webpack://marinsights/./src/components/Filters/ServiceFilters.vue?e8d2","webpack://marinsights/./src/components/dropdowns/CustomMultiSelect.vue?286a","webpack://marinsights/./src/components/dropdowns/CustomMultiSelect.vue?da28","webpack://marinsights/./src/components/dropdowns/CustomMultiSelect.vue","webpack://marinsights/./src/core/managers/filter.manager.ts","webpack://marinsights/./src/components/Filters/ServiceFilters.vue?31c2","webpack://marinsights/./src/components/Filters/ServiceFilters.vue","webpack://marinsights/./src/components/titles/ServiceDetailReportsAndDashboards.vue?9958","webpack://marinsights/./src/components/titles/ServiceDetailReportsAndDashboards.vue?a89e","webpack://marinsights/./src/components/titles/ServiceDetailReportsAndDashboards.vue","webpack://marinsights/./src/components/titles/ServiceDetailTitle.vue?a1e8","webpack://marinsights/./src/components/titles/ServiceDetailTitle.vue?fa8e","webpack://marinsights/./src/components/titles/ServiceDetailTitle.vue","webpack://marinsights/./src/core/managers/category.manager.ts","webpack://marinsights/./src/views/pages/Analytics.detail.vue?3812","webpack://marinsights/./src/views/pages/Analytics.detail.vue","webpack://marinsights/./src/views/pages/Analytics.list.vue?4db2","webpack://marinsights/./src/components/buttons/ServicesFilterButton.vue?d2b4","webpack://marinsights/./src/components/buttons/ServicesFilterButton.vue","webpack://marinsights/./src/components/titles/PageTitle.vue?8219","webpack://marinsights/./src/components/titles/PageTitle.vue?34e3","webpack://marinsights/./src/components/titles/PageTitle.vue","webpack://marinsights/./src/core/composables/handleFilters.composable.ts","webpack://marinsights/./src/views/pages/Analytics.list.vue?85e7","webpack://marinsights/./src/views/pages/Analytics.list.vue","webpack://marinsights/./src/views/pages/Dashboard.vue?7493","webpack://marinsights/./src/components/buttons/TopButton.vue?7c19","webpack://marinsights/./src/components/icons/Close.vue?0f65","webpack://marinsights/./src/components/icons/Close.vue?b7eb","webpack://marinsights/./src/components/icons/Close.vue","webpack://marinsights/./src/components/icons/HelpCenter.vue?08db","webpack://marinsights/./src/components/icons/HelpCenter.vue?5248","webpack://marinsights/./src/components/icons/HelpCenter.vue","webpack://marinsights/./src/components/icons/Services.vue?0b59","webpack://marinsights/./src/components/icons/Services.vue?3971","webpack://marinsights/./src/components/icons/Services.vue","webpack://marinsights/./src/components/icons/ExpandIcon.vue?64ba","webpack://marinsights/./src/components/icons/ExpandIcon.vue?5fd0","webpack://marinsights/./src/components/icons/ExpandIcon.vue","webpack://marinsights/./src/components/icons/LogoutIcon.vue?2e82","webpack://marinsights/./src/components/icons/LogoutIcon.vue?81f6","webpack://marinsights/./src/components/icons/LogoutIcon.vue","webpack://marinsights/./src/components/buttons/TopButton.vue?671c","webpack://marinsights/./src/components/buttons/TopButton.vue","webpack://marinsights/./src/core/managers/dashboard.manager.ts","webpack://marinsights/./src/views/pages/Dashboard.vue?399d","webpack://marinsights/./src/views/pages/Dashboard.vue","webpack://marinsights/./src/views/pages/Dashboards.list.vue?c661","webpack://marinsights/./src/components/buttons/DashboardsListMenuShell.vue?c090","webpack://marinsights/./src/components/buttons/DashboardsListMenu.vue?b7aa","webpack://marinsights/./src/components/buttons/DashboardsListMenu.vue?6e70","webpack://marinsights/./src/components/buttons/DashboardsListMenu.vue","webpack://marinsights/./src/components/icons/FilterIcon.vue?5edf","webpack://marinsights/./src/components/icons/FilterIcon.vue?064a","webpack://marinsights/./src/components/icons/FilterIcon.vue","webpack://marinsights/./src/core/composables/reportsMenu.composable.ts","webpack://marinsights/./src/components/SearchInput.vue?0790","webpack://marinsights/./src/components/icons/SearchIcon.vue?cd82","webpack://marinsights/./src/components/icons/SearchIcon.vue?7bb7","webpack://marinsights/./src/components/icons/SearchIcon.vue","webpack://marinsights/./src/components/SearchInput.vue?f3b2","webpack://marinsights/./src/components/SearchInput.vue","webpack://marinsights/./src/components/buttons/DashboardsListMenuShell.vue?4b87","webpack://marinsights/./src/components/buttons/DashboardsListMenuShell.vue","webpack://marinsights/./src/views/pages/Dashboards.list.vue?1cda","webpack://marinsights/./src/views/pages/Dashboards.list.vue","webpack://marinsights/./src/views/pages/errors/NotFound.vue?b651","webpack://marinsights/./src/core/managers/user.manager.ts","webpack://marinsights/./src/views/pages/errors/NotFound.vue?fae3","webpack://marinsights/./src/views/pages/errors/NotFound.vue","webpack://marinsights/./src/views/pages/Fleet.vue?1bbe","webpack://marinsights/./src/components/buttons/FleetTabs.vue?40eb","webpack://marinsights/./src/core/managers/fleet.manager.ts","webpack://marinsights/./src/components/buttons/FleetTabs.vue?81a2","webpack://marinsights/./src/components/buttons/FleetTabs.vue","webpack://marinsights/./src/components/buttons/ListCardView.vue?a614","webpack://marinsights/./src/components/icons/CardViewIcon.vue?162f","webpack://marinsights/./src/components/icons/CardViewIcon.vue?ab13","webpack://marinsights/./src/components/icons/CardViewIcon.vue","webpack://marinsights/./src/components/icons/ListIcon.vue?8545","webpack://marinsights/./src/components/icons/ListIcon.vue?5437","webpack://marinsights/./src/components/icons/ListIcon.vue","webpack://marinsights/./src/components/buttons/ListCardView.vue?b02b","webpack://marinsights/./src/components/buttons/ListCardView.vue","webpack://marinsights/./src/components/cards/FleetCard.vue?cd15","webpack://marinsights/./src/components/cards/FleetCardCardView.vue?c196","webpack://marinsights/./src/components/buttons/FavouriteButton.vue?b691","webpack://marinsights/./src/components/icons/Star.vue?ce47","webpack://marinsights/./src/components/icons/Star.vue?1798","webpack://marinsights/./src/components/icons/Star.vue","webpack://marinsights/./src/core/composables/favourite.composable.ts","webpack://marinsights/./src/components/buttons/FavouriteButton.vue?2774","webpack://marinsights/./src/components/buttons/FavouriteButton.vue","webpack://marinsights/./src/core/composables/assets.composable.ts","webpack://marinsights/./src/core/model/fleetCardProps.model.ts","webpack://marinsights/./src/components/cards/FleetCardCardView.vue?4b06","webpack://marinsights/./src/components/cards/FleetCardCardView.vue","webpack://marinsights/./src/components/cards/FleetCardListView.vue?ccd8","webpack://marinsights/./src/components/cards/FleetCardListView.vue?84af","webpack://marinsights/./src/components/cards/FleetCardListView.vue","webpack://marinsights/./src/components/cards/FleetCard.vue?07d3","webpack://marinsights/./src/components/cards/FleetCard.vue","webpack://marinsights/./src/views/pages/Fleet.vue?8271","webpack://marinsights/./src/views/pages/Fleet.vue","webpack://marinsights/./src/views/pages/FleetAsset.vue?d31f","webpack://marinsights/./src/components/buttons/AssetDetailTab.vue?71c2","webpack://marinsights/./src/components/icons/DetailsIcon.vue?00cd","webpack://marinsights/./src/components/icons/DetailsIcon.vue?603d","webpack://marinsights/./src/components/icons/DetailsIcon.vue","webpack://marinsights/./src/components/icons/HistoryIcon.vue?7c6f","webpack://marinsights/./src/components/icons/HistoryIcon.vue?8139","webpack://marinsights/./src/components/icons/HistoryIcon.vue","webpack://marinsights/./src/components/buttons/AssetDetailTab.vue?c0d2","webpack://marinsights/./src/components/buttons/AssetDetailTab.vue","webpack://marinsights/./src/components/cards/FleetDetailTitleCard.vue?0b91","webpack://marinsights/./src/components/icons/VesselLengthIcon.vue?1272","webpack://marinsights/./src/components/icons/VesselLengthIcon.vue?81d9","webpack://marinsights/./src/components/icons/VesselLengthIcon.vue","webpack://marinsights/./src/components/cards/FleetDetailTitleCard.vue?a0c5","webpack://marinsights/./src/components/cards/FleetDetailTitleCard.vue","webpack://marinsights/./src/components/fleet/FleetAssetDetails.vue?da09","webpack://marinsights/./src/components/fleet/FleetAssetDetails.vue?6202","webpack://marinsights/./src/components/fleet/FleetAssetDetails.vue","webpack://marinsights/./src/components/fleet/tabs/FleetReportTab.vue?1c88","webpack://marinsights/./src/components/buttons/ReportsListMenuShell.vue?3b32","webpack://marinsights/./src/components/buttons/ReportsListMenu.vue?7e18","webpack://marinsights/./src/components/buttons/ReportsListMenu.vue?6013","webpack://marinsights/./src/components/buttons/ReportsListMenu.vue","webpack://marinsights/./src/components/buttons/ReportsListMenuShell.vue?fc9e","webpack://marinsights/./src/components/buttons/ReportsListMenuShell.vue","webpack://marinsights/./src/components/reports/categories/ServiceCategoryList.report.vue?4700","webpack://marinsights/./src/components/reports/categories/services/ServiceList.Report.vue?350e","webpack://marinsights/./src/components/reports/categories/services/reports/AssetReport.vue?74fe","webpack://marinsights/./src/components/reports/categories/services/reports/form/AssetReportForm.vue?55e8","webpack://marinsights/./src/components/reports/categories/services/reports/form/AssetReportForm.vue?f862","webpack://marinsights/./src/components/reports/categories/services/reports/form/AssetReportForm.vue","webpack://marinsights/./src/components/reports/categories/services/reports/AssetReport.vue?4e37","webpack://marinsights/./src/components/reports/categories/services/reports/AssetReport.vue","webpack://marinsights/./src/components/reports/categories/services/ServiceList.Report.vue?8580","webpack://marinsights/./src/components/reports/categories/services/ServiceList.Report.vue","webpack://marinsights/./src/components/reports/categories/ServiceCategoryList.report.vue?c60a","webpack://marinsights/./src/components/reports/categories/ServiceCategoryList.report.vue","webpack://marinsights/./src/components/reports/categories/ReportListByServiceCategory.loading.vue?b716","webpack://marinsights/./src/components/reports/categories/ReportListByServiceCategory.loading.vue?02da","webpack://marinsights/./src/components/reports/categories/ReportListByServiceCategory.loading.vue","webpack://marinsights/./src/components/fleet/tabs/FleetReportTab.vue?6a0a","webpack://marinsights/./src/components/fleet/tabs/FleetReportTab.vue","webpack://marinsights/./src/components/fleet/FleetAssetTimeline.vue?fec9","webpack://marinsights/./src/components/buttons/TimelineZoom.vue?6b1d","webpack://marinsights/./src/components/icons/ZoomInIcon.vue?8978","webpack://marinsights/./src/components/icons/ZoomInIcon.vue?4f5b","webpack://marinsights/./src/components/icons/ZoomInIcon.vue","webpack://marinsights/./src/components/icons/ZoomOutIcon.vue?392e","webpack://marinsights/./src/components/icons/ZoomOutIcon.vue?2ba1","webpack://marinsights/./src/components/icons/ZoomOutIcon.vue","webpack://marinsights/./src/components/buttons/TimelineZoom.vue?e554","webpack://marinsights/./src/components/buttons/TimelineZoom.vue","webpack://marinsights/./src/components/fleet/FleetAssetTimelineDetail.vue?7af6","webpack://marinsights/./src/core/composables/timeline.composable.ts","webpack://marinsights/./src/core/services/timeline.service.ts","webpack://marinsights/./src/components/fleet/FleetAssetTimelineDetail.vue?cc11","webpack://marinsights/./src/components/fleet/FleetAssetTimelineDetail.vue","webpack://marinsights/./src/components/fleet/FleetAssetTimelineModal.vue?38ac","webpack://marinsights/./src/components/buttons/CloseModal.vue?c8a7","webpack://marinsights/./src/components/buttons/CloseModal.vue?4978","webpack://marinsights/./src/components/buttons/CloseModal.vue","webpack://marinsights/./src/components/fleet/FleetAssetTimelineModal.vue?75b3","webpack://marinsights/./src/components/fleet/FleetAssetTimelineModal.vue","webpack://marinsights/./src/components/fleet/FleetAssetTimeline.vue?3067","webpack://marinsights/./src/components/fleet/FleetAssetTimeline.vue","webpack://marinsights/./src/map/views/fleetMap.vue?ec47","webpack://marinsights/./src/map/views/components/misc/toaster.vue?6da6","webpack://marinsights/./src/map/views/components/misc/toaster.vue?aae3","webpack://marinsights/./src/map/views/components/misc/toaster.vue","webpack://marinsights/./src/map/views/components/misc/loader.vue?11f9","webpack://marinsights/./src/map/views/components/misc/loader.vue?8f23","webpack://marinsights/./src/map/views/components/misc/loader.vue","webpack://marinsights/./src/components/icons/ArrowForward.vue?1842","webpack://marinsights/./src/components/icons/ArrowForward.vue?1db9","webpack://marinsights/./src/components/icons/ArrowForward.vue","webpack://marinsights/./src/map/core/service/map.maker.ts","webpack://marinsights/./src/map/core/bll/category/category.mapper.ts","webpack://marinsights/./src/map/core/bll/category/category.group.ts","webpack://marinsights/./src/map/core/bll/category/category.manager.ts","webpack://marinsights/./src/map/core/bll/category/category.store.ts","webpack://marinsights/./src/map/views/composables/flyTo.composable.ts","webpack://marinsights/./src/map/core/service/map.eventDelegation.ts","webpack://marinsights/./src/map/core/service/popover/svgMaker.ts","webpack://marinsights/./src/map/core/service/popover.service.ts","webpack://marinsights/./src/map/core/utilities.ts","webpack://marinsights/./src/map/views/components/map/asset/assetPopover.ts","webpack://marinsights/./src/map/views/composables/popoverAsset.composable.ts","webpack://marinsights/./src/map/core/bll/step/step.group.ts","webpack://marinsights/./src/map/core/bll/step/step.manager.ts","webpack://marinsights/./src/map/core/bll/step/step.store.ts","webpack://marinsights/./src/map/views/composables/fetchStep.composable.ts","webpack://marinsights/./src/map/views/components/map/step/stepPopover.ts","webpack://marinsights/./src/map/views/composables/popoverStep.composable.ts","webpack://marinsights/./src/map/core/bll/concession/concession.mapper.ts","webpack://marinsights/./src/map/core/bll/concession/concession.group.ts","webpack://marinsights/./src/map/core/bll/concession/concession.manager.ts","webpack://marinsights/./src/map/core/bll/concession/concession.store.ts","webpack://marinsights/./src/map/views/composables/fetchConcession.composable.ts","webpack://marinsights/./src/map/core/bll/zone/zone.mapper.ts","webpack://marinsights/./src/map/core/bll/zone/zone.group.ts","webpack://marinsights/./src/map/core/bll/zone/zone.manager.ts","webpack://marinsights/./src/map/core/bll/zone/zone.store.ts","webpack://marinsights/./src/map/views/composables/fetchZone.composable.ts","webpack://marinsights/./src/map/core/bll/map/tile.store.ts","webpack://marinsights/./src/map/views/composables/popoverStatic.composable.ts","webpack://marinsights/./src/map/views/composables/fleetAsset.composable.ts","webpack://marinsights/./src/map/views/composables/selectedSetBlue.composable.ts","webpack://marinsights/./src/map/views/fleetMap.vue?f529","webpack://marinsights/./src/map/views/fleetMap.vue","webpack://marinsights/./src/views/pages/FleetAsset.vue?9928","webpack://marinsights/./src/views/pages/FleetAsset.vue","webpack://marinsights/./src/views/pages/Home.vue?a51b","webpack://marinsights/./src/components/buttons/CardButton.vue?d29c","webpack://marinsights/./src/components/buttons/CardButton.vue?a238","webpack://marinsights/./src/components/buttons/CardButton.vue","webpack://marinsights/./src/views/pages/Home.vue?1d27","webpack://marinsights/./src/views/pages/Home.vue","webpack://marinsights/./src/views/pages/Profile.vue?ff2e","webpack://marinsights/./src/components/Filters/DepartmentSelect.vue?b2fe","webpack://marinsights/./src/components/Filters/DepartmentSelect.vue?8152","webpack://marinsights/./src/components/Filters/DepartmentSelect.vue","webpack://marinsights/./src/components/Filters/SectorsSelect.vue?c21b","webpack://marinsights/./src/components/Filters/SectorsSelect.vue?64ce","webpack://marinsights/./src/components/Filters/SectorsSelect.vue","webpack://marinsights/./src/views/pages/Profile.vue?e7f7","webpack://marinsights/./src/views/pages/Profile.vue","webpack://marinsights/./src/views/pages/Reports.list.vue?7de8","webpack://marinsights/./src/views/pages/Reports.list.vue?a0ef","webpack://marinsights/./src/views/pages/Reports.list.vue","webpack://marinsights/./src/map/views/tabMap.vue?519c","webpack://marinsights/./src/map/views/components/menuRight.vue?21ae","webpack://marinsights/./src/map/views/components/drawers/right/search/asset.typeAhead.vue?2e9e","webpack://marinsights/./src/components/icons/WifiIcon.vue?a2db","webpack://marinsights/./src/components/icons/WifiIcon.vue?e237","webpack://marinsights/./src/components/icons/WifiIcon.vue","webpack://marinsights/./src/map/views/components/drawers/right/search/asset.typeAhead.vue?5b33","webpack://marinsights/./src/map/views/components/drawers/right/search/asset.typeAhead.vue","webpack://marinsights/./src/map/views/components/drawers/right/category/category.panel.vue?2f74","webpack://marinsights/./src/map/views/components/drawers/right/category/category.row.vue?0013","webpack://marinsights/./src/map/views/components/drawers/right/category/category.row.vue?ad85","webpack://marinsights/./src/map/views/components/drawers/right/category/category.row.vue","webpack://marinsights/./src/map/views/components/drawers/right/category/category.panel.vue?e3ac","webpack://marinsights/./src/map/views/components/drawers/right/category/category.panel.vue","webpack://marinsights/./src/map/views/components/drawers/right/switch/switchLayer.panel.vue?1eb9","webpack://marinsights/./src/map/views/components/drawers/right/switch/switchLayer.panel.vue?1139","webpack://marinsights/./src/map/views/components/drawers/right/switch/switchLayer.panel.vue","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.panel.vue?3011","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.row.vue?b33e","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.row.vue?f21d","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.row.vue","webpack://marinsights/./src/map/views/components/drawers/right/zone/concession.toggle.vue?eebf","webpack://marinsights/./src/map/views/components/drawers/right/zone/concession.toggle.vue?9037","webpack://marinsights/./src/map/views/components/drawers/right/zone/concession.toggle.vue","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.panel.vue?0295","webpack://marinsights/./src/map/views/components/drawers/right/zone/zone.panel.vue","webpack://marinsights/./src/map/views/components/menuRight.vue?428d","webpack://marinsights/./src/map/views/components/menuRight.vue","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/detail.card.vue?0284","webpack://marinsights/./src/map/core/bll/asset/assetDetailMapper.ts","webpack://marinsights/./src/map/core/bll/asset/assetDetail.manager.ts","webpack://marinsights/./src/components/icons/SpeedometerIcon.vue?6e3a","webpack://marinsights/./src/components/icons/SpeedometerIcon.vue?7a0f","webpack://marinsights/./src/components/icons/SpeedometerIcon.vue","webpack://marinsights/./src/components/icons/Compass.vue?dcce","webpack://marinsights/./src/components/icons/Compass.vue?ecc8","webpack://marinsights/./src/components/icons/Compass.vue","webpack://marinsights/./src/map/core/bll/kpi/kpi.mapper.ts","webpack://marinsights/./src/map/core/bll/kpi/kpi.manager.ts","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-container.vue?8e5d","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-pagination.vue?0e0b","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-pagination.vue?8f63","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-pagination.vue","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-viewport.vue?e44a","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-viewport.vue?1de7","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-viewport.vue","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider.composable.ts","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-container.vue?f1cc","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-container.vue","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/detail.card.vue?a761","webpack://marinsights/./src/map/views/components/drawers/left/vesselDetail/detail.card.vue","webpack://marinsights/./src/map/views/composables/tiles.composable.ts","webpack://marinsights/./src/map/views/composables/fetchAsset.composable.ts","webpack://marinsights/./src/map/views/composables/selectedCircle.composable.ts","webpack://marinsights/./src/map/views/composables/flyBound.composable.ts","webpack://marinsights/./src/map/views/tabMap.vue?b669","webpack://marinsights/./src/map/views/tabMap.vue","webpack://marinsights/./src/router/index.ts","webpack://marinsights/./src/core/axios.plugin.ts","webpack://marinsights/./src/core/services/request.service.ts","webpack://marinsights/./src/core/managers/settings.manager.ts","webpack://marinsights/./src/core/services/authentication/login.service.ts","webpack://marinsights/./src/core/services/authentication/login.service.provider.ts","webpack://marinsights/./src/App.vue?5f04","webpack://marinsights/./src/views/popover/fleet-period.vue?a9bb","webpack://marinsights/./src/views/popover/assetRowPopover.vue?3c58","webpack://marinsights/./src/views/popover/assetRowPopover.vue?935b","webpack://marinsights/./src/views/popover/assetRowPopover.vue","webpack://marinsights/./src/views/popover/attributeRowPopover.vue?38df","webpack://marinsights/./src/views/popover/attributeRowPopover.vue?09e3","webpack://marinsights/./src/views/popover/attributeRowPopover.vue","webpack://marinsights/./src/views/popover/fleet-period.vue?b193","webpack://marinsights/./src/views/popover/fleet-period.vue","webpack://marinsights/./src/App.vue?847a","webpack://marinsights/./src/App.vue","webpack://marinsights/./src/map/views/directives/focus.directives.ts","webpack://marinsights/./src/map/views/directives/accordion.directive.ts","webpack://marinsights/./src/map/views/directives/keyboard.directive.ts","webpack://marinsights/./src/map/views/directives/sticky.directive.ts","webpack://marinsights/./src/core/services/loggers/logger.service.ts","webpack://marinsights/./src/core/managers/labels.manager.ts","webpack://marinsights/./src/main.ts","webpack://marinsights/./src/assets/fleetAvatars/ sync ^\\.\\/.*\\.svg$","webpack://marinsights/./src/assets/fleetIcons/ sync ^\\.\\/.*\\.svg$","webpack://marinsights/./src/assets/img/vessel/ sync ^\\.\\/vessel_.*\\.png$","webpack://marinsights/webpack/bootstrap","webpack://marinsights/webpack/runtime/chunk loaded","webpack://marinsights/webpack/runtime/compat get default export","webpack://marinsights/webpack/runtime/define property getters","webpack://marinsights/webpack/runtime/global","webpack://marinsights/webpack/runtime/hasOwnProperty shorthand","webpack://marinsights/webpack/runtime/make namespace object","webpack://marinsights/webpack/runtime/publicPath","webpack://marinsights/webpack/runtime/jsonp chunk loading","webpack://marinsights/webpack/startup"],"sourcesContent":["export default class Tools {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public static copyArray (array: T[]): T[] {\r\n return JSON.parse(JSON.stringify(array))\r\n }\r\n\r\n public static getObjectFromStorage (storage: Storage, item: string): { [key: string]: string } {\r\n return JSON.parse(storage.getItem(item) as string)\r\n }\r\n\r\n public static flattenArray (arr: T[][]): T[] {\r\n return ([] as T[]).concat(...arr)\r\n }\r\n\r\n public static debounce (fn: T, wait: number): () => void {\r\n let timer: ReturnType\r\n return () => {\r\n if (timer) clearTimeout(timer)\r\n timer = setTimeout(() => {\r\n if (typeof fn === 'function') {\r\n fn()\r\n }\r\n }, wait)\r\n }\r\n }\r\n\r\n public static isEmpty (obj: T): boolean {\r\n return obj &&\r\n Object.keys(obj).length === 0 &&\r\n Object.getPrototypeOf(obj) === Object.prototype\r\n }\r\n\r\n public static updatePageName (name: string, title?: string): void {\r\n const titleAddition = title ? ` - ${title}` : ''\r\n window.document.title = `Marinsights - ${name}${titleAddition}`\r\n }\r\n\r\n public static formatDate (date: string, hours = false): string {\r\n const day = new Date(date).toLocaleDateString('en-us', { day: '2-digit' })\r\n const month = new Date(date).toLocaleDateString('en-us', { month: '2-digit' })\r\n const year = new Date(date).toLocaleDateString('en-us', { year: 'numeric' })\r\n if (hours) {\r\n const hour = new Date(date).getHours()\r\n const minute = new Date(date).getMinutes()\r\n return `${day}-${month}-${year} ${hour}:${minute}`\r\n }\r\n return `${day}-${month}-${year}`\r\n }\r\n\r\n public static isOnceSelected (categories : T[]) : boolean {\r\n let rep = false\r\n for (const category of categories) {\r\n if (category.active) {\r\n rep = true\r\n }\r\n }\r\n return rep\r\n }\r\n}\r\n","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, withModifiers as _withModifiers, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, Teleport as _Teleport, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/logo/Favicon-Marinsights-2022.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a4983cea\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"h-full flex flex-col w-full layout-container\" }\nconst _hoisted_2 = { class: \"bg-nav border-b border-bg-2\" }\nconst _hoisted_3 = { class: \"flex items-center pt-3 pb-2.5 px-4 md:px-12 font-normal text-lg max-w-[1800px] mx-auto relative w-full justify-between z-1001\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"rounded-xl h-10 w-10 mr-6\"\n}, null, -1))\nconst _hoisted_5 = { class: \"flex items-center justify-end lg:justify-between w-full\" }\nconst _hoisted_6 = { class: \"hidden lg:flex\" }\nconst _hoisted_7 = { class: \"flex\" }\nconst _hoisted_8 = { class: \"rounded-full p-2 bg-bg-2 hover:bg-bg-3 w-fit\" }\nconst _hoisted_9 = { style: {\"position\":\"relative\"} }\nconst _hoisted_10 = {\n key: 0,\n style: {\"position\":\"absolute\",\"right\":\"0\"}\n}\nconst _hoisted_11 = { class: \"renaud_menu_popover\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://opsealog.zendesk.com/hc/en-150/requests/new\",\n target: \"_blank\",\n title: \"Contact support\"\n }, \"Contact support\")\n], -1))\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://opsealog.zendesk.com/hc/en-150\",\n target: \"_blank\",\n title: \"Help center\"\n }, \"Help center\")\n], -1))\nconst _hoisted_14 = { class: \"rounded-full p-2 bg-bg-2 hover:bg-bg-3 w-fit\" }\nconst _hoisted_15 = { class: \"w-screen bg-bg-0 h-14 fixed lg:hidden bottom-0 left-0 z-1001 flex items-center\" }\nconst _hoisted_16 = { class: \"m-auto w-full md:w-4/5 flex lg:hidden items-center justify-between\" }\nconst _hoisted_17 = { style: {\"position\":\"absolute\",\"background\":\"#111827\",\"top\":\"20%\",\"left\":\"50%\",\"transform\":\"translate(-50%)\",\"padding\":\"20px\",\"border-radius\":\"10px\"} }\nconst _hoisted_18 = { style: {\"width\":\"100%\",\"text-align\":\"right\",\"margin-bottom\":\"10px\"} }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"iframe\", {\n style: {\"width\":\"600px\",\"height\":\"400px\",\"overflow-y\":\"auto\"},\n src: \"https://forms.office.com/Pages/ResponsePage.aspx?id=ltYfK-hYCUmolLo2SwXjBOOnIHyFb-BJtK0zxdRPbGhUNlBNMkk3TzZXWFJWQjhYSzBGVDhOQ0pQQy4u\"\n}, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_NavigationLinkPrimary = _resolveComponent(\"NavigationLinkPrimary\")!\n const _component_question_icon = _resolveComponent(\"question-icon\")!\n const _component_profile_icon = _resolveComponent(\"profile-icon\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_BackToTop = _resolveComponent(\"BackToTop\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"nav\", _hoisted_3, [\n _createVNode(_component_router_link, { to: 'home' }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.navigationLinks, (link, i) => {\n return (_openBlock(), _createBlock(_component_NavigationLinkPrimary, {\n key: i,\n to: link.name,\n query: link.query,\n onClick: _ctx.openMenu\n }, null, 8, [\"to\", \"query\", \"onClick\"]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"a\", {\n href: \"#\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.menuHelp =true), [\"prevent\"])),\n style: {\"display\":\"inline-block\"}\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_question_icon, { class: \"w-auto h-6 stroke-text-alt fill-text-alt\" })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.menuHelp)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"ul\", _hoisted_11, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {query : { modal : 'feedback'}},\n title: \"give a feedback\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Give a feedback\")\n ]),\n _: 1\n })\n ]),\n _hoisted_12,\n _hoisted_13\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_router_link, { to: {name : 'profile'} }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_profile_icon, { class: \"w-auto h-6 stroke-text-alt fill-text-alt\" })\n ])\n ]),\n _: 1\n })\n ])\n ])\n ])\n ]),\n _createElementVNode(\"nav\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.navigationLinks, (link, i) => {\n return (_openBlock(), _createBlock(_component_NavigationLinkPrimary, {\n key: i,\n to: link.name,\n query: link.query,\n onClick: _ctx.openMenu\n }, null, 8, [\"to\", \"query\", \"onClick\"]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass(\r\n _ctx.$route.name !== 'map'\r\n ? 'grow px-5 lg:px-14 max-w-[1800px] mx-auto w-full'\r\n : 'grow w-full'\r\n )\n }, [\n _createVNode(_component_router_view)\n ], 2)\n ]),\n _createVNode(_component_BackToTop),\n (_ctx.displayFeedBackModal)\n ? (_openBlock(), _createBlock(_Teleport, {\n key: 0,\n to: \"#end-of-doc\"\n }, [\n _createVNode(_component_router_link, {\n to: {query : undefined},\n style: {\"position\":\"fixed\",\"background\":\"rgba(0,0,0,.3)\",\"inset\":\"0\"}\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_router_link, {\n to: {query: undefined},\n title: \"Close\"\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n })\n ]),\n _hoisted_20\n ])\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DownChevronIcon = _resolveComponent(\"DownChevronIcon\")!\n\n return (_openBlock(), _createElementBlock(\"button\", {\n class: \"fixed z-1001 bottom-16 lg:bottom-5 right-5 p-2 rounded-full bg-bg-3 hidden\",\n ref: \"scrollTopButton\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.scrollToTop && _ctx.scrollToTop(...args)))\n }, [\n _createVNode(_component_DownChevronIcon, {\n class: \"w-8 h-8 fill-text-alt\",\n btt: true\n })\n ], 512))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\"\n}\nconst _hoisted_2 = [\"fill\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, [\n _createElementVNode(\"path\", {\n id: \"_029-chevron\",\n \"data-name\": \"029-chevron\",\n d: \"M7,14A7,7,0,0,1,2.05,2.05a7,7,0,0,1,9.9,9.9A6.954,6.954,0,0,1,7,14ZM7,1.094A5.906,5.906,0,1,0,12.906,7,5.913,5.913,0,0,0,7,1.094ZM10.781,7.93,7,4.148,3.219,7.93l.773.773L7,5.7,10.008,8.7Zm0,0\",\n fill: _ctx.btt ? '#E3E8F3' : 'currentColor'\n }, null, 8, _hoisted_2)\n ]))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'DownChevronIcon',\r\n props: {\r\n btt: {\r\n type: Boolean, default: false\r\n }\r\n }\r\n})\r\n","import { render } from \"./DownChevronIcon.vue?vue&type=template&id=74b119b9&ts=true\"\nimport script from \"./DownChevronIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./DownChevronIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport DownChevronIcon from '@/components/icons/DownChevronIcon.vue'\r\n\r\nexport default defineComponent({\r\n name: 'BackToTop',\r\n components: { DownChevronIcon },\r\n mounted () {\r\n window.addEventListener('scroll', this.handleScroll)\r\n },\r\n beforeUnmount () {\r\n window.removeEventListener('scroll', this.handleScroll)\r\n },\r\n methods: {\r\n handleScroll () {\r\n const scrollBtn = this.$refs.scrollTopButton\r\n if (window.scrollY > 0) {\r\n (scrollBtn as HTMLElement).classList.remove('hidden')\r\n } else {\r\n (scrollBtn as HTMLElement).classList.add('hidden')\r\n }\r\n },\r\n scrollToTop () {\r\n window.scrollTo({ top: 0, behavior: 'smooth' })\r\n }\r\n }\r\n})\r\n","import { render } from \"./BackToTop.vue?vue&type=template&id=14c7930a&ts=true\"\nimport script from \"./BackToTop.vue?vue&type=script&lang=ts\"\nexport * from \"./BackToTop.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a5a2006c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"relative\" }\nconst _hoisted_2 = { class: \"flex items-center flex-col lg:flex-row\" }\nconst _hoisted_3 = { class: \"link\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_link, {\n to: { name: _ctx.to, query: _ctx.query },\n onMouseenter: _cache[0] || (_cache[0] = ($event: any) => (_ctx.hideBar = true)),\n onMouseleave: _cache[1] || (_cache[1] = ($event: any) => (_ctx.hideBar = false)),\n class: _normalizeClass([[ _ctx.stroke.includes(_ctx.to)\r\n ? 'stroke-text-alt fill-text-alt hover:stroke-text-alt'\r\n : 'fill-text-alt hover:fill-text-alt',\r\n _ctx.activeLink && !_ctx.fill.includes(_ctx.to)\r\n ? 'text-bg-0 stroke-bg-0 fill-bg-0 !font-bold bg-semantic-activate hover:text-text-alt hover:stroke-text-alt hover:fill-text-alt'\r\n : _ctx.activeLink && _ctx.fill.includes(_ctx.to)\r\n ? 'text-bg-0 fill-bg-0 !font-bold bg-semantic-activate hover:text-text-alt hover:fill-text-alt'\r\n : 'text-text-alt',\r\n ], \"no-underline block lg:inline-block hover:bg-bg-2 rounded-md p-0.5 xxs:p-2 mx-0 sm:mx-3 font-normal w-full lg:w-auto\"])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.icon), { class: \"w-3 h-3 xxs:w-5 xxs:h-5 mr:0 lg:mr-1 mb-1 lg:mb-0\" })),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(`${_ctx.to}.title`)), 1)\n ])\n ]),\n _: 1\n }, 8, [\"to\", \"class\"]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\r\n {\r\n 'absolute -bottom-3.5 h-0.75 w-full bg-semantic-activate rounded-lg hidden lg:block p-0':\r\n _ctx.activeLink,\r\n },\r\n { '!hidden': _ctx.hideBar },\r\n ])\n }, null, 2)\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"Icon_-_Dashboard\",\n \"data-name\": \"Icon - Dashboard\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"30\",\n height: \"30\",\n viewBox: \"0 0 30 30\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_4 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardIcon'\r\n})\r\n","import { render } from \"./DashboardIcon.vue?vue&type=template&id=785e19fe&ts=true\"\nimport script from \"./DashboardIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./DashboardIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n version: \"1.1\",\n id: \"Calque_2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 93.3333969 93.3333359\",\n \"enable-background\": \"new 0 0 93.3333969 93.3333359\",\n \"xml:space\": \"preserve\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FilesIcon'\r\n})\r\n","import { render } from \"./FilesIcon.vue?vue&type=template&id=54e022c2&ts=true\"\nimport script from \"./FilesIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n height: \"512pt\",\n viewBox: \"0 0 512 512\",\n width: \"512pt\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m472 434c0 20.953125-17.269531 38-38.5 38-20.648438 0-37.546875-16.128906-38.457031-36.289062 29.058593-52.09375 51.191406-113.648438 59.703125-166.53125l2.996094-18.613282-62.742188-13.945312v-76.621094h30v-40h-70v-76h-80v-44h-40v44h-80v76h-70v40h30v76.621094l-62.742188 13.945312 2.996094 18.613282c11.152344 69.285156 43.921875 134.816406 61.703125 166.550781-.921875 20.152343-17.816406 36.269531-38.457031 36.269531-21.230469 0-38.5-17.046875-38.5-38h-40c0 43.011719 35.214844 78 78.5 78 23.769531 0 45.09375-10.566406 59.5-27.207031 14.40625 16.640625 35.730469 27.207031 59.5 27.207031 23.21875 0 44.113281-10.066406 58.5-26.039062 14.386719 15.972656 35.28125 26.039062 58.5 26.039062 23.773438 0 45.09375-10.566406 59.503906-27.203125 14.40625 16.636719 35.726563 27.203125 59.496094 27.203125 43.285156 0 78.5-34.988281 78.5-78zm-277-350h120v36h-120zm-40 76h200v67.734375l-100-22.222656-100 22.222656zm198 274c0 20.953125-17.269531 38-38.5 38s-38.5-17.046875-38.5-38h-40c0 20.953125-17.269531 38-38.5 38s-38.5-17.046875-38.5-38v-5.410156l-2.730469-4.675782c-26.945312-46.152343-47.933593-98.070312-57.941406-142.609374l156.671875-34.816407 156.753906 34.832031c-11.738281 54.226563-35.894531 108.113282-56.023437 142.59375l-2.730469 4.675782zm-17-81c0 11.046875-8.953125 20-20 20s-20-8.953125-20-20 8.953125-20 20-20 20 8.953125 20 20zm-121 0c0 11.046875-8.953125 20-20 20s-20-8.953125-20-20 8.953125-20 20-20 20 8.953125 20 20zm0 0\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FleetIcon'\r\n})\r\n","import { render } from \"./FleetIcon.vue?vue&type=template&id=190518ca&ts=true\"\nimport script from \"./FleetIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"19.066\",\n viewBox: \"0 0 20 19.066\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", {\n id: \"home\",\n transform: \"translate(0 -0.467)\"\n}, [\n /*#__PURE__*/_createElementVNode(\"g\", {\n id: \"Groupe_4470\",\n \"data-name\": \"Groupe 4470\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n id: \"Tracé_7906\",\n \"data-name\": \"Tracé 7906\",\n d: \"M10,.467,0,9.151,1.024,10.33l.936-.813v7.674A2.344,2.344,0,0,0,4.3,19.533H8.673v-7.65h2.732v7.65H15.7a2.344,2.344,0,0,0,2.342-2.342V9.517l.936.813L20,9.151Zm6.479,16.724a.781.781,0,0,1-.781.781H12.966v-7.65H7.112v7.65H4.3a.781.781,0,0,1-.781-.781V8.161L10,2.535l6.479,5.626Z\",\n fill: \"currentColor\"\n })\n ])\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'HomeIcon'\r\n})\r\n","import { render } from \"./HomeIcon.vue?vue&type=template&id=7449d073&ts=true\"\nimport script from \"./HomeIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./HomeIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n version: \"1.1\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\"enable-background\":\"new 0 0 512 512\"},\n \"xml:space\": \"preserve\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M511.021,233.054C500.536,111.229,400.759,11.453,278.934,0.967c-34.387-2.953-68.388,0.908-100.269,10.915 c-4.789,1.171-9.613,2.509-14.463,4.025l0.277,0.888c-33.344,12.653-63.967,32.217-89.72,57.97 C26.988,122.534,0.451,187.035,0.018,254.65c-0.001,0.015-0.002,0.03-0.003,0.045h0.003c-0.05,8.046,0.247,16.133,0.945,24.244 C11.448,400.764,111.224,500.541,233.05,511.027c7.567,0.65,15.101,0.973,22.613,0.973c68.22-0.004,133.4-26.607,181.563-74.771 c39.329-39.329,64.259-90.001,72.09-144.411c0.03-0.138,0.068-0.272,0.098-0.411l-0.037-0.007 C512.141,272.975,512.746,253.082,511.021,233.054z M455.445,173.058c-6.748-2.347-19.064-10.646-38.85-41.56l-0.066-0.103 c-14.505-22.362-29.939-41.876-46.133-58.42C408.015,96.722,438.07,131.784,455.445,173.058z M236.481,471.171 c-77.238-6.648-143.958-55.87-176.059-123.553c-2.559-14.683,0.145-28.553,7.426-37.535C73.271,303.391,80.587,300,89.594,300 c0.082,0,0.166,0,0.248,0.001c21.815,0.149,49.198,19.805,75.151,53.951c25.976,34.059,54.935,60.219,86.073,77.755 c27.499,15.486,55.975,23.93,84.721,25.154C304.778,469.064,270.864,474.131,236.481,471.171z M341.274,417.01 c-50.75-0.697-102.059-31.707-144.453-87.292c-43.562-57.318-82.07-69.552-106.703-69.722c-18.95-0.107-36.071,6.909-48.87,19.914 c-0.157-1.463-0.303-2.929-0.43-4.401c-0.549-6.376-0.811-12.736-0.813-19.064c3.368-46.317,34.017-80.101,73.157-80.455 c0.218-0.002,0.436-0.003,0.654-0.003c40.467,0,84.997,33.812,125.424,95.228c61.519,94.326,126.038,108.797,159.778,108.796 c0.4,0,0.798-0.002,1.189-0.006c12.657-0.128,24.833-2.281,36.204-6.141C412.83,401.817,378.287,417.538,341.274,417.01z M469.966,285.408c-7.597,31.877-36.225,54.253-70.166,54.596c-0.28,0.003-0.557,0.004-0.837,0.004 c-42.657,0-88.614-32.987-126.265-90.717c-25.025-38.02-51.906-67.028-79.895-86.221c-26.557-18.209-53.488-27.309-80.003-27.082 c-14.904,0.134-29.296,3.339-42.56,9.32c5.252-8.863,11.162-17.364,17.691-25.441c28.834-24.926,56.823-37.677,83.211-37.885 c0.229-0.001,0.452-0.002,0.681-0.002c47.312,0,94.388,38.881,139.921,115.569l0.295,0.481 c48.319,76.376,94.535,92.713,124.798,92.968c0.236,0.002,0.468,0.003,0.704,0.003c11.108,0,22.085-2.218,32.552-6.47 C470.054,284.823,470.006,285.114,469.966,285.408z M437.545,250.999c-0.123,0-0.247,0-0.37-0.001 c-28.666-0.242-61.044-26.565-91.181-74.121c-42.882-72.144-89.254-115.61-138.277-129.77c5.604-0.698,11.097-1.079,16.45-1.126 c0.424-0.004,0.842-0.006,1.266-0.006c58.381,0,111.37,36.043,157.501,107.138c26.097,40.762,48.424,58.956,74.646,60.831 c1.255,0.089,2.497,0.131,3.729,0.131c2.243,0,4.443-0.146,6.607-0.391c1.489,7.481,2.586,15.087,3.25,22.801 c0.028,0.324,0.044,0.648,0.07,0.972C463.481,244.006,451.852,250.999,437.545,250.999z\" })\n ])\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_18 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5,\n _hoisted_6,\n _hoisted_7,\n _hoisted_8,\n _hoisted_9,\n _hoisted_10,\n _hoisted_11,\n _hoisted_12,\n _hoisted_13,\n _hoisted_14,\n _hoisted_15,\n _hoisted_16,\n _hoisted_17\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_18))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'MapIcon'\r\n})\r\n","import { render } from \"./MapIcon.vue?vue&type=template&id=88f9b1f0&ts=true\"\nimport script from \"./MapIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./MapIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"Capa_1\",\n \"enable-background\": \"new 0 0 512 512\",\n height: \"512\",\n viewBox: \"0 0 512 512\",\n width: \"512\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m316 136h51.716l-71.716 71.716-80-80-134.142 134.142 28.284 28.284 105.858-105.858 80 80 100-100v51.716h40v-120h-120z\" }),\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m452 16h-392c-33.084 0-60 26.916-60 60v240c0 33.084 26.916 60 60 60h176v80h-80v40h200v-40h-80v-80h176c33.084 0 60-26.916 60-60v-240c0-33.084-26.916-60-60-60zm20 300c0 11.028-8.972 20-20 20h-392c-11.028 0-20-8.972-20-20v-240c0-11.028 8.972-20 20-20h392c11.028 0 20 8.972 20 20z\" })\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'AnalyticsIcon'\r\n})\r\n","import { render } from \"./AnalyticsIcon.vue?vue&type=template&id=4586f4ba&ts=true\"\nimport script from \"./AnalyticsIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./AnalyticsIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { computed, defineComponent, PropType, ref } from 'vue'\r\nimport DashboardIcon from '@/components/icons/DashboardIcon.vue'\r\nimport FilesIcon from '@/components/icons/FilesIcon.vue'\r\nimport FleetIcon from '@/components/icons/FleetIcon.vue'\r\nimport HomeIcon from '@/components/icons/HomeIcon.vue'\r\nimport MapIcon from '@/components/icons/MapIcon.vue'\r\nimport AnalyticsIcon from '@/components/icons/AnalyticsIcon.vue'\r\nimport { useRoute } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'NavigationLinkPrimary',\r\n components: {\r\n HomeIcon,\r\n DashboardIcon,\r\n FilesIcon,\r\n FleetIcon,\r\n MapIcon,\r\n AnalyticsIcon\r\n },\r\n props: {\r\n to: String,\r\n query: {\r\n type: Object as PropType>,\r\n required: false\r\n }\r\n },\r\n setup (props) {\r\n const route = useRoute()\r\n const hideBar = ref(false)\r\n const stroke = ['']\r\n const fill = ['home', 'map']\r\n const activeLink = computed(() => {\r\n return (\r\n route.name === props.to ||\r\n (route.name === 'analyticsDetail' && props.to === 'analytics') ||\r\n (route.name === 'assetDetail' && props.to === 'fleet')\r\n )\r\n })\r\n const icon = computed(() => {\r\n switch (props.to) {\r\n case 'home':\r\n return 'HomeIcon'\r\n case 'map':\r\n return 'MapIcon'\r\n case 'fleet':\r\n return 'FleetIcon'\r\n case 'analytics':\r\n return 'AnalyticsIcon'\r\n case 'allReports':\r\n return 'FilesIcon'\r\n case 'allDashboards':\r\n return 'DashboardIcon'\r\n default:\r\n return ''\r\n }\r\n })\r\n return { hideBar, stroke, fill, activeLink, icon }\r\n }\r\n})\r\n","import { render } from \"./NavigationLinkPrimary.vue?vue&type=template&id=a5a2006c&scoped=true&ts=true\"\nimport script from \"./NavigationLinkPrimary.vue?vue&type=script&lang=ts\"\nexport * from \"./NavigationLinkPrimary.vue?vue&type=script&lang=ts\"\n\nimport \"./NavigationLinkPrimary.vue?vue&type=style&index=0&id=a5a2006c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a5a2006c\"]])\n\nexport default __exports__","\r\n","import { render } from \"./ProfileIcon.vue?vue&type=template&id=3009e945\"\nconst script = {}\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n","import { render } from \"./QuestionIcon.vue?vue&type=template&id=2ccd348a\"\nconst script = {}\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n/* eslint-disable no-unused-expressions */\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport BackToTop from '@/components/buttons/BackToTop.vue'\r\nimport NavigationLinkPrimary from '@/components/buttons/NavigationLinkPrimary.vue'\r\nimport NavigationLinkSecondary from '@/components/buttons/NavigationLinkSecondary.vue'\r\nimport { defineComponent } from 'vue'\r\nimport ProfileIcon from '@/components/icons/ProfileIcon.vue'\r\nimport QuestionIcon from '@/components/icons/QuestionIcon.vue'\r\nexport default defineComponent({\r\n name: 'layout1',\r\n watch: {\r\n menuHelp: {\r\n handler (value) {\r\n const _click = () => {\r\n document.body.removeEventListener('click', _click)\r\n this.menuHelp = false\r\n }\r\n if (value) {\r\n setTimeout(function () {\r\n document.body.addEventListener('click', _click)\r\n }, 1)\r\n }\r\n }\r\n },\r\n displayFeedBackModal: {\r\n immediate: true,\r\n handler: function (value) {\r\n if (value) {\r\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth\r\n document.body.style.overflowY = 'hidden'\r\n if (scrollBarWidth > 0 && document.body.scrollHeight > document.body.clientHeight) {\r\n document.body.style.paddingRight = scrollBarWidth + 'px'\r\n }\r\n } else {\r\n document.body.style.overflowY = 'auto'\r\n document.body.style.paddingRight = '0px'\r\n }\r\n }\r\n }\r\n },\r\n components: {\r\n NavigationLinkPrimary,\r\n BackToTop,\r\n ProfileIcon,\r\n QuestionIcon\r\n },\r\n data () {\r\n return {\r\n menuHelp: false,\r\n open: false,\r\n menuClass: 'translate-x-full',\r\n navigationLinks: [\r\n { name: 'home' },\r\n { name: 'analytics' },\r\n { name: 'map', query: { flyToBounds: 'true' } },\r\n { name: 'fleet' },\r\n { name: 'allReports' },\r\n { name: 'allDashboards' }\r\n ],\r\n secondaryNavigationLinks: ['helpCenter', 'profile']\r\n }\r\n },\r\n computed: {\r\n displayFeedBackModal () {\r\n return this.$route.query.modal && this.$route.query.modal === 'feedback'\r\n }\r\n },\r\n methods: {\r\n onClick (e: Event) {\r\n const target = e.currentTarget as HTMLLinkElement\r\n target.classList.add('pressed')\r\n setTimeout(function () {\r\n target.classList.remove('pressed')\r\n }, 301)\r\n },\r\n openMenu () {\r\n this.open = !this.open\r\n }\r\n }\r\n})\r\n","import { render } from \"./layout1.vue?vue&type=template&id=a4983cea&scoped=true&ts=true\"\nimport script from \"./layout1.vue?vue&type=script&lang=ts\"\nexport * from \"./layout1.vue?vue&type=script&lang=ts\"\n\nimport \"./layout1.vue?vue&type=style&index=0&id=a4983cea&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a4983cea\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-602c0edc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"py-3 lg:py-6 h-100 relative\" }\nconst _hoisted_2 = { class: \"flex flex-wrap gap-4\" }\nconst _hoisted_3 = { class: \"flex flex-col lg:flex-row relative mt-5\" }\nconst _hoisted_4 = { class: \"grow mr-6 w-full\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"grid grid-cols-1 lg:grid-cols-6 mt-6 gap-4\"\n}\nconst _hoisted_6 = { class: \"p-6 pb-4 mb-4\" }\nconst _hoisted_7 = { class: \"-mx-6 border-b mb-4\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", { class: \"mt-20 mb-10 border-t-gray-800\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ServiceDetailTitle = _resolveComponent(\"ServiceDetailTitle\")!\n const _component_Filters = _resolveComponent(\"Filters\")!\n const _component_ServiceCardContent = _resolveComponent(\"ServiceCardContent\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n const _component_DashboardCard = _resolveComponent(\"DashboardCard\")!\n const _component_ServiceDetailReportsAndDashboards = _resolveComponent(\"ServiceDetailReportsAndDashboards\")!\n const _component_ReportGroupHeader = _resolveComponent(\"ReportGroupHeader\")!\n const _component_ServiceReport = _resolveComponent(\"ServiceReport\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ServiceDetailTitle, {\n error: _ctx.error,\n loading: _ctx.loading,\n title: _ctx.detail.title,\n link: 'analytics'\n }, null, 8, [\"error\", \"loading\", \"title\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.detail.filters)\n ? (_openBlock(), _createBlock(_component_Filters, {\n key: 0,\n filters: _ctx.detail.filters,\n onFiltersLoading: _ctx.blockFilters\n }, null, 8, [\"filters\", \"onFiltersLoading\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_ctx.detail.kpis)\n ? (_openBlock(), _createBlock(_component_ServiceCardContent, {\n key: 0,\n \"preview-infos\": _ctx.detail.kpis,\n \"is-preview\": false,\n previewType: 'Kpi',\n fromList: false\n }, null, 8, [\"preview-infos\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.detail.charts)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.detail.charts, (chart, i) => {\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n class: _normalizeClass([\"h-[460px]\", `grid-${chart.size}`]),\n key: i\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ServiceCardContent, {\n id: chart.id,\n title: chart.label,\n previewType: 'Chart',\n \"preview-infos\": chart,\n fromList: false\n }, null, 8, [\"id\", \"title\", \"preview-infos\"])\n ]),\n _: 2\n }, 1032, [\"class\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.detail.dashboards && _ctx.detail.dashboards.length)\n ? (_openBlock(), _createBlock(_component_ServiceDetailReportsAndDashboards, {\n key: 2,\n title: _ctx.$t('serviceDetail.dashboard.title'),\n subtitle: _ctx.$t('serviceDetail.dashboard.subtitle')\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.detail.dashboards, (dashboard, i) => {\n return (_openBlock(), _createBlock(_component_DashboardCard, {\n key: i,\n title: dashboard.title,\n description: dashboard.description,\n id: dashboard.id\n }, null, 8, [\"title\", \"description\", \"id\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"title\", \"subtitle\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.detail.reports && _ctx.detail.reports.length)\n ? (_openBlock(), _createBlock(_component_ServiceDetailReportsAndDashboards, {\n key: 3,\n title: _ctx.$t('serviceDetail.report.title'),\n subtitle: _ctx.$t('serviceDetail.report.subtitle')\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.detail.reports, (report, j) => {\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n key: j,\n class: \"mb-4\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_ReportGroupHeader, {\n title: report.title,\n id: report.id,\n subtitle: _ctx.analyticsCategory ? `${_ctx.analyticsCategory} | ${_ctx.detail.title}` : `${_ctx.detail.title}`,\n onRequestUpload: _cache[0] || (_cache[0] = ($event: any) => (_ctx.requestUpload()))\n }, null, 8, [\"title\", \"id\", \"subtitle\"])\n ]),\n _createVNode(_component_ServiceReport, {\n id: report.id\n }, null, 8, [\"id\"])\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"title\", \"subtitle\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_8\n ])\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-59354fd7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"px-6 min-h-[6rem]\" }\nconst _hoisted_3 = { key: 0 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DashboardSmallCard = _resolveComponent(\"DashboardSmallCard\")!\n const _component_FavouriteButton = _resolveComponent(\"FavouriteButton\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n class: \"flex flex-col sm:flex-row min-h-45 w-full p-6 items-center cursor-pointer\",\n onClick: _ctx.goToDashboard\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DashboardSmallCard, {\n id: _ctx.id,\n title: _ctx.title,\n previewImageUrl: _ctx.previewImageUrl,\n loading: _ctx.loading\n }, null, 8, [\"id\", \"title\", \"previewImageUrl\", \"loading\"]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"px-6 text-lg font-bold text-left dashboard-card--title uppercase\", { 'skeleton mx-6 mb-0.5': _ctx.loading }])\n }, _toDisplayString(_ctx.title), 3),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mb-4 px-6 text-md text-left\", { 'skeleton mx-6': _ctx.loading }])\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.service), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", _hoisted_2, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.description), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_FavouriteButton, {\n onChangeFavStatus: _cache[0] || (_cache[0] = ($event: any) => (_ctx.isFav = !_ctx.isFav)),\n isFav: _ctx.isFav,\n \"stroke-fav\": '#0C111C',\n stroke: 'white',\n \"fill-fav\": '#0C111C',\n fill: 'none'\n }, null, 8, [\"isFav\"])\n ])\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'GenericCardShell',\n props: {\n link: null\n },\n setup(__props: any) {\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(__props.link ? 'router-link' : 'div'), {\n to: __props.link,\n class: \"rounded-xl text-gray-200 relative bg-bg-2\"\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"to\"]))\n}\n}\n\n})","import script from \"./GenericCardShell.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./GenericCardShell.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5ab62e02\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"skeleton\"\n}\nconst _hoisted_2 = {\n key: 1,\n style: {\"max-width\":\"220px\",\"min-width\":\"220px\",\"width\":\"220px\",\"height\":\"124px\"},\n class: \"overflow-hidden rounded-md flex justify-center items-center relative\"\n}\nconst _hoisted_3 = { class: \"absolute font-bold text-center\" }\nconst _hoisted_4 = [\"src\", \"alt\"]\nconst _hoisted_5 = { class: \"absolute flex items-center bottom-1 right-1\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SmartphoneIcon = _resolveComponent(\"SmartphoneIcon\")!\n const _component_TabletIcon = _resolveComponent(\"TabletIcon\")!\n const _component_MonitorIcon = _resolveComponent(\"MonitorIcon\")!\n\n return (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"img\", {\n src: _ctx.previewImageUrl ? _ctx.previewImageUrl : require('../../assets/img/card-dashboard.jpg'),\n alt: _ctx.title,\n class: \"rounded-md\"\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.smartphone)\n ? (_openBlock(), _createBlock(_component_SmartphoneIcon, {\n key: 0,\n class: \"w-4 h-4 fill-gray-100 mr-0.5\"\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.tablet)\n ? (_openBlock(), _createBlock(_component_TabletIcon, {\n key: 1,\n class: \"w-4 h-4 fill-gray-100 mr-0.5\"\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.laptop)\n ? (_openBlock(), _createBlock(_component_MonitorIcon, {\n key: 2,\n class: \"w-4 h-4 fill-gray-100\"\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n version: \"1.1\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\"enable-background\":\"new 0 0 512 512\"},\n \"xml:space\": \"preserve\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M452,36H60C26.916,36,0,62.916,0,96v240c0,33.084,26.916,60,60,60h176v40H132v40h248v-40H276v-40h176 c33.084,0,60-26.916,60-60V96C512,62.916,485.084,36,452,36z M472,336c0,11.028-8.972,20-20,20H60c-11.028,0-20-8.972-20-20V96 c0-11.028,8.972-20,20-20h392c11.028,0,20,8.972,20,20V336z\" })\n ])\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"g\", null, null, -1)\nconst _hoisted_18 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5,\n _hoisted_6,\n _hoisted_7,\n _hoisted_8,\n _hoisted_9,\n _hoisted_10,\n _hoisted_11,\n _hoisted_12,\n _hoisted_13,\n _hoisted_14,\n _hoisted_15,\n _hoisted_16,\n _hoisted_17\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_18))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'MonitorIcon'\r\n})\r\n","import { render } from \"./MonitorIcon.vue?vue&type=template&id=1a36bb50&ts=true\"\nimport script from \"./MonitorIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./MonitorIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"Capa_1\",\n \"enable-background\": \"new 0 0 512 512\",\n height: \"512\",\n viewBox: \"0 0 512 512\",\n width: \"512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"m356 0h-200c-33.084 0-60 26.916-60 60v392c0 33.084 26.916 60 60 60h200c33.084 0 60-26.916 60-60v-392c0-33.084-26.916-60-60-60zm20 452c0 11.028-8.972 20-20 20h-200c-11.028 0-20-8.972-20-20v-20h240zm0-60h-240v-332c0-11.028 8.972-20 20-20h200c11.028 0 20 8.972 20 20zm-120-312c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\" })\n ])\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'SmartphoneIcon'\r\n})\r\n","import { render } from \"./SmartphoneIcon.vue?vue&type=template&id=abfc571a&ts=true\"\nimport script from \"./SmartphoneIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./SmartphoneIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n height: \"682pt\",\n viewBox: \"-71 -21 682 682.66669\",\n width: \"682pt\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m292 541.25c0 13.808594-11.191406 25-25 25s-25-11.191406-25-25 11.191406-25 25-25 25 11.191406 25 25zm245-466.25v490c0 41.359375-33.640625 75-75 75h-390c-41.355469 0-75-33.640625-75-75v-490c0-41.359375 33.644531-75 75-75h390c41.359375 0 75 33.640625 75 75zm-490 0v365h440v-365c0-13.785156-11.214844-25-25-25h-390c-13.785156 0-25 11.214844-25 25zm440 490v-75h-440v75c0 13.785156 11.214844 25 25 25h390c13.785156 0 25-11.214844 25-25zm0 0\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'TabletIcon'\r\n})\r\n","import { render } from \"./TabletIcon.vue?vue&type=template&id=349f72e4&ts=true\"\nimport script from \"./TabletIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./TabletIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport MonitorIcon from '@/components/icons/MonitorIcon.vue'\r\nimport SmartphoneIcon from '@/components/icons/SmartphoneIcon.vue'\r\nimport TabletIcon from '@/components/icons/TabletIcon.vue'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardCard',\r\n props: {\r\n title: String,\r\n id: Number,\r\n previewImageUrl: String,\r\n smartphone: { type: Boolean, default: true },\r\n tablet: { type: Boolean, default: true },\r\n laptop: { type: Boolean, default: true },\r\n loading: Boolean\r\n },\r\n components: { SmartphoneIcon, TabletIcon, MonitorIcon },\r\n data () {\r\n return { isFav: false }\r\n }\r\n})\r\n","import { render } from \"./DashboardSmallCard.vue?vue&type=template&id=5ab62e02&scoped=true&ts=true\"\nimport script from \"./DashboardSmallCard.vue?vue&type=script&lang=ts\"\nexport * from \"./DashboardSmallCard.vue?vue&type=script&lang=ts\"\n\nimport \"./DashboardSmallCard.vue?vue&type=style&index=0&id=5ab62e02&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5ab62e02\"]])\n\nexport default __exports__","\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport { defineComponent, ref } from 'vue'\r\nimport DashboardSmallCard from '@/components/cards/DashboardSmallCard.vue'\r\nimport { DOMEvent } from '@/core/model/event.model'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardCard',\r\n components: {\r\n GenericCardShell, DashboardSmallCard\r\n // FavouriteButton\r\n },\r\n props: { title: String, id: Number, loading: Boolean, service: String, description: String, previewImageUrl: String },\r\n setup (props) {\r\n const isFav = ref(false)\r\n const router = useRouter()\r\n const goToDashboard = (event: DOMEvent) => {\r\n if (!event.target.matches('svg') && !event.target.matches('path')) {\r\n router.push({\r\n name: 'dashboard',\r\n params: { dashboardId: props.id, title: props.title }\r\n })\r\n }\r\n }\r\n\r\n return { isFav, goToDashboard }\r\n }\r\n})\r\n","import { render } from \"./DashboardCard.vue?vue&type=template&id=59354fd7&scoped=true&ts=true\"\nimport script from \"./DashboardCard.vue?vue&type=script&lang=ts\"\nexport * from \"./DashboardCard.vue?vue&type=script&lang=ts\"\n\nimport \"./DashboardCard.vue?vue&type=style&index=0&id=59354fd7&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-59354fd7\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6ae3044c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex items-center px-6 pb-4\" }\nconst _hoisted_2 = { style: {\"flex\":\"1\"} }\nconst _hoisted_3 = { class: \"mb-1.5\" }\nconst _hoisted_4 = { class: \"body-1 body-alt\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"cursor-pointer\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FilesIcon = _resolveComponent(\"FilesIcon\")!\n const _component_UploadIcon = _resolveComponent(\"UploadIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_FilesIcon, { class: \"w-8 h-8 fill-gray-200 mr-3\" }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h4\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_ctx.subtitle), 1)\n ]),\n (_ctx.isInternalUser)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _createVNode(_component_UploadIcon, {\n class: \"w-8 h-8 fill-gray-200 mr-3\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.requestDocumentUpload()))\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n version: \"1.1\",\n id: \"Calque_2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 481 481\",\n \"enable-background\": \"new 0 0 481 481\",\n \"xml:space\": \"preserve\",\n fill: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M249.95,86.7c-2.5-2.5-6-4-9.5-4c-3.6,0-7,1.4-9.5,4l-87.8,87.8c-5.3,5.3-5.3,13.8,0,19.1s13.8,5.3,19.1,0l64.7-64.7 v338.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5V128.9l64.7,64.7c2.6,2.6,6.1,4,9.5,4c3.5,0,6.9-1.3,9.5-4 c5.3-5.3,5.3-13.8,0-19.1L249.95,86.7z\" }),\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M439.55,0H41.35c-7.5,0-13.5,6-13.5,13.5v99.3c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5V27h371.3v85.8 c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5V13.5C453.05,6,447.05,0,439.55,0z\" })\n], -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'UploadIcon'\r\n})\r\n","import { render } from \"./UploadIcon.vue?vue&type=template&id=bad7f884&ts=true\"\nimport script from \"./UploadIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./UploadIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\nimport FilesIcon from '@/components/icons/FilesIcon.vue'\r\nimport UploadIcon from '@/components/icons/UploadIcon.vue'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport { defineComponent, inject } from 'vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n FilesIcon,\r\n UploadIcon\r\n },\r\n props: {\r\n title: { type: String, required: true },\r\n isAssetReport: { type: Boolean, required: true },\r\n subtitle: { type: String },\r\n id: { type: Number }\r\n },\r\n setup () {\r\n return {\r\n loginService: inject('ILoginService') as ILoginService\r\n }\r\n },\r\n data () {\r\n return {\r\n isInternalUser: false\r\n }\r\n },\r\n async created () {\r\n this.isInternalUser = await this.loginService.IsInternalUser()\r\n },\r\n methods: {\r\n requestDocumentUpload () {\r\n this.$emit('requestUpload')\r\n }\r\n }\r\n})\r\n","import { render } from \"./ReportGroupHeader.vue?vue&type=template&id=6ae3044c&scoped=true&ts=true\"\nimport script from \"./ReportGroupHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportGroupHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportGroupHeader.vue?vue&type=style&index=0&id=6ae3044c&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6ae3044c\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, withCtx as _withCtx, Teleport as _Teleport, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d804346\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 1,\n class: \"py-3 lg:py-6 h-100 relative\"\n}\nconst _hoisted_4 = { class: \"flex\" }\nconst _hoisted_5 = { class: \"table w-full\" }\nconst _hoisted_6 = { key: 2 }\nconst _hoisted_7 = { class: \"flex flex-col report-upload-form bg-bg-0\" }\nconst _hoisted_8 = { class: \"min-w-[300px] lg:max-w-[80%]\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportAttributeTabLoading = _resolveComponent(\"ReportAttributeTabLoading\")!\n const _component_ReportInstanceLoading = _resolveComponent(\"ReportInstanceLoading\")!\n const _component_ReportAttributeTab = _resolveComponent(\"ReportAttributeTab\")!\n const _component_ReportInstanceRow = _resolveComponent(\"ReportInstanceRow\")!\n const _component_Pagination = _resolveComponent(\"Pagination\")!\n const _component_ServiceReportForm = _resolveComponent(\"ServiceReportForm\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (this.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ReportAttributeTabLoading),\n _createVNode(_component_ReportInstanceLoading)\n ]))\n : (_ctx.report && _ctx.report.attributes.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ReportAttributeTab, {\n attributes: _ctx.report.attributes,\n onUpdateSelectedAttribute: _ctx.updateSelectedAttribute\n }, null, 8, [\"attributes\", \"onUpdateSelectedAttribute\"]),\n (_ctx.loadingInstance)\n ? (_openBlock(), _createBlock(_component_ReportInstanceLoading, { key: 0 }))\n : (_ctx.instances.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"table\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.instances, (item, i) => {\n return (_openBlock(), _createBlock(_component_ReportInstanceRow, {\n key: i,\n item: item,\n reportId: _ctx.report.id,\n onDownload: ($event: any) => (_ctx.download(item)),\n onDelete: _ctx.onDelete\n }, null, 8, [\"item\", \"reportId\", \"onDownload\", \"onDelete\"]))\n }), 128))\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.loadingInstance && _ctx.totalPages > 1)\n ? (_openBlock(), _createBlock(_component_Pagination, {\n key: 2,\n currentPage: _ctx.currentPage,\n totalPages: _ctx.totalPages,\n numberOfButtonAfterCurrent: 4,\n onSelectPage: _cache[0] || (_cache[0] = selectedPage => _ctx.fetchReports(selectedPage - 1))\n }, null, 8, [\"currentPage\", \"totalPages\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (!_ctx.report.attributes.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \"No reports found for this category\"))\n : _createCommentVNode(\"\", true),\n (_ctx.showForm)\n ? (_openBlock(), _createBlock(_Teleport, {\n key: 3,\n to: \"body\"\n }, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_GenericCardShell, null, {\n default: _withCtx(() => [\n _createVNode(_component_ServiceReportForm, {\n id: _ctx.report.id,\n title: _ctx.report.name,\n onClose: _cache[1] || (_cache[1] = ($event: any) => (_ctx.closeForm()))\n }, null, 8, [\"id\", \"title\"])\n ]),\n _: 1\n })\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import {\r\n ReportAttribute,\r\n ReportDetail,\r\n ReportsListModel,\r\n UploadAssetReportModel,\r\n UploadServiceReportModel\r\n} from '@/core/model/report.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\n\r\nclass Manager {\r\n private _attributes:Array = []\r\n\r\n detail (id: number): Promise> {\r\n return http.request('get', `Services/Reports/${id}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n async attributes () : Promise> {\r\n if (this._attributes.length === 0) {\r\n const response = await http.request>('get', 'Services/Reports/Attributes/All')\r\n if (response.data && !response.isError) {\r\n this._attributes = response.data\r\n }\r\n }\r\n return this._attributes\r\n }\r\n\r\n detailAsset (id: number, assetId: number): Promise> {\r\n return http.request('get', `Services/Reports/${id}/Assets/${assetId}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n async DownloadInstance (displayFilename:string, filename:string, tinyGUID: string) : Promise {\r\n const queryDisplayFileName = (displayFilename !== '') ? `&filename=${encodeURI(displayFilename)}` : ''\r\n\r\n const query = `Services/Reports/Download?tinyGuid=${tinyGUID}${queryDisplayFileName}`\r\n\r\n const response = await http.download(query)\r\n\r\n if (response.isError) return\r\n\r\n const aElement = document.createElement('a')\r\n aElement.setAttribute('download', filename)\r\n const href = URL.createObjectURL(response.data)\r\n\r\n aElement.href = encodeURI(href)\r\n aElement.click()\r\n URL.revokeObjectURL(response.data)\r\n }\r\n\r\n byVersion (id: number, instanceId: number, version: number) : Promise> {\r\n return http.request('get', `Reports/${id}/Instance/${instanceId}/Version/${version}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n byAttribute (id: number, attributeId: number, pageIndex = 0, pageSize = 2) : Promise> {\r\n return http.request('get', `Services/Reports/${id}/Attribute/${attributeId}?pageIndex=${pageIndex}&pageSize=${pageSize}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n byAttributeAsset (id: number, assetId: number, attributeId: number, pageIndex = 0, pageSize = 10) : Promise> {\r\n return http.request('get', `Services/Reports/${id}/Assets/${assetId}/Attribute/${attributeId}?pageIndex=${pageIndex}&pageSize=${pageSize}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n list (assetRelated = false): Promise> {\r\n return http.request('get', `Services/Reports?assetRelatedOnly=${assetRelated}`)\r\n .then((rep: ApiResult) => {\r\n console.log(rep)\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n\r\n async upload (model: UploadServiceReportModel): Promise {\r\n // set up the request data\r\n const formData = new FormData()\r\n formData.append('File', model.File.file)\r\n formData.append('Id_Attribute', model.attributeId.toString())\r\n formData.append('Title', model.Title.toString())\r\n formData.append('ClientDepartmentCode', model.ClientDepartmentCode.toString())\r\n formData.append('Date', model.Date.toString())\r\n\r\n await http.postFormData(`Services/Reports/${model.reportId}`, formData)\r\n // let response = await fetch(url, { method: 'POST', body: apiModel })\r\n }\r\n\r\n async uploadForAsset (model: UploadAssetReportModel): Promise {\r\n // set up the request data\r\n const formData = new FormData()\r\n formData.append('File', model.File.file)\r\n formData.append('Id_Attribute', model.attributeId.toString())\r\n formData.append('Title', model.Title.toString())\r\n formData.append('ClientDepartmentCode', model.ClientDepartmentCode.toString())\r\n formData.append('Date', model.Date.toString())\r\n\r\n await http.postFormData(`Services/Reports/${model.reportId}/Assets/${model.assetId}`, formData)\r\n // let response = await fetch(url, { method: 'POST', body: apiModel })\r\n }\r\n}\r\n\r\nexport default new Manager()\r\n","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex w-full gap-4\" }\nconst _hoisted_2 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.attributes, (attribute, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (_ctx.selectAttribute(i, attribute.id))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"cursor-pointer\", { 'border-b-2 border-semantic-activate text-semantic-activate shadow-tab': _ctx.selectedAttributeTabIndex === i }])\n }, _toDisplayString(attribute.name), 3)\n ], 8, _hoisted_2)\n ]))\n }), 128))\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { Attribute } from '@/core/model/report.model'\r\n\r\nexport default defineComponent({\r\n name: 'ReportAttributeTab',\r\n props: {\r\n attributes: { type: Array as PropType, required: true }\r\n },\r\n data () {\r\n return {\r\n selectedAttributeTabIndex: 0,\r\n attributeId: 0 as number|undefined\r\n }\r\n },\r\n created () {\r\n /* if (this.attributes.length > 1) {\r\n this.selectAll()\r\n } else */\r\n if (this.attributes.length > 0) {\r\n this.selectAttribute(0, this.attributes[0].id)\r\n }\r\n /**/\r\n },\r\n methods: {\r\n selectAttribute (index: number, attributeId: number) {\r\n this.selectedAttributeTabIndex = index\r\n this.attributeId = attributeId\r\n this.updateSelectedAttribute()\r\n },\r\n /* selectAll () {\r\n this.selectedAttributeTabIndex = -1\r\n this.attributeId = undefined\r\n this.updateSelectedAttribute()\r\n }, */\r\n updateSelectedAttribute () {\r\n console.log(this.attributeId)\r\n this.$emit('updateSelectedAttribute', this.attributeId)\r\n }\r\n }\r\n})\r\n","import { render } from \"./ReportAttributeTab.vue?vue&type=template&id=d3999be4&ts=true\"\nimport script from \"./ReportAttributeTab.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportAttributeTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./ReportAttributeTab.loading.vue?vue&type=template&id=88624152&scoped=true\"\nconst script = {}\n\nimport \"./ReportAttributeTab.loading.vue?vue&type=style&index=0&id=88624152&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-88624152\"]])\n\nexport default __exports__","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47cf1d50\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"py-3 px-2.5 hover:bg-bg-3 rounded-xl\" }\nconst _hoisted_2 = { class: \"py-3 px-2.5 w-3\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"py-3 px-2.5 w-3\"\n}\nconst _hoisted_4 = { class: \"py-3 pl-2.5\" }\nconst _hoisted_5 = { style: {\"display\":\"none\"} }\nconst _hoisted_6 = { class: \"py-3 pr-2.5 flex justify-end\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-circle-xmark text-blue-400\",\n style: {\"font-size\":\"1.4rem\"}\n}, null, -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LoaderIcon = _resolveComponent(\"LoaderIcon\")!\n const _component_DownloadIcon = _resolveComponent(\"DownloadIcon\")!\n\n return (_openBlock(), _createElementBlock(\"tr\", _hoisted_1, [\n _createElementVNode(\"td\", _hoisted_2, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.item.fileFormat?.toLowerCase() || 'pdf'), { class: \"w-6 h-auto stroke-semantic-activate fill-semantic-activate\" }))\n ]),\n (_ctx.item.period)\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_3, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.periodClass(_ctx.item.period), \"px-2 py-1 border border-2 rounded-xl text-sm\"])\n }, _toDisplayString(_ctx.item.period), 3)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"td\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.item.name) + \" - \" + _toDisplayString(_ctx.formatDate(_ctx.item.instanceDate)), 1),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.item.tinyGuid), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_6, [\n (_ctx.isInternalUser)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onDelete(_ctx.reportId,_ctx.item.id)))\n }, _hoisted_8))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.item.IsDownloading ? '' : 'cursor-pointer', \"h-10 w-10 bg-bg-2 rounded-full body-1 text-text-alt font-bold flex items-center justify-center\"])\n }, [\n (_ctx.item.IsDownloading)\n ? (_openBlock(), _createBlock(_component_LoaderIcon, {\n key: 0,\n class: \"stroke-white\"\n }))\n : (_openBlock(), _createBlock(_component_DownloadIcon, {\n key: 1,\n onClick: _ctx.download,\n class: \"stroke-white\"\n }, null, 8, [\"onClick\"]))\n ], 2)\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n class: \"w-6 h-6\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'DownloadIcon'\r\n})\r\n","import { render } from \"./DownloadIcon.vue?vue&type=template&id=3d3c7f5b&ts=true\"\nimport script from \"./DownloadIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./DownloadIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c032f1a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"lds-ring\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, null, -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, null, -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, null, -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", null, null, -1))\nconst _hoisted_6 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_6))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'LoaderIcon'\r\n})\r\n","import { render } from \"./LoaderIcon.vue?vue&type=template&id=2c032f1a&scoped=true&ts=true\"\nimport script from \"./LoaderIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./LoaderIcon.vue?vue&type=script&lang=ts\"\n\nimport \"./LoaderIcon.vue?vue&type=style&index=0&id=2c032f1a&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2c032f1a\"]])\n\nexport default __exports__","export default class FormatService {\r\n public static formatNumber (number: number): string {\r\n let formattedNumber = number.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$& ')\r\n if (+formattedNumber.charAt(formattedNumber.length - 1) === 0 && +formattedNumber.charAt(formattedNumber.length - 2) === 0 && formattedNumber.charAt(formattedNumber.length - 3) === '.') {\r\n formattedNumber = formattedNumber.substring(0, formattedNumber.length - 3)\r\n }\r\n return formattedNumber\r\n }\r\n\r\n public static formatDate (date: string, minutes = false): string {\r\n if (date && !this.isValidDate(date)) {\r\n return date\r\n }\r\n if (date) {\r\n const day = new Date(date).toLocaleDateString('en-us', { day: '2-digit' })\r\n const month = new Date(date).toLocaleDateString('en-us', { month: 'short' })\r\n const year = new Date(date).toLocaleDateString('en-us', { year: '2-digit' })\r\n if (minutes) {\r\n const d = new Date(date)\r\n let hour = d.getHours().toString()\r\n if (+hour < 10) {\r\n hour = `0${hour}`\r\n }\r\n let minute = d.getMinutes().toString()\r\n if (+minute < 10) {\r\n minute = `0${minute}`\r\n }\r\n return `${month} ${day}, '${year} ${hour}:${minute}`\r\n }\r\n return `${month} ${day}, '${year}`\r\n }\r\n return ''\r\n }\r\n\r\n public static isValidDate (date: string): boolean {\r\n // eslint-disable-next-line eqeqeq\r\n if (date.toString() == parseInt(date).toString()) return false\r\n const tryDate = new Date(date)\r\n // eslint-disable-next-line eqeqeq\r\n return (tryDate && tryDate.toString() !== 'NaN' && tryDate.toString() != 'Invalid Date')\r\n }\r\n\r\n public static formatFileFormat (fileFormat: string): string {\r\n const knownFormats = ['txt', 'xlsx', 'xls', 'tsv', 'pdf', 'docx', 'doc', 'csv']\r\n if (knownFormats.includes(fileFormat)) {\r\n return `${fileFormat}.svg`\r\n }\r\n return 'blank.svg'\r\n }\r\n\r\n public static preciseNumberRound (value?: number, precision?: number): string|undefined {\r\n if (value || value === 0) {\r\n const multiplier = Math.pow(10, precision || 0)\r\n const roundedNumber = Math.round(value * multiplier) / multiplier\r\n return roundedNumber.toString()\r\n }\r\n return undefined\r\n }\r\n}\r\n","\r\n","import { render } from \"./blank.vue?vue&type=template&id=47d1358c\"\nconst script = {}\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n","import { render } from \"./csv.vue?vue&type=template&id=17fb3ee4\"\nconst script = {}\n\nimport \"./csv.vue?vue&type=style&index=0&id=17fb3ee4&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n","import { render } from \"./doc.vue?vue&type=template&id=18fa24f8\"\nconst script = {}\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./docx.vue?vue&type=template&id=1653e788\"\nconst script = {}\n\nimport \"./docx.vue?vue&type=style&index=0&id=1653e788&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./xls.vue?vue&type=template&id=708bef70\"\nconst script = {}\n\nimport \"./xls.vue?vue&type=style&index=0&id=708bef70&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n","import { render } from \"./xlsx.vue?vue&type=template&id=0e7bf2ea\"\nconst script = {}\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./txt.vue?vue&type=template&id=42feb2d0\"\nconst script = {}\n\nimport \"./txt.vue?vue&type=style&index=0&id=42feb2d0&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./tsv.vue?vue&type=template&id=de2f915a\"\nconst script = {}\n\nimport \"./tsv.vue?vue&type=style&index=0&id=de2f915a&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n","import { render } from \"./pdf.vue?vue&type=template&id=740621b0\"\nconst script = {}\n\nimport \"./pdf.vue?vue&type=style&index=0&id=740621b0&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport DownloadIcon from '@/components/icons/DownloadIcon.vue'\r\nimport LoaderIcon from '@/components/icons/LoaderIcon.vue'\r\nimport FormatService from '@/core/services/format.service'\r\nimport { ReportAttributeItem } from '@/core/model/report.model'\r\nimport { defineComponent, inject, PropType } from 'vue'\r\nimport blank from '@/components/icons/fileIcons/blank.vue'\r\nimport csv from '@/components/icons/fileIcons/csv.vue'\r\nimport doc from '@/components/icons/fileIcons/doc.vue'\r\nimport docx from '@/components/icons/fileIcons/docx.vue'\r\nimport xls from '@/components/icons/fileIcons/xls.vue'\r\nimport xlsx from '@/components/icons/fileIcons/xlsx.vue'\r\nimport txt from '@/components/icons/fileIcons/txt.vue'\r\nimport tsv from '@/components/icons/fileIcons/tsv.vue'\r\nimport pdf from '@/components/icons/fileIcons/pdf.vue'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\n\r\nexport default defineComponent({\r\n components: {\r\n DownloadIcon,\r\n LoaderIcon,\r\n blank,\r\n csv,\r\n doc,\r\n docx,\r\n xls,\r\n xlsx,\r\n txt,\r\n tsv,\r\n pdf\r\n },\r\n name: 'ReportInstanceRow.vue',\r\n setup () {\r\n return {\r\n loginService: inject('ILoginService') as ILoginService\r\n }\r\n },\r\n data () {\r\n return {\r\n isInternalUser: false\r\n }\r\n },\r\n async created () {\r\n this.isInternalUser = await this.loginService.IsInternalUser()\r\n },\r\n props: {\r\n reportId: { type: Number },\r\n item: { type: Object as PropType, required: true }\r\n },\r\n methods: {\r\n onDelete (reportId: string, instanceId: number) {\r\n if (confirm(`Delete report ${reportId}, instance ${instanceId}?`)) {\r\n this.$emit('delete', { reportId, instanceId })\r\n }\r\n },\r\n download () {\r\n this.$emit('download')\r\n },\r\n formatDate (date: string) {\r\n return FormatService.formatDate(date)\r\n },\r\n periodClass (period: string) {\r\n switch (period) {\r\n case 'Daily':\r\n return 'border-red-500 text-red-500 bg-opacity-30'\r\n case 'Weekly':\r\n return 'border-blue-500 text-blue-500 bg-opacity-30'\r\n case 'Monthly':\r\n return 'border-cyan-500 text-cyan-500 bg-opacity-30'\r\n case 'Quarterly':\r\n return 'border-yellow-500 text-yellow-500 bg-opacity-30'\r\n case 'Yearly':\r\n return 'border-green-500 text-green-500 bg-opacity-30'\r\n default:\r\n return ''\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./ReportRow.vue?vue&type=template&id=47cf1d50&scoped=true&ts=true\"\nimport script from \"./ReportRow.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportRow.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportRow.vue?vue&type=style&index=0&id=47cf1d50&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-47cf1d50\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3ae3d686\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"py-3 lg:py-6 h-100 relative\" }\nconst _hoisted_2 = { class: \"flex\" }\nconst _hoisted_3 = { class: \"table w-full\" }\nconst _hoisted_4 = { class: \"py-3 px-2.5 w-3\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-3 pl-2.5\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"skeleton\" })\n], -1))\nconst _hoisted_6 = { class: \"py-3 pr-2.5 flex justify-end\" }\nconst _hoisted_7 = { class: \"h-10 w-10 bg-bg-2 rounded-full body-1 text-text-alt font-bold flex items-center justify-center cursor-pointer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DownloadIcon = _resolveComponent(\"DownloadIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", _hoisted_3, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (i) => {\n return _createElementVNode(\"tr\", {\n key: i,\n class: \"py-3 px-2.5\"\n }, [\n _createElementVNode(\"td\", _hoisted_4, [\n (_openBlock(), _createBlock(_resolveDynamicComponent('blank'), { class: \"w-6 h-auto stroke-semantic-activate fill-semantic-activate\" }))\n ]),\n _hoisted_5,\n _createElementVNode(\"td\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, [\n _createVNode(_component_DownloadIcon, { class: \"stroke-white\" })\n ])\n ])\n ])\n }), 64))\n ])\n ])\n ]))\n}","\r\nimport DownloadIcon from '@/components/icons/DownloadIcon.vue'\r\nimport { defineComponent } from 'vue'\r\nimport blank from '@/components/icons/fileIcons/blank.vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n DownloadIcon,\r\n blank\r\n }\r\n})\r\n","import { render } from \"./ReportInstanceLoading.vue?vue&type=template&id=3ae3d686&scoped=true&ts=true\"\nimport script from \"./ReportInstanceLoading.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportInstanceLoading.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportInstanceLoading.vue?vue&type=style&index=0&id=3ae3d686&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3ae3d686\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e663613e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"p-6 pb-4\" }\nconst _hoisted_2 = { class: \"-mx-6 border-b\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex items-center justify-center p-2 pb-4\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"p-6 pt-4 mb-4\"\n}\nconst _hoisted_5 = { class: \"relative block\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Title:\", -1))\nconst _hoisted_7 = { class: \"relative block\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Attributes\", -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"-1\" }, \"---\", -1))\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Date\", -1))\nconst _hoisted_12 = { class: \"relative block\" }\nconst _hoisted_13 = { class: \"absolute inset-y-0 left-0 flex items-center pl-2\" }\nconst _hoisted_14 = { for: \"file-input\" }\nconst _hoisted_15 = { key: 0 }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Drop Them Here\", -1))\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"smaller\" }, \"to add them\", -1))\nconst _hoisted_18 = [\n _hoisted_16,\n _hoisted_17\n]\nconst _hoisted_19 = { key: 1 }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Drag Your Files Here\", -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"smaller\" }, [\n /*#__PURE__*/_createTextVNode(\" or \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, [\n /*#__PURE__*/_createElementVNode(\"em\", null, \"click here\")\n ]),\n /*#__PURE__*/_createTextVNode(\" to select files \")\n], -1))\nconst _hoisted_22 = [\n _hoisted_20,\n _hoisted_21\n]\nconst _hoisted_23 = {\n key: 1,\n class: \"preview-file-container mt-10\"\n}\nconst _hoisted_24 = { class: \"ml-10\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FormHeader = _resolveComponent(\"FormHeader\")!\n const _component_LoaderIcon = _resolveComponent(\"LoaderIcon\")!\n const _component_CalendarIcon = _resolveComponent(\"CalendarIcon\")!\n const _component_DropZone = _resolveComponent(\"DropZone\")!\n const _component_FilePreview = _resolveComponent(\"FilePreview\")!\n const _component_UploadIcon = _resolveComponent(\"UploadIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_FormHeader, {\n title: _ctx.title,\n ClientDepartment: _ctx.clientDepartmentContext,\n onClose: _ctx.close\n }, null, 8, [\"title\", \"ClientDepartment\", \"onClose\"])\n ])\n ]),\n (_ctx.uploading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_LoaderIcon)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", _hoisted_5, [\n _hoisted_6,\n _withDirectives(_createElementVNode(\"input\", {\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\",\n placeholder: \"Title\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.name) = $event)),\n type: \"Text\",\n name: \"Format\"\n }, null, 512), [\n [_vModelText, _ctx.name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _hoisted_8,\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.attributeId) = $event)),\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\"\n }, [\n _hoisted_9,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.attributes, (attr, key) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: key,\n value: attr.id\n }, _toDisplayString(attr.name), 9, _hoisted_10))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.attributeId]\n ])\n ]),\n _hoisted_11,\n _createElementVNode(\"label\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, [\n _createVNode(_component_CalendarIcon, { class: \"h-5 w-5 fill-text-alt stroke-text-alt\" })\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\",\n placeholder: \"Date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.date) = $event)),\n type: \"date\",\n name: \"Date\"\n }, null, 512), [\n [_vModelText, _ctx.date]\n ])\n ]),\n (_ctx.file === null)\n ? (_openBlock(), _createBlock(_component_DropZone, {\n key: 0,\n \"data-active\": \"false\",\n class: \"drop-area mt-10\",\n onFilesDropped: _ctx.addFiles\n }, {\n default: _withCtx(({ dropZoneActive }) => [\n _createElementVNode(\"label\", _hoisted_14, [\n dropZoneActive\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, _hoisted_18))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_19, _hoisted_22)),\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"file-input\",\n multiple: \"\",\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.onInputChange && _ctx.onInputChange(...args)))\n }, null, 32)\n ])\n ]),\n _: 1\n }, 8, [\"onFilesDropped\"]))\n : (_ctx.file)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n _createVNode(_component_FilePreview, {\n file: _ctx.file,\n tag: \"div\",\n onRemove: _ctx.removeFile\n }, null, 8, [\"file\", \"onRemove\"]),\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.file.file.name), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.upload && _ctx.upload(...args))),\n class: \"mt-10 text-gray-800 btn-gradient-yellow no-underline flex items-center justify-end justify-between hover:bg-bg-2 rounded-md p-0.5 xxs:p-2 mx-0 font-normal w-full lg:w-auto\"\n }, [\n _createVNode(_component_UploadIcon, { class: \"w-4 h-4 fill-gray-800 mr-3\" }),\n _createTextVNode(\" Upload \")\n ])\n ]))\n ]))\n}","\r\n\r\n\r\n","import script from \"./DropZone.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DropZone.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","import script from \"./FilePreview.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FilePreview.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FilePreview.vue?vue&type=style&index=0&id=6fd3ae30&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6fd3ae30\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e01f68a0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex items-center px-6 pb-4\" }\nconst _hoisted_2 = {\n class: \"mr-20\",\n style: {\"flex\":\"1\"}\n}\nconst _hoisted_3 = { class: \"mb-1.5\" }\nconst _hoisted_4 = { class: \"body-1 body-alt\" }\nconst _hoisted_5 = { class: \"rounded-full p-2 bg-bg-2 hover:bg-bg-3 w-fit cursor-pointer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FilesIcon = _resolveComponent(\"FilesIcon\")!\n const _component_CrossIcon = _resolveComponent(\"CrossIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_FilesIcon, { class: \"w-8 h-8 fill-gray-200 mr-3\" }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h4\", _hoisted_3, \" Upload - \" + _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"div\", _hoisted_4, \" Client/Department - \" + _toDisplayString(_ctx.ClientDepartment), 1)\n ]),\n _createElementVNode(\"span\", _hoisted_5, [\n _createVNode(_component_CrossIcon, {\n class: \"w-8 h-8 fill-gray-200\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.close()))\n })\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M6 18L18 6M6 6l12 12\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'CrossIcon'\r\n})\r\n","import { render } from \"./CrossIcon.vue?vue&type=template&id=d2cc2206&ts=true\"\nimport script from \"./CrossIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./CrossIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport FilesIcon from '@/components/icons/FilesIcon.vue'\r\nimport CrossIcon from '@/components/icons/CrossIcon.vue'\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n FilesIcon,\r\n CrossIcon\r\n },\r\n props: {\r\n title: { type: String, required: true },\r\n ClientDepartment: { type: String, required: true }\r\n },\r\n methods: {\r\n close () {\r\n this.$emit('close')\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceReportFormHeader.vue?vue&type=template&id=e01f68a0&scoped=true&ts=true\"\nimport script from \"./ServiceReportFormHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceReportFormHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./ServiceReportFormHeader.vue?vue&type=style&index=0&id=e01f68a0&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e01f68a0\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'CalendarIcon'\r\n})\r\n","import { render } from \"./CalendarIcon.vue?vue&type=template&id=87d7e636&ts=true\"\nimport script from \"./CalendarIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./CalendarIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ApiResult, RequestHandler } from '@/core/services/request.service'\r\nimport { DepartmentModel } from '@/core/model/context.model'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\n\r\nexport class ContextManager {\r\n private _http: RequestHandler\r\n private _logger: ILogger\r\n\r\n constructor (http: RequestHandler, logger: ILogger) {\r\n this._http = http\r\n this._logger = logger\r\n\r\n this.currentDepartment().then(code => this._logger.updateClientDepartmentContext(code.data as string))\r\n }\r\n\r\n clear (): Promise> {\r\n return this._http.request('put', 'Context/Clear')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n async declareDepartmentCode (clientDepartmentCode: string): Promise> {\r\n const response = await this._http.request('put', `Context/ClientDepartment/Current/${clientDepartmentCode}`)\r\n // .then((rep: ApiResult) => rep)\r\n // .catch(err => err)\r\n console.log(response)\r\n if (response.status === 200) {\r\n this._logger.updateClientDepartmentContext(clientDepartmentCode)\r\n }\r\n return response\r\n }\r\n\r\n departmentList (): Promise> {\r\n return this._http.request('get', 'Context/ClientDepartment')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n currentDepartment (): Promise> {\r\n return this._http.request('get', 'Context/ClientDepartment/Current')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n activitySectorsList (): Promise> {\r\n return this._http.request('get', 'Context/ActivitySectors')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n currentActivitySectors (): Promise> {\r\n return this._http.request('get', 'Context/ActivitySectors/Current')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n declareActivitySectors (activitySectors: string[]): Promise> {\r\n return this._http.request('put', 'Context/ActivitySectors/Current', activitySectors)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n}\r\n","interface ReportInstances {\r\n id: number\r\n name: string\r\n instanceDate: string\r\n}\r\n\r\nexport interface ReportVersion {\r\n version: number\r\n generationDate: string\r\n}\r\n\r\nexport interface ReportModel {\r\n instances: ReportInstances[]\r\n}\r\n\r\nexport interface ReportByInstanceModel {\r\n versions: ReportVersion[]\r\n}\r\n\r\ninterface ReportServiceGroup {\r\n id: number\r\n title: string\r\n description?: string\r\n isPreview?: true\r\n type?: string\r\n tags?: string[]\r\n total?: number\r\n}\r\nexport interface ReportService {\r\n name: string\r\n count: number\r\n groups: ReportServiceGroup[]\r\n active?: boolean\r\n}\r\n\r\n// keep it\r\n\r\nexport interface ReportAttributeItem {\r\n id: number\r\n name: string\r\n instanceDate: string\r\n fileFormat: string\r\n tinyGuid: string\r\n // used by component only - not by manager\r\n period?: string\r\n IsDownloading?: boolean\r\n // end - used by component only - not by manager\r\n}\r\n\r\nexport interface ReportAttribute {\r\n pageIndex: number\r\n pageSize: number\r\n totalCount: number\r\n totalPages: number\r\n indexFrom: number\r\n items: ReportAttributeItem[]\r\n hasPreviousPage: boolean\r\n hasNextPage: boolean\r\n}\r\n\r\nexport interface Instance {\r\n id: number\r\n name: string\r\n instanceDate: string\r\n fileFormat: string\r\n tinyGuid:string\r\n}\r\n\r\nexport interface Attribute {\r\n id: number\r\n name: string\r\n instances: Instance[]\r\n count: number\r\n nextPage: boolean\r\n selected?: boolean\r\n}\r\n\r\nexport interface ReportDetail {\r\n id: number\r\n name: string\r\n attributes: Attribute[]\r\n selected?: boolean\r\n}\r\n\r\nexport interface Report {\r\n id: number\r\n title: string\r\n description: string\r\n total: number\r\n reports?: ReportDetail\r\n active?: boolean\r\n isAssetRelated?: boolean\r\n\r\n}\r\n\r\nexport interface ServiceReportGroup {\r\n name: string\r\n count: number\r\n groups: Report[]\r\n active?: boolean\r\n}\r\n\r\nexport interface ReportServiceCategory {\r\n name: string\r\n count: number\r\n groups: ServiceReportGroup[]\r\n active?: boolean\r\n}\r\n\r\nexport interface ReportsListModel {\r\n serviceCategories: ReportServiceCategory[]\r\n}\r\n\r\nexport class UploadableFile {\r\n public readonly file: File\r\n public readonly id: string\r\n public readonly url: string\r\n public status: string|boolean|null\r\n\r\n constructor (file: File) {\r\n this.file = file\r\n this.id = `${file.name}-${file.size}-${file.lastModified}-${file.type}`\r\n this.url = URL.createObjectURL(file)\r\n this.status = null\r\n }\r\n}\r\n\r\nexport interface UploadServiceReportModel {\r\n reportId: number\r\n attributeId: number\r\n Title: string\r\n ClientDepartmentCode: string\r\n Date: Date\r\n // Format: string\r\n File: UploadableFile\r\n}\r\n\r\nexport interface UploadAssetReportModel {\r\n reportId: number\r\n assetId: number\r\n attributeId: number\r\n Title: string\r\n ClientDepartmentCode: string\r\n Date: Date\r\n // Format: string\r\n File: UploadableFile\r\n}\r\n","\r\n\r\nimport { defineComponent, inject } from 'vue'\r\nimport DropZone from '@/components/reports/categories/services/reports/form/DropZone.vue'\r\nimport FilePreview from '@/components/reports/categories/services/reports/form/FilePreview.vue'\r\nimport FormHeader from '@/components/reports/categories/services/reports/form/ServiceReportFormHeader.vue'\r\nimport CalendarIcon from '@/components/icons/CalendarIcon.vue'\r\nimport LoaderIcon from '@/components/icons/LoaderIcon.vue'\r\nimport UploadIcon from '@/components/icons/UploadIcon.vue'\r\nimport { ContextManager } from '@/core/managers/context.manager'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport { UploadServiceReportModel, UploadableFile } from '@/core/model/report.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n CalendarIcon,\r\n LoaderIcon,\r\n UploadIcon,\r\n FormHeader,\r\n DropZone,\r\n FilePreview\r\n },\r\n props: {\r\n id: { type: Number, required: true },\r\n title: { type: String, required: true }\r\n },\r\n setup () {\r\n return {\r\n contextManager: inject(ContextManager.name) as ContextManager,\r\n reportManager: ReportManager\r\n }\r\n },\r\n data () {\r\n return {\r\n clientDepartmentContext: 'None',\r\n attributes: [] as Array,\r\n file: null as UploadableFile|null,\r\n date: new Date(Date.now()),\r\n // format: 'pdf',\r\n name: '',\r\n attributeId: -1,\r\n uploading: false\r\n }\r\n },\r\n async created () {\r\n const contextResponse = await this.contextManager.currentDepartment()\r\n if (contextResponse.data) {\r\n this.clientDepartmentContext = contextResponse.data\r\n }\r\n this.attributes = await this.reportManager.attributes()\r\n },\r\n methods: {\r\n close () {\r\n if (this.uploading) return\r\n\r\n this.removeFile()\r\n this.$emit('close')\r\n },\r\n onInputChange (e: any) {\r\n this.addFiles(e.target.files)\r\n e.target.value = null // reset so that selecting the same file again will still cause it to fire this change\r\n },\r\n isFileValid (file: File) {\r\n if (file.size > 10 * 1024 * 1024) return false // 5Mbit\r\n\r\n return true\r\n },\r\n addFiles (newFiles: File[]) {\r\n if (!this.isFileValid(newFiles[0])) return\r\n\r\n const newUploadableFile = new UploadableFile(newFiles[0])\r\n this.file = newUploadableFile\r\n },\r\n removeFile () {\r\n this.file = null\r\n },\r\n async upload () {\r\n if (this.file === null) return\r\n this.uploading = true\r\n let shouldBeClose = false\r\n try {\r\n const uploadModel = {\r\n reportId: this.id,\r\n Title: this.name,\r\n attributeId: this.attributeId,\r\n ClientDepartmentCode: this.clientDepartmentContext,\r\n Date: this.date,\r\n // Format: this.format,\r\n File: this.file as UploadableFile\r\n } as UploadServiceReportModel\r\n await this.reportManager.upload(uploadModel)\r\n shouldBeClose = true\r\n } finally {\r\n this.uploading = false\r\n }\r\n\r\n if (shouldBeClose) {\r\n this.close()\r\n }\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./ServiceReportForm.vue?vue&type=template&id=e663613e&scoped=true&ts=true\"\nimport script from \"./ServiceReportForm.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceReportForm.vue?vue&type=script&lang=ts\"\n\nimport \"./ServiceReportForm.vue?vue&type=style&index=0&id=e663613e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e663613e\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"w-full flex justify-start gap-4 mt-4\"\n}\nconst _hoisted_2 = { class: \"page-item\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex items-center gap-4\"\n}\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"flex items-center gap-4\"\n}\nconst _hoisted_6 = { class: \"page-item\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LeftArrowIcon = _resolveComponent(\"LeftArrowIcon\")!\n const _component_RightArrowIcon = _resolveComponent(\"RightArrowIcon\")!\n\n return ( _ctx.totalPages > 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.currentPage !== 1)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: _normalizeClass(_ctx.paginationButton),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.click(_ctx.currentPage - 1)))\n }, [\n _createVNode(_component_LeftArrowIcon, { class: \"w-5 h-5 stroke-text-alt\" })\n ], 2))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.currentPage > 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: _normalizeClass(_ctx.paginationButton),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.click(1)))\n }, \"1\", 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.paginationButton)\n }, \"...\", 2)\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.innerPagination, (pageNumber, j) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: j,\n onClick: ($event: any) => (_ctx.click(pageNumber)),\n class: _normalizeClass([{ 'bg-semantic-activate text-bg-0': _ctx.currentPage === pageNumber }, _ctx.paginationButton,])\n }, _toDisplayString(pageNumber), 11, _hoisted_4))\n }), 128)),\n (_ctx.currentPage < _ctx.totalPages - _ctx.numberOfButton)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.paginationButton)\n }, \"...\", 2),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: _normalizeClass(_ctx.paginationButton),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.click(_ctx.totalPages)))\n }, _toDisplayString(_ctx.totalPages), 3)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.currentPage < _ctx.totalPages)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.click(_ctx.currentPage + 1))),\n class: _normalizeClass(_ctx.paginationButton)\n }, [\n _createVNode(_component_RightArrowIcon, { class: \"w-5 h-5 stroke-text-alt\" })\n ], 2))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M10 19l-7-7m0 0l7-7m-7 7h18\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'RightArrowIcon'\r\n})\r\n","import { render } from \"./LeftArrowIcon.vue?vue&type=template&id=4fe78382&ts=true\"\nimport script from \"./LeftArrowIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./LeftArrowIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M14 5l7 7m0 0l-7 7m7-7H3\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'RightArrowIcon'\r\n})\r\n","import { render } from \"./RightArrowIcon.vue?vue&type=template&id=3e1bd43f&ts=true\"\nimport script from \"./RightArrowIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./RightArrowIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport LeftArrowIcon from '@/components/icons/LeftArrowIcon.vue'\r\nimport { defineComponent } from 'vue'\r\nimport RightArrowIcon from '@/components/icons/RightArrowIcon.vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n LeftArrowIcon,\r\n RightArrowIcon\r\n },\r\n props: {\r\n currentPage: { type: Number, required: true },\r\n totalPages: { type: Number, required: true },\r\n numberOfButton: { type: Number, required: false, default: 4 }\r\n },\r\n data () {\r\n return {\r\n paginationButton: 'h-10 w-10 bg-bg-2 rounded-full body-1 text-text-alt font-bold flex items-center justify-center cursor-pointer'\r\n }\r\n },\r\n methods: {\r\n click (index: number) {\r\n this.$emit('selectPage', index)\r\n }\r\n },\r\n computed: {\r\n innerPagination () {\r\n const pagination: number[] = []\r\n // insert button previous\r\n if (this.currentPage > 1) {\r\n pagination.push(this.currentPage - 1)\r\n }\r\n\r\n // insert button from currentPage to currentPage + numberOfButton (max value = totalPages)\r\n const maxPage = this.currentPage + this.numberOfButton < this.totalPages ? this.currentPage + this.numberOfButton : this.totalPages\r\n for (let x = this.currentPage; x <= maxPage; x++) {\r\n pagination.push(x)\r\n }\r\n return pagination\r\n }\r\n }\r\n})\r\n","import { render } from \"./pagination.vue?vue&type=template&id=0eec58df&ts=true\"\nimport script from \"./pagination.vue?vue&type=script&lang=ts\"\nexport * from \"./pagination.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { AxiosError } from 'axios'\r\nimport { apiClient } from '@/core/axios.plugin'\r\n\r\nexport const ApiClient = {\r\n slice (url:string, pageIndex: number, pageSize: number): Promise<{ slice : T, total : number }> {\r\n return new Promise((resolve, reject) => {\r\n apiClient.get(`${url}&indexOfCurrentPage=${pageIndex}&itemsPerPage=${pageSize}`).then((rep) => {\r\n resolve({ slice: (rep.data as T), total: parseInt(rep.headers['x-total-count']) || 0 })\r\n }).catch((err:AxiosError) => {\r\n reject(err.message)\r\n })\r\n })\r\n },\r\n list (url:string): Promise {\r\n return new Promise((resolve, reject) => {\r\n apiClient.get(url).then((rep) => {\r\n resolve((rep.data as T))\r\n }).catch((err:AxiosError) => {\r\n reject(err.message)\r\n })\r\n })\r\n },\r\n find (url:string, id : string): Promise {\r\n return new Promise((resolve, reject) => {\r\n apiClient.get(url + '/' + id).then((rep) => {\r\n resolve((rep.data as T))\r\n }).catch((err:AxiosError) => {\r\n reject(err.message)\r\n })\r\n })\r\n },\r\n post (url: string, body: T): Promise {\r\n return new Promise((resolve, reject) => {\r\n apiClient.post(url, body).then(rep => {\r\n resolve((rep.data as { newId: number}).newId)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n put (url: string, body: T): Promise {\r\n return new Promise((resolve, reject) => {\r\n apiClient.put(url, body).then(() => {\r\n resolve()\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n delete (url: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n apiClient.delete(url)\r\n .then(() => resolve())\r\n .catch(err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { GlobalStore } from '@/main'\r\n\r\nexport interface ReportSubscriptionRowAssetModel {\r\n assetId: number\r\n assetName: number\r\n checked: boolean\r\n pending?: boolean\r\n}\r\nexport interface ReportSubscriptionRowModel {\r\n attributeId: number\r\n order: number\r\n checked?: boolean\r\n pending?: boolean\r\n assets?: ReportSubscriptionRowAssetModel[]\r\n}\r\nexport interface IdNameModel{\r\n id: number\r\n name :string\r\n}\r\n\r\nexport const Report2Manager = {\r\n getAttributeAll (): Promise<{id: number, name : string}[]> {\r\n GlobalStore.msgError = ''\r\n return new Promise((resolve, reject) => {\r\n ApiClient.list('/services/Reports/Attributes/All').then(result => {\r\n resolve(result)\r\n }).catch((err:string) => {\r\n GlobalStore.msgError = err\r\n reject(err)\r\n })\r\n })\r\n },\r\n getSubscription (reportId: number): Promise {\r\n GlobalStore.msgError = ''\r\n return new Promise((resolve, reject) => {\r\n ApiClient.list(`/reportSubscription/${reportId}`).then(result => {\r\n resolve(result)\r\n }).catch((err:string) => {\r\n GlobalStore.msgError = err\r\n reject(err)\r\n })\r\n })\r\n },\r\n updateSubscription (params: string, body: { checked: boolean}): Promise {\r\n GlobalStore.msgError = ''\r\n return new Promise((resolve, reject) => {\r\n ApiClient.put(`/reportSubscription/${params}`, body).then(() => {\r\n resolve()\r\n }).catch((err:string) => {\r\n GlobalStore.msgError = err\r\n reject(err)\r\n })\r\n })\r\n },\r\n deleteReport (reportId: string, instanceId: number): Promise {\r\n GlobalStore.msgError = ''\r\n return new Promise((resolve, reject) => {\r\n // /api/Asset/details/:id\r\n ApiClient.delete(`services/reports/${reportId}/instance/${instanceId}`).then(() => {\r\n resolve()\r\n }).catch((err:string) => {\r\n GlobalStore.msgError = err\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","\r\nimport { defineComponent } from 'vue'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport { useToast } from 'vue-toastification'\r\nimport ReportAttributeTab from '@/components/reports/categories/services/reports/attributes/ReportAttributeTab.vue'\r\nimport ReportAttributeTabLoading\r\n from '@/components/reports/categories/services/reports/attributes/ReportAttributeTab.loading.vue'\r\nimport ReportInstanceRow from '@/components/reports/categories/services/reports/list/ReportRow.vue'\r\nimport ReportInstanceLoading from '@/components/reports/categories/services/reports/list/ReportInstanceLoading.vue'\r\nimport ServiceReportForm from '@/components/reports/categories/services/reports/form/ServiceReportForm.vue'\r\nimport 'vue3-treeselect/dist/vue3-treeselect.css'\r\nimport Pagination from '@/components/common/pagination.vue'\r\nimport { ReportAttributeItem, ReportDetail } from '@/core/model/report.model'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport { GStoreModel } from '@/main'\r\nimport { Report2Manager } from '@/map/core/bll/report/reportManager'\r\nimport FormatService from '@/core/services/format.service'\r\n\r\nexport default defineComponent({\r\n inject: ['GStore'],\r\n name: 'ServiceReport',\r\n components: {\r\n ReportAttributeTab,\r\n ReportInstanceRow,\r\n ReportInstanceLoading,\r\n ReportAttributeTabLoading,\r\n ServiceReportForm,\r\n GenericCardShell,\r\n Pagination\r\n },\r\n props: {\r\n id: { type: Number, required: true },\r\n reportTitle: { type: String, required: true },\r\n showForm: { type: Boolean, default: false }\r\n },\r\n data () {\r\n return {\r\n attributeId: undefined as number|undefined,\r\n loading: true,\r\n loadingInstance: true,\r\n report: {} as ReportDetail,\r\n instances: [] as ReportAttributeItem[],\r\n totalPages: 0,\r\n currentPage: 0,\r\n toast: useToast()\r\n }\r\n },\r\n async created () {\r\n await this.retrieveReportDetail()\r\n },\r\n methods: {\r\n onDelete (args:{reportId: string, instanceId: number}) {\r\n Report2Manager.deleteReport(args.reportId, args.instanceId).then(() => {\r\n this.instances = this.instances.filter(item => item.id !== args.instanceId);\r\n (this.GStore as GStoreModel).msgSuccess = 'item remove'\r\n setTimeout(() => {\r\n (this.GStore as GStoreModel).msgSuccess = ''\r\n }, 4000)\r\n })\r\n },\r\n async retrieveReportDetail () {\r\n this.loading = true\r\n\r\n const res = await ReportManager.detail(this.id)\r\n if (res.data && !res.isError) {\r\n this.report = res.data\r\n }\r\n\r\n this.loading = false\r\n },\r\n async closeForm () {\r\n this.$emit('closeForm')\r\n await this.retrieveReportDetail()\r\n },\r\n async updateSelectedAttribute (selectedAttributeId: number|undefined) {\r\n this.attributeId = selectedAttributeId\r\n await this.fetchReports()\r\n },\r\n async download (item: ReportAttributeItem) {\r\n if (item.IsDownloading) return\r\n item.IsDownloading = true\r\n\r\n try {\r\n const filename = item.name + ' - ' + FormatService.formatDate(item.instanceDate) + '.' + item.fileFormat\r\n const displayFilename = this.reportTitle + '-' + item.name + '.' + item.fileFormat\r\n await ReportManager.DownloadInstance(displayFilename, filename, item.tinyGuid)\r\n } finally {\r\n item.IsDownloading = false\r\n }\r\n },\r\n async fetchReports (pageIndex = 0) {\r\n this.instances = []\r\n this.loadingInstance = true\r\n if (this.attributeId) {\r\n this.instances = await this.retrieveReportInstance(this.attributeId, pageIndex)\r\n } else {\r\n this.instances = await this.retrieveDefaultInstance()\r\n }\r\n this.loadingInstance = false\r\n },\r\n async retrieveReportInstance (attributeId: number, pageIndex = 0): Promise {\r\n const numberOfElementPerPage = 5\r\n const response = await ReportManager.byAttribute(this.id, attributeId, pageIndex, numberOfElementPerPage)\r\n if (response.isError) {\r\n const error = this.$t('allReports.error', {\r\n error: response.Message\r\n })\r\n this.toast.error(error)\r\n }\r\n if (response.data === undefined) return []\r\n\r\n this.currentPage = response.data.pageIndex + 1 // pageIndex start at 0 - currentPage start at 1\r\n this.totalPages = response.data.totalPages\r\n return response.data.items\r\n },\r\n async retrieveDefaultInstance (): Promise {\r\n let instances = [] as ReportAttributeItem[]\r\n for (const a of this.report.attributes) {\r\n instances = instances.concat(a.instances.map(i => {\r\n return {\r\n id: i.id,\r\n name: i.name,\r\n instanceDate: i.instanceDate,\r\n fileFormat: i.fileFormat,\r\n period: a.name,\r\n tinyGuid: i.tinyGuid\r\n } as ReportAttributeItem\r\n }))\r\n }\r\n this.currentPage = 0\r\n this.totalPages = 0\r\n // sort instance by instanceDate\r\n return instances.sort((a, b) => new Date(b.instanceDate).getTime() - new Date(a.instanceDate).getTime())\r\n },\r\n async changePageIndex (selectedPage: number) {\r\n await this.fetchReports(selectedPage - 1) // pageIndex start at 0 - selectedPage start at 1\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceReport.vue?vue&type=template&id=6d804346&scoped=true&ts=true\"\nimport script from \"./ServiceReport.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceReport.vue?vue&type=script&lang=ts\"\n\nimport \"./ServiceReport.vue?vue&type=style&index=0&id=6d804346&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6d804346\"]])\n\nexport default __exports__","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"w-full\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"h-full w-full\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ServicesCardKpiShell = _resolveComponent(\"ServicesCardKpiShell\")!\n const _component_ServicesCardChart = _resolveComponent(\"ServicesCardChart\")!\n const _component_Observer = _resolveComponent(\"Observer\")!\n\n return (_openBlock(), _createBlock(_component_Observer, {\n class: _normalizeClass([\"\", \r\n (_ctx.previewType === 'KPI' || _ctx.previewType === 'Kpi') && !_ctx.fromList\r\n ? 'w-full'\r\n : 'h-full'\r\n ]),\n onOnChange: _ctx.loadDetails\n }, {\n default: _withCtx(() => [\n (_ctx.fromList || _ctx.fromFleet)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(\r\n _ctx.fromList && _ctx.observed\r\n ? 'ServicesCardPreview'\r\n : !_ctx.fromList && _ctx.fromFleet && _ctx.observed\r\n ? 'ServicesCardFleet'\r\n : ''\r\n ), {\n key: 0,\n id: _ctx.id,\n title: _ctx.title,\n subtitle: _ctx.subtitle,\n \"button-text\": 'Open',\n \"graph-type\": _ctx.graphType,\n \"preview-type\": _ctx.previewType,\n \"kpi-title\": _ctx.kpiTitle,\n size: _ctx.size,\n \"preview-infos\": _ctx.previewInfos,\n period: _ctx.period\n }, null, 8, [\"id\", \"title\", \"subtitle\", \"graph-type\", \"preview-type\", \"kpi-title\", \"size\", \"preview-infos\", \"period\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.fromList && !_ctx.fromFleet && _ctx.observed)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass(\r\n (_ctx.previewType === 'KPI' || _ctx.previewType === 'Kpi') && _ctx.observed\r\n ? 'w-full'\r\n : 'h-full w-full'\r\n )\n }, [\n ((_ctx.previewType === 'KPI' || _ctx.previewType === 'Kpi') && _ctx.observed)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ServicesCardKpiShell, {\n \"is-preview\": false,\n kpis: _ctx.previewInfos\n }, null, 8, [\"kpis\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.previewType === 'Chart' && _ctx.observed)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ServicesCardChart, {\n title: _ctx.title,\n \"graph-type\": _ctx.previewInfos.type,\n id: _ctx.id,\n \"compatible-filters\": _ctx.previewInfos.compatibleFilters,\n description: _ctx.previewInfos.description\n }, null, 8, [\"title\", \"graph-type\", \"id\", \"compatible-filters\", \"description\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"onOnChange\", \"class\"]))\n}","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2ceb4d43\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col h-full relative\" }\nconst _hoisted_2 = { class: \"h-full flex flex-col w-full m-auto p-4\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"h-4/6 flex\"\n}\nconst _hoisted_4 = { class: \"m-auto\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Highcharts = _resolveComponent(\"Highcharts\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.loading ? 'h-1/6' : 'h-0')\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"my-10 mx-auto z-20 absolute left-1/2 -translate-x-1/2 text-xl text-center font-bold\", _ctx.loading ? 'skeleton w-4/5 max-w-xs' : 'w-fit'])\n }, null, 2)\n ], 2),\n (!_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"flex flex-col lg:flex-row\", _ctx.loading ? 'h-5/6' : 'h-full'])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.graphType && !_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createBlock(_component_Highcharts, {\n key: 0,\n options: _ctx.chartOptions\n }, null, 8, [\"options\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.error), 1)\n ]))\n ]))\n}","import { ChartModel } from '@/core/model/chart.model'\r\nimport { FilterFormatted } from '@/core/model/filter.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\nimport router from '@/router'\r\n\r\nexport const Manager = {\r\n detail (id: number, filters?: FilterFormatted[], compatibleFilters?: number[]): Promise> {\r\n const filtersSorted = (filters || []).filter(filter => (compatibleFilters || []).find((compFilter) => compFilter === filter.id))\r\n const filtersUniq = Array.from(new Set(filtersSorted.map(a => a.id))).map(id => {\r\n return filtersSorted.find(a => a.id === id)\r\n })\r\n\r\n const body = {\r\n filters: (router.currentRoute.value.name !== 'assetDetail' && router.currentRoute.value.name !== 'map') ? filtersUniq || [] : filters\r\n }\r\n\r\n return http.request('post', `Charts/${id}`, body)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n}\r\n","import { FilterFormatted } from '@/core/model/filter.model'\r\nimport { KpiModel } from '@/core/model/kpi.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\nimport router from '@/router'\r\n\r\nexport const Manager = {\r\n detail (id: number, filters?: FilterFormatted[], compatibleFilters?: number[]): Promise> {\r\n const filtersSorted = (filters || []).filter(filter => (compatibleFilters || []).find((compFilter) => compFilter === filter.id))\r\n const filtersUniq = Array.from(new Set(filtersSorted.map(a => a.id))).map(id => {\r\n return filtersSorted.find(a => a.id === id)\r\n })\r\n const body = {\r\n filters: (router.currentRoute.value.name !== 'assetDetail' && router.currentRoute.value.name !== 'map') ? filtersUniq || [] : filters\r\n }\r\n return http.request('post', `Kpis/${id}`, body)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n}\r\n","import { CategoryModel } from '@/core/model/category.model'\r\nimport { FilterFormatted } from '@/core/model/filter.model'\r\nimport { Label } from '@/core/model/label.model'\r\nimport { FiltersSettings, FleetSettings } from '@/core/model/settings.model'\r\nimport { UserModel } from '@/core/model/user.model'\r\nimport { Commit, createStore } from 'vuex'\r\n\r\ninterface State {\r\n list: CategoryModel[],\r\n labels: Label[]\r\n filters: FilterFormatted[]\r\n fleetSettings?: FleetSettings\r\n filtersSettings?: FiltersSettings\r\n}\r\n\r\nexport default createStore({\r\n state () {\r\n return {\r\n list: [],\r\n labels: [],\r\n filters: [],\r\n fleetSettings: undefined,\r\n filtersSettings: undefined\r\n }\r\n },\r\n mutations: {\r\n updateServiceList (state: State, list) {\r\n state.list = list\r\n },\r\n updateLabelsList (state: State, labels) {\r\n state.labels = labels\r\n },\r\n updateFiltersList (state: State, filters) {\r\n state.filters = filters\r\n },\r\n updateFleetSettings (state: State, settings) {\r\n state.fleetSettings = settings\r\n },\r\n updateFiltersSettings (state: State, settings) {\r\n state.filtersSettings = settings\r\n }\r\n },\r\n actions: {\r\n setServiceList (store: { commit: Commit }, payload: { list: CategoryModel[] }) {\r\n store.commit('updateServiceList', payload)\r\n },\r\n setLabelsList (store: { commit: Commit }, payload: { labels: Label[] }) {\r\n store.commit('updateLabelsList', payload)\r\n },\r\n setFiltersList (store: { commit: Commit }, payload: FilterFormatted[]) {\r\n const filtersWithoutEmpty = []\r\n for (const filter of Object.values(payload)) {\r\n if ((Array.isArray(filter.members) && filter.members.length) || (!Array.isArray(filter.members) && filter.members)) {\r\n filtersWithoutEmpty.push(filter)\r\n }\r\n }\r\n store.commit('updateFiltersList', filtersWithoutEmpty)\r\n },\r\n defineUser (store: { commit: Commit }, payload: UserModel) {\r\n store.commit('updateUserProfile', payload)\r\n },\r\n setFleetSettings (store: { commit: Commit }, payload: FleetSettings) {\r\n store.commit('updateFleetSettings', payload)\r\n },\r\n setFiltersSettings (store: { commit: Commit }, payload: FiltersSettings) {\r\n store.commit('updateFiltersSettings', payload)\r\n },\r\n defineUserOid (store: { commit: Commit }, payload: string) {\r\n store.commit('updateUserOid', payload)\r\n },\r\n defineContext (store: { commit: Commit }, payload: string) {\r\n store.commit('updateContext', payload)\r\n },\r\n defineSessionId (store: { commit: Commit }, payload: string) {\r\n store.commit('updateSessionId', payload)\r\n }\r\n },\r\n modules: {\r\n }\r\n})\r\n","import store from '@/store'\r\n\r\nexport const textGray50 = '#f9fafb'\r\nexport const textGray100 = '#f3f4f6'\r\nexport const textGray200 = '#e5e7eb'\r\nexport const textGray300 = '#d1d5db'\r\nexport const textGray400 = '#9ca3af'\r\nexport const textGray500 = '#6b7280'\r\nexport const textGray600 = '#4b5563'\r\nexport const textGray700 = '#374151'\r\nexport const textGray800 = '#1f2937'\r\nexport const textGray900 = '#111827'\r\nexport const textWhite = '#fff'\r\nexport const textPrim = '#e3e8f3'\r\nexport const textAlt = '#a9b8db'\r\nexport const bg0 = '#0c111c'\r\nexport const bg2 = '#192339'\r\nexport const semanticActivate = '#60A5FA'\r\n\r\nexport default class ColoursService {\r\n public static randomColour (): string {\r\n return '#' + (Math.random().toString(16) + '00000').slice(2, 8)\r\n }\r\n\r\n public static stringToColour (str: string): string {\r\n if (!str) {\r\n return this.randomColour()\r\n }\r\n let hash = 0\r\n for (let i = 0; i < str.length; i++) {\r\n hash = str.charCodeAt(i) + ((hash << 5) - hash)\r\n }\r\n let colour = '#'\r\n for (let i = 0; i < 3; i++) {\r\n const value = (hash >> (i * 8)) & 0xFF\r\n colour += ('00' + value.toString(16)).substr(-2)\r\n }\r\n return colour\r\n }\r\n\r\n public static getColour (title: string): string {\r\n if (store.state.labels && title) {\r\n const labelIndex = store.state.labels.findIndex(label => label.text.toLowerCase() === title.toLowerCase())\r\n if (labelIndex > -1) {\r\n return store.state.labels[labelIndex].color\r\n }\r\n }\r\n return this.stringToColour(title)\r\n }\r\n\r\n public static colourLightness (colour: string, decimal: number): string {\r\n const base = colour.startsWith('#') ? 1 : 0\r\n\r\n let r = parseInt(colour.substring(base, 3), 16)\r\n let g = parseInt(colour.substring(base + 2, 5), 16)\r\n let b = parseInt(colour.substring(base + 4, 7), 16)\r\n\r\n r = Math.round(r / decimal)\r\n g = Math.round(g / decimal)\r\n b = Math.round(b / decimal)\r\n\r\n r = (r < 255) ? r : 255\r\n g = (g < 255) ? g : 255\r\n b = (b < 255) ? b : 255\r\n\r\n const rr = ((r.toString(16).length === 1) ? `0${r.toString(16)}` : r.toString(16))\r\n const gg = ((g.toString(16).length === 1) ? `0${g.toString(16)}` : g.toString(16))\r\n const bb = ((b.toString(16).length === 1) ? `0${b.toString(16)}` : b.toString(16))\r\n return `#${rr}${gg}${bb}`\r\n }\r\n}\r\n","import { Category, Content } from '@/core/charts/content.model'\r\nimport { IChartGenerator, IGeneratorOption } from '@/core/charts/ichartgenerator.model'\r\nimport { ChartOptionsModel, ExportingOptions, LegendOptions, NavigationOptions, PlotOptions, SerieOptions, TooltipOptions, xAxisOptions, yAxisOptions } from '@/core/model/chart.model'\r\nimport ColoursService, { bg0, bg2, textAlt, textGray400, textGray600, textPrim, textWhite, semanticActivate } from '@/core/services/colours.service'\r\nimport router from '@/router'\r\nimport FormatService from '../services/format.service'\r\n\r\nexport const chartTypes = {\r\n bar: 'column',\r\n line: 'spline',\r\n pie: 'pie',\r\n LINE: 'spline',\r\n PIE: 'pie',\r\n BAR: 'column',\r\n 'H-BAR': 'column',\r\n BARXLINE: 'BARXLINE'\r\n\r\n}\r\n// const columnCharts = [chartTypes.bar, chartTypes['H-BAR'], chartTypes.BAR]\r\n\r\nexport const lineCharts = [chartTypes.line, chartTypes.LINE]\r\n\r\nexport const pieCharts = [chartTypes.pie, chartTypes.PIE]\r\n\r\nexport abstract class BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'column' }\r\n protected get OverviewType (): string { return this.Type }\r\n protected get DefaultFont (): string { return 'Arial' }\r\n\r\n public createChart (content: Content, options: IGeneratorOption): Partial | Record | any {\r\n const data = this.createSeries(content, options.isDetailed)\r\n const yAxisOptions = this.createYOptions(data, content.categories, options.isDetailed)\r\n return {\r\n chart: {\r\n zoomType: options.isDetailed ? 'x' : null,\r\n panning: true,\r\n panKey: 'shift',\r\n resetZoomButton: {\r\n theme: {\r\n fill: semanticActivate,\r\n stroke: semanticActivate,\r\n style: {\r\n color: bg0,\r\n fontWeight: 'bold'\r\n },\r\n r: 5,\r\n states: {\r\n hover: {\r\n fill: '#afd2fc',\r\n stroke: '#afd2fc',\r\n style: {\r\n color: bg0\r\n }\r\n }\r\n }\r\n }\r\n },\r\n height: options.height,\r\n backgroundColor: 'transparent',\r\n style: {\r\n fontFamily: this.DefaultFont\r\n },\r\n margin: this.defineMargins(options.isDetailed, options.previewType)\r\n },\r\n lang: { noData: 'No Data Available' },\r\n noData: {\r\n style: {\r\n fontWeight: 'bold',\r\n fontSize: '15px',\r\n color: textAlt\r\n }\r\n },\r\n title: {\r\n text: options.isDetailed ? options.title : null,\r\n style: { color: textPrim, fontWeight: 'bold' },\r\n margin: 50\r\n },\r\n subtitle: {\r\n text: `${options.isDetailed ? options.description : ''}
${options.isDetailed && !pieCharts.includes(chartTypes[this.Type as keyof typeof chartTypes]) ? (document.ontouchstart === undefined ? 'Click and drag in the plot area to zoom in. Hold down shift key to pan.' : 'Pinch the chart to zoom in') : ''}`,\r\n style: { color: textAlt }\r\n },\r\n tooltip: this.tooltip(options.isDetailed),\r\n plotOptions: this.plotOptions(options.isDetailed, options.previewType),\r\n legend: this.chartLegend(options.isDetailed, options.previewType),\r\n dataLabels: { enabled: options.isDetailed },\r\n xAxis: this.xAxis(content.xAxis, options.isDetailed, options.isDetailed ? options.title : undefined),\r\n series: data,\r\n yAxis: yAxisOptions,\r\n credits: {\r\n enabled: false\r\n },\r\n exporting: this.exporting(options.isDetailed),\r\n navigation: this.navigation()\r\n }\r\n }\r\n\r\n public createGaugeFromKpi (title: string, value: string, unit: string, type: string, detailed: boolean): Partial {\r\n const gaugeOptions = {\r\n chart: {\r\n type: type === 'SOLID_GAUGE' ? 'solidgauge' : 'gauge',\r\n backgroundColor: 'transparent',\r\n height: type === 'SOLID_GAUGE' ? '125px' : '195px',\r\n margin: [0, 0, 0, 0]\r\n },\r\n title: false,\r\n pane: {\r\n startAngle: type === 'SOLID_GAUGE' ? 0 : -90,\r\n endAngle: type === 'SOLID_GAUGE' ? 360 : 90,\r\n background: {\r\n backgroundColor: `${ColoursService.getColour(title)}4D`,\r\n innerRadius: type === 'SOLID_GAUGE' ? '60%' : '95%',\r\n outerRadius: '100%',\r\n shape: type === 'SOLID_GAUGE' ? 'circle' : 'arc',\r\n borderWidth: 0\r\n }\r\n },\r\n exporting: { enabled: false },\r\n tooltip: this.tooltip(detailed, true),\r\n plotOptions: {\r\n dataLabels: {\r\n allowOverlap: true\r\n },\r\n solidgauge: {\r\n dataLabels: {\r\n y: -16,\r\n x: 0,\r\n style: { fontSize: '16px', color: textAlt },\r\n z: 6\r\n },\r\n linecap: 'round',\r\n stickyTracking: false,\r\n rounded: true\r\n },\r\n gauge: {\r\n dial: {\r\n backgroundColor: '#fff',\r\n baseWidth: 4,\r\n baseLength: '0%',\r\n rearLength: '0%'\r\n },\r\n pivot: {\r\n backgroundColor: '#fff',\r\n radius: 1\r\n },\r\n dataLabels: {\r\n y: 10,\r\n x: 0,\r\n style: { fontSize: '12px', color: textAlt },\r\n z: 6\r\n }\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: type === 'SOLID_GAUGE' ? 100 : 20,\r\n title: {\r\n text: type === 'SOLID_GAUGE' ? '' : type === 'GAUGE' ? 'Kn' : unit,\r\n y: 1,\r\n style: { fontSize: '10px', color: textAlt, fontWeight: 'bold' }\r\n },\r\n stops: type === 'SOLID_GAUGE'\r\n ? undefined\r\n : [\r\n [0.33, '#B9E7E2'],\r\n [0.66, '#339C8F'],\r\n [1.0, '#22685F']\r\n ],\r\n lineWidth: 0,\r\n tickWidth: type === 'SOLID_GAUGE' ? 0 : 1,\r\n minorTickWidth: type === 'SOLID_GAUGE' ? 0 : 1,\r\n minorTickInterval: type === 'SOLID_GAUGE' ? null : 5,\r\n tickAmount: 0,\r\n labels: {\r\n enabled: false\r\n },\r\n plotBands: type === 'SOLID_GAUGE'\r\n ? { enabled: false }\r\n : [{\r\n from: 0,\r\n to: 6.6,\r\n color: '#B9E7E2',\r\n thickness: '10%'\r\n }, {\r\n from: 6.6,\r\n to: 13.2,\r\n color: '#339C8F',\r\n thickness: '10%'\r\n }, {\r\n from: 13.1,\r\n to: 20,\r\n color: '#22685F',\r\n thickness: '10%'\r\n }]\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n series: [{\r\n name: title,\r\n data: [{ color: ColoursService.getColour(title), y: parseFloat(value) }],\r\n dataLabels: {\r\n format: unit ? `{y} ${unit}` : '{y}',\r\n borderWidth: 0,\r\n color: textPrim,\r\n style: {\r\n fontFamily: this.DefaultFont,\r\n textOutline: 'none'\r\n },\r\n enabled: type === 'SOLID_GAUGE'\r\n },\r\n tooltip: {\r\n valueSuffix: ` ${unit}`\r\n }\r\n }]\r\n }\r\n return gaugeOptions\r\n }\r\n\r\n protected createSeries (content: Content, detailed?: boolean): Partial[] {\r\n const series = []\r\n const finalType = detailed ? this.Type : this.OverviewType\r\n let categoryIndex = 0\r\n for (const category of content.categories) {\r\n for (const serie of category.series) {\r\n const values: any[] = []\r\n for (const label of content.xAxis) {\r\n const value = serie.values.find(v => v.label === label)?.value\r\n values.push({\r\n y: value ? parseFloat(value) : null\r\n })\r\n }\r\n const color = ColoursService.getColour(serie.name ?? '')\r\n series.push({\r\n name: serie.name ?? '',\r\n type: finalType,\r\n data: values,\r\n yAxis: categoryIndex,\r\n color,\r\n borderColor: ColoursService.colourLightness(color, 1.8),\r\n borderWidth: 1\r\n })\r\n }\r\n categoryIndex++\r\n }\r\n return series\r\n }\r\n\r\n protected getColor (label: string): string {\r\n return ColoursService.getColour(label)\r\n }\r\n\r\n protected tooltip (detailed: boolean, gauge = false): TooltipOptions {\r\n return {\r\n enabled: true,\r\n crosshairs: !gauge,\r\n shared: true,\r\n backgroundColor: bg0,\r\n borderRadius: 10,\r\n borderWidth: 1,\r\n borderColor: textGray600,\r\n padding: detailed ? 15 : !detailed && router.currentRoute.value.name !== 'assetDetail' ? 5 : 1,\r\n style: { color: textWhite, fontFamily: this.DefaultFont, fontSize: detailed ? '12px' : '12px' },\r\n useHTML: true,\r\n headerFormat: this.tooltipHeader(detailed),\r\n pointFormat: this.tooltipPoint(detailed),\r\n footerFormat: ''\r\n }\r\n }\r\n\r\n protected tooltipHeader (detailed: boolean, gauge = false): string {\r\n return ``\r\n }\r\n\r\n protected tooltipPoint (detailed: boolean, gauge = false): string {\r\n return `` +\r\n ''\r\n }\r\n\r\n // eslint-disable-next-line\r\n protected plotOptions (detailed: boolean, previewType?: string): PlotOptions {\r\n return {\r\n series: {\r\n dataSorting: {\r\n matchByName: false,\r\n enabled: false\r\n },\r\n enableMouseTracking: true,\r\n fillOpacity: 0.2,\r\n stacking: '',\r\n opacity: 1,\r\n marker: { enabled: false, fillColor: 'transparent', symbol: 'circle', lineWidth: 2, lineColor: undefined },\r\n states: {\r\n inactive: { opacity: 1 }\r\n },\r\n pointPlacement: detailed ? undefined : 'on'\r\n }\r\n }\r\n }\r\n\r\n protected chartLegend (detailed: boolean, previewType?: string): LegendOptions {\r\n const genericLegend = {\r\n enabled: (detailed && previewType !== 'ChartAndKPI'),\r\n itemHoverStyle: { color: textWhite },\r\n itemStyle: { color: textPrim, lineHeight: !detailed ? '15px' : '15px', fontFamily: this.DefaultFont, fontSize: detailed ? '12px' : '10px', fontWeight: !detailed ? 'lighter' : 'bold' },\r\n maxHeight: detailed ? 60 : 40,\r\n itemWidth: detailed ? 210 : undefined\r\n }\r\n return genericLegend\r\n }\r\n\r\n // eslint-disable-next-line\r\n protected xAxis (XAxis: string[], detailed: boolean, title?: string): xAxisOptions | any {\r\n const noPadding =\r\n detailed\r\n ? {}\r\n : {\r\n minPadding: 0,\r\n maxPadding: 0\r\n }\r\n\r\n const formattedXAxis = XAxis.map((value) => FormatService.formatDate(value))\r\n\r\n return {\r\n ...noPadding,\r\n categories: !pieCharts.includes(chartTypes[this.Type as keyof typeof chartTypes]) ? formattedXAxis : XAxis,\r\n minorGridLineWidth: 0,\r\n gridLineWidth: 0,\r\n lineWidth: detailed ? 1 : 0,\r\n tickPixelInterval: 20,\r\n labels: {\r\n allowOverlap: true,\r\n enabled: detailed,\r\n style: { color: textAlt }\r\n },\r\n crosshair: { width: 1 }\r\n }\r\n }\r\n\r\n protected createYOptions (series: Partial[], categories: Category[], detailed: boolean): Partial[] {\r\n const yAxisOptions = []\r\n let yAxisOptionIndex = 0\r\n for (const serie of series) {\r\n const yAxisOption = {\r\n title: { enabled: false },\r\n lineWidth: 0,\r\n minorGridLineWidth: detailed ? 1 : 0,\r\n gridLineWidth: (detailed && categories.length > 1) || (detailed && categories.length === 1 && yAxisOptionIndex === 0) ? 1 : 0,\r\n gridLineColor: 'rgba(255,255,255,0.2)',\r\n labels: {\r\n enabled: detailed && categories.length > 0,\r\n format: categories.length > 1 ? `{value} ${serie.name}` : '',\r\n showLastLabel: true,\r\n style: { color: textAlt },\r\n autoRotation: true\r\n },\r\n type: serie.type,\r\n opposite: categories.length > 1 ? yAxisOptionIndex !== 0 : false,\r\n yAxis: (categories.length === 1) ? 0 : yAxisOptionIndex,\r\n stackedLabels: {\r\n enabled: true\r\n },\r\n min: 0,\r\n minRange: 2\r\n }\r\n yAxisOptions.push(yAxisOption)\r\n yAxisOptionIndex++\r\n }\r\n return yAxisOptions\r\n }\r\n\r\n protected exporting (detailed: boolean): ExportingOptions {\r\n const buttonList = ['viewFullscreen', 'separator', 'downloadPNG', 'downloadJPEG', 'downloadPDF']\r\n return {\r\n enabled: detailed,\r\n style: { fontFamily: this.DefaultFont },\r\n chartOptions: {\r\n chart: {\r\n backgroundColor: bg2,\r\n plotBackgroundImage: ''\r\n }\r\n },\r\n buttons: {\r\n contextButton: {\r\n menuItems: buttonList\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected navigation (): NavigationOptions {\r\n return {\r\n buttonOptions: {\r\n theme: {\r\n backgroundColor: 'transparent',\r\n fill: 'transparent',\r\n states: {\r\n hover: {\r\n stroke: textGray400,\r\n fill: 'transparent'\r\n },\r\n select: {\r\n stroke: textGray400,\r\n fill: 'transparent'\r\n }\r\n },\r\n fontFamily: this.DefaultFont\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected defineMargins (detailed: boolean, previewType?: string): number[] | undefined {\r\n return (detailed || (!detailed && pieCharts.includes(chartTypes[this.Type as keyof typeof chartTypes]) && previewType !== 'ChartAndKPI'))\r\n ? undefined\r\n : [0, 0, 0, 0]\r\n }\r\n}\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { IChartGenerator } from '@/core/charts/ichartgenerator.model'\r\nimport { PlotOptions } from '@/core/model/chart.model'\r\n\r\nclass BarChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'column' }\r\n\r\n protected plotOptions (detailed: boolean, previewType?: string) : PlotOptions {\r\n const model = super.plotOptions(detailed, previewType)\r\n if (model.series) {\r\n model.series.stacking = undefined\r\n }\r\n return model\r\n }\r\n}\r\n\r\nexport default new BarChart()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { IChartGenerator } from '@/core/charts/ichartgenerator.model'\r\nimport { PlotOptions } from '@/core/model/chart.model'\r\n\r\nclass UnstackBarChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'column' }\r\n\r\n protected plotOptions (detailed: boolean, previewType?: string) : PlotOptions {\r\n const model = super.plotOptions(detailed, previewType)\r\n if (model.series) {\r\n model.series.stacking = undefined\r\n }\r\n return model\r\n }\r\n}\r\n\r\nexport default new UnstackBarChart()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { Content } from '@/core/charts/content.model'\r\nimport { IChartGenerator } from '@/core/charts/ichartgenerator.model'\r\nimport { SerieOptions } from '@/core/model/chart.model'\r\nimport ColoursService from '@/core/services/colours.service'\r\n\r\nclass BarAndLineChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return '' }\r\n\r\n /**\r\n * @override\r\n */\r\n protected createSeries (content: Content) : Partial[] {\r\n const series = []\r\n let categoryIndex = 0\r\n for (const category of content.categories) {\r\n for (const serie of category.series) {\r\n const values: number[] = []\r\n for (const label of content.xAxis) {\r\n values.push(parseFloat(serie.values.find(v => v.label === label)?.value ?? '0'))\r\n }\r\n const color = ColoursService.getColour(serie.name ?? '')\r\n series.push({\r\n name: serie.name ?? '',\r\n type: categoryIndex === 0 ? 'column' : 'spline',\r\n data: values,\r\n yAxis: categoryIndex,\r\n color\r\n })\r\n }\r\n categoryIndex++\r\n }\r\n return series\r\n }\r\n}\r\n\r\nexport default new BarAndLineChart()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { Category, Content } from '@/core/charts/content.model'\r\nimport { IChartGenerator, IGeneratorOption } from '@/core/charts/ichartgenerator.model'\r\nimport { ChartOptionsModel, PlotOptions, SerieOptions, yAxisOptions } from '@/core/model/chart.model'\r\n\r\nclass HorizontalBarChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'bar' }\r\n\r\n public createChart (content: Content, options: IGeneratorOption): Partial | Record {\r\n const model = super.createChart(content, options)\r\n if (model.chart) {\r\n model.chart.type = 'bar'\r\n }\r\n return model\r\n }\r\n\r\n // eslint-disable-next-line\r\n protected createYOptions (series: Partial[], categories: Category[], detailed: boolean): Partial[] {\r\n return [{\r\n min: 0\r\n }]\r\n }\r\n\r\n protected plotOptions (detailed: boolean, previewType?: string) : PlotOptions {\r\n const model = super.plotOptions(detailed, previewType)\r\n if (model.series) {\r\n model.series.stacking = 'normal'\r\n }\r\n return model\r\n }\r\n}\r\n\r\nexport default new HorizontalBarChart()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { IChartGenerator } from '@/core/charts/ichartgenerator.model'\r\n\r\nclass LineChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'spline' }\r\n protected get OverviewType (): string { return 'areaspline' }\r\n}\r\n\r\nexport default new LineChart()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { Content } from '@/core/charts/content.model'\r\nimport { IChartGenerator, IGeneratorOption } from '@/core/charts/ichartgenerator.model'\r\nimport { ChartOptionsModel, LegendOptions, PlotOptions, SerieData, SerieOptions } from '@/core/model/chart.model'\r\nimport { textAlt } from '@/core/services/colours.service'\r\n\r\nclass PieChart extends BaseChartGenerator implements IChartGenerator {\r\n protected get Type (): string { return 'pie' }\r\n\r\n public createChart (content: Content, options: IGeneratorOption): Partial | Record {\r\n const model = super.createChart(content, options)\r\n return model\r\n }\r\n\r\n protected createSeries (content: Content) : Partial[] {\r\n const series = []\r\n // let categoryIndex = 0\r\n for (const category of content.categories) {\r\n for (const serie of category.series) {\r\n const values: SerieData[] = []\r\n for (const value of serie.values) {\r\n values.push({\r\n name: value.label,\r\n y: parseFloat(value.value ?? '0'),\r\n color: this.getColor(value.label)\r\n })\r\n }\r\n // const color = this.getColor(serie.name ?? '')\r\n series.push({\r\n name: serie.name ?? '',\r\n type: this.Type,\r\n data: values,\r\n borderColor: 'transparent', // ColoursService.colourLightness(color, 1.8),\r\n borderWidth: 2\r\n })\r\n }\r\n // categoryIndex++\r\n }\r\n return series\r\n }\r\n\r\n // eslint-disable-next-line\r\n protected plotOptions (detailed: boolean, previewType?: string): PlotOptions {\r\n return {\r\n series: {\r\n dataSorting: {\r\n matchByName: false,\r\n enabled: false\r\n },\r\n enableMouseTracking: true,\r\n fillOpacity: 0.2,\r\n stacking: 'normal',\r\n opacity: 1,\r\n marker: { enabled: false, fillColor: 'transparent', symbol: 'circle', lineWidth: 2, lineColor: undefined },\r\n states: {\r\n inactive: { opacity: 1 }\r\n },\r\n pointPlacement: 'on'\r\n },\r\n pie: {\r\n dataLabels: { enabled: false, color: textAlt, style: { textOutline: 'none' } },\r\n innerSize: '85%',\r\n showInLegend: true // detailed && previewType !== 'ChartAndKPI'\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @override\r\n */\r\n // eslint-disable-next-line\r\n protected tooltipHeader (detailed: boolean): string {\r\n return '
{point.key}
{series.name}
{point.y}
{point.key}{point.y}
'\r\n }\r\n\r\n /**\r\n * @override\r\n */\r\n // eslint-disable-next-line\r\n protected tooltipPoint (detailed: boolean): string {\r\n return ''\r\n }\r\n\r\n protected chartLegend (detailed: boolean, previewType?: string): LegendOptions {\r\n let model = super.chartLegend(detailed, previewType)\r\n if (previewType !== 'ChartAndKPI' && !detailed) {\r\n model.enabled = true\r\n model = {\r\n ...model,\r\n align: 'right',\r\n layout: 'vertical',\r\n verticalAlign: 'top',\r\n x: detailed ? -20 : 0,\r\n y: 0,\r\n floating: false,\r\n itemWidth: detailed ? undefined : 150,\r\n navigation: {\r\n enabled: detailed\r\n },\r\n // useHTML: true, //\r\n labelFormat: '{name} : {y}'\r\n }\r\n } else if (previewType !== 'ChartAndKPI' && detailed) {\r\n model = {\r\n ...model,\r\n layout: 'horizontal',\r\n itemWidth: 210,\r\n width: '100%'\r\n }\r\n }\r\n return model\r\n }\r\n}\r\n\r\nexport default new PieChart()\r\n","import { Content } from '@/core/charts/content.model'\r\nimport { IChartGenerator, IGeneratorOption } from '@/core/charts/ichartgenerator.model'\r\nimport { ChartOptionsModel } from '@/core/model/chart.model'\r\nimport { textAlt, textPrim } from '@/core/services/colours.service'\r\n\r\nclass UndefinedChartGenerator implements IChartGenerator {\r\n createChart (content: Content, options: IGeneratorOption): Partial | Record {\r\n return {\r\n chart: {\r\n height: options.height,\r\n backgroundColor: 'transparent',\r\n style: {\r\n fontFamily: 'Arial'\r\n }\r\n // margin: [0, 0, 0, 0]\r\n },\r\n lang: { noData: 'Invalid Chart' },\r\n noData: {\r\n style: {\r\n fontWeight: 'bold',\r\n fontSize: '15px',\r\n color: textAlt\r\n }\r\n },\r\n title: {\r\n text: options.isDetailed ? options.title : null,\r\n style: { color: textPrim, fontWeight: 'bold' },\r\n margin: 50\r\n },\r\n subtitle: {\r\n text: options.isDetailed ? options.description : null,\r\n style: { color: textAlt }\r\n },\r\n dataLabels: { enabled: options.isDetailed },\r\n series: [],\r\n credits: {\r\n enabled: false\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default new UndefinedChartGenerator()\r\n","import { BaseChartGenerator } from '@/core/charts/baseChart.service'\r\nimport { IChartGenerator } from '@/core/charts/ichartgenerator.model'\r\n\r\nclass GaugeChart extends BaseChartGenerator implements IChartGenerator {\r\n}\r\n\r\nexport default new GaugeChart()\r\n","import * as KpiManager from '@/core/managers/kpi.manager'\r\nimport { FilterFormatted } from '@/core/model/filter.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport { Preview } from '@/core/model/preview.model'\r\nimport { previewHandlingPropsData } from '@/core/services/preview.service'\r\nimport type { Ref } from 'vue'\r\n\r\nexport default class KpiService {\r\n public static handleDetailsKpi (\r\n kpiListRef: Ref,\r\n errorRef: Ref,\r\n props: previewHandlingPropsData,\r\n kpiDetailsRef: Ref,\r\n loadingRef: Ref,\r\n kpis: Preview[],\r\n filter?: FilterFormatted[]\r\n ): void {\r\n if (!kpiListRef.value.length) {\r\n kpiListRef.value = []\r\n }\r\n loadingRef.value = true\r\n\r\n for (const kpi of kpis) {\r\n KpiManager.Manager.detail(kpi.id, filter || [], Object.values(kpi.compatibleFilters))\r\n .then((response) => {\r\n loadingRef.value = false\r\n if (response.isError) {\r\n errorRef.value = response.Message\r\n } else {\r\n if (props.isPreview) {\r\n kpiDetailsRef.value = response.data as KpiModel\r\n } else {\r\n const value: KpiExtended = response.data as KpiModel\r\n value.title = kpi.label\r\n value.type = kpi.type\r\n value.description = kpi.description\r\n const index = kpiListRef.value.findIndex((v) => v.title === value.title)\r\n if (index === -1) {\r\n kpiListRef.value.push(value)\r\n } else {\r\n kpiListRef.value[index] = value\r\n }\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n errorRef.value = error.message\r\n loadingRef.value = false\r\n })\r\n }\r\n }\r\n\r\n public static handleKpi (\r\n kpiListRef: Ref,\r\n errorRef: Ref,\r\n props: previewHandlingPropsData,\r\n kpiDetailsRef: Ref,\r\n loadingRef: Ref,\r\n id: number,\r\n filter?: FilterFormatted[],\r\n compatibleFilters?: number[]\r\n ): void {\r\n KpiManager.Manager.detail(id, filter || [], compatibleFilters || [])\r\n .then((response) => {\r\n loadingRef.value = false\r\n if (response.isError) {\r\n errorRef.value = response.Message\r\n } else {\r\n if (props.isPreview) {\r\n kpiDetailsRef.value = response.data as KpiModel\r\n } else {\r\n kpiListRef.value.push(response.data as KpiModel)\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n errorRef.value = error.message\r\n loadingRef.value = false\r\n })\r\n }\r\n}\r\n","import { FiltersSettings } from '@/core/model/settings.model'\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport * as ChartManager from '@/core/managers/chart.manager'\r\nimport * as KpiManager from '@/core/managers/kpi.manager'\r\nimport { ChartModel, ChartOptionsModel } from '@/core/model/chart.model'\r\nimport { FilterFormatted } from '@/core/model/filter.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport { Preview } from '@/core/model/preview.model'\r\nimport BarChart from '@/core/charts/bar.chart.service'\r\nimport UnstackBarChart from '@/core/charts/unstack-bar.chart.service'\r\nimport BarAndLineChart from '@/core/charts/barxline.chart.service'\r\nimport HorizontalBarChart from '@/core/charts/horizontal-bar.chart.service'\r\nimport LineChart from '@/core/charts/line.chart.service'\r\nimport PieChart from '@/core/charts/pie.chart.service'\r\nimport UndefinedChart from '@/core/charts/undefined.chart.service'\r\nimport GaugeChart from '@/core/charts/gauge.chart.service'\r\nimport { IGeneratorOption } from '@/core/charts/ichartgenerator.model'\r\nimport { Content } from '@/core/charts/content.model'\r\nimport KpiService from '@/core/services/kpi.service'\r\nimport { ApiResult } from '@/core/services/request.service'\r\nimport router from '@/router'\r\nimport store from '@/store'\r\nimport Highcharts from 'highcharts'\r\nimport highchartsMore from 'highcharts/highcharts-more'\r\nimport solidGauge from 'highcharts/modules/solid-gauge'\r\nimport { computed, ComputedRef, PropType, Ref, ref } from 'vue'\r\nimport Tools from '@/core/services/tools'\r\nimport { previewHandlingPropsData } from '@/core/services/preview.service'\r\n\r\nhighchartsMore(Highcharts)\r\nsolidGauge(Highcharts)\r\n\r\nexport const previewHandlingProps = {\r\n id: Number,\r\n title: String,\r\n assetId: {\r\n type: Number,\r\n required: false\r\n },\r\n linkUrl: String,\r\n graphType: String,\r\n previewType: {\r\n type: String,\r\n validator: (value: string): boolean =>\r\n ['KPI', 'Chart', 'Custom', 'ChartAndKPI', 'None', 'Kpi'].includes(value)\r\n },\r\n previewInfos: [Object, String] as PropType,\r\n size: {\r\n validator: (value: number): boolean => [1, 2].includes(value),\r\n type: Number\r\n },\r\n description: String,\r\n isPreview: { type: Boolean, default: true },\r\n kpiTitle: String,\r\n period: String\r\n}\r\n\r\nexport default function previewHandling (\r\n props: previewHandlingPropsData,\r\n customDetails = '',\r\n error = '',\r\n graphDetails: ChartModel,\r\n loading = true,\r\n kpiDetails: KpiModel,\r\n detailed = true,\r\n kpiList: KpiExtended[],\r\n fleet?: boolean\r\n)\r\n:\r\n{\r\n customDetailsRef : Ref\r\n errorRef : Ref\r\n graphDetailsRef : Ref\r\n loadingRef : Ref\r\n kpiDetailsRef : Ref\r\n detailedRef : Ref\r\n kpiListRef : Ref\r\n handleDetailsKpi : (kpis: Preview[], filter?: FilterFormatted[] | undefined) => Promise\r\n handleKpi : (id: number, filter?: FilterFormatted[] | undefined, compatibleFilters?: number[] | undefined) => Promise\r\n handleChart : (id: number, filter?: FilterFormatted[] | undefined, compatibleFilters?: number[] | undefined) => void\r\n displayPreview : (period?: string, assetId?: number) => void\r\n chartOptions : ComputedRef | Record>\r\n kpiToGauge : (title: string, value: string, unit: string, type: string) => Partial\r\n} {\r\n const customDetailsRef = ref(customDetails)\r\n const errorRef = ref(error)\r\n const graphDetailsRef = ref(graphDetails)\r\n const loadingRef = ref(loading)\r\n const kpiDetailsRef = ref({ ...kpiDetails })\r\n const detailedRef = ref(detailed)\r\n const kpiListRef = ref(kpiList)\r\n\r\n const chartOptions = computed((): Partial | Record => {\r\n const height = detailedRef.value\r\n ? '430px'\r\n : !detailedRef.value && !Tools.isEmpty(kpiDetailsRef.value) && props.graphType !== 'PIE' && !fleet\r\n ? '87px'\r\n : !detailedRef.value && !Tools.isEmpty(kpiDetailsRef.value) && props.graphType !== 'PIE' && fleet\r\n ? '87px'\r\n : !detailedRef.value && !Tools.isEmpty(kpiDetailsRef.value) && props.graphType === 'PIE'\r\n ? '125px'\r\n : !detailedRef.value && router.currentRoute.value.name === 'assetDetail'\r\n ? '125px'\r\n : '125px'\r\n\r\n const options: IGeneratorOption = {\r\n height,\r\n isDetailed: detailedRef.value,\r\n title: props.title,\r\n description: props.description,\r\n previewType: props.previewType\r\n }\r\n if (props.graphType === 'BAR') {\r\n return BarChart.createChart(graphDetailsRef.value as Content, options)\r\n } else if (props.graphType === 'UNSTACK-BAR') {\r\n return UnstackBarChart.createChart(graphDetailsRef.value as Content, options)\r\n } else if (props.graphType === 'BARXLINE') {\r\n return BarAndLineChart.createChart(graphDetailsRef.value as Content, options)\r\n } else if (props.graphType === 'H-BAR') {\r\n return HorizontalBarChart.createChart(graphDetailsRef.value as Content, options)\r\n } else if (props.graphType === 'LINE') {\r\n return LineChart.createChart(graphDetailsRef.value as Content, options)\r\n } else if (props.graphType === 'PIE') {\r\n return PieChart.createChart(graphDetailsRef.value as Content, options)\r\n } else {\r\n return UndefinedChart.createChart(graphDetailsRef.value as Content, options)\r\n }\r\n })\r\n\r\n function displayPreview (period?: string, assetId?:number) {\r\n const filters: FilterFormatted[] = []\r\n const compatibleFilters: number[] = []\r\n if (router.currentRoute.value.name === 'assetDetail') {\r\n filters.push(...[\r\n { id: (store.state.filtersSettings as FiltersSettings).id_PeriodFilter as number, members: period || 'L1W' },\r\n { id: (store.state.filtersSettings as FiltersSettings).id_AssetFilter as number, members: [+(router.currentRoute.value.params.assetId as string)] }\r\n ])\r\n const compFilters = props.previewInfos ? ((props.previewInfos as Preview).compatibleFilters as number[]) : []\r\n if (compFilters && compFilters.length) compatibleFilters.push(...compFilters)\r\n } else if (router.currentRoute.value.name === 'map' && store.state && store.state.filtersSettings) {\r\n filters.push(...[\r\n { id: (store.state.filtersSettings as FiltersSettings).id_PeriodFilter as number, members: period || 'L1W' },\r\n { id: (store.state.filtersSettings as FiltersSettings).id_AssetFilter as number, members: [assetId as number] }\r\n ])\r\n const compFilters = props.previewInfos ? ((props.previewInfos as Preview).compatibleFilters as number[]) : []\r\n if (compFilters && compFilters.length) compatibleFilters.push(...compFilters)\r\n }\r\n\r\n if (props.previewType === 'Chart' && props.previewInfos) {\r\n handleChart((props.previewInfos as Preview).id, filters, compatibleFilters)\r\n } else if (props.previewType === 'KPI' && props.previewInfos) {\r\n handleKpi(\r\n (props.previewInfos as Preview).id\r\n ? (props.previewInfos as Preview).id\r\n : (props.id as number)\r\n , filters, compatibleFilters)\r\n } else if (\r\n (props.previewType === 'Chart' || props.previewType === 'Kpi') &&\r\n !props.previewInfos\r\n ) {\r\n loadingRef.value = false\r\n errorRef.value = 'No data available at the moment. Please try again later'\r\n } else if (props.previewType === 'Custom') {\r\n loadingRef.value = false\r\n customDetailsRef.value = props.previewInfos as string\r\n } else if (props.previewType === 'ChartAndKPI') {\r\n const promises: [\r\n Promise>,\r\n Promise>\r\n ] = [\r\n KpiManager.Manager.detail((props.previewInfos as Preview[])[1].id, filters, compatibleFilters),\r\n ChartManager.Manager.detail((props.previewInfos as Preview[])[0].id, filters, compatibleFilters)\r\n ]\r\n\r\n Promise.all(promises)\r\n .then((response) => {\r\n loadingRef.value = false\r\n if (response[0].isError) {\r\n errorRef.value = response[0].Message\r\n } else if (response[1].isError) {\r\n errorRef.value = response[1].Message\r\n } else {\r\n graphDetailsRef.value = response[1].data as ChartModel\r\n kpiDetailsRef.value = response[0].data as KpiModel\r\n }\r\n })\r\n .catch((error) => {\r\n loadingRef.value = false\r\n errorRef.value = error.message\r\n })\r\n } else {\r\n loadingRef.value = false\r\n }\r\n }\r\n\r\n function kpiToGauge (title: string, value: string, unit: string, type: string) {\r\n return GaugeChart.createGaugeFromKpi(title, value, unit, type, false)\r\n }\r\n\r\n function handleChart (id: number, filter?: FilterFormatted[], compatibleFilters?: number[]) {\r\n loadingRef.value = true\r\n ChartManager.Manager.detail(id, filter || [], compatibleFilters || [])\r\n .then((response) => {\r\n loadingRef.value = false\r\n if (response.isError) {\r\n errorRef.value = response.Message\r\n } else {\r\n graphDetailsRef.value = response.data as ChartModel\r\n }\r\n })\r\n .catch((error) => {\r\n errorRef.value = error.message\r\n loadingRef.value = false\r\n })\r\n }\r\n\r\n async function handleKpi (id: number, filter?: FilterFormatted[], compatibleFilters?: number[]): Promise {\r\n return KpiService.handleKpi(kpiListRef, errorRef, props, kpiDetailsRef, loadingRef, id, filter, compatibleFilters)\r\n }\r\n\r\n async function handleDetailsKpi (kpis: Preview[], filter?: FilterFormatted[]) {\r\n return KpiService.handleDetailsKpi(kpiListRef, errorRef, props, kpiDetailsRef, loadingRef, kpis, filter)\r\n }\r\n\r\n return {\r\n customDetailsRef,\r\n errorRef,\r\n graphDetailsRef,\r\n loadingRef,\r\n kpiDetailsRef,\r\n detailedRef,\r\n kpiListRef,\r\n handleDetailsKpi,\r\n handleKpi,\r\n handleChart,\r\n displayPreview,\r\n chartOptions,\r\n kpiToGauge\r\n }\r\n}\r\n","\r\nimport previewHandling, { previewHandlingProps } from '@/core/composables/preview.composable'\r\nimport { ChartModel } from '@/core/model/chart.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport store from '@/store'\r\nimport { Chart } from 'highcharts-vue'\r\nimport { defineComponent, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ServicesCardChart',\r\n components: {\r\n Highcharts: Chart\r\n },\r\n props: {\r\n ...previewHandlingProps,\r\n id: Number,\r\n title: String,\r\n description: String,\r\n buttonText: String,\r\n linkUrl: String,\r\n customDetails: String,\r\n graphType: String,\r\n compatibleFilters: Object\r\n },\r\n setup (props) {\r\n const prop = {\r\n id: props.id,\r\n title: props.title,\r\n buttonText: props.buttonText,\r\n linkUrl: props.linkUrl,\r\n graphType: props.graphType,\r\n previewType: props.previewType,\r\n previewInfos: props.previewInfos,\r\n size: props.size,\r\n description: props.description,\r\n isPreview: props.isPreview,\r\n kpiTitle: props.kpiTitle\r\n }\r\n const preview = previewHandling(\r\n prop,\r\n '',\r\n '',\r\n {} as ChartModel,\r\n true,\r\n {} as KpiModel,\r\n true,\r\n [] as KpiExtended[]\r\n )\r\n const loading = ref(preview.loadingRef)\r\n const error = ref(preview.errorRef)\r\n const detailed = ref(preview.detailedRef)\r\n const chartOptions = preview.chartOptions\r\n\r\n return {\r\n loading,\r\n preview,\r\n error,\r\n detailed,\r\n chartOptions\r\n }\r\n },\r\n computed: {\r\n filters () {\r\n return store.state.filters\r\n }\r\n },\r\n watch: {\r\n filters: {\r\n immediate: true,\r\n deep: true,\r\n handler (currentValue, oldValue) {\r\n if (oldValue && JSON.stringify(oldValue) !== JSON.stringify(currentValue) && Object.keys(currentValue).length && this.compatibleFilters) {\r\n this.preview.handleChart(\r\n this.id as number,\r\n this.filters,\r\n Object.values(this.compatibleFilters)\r\n )\r\n }\r\n\r\n // }\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServicesCardChart.vue?vue&type=template&id=2ceb4d43&scoped=true&ts=true\"\nimport script from \"./ServicesCardChart.vue?vue&type=script&lang=ts\"\nexport * from \"./ServicesCardChart.vue?vue&type=script&lang=ts\"\n\nimport \"./ServicesCardChart.vue?vue&type=style&index=0&id=2ceb4d43&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2ceb4d43\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3093fad4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"relative\",\n ref: \"categoryWrapper\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"flex gap-4 w-full custom-scrollbar overflow-x-auto pb-2\"\n}\nconst _hoisted_3 = {\n key: 2,\n class: \"absolute w-full h-full z-[10] bottom-0 hidden md:block pointer-events-none\",\n ref: \"arrows\"\n}\nconst _hoisted_4 = {\n class: \"h-full w-[120px] absolute arrow-shadow-1 hidden flex-col justify-center left-0 lg:-left-6 items-start\",\n ref: \"arrowRight\"\n}\nconst _hoisted_5 = {\n class: \"h-full w-[120px] absolute arrow-shadow-2 flex flex-col justify-center right-0 lg:-right-6 items-end\",\n ref: \"arrowLeft\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ServicesCardKpi = _resolveComponent(\"ServicesCardKpi\")!\n const _component_RightArrowIcon = _resolveComponent(\"RightArrowIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.list.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"flex gap-4 w-[calc(100%+2.5rem)] -ml-5 md:ml-0 md:w-auto overflow-x-scroll overflow-y-hidden no-scroll relative\",\n ref: \"category\",\n onScroll: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.showOrHideArrows && _ctx.showOrHideArrows(...args)))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.list, (kpi, i) => {\n return (_openBlock(), _createBlock(_component_ServicesCardKpi, {\n key: i,\n loading: _ctx.loading,\n label: kpi.label,\n title: kpi.title,\n value: kpi.value,\n unit: kpi.unit,\n type: kpi.type,\n description: kpi.description\n }, null, 8, [\"loading\", \"label\", \"title\", \"value\", \"unit\", \"type\", \"description\"]))\n }), 128))\n ], 544))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kpis, (kpi, i) => {\n return (_openBlock(), _createBlock(_component_ServicesCardKpi, {\n key: i,\n loading: _ctx.loading\n }, null, 8, [\"loading\"]))\n }), 128))\n ])),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"rounded-full p-2.5 bg-bg-2 rotate-180 w-fit pointer-events-auto\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.scrollCategory('right')))\n }, [\n _createVNode(_component_RightArrowIcon, { class: \"w-5 h-5 stroke-text-prim\" })\n ])\n ], 512),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n class: \"rounded-full p-2.5 bg-bg-2 w-fit pointer-events-auto\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.scrollCategory('left')))\n }, [\n _createVNode(_component_RightArrowIcon, { class: \"w-5 h-5 stroke-text-prim\" })\n ])\n ], 512)\n ], 512))\n : _createCommentVNode(\"\", true)\n ], 512))\n}","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8c4a911c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex mr-2 w-5 flex-col h-7 justify-center\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 0,\n class: \"body-alt body-2\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n class: _normalizeClass([\"min-h-24 flex relative h-[102px] p-4 w-fit min-w-[14rem]\", { 'min-w-[13rem]': _ctx.loading }]),\n style: {\"min-width\":\"14rem\"}\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"w-3 h-3 rounded-full\", { 'skeleton-dot': _ctx.loading }]),\n style: _normalizeStyle(\r\n !_ctx.loading\r\n ? `background-color: ${_ctx.getKpiColour(_ctx.title ? _ctx.title : _ctx.label)}`\r\n : ''\r\n )\n }, null, 6)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass({ 'w-5/6': _ctx.loading })\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"body body-2 text-ellipsis relative table-cell align-middle h-7\", [{ 'skeleton w-4/5': _ctx.loading }]])\n }, [\n (\r\n !_ctx.loading && (_ctx.title|| _ctx.label)\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.title || _ctx.label), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"h4\", {\n class: _normalizeClass([\"my-1.5\", { 'skeleton w-4/5': _ctx.loading }])\n }, [\n (!_ctx.loading && _ctx.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.formatNumber(+_ctx.value)) + \" \" + _toDisplayString(_ctx.unit), 1))\n : _createCommentVNode(\"\", true),\n (!_ctx.loading && !_ctx.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \"Unavailable\"))\n : _createCommentVNode(\"\", true)\n ], 2),\n (!_ctx.loading && _ctx.description)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.description), 1))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 1\n }, 8, [\"class\"]))\n}","\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport FormatService from '@/core/services/format.service'\r\nimport { defineComponent, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ServicesCardKpi',\r\n components: { GenericCardShell },\r\n props: {\r\n loading: Boolean,\r\n type: String,\r\n label: String,\r\n title: String,\r\n value: String,\r\n unit: String,\r\n description: String\r\n },\r\n setup () {\r\n const isHovering = ref(false)\r\n const hoverTitle = () => {\r\n isHovering.value = !isHovering.value\r\n }\r\n const getKpiColour = (label: string) => {\r\n return ColoursService.getColour(label)\r\n }\r\n\r\n const formatNumber = (num: number) => { return FormatService.formatNumber(num) }\r\n\r\n return { isHovering, hoverTitle, getKpiColour, formatNumber }\r\n }\r\n})\r\n","import { render } from \"./ServicesCardKpi.vue?vue&type=template&id=8c4a911c&scoped=true&ts=true\"\nimport script from \"./ServicesCardKpi.vue?vue&type=script&lang=ts\"\nexport * from \"./ServicesCardKpi.vue?vue&type=script&lang=ts\"\n\nimport \"./ServicesCardKpi.vue?vue&type=style&index=0&id=8c4a911c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8c4a911c\"]])\n\nexport default __exports__","\r\nimport ServicesCardKpi from '@/components/cards/ServicesCardKpi.vue'\r\nimport previewHandling, {\r\n previewHandlingProps\r\n} from '@/core/composables/preview.composable'\r\nimport { ChartModel } from '@/core/model/chart.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport { Preview } from '@/core/model/preview.model'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport Tools from '@/core/services/tools'\r\nimport { defineComponent, PropType, ref } from 'vue'\r\nimport RightArrowIcon from '@/components/icons/RightArrowIcon.vue'\r\n\r\ninterface KpiListItem {\r\n value: number;\r\n label: string;\r\n unit: string;\r\n title?: string;\r\n type?: string;\r\n description?: string;\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'ServicesCardKpiShell',\r\n props: {\r\n ...previewHandlingProps,\r\n id: Number,\r\n title: String,\r\n type: String,\r\n kpis: Array as PropType\r\n },\r\n\r\n setup (props) {\r\n const prop = {\r\n id: props.id,\r\n title: props.title,\r\n linkUrl: props.linkUrl,\r\n graphType: props.graphType,\r\n previewType: props.previewType,\r\n previewInfos: props.previewInfos,\r\n size: props.size,\r\n description: props.description,\r\n isPreview: props.isPreview,\r\n kpiTitle: props.kpiTitle\r\n }\r\n const preview = previewHandling(\r\n prop,\r\n '',\r\n '',\r\n {} as ChartModel,\r\n true,\r\n {} as KpiModel,\r\n true,\r\n [] as KpiExtended[]\r\n )\r\n const loading = ref(preview.loadingRef)\r\n const error = ref(preview.errorRef)\r\n const detailed = ref(preview.detailedRef)\r\n const chartOptions = preview.chartOptions\r\n const kpiDetails = ref(preview.kpiDetailsRef)\r\n const kpiList = ref(preview.kpiListRef)\r\n\r\n return {\r\n loading,\r\n preview,\r\n error,\r\n kpiDetails,\r\n detailed,\r\n chartOptions,\r\n kpiList\r\n }\r\n },\r\n components: {\r\n ServicesCardKpi,\r\n RightArrowIcon\r\n },\r\n methods: {\r\n getKpiColour (label: string) {\r\n return ColoursService.getColour(label)\r\n },\r\n changeLoaderState () {\r\n this.loading = false\r\n },\r\n displayArrowWrapper () {\r\n const category = this.$refs.category as HTMLElement\r\n const arrows = this.$refs.arrows as HTMLElement\r\n if (arrows && category) {\r\n if (\r\n category.scrollWidth <=\r\n (this.$refs.categoryWrapper as HTMLElement).offsetWidth\r\n ) {\r\n arrows.classList.remove('hidden', 'md:block')\r\n arrows.classList.add('hidden', 'md:hidden')\r\n } else {\r\n arrows.classList.remove('hidden', 'md:hidden')\r\n arrows.classList.add('hidden', 'md:block')\r\n }\r\n }\r\n },\r\n scrollCategory (direction: 'right' | 'left') {\r\n const category = this.$refs.category as HTMLElement\r\n if (category) {\r\n if (direction === 'left') {\r\n category.scrollLeft += 100\r\n } else {\r\n category.scrollLeft -= 100\r\n }\r\n }\r\n },\r\n\r\n showOrHideArrows () {\r\n const category = this.$refs.category as HTMLElement\r\n const arrowLeft = this.$refs.arrowLeft as HTMLElement\r\n const arrowRight = this.$refs.arrowRight as HTMLElement\r\n if (category && arrowLeft && arrowRight) {\r\n if (category.scrollLeft > 0) {\r\n arrowRight.classList.remove('hidden')\r\n arrowRight.classList.add('flex')\r\n } else {\r\n arrowRight.classList.remove('flex')\r\n arrowRight.classList.add('hidden')\r\n }\r\n if (\r\n category.scrollWidth - category.offsetWidth <=\r\n category.scrollLeft\r\n ) {\r\n arrowLeft.classList.remove('flex')\r\n arrowLeft.classList.add('hidden')\r\n } else {\r\n arrowLeft.classList.remove('hidden')\r\n arrowLeft.classList.add('flex')\r\n }\r\n }\r\n }\r\n },\r\n computed: {\r\n kpiColour (): string {\r\n return ColoursService.getColour(this.title as string)\r\n },\r\n details (): KpiModel {\r\n return this.kpiDetails\r\n },\r\n filters () {\r\n return this.$store.state.filters\r\n },\r\n list () {\r\n const list: KpiListItem[][] = []\r\n for (const items of this.kpiList) {\r\n if (!list.includes(items.kpis)) {\r\n if (items.type !== 'MULTI') {\r\n for (const kpi of items.kpis as unknown as KpiExtended[]) {\r\n kpi.title = items.title\r\n kpi.type = items.type\r\n kpi.description = items.description\r\n }\r\n }\r\n list.push(items.kpis)\r\n }\r\n }\r\n\r\n const flattenedList = Tools.flattenArray(list)\r\n if (Object.keys(this.kpiList).length > 0) {\r\n this.changeLoaderState()\r\n }\r\n const kpiKeys:string[] = []\r\n if (this.kpis === undefined) throw new Error('No kpis to process.')\r\n for (const kpi of this.kpis) {\r\n kpiKeys.push(kpi.label)\r\n }\r\n\r\n const sortArray = flattenedList.sort((a, b) => {\r\n return kpiKeys.indexOf(a.label) - kpiKeys.indexOf(b.label)\r\n })\r\n\r\n return sortArray\r\n }\r\n },\r\n watch: {\r\n filters: {\r\n immediate: true,\r\n deep: true,\r\n handler (currentValue, oldValue) {\r\n if (oldValue && JSON.stringify(oldValue) !== JSON.stringify(currentValue) && Object.keys(currentValue).length) {\r\n this.preview.handleDetailsKpi(this.kpis as Preview[], currentValue)\r\n }\r\n }\r\n },\r\n list: {\r\n immediate: true,\r\n deep: true,\r\n handler () {\r\n if (this.list.length) {\r\n this.$nextTick(() => {\r\n this.displayArrowWrapper()\r\n })\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServicesCardKpiShell.vue?vue&type=template&id=3093fad4&scoped=true&ts=true\"\nimport script from \"./ServicesCardKpiShell.vue?vue&type=script&lang=ts\"\nexport * from \"./ServicesCardKpiShell.vue?vue&type=script&lang=ts\"\n\nimport \"./ServicesCardKpiShell.vue?vue&type=style&index=0&id=3093fad4&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3093fad4\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, normalizeStyle as _normalizeStyle, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0b219f31\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col h-full relative p-4 pb-0\" }\nconst _hoisted_2 = { class: \"flex items-center mb-1.5\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = {\n key: 0,\n class: \"h-full w-full\"\n}\nconst _hoisted_5 = {\n key: 0,\n class: \"flex w-full h-full\"\n}\nconst _hoisted_6 = { class: \"text-left w-full h-full relative\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, [\n /*#__PURE__*/_createElementVNode(\"h3\", null, \"--\")\n], -1))\nconst _hoisted_8 = { class: \"body body-2 body-alt whitespace-nowrap\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"relative\"\n}\nconst _hoisted_10 = {\n key: 1,\n class: \"body body-2 body-alt block\",\n style: {\"font-family\":\"'arial'\"}\n}\nconst _hoisted_11 = { class: \"flex items-center\" }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 1 }\nconst _hoisted_14 = { class: \"body body-1\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"ml-3 !font-bold\"\n}\nconst _hoisted_16 = {\n key: 1,\n class: \"!text-text-alt\"\n}\nconst _hoisted_17 = {\n key: 2,\n class: \"w-3/5 h-full\"\n}\nconst _hoisted_18 = { class: \"relative\" }\nconst _hoisted_19 = {\n key: 2,\n class: \"h-full w-full flex customHtmlPreview\"\n}\nconst _hoisted_20 = [\"innerHTML\"]\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h-full w-full flex flex-col justify-between\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"w-full\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", null, [\n /*#__PURE__*/_createElementVNode(\"h3\", { class: \"skeleton-kpi\" })\n ]),\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"body body-2 body-alt skeleton-kpi-title\" })\n ])\n ])\n], -1))\nconst _hoisted_23 = [\n _hoisted_22\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_RightArrowIcon = _resolveComponent(\"RightArrowIcon\")!\n const _component_AnalyticsIcon = _resolveComponent(\"AnalyticsIcon\")!\n const _component_Highcharts = _resolveComponent(\"Highcharts\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"body body-1 w-4/5 !font-bold overflow-hidden whitespace-nowrap max-w-5/6 text-ellipsis\", { skeleton: _ctx.loading }])\n }, [\n (_ctx.title && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.title), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createVNode(_component_RightArrowIcon, { class: \"w-6 h-6 ml-6 fill-text-alt stroke-text-alt\" })\n ]),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (!_ctx.error && _ctx.previewType === 'None')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_AnalyticsIcon, { class: \"h-20 w-20 absolute top-4 right-0 fill-bg-3\" }),\n _createElementVNode(\"span\", null, [\n _hoisted_7,\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(\"analytics.noPreview\")), 1)\n ])\n ])\n ])\n ]))\n : (!_ctx.error && _ctx.previewType !== 'None' && _ctx.previewType !== 'Custom')\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"h-full w-full flex\", [\r\n _ctx.graphType === 'PIE' ||\r\n _ctx.previewInfos.type === 'GAUGE' ||\r\n _ctx.previewInfos.type === 'SOLID_GAUGE'\r\n ? 'flex-row'\r\n : 'flex-col',\r\n _ctx.previewType === 'ChartAndKPI' || _ctx.previewInfos.type === 'SOLID_GAUGE'\r\n ? 'justify-between flex-row-reverse'\r\n : '',\r\n ]])\n }, [\n (\r\n (_ctx.previewType === 'KPI' || _ctx.previewType === 'ChartAndKPI') &&\r\n !_ctx.loading &&\r\n _ctx.kpiDetails\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(\r\n _ctx.previewInfos.type === 'GAUGE' ||\r\n _ctx.previewInfos.type === 'SOLID_GAUGE'\r\n ? 'w-2/5'\r\n : _ctx.graphType !== 'PIE' || _ctx.loading\r\n ? 'w-full'\r\n : _ctx.graphType === 'PIE' && _ctx.previewType === 'Chart'\r\n ? 'w-0'\r\n : _ctx.kpiDetails.kpis && _ctx.kpiDetails.kpis.length > 1\r\n ? 'w-2/5 flex flex-col justify-center gap-2'\r\n : 'w-2/5'\r\n )\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kpiDetails.kpis, (kpi, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n (\r\n _ctx.previewInfos.type === 'SOLID_GAUGE' &&\r\n _ctx.previewType === 'ChartAndKPI'\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(_component_Highcharts, {\n options: \r\n _ctx.kpiToGauge(_ctx.kpiTitle, kpi.value ? kpi.value : 0, kpi.unit, _ctx.previewInfos.type)\r\n ,\n class: \"relative\"\n }, null, 8, [\"options\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n (\r\n _ctx.graphType === 'PIE' ||\r\n ((_ctx.previewInfos.type === 'SOLID_GAUGE' || _ctx.previewInfos.type === 'GAUGE')&&\r\n _ctx.previewType === 'KPI')\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"h-2 w-2 rounded-full mr-1\",\n style: _normalizeStyle(`background-color: ${_ctx.getKpiColour(\r\n kpi.label || _ctx.kpiTitle || _ctx.previewInfos.label\r\n )}; min-width: 0.5rem`)\n }, null, 4))\n : _createCommentVNode(\"\", true),\n (_openBlock(), _createBlock(_resolveDynamicComponent(\r\n _ctx.graphType === 'PIE' ||\r\n ((_ctx.previewInfos.type === 'SOLID_GAUGE' || _ctx.previewInfos.type === 'GAUGE') &&\r\n _ctx.previewType === 'KPI')\r\n ? 'div'\r\n : 'h3'\r\n ), {\n class: \"truncate\",\n title: kpi.label || _ctx.kpiTitle\n }, {\n default: _withCtx(() => [\n (\r\n _ctx.graphType === 'PIE' ||\r\n ((_ctx.previewInfos.type === 'SOLID_GAUGE' || _ctx.previewInfos.type === 'GAUGE') &&\r\n _ctx.previewType === 'KPI')\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, _toDisplayString(kpi.label || _ctx.kpiTitle || _ctx.previewInfos.label), 1))\n : (_ctx.graphType !== 'PIE')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_13, _toDisplayString(_ctx.formatNumber(+kpi.value)) + \" \" + _toDisplayString(kpi.unit), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"title\"]))\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_14, [\n (\r\n (_ctx.previewInfos.type !== 'SOLID_GAUGE' &&\r\n _ctx.graphType === 'PIE') ||\r\n ((_ctx.previewInfos.type === 'SOLID_GAUGE' || _ctx.previewInfos.type === 'GAUGE') &&\r\n _ctx.previewType === 'KPI')\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, _toDisplayString(_ctx.formatNumber(+kpi.value)) + \" \" + _toDisplayString(kpi.unit), 1))\n : (\r\n _ctx.previewInfos.type !== 'SOLID_GAUGE' && _ctx.graphType !== 'PIE'\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, _toDisplayString(kpi.label || _ctx.kpiTitle), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ], 2))\n : _createCommentVNode(\"\", true),\n (_ctx.graphType && !_ctx.loading && !_ctx.error && _ctx.title !== 'Transit')\n ? (_openBlock(), _createBlock(_component_Highcharts, {\n key: 1,\n options: _ctx.chartOptions,\n class: _normalizeClass([\r\n _ctx.graphType === 'PIE' && _ctx.previewType !== 'Chart'\r\n ? 'w-3/5'\r\n : 'w-[calc(100%+2rem)] mx-[-1rem] rounded-b-xl'\r\n , \"h-full boorder\"])\n }, null, 8, [\"options\", \"class\"]))\n : _createCommentVNode(\"\", true),\n (\r\n _ctx.previewInfos.type === 'GAUGE' ||\r\n _ctx.previewInfos.type === 'SOLID_GAUGE'\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kpiDetails.kpis, (kpi, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createVNode(_component_Highcharts, {\n options: \r\n _ctx.kpiToGauge(\r\n _ctx.kpiTitle || _ctx.previewInfos.label,\r\n kpi.value ? kpi.value : 0,\r\n kpi.unit,\r\n _ctx.previewInfos.type\r\n )\r\n ,\n class: \"boorder\"\n }, null, 8, [\"options\"])\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2))\n : (!_ctx.error && _ctx.previewType !== 'None' && _ctx.previewType === 'Custom')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", { innerHTML: _ctx.previewInfos }, null, 8, _hoisted_20)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, _hoisted_23))\n ]))\n}","\r\nimport previewHandling, {\r\n previewHandlingProps\r\n} from '@/core/composables/preview.composable'\r\nimport { ChartModel } from '@/core/model/chart.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport Highcharts from 'highcharts'\r\nimport { Chart } from 'highcharts-vue'\r\nimport highchartsMore from 'highcharts/highcharts-more'\r\nimport solidGauge from 'highcharts/modules/solid-gauge'\r\nimport { defineComponent, onMounted, ref, watch } from 'vue'\r\nimport AnalyticsIcon from '@/components/icons/AnalyticsIcon.vue'\r\nimport RightArrowIcon from '@/components/icons/RightArrowIcon.vue'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport FormatService from '@/core/services/format.service'\r\nimport { useRouter } from 'vue-router'\r\n\r\nhighchartsMore(Highcharts)\r\nsolidGauge(Highcharts)\r\n\r\nexport default defineComponent({\r\n name: 'ServicesCardPreview.vue',\r\n components: {\r\n Highcharts: Chart,\r\n RightArrowIcon,\r\n AnalyticsIcon\r\n },\r\n props: previewHandlingProps,\r\n setup (props) {\r\n const router = useRouter()\r\n const prop = {\r\n id: props.id,\r\n title: props.title,\r\n linkUrl: props.linkUrl,\r\n graphType: props.graphType,\r\n previewType: props.previewType,\r\n previewInfos: props.previewInfos,\r\n size: props.size,\r\n description: props.description,\r\n isPreview: props.isPreview,\r\n kpiTitle: props.kpiTitle,\r\n period: props.period\r\n }\r\n const preview = previewHandling(\r\n prop,\r\n '',\r\n '',\r\n {} as ChartModel,\r\n true,\r\n {} as KpiModel,\r\n false,\r\n [] as KpiExtended[]\r\n )\r\n\r\n const getKpiColour = (label: string) => {\r\n return ColoursService.getColour(label)\r\n }\r\n const loading = ref(preview.loadingRef)\r\n const customDetails = ref(preview.customDetailsRef)\r\n const error = ref(preview.errorRef)\r\n const kpiDetails = ref(preview.kpiDetailsRef)\r\n const detailed = ref(preview.detailedRef)\r\n const kpiList = ref(preview.kpiListRef)\r\n const chartOptions = preview.chartOptions\r\n const kpiToGauge = preview.kpiToGauge\r\n const mounted = onMounted(() => {\r\n detailed.value = false\r\n if (router.currentRoute.value.name === 'map') {\r\n preview.displayPreview(props.period, props.assetId)\r\n } else {\r\n preview.displayPreview()\r\n }\r\n })\r\n\r\n watch(\r\n () => props.period,\r\n (current) => {\r\n preview.displayPreview(current)\r\n }\r\n )\r\n\r\n const formatNumber = (num: number) => FormatService.formatNumber(num)\r\n\r\n onMounted(() => {\r\n setTimeout(() => {\r\n if (props.graphType === 'PIE') {\r\n const element = document.querySelectorAll('.highcharts-legend-item')\r\n for (const iterator of element) {\r\n const acceptedClasses = [\r\n 'highcharts-color-0',\r\n 'highcharts-color-1',\r\n 'highcharts-color-2',\r\n 'highcharts-color-3',\r\n 'highcharts-color-4'\r\n ]\r\n if (\r\n !iterator.classList.contains(acceptedClasses[0]) &&\r\n !iterator.classList.contains(acceptedClasses[1]) &&\r\n !iterator.classList.contains(acceptedClasses[2]) &&\r\n !iterator.classList.contains(acceptedClasses[3]) &&\r\n !iterator.classList.contains(acceptedClasses[4])\r\n ) {\r\n iterator.remove()\r\n }\r\n }\r\n }\r\n }, 400)\r\n })\r\n\r\n return {\r\n getKpiColour,\r\n loading,\r\n customDetails,\r\n mounted,\r\n error,\r\n kpiDetails,\r\n detailed,\r\n kpiList,\r\n chartOptions,\r\n kpiToGauge,\r\n formatNumber\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServicesCardPreview.vue?vue&type=template&id=0b219f31&scoped=true&ts=true\"\nimport script from \"./ServicesCardPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./ServicesCardPreview.vue?vue&type=script&lang=ts\"\n\nimport \"./ServicesCardPreview.vue?vue&type=style&index=0&id=0b219f31&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0b219f31\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9f1c3996\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"flex flex-col h-full relative text-gray-200\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"h-full flex flex-col lg:flex-row p-2\"\n}\nconst _hoisted_3 = { class: \"h-full flex w-full flex-col\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"font-bold text-sm\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"text-xs font-normal\"\n}\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = {\n key: 1,\n class: \"h-full flex\"\n}\nconst _hoisted_9 = { class: \"m-auto\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Highcharts = _resolveComponent(\"Highcharts\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"text-xs whitespace-nowrap\", {\r\n 'skeleton w-4/5 xs:w-3/5 mb-2': _ctx.loading,\r\n 'w-full': !_ctx.loading,\r\n 'mb-0.5': _ctx.kpiTitle,\r\n }])\n }, [\n (\r\n (_ctx.previewType === 'KPI' || _ctx.previewType === 'ChartAndKPI') &&\r\n !_ctx.loading &&\r\n _ctx.kpiDetails &&\r\n _ctx.kpiDetails.kpis.length === 1\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.kpiTitle), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"text-xl\", {\r\n 'skeleton w-4/5 xs:w-3/5': _ctx.loading,\r\n 'w-full': !_ctx.loading,\r\n }])\n }, [\n (\r\n (_ctx.previewType === 'KPI' || _ctx.previewType === 'ChartAndKPI') &&\r\n !_ctx.loading &&\r\n _ctx.kpiDetails\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.kpiDetails.kpis, (kpi, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n (kpi.label)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(kpi.label), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(kpi.value) + \" \" + _toDisplayString(kpi.unit), 1)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_ctx.graphType && !_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createBlock(_component_Highcharts, {\n key: 0,\n options: _ctx.chartOptions,\n class: _normalizeClass(\r\n _ctx.graphType === 'PIE' ? 'w-full' : 'w-full mx-[-0.5rem] absolute bottom-0 rounded-b-xl'\r\n )\n }, null, 8, [\"options\", \"class\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.previewType === 'Custom' && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"h-4/6 flex\",\n innerHTML: _ctx.customDetails\n }, null, 8, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.error), 1)\n ]))\n ]))\n}","\r\nimport previewHandling, {\r\n previewHandlingProps\r\n} from '@/core/composables/preview.composable'\r\nimport { ChartModel } from '@/core/model/chart.model'\r\nimport { KpiExtended, KpiModel } from '@/core/model/kpi.model'\r\nimport { Chart } from 'highcharts-vue'\r\nimport { defineComponent, onMounted, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ServicesCardFleet.vue',\r\n components: {\r\n Highcharts: Chart\r\n },\r\n props: previewHandlingProps,\r\n setup (props) {\r\n const prop = {\r\n id: props.id,\r\n title: props.title,\r\n linkUrl: props.linkUrl,\r\n graphType: props.graphType,\r\n previewType: props.previewType,\r\n previewInfos: props.previewInfos,\r\n size: props.size,\r\n description: props.description,\r\n isPreview: props.isPreview,\r\n kpiTitle: props.kpiTitle\r\n }\r\n const preview = previewHandling(\r\n prop,\r\n '',\r\n '',\r\n {} as ChartModel,\r\n true,\r\n {} as KpiModel,\r\n false,\r\n [] as KpiExtended[],\r\n true\r\n )\r\n const loading = ref(preview.loadingRef)\r\n const customDetails = ref(preview.customDetailsRef)\r\n const error = ref(preview.errorRef)\r\n const kpiDetails = ref(preview.kpiDetailsRef)\r\n const detailed = ref(preview.detailedRef)\r\n const kpiList = ref(preview.kpiListRef)\r\n const chartOptions = preview.chartOptions\r\n const mounted = onMounted(() => {\r\n detailed.value = false\r\n preview.displayPreview()\r\n })\r\n\r\n return {\r\n loading,\r\n customDetails,\r\n mounted,\r\n error,\r\n kpiDetails,\r\n detailed,\r\n kpiList,\r\n chartOptions\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServicesCardFleet.vue?vue&type=template&id=9f1c3996&scoped=true&ts=true\"\nimport script from \"./ServicesCardFleet.vue?vue&type=script&lang=ts\"\nexport * from \"./ServicesCardFleet.vue?vue&type=script&lang=ts\"\n\nimport \"./ServicesCardFleet.vue?vue&type=style&index=0&id=9f1c3996&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9f1c3996\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _renderSlot(_ctx.$slots, \"default\")\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'observer',\r\n data () {\r\n return {\r\n observer: null as IntersectionObserver | null\r\n }\r\n },\r\n props: {\r\n root: {\r\n type: Object as PropType,\r\n default: null\r\n },\r\n rootMargin: {\r\n type: [String],\r\n default: '0px'\r\n },\r\n threshold: {\r\n type: Array as PropType>,\r\n default: () => [0]\r\n }\r\n },\r\n methods: {\r\n unobserve () {\r\n if (this.observer) { this.observer.unobserve(this.$el) }\r\n }\r\n },\r\n mounted () {\r\n const options = {\r\n root: this.root,\r\n rootMargin: this.rootMargin,\r\n threshold: 0.3\r\n }\r\n this.observer = new IntersectionObserver(entries => {\r\n this.$emit('on-change', entries[0], this.unobserve)\r\n // eslint-disable-next-line no-undef\r\n }, options as IntersectionObserverInit)\r\n if (this.observer) { this.observer.observe(this.$el) }\r\n },\r\n beforeUnmount () {\r\n if (this.observer) {\r\n this.unobserve()\r\n this.observer = null\r\n }\r\n }\r\n})\r\n","import { render } from \"./Observer.vue?vue&type=template&id=41b2d425&ts=true\"\nimport script from \"./Observer.vue?vue&type=script&lang=ts\"\nexport * from \"./Observer.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport ServicesCardChart from '@/components/cards/ServicesCardChart.vue'\r\nimport ServicesCardKpiShell from '@/components/cards/ServicesCardKpiShell.vue'\r\nimport ServicesCardPreview from '@/components/cards/ServicesCardPreview.vue'\r\nimport ServicesCardFleet from '@/components/cards/ServicesCardFleet.vue'\r\nimport Observer from '@/components/Observer.vue'\r\nimport { ChartModel } from '@/core/model/chart.model'\r\nimport { KpiModel } from '@/core/model/kpi.model'\r\nimport { Preview } from '@/core/model/preview.model'\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\ninterface ServiceCardContentData {\r\n kpiDetails: KpiModel | undefined;\r\n graphDetails: ChartModel | undefined;\r\n customDetails: string;\r\n // loading: boolean;\r\n error: string;\r\n observed: boolean;\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'ServiceCardContent.vue',\r\n components: {\r\n Observer,\r\n ServicesCardFleet,\r\n ServicesCardPreview,\r\n ServicesCardKpiShell,\r\n ServicesCardChart\r\n },\r\n props: {\r\n id: Number,\r\n title: String,\r\n description: String,\r\n subtitle: String,\r\n previewType: {\r\n validator: (value: string) =>\r\n ['Kpi', 'Chart', 'Custom', 'ChartAndKPI'].includes(value)\r\n },\r\n previewInfos: [Object, String] as PropType,\r\n size: {\r\n validator: (value: number) => [1, 2].includes(value)\r\n },\r\n fromList: { type: Boolean, default: true },\r\n fromFleet: { type: Boolean, default: false },\r\n type: String,\r\n isPreview: Boolean,\r\n period: String\r\n },\r\n data (): ServiceCardContentData {\r\n return {\r\n kpiDetails: {} as KpiModel,\r\n graphDetails: {} as ChartModel,\r\n customDetails: '',\r\n // loading: true,\r\n error: '',\r\n observed: true\r\n }\r\n },\r\n methods: {\r\n loadDetails (entry: IntersectionObserverEntry, unobserve: () => void) {\r\n if (entry.isIntersecting) {\r\n unobserve()\r\n this.observed = true\r\n }\r\n }\r\n },\r\n computed: {\r\n graphType (): string {\r\n return this.previewType === 'Chart' && this.previewInfos\r\n ? (this.previewInfos as Preview).type\r\n : this.previewType === 'ChartAndKPI' && this.previewInfos\r\n ? (this.previewInfos as Preview[])[0].type\r\n : ''\r\n },\r\n kpiTitle (): string {\r\n if (this.previewInfos) {\r\n return this.previewType === 'Kpi'\r\n ? (this.previewInfos as Preview).label\r\n : this.previewType === 'ChartAndKPI'\r\n ? (this.previewInfos as Preview[])[1].label\r\n : ''\r\n }\r\n return ''\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceCardContent.vue?vue&type=template&id=1006541e&ts=true\"\nimport script from \"./ServiceCardContent.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceCardContent.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-315be22f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 2,\n class: \"text-white h-full flex items-center\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CustomMultiSelect = _resolveComponent(\"CustomMultiSelect\")!\n const _component_treeselect = _resolveComponent(\"treeselect\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"flex flex-wrap gap-4\", { 'pointer-events-none': _ctx.oneLoading}])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.filters, (filter, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n (\r\n (filter.type === 'mono' ||\r\n filter.type === 'Single' ||\r\n filter.type === 1) &&\r\n _ctx.monoOptions &&\r\n !_ctx.error[index]\r\n )\n ? (_openBlock(), _createBlock(_component_CustomMultiSelect, {\n key: 0,\n options: _ctx.monoOptions[index],\n placeholder: filter.name,\n default: _ctx.defaultFilter[index],\n class: \"select w-45\",\n onInput: ($event: any) => (_ctx.updateFiltersList(index, filter.id, 'mono', $event))\n }, null, 8, [\"options\", \"placeholder\", \"default\", \"onInput\"]))\n : _createCommentVNode(\"\", true),\n (\r\n (filter.type === 'multi' ||\r\n filter.type === 2 ||\r\n filter.type === 'Multi') &&\r\n !_ctx.error[index] &&\r\n _ctx.multiSelected[index - 1]\r\n )\n ? (_openBlock(), _createBlock(_component_treeselect, {\n key: 1,\n \"onUpdate:modelValue\": [($event: any) => (\r\n _ctx.updateFiltersList(index, filter.id, 'multi', _ctx.multiSelected[index])\r\n ), ($event: any) => ((_ctx.multiSelected[index]) = $event)],\n modelValue: _ctx.multiSelected[index],\n multiple: true,\n options: _ctx.multiOptions[index],\n alwaysOpen: false,\n placeholder: `All ${filter.name}`,\n clearOnSelect: true,\n \"disable-branch-nodes\": false,\n \"max-height\": 200,\n clearable: true,\n searchable: true,\n limit: 1,\n valueConsistsOf: 'LEAF_PRIORITY',\n class: _normalizeClass([\"select custom-select w-70\", { 'rotate-x-180': _ctx.openMulti[index] }]),\n onOpen: ($event: any) => (_ctx.rotateArrow(index)),\n onClose: ($event: any) => (_ctx.rotateArrow(index))\n }, null, 8, [\"onUpdate:modelValue\", \"modelValue\", \"options\", \"placeholder\", \"class\", \"onOpen\", \"onClose\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.error[index])\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _toDisplayString(_ctx.error[index]) + _toDisplayString(filter.name), 1))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ], 2))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-908e968a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"tabindex\"]\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = [\"id\", \"onChange\", \"value\"]\nconst _hoisted_7 = [\"for\"]\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = [\"id\", \"onChange\", \"value\"]\nconst _hoisted_10 = [\"for\"]\nconst _hoisted_11 = { key: 2 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"relative py-2.5 px-4 text-bg-2 font-bold bg-semantic-activate rounded-lg custom-select items-center\",\n tabindex: _ctx.tabindex,\n onBlur: _cache[3] || (_cache[3] = ($event: any) => (_ctx.open = false))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"selected text-bg-2 font-semibold flex font-bold border-cyan-500 justify-between w-full items-center\", { open: _ctx.open }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.open = !_ctx.open))\n }, [\n (_ctx.selected)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.selected), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.placeholder), 1)),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"arrow-container ml-2.5\", {'rotate-x-180' : !_ctx.open}])\n }, null, 2)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"items py-2.5 px-4 body body-1 body-alt font-bold bg-bg-0 z-2\", { hidden: !_ctx.open }])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.options, (option, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: i,\n class: _normalizeClass([\"py-2.5\", { checked: _ctx.selection.includes(option.label) && _ctx.multiple }]),\n onClick: _withModifiers(($event: any) => (_ctx.selectOption(option)), [\"prevent\"])\n }, [\n (_ctx.multiple)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"custom-checkbox\",\n id: `custom-checkbox-${i}`,\n type: \"checkbox\",\n onChange: ($event: any) => (_ctx.emitSelection(option)),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.selection) = $event)),\n value: option\n }, null, 40, _hoisted_6), [\n [_vModelCheckbox, _ctx.selection]\n ]),\n _createElementVNode(\"label\", {\n for: `custom-checkbox-${i}`\n }, _toDisplayString(option.label), 9, _hoisted_7)\n ]))\n : (_ctx.multipleSimple)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _withDirectives(_createElementVNode(\"input\", {\n class: \"custom-checkbox\",\n id: `custom-checkbox-${i}`,\n type: \"checkbox\",\n onChange: ($event: any) => (_ctx.emitSelection(option)),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.selection) = $event)),\n value: option\n }, null, 40, _hoisted_9), [\n [_vModelCheckbox, _ctx.selection]\n ]),\n _createElementVNode(\"label\", {\n for: `custom-checkbox-${i}`\n }, _toDisplayString(option), 9, _hoisted_10)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, _toDisplayString(option.label), 1))\n ], 10, _hoisted_4))\n }), 128))\n ], 2)\n ], 40, _hoisted_1))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\ninterface MultiSelectOption {\r\n id: string | number;\r\n label: string;\r\n}\r\nexport default defineComponent({\r\n props: {\r\n options: {\r\n type: Array as PropType,\r\n required: true\r\n },\r\n default: {\r\n type: Object as PropType,\r\n required: false,\r\n default: null\r\n },\r\n tabindex: {\r\n type: Number,\r\n required: false,\r\n default: 0\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n multipleSimple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n placeholder: {\r\n type: String\r\n }\r\n },\r\n data () {\r\n return {\r\n selected: '',\r\n open: false,\r\n selection: [] as string[]\r\n }\r\n },\r\n mounted () {\r\n this.emitSelection()\r\n },\r\n watch: {\r\n default: {\r\n handler () {\r\n this.selectOption(this.default)\r\n }\r\n }\r\n },\r\n methods: {\r\n selectOption (option: MultiSelectOption | string) {\r\n if (this.multiple && typeof option === 'string') {\r\n if (!this.selection.includes(option)) {\r\n this.selection.push(option)\r\n this.emitSelection()\r\n } else {\r\n const index = this.selection.findIndex(\r\n (element) => element === option\r\n )\r\n this.selection.splice(index, 1)\r\n this.emitSelection()\r\n }\r\n } else if (this.multipleSimple && typeof option === 'string') {\r\n if (!this.selection.includes(option)) {\r\n this.selection.push(option)\r\n this.emitSelection(true)\r\n } else {\r\n const index = this.selection.findIndex(\r\n (element) => element === option\r\n )\r\n this.selection.splice(index, 1)\r\n this.emitSelection(true)\r\n }\r\n } else {\r\n this.selected = (option as MultiSelectOption).label\r\n this.$emit('input', option as MultiSelectOption)\r\n }\r\n },\r\n emitSelection (simple = false) {\r\n if (simple) {\r\n this.$emit('selection', this.selection)\r\n } else {\r\n this.$emit('selection', { selection: this.selection })\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./CustomMultiSelect.vue?vue&type=template&id=908e968a&scoped=true&ts=true\"\nimport script from \"./CustomMultiSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomMultiSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./CustomMultiSelect.vue?vue&type=style&index=0&id=908e968a&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-908e968a\"]])\n\nexport default __exports__","import { FilterFormatted, FilterModel } from '@/core/model/filter.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\n\r\nexport const Manager = {\r\n detail (id: number, filters: FilterFormatted[], compatibleFilters? : number[]): Promise> {\r\n const filtersSorted = (filters || []).filter(filter => (compatibleFilters || []).find((compFilter) => compFilter === filter.id))\r\n\r\n const body = {\r\n filters: filtersSorted\r\n }\r\n return http.request('post', `Filters/${id}`, body)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n}\r\n","\r\nimport CustomMultiSelect from '@/components/dropdowns/CustomMultiSelect.vue'\r\nimport * as FilterManager from '@/core/managers/filter.manager'\r\nimport { Filter, FilterFormatted, FilterMember, FilterModel } from '@/core/model/filter.model'\r\nimport { FilterInServiceModel } from '@/core/model/service.model'\r\nimport Tools from '@/core/services/tools'\r\nimport store from '@/store'\r\nimport { defineComponent, PropType } from 'vue'\r\nimport Treeselect from 'vue3-treeselect'\r\nimport 'vue3-treeselect/dist/vue3-treeselect.css'\r\n\r\ntype FilterMemberMapped = Omit & {\r\n options: string[];\r\n};\r\n\r\ninterface FilterData {\r\n selectedFilter: FilterFormatted[];\r\n multiSelected: number[][];\r\n multiOptions: Partial[][];\r\n monoOptions: FilterMember[][];\r\n error: string[];\r\n flattenedFilters: Filter[];\r\n defaultFilter: FilterMember[];\r\n firstHandle: boolean;\r\n openMulti: boolean[];\r\n loading: boolean[];\r\n oneLoading: boolean;\r\n\r\n debounce?: () => void;\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Filters',\r\n components: {\r\n CustomMultiSelect,\r\n Treeselect\r\n },\r\n props: {\r\n filters: Array as PropType\r\n },\r\n data (): FilterData {\r\n return {\r\n selectedFilter: [],\r\n multiSelected: [],\r\n error: [],\r\n flattenedFilters: [],\r\n defaultFilter: [],\r\n debounce: undefined,\r\n monoOptions: [],\r\n multiOptions: [],\r\n firstHandle: true,\r\n openMulti: [],\r\n loading: [],\r\n oneLoading: false\r\n }\r\n },\r\n created () {\r\n this.debounce = Tools.debounce(() => {\r\n this.dispatchFilters()\r\n }, 1000)\r\n this.firstHandleFilters()\r\n },\r\n mounted () {\r\n if (this.filters) {\r\n // eslint-disable-next-line\r\n for (const [index, filter] of this.filters.entries()) {\r\n this.$watch(\r\n ['selectedFilter', index, 'members'].join('.'),\r\n () => {\r\n if (index === 0) {\r\n this.dispatchFilters()\r\n } else {\r\n if (this.debounce) {\r\n this.debounce()\r\n }\r\n }\r\n },\r\n { deep: true }\r\n )\r\n }\r\n }\r\n\r\n this.$nextTick(() => {\r\n for (const container of document.querySelectorAll(\r\n '.vue-treeselect__control-arrow-container'\r\n )) {\r\n container.classList.add('rotate-x-180')\r\n container.classList.add('origin-center')\r\n }\r\n })\r\n },\r\n watch: {\r\n loading: {\r\n deep: true,\r\n // eslint-disable-next-line\r\n handler (oldValue, newValue) {\r\n if (this.loading.includes(true)) {\r\n this.oneLoading = true\r\n } else {\r\n this.oneLoading = false\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n rotateArrow (index: number) {\r\n const arrowContainer = document.querySelectorAll(\r\n '.vue-treeselect__control-arrow-container'\r\n )\r\n arrowContainer[index - 1].classList.toggle('rotate-x-180')\r\n },\r\n firstHandleFilters () {\r\n let filterIndex = 0\r\n for (const filter of this.filters as FilterInServiceModel[]) {\r\n this.displayFilters(filter, filterIndex)\r\n this.loading.push(false)\r\n this.multiSelected.push([])\r\n this.openMulti.push(false)\r\n this.error.push('')\r\n if (this.$route.query.filter) {\r\n for (const [index, fil] of JSON.parse(\r\n decodeURI(this.$route.query.filter as string)\r\n ).entries()) {\r\n if (filterIndex + 1 === fil.id && index !== 0) {\r\n const members = []\r\n for (const member of fil.members) {\r\n members.push(member)\r\n }\r\n this.multiSelected[filterIndex + 1] = members\r\n } else if (filterIndex + 1 === fil.id && index === 0) {\r\n if (this.defaultFilter[filterIndex]) {\r\n this.defaultFilter = fil.members\r\n }\r\n }\r\n }\r\n }\r\n filterIndex++\r\n }\r\n },\r\n displayFilters (filter: FilterInServiceModel, index: number) {\r\n this.loading[index] = true\r\n FilterManager.Manager.detail(\r\n filter.id,\r\n this.selectedFilter,\r\n filter.compatibleFilters\r\n )\r\n .then((response) => {\r\n if (response.isError) {\r\n this.error[index] = `${this.$t('analytics.error.filters')} ${\r\n response.Message\r\n }`\r\n this.$emit('filter-error')\r\n } else {\r\n if (\r\n (filter.type === 'multi' ||\r\n filter.type === 2 ||\r\n filter.type === 'Multi') &&\r\n response.data &&\r\n response.data.members\r\n ) {\r\n // Map filter members to be compliant with vue-treeselect\r\n const mappedMembers = response.data.members.map(\r\n ({ members: children, value: id, ...rest }) => ({\r\n children,\r\n id,\r\n ...rest\r\n })\r\n )\r\n const deepMappedMembers = JSON.parse(\r\n JSON.stringify(mappedMembers).replace(/\"value\":/g, '\"id\":')\r\n )\r\n this.multiOptions[index] = []\r\n for (const member of deepMappedMembers) {\r\n // Add id to vessels category to avoid vue treeselect error\r\n if (!member.id) {\r\n // https://github.com/denoland/deno/issues/12754\r\n member.id = (crypto as any).randomUUID()\r\n }\r\n this.multiOptions[index].push(\r\n Object.fromEntries(\r\n // eslint-disable-next-line\r\n Object.entries(member).filter(([_, v]) => v != null)\r\n )\r\n )\r\n }\r\n } else {\r\n if (response.data && response.data.members) {\r\n this.monoOptions[index] = response.data.members\r\n if (response.data && response.data.defaultSelected) {\r\n const defaultOption = this.monoOptions[index].find(\r\n (option) =>\r\n option.value ===\r\n (response.data as FilterModel).defaultSelected\r\n )\r\n if (this.$route.query.filter) {\r\n const defaultOptionFromQuery = this.monoOptions[index].find(\r\n (option) => {\r\n return (\r\n option.value ===\r\n JSON.parse(\r\n decodeURI(this.$route.query.filter as string)\r\n )[index].members\r\n )\r\n }\r\n )\r\n if (defaultOption) {\r\n if (defaultOptionFromQuery) {\r\n this.defaultFilter[index] = defaultOptionFromQuery\r\n } else {\r\n this.defaultFilter[index] = defaultOption\r\n }\r\n }\r\n } else if (defaultOption && !this.$route.query.filter) {\r\n this.defaultFilter[index] = defaultOption\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .finally(() => {\r\n this.loading[index] = false\r\n })\r\n },\r\n updateFiltersList (\r\n index: number,\r\n id: number,\r\n type: string,\r\n val: FilterMember | Filter\r\n ) {\r\n if (type === 'mono') {\r\n this.selectedFilter[index] = {\r\n id,\r\n members: (val as FilterMember).value\r\n }\r\n } else {\r\n this.$nextTick(() => {\r\n this.selectedFilter[index] = {\r\n id,\r\n members: Object.values(this.multiSelected[index]) as number[]\r\n }\r\n for (const element of document.getElementsByClassName(\r\n 'vue-treeselect__x-container'\r\n )) {\r\n (element as HTMLElement).title = 'Lave Vessel'\r\n }\r\n })\r\n }\r\n },\r\n dispatchFilters () {\r\n if (\r\n this.$route.query.filter &&\r\n typeof this.$route.query.filter === 'string' &&\r\n this.$route.query.filter !==\r\n encodeURI(JSON.stringify(this.selectedFilter)) &&\r\n this.firstHandle\r\n ) {\r\n this.selectedFilter = JSON.parse(decodeURI(this.$route.query.filter))\r\n }\r\n this.firstHandle = false\r\n this.$router.replace({\r\n query: { filter: encodeURI(JSON.stringify(this.selectedFilter)) }\r\n })\r\n store.dispatch('setFiltersList', this.selectedFilter)\r\n let filterIndex = 0\r\n for (const filter of this.filters as FilterInServiceModel[]) {\r\n if (filter.compatibleFilters.length) {\r\n this.displayFilters(filter, filterIndex)\r\n }\r\n filterIndex++\r\n }\r\n }\r\n },\r\n computed: {\r\n filtersSelected () {\r\n return store.state.filters\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceFilters.vue?vue&type=template&id=315be22f&scoped=true&ts=true\"\nimport script from \"./ServiceFilters.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceFilters.vue?vue&type=script&lang=ts\"\n\nimport \"./ServiceFilters.vue?vue&type=style&index=0&id=315be22f&lang=scss\"\nimport \"./ServiceFilters.vue?vue&type=style&index=1&id=315be22f&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-315be22f\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderSlot as _renderSlot, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"mt-14 mb-6 text-center font-bold\" }\nconst _hoisted_2 = { class: \"gap-4 text-2xl text-gray-100 mb-2\" }\nconst _hoisted_3 = { class: \"text-sm text-gray-400 font-normal\" }\nconst _hoisted_4 = { class: \"flex flex-col gap-4 justify-center xl:justify-start\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.subtitle), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ], 64))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ServiceDetailReportsAndDashboards',\r\n props: {\r\n title: String,\r\n subtitle: String\r\n }\r\n})\r\n","import { render } from \"./ServiceDetailReportsAndDashboards.vue?vue&type=template&id=79e36e30&ts=true\"\nimport script from \"./ServiceDetailReportsAndDashboards.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceDetailReportsAndDashboards.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-752313fe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"title\",\n class: \"flex items-center mb-9\"\n}\nconst _hoisted_2 = { class: \"ml-4\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LeftArrowIcon = _resolveComponent(\"LeftArrowIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goTo && _ctx.goTo(...args))),\n class: \"p-2.5 bg-bg-3 rounded-full\"\n }, [\n _createVNode(_component_LeftArrowIcon, { class: \"h-5 w-5 stroke-gray-100\" })\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.small ? 'h3': 'h1'), {\n class: _normalizeClass([{ skeleton__title: _ctx.loading }, \"!leading-7.5\"])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.error || _ctx.title), 1)\n ]),\n _: 1\n }, 8, [\"class\"]))\n ])\n ]))\n}","\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport LeftArrowIcon from '@/components/icons/LeftArrowIcon.vue'\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ServiceDetailTitle',\r\n components: {\r\n LeftArrowIcon\r\n },\r\n props: {\r\n loading: Boolean,\r\n error: String,\r\n title: String,\r\n description: String,\r\n link: String,\r\n params: Object,\r\n small: { type: Boolean, default: false }\r\n },\r\n computed: {\r\n formattedLink () {\r\n if (this.params) {\r\n return {\r\n name: this.link,\r\n params: this.params\r\n }\r\n }\r\n return { name: this.link }\r\n }\r\n },\r\n methods: {\r\n goTo () {\r\n if (this.$router.options.history.state.back === '/dashboards') {\r\n this.$router.go(-1)\r\n } else {\r\n if (this.params && Object.values(this.params!)[0] !== '0') {\r\n this.$router.push({\r\n name: this.link,\r\n params: this.params\r\n })\r\n } else if (this.params && Object.values(this.params!)[0] === '0') {\r\n this.$router.go(-1)\r\n } else {\r\n this.$router.push({ name: this.link })\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceDetailTitle.vue?vue&type=template&id=752313fe&scoped=true&ts=true\"\nimport script from \"./ServiceDetailTitle.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceDetailTitle.vue?vue&type=script&lang=ts\"\n\nimport \"./ServiceDetailTitle.vue?vue&type=style&index=0&id=752313fe&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-752313fe\"]])\n\nexport default __exports__","import { CategoriesListModel } from '@/core/model/category.model'\r\nimport { ServiceModel } from '@/core/model/service.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\n\r\nexport const Manager = {\r\n list (): Promise> {\r\n return http.request('get', 'Services')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n },\r\n detail (id: number): Promise> {\r\n return http.request('get', `Services/${id}`)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n}\r\n","\r\nimport DashboardCard from '@/components/cards/DashboardCard.vue'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport ReportGroupHeader from '@/components/reports/categories/services/reports/headers/ReportGroupHeader.vue'\r\nimport ServiceReport from '@/components/reports/categories/services/reports/ServiceReport.vue'\r\nimport ServiceCardContent from '@/components/cards/ServiceCardContent.vue'\r\nimport Filters from '@/components/Filters/ServiceFilters.vue'\r\nimport ServiceDetailReportsAndDashboards from '@/components/titles/ServiceDetailReportsAndDashboards.vue'\r\nimport ServiceDetailTitle from '@/components/titles/ServiceDetailTitle.vue'\r\nimport * as CategoryManager from '@/core/managers/category.manager'\r\nimport { ServiceModel } from '@/core/model/service.model'\r\nimport Tools from '@/core/services/tools'\r\nimport { PAGE_TITLE } from '@/router'\r\nimport { defineComponent, inject, reactive, ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\nimport { CategoriesListModel } from '@/core/model/category.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n Filters,\r\n ServiceCardContent,\r\n ServiceDetailTitle,\r\n GenericCardShell,\r\n DashboardCard,\r\n ServiceDetailReportsAndDashboards,\r\n ReportGroupHeader,\r\n ServiceReport\r\n // AssetReport\r\n },\r\n name: 'Service.detail.vue',\r\n setup () {\r\n const toast = useToast()\r\n const loading = ref(true)\r\n const detail: ServiceModel = reactive({} as ServiceModel)\r\n const error = ref('')\r\n return {\r\n toast,\r\n loading,\r\n detail,\r\n error,\r\n logger: inject('ILogger') as ILogger\r\n }\r\n },\r\n mounted () {\r\n if (!this.$store.state.list.length) {\r\n CategoryManager.Manager.list().then((response) => {\r\n if (response.isError) {\r\n this.error =\r\n 'No services available at the moment. Please try again later'\r\n this.toast.error(this.error)\r\n } else {\r\n this.$store.dispatch(\r\n 'setServiceList',\r\n (response.data as CategoriesListModel).categories\r\n )\r\n }\r\n })\r\n }\r\n this.$nextTick(() => {\r\n const serviceId = parseInt(this.$route.params.analyticsId as string)\r\n\r\n CategoryManager.Manager.detail(serviceId).then((response) => {\r\n this.loading = false\r\n if (response.isError) {\r\n this.error = this.$t('analytics.error.detail')\r\n this.toast.error(this.error)\r\n } else {\r\n this.detail = response.data as ServiceModel\r\n Tools.updatePageName(\r\n PAGE_TITLE[this.$route.name as string],\r\n this.detail.title\r\n )\r\n\r\n this.logger.logEvent({\r\n name: 'UserNavigation',\r\n properties: {\r\n contextName: 'Analytics',\r\n categoryName: '',\r\n subcategoryName: this.detail.title,\r\n ActionName: 'view'\r\n }\r\n })\r\n }\r\n })\r\n })\r\n },\r\n computed: {\r\n analyticsCategory () {\r\n for (const category of this.$store.state.list) {\r\n const cat = category.services.find(\r\n (category) =>\r\n category.id === parseInt(this.$route.params.analyticsId as string)\r\n )\r\n if (cat) {\r\n return category.name\r\n }\r\n }\r\n return ''\r\n }\r\n }\r\n})\r\n","import { render } from \"./Analytics.detail.vue?vue&type=template&id=602c0edc&scoped=true&ts=true\"\nimport script from \"./Analytics.detail.vue?vue&type=script&lang=ts\"\nexport * from \"./Analytics.detail.vue?vue&type=script&lang=ts\"\n\nimport \"./Analytics.detail.vue?vue&type=style&index=0&id=602c0edc&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-602c0edc\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, TransitionGroup as _TransitionGroup, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b7a99db6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mt-6 h-100\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"flex overflow-x-scroll no-scroll\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"flex overflow-x-scroll no-scroll\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"text-gray-300\"\n}\nconst _hoisted_5 = {\n class: \"mt-8\",\n ref: \"categoryWrapper\"\n}\nconst _hoisted_6 = {\n key: 0,\n class: \"relative\"\n}\nconst _hoisted_7 = [\"href\"]\nconst _hoisted_8 = [\"onScroll\"]\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", { class: \"my-4 border-transparent\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PageTitle = _resolveComponent(\"PageTitle\")!\n const _component_ServicesFilterButton = _resolveComponent(\"ServicesFilterButton\")!\n const _component_ServiceCardContent = _resolveComponent(\"ServiceCardContent\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n const _component_RightArrowIcon = _resolveComponent(\"RightArrowIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_PageTitle, {\n title: _ctx.$t('analytics.title'),\n subtitle: _ctx.$t('analytics.subtitle')\n }, null, 8, [\"title\", \"subtitle\"]),\n (!_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ServicesFilterButton, {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.selectAll())),\n active: _ctx.isAllActive,\n title: 'All',\n number: '',\n loading: false\n }, null, 8, [\"active\"]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, index) => {\n return (_openBlock(), _createBlock(_component_ServicesFilterButton, {\n onClick: ($event: any) => (_ctx.toggleCat(category)),\n key: index,\n active: category.active,\n title: category.name,\n number: category.services.length,\n loading: _ctx.loading\n }, null, 8, [\"onClick\", \"active\", \"title\", \"number\", \"loading\"]))\n }), 128))\n ]))\n : (_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(8, (index) => {\n return _createVNode(_component_ServicesFilterButton, {\n key: index,\n loading: _ctx.loading\n }, null, 8, [\"loading\"])\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_ctx.error), 1)),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_TransitionGroup, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n (_ctx.isVisible(category, _ctx.categories))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"h2\", {\n class: \"font-display my-2 flex items-center\",\n href: category.name\n }, _toDisplayString(category.name), 9, _hoisted_7),\n _createElementVNode(\"div\", {\n class: \"flex gap-4 w-[calc(100%+2.5rem)] -ml-5 md:ml-0 md:w-auto overflow-x-scroll overflow-y-hidden no-scroll relative\",\n ref_for: true,\n ref: \"category\",\n onScroll: ($event: any) => (_ctx.showOrHideArrows(index))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(category.services, (item, i) => {\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n link: {\r\n name: 'analyticsDetail',\r\n params: { analyticsId: item.id },\r\n },\n key: i,\n class: _normalizeClass([{\r\n 'col-span-1 lg:col-span-2': item.size === 2,\r\n }, \"w-[310px] aspect-video min-w-[310px]\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ServiceCardContent, {\n id: item.id,\n title: item.title,\n subtitle: item.text,\n previewType: item.previewType,\n previewInfos: \r\n item.previewType === 'Chart'\r\n ? item.chart\r\n : item.previewType === 'Kpi' || item.previewType === 'KPI'\r\n ? item.kpi\r\n : item.previewType === 'ChartAndKPI'\r\n ? [item.chart, item.kpi]\r\n : item.previewType === 'Custom'\r\n ? item.customHtml\r\n : {}\r\n ,\n size: item.size,\n description: item.description\n }, null, 8, [\"id\", \"title\", \"subtitle\", \"previewType\", \"previewInfos\", \"size\", \"description\"])\n ]),\n _: 2\n }, 1032, [\"link\", \"class\"]))\n }), 128))\n ], 40, _hoisted_8),\n _createElementVNode(\"div\", {\n class: \"absolute w-full h-[194px] z-[10] bottom-0 hidden md:block pointer-events-none\",\n ref_for: true,\n ref: \"arrows\"\n }, [\n _createElementVNode(\"div\", {\n class: \"h-full w-[120px] absolute arrow-shadow-1 hidden flex-col justify-center left-0 lg:-left-6 items-start\",\n ref_for: true,\n ref: \"arrowRight\"\n }, [\n _createElementVNode(\"button\", {\n class: \"rounded-full p-2.5 bg-bg-2 rotate-180 w-fit pointer-events-auto\",\n onClick: ($event: any) => (_ctx.scrollCategory(index, 'right'))\n }, [\n _createVNode(_component_RightArrowIcon, { class: \"w-5 h-5 stroke-text-prim\" })\n ], 8, _hoisted_9)\n ], 512),\n _createElementVNode(\"div\", {\n class: \"h-full w-[120px] absolute arrow-shadow-2 flex flex-col justify-center right-0 lg:-right-6 items-end\",\n ref_for: true,\n ref: \"arrowLeft\"\n }, [\n _createElementVNode(\"button\", {\n class: \"rounded-full p-2.5 bg-bg-2 w-fit pointer-events-auto\",\n onClick: ($event: any) => (_ctx.scrollCategory(index, 'left'))\n }, [\n _createVNode(_component_RightArrowIcon, { class: \"w-5 h-5 stroke-text-prim\" })\n ], 8, _hoisted_10)\n ], 512)\n ], 512),\n _hoisted_11\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]),\n _: 1\n })\n ], 512)\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\ninterface Props {\r\n title: string,\r\n number: number,\r\n loading: boolean,\r\n active: boolean\r\n }\r\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ServicesFilterButton',\n props: {\n title: null,\n number: null,\n loading: { type: Boolean },\n active: { type: Boolean }\n },\n setup(__props: any) {\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: _normalizeClass([\"py-2.5 inline-flex rounded-3xl px-4 bg-bg-0 mt-2 mr-2 hover:bg-bg-2 hover:text-text-alt select-none max-h-8.5 body body-1 body-alt !font-bold items-center min-w-fit\", \r\n __props.active\r\n ? 'bg-semantic-activate !text-bg-0 hover:bg-semantic-activate'\r\n : ''\r\n ])\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ 'skeleton w-24 inline-block': __props.loading })\n }, _toDisplayString(__props.title), 3),\n (__props.number)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"ml-4 inline-block\", { 'skeleton w-5': __props.loading }])\n }, _toDisplayString(__props.number), 3))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","import script from \"./ServicesFilterButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ServicesFilterButton.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ServicesFilterButton.vue?vue&type=style&index=0&id=5bc1b134&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5bc1b134\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-display mb-2.5 select-none\" }\nconst _hoisted_2 = { class: \"body body-1 mb-5 font-display\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"h1\", _hoisted_1, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.subtitle), 1)\n ], 64))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'PageTitle',\r\n props: {\r\n title: String,\r\n subtitle: String\r\n }\r\n})\r\n","import { render } from \"./PageTitle.vue?vue&type=template&id=10c79aa3&ts=true\"\nimport script from \"./PageTitle.vue?vue&type=script&lang=ts\"\nexport * from \"./PageTitle.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Tools from '@/core/services/tools'\r\nimport { CategoryModel } from '@/core/model/category.model'\r\nexport default function handleFilters (): {\r\n isVisible: (category: CategoryModel, categories: CategoryModel[]) => void;\r\n isOnceSelected: (categories: CategoryModel[]) => void\r\n } {\r\n function isVisible (category: CategoryModel, categories: CategoryModel[]): boolean {\r\n return (\r\n !Tools.isOnceSelected(categories) ||\r\n (Tools.isOnceSelected(categories) && category.active)\r\n )\r\n }\r\n function isOnceSelected (categories: CategoryModel[]) {\r\n return Tools.isOnceSelected(categories)\r\n }\r\n return { isVisible, isOnceSelected }\r\n}\r\n","\r\nimport ServicesFilterButton from '@/components/buttons/ServicesFilterButton.vue'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport ServiceCardContent from '@/components/cards/ServiceCardContent.vue'\r\nimport RightArrowIcon from '@/components/icons/RightArrowIcon.vue'\r\nimport PageTitle from '@/components/titles/PageTitle.vue'\r\nimport handleFilters from '@/core/composables/handleFilters.composable'\r\nimport * as CategoryManager from '@/core/managers/category.manager'\r\nimport {\r\n CategoriesListModel,\r\n CategoryModel\r\n} from '@/core/model/category.model'\r\nimport store from '@/store'\r\nimport { computed, defineComponent, Ref, ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ServiceCardContent,\r\n ServicesFilterButton,\r\n GenericCardShell,\r\n RightArrowIcon,\r\n PageTitle\r\n },\r\n setup () {\r\n const toast = useToast()\r\n const loading = ref(true)\r\n const error = ref('')\r\n const list: Ref = ref([])\r\n const serviceDisplayed: Ref = ref([])\r\n const filterHandler = handleFilters()\r\n const isVisible = filterHandler.isVisible\r\n const categories = computed(() => {\r\n return store.state.list\r\n })\r\n const isAllActive = ref(true)\r\n const toggleCat = (category: CategoryModel) => {\r\n const index = (categories.value as CategoryModel[]).findIndex(\r\n (item) => item.name === category.name\r\n )\r\n if (categories.value && typeof index === 'number' && index > -1) {\r\n categories.value[index].active = !categories.value[index].active\r\n serviceDisplayed.value[index] = !serviceDisplayed.value[index]\r\n }\r\n const atLeastOneActiveIndex = (categories.value as CategoryModel[]).findIndex(\r\n (item) => item.active === true\r\n )\r\n if (atLeastOneActiveIndex > -1) {\r\n isAllActive.value = false\r\n }\r\n }\r\n\r\n const selectAll = () => {\r\n for (const [index, category] of categories.value.entries()) {\r\n category.active = false\r\n serviceDisplayed.value[index] = true\r\n }\r\n isAllActive.value = true\r\n }\r\n\r\n return {\r\n toast,\r\n loading,\r\n error,\r\n list,\r\n serviceDisplayed,\r\n isVisible,\r\n categories,\r\n isAllActive,\r\n toggleCat,\r\n selectAll\r\n }\r\n },\r\n created () {\r\n store.dispatch('setFiltersList', [])\r\n store.dispatch('setServiceList', [])\r\n CategoryManager.Manager.list().then((response) => {\r\n if (response.isError) {\r\n this.error =\r\n 'No services available at the moment. Please try again later'\r\n this.toast.error(this.error)\r\n } else {\r\n store.dispatch(\r\n 'setServiceList',\r\n (response.data as CategoriesListModel).categories\r\n )\r\n for (let index = 0; index < this.categories.length; index++) {\r\n this.serviceDisplayed.push(false)\r\n }\r\n }\r\n this.loading = false\r\n })\r\n },\r\n mounted () {\r\n window.addEventListener('resize', this.displayArrowWrapper)\r\n },\r\n unmounted () {\r\n window.removeEventListener('resize', this.displayArrowWrapper)\r\n },\r\n methods: {\r\n displayArrowWrapper () {\r\n const category = this.$refs.category as HTMLElement[]\r\n const arrows = this.$refs.arrows as HTMLElement[]\r\n if (arrows && category.length && arrows.length) {\r\n for (let i = 0; i < category.length; i++) {\r\n if (\r\n category[i].scrollWidth <=\r\n (this.$refs.categoryWrapper as HTMLElement).offsetWidth\r\n ) {\r\n arrows[i].classList.remove('hidden', 'md:block')\r\n arrows[i].classList.add('hidden', 'md:hidden')\r\n } else {\r\n arrows[i].classList.remove('hidden', 'md:hidden')\r\n arrows[i].classList.add('hidden', 'md:block')\r\n }\r\n }\r\n }\r\n },\r\n scrollCategory (index: number, direction: 'right' | 'left') {\r\n const category = this.$refs.category as HTMLElement[]\r\n if (category.length) {\r\n if (direction === 'left') {\r\n category[index].scrollLeft += 100\r\n } else {\r\n category[index].scrollLeft -= 100\r\n }\r\n }\r\n },\r\n showOrHideArrows (index: number) {\r\n const category = this.$refs.category as HTMLElement[]\r\n const arrowLeft = this.$refs.arrowLeft as HTMLElement[]\r\n const arrowRight = this.$refs.arrowRight as HTMLElement[]\r\n if (category.length && arrowLeft.length && arrowRight.length) {\r\n if (category[index].scrollLeft > 0) {\r\n arrowRight[index].classList.remove('hidden')\r\n arrowRight[index].classList.add('flex')\r\n } else {\r\n arrowRight[index].classList.remove('flex')\r\n arrowRight[index].classList.add('hidden')\r\n }\r\n if (\r\n category[index].scrollWidth - category[index].offsetWidth <=\r\n category[index].scrollLeft\r\n ) {\r\n arrowLeft[index].classList.remove('flex')\r\n arrowLeft[index].classList.add('hidden')\r\n } else {\r\n arrowLeft[index].classList.remove('hidden')\r\n arrowLeft[index].classList.add('flex')\r\n }\r\n }\r\n }\r\n },\r\n watch: {\r\n categories: {\r\n immediate: true,\r\n deep: true,\r\n handler () {\r\n this.$nextTick(() => {\r\n this.displayArrowWrapper()\r\n })\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./Analytics.list.vue?vue&type=template&id=b7a99db6&scoped=true&ts=true\"\nimport script from \"./Analytics.list.vue?vue&type=script&lang=ts\"\nexport * from \"./Analytics.list.vue?vue&type=script&lang=ts\"\n\nimport \"./Analytics.list.vue?vue&type=style&index=0&id=b7a99db6&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b7a99db6\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6df1cf18\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mt-6 h-100\" }\nconst _hoisted_2 = { class: \"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ServiceDetailTitle = _resolveComponent(\"ServiceDetailTitle\")!\n const _component_TopButton = _resolveComponent(\"TopButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ServiceDetailTitle, {\n loading: _ctx.loading,\n title: _ctx.pageName,\n link: 'analyticsDetail',\n params: { analyticsId: _ctx.linkParams },\n description: _ctx.description,\n small: true\n }, null, 8, [\"loading\", \"title\", \"params\", \"description\"]),\n (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"text-center text-white p-3 relative\",\n style: _normalizeStyle(`height: ${_ctx.dashboardHeight}px`)\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.error), 1)\n ], 4))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"relative dash rounded-lg bg-transparent\",\n style: _normalizeStyle(`height: ${_ctx.dashboardHeight}px`)\n }, [\n (_ctx.mounted && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 0,\n ref: \"dashboardContainer\",\n class: \"p-3 relative dash rounded-lg\",\n style: _normalizeStyle(`height: ${_ctx.dashboardHeight}px`)\n }, null, 4))\n : _createCommentVNode(\"\", true),\n (_ctx.mounted && !_ctx.error && !_ctx.loading && _ctx.dashboardLoaded)\n ? (_openBlock(), _createBlock(_component_TopButton, {\n key: 1,\n title: '',\n type: 'expand',\n primary: true,\n dash: true,\n class: \"absolute z-10 top-6 right-6\",\n onClick: _ctx.fullscreen\n }, null, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ], 4)\n ]))\n}","import { resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.routeName ? 'router-link' : 'div'), {\n to: { name: _ctx.routeName }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: _normalizeClass([\"flex items-center py-2.5 px-4 shadow rounded-md border border-gray-50\", [_ctx.specificClass, {'m-auto' : _ctx.type==='home'}]]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleClick && _ctx.handleClick(...args)))\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.icon), {\n class: _normalizeClass(_ctx.svgClass)\n }, null, 8, [\"class\"])),\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_ctx.title), 1)\n ], 2)\n ]),\n _: 1\n }, 8, [\"to\"]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'Close'\r\n})\r\n","import { render } from \"./Close.vue?vue&type=template&id=30c71cce&ts=true\"\nimport script from \"./Close.vue?vue&type=script&lang=ts\"\nexport * from \"./Close.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: \"M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'HelpCenter'\r\n})\r\n","import { render } from \"./HelpCenter.vue?vue&type=template&id=fb8fe748&ts=true\"\nimport script from \"./HelpCenter.vue?vue&type=script&lang=ts\"\nexport * from \"./HelpCenter.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: \"M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: \"M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z\"\n}, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'Services'\r\n})\r\n","import { render } from \"./Services.vue?vue&type=template&id=44d386d8&ts=true\"\nimport script from \"./Services.vue?vue&type=script&lang=ts\"\nexport * from \"./Services.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ExpandIcon'\r\n})\r\n","import { render } from \"./ExpandIcon.vue?vue&type=template&id=3f66d253&ts=true\"\nimport script from \"./ExpandIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ExpandIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'LogoutIcon'\r\n})\r\n","import { render } from \"./LogoutIcon.vue?vue&type=template&id=11ca710a&ts=true\"\nimport script from \"./LogoutIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./LogoutIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport Close from '@/components/icons/Close.vue'\r\nimport HelpCenter from '@/components/icons/HelpCenter.vue'\r\nimport HomeIcon from '@/components/icons/HomeIcon.vue'\r\nimport Services from '@/components/icons/Services.vue'\r\nimport { computed, defineComponent } from 'vue'\r\nimport ExpandIcon from '@/components/icons/ExpandIcon.vue'\r\nimport LogoutIcon from '@/components/icons/LogoutIcon.vue'\r\n\r\nexport default defineComponent({\r\n name: 'TopButton.vue',\r\n components: {\r\n HelpCenter,\r\n Services,\r\n HomeIcon,\r\n Close,\r\n ExpandIcon,\r\n LogoutIcon\r\n\r\n },\r\n props: {\r\n type: String,\r\n title: String,\r\n primary: { type: Boolean, default: false },\r\n routeName: String\r\n },\r\n setup (props, context) {\r\n const specificClass = computed(() => {\r\n if (props.primary) {\r\n if (props.type === 'logout') {\r\n return 'text-semantic-negative bg-gray-50 stroke-gray-900'\r\n }\r\n if (props.type === 'expand') {\r\n return 'text-bg-0 bg-semantic-activate stroke-gray-900 border-semantic-activate'\r\n }\r\n return 'text-gray-900 bg-gray-50 stroke-gray-900'\r\n }\r\n return 'mx-4 text-gray-50 hover:bg-gray-600 stroke-gray-50'\r\n })\r\n const svgClass = computed(() => {\r\n if (!props.title) {\r\n return 'h-6 w-6 inline-block align-text-top'\r\n }\r\n return 'h-6 w-6 mr-2.5 inline-block align-text-top'\r\n })\r\n const icon = computed(() => {\r\n switch (props.type) {\r\n case 'home':\r\n return 'HomeIcon'\r\n case 'services':\r\n return 'Services'\r\n case 'help':\r\n return 'HelpCenter'\r\n case 'close':\r\n return 'Close'\r\n case 'expand':\r\n return 'ExpandIcon'\r\n case 'logout':\r\n return 'LogoutIcon'\r\n default:\r\n return ''\r\n }\r\n })\r\n const handleClick = () => {\r\n if (!props.routeName) {\r\n context.emit('close')\r\n }\r\n }\r\n return { svgClass, icon, specificClass, handleClick }\r\n }\r\n})\r\n","import { render } from \"./TopButton.vue?vue&type=template&id=bb1cf64a&ts=true\"\nimport script from \"./TopButton.vue?vue&type=script&lang=ts\"\nexport * from \"./TopButton.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { AllDashboardsModel, DashboardModel } from '@/core/model/dashboard.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\n\r\nexport const Manager = {\r\n detail (id: number): Promise> {\r\n return http.request('get', `Dashboards/${id}`)\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n },\r\n list (): Promise> {\r\n return http.request('get', 'Dashboards')\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n }\r\n}\r\n","\r\nimport TopButton from '@/components/buttons/TopButton.vue'\r\nimport ServiceDetailTitle from '@/components/titles/ServiceDetailTitle.vue'\r\nimport * as DashboardManager from '@/core/managers/dashboard.manager'\r\nimport { DashboardModel } from '@/core/model/dashboard.model'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\nimport Tools from '@/core/services/tools'\r\nimport { PAGE_TITLE } from '@/router'\r\nimport * as pbi from 'powerbi-client'\r\nimport { defineComponent, inject } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default defineComponent({\r\n components: { ServiceDetailTitle, TopButton },\r\n setup () {\r\n const toast = useToast()\r\n return { toast, logger: inject('ILogger') as ILogger }\r\n },\r\n data (): {\r\n pbiInfos: DashboardModel;\r\n mounted: boolean;\r\n dashboardHeight: number;\r\n error: string;\r\n pageName: string;\r\n description: string;\r\n powerbi: pbi.service.Service;\r\n loading: boolean;\r\n linkParams: string;\r\n dashboardLoaded: boolean;\r\n } {\r\n return {\r\n pbiInfos: {} as DashboardModel,\r\n mounted: false,\r\n dashboardHeight: 0,\r\n error: '',\r\n pageName: '',\r\n description: '',\r\n powerbi: null as unknown as pbi.service.Service,\r\n loading: true,\r\n linkParams: '0',\r\n dashboardLoaded: false\r\n }\r\n },\r\n mounted () {\r\n this.mounted = true\r\n this.getDashBoardHeight()\r\n window.addEventListener('resize', this.getDashBoardHeight)\r\n DashboardManager.Manager.detail(\r\n parseInt(this.$route.params.dashboardId as string)\r\n ).then((response) => {\r\n this.loading = false\r\n\r\n if (response.isError) {\r\n this.error = `Unable to load report : ${response.Message}`\r\n this.toast.error(this.error)\r\n } else {\r\n if (response.data) {\r\n this.pbiInfos = response.data\r\n this.createDashboard()\r\n this.pageName = this.pbiInfos.dashboardTitle\r\n this.description = this.pbiInfos.name\r\n Tools.updatePageName(\r\n PAGE_TITLE[this.$route.name as string],\r\n this.pageName\r\n )\r\n this.linkParams = this.pbiInfos.id_Service.toString()\r\n\r\n this.logger.logEvent({\r\n name: 'UserNavigation',\r\n properties: {\r\n contextName: 'Dashboard',\r\n categoryName: '',\r\n subcategoryName: this.pbiInfos.dashboardTitle,\r\n ActionName: 'view'\r\n }\r\n })\r\n }\r\n }\r\n })\r\n },\r\n unmounted () {\r\n window.removeEventListener('resize', this.getDashBoardHeight)\r\n },\r\n methods: {\r\n createDashboard () {\r\n const permissions = pbi.models.Permissions.All\r\n const filters = this.pbiInfos.filters.map((f) => {\r\n return {\r\n $schema: f.$schema,\r\n target: {\r\n table: f.target.table,\r\n column: f.target.column\r\n },\r\n operator: (f as any).operator,\r\n values: [...(f as any).values]\r\n }\r\n })\r\n\r\n const config = {\r\n type: 'report',\r\n tokenType: pbi.models.TokenType.Embed,\r\n accessToken: this.pbiInfos.token,\r\n embedUrl: this.pbiInfos.embedUrl,\r\n id: this.pbiInfos.id,\r\n pageView: 'actualSize',\r\n permissions,\r\n filters,\r\n settings: {\r\n filterPaneEnabled: false,\r\n layoutType:\r\n document.ontouchstart === undefined\r\n ? pbi.models.LayoutType.Master\r\n : pbi.models.LayoutType.MobilePortrait\r\n }\r\n } as pbi.IReportEmbedConfiguration\r\n this.powerbi = new pbi.service.Service(\r\n pbi.factories.hpmFactory,\r\n pbi.factories.wpmpFactory,\r\n pbi.factories.routerFactory\r\n )\r\n const dashboardContainer = this.$refs.dashboardContainer\r\n const dashboard = this.powerbi.embed(\r\n dashboardContainer as HTMLElement,\r\n config\r\n )\r\n this.dashboardLoaded = true\r\n\r\n dashboard.off('loaded')\r\n dashboard.off('rendered')\r\n },\r\n getDashBoardHeight () {\r\n // footer height is commented since footer is disabled for now\r\n const title = document.getElementById('title')\r\n const header = document.getElementById('header')\r\n const navBar = document.getElementById('navigationBar')\r\n const backLinkHeight = title ? title.offsetHeight : 0\r\n const windowHeight = window.innerHeight\r\n const headerHeight = header ? header.offsetHeight : 0\r\n const navBarHeight = navBar ? navBar.offsetHeight : 0\r\n // const footerHeight = document.getElementById('footer')?.offsetHeight\r\n this.dashboardHeight =\r\n windowHeight -\r\n headerHeight -\r\n navBarHeight -\r\n // footerHeight! -\r\n backLinkHeight -\r\n 120\r\n },\r\n fullscreen () {\r\n if (this.$refs.dashboardContainer) {\r\n // Get a reference to the embedded report.\r\n const report = this.powerbi.get(\r\n this.$refs.dashboardContainer as HTMLElement\r\n )\r\n // Displays the report in full screen mode.\r\n report.fullscreen()\r\n return\r\n }\r\n const container = document.getElementById('dashboardContainer')\r\n if (container !== null) {\r\n const report = this.powerbi.get(container)\r\n // Displays the report in full screen mode.\r\n report.fullscreen()\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./Dashboard.vue?vue&type=template&id=6df1cf18&scoped=true&ts=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=6df1cf18&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6df1cf18\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1366a3fc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { class: \"font-display text-white text-2xl my-4 font-bold\" }\nconst _hoisted_4 = { class: \"flex flex-wrap gap-4 justify-center lg:justify-start\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { class: \"flex flex-col gap-4\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", { class: \"my-6 border-t-gray-800\" }, null, -1))\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"font-display text-white text-2xl my-4 font-bold skeleton\" }, null, -1))\nconst _hoisted_10 = { class: \"flex flex-wrap gap-4 justify-center lg:justify-start\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"body body-1 font-bold mt-6\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DashboardCard = _resolveComponent(\"DashboardCard\")!\n const _component_DashboardsListMenuShell = _resolveComponent(\"DashboardsListMenuShell\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_DashboardsListMenuShell, {\n services: _ctx.services,\n error: _ctx.error,\n loading: _ctx.loading,\n isDashboard: true,\n onSearchDashboard: _ctx.filterServices\n }, {\n default: _withCtx(() => [\n (!_ctx.loading && _ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.services, (service, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n _createVNode(_TransitionGroup, {\n name: \"fade\",\n tag: \"div\"\n }, {\n default: _withCtx(() => [\n (service.active)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(service.name), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(service.services, (serv, j) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: j,\n class: \"w-full\"\n }, [\n (serv.active)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(serv.dashboards, (group, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n (group.active)\n ? (_openBlock(), _createBlock(_component_DashboardCard, {\n key: index,\n title: group.title,\n service: serv.name,\n previewImageUrl: group.previewImageUrl,\n description: group.description,\n id: group.id\n }, null, 8, [\"title\", \"service\", \"previewImageUrl\", \"description\", \"id\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1024)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (i) => {\n return _createElementVNode(\"div\", { key: i }, [\n _createElementVNode(\"div\", null, [\n _hoisted_9,\n _createElementVNode(\"div\", _hoisted_10, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (index) => {\n return _createVNode(_component_DashboardCard, {\n key: index,\n loading: _ctx.loading\n }, null, 8, [\"loading\"])\n }), 64))\n ])\n ])\n ])\n }), 64))\n ]))\n ]),\n _: 1\n }, 8, [\"services\", \"error\", \"loading\", \"onSearchDashboard\"]),\n (!_ctx.services.length && !_ctx.error && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, _toDisplayString(_ctx.$t(\"allReports.notFound\")), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2e24eb8f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mt-6\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", null, \"Dashboards\", -1))\nconst _hoisted_3 = { class: \"flex flex-col lg:flex-row text-gray-200 w-full\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_6 = {\n key: 2,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_7 = {\n key: 3,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_8 = { class: \"w-[70%] bg-bg-0/50 backdrop-blur-md h-full transit\" }\nconst _hoisted_9 = { class: \"grow ml-0 lg:ml-6 w-full lg:max-w-[80%]\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"flex lg:hidden justify-center my-7\"\n}\nconst _hoisted_11 = { class: \"ml-3 body-1 font-bold\" }\nconst _hoisted_12 = {\n key: 1,\n class: \"flex lg:hidden justify-center my-7\"\n}\nconst _hoisted_13 = {\n key: 2,\n class: \"flex lg:hidden justify-center my-7\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SearchInput = _resolveComponent(\"SearchInput\")!\n const _component_DashboardsListMenu = _resolveComponent(\"DashboardsListMenu\")!\n const _component_FilterIcon = _resolveComponent(\"FilterIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_SearchInput, {\n placeholder: `Search for dashboards...`,\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('search-dashboard', _ctx.search))),\n onClearInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('search-dashboard', ''))),\n class: \"my-4 w-fit\",\n modelValue: _ctx.search,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.search) = $event))\n }, null, 8, [\"placeholder\", \"modelValue\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n (!_ctx.error && !_ctx.loading && _ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.services, (report, i) => {\n return (_openBlock(), _createBlock(_component_DashboardsListMenu, {\n key: i,\n dashboard: report,\n onShowDetail: ($event: any) => (_ctx.handleDetailDashboard($event, report)),\n onShowService: ($event: any) => (_ctx.handleServiceDashboard($event, report)),\n allActive: _ctx.allActive,\n allActiveInCategory: _ctx.allActiveInCategory\n }, null, 8, [\"dashboard\", \"onShowDetail\", \"onShowService\", \"allActive\", \"allActiveInCategory\"]))\n }), 128))\n ]))\n : (!_ctx.error && !_ctx.loading && !_ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t(\"allReports.notFound\")), 1))\n : (_ctx.error && !_ctx.loading && !_ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(_ctx.error), 1))\n : (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(5, (i) => {\n return _createVNode(_component_DashboardsListMenu, {\n key: i,\n loading: _ctx.loading\n }, null, 8, [\"loading\"])\n }), 64))\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.error && !_ctx.loading && _ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 4,\n class: _normalizeClass([\"block lg:hidden fixed h-[calc(100vh-56px-63px)] z-10 top-[63px] transit w-screen\", _ctx.filtersDisplayed ? 'left-0' : '-left-full']),\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.closeFilters && _ctx.closeFilters(...args)))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.services, (report, i) => {\n return (_openBlock(), _createBlock(_component_DashboardsListMenu, {\n key: i,\n dashboard: report,\n onShowDetail: ($event: any) => (_ctx.handleDetailDashboard($event, report)),\n onShowService: ($event: any) => (_ctx.handleServiceDashboard($event, report))\n }, null, 8, [\"dashboard\", \"onShowDetail\", \"onShowService\"]))\n }), 128))\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n (_ctx.services.length && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.openFilters && _ctx.openFilters(...args))),\n class: \"text-text-title stroke-text-title py-2 px-4 border border-text-title rounded-lg flex items-center filters-button\"\n }, [\n _createVNode(_component_FilterIcon, { class: \"h-4\" }),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t(\"allDashboards.filters\")), 1)\n ])\n ]))\n : (!_ctx.error && !_ctx.loading && !_ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, _toDisplayString(_ctx.$t(\"allReports.notFound\")), 1))\n : (_ctx.error && !_ctx.loading && !_ctx.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b82ba58\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"text-text-alt\" }\nconst _hoisted_2 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"flex items-center justify-between font-normal cursor-pointer py-1\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => {_ctx.$emit('show-list'); _ctx.open = !_ctx.open})\n }, [\n (_ctx.dashboard && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"h4\", {\n key: 0,\n class: _normalizeClass(_ctx.dashboard.active ? 'font-bold' : '!font-normal !text-text-alt'),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('show-service', _ctx.dashboard.name)))\n }, _toDisplayString(_ctx.dashboard.name), 3))\n : _createCommentVNode(\"\", true),\n (!_ctx.dashboard && _ctx.loading)\n ? (_openBlock(), _createElementBlock(\"h4\", {\n key: 1,\n class: _normalizeClass(_ctx.loading ? 'skeleton' : '')\n }, null, 2))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.dashboard && _ctx.dashboard.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"mt-1.5 mb-2 w-5/6 ml-4\", {'border-l-2' : _ctx.allActiveInCategory}])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.dashboard.services, (category, index) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"body-2 py-3\"\n }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (_ctx.$emit('show-detail', category.name)),\n class: _normalizeClass([{'font-bold border-l-2 border-semantic-activate': category.active && !_ctx.allActiveInCategory}, \"w-fit cursor-pointer px-4\"])\n }, _toDisplayString(category.name), 11, _hoisted_2)\n ])), [\n [_vShow, _ctx.dashboard.active && !_ctx.allActive]\n ])\n }), 128))\n ], 2))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { DashboardService } from '@/core/model/dashboard.model'\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardsListMenu',\r\n props: {\r\n dashboard: {\r\n type: Object as PropType\r\n },\r\n loading: { type: Boolean, default: false },\r\n allActive: { type: Boolean, default: true },\r\n allActiveInCategory: { type: Boolean, default: true }\r\n },\r\n data () {\r\n return {\r\n open: false\r\n }\r\n }\r\n})\r\n","import { render } from \"./DashboardsListMenu.vue?vue&type=template&id=6b82ba58&scoped=true&ts=true\"\nimport script from \"./DashboardsListMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./DashboardsListMenu.vue?vue&type=script&lang=ts\"\n\nimport \"./DashboardsListMenu.vue?vue&type=style&index=0&id=6b82ba58&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6b82ba58\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FilterIcon'\r\n})\r\n","import { render } from \"./FilterIcon.vue?vue&type=template&id=12234896&ts=true\"\nimport script from \"./FilterIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { DOMEvent } from '@/core/model/event.model'\r\nimport { Ref, ref } from 'vue'\r\n\r\nexport default function manageReportsMenu () : {\r\n filtersDisplayed: Ref,\r\n closeFilters: ($event: DOMEvent) => void,\r\n openFilters: () => void\r\n } {\r\n const filtersDisplayed = ref(false)\r\n\r\n function closeFilters ($event: DOMEvent) {\r\n if ($event.target && $event.target.matches('.w-screen')) {\r\n document.body.classList.remove('overflow-hidden')\r\n filtersDisplayed.value = false\r\n }\r\n }\r\n\r\n function openFilters () {\r\n document.body.classList.add('overflow-hidden')\r\n filtersDisplayed.value = true\r\n }\r\n\r\n return { filtersDisplayed, closeFilters, openFilters }\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative block\" }\nconst _hoisted_2 = { class: \"absolute inset-y-0 left-0 flex items-center pl-2\" }\nconst _hoisted_3 = [\"placeholder\", \"value\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SearchIcon = _resolveComponent(\"SearchIcon\")!\n const _component_CrossIcon = _resolveComponent(\"CrossIcon\")!\n\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, [\n _createVNode(_component_SearchIcon, { class: \"h-5 w-5 fill-text-alt\" })\n ]),\n (_ctx.modelValue)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"absolute inset-y-0 right-0 flex items-center pr-2 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => {_ctx.$emit('update:modelValue', ''); _ctx.$emit('clearInput') })\n }, [\n _createVNode(_component_CrossIcon, { class: \"h-5 w-5 stroke-text-alt\" })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"input\", {\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\",\n placeholder: _ctx.placeholder,\n value: _ctx.modelValue,\n type: \"text\",\n name: \"search\",\n onInput: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('update:modelValue', $event.target.value)))\n }, null, 40, _hoisted_3)\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20.005\",\n viewBox: \"0 0 20 20.005\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n id: \"Icon_ionic-ios-search\",\n \"data-name\": \"Icon ionic-ios-search\",\n d: \"M24.265,23.05,18.7,17.436a7.927,7.927,0,1,0-1.2,1.219l5.526,5.578a.856.856,0,0,0,1.208.031A.862.862,0,0,0,24.265,23.05ZM12.474,18.722A6.259,6.259,0,1,1,16.9,16.889,6.221,6.221,0,0,1,12.474,18.722Z\",\n transform: \"translate(-4.5 -4.493)\",\n fill: \"#a9b8db\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'SearchIcon'\r\n})\r\n","import { render } from \"./SearchIcon.vue?vue&type=template&id=52a787e7&ts=true\"\nimport script from \"./SearchIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent, ref } from 'vue'\r\nimport CrossIcon from './icons/CrossIcon.vue'\r\nimport SearchIcon from './icons/SearchIcon.vue'\r\n\r\nexport default defineComponent({\r\n components: { SearchIcon, CrossIcon },\r\n name: 'SearchInput',\r\n props: {\r\n placeholder: String,\r\n modelValue: { type: [String, Number] }\r\n },\r\n setup () {\r\n const search = ref('')\r\n return { search }\r\n }\r\n})\r\n","import { render } from \"./SearchInput.vue?vue&type=template&id=1f945a3c&ts=true\"\nimport script from \"./SearchInput.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchInput.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport DashboardsListMenu from '@/components/buttons/DashboardsListMenu.vue'\r\nimport FilterIcon from '@/components/icons/FilterIcon.vue'\r\nimport manageReportsMenu from '@/core/composables/reportsMenu.composable'\r\nimport { DashboardService } from '@/core/model/dashboard.model'\r\nimport { defineComponent, PropType, ref } from 'vue'\r\nimport SearchInput from '@/components/SearchInput.vue'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardsListMenuShell',\r\n components: { DashboardsListMenu, FilterIcon, SearchInput },\r\n props: {\r\n services: Array as PropType,\r\n error: String,\r\n loading: Boolean\r\n },\r\n setup () {\r\n const manageMenu = manageReportsMenu()\r\n const filtersDisplayed = ref(manageMenu.filtersDisplayed)\r\n const openFilters = manageMenu.openFilters\r\n const closeFilters = manageMenu.closeFilters\r\n const allActive = ref(true)\r\n const allActiveInCategory = ref(true)\r\n const search = ref('')\r\n return { filtersDisplayed, openFilters, closeFilters, allActive, allActiveInCategory, search }\r\n },\r\n methods: {\r\n handleServiceDashboard ($e: string, dashboard: DashboardService) {\r\n let allActive = -1\r\n for (const service of this.services!) {\r\n if (service.active && service !== dashboard) {\r\n allActive += 1\r\n }\r\n }\r\n if (allActive > -1) {\r\n for (const service of this.services!) {\r\n service.active = false\r\n }\r\n\r\n dashboard.active = !dashboard.active\r\n for (const serv of dashboard.services) {\r\n serv.active = true\r\n }\r\n this.allActiveInCategory = true\r\n this.allActive = false\r\n } else {\r\n for (const service of this.services!) {\r\n service.active = true\r\n for (const serv of service.services) {\r\n serv.active = true\r\n }\r\n }\r\n this.allActiveInCategory = false\r\n this.allActive = true\r\n }\r\n },\r\n handleDetailDashboard ($e: string, dashboard: DashboardService) {\r\n let allActive = -1\r\n const serviceSelected = dashboard.services.find((t) => t.name === $e)\r\n for (const service of this.services!) {\r\n for (const serv of service.services) {\r\n if (serv.active && serv !== serviceSelected) {\r\n allActive += 1\r\n }\r\n }\r\n }\r\n\r\n if (allActive > -1) {\r\n for (const service of this.services!) {\r\n service.active = false\r\n for (const serv of service.services) {\r\n serv.active = false\r\n }\r\n }\r\n\r\n serviceSelected!.active = !serviceSelected!.active\r\n dashboard.active = !dashboard.active\r\n this.allActiveInCategory = false\r\n this.allActive = false\r\n } else {\r\n for (const service of this.services!) {\r\n service.active = true\r\n for (const serv of service.services) {\r\n serv.active = true\r\n }\r\n }\r\n this.allActive = true\r\n this.allActiveInCategory = true\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./DashboardsListMenuShell.vue?vue&type=template&id=2e24eb8f&scoped=true&ts=true\"\nimport script from \"./DashboardsListMenuShell.vue?vue&type=script&lang=ts\"\nexport * from \"./DashboardsListMenuShell.vue?vue&type=script&lang=ts\"\n\nimport \"./DashboardsListMenuShell.vue?vue&type=style&index=0&id=2e24eb8f&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2e24eb8f\"]])\n\nexport default __exports__","\r\nimport DashboardsListMenuShell from '@/components/buttons/DashboardsListMenuShell.vue'\r\nimport DashboardCard from '@/components/cards/DashboardCard.vue'\r\nimport handleFilters from '@/core/composables/handleFilters.composable'\r\nimport * as DashboardManager from '@/core/managers/dashboard.manager'\r\nimport { DashboardService } from '@/core/model/dashboard.model'\r\nimport { defineComponent, Ref, ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default defineComponent({\r\n components: {\r\n DashboardCard,\r\n DashboardsListMenuShell\r\n },\r\n name: 'Dashboard.list.vue',\r\n setup () {\r\n const toast = useToast()\r\n const error = ref('')\r\n const loading = ref(true)\r\n const services: Ref = ref([])\r\n const filterHandler = handleFilters()\r\n const isVisible = filterHandler.isVisible\r\n const isOnceSelected = filterHandler.isOnceSelected\r\n const allSelected = ref(true)\r\n return {\r\n toast,\r\n error,\r\n loading,\r\n services,\r\n isVisible,\r\n isOnceSelected,\r\n allSelected\r\n }\r\n },\r\n created () {\r\n // renaud\r\n DashboardManager.Manager.list().then((response) => {\r\n this.loading = false\r\n if (!response.isError && response.data) {\r\n const services = response.data.categories\r\n this.services = services.map((s) => ({ ...s, active: true }))\r\n for (const service of this.services) {\r\n for (const ser of service.services) {\r\n ser.active = true\r\n for (const dashboard of (ser as any).dashboards) {\r\n dashboard.active = true\r\n }\r\n }\r\n }\r\n } else {\r\n this.error = this.$t('allDashboards.error', {\r\n error: response.Message\r\n })\r\n this.toast.error(this.error)\r\n }\r\n })\r\n },\r\n watch: {\r\n services: {\r\n deep: true,\r\n immediate: true,\r\n handler () {\r\n // for (const service of this.services) {\r\n // const checked = service.services.every(({ active }) => !active)\r\n // }\r\n this.allSelected = !this.allSelected\r\n }\r\n }\r\n },\r\n methods: {\r\n filterServices ($event: string) {\r\n // behaviour if search field is empty\r\n if ($event === '') {\r\n this.services = this.services.map((s) => ({ ...s, active: true }))\r\n for (const service of this.services) {\r\n for (const ser of service.services) {\r\n ser.active = true\r\n for (const dashboard of (ser as any).dashboards) {\r\n dashboard.active = true\r\n }\r\n }\r\n }\r\n } else {\r\n // behaviour with search input\r\n this.services = this.services.map((s) => ({ ...s, active: false }))\r\n for (const service of this.services) {\r\n for (const ser of service.services) {\r\n ser.active = false\r\n for (const dashboard of (ser as any).dashboards) {\r\n dashboard.active = false\r\n }\r\n }\r\n }\r\n for (const service of this.services) {\r\n for (const ser of service.services) {\r\n (ser as any).dashboards.forEach(\r\n (d: any) => {\r\n if (d.title.toLowerCase().includes($event.toLowerCase()) || d.description.toLowerCase().includes($event.toLowerCase())) {\r\n service.active = true\r\n ser.active = true\r\n d.active = true\r\n }\r\n }\r\n )\r\n }\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./Dashboards.list.vue?vue&type=template&id=1366a3fc&scoped=true&ts=true\"\nimport script from \"./Dashboards.list.vue?vue&type=script&lang=ts\"\nexport * from \"./Dashboards.list.vue?vue&type=script&lang=ts\"\n\nimport \"./Dashboards.list.vue?vue&type=style&index=0&id=1366a3fc&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1366a3fc\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-screen text-gray-300 text-center text-xl p-6 flex flex-col\" }\nconst _hoisted_2 = { class: \"h-fit my-auto\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"text-3xl mb-10\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"mb-8\"\n}\nconst _hoisted_5 = {\n key: 2,\n class: \"text-3xl mb-10\"\n}\nconst _hoisted_6 = {\n key: 3,\n class: \"mb-8\"\n}\nconst _hoisted_7 = {\n key: 4,\n class: \"text-3xl mb-10\"\n}\nconst _hoisted_8 = {\n key: 5,\n class: \"mb-8\"\n}\nconst _hoisted_9 = {\n class: \"text-button-1 font-bold mb-8\",\n dir: \"ltr\"\n}\nconst _hoisted_10 = {\n key: 6,\n class: \"mb-8\"\n}\nconst _hoisted_11 = { class: \"m-auto\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_lottie_player = _resolveComponent(\"lottie-player\")!\n const _component_TopButton = _resolveComponent(\"TopButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_lottie_player, {\n autoplay: \"\",\n loop: \"\",\n mode: \"normal\",\n src: \"https://assets8.lottiefiles.com/packages/lf20_7e1tyd6b.json\",\n speed: \"0.25\",\n class: \"not-found-animation\"\n }),\n (_ctx.type === 'notFound')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\"error.notFound.title\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'notFound')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_ctx.$t(\"error.notFound.message1\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'unauthorized')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t(\"error.unauthorized.title\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'unauthorized')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(_ctx.$t(\"error.unauthorized.message1\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'serverError')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t(\"error.server.title\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.type === 'serverError')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _toDisplayString(_ctx.$t(\"error.server.message1\")), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, _toDisplayString(_ctx.$t(\"error.notFound.message2\")), 1),\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(_ctx.$t(\"error.notFound.email\")), 1),\n (_ctx.type !== 'unauthorized')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _toDisplayString(_ctx.$t(\"error.notFound.message3\")), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_11, [\n (_ctx.type !== 'unauthorized')\n ? (_openBlock(), _createBlock(_component_TopButton, {\n key: 0,\n title: _ctx.$t('home.title'),\n type: 'home',\n primary: true,\n routeName: 'home',\n style: {\"width\":\"200px\"}\n }, null, 8, [\"title\"]))\n : (_openBlock(), _createBlock(_component_TopButton, {\n key: 1,\n title: _ctx.$t('auth.logout'),\n type: 'logout',\n primary: true,\n style: {\"width\":\"fit-content\"},\n onClick: _ctx.logout,\n class: \"m-auto\"\n }, null, 8, [\"title\", \"onClick\"]))\n ])\n ])\n ]))\n}","import { UserModel } from '@/core/model/user.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\n\r\nexport const Manager = {\r\n detail (): Promise> {\r\n return http.request('get', 'Users/me')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n}\r\n","\r\nimport TopButton from '@/components/buttons/TopButton.vue'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport '@lottiefiles/lottie-player'\r\nimport { defineComponent, inject, InjectionKey } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\nimport * as UserManager from '@/core/managers/user.manager'\r\nimport store from '@/store'\r\n\r\nexport default defineComponent({\r\n inject: ['ILoginService'],\r\n props: {\r\n type: { type: String, default: 'notFound' }\r\n },\r\n components: { TopButton },\r\n setup () {\r\n const router = useRouter()\r\n if (router.currentRoute.value.name === 'unauthorized') {\r\n UserManager.Manager.detail().then((response) => {\r\n if (!response.isError && response.data) {\r\n store.dispatch('defineUser', response.data)\r\n router.push({ name: 'home' })\r\n }\r\n })\r\n }\r\n\r\n const ILoginService: InjectionKey | undefined =\r\n inject('ILoginService')\r\n const logout = () => {\r\n if (ILoginService) {\r\n (ILoginService as unknown as ILoginService).SignOut().then(() => {\r\n router.push({ name: 'login' })\r\n })\r\n }\r\n }\r\n return {\r\n logout\r\n }\r\n }\r\n})\r\n","import { render } from \"./NotFound.vue?vue&type=template&id=6834c112&ts=true\"\nimport script from \"./NotFound.vue?vue&type=script&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&lang=ts\"\n\nimport \"./NotFound.vue?vue&type=style&index=0&id=6834c112&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"py-6 h-full\"\n}\nconst _hoisted_2 = { class: \"mt-10\" }\nconst _hoisted_3 = { class: \"flex mb-6\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"body-1 body-alt font-bold\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", null, null, -1)\nconst _hoisted_6 = {\n key: 1,\n class: \"py-6 text-gray-200\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PageTitle = _resolveComponent(\"PageTitle\")!\n const _component_FleetTabs = _resolveComponent(\"FleetTabs\")!\n const _component_ListCardView = _resolveComponent(\"ListCardView\")!\n const _component_SearchInput = _resolveComponent(\"SearchInput\")!\n const _component_FleetCard = _resolveComponent(\"FleetCard\")!\n const _component_Observer = _resolveComponent(\"Observer\")!\n\n return (!_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_PageTitle, {\n title: _ctx.$t('fleet.title')\n }, null, 8, [\"title\"]),\n _createVNode(_component_FleetTabs, { onTabSelected: _ctx.displayTabInfos }, null, 8, [\"onTabSelected\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_ListCardView, { onChangeView: _ctx.changeView }, null, 8, [\"onChangeView\"]),\n _createVNode(_component_SearchInput, {\n placeholder: `Search for ${_ctx.tabDisplayed}...`,\n \"onUpdate:modelValue\": [\n _ctx.searchAssets,\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.search) = $event))\n ],\n modelValue: _ctx.search,\n class: \"ml-4\"\n }, null, 8, [\"placeholder\", \"onUpdate:modelValue\", \"modelValue\"])\n ]),\n _createElementVNode(\"div\", {\n ref: \"fleetList\",\n class: _normalizeClass([\"items-center justify-center gap-x-4 gap-y-8\", _ctx.cardView ? 'grid' : '']),\n style: {\"grid-template-columns\":\"repeat(auto-fill, minmax(280px, 1fr))\"}\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.vessels, (vessel) => {\n return (_openBlock(), _createBlock(_component_FleetCard, {\n key: vessel.id,\n \"card-view\": _ctx.cardView,\n id: vessel.id,\n name: vessel.name,\n type: vessel.type,\n course: vessel.heading,\n lastCourseUpdate: vessel.lastPositionUpdate,\n country: vessel.country_alpha2,\n length: vessel.loa,\n speed: vessel.speed,\n imo: vessel.imo,\n mmsi: vessel.mmsi,\n isFav: vessel.isFavorite,\n imgUrl: vessel.imageUrl,\n categoryId: _ctx.categoryId\n }, null, 8, [\"card-view\", \"id\", \"name\", \"type\", \"course\", \"lastCourseUpdate\", \"country\", \"length\", \"speed\", \"imo\", \"mmsi\", \"isFav\", \"imgUrl\", \"categoryId\"]))\n }), 128)),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(10, (i) => {\n return _createElementVNode(\"span\", {\n key: i,\n class: _normalizeClass(_ctx.cardView ? '' : 'w-full')\n }, [\n (_ctx.loadingList)\n ? (_openBlock(), _createBlock(_component_FleetCard, {\n key: i,\n loadingCard: true,\n \"card-view\": _ctx.cardView\n }, null, 8, [\"card-view\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n }), 64)),\n (!_ctx.loadingList && !_ctx.vessels.length && _ctx.tabDisplayed)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\"fleet.notFound\", { asset: _ctx.tabDisplayed })), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_ctx.vessels.length && _ctx.observe)\n ? (_openBlock(), _createBlock(_component_Observer, {\n key: 0,\n onOnChange: _ctx.loadDetails\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"onOnChange\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-51d32864\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"z-10 skeleton\" }, null, -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = {\n key: 2,\n class: \"text-gray-200\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.tabs.length && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(_ctx.tabGroupClass)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tabs, (tab, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: i,\n class: _normalizeClass([\r\n { 'border-b-2 !border-filter text-filter': tab.displayed },\r\n _ctx.tabClass,\r\n ])\n }, [\n _createElementVNode(\"span\", {\n class: \"cursor-pointer z-10\",\n onClick: ($event: any) => (_ctx.selectTab(i))\n }, _toDisplayString(tab.name), 9, _hoisted_1)\n ], 2))\n }), 128)),\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.tabBottomClass)\n }, null, 2)\n ], 2))\n : (!_ctx.tabs.length && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass(_ctx.tabGroupClass)\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.tabClass)\n }, _hoisted_3, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass(_ctx.tabBottomClass)\n }, null, 2)\n ], 2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_ctx.error), 1))\n}","import { FleetCategoriesModel, FleetDetailModel, FleetListModel } from '@/core/model/fleet.model'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\nimport { AxiosPromise } from 'axios'\r\nimport { TimeSheet } from '@/core/model/timeline.model'\r\n\r\nexport const Manager = {\r\n categories (): Promise> {\r\n return http.request('get', 'Fleet/categories')\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n },\r\n assets (categoryId: number, index = 0, size?: number, search?: string): Promise> {\r\n let request = `Fleet/categories/${categoryId}/assets?pageIndex=${index}`\r\n if (search) request += `&search=${search}`\r\n if (size) request += `&pageSize=${size}`\r\n\r\n return http.request('get', request)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n },\r\n detail (categoryId: number, assetId: number): Promise> {\r\n return http.request('get', `Fleet/categories/${categoryId}/assets/${assetId}`)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n },\r\n manageFavourite (categoryId: number, assetId: number, favourite: boolean): AxiosPromise {\r\n const favouriteMethod = favourite ? 'post' : 'delete'\r\n return http.emptyResponseRequest(favouriteMethod, `Fleet/categories/${categoryId}/assets/${assetId}/favorite`)\r\n },\r\n timesheet (categoryId: number, assetId: number, period: number): Promise> {\r\n return http.request('get', `Fleet/categories/${categoryId}/assets/${assetId}/TimeSheet/${period}`)\r\n .then((rep: ApiResult) => rep)\r\n .catch(err => err)\r\n }\r\n\r\n}\r\n","\r\nimport * as FleetManager from '@/core/managers/fleet.manager'\r\nimport { FleetCategoryModel } from '@/core/model/fleet.model'\r\nimport { defineComponent } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default defineComponent({\r\n name: 'FleetTabs',\r\n setup () {\r\n const toast = useToast()\r\n return { toast }\r\n },\r\n data (): { tabs: FleetCategoryModel[]; error: string } {\r\n return {\r\n tabs: [],\r\n error: ''\r\n }\r\n },\r\n created () {\r\n FleetManager.Manager.categories().then((response) => {\r\n if (!response.isError && response.data) {\r\n this.tabs = response.data.categories\r\n this.tabs = this.tabs.map((tab) => ({ ...tab, displayed: false }))\r\n if (this.$route.params && this.$route.params.categoryId) {\r\n const indexInTabs = this.tabs.findIndex((tab) => tab.id === +this.$route.params.categoryId)\r\n this.selectTab(indexInTabs || 0)\r\n } else {\r\n this.selectTab(0)\r\n }\r\n } else {\r\n this.error = `${this.$t('fleet.errorCategory')}${response.Message}`\r\n this.toast.error(this.error)\r\n }\r\n })\r\n },\r\n computed: {\r\n tabGroupClass () {\r\n return 'flex w-full pt-3 text-gray-100 font-bold overflow-x-scroll no-scroll relative'\r\n },\r\n tabBottomClass () {\r\n return 'absolute w-full h-0.5 bg-bg-0 bottom-0 z-1'\r\n },\r\n tabClass () {\r\n return 'px-4 pb-3 border-b-2 border-bg-0 relative z-50'\r\n }\r\n },\r\n methods: {\r\n selectTab (index: number) {\r\n for (const tab of this.tabs) {\r\n tab.displayed = false\r\n }\r\n this.tabs[index].displayed = true\r\n sessionStorage.setItem('fleetTab', index.toString())\r\n this.$router.replace({ params: { categoryId: `${this.tabs[index].id}` } })\r\n this.$emit('tab-selected', this.tabs[index])\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetTabs.vue?vue&type=template&id=51d32864&scoped=true&ts=true\"\nimport script from \"./FleetTabs.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetTabs.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetTabs.vue?vue&type=style&index=0&id=51d32864&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-51d32864\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex p-1 rounded-md bg-bg-0 w-fit\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.components, (component, i) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(component.name), {\n key: i,\n onClick: ($event: any) => (_ctx.changeView(component.button)),\n class: _normalizeClass([\"cursor-pointer h-6 w-6 p-1 rounded-md fill-text-alt m-auto hover:bg-bg-2\", [\r\n _ctx.type === component.button\r\n ? 'bg-semantic-activate !fill-bg-0 hover:!fill-text-alt shadowed'\r\n : 'bg-transparent',\r\n i !== _ctx.components.length - 1 ? 'mr-1' : '',\r\n ]])\n }, null, 8, [\"onClick\", \"class\"]))\n }), 128))\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = [\"stroke\", \"fill\"]\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 19)\nconst _hoisted_21 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n version: \"1.1\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\"enable-background\":\"new 0 0 512 512\"},\n \"xml:space\": \"preserve\",\n stroke: _ctx.stroke,\n fill: _ctx.fill\n }, _hoisted_21, 8, _hoisted_1))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'CardViewIcon',\r\n props: {\r\n stroke: { type: String, default: 'currentColor' },\r\n fill: { type: String, default: 'currentColor' }\r\n }\r\n})\r\n","import { render } from \"./CardViewIcon.vue?vue&type=template&id=18f976c5&ts=true\"\nimport script from \"./CardViewIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./CardViewIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"stroke\", \"fill\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m640 506.417969h-440v-50h440zm-490-25c0-41.359375-33.640625-75-75-75s-75 33.640625-75 75c0 41.355469 33.640625 75 75 75s75-33.644531 75-75zm-50 0c0 13.78125-11.214844 25-25 25s-25-11.21875-25-25c0-13.785157 11.214844-25 25-25s25 11.214843 25 25zm540-233.75h-440v50h440zm-490 25c0-41.359375-33.640625-75-75-75s-75 33.640625-75 75c0 41.355469 33.640625 75 75 75s75-33.644531 75-75zm-50 0c0 13.78125-11.214844 25-25 25s-25-11.21875-25-25c0-13.785157 11.214844-25 25-25s25 11.214843 25 25zm540-225h-440v50h440zm-490 25c0-41.359375-33.640625-75-75-75s-75 33.640625-75 75c0 41.355469 33.640625 75 75 75s75-33.644531 75-75zm-50 0c0 13.78125-11.214844 25-25 25s-25-11.21875-25-25c0-13.785157 11.214844-25 25-25s25 11.214843 25 25zm0 0\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n height: \"682pt\",\n viewBox: \"-21 -62 682.66669 682\",\n width: \"682pt\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: _ctx.stroke,\n fill: _ctx.fill\n }, _hoisted_3, 8, _hoisted_1))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ListIcon',\r\n props: {\r\n stroke: { type: String, default: 'currentColor' },\r\n fill: { type: String, default: 'currentColor' }\r\n }\r\n})\r\n","import { render } from \"./ListIcon.vue?vue&type=template&id=41c3211a&ts=true\"\nimport script from \"./ListIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ListIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport CardViewIcon from '@/components/icons/CardViewIcon.vue'\r\nimport ListIcon from '@/components/icons/ListIcon.vue'\r\n\r\nexport default defineComponent({\r\n components: { ListIcon, CardViewIcon },\r\n name: 'ListCardView',\r\n data () {\r\n return {\r\n type:\r\n sessionStorage.getItem('cardView') === 'true' ||\r\n !sessionStorage.getItem('cardView')\r\n ? 'card'\r\n : 'list',\r\n components: [\r\n { name: CardViewIcon, button: 'card' },\r\n { name: ListIcon, button: 'list' }\r\n ]\r\n }\r\n },\r\n methods: {\r\n changeView (type: string) {\r\n this.$emit('change-view', type)\r\n this.type = type\r\n }\r\n }\r\n})\r\n","import { render } from \"./ListCardView.vue?vue&type=template&id=9730ec6e&ts=true\"\nimport script from \"./ListCardView.vue?vue&type=script&lang=ts\"\nexport * from \"./ListCardView.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.cardView ? 'FleetCardCardView' : 'FleetCardListView'), {\n onSeeAssetDetails: _cache[0] || (_cache[0] = ($event: any) => (_ctx.seeAssetDetails(_ctx.$e))),\n onChangeFavStatus: _ctx.changeFavStatus,\n key: _ctx.id,\n id: _ctx.id,\n name: _ctx.name,\n type: _ctx.type,\n course: _ctx.course,\n lastCourseUpdate: _ctx.lastCourseUpdate,\n length: _ctx.length,\n speed: _ctx.speed,\n imo: _ctx.imo,\n mmsi: _ctx.mmsi,\n isFav: _ctx.isFav,\n categoryId: _ctx.categoryId,\n loadingCard: _ctx.loadingCard,\n imgUrl: _ctx.imgUrl\n }, null, 40, [\"onChangeFavStatus\", \"id\", \"name\", \"type\", \"course\", \"lastCourseUpdate\", \"length\", \"speed\", \"imo\", \"mmsi\", \"isFav\", \"categoryId\", \"loadingCard\", \"imgUrl\"]))\n}","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0d503af2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"absolute h-[76%] w-full top-0 rounded-t-xl z-3 fleet-card__filter\" }, null, -1))\nconst _hoisted_2 = { class: \"h-1/4 w-full rounded-b-xl flex px-3.5 pt-2 pb-5 justify-between flex-col\" }\nconst _hoisted_3 = { class: \"font-bold flex items-center\" }\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { class: \"w-full mt-1\" }\nconst _hoisted_6 = { class: \"w-full\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"text-text-alt body-3 text-right w-auto\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FavouriteButton = _resolveComponent(\"FavouriteButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"h-[210px] w-[280px] aspect-square glassmorphism fleet-card rounded-xl relative cursor-pointer border border-bg-0 m-auto\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.seeAssetDetails && _ctx.seeAssetDetails(...args)))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"h-3/4 w-full bg-cover bg-center rounded-t-xl relative z-2\", { 'skeleton-bg': _ctx.loadingCard }]),\n style: _normalizeStyle(_ctx.loadingCard ? '' : `background-image: url('${_ctx.imgUrl ? _ctx.imgUrl : _ctx.img}');`)\n }, null, 6),\n _hoisted_1,\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.flag)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(`fi fi-${_ctx.flag} text-base`)\n }, null, 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"overflow-hidden text-ellipsis whitespace-nowrap\", [_ctx.flag ? 'mx-2' : 'mr-2', { skeleton: _ctx.loadingCard }]])\n }, [\n _createElementVNode(\"h3\", { title: _ctx.name }, _toDisplayString(_ctx.name), 9, _hoisted_4)\n ], 2)\n ]),\n _createElementVNode(\"table\", _hoisted_5, [\n _createElementVNode(\"tr\", _hoisted_6, [\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-text-alt body-3 text-left w-1/2\", { 'skeleton-type': _ctx.loadingCard }])\n }, _toDisplayString(_ctx.type), 3),\n _hoisted_7\n ])\n ])\n ]),\n _createVNode(_component_FavouriteButton, {\n onChangeFavStatus: _ctx.changeFavStatus,\n isFav: _ctx.isFavourite,\n \"stroke-fav\": '#0C111C',\n stroke: 'white',\n \"fill-fav\": '#0C111C',\n fill: 'none',\n loading: _ctx.loading\n }, null, 8, [\"onChangeFavStatus\", \"isFav\", \"loading\"])\n ]))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-15e33882\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"absolute w-8.5 h-5.25 fleet-card__fav2 top-3 -right-1.5\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Star = _resolveComponent(\"Star\")!\n const _component_LoaderIcon = _resolveComponent(\"LoaderIcon\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"absolute w-8.5 h-5.25 top-3 -right-2 z-3\", { 'fleet-card__fav': _ctx.isFav }])\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createBlock(_component_Star, {\n key: 0,\n fill: _ctx.isFav ? _ctx.fillFav : _ctx.fill,\n onClick: _ctx.changeFavStatus,\n class: \"cursor-pointer\",\n stroke: _ctx.isFav ? _ctx.strokeFav : _ctx.stroke\n }, null, 8, [\"fill\", \"onClick\", \"stroke\"]))\n : (_openBlock(), _createBlock(_component_LoaderIcon, { key: 1 }))\n ], 2),\n (_ctx.isFav)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"fill\", \"stroke\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-4 w-4 mt-0.75 ml-0.75\",\n fill: _ctx.fill,\n stroke: _ctx.stroke,\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"2\"\n }, _hoisted_3, 8, _hoisted_1))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'Star',\r\n props: {\r\n fill: { type: String, default: 'none' },\r\n stroke: { type: String, default: 'none' }\r\n }\r\n})\r\n","import { render } from \"./Star.vue?vue&type=template&id=2a337458&ts=true\"\nimport script from \"./Star.vue?vue&type=script&lang=ts\"\nexport * from \"./Star.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import * as FleetManager from '@/core/managers/fleet.manager'\r\nimport { AxiosResponse } from 'axios'\r\nimport { getCurrentInstance, Ref, ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default function manageFavourite (\r\n id: number,\r\n categoryId: number,\r\n loading: boolean,\r\n isFavourite: boolean\r\n)\r\n : {\r\n loadingRef: Ref,\r\n isFavouriteRef: Ref,\r\n changeFavStatus: () => void,\r\n emitFavourite: () => void\r\n } {\r\n const loadingRef = ref(loading)\r\n const isFavouriteRef = ref(isFavourite)\r\n const { emit } = getCurrentInstance() as NonNullable>\r\n const toast = useToast()\r\n\r\n function changeFavStatus () {\r\n loadingRef.value = true\r\n FleetManager.Manager.manageFavourite(categoryId, id, !isFavouriteRef.value).then(\r\n (response: AxiosResponse) => {\r\n if (response.status === 200) {\r\n loadingRef.value = false\r\n isFavouriteRef.value = !isFavouriteRef.value\r\n } else {\r\n toast.error('An error occured while managing this favourite')\r\n loadingRef.value = false\r\n }\r\n }\r\n )\r\n }\r\n\r\n function emitFavourite () {\r\n emit('changeFavStatus', isFavourite)\r\n }\r\n\r\n return {\r\n loadingRef,\r\n isFavouriteRef,\r\n changeFavStatus,\r\n emitFavourite\r\n }\r\n}\r\n","\r\nimport { defineComponent } from 'vue'\r\nimport Star from '@/components/icons/Star.vue'\r\nimport LoaderIcon from '@/components/icons/LoaderIcon.vue'\r\nimport manageFavourite from '@/core/composables/favourite.composable'\r\n\r\nexport default defineComponent({\r\n name: 'FavouriteButton',\r\n components: { Star, LoaderIcon },\r\n props: {\r\n isFav: Boolean,\r\n strokeFav: String,\r\n fillFav: String,\r\n stroke: String,\r\n fill: String,\r\n loading: Boolean\r\n },\r\n setup (props) {\r\n const manageFav = manageFavourite(0, 0, false, !props.isFav)\r\n const changeFavStatus = manageFav.emitFavourite\r\n return { changeFavStatus }\r\n }\r\n})\r\n","import { render } from \"./FavouriteButton.vue?vue&type=template&id=15e33882&scoped=true&ts=true\"\nimport script from \"./FavouriteButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FavouriteButton.vue?vue&type=script&lang=ts\"\n\nimport \"./FavouriteButton.vue?vue&type=style&index=0&id=15e33882&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15e33882\"]])\n\nexport default __exports__","import { computed, ComputedRef } from 'vue'\r\nimport store from '@/store'\r\nimport { DOMEvent } from '@/core/model/event.model'\r\nimport router from '@/router'\r\nimport { FleetSettings } from '@/core/model/settings.model'\r\n\r\nexport default function assets (assetType: string, country?: string, categoryId?: number, id?: number) : {\r\n icon: ComputedRef;\r\n img: ComputedRef;\r\n flag: ComputedRef;\r\n seeAssetDetails: (event: DOMEvent) => void\r\n } {\r\n const icon = computed((): string => {\r\n // const assetTypeSetting = (store.state.fleetSettings as FleetSettings).assetTypeSettings.find((type) => type.code === assetType)\r\n const assetTypeSetting = store.state.fleetSettings && store.state.fleetSettings?.assetTypeSettings && (store.state.fleetSettings as FleetSettings).assetTypeSettings.length ? (store.state.fleetSettings as FleetSettings).assetTypeSettings.find((type) => type.code === assetType) : undefined\r\n const icon = assetTypeSetting ? assetTypeSetting.icon_Url : ''\r\n if (icon) {\r\n return require(`@/assets/fleetIcons/${icon}.svg`)\r\n }\r\n const defaultIcon = store.state.fleetSettings && (store.state.fleetSettings as FleetSettings).defaultIcon_Url ? (store.state.fleetSettings as FleetSettings).defaultIcon_Url : 'unknown-vessel'\r\n return require(`@/assets/fleetIcons/${defaultIcon}.svg`)\r\n })\r\n const img = computed((): string => {\r\n const assetTypeSetting = store.state.fleetSettings && store.state.fleetSettings?.assetTypeSettings && (store.state.fleetSettings as FleetSettings).assetTypeSettings.length ? (store.state.fleetSettings as FleetSettings).assetTypeSettings.find((type) => type.code === assetType) : undefined\r\n const img = assetTypeSetting ? assetTypeSetting.image_Url : ''\r\n\r\n if (img) {\r\n return require(`@/assets/fleetAvatars/${img}.svg`)\r\n }\r\n const defaultImg = store.state.fleetSettings && store.state.fleetSettings.defaultImage_Url ? store.state.fleetSettings.defaultImage_Url : 'Avatar-Default-NoVessel'\r\n return require(`@/assets/fleetAvatars/${defaultImg}.svg`)\r\n })\r\n const flag = computed((): string => {\r\n return country ? country.toLowerCase() : ''\r\n })\r\n\r\n function seeAssetDetails (event: DOMEvent) {\r\n if (!event.target.matches('svg') && !event.target.matches('path')) {\r\n router.push({\r\n name: 'assetDetail',\r\n params: { categoryId, assetId: id }\r\n })\r\n }\r\n }\r\n\r\n return { icon, img, flag, seeAssetDetails }\r\n}\r\n","export const fleetCardProps = {\r\n cardView: { type: Boolean, default: true },\r\n id: { type: Number, required: true },\r\n name: String,\r\n type: { type: String, required: true },\r\n country: { type: String, required: true },\r\n course: Number,\r\n lastCourseUpdate: String,\r\n speed: String,\r\n length: String,\r\n imo: String,\r\n mmsi: String,\r\n isFav: Boolean,\r\n categoryId: { type: Number, required: true },\r\n loadingCard: Boolean,\r\n imgUrl: String\r\n}\r\n","\r\nimport FavouriteButton from '@/components/buttons/FavouriteButton.vue'\r\nimport assets from '@/core/composables/assets.composable'\r\nimport manageFavourite from '@/core/composables/favourite.composable'\r\nimport { fleetCardProps } from '@/core/model/fleetCardProps.model'\r\nimport { defineComponent, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FleetCardCardView',\r\n components: {\r\n FavouriteButton\r\n // WifiIcon\r\n },\r\n props: fleetCardProps,\r\n setup (props) {\r\n const favouriteHandler = manageFavourite(\r\n props.id as number,\r\n props.categoryId as number,\r\n false,\r\n props.isFav\r\n )\r\n const assetsDetails = assets(\r\n props.type as string,\r\n props.country as string,\r\n props.categoryId,\r\n props.id\r\n )\r\n const icon = assetsDetails.icon\r\n const img = assetsDetails.img\r\n const flag = assetsDetails.flag\r\n const changeFavStatus = favouriteHandler.changeFavStatus\r\n const isFavourite = ref(favouriteHandler.isFavouriteRef)\r\n const seeAssetDetails = assetsDetails.seeAssetDetails\r\n const loading = ref(favouriteHandler.loadingRef)\r\n\r\n return {\r\n changeFavStatus,\r\n isFavourite,\r\n loading,\r\n seeAssetDetails,\r\n icon,\r\n img,\r\n flag\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetCardCardView.vue?vue&type=template&id=0d503af2&scoped=true&ts=true\"\nimport script from \"./FleetCardCardView.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetCardCardView.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetCardCardView.vue?vue&type=style&index=0&id=0d503af2&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0d503af2\"]])\n\nexport default __exports__","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4737d600\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"w-1/12 p-2 md:p-3 align-middle\" }\nconst _hoisted_2 = { class: \"p-2 md:p-3 align-middle\" }\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = { class: \"w-1/12 md:w-2/12 p-2 md:p-3 align-middle\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Star = _resolveComponent(\"Star\")!\n const _component_LoaderIcon = _resolveComponent(\"LoaderIcon\")!\n\n return (_openBlock(), _createElementBlock(\"table\", {\n class: \"table-auto w-full text-text-prim border-b border-text-alt cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.seeAssetDetails && _ctx.seeAssetDetails(...args)))\n }, [\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"w-[100px] h-14 bg-cover rounded-lg relative z-2\", { 'skeleton-bg': _ctx.loadingCard }]),\n style: _normalizeStyle(_ctx.loadingCard ? '' : `background-image: url('${_ctx.imgUrl ? _ctx.imgUrl : _ctx.img}');`)\n }, null, 6)\n ]),\n _createElementVNode(\"td\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.flag)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([`fi fi-${_ctx.flag} text-base mr-3`, _ctx.flag ? 'mr-3' : ''])\n }, null, 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass({ skeleton: _ctx.loadingCard })\n }, [\n _createElementVNode(\"h3\", null, _toDisplayString(_ctx.name), 1)\n ], 2)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"body-3 body-alt mt-1\", { 'skeleton-type': _ctx.loadingCard }])\n }, _toDisplayString(_ctx.type), 3)\n ]),\n _createElementVNode(\"td\", _hoisted_4, [\n (!_ctx.loading)\n ? (_openBlock(), _createBlock(_component_Star, {\n key: 0,\n onClick: _ctx.changeFavStatus,\n class: _normalizeClass([\"cursor-pointer p-1.5 !h-6 !w-6 stroke-text-alt\", _ctx.isFavourite ? 'fleet-card__fav fill-text-alt stroke-text-alt' : 'none' ])\n }, null, 8, [\"onClick\", \"class\"]))\n : (_openBlock(), _createBlock(_component_LoaderIcon, {\n key: 1,\n class: \"p-1.5 !h-6 !w-6\"\n }))\n ])\n ])\n ])\n ]))\n}","\r\nimport LoaderIcon from '@/components/icons/LoaderIcon.vue'\r\nimport Star from '@/components/icons/Star.vue'\r\nimport assets from '@/core/composables/assets.composable'\r\nimport manageFavourite from '@/core/composables/favourite.composable'\r\nimport { fleetCardProps } from '@/core/model/fleetCardProps.model'\r\nimport { defineComponent, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FleetCardListView',\r\n components: {\r\n // WifiIcon,\r\n Star,\r\n LoaderIcon\r\n },\r\n props: fleetCardProps,\r\n setup (props) {\r\n const favouriteHandler = manageFavourite(\r\n props.id as number,\r\n props.categoryId as number,\r\n false,\r\n props.isFav\r\n )\r\n const assetsDetails = assets(\r\n props.type as string,\r\n props.country as string,\r\n props.categoryId,\r\n props.id\r\n )\r\n const icon = assetsDetails.icon\r\n const img = assetsDetails.img\r\n const flag = assetsDetails.flag\r\n const changeFavStatus = favouriteHandler.changeFavStatus\r\n const isFavourite = ref(favouriteHandler.isFavouriteRef)\r\n const seeAssetDetails = assetsDetails.seeAssetDetails\r\n const loading = ref(favouriteHandler.loadingRef)\r\n\r\n return {\r\n changeFavStatus,\r\n isFavourite,\r\n loading,\r\n seeAssetDetails,\r\n icon,\r\n img,\r\n flag\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetCardListView.vue?vue&type=template&id=4737d600&scoped=true&ts=true\"\nimport script from \"./FleetCardListView.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetCardListView.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetCardListView.vue?vue&type=style&index=0&id=4737d600&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4737d600\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport FleetCardCardView from '@/components/cards/FleetCardCardView.vue'\r\nimport FleetCardListView from '@/components/cards/FleetCardListView.vue'\r\nimport { fleetCardProps } from '@/core/model/fleetCardProps.model'\r\n\r\nexport default defineComponent({\r\n name: 'FleetCard',\r\n components: {\r\n FleetCardCardView,\r\n FleetCardListView\r\n },\r\n props: fleetCardProps\r\n})\r\n","import { render } from \"./FleetCard.vue?vue&type=template&id=4a0858a7&scoped=true&ts=true\"\nimport script from \"./FleetCard.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetCard.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetCard.vue?vue&type=style&index=0&id=4a0858a7&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4a0858a7\"]])\n\nexport default __exports__","\r\nimport FleetTabs from '@/components/buttons/FleetTabs.vue'\r\nimport ListCardView from '@/components/buttons/ListCardView.vue'\r\nimport FleetCard from '@/components/cards/FleetCard.vue'\r\nimport * as FleetManager from '@/core/managers/fleet.manager'\r\nimport { AssetApiModel, FleetCategoryModel } from '@/core/model/fleet.model'\r\nimport { defineComponent } from 'vue'\r\nimport Observer from '@/components/Observer.vue'\r\nimport Tools from '@/core/services/tools'\r\nimport SearchInput from '@/components/SearchInput.vue'\r\nimport { useToast } from 'vue-toastification'\r\nimport PageTitle from '@/components/titles/PageTitle.vue'\r\n\r\ninterface FleetData {\r\n cardView: boolean;\r\n tabDisplayed: string;\r\n categoryId: number;\r\n vessels: AssetApiModel[];\r\n loadingList: boolean;\r\n pageIndex: number;\r\n hasNextPage: boolean;\r\n observe: boolean;\r\n error: string;\r\n search: string;\r\n debounce?: () => void;\r\n}\r\n\r\nexport default defineComponent({\r\n name: 'Assets',\r\n components: {\r\n FleetTabs,\r\n FleetCard,\r\n ListCardView,\r\n Observer,\r\n SearchInput,\r\n PageTitle\r\n },\r\n setup () {\r\n const toast = useToast()\r\n return { toast }\r\n },\r\n data (): FleetData {\r\n return {\r\n cardView: sessionStorage.getItem('cardView')\r\n ? JSON.parse(sessionStorage.getItem('cardView') as string)\r\n : true,\r\n tabDisplayed: '',\r\n categoryId: 0,\r\n vessels: [],\r\n loadingList: false,\r\n pageIndex: 0,\r\n hasNextPage: true,\r\n observe: true,\r\n error: '',\r\n search: '',\r\n debounce: undefined\r\n }\r\n },\r\n created () {\r\n this.debounce = Tools.debounce(() => {\r\n this.updateList(false, this.search)\r\n }, 300)\r\n },\r\n methods: {\r\n loadDetails (entry: IntersectionObserverEntry) {\r\n if (entry.isIntersecting && this.hasNextPage && this.observe) {\r\n if (this.search) {\r\n this.updateList(true, this.search)\r\n } else {\r\n this.updateList(true)\r\n }\r\n this.toggleObservation()\r\n }\r\n },\r\n displayTabInfos (tab: FleetCategoryModel) {\r\n this.pageIndex = 0\r\n this.tabDisplayed = tab.name\r\n this.categoryId = tab.id\r\n this.updateList(false)\r\n },\r\n changeView ($e: string) {\r\n if ($e === 'card') {\r\n this.cardView = true\r\n } else {\r\n this.cardView = false\r\n }\r\n sessionStorage.setItem('cardView', `${this.cardView}`)\r\n },\r\n searchAssets () {\r\n this.toggleObservation()\r\n this.pageIndex = 0\r\n this.vessels = []\r\n if (this.debounce) {\r\n this.debounce()\r\n }\r\n },\r\n toggleObservation () {\r\n this.observe = false\r\n setTimeout(() => {\r\n this.observe = true\r\n }, 300)\r\n },\r\n updateList (update: boolean, search?: string) {\r\n this.loadingList = true\r\n this.pageIndex = update ? this.pageIndex + 1 : this.pageIndex\r\n if (!update) {\r\n this.vessels = []\r\n }\r\n this.apiList(update, search)\r\n },\r\n apiList (update: boolean, search?: string) {\r\n FleetManager.Manager.assets(this.categoryId, this.pageIndex, undefined, search).then(\r\n (response) => {\r\n if (!response.isError && response.data) {\r\n this.vessels = update\r\n ? this.vessels.concat(response.data.assets)\r\n : response.data.assets\r\n this.hasNextPage = response.data.hasNextPage\r\n this.loadingList = false\r\n } else {\r\n this.error = `${this.$t('fleet.errorMain')}${response.Message}`\r\n this.toast.error(this.error)\r\n }\r\n }\r\n )\r\n }\r\n }\r\n})\r\n","import { render } from \"./Fleet.vue?vue&type=template&id=62dd587e&ts=true\"\nimport script from \"./Fleet.vue?vue&type=script&lang=ts\"\nexport * from \"./Fleet.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-149b1b39\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"h-full w-full pt-6\"\n}\nconst _hoisted_2 = {\n key: 2,\n class: \"flex items-center w-full border-b border-b-bg-2 pt-4 justify-evenly\"\n}\nconst _hoisted_3 = { key: 3 }\nconst _hoisted_4 = { class: \"pt-3 pb-5 px-3.5\" }\nconst _hoisted_5 = { class: \"grid grid-cols-1 lg:grid-cols-3 mt-10 gap-4\" }\nconst _hoisted_6 = { class: \"w-full col-span-1 lg:col-span-2\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"border border-[#1F2C47] rounded-xl skeleton-bg h-[400px]\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"border border-[#1F2C47] rounded-xl h-[400px] w-full\"\n}\nconst _hoisted_9 = {\n key: 2,\n class: \"grid gap-4 w-full justify-center lg:justify-start my-4 grid-kpis\"\n}\nconst _hoisted_10 = { key: 4 }\nconst _hoisted_11 = { key: 5 }\nconst _hoisted_12 = {\n key: 1,\n class: \"py-6 text-gray-200\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FleetDetailTitleCard = _resolveComponent(\"FleetDetailTitleCard\")!\n const _component_AssetDetailTab = _resolveComponent(\"AssetDetailTab\")!\n const _component_fleet_map = _resolveComponent(\"fleet-map\")!\n const _component_ServiceCardContent = _resolveComponent(\"ServiceCardContent\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_FleetAssetTimeline = _resolveComponent(\"FleetAssetTimeline\")!\n const _component_FleetReportTab = _resolveComponent(\"FleetReportTab\")!\n const _component_FleetAssetDetails = _resolveComponent(\"FleetAssetDetails\")!\n\n return (!_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.vesselDetails)\n ? (_openBlock(), _createBlock(_component_FleetDetailTitleCard, {\n key: 0,\n isFav: _ctx.vesselDetails.isFavorite,\n name: _ctx.vesselDetails.name,\n type: _ctx.vesselDetails.type,\n country: _ctx.vesselDetails.country_alpha2,\n course: _ctx.vesselDetails.heading,\n lastCourseUpdate: _ctx.vesselDetails.lastPositionUpdate,\n speed: _ctx.vesselDetails.speed,\n length: _ctx.length,\n imo: _ctx.imo,\n mmsi: _ctx.mmsi,\n loading: _ctx.loading,\n bridgeNumber: _ctx.bridgeNumber,\n bridgeEmail: _ctx.bridgeEmail,\n imgUrl: _ctx.vesselDetails.imageUrl\n }, null, 8, [\"isFav\", \"name\", \"type\", \"country\", \"course\", \"lastCourseUpdate\", \"speed\", \"length\", \"imo\", \"mmsi\", \"loading\", \"bridgeNumber\", \"bridgeEmail\", \"imgUrl\"]))\n : (_openBlock(), _createBlock(_component_FleetDetailTitleCard, {\n key: 1,\n loading: _ctx.loading\n }, null, 8, [\"loading\"])),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tabs, (tab, i) => {\n return (_openBlock(), _createBlock(_component_AssetDetailTab, {\n key: i,\n name: tab,\n onClick: ($event: any) => (_ctx.selectTab(tab)),\n class: _normalizeClass([\"cursor-pointer body-1 body-alt sm:body-2 sm:body-alt border-b-2 border-transparent pb-4 border w-auto sm:w-[calc(33.3%-30px)] font-bold\", {\r\n '!text-semantic-activate border-b-2 border-b-semantic-activate !fill-semantic-activate shadow-tab':\r\n _ctx.selectedTab === tab,\r\n }])\n }, null, 8, [\"name\", \"onClick\", \"class\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.selectedTab === 'History')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createVNode(_component_fleet_map, {\n code: _ctx.vesselDetails.code\n }, null, 8, [\"code\"])\n ])),\n (_ctx.vesselDetails && _ctx.vesselDetails.services && _ctx.vesselDetails.services.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.vesselDetails.services, (service, i) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n target: \"_blank\",\n to: {\r\n name: 'analyticsDetail',\r\n params: { analyticsId: service.id },\r\n query: {\r\n filter: encodeURI(\r\n JSON.stringify([\r\n { id: _ctx.periodFilter, members: _ctx.periodSelected },\r\n { id: _ctx.assetFilter, members: [+_ctx.$route.params.assetId] },\r\n ])\r\n ),\r\n },\r\n },\n class: \"w-[310px] aspect-video min-w-[310px] rounded-xl bg-bg-2 m-auto\",\n key: i\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ServiceCardContent, {\n id: service.id,\n title: service.title,\n subtitle: service.text,\n previewType: service.previewType,\n previewInfos: \r\n service.previewType === 'Chart'\r\n ? service.chart\r\n : service.previewType === 'Kpi' ||\r\n service.previewType === 'KPI'\r\n ? service.kpi\r\n : service.previewType === 'ChartAndKPI'\r\n ? [service.chart, service.kpi]\r\n : service.previewType === 'Custom'\r\n ? service.customHtml\r\n : {}\r\n ,\n size: service.size,\n description: service.description,\n fromFleet: false,\n fromList: true,\n period: 'L6M'\n }, null, 8, [\"id\", \"title\", \"subtitle\", \"previewType\", \"previewInfos\", \"size\", \"description\"])\n ]),\n _: 2\n }, 1032, [\"to\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_FleetAssetTimeline, {\n timeline: _ctx.timeline,\n vesselDetails: _ctx.vesselDetails,\n error: _ctx.timeSheetError,\n class: \"col-span-1 xs:min-w-[370px]\",\n onPeriodSelected: _ctx.choosePeriod,\n loading: _ctx.loadingTimeline\n }, null, 8, [\"timeline\", \"vesselDetails\", \"error\", \"onPeriodSelected\", \"loading\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.selectedTab === 'Reports' && _ctx.vesselDetails && _ctx.vesselDetails.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createVNode(_component_FleetReportTab, { asset: _ctx.vesselDetails }, null, 8, [\"asset\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.selectedTab === _ctx.$t('fleet.tabs.details'))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_ctx.vesselDetails)\n ? (_openBlock(), _createBlock(_component_FleetAssetDetails, {\n key: 0,\n country: _ctx.vesselDetails.country_alpha2,\n type: _ctx.vesselDetails.type,\n loa: _ctx.vesselDetails.loa,\n imo: _ctx.vesselDetails.imo,\n mmsi: _ctx.vesselDetails.mmsi,\n properties: _ctx.vesselDetails.properties\n }, null, 8, [\"country\", \"type\", \"loa\", \"imo\", \"mmsi\", \"properties\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_12, _toDisplayString(_ctx.error), 1))\n}","import { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center text-text-alt pb-2 px-4 cursor-pointer fill-text-alt justify-center select-none\" }\nconst _hoisted_2 = { class: \"hidden xs:block\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.icon), { class: \"mr-2 w-5 h-5\" })),\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.name), 1)\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n height: \"512pt\",\n viewBox: \"0 0 512 512\",\n width: \"512pt\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m199.945312 359.898438h67.980469v39.988281h-67.980469zm-74.980468-4.996094c-13.804688 0-24.992188 11.1875-24.992188 24.992187 0 13.800781 11.1875 24.992188 24.992188 24.992188 13.804687 0 24.992187-11.191407 24.992187-24.992188 0-13.804687-11.1875-24.992187-24.992187-24.992187zm276.921875-121.96875h-201.941407v39.988281h201.941407zm-276.921875-4.996094c-13.804688 0-24.992188 11.1875-24.992188 24.992188 0 13.804687 11.1875 24.992187 24.992188 24.992187 13.804687 0 24.992187-11.1875 24.992187-24.992187 0-13.804688-11.1875-24.992188-24.992187-24.992188zm276.921875-114.96875h-201.941407v39.988281h201.941407zm-276.921875-5c-13.804688 0-24.992188 11.191406-24.992188 24.992188 0 13.804687 11.1875 24.996093 24.992188 24.996093 13.804687 0 24.992187-11.191406 24.992187-24.996093 0-13.800782-11.1875-24.992188-24.992187-24.992188zm-84.976563 343.90625v-391.890625c0-11.027344 8.96875-19.996094 19.996094-19.996094h391.890625c11.023438 0 19.992188 8.96875 19.992188 19.996094v225.9375h39.988281v-225.9375c0-33.074219-26.90625-59.984375-59.980469-59.984375h-391.890625c-33.074219 0-59.984375 26.910156-59.984375 59.984375v391.890625c0 33.074219 26.910156 59.980469 59.984375 59.980469h230.933594v-39.988281h-230.933594c-11.027344 0-19.996094-8.96875-19.996094-19.992188zm443.734375 60.125-39.820312-39.820312c-13.472656 8.050781-29.210938 12.683593-46.011719 12.683593-49.613281 0-89.976563-40.363281-89.976563-89.972656 0-49.613281 40.363282-89.976563 89.976563-89.976563 49.609375 0 89.972656 40.363282 89.972656 89.976563 0 18.355469-5.53125 35.441406-15.003906 49.691406l39.140625 39.140625zm-85.832031-67.125c27.5625 0 49.984375-22.421875 49.984375-49.984375s-22.421875-49.988281-49.984375-49.988281-49.988281 22.425781-49.988281 49.988281 22.425781 49.984375 49.988281 49.984375zm0 0\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'DetailsIcon.vue'\r\n})\r\n","import { render } from \"./DetailsIcon.vue?vue&type=template&id=76f678e5&ts=true\"\nimport script from \"./DetailsIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./DetailsIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n height: \"682.66669pt\",\n viewBox: \"-21 -21 682.66669 682.66669\",\n width: \"682.66669pt\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m640 320c0 85.472656-33.285156 165.835938-93.726562 226.273438-60.4375 60.441406-140.800782 93.726562-226.273438 93.726562v-50c148.875 0 270-121.125 270-270s-121.125-270-270-270-270 121.125-270 270c0 88.613281 42.742188 170.351562 114.890625 221l68.859375-68.855469v167.855469h-167.855469l63.203125-63.203125c-36.136718-26.929687-66.488281-61.371094-88.511718-100.71875-26.554688-47.4375-40.585938-101.410156-40.585938-156.078125 0-85.472656 33.285156-165.835938 93.726562-226.273438 60.4375-60.441406 140.800782-93.726562 226.273438-93.726562s165.835938 33.285156 226.273438 93.726562c60.441406 60.4375 93.726562 140.800782 93.726562 226.273438zm-307.054688 48.300781 78.753907 78.75 35.351562-35.351562-78.75-78.753907c1.105469-4.132812 1.699219-8.46875 1.699219-12.945312 0-18.507812-10.058594-34.648438-25-43.296875v-164.203125h-50v164.203125c-14.941406 8.648437-25 24.789063-25 43.296875 0 27.613281 22.386719 50 50 50 4.476562 0 8.8125-.59375 12.945312-1.699219zm0 0\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'HistoryIcon'\r\n})\r\n","import { render } from \"./HistoryIcon.vue?vue&type=template&id=7d5308ec&ts=true\"\nimport script from \"./HistoryIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./HistoryIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport DetailsIcon from '@/components/icons/DetailsIcon.vue'\r\nimport FilesIcon from '@/components/icons/FilesIcon.vue'\r\nimport HistoryIcon from '@/components/icons/HistoryIcon.vue'\r\n\r\nexport default defineComponent({\r\n name: 'AssetDetailTab',\r\n components: { HistoryIcon, FilesIcon, DetailsIcon },\r\n props: { name: String },\r\n computed: {\r\n icon () {\r\n switch (this.name) {\r\n case this.$t('fleet.tabs.history'):\r\n return 'HistoryIcon'\r\n case this.$t('fleet.tabs.documents'):\r\n return 'FilesIcon'\r\n default:\r\n return 'DetailsIcon'\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./AssetDetailTab.vue?vue&type=template&id=41c4f749&ts=true\"\nimport script from \"./AssetDetailTab.vue?vue&type=script&lang=ts\"\nexport * from \"./AssetDetailTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, normalizeStyle as _normalizeStyle, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3fe3dd82\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mb-6 lg:mb-0 text-gray-200 h-fit relative z-2\" }\nconst _hoisted_2 = { class: \"h-full w-full relative z-2 text-gray-200 relative pou-4 flex flex-col sm:flex-row\" }\nconst _hoisted_3 = { class: \"flex m-auto sm:m-0 flex-col sm:flex-row\" }\nconst _hoisted_4 = { class: \"flex items-center\" }\nconst _hoisted_5 = { class: \"p-2.5 bg-bg-3 rounded-full mr-4\" }\nconst _hoisted_6 = { class: \"font-bold flex sm:hidden items-center\" }\nconst _hoisted_7 = {\n key: 1,\n class: \"capitalize\"\n}\nconst _hoisted_8 = {\n key: 2,\n class: \"skeleton pl-0\"\n}\nconst _hoisted_9 = { class: \"absolute w-full h-full z-3 top-0 left-0 rounded-xl fleet-card__filter\" }\nconst _hoisted_10 = { class: \"flex justify-end body-2 bottom-4 left-0 z-3 text-text-title absolute w-full px-4\" }\nconst _hoisted_11 = { class: \"flex flex-col items-center\" }\nconst _hoisted_12 = { class: \"w-full h-full mt-2 sm:mt-0 hidden sm:block\" }\nconst _hoisted_13 = { class: \"font-bold flex items-center\" }\nconst _hoisted_14 = {\n key: 1,\n class: \"capitalize\"\n}\nconst _hoisted_15 = {\n key: 2,\n class: \"skeleton pl-0\"\n}\nconst _hoisted_16 = { class: \"body-2 body-alt\" }\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = { key: 0 }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"body body-alt\" }, \"Bridge Number : \", -1))\nconst _hoisted_20 = { key: 0 }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"body body-alt\" }, \"Bridge Email : \", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LeftArrowIcon = _resolveComponent(\"LeftArrowIcon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_VesselLengthIcon = _resolveComponent(\"VesselLengthIcon\")!\n const _component_FavouriteButton = _resolveComponent(\"FavouriteButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, {\n to: { name: 'fleet' },\n class: \"flex items-center sm:items-baseline mb-4\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_LeftArrowIcon, { class: \"h-5 w-5 stroke-gray-100\" })\n ]),\n _createElementVNode(\"h3\", _hoisted_6, [\n (_ctx.flag)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(`fi fi-${_ctx.flag} mr-3`)\n }, null, 2))\n : _createCommentVNode(\"\", true),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, _toDisplayString(_ctx.name), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_8))\n ])\n ])\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"w-67 h-45 mr-0 sm:mr-4 relative bg-cover rounded-xl bg-center\",\n style: _normalizeStyle(`background-image: url('${_ctx.imgUrl ? _ctx.imgUrl : _ctx.img}');`)\n }, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_VesselLengthIcon, { class: \"mb-1 h-4 w-auto fill-text-title stroke-text-title\" }),\n _createElementVNode(\"span\", null, _toDisplayString(`${_ctx.lengthFormatted} m` || \"N/A\"), 1)\n ])\n ])\n ]),\n _createVNode(_component_FavouriteButton, {\n onChangeFavStatus: _ctx.changeFavStatus,\n isFav: _ctx.isFavourite,\n \"stroke-fav\": '#0C111C',\n stroke: 'white',\n \"fill-fav\": '#0C111C',\n fill: 'none',\n loading: _ctx.favLoading\n }, null, 8, [\"onChangeFavStatus\", \"isFav\", \"loading\"])\n ], 4)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"h3\", _hoisted_13, [\n (_ctx.flag)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(`fi fi-${_ctx.flag} mr-3`)\n }, null, 2))\n : _createCommentVNode(\"\", true),\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, _toDisplayString(_ctx.name), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_15))\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"font-bold mt-2\", { 'skeleton-small': _ctx.loading }])\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_17, _toDisplayString(_ctx.type), 1))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"font-bold mt-2 arialized\", { 'skeleton-small': _ctx.loading }])\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(_toDisplayString(_ctx.bridgeNumber || \"N/A\"), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"p\", {\n class: _normalizeClass([\"font-bold mt-2 arialized\", { 'skeleton-small': _ctx.loading }])\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_20, [\n _hoisted_21,\n _createTextVNode(_toDisplayString(_ctx.bridgeEmail || \"N/A\"), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ])\n ])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n \"_ngcontent-wlf-c130\": \"\",\n width: \"59\",\n height: \"21\",\n viewBox: \"0 0 59 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"icon\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"rect\", {\n \"_ngcontent-wlf-c130\": \"\",\n x: \"1\",\n y: \"17\",\n width: \"58\",\n height: \"1\",\n fill: \"currentColor\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"rect\", {\n \"_ngcontent-wlf-c130\": \"\",\n y: \"14\",\n width: \"1\",\n height: \"7\",\n fill: \"currentColor\"\n}, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"rect\", {\n \"_ngcontent-wlf-c130\": \"\",\n x: \"58\",\n y: \"14\",\n width: \"1\",\n height: \"7\",\n fill: \"currentColor\"\n}, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"_ngcontent-wlf-c130\": \"\",\n d: \"M4.61669 9.5V0.5L44.0916 0.5C46.5334 0.5 49.4099 1.30699 51.6835 2.33003C52.8181 2.84055 53.7799 3.39477 54.4488 3.91055C54.7842 4.1691 55.0309 4.40654 55.1893 4.61156C55.3546 4.82554 55.3838 4.95237 55.3838 5C55.3838 5.05518 55.3521 5.18664 55.1878 5.40161C55.0296 5.60858 54.7832 5.84721 54.4482 6.10633C53.7799 6.62333 52.8188 7.17611 51.6843 7.68417C49.4113 8.70215 46.5344 9.5 44.0916 9.5L4.61669 9.5Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_6))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'VesselLengthIcon'\r\n})\r\n","import { render } from \"./VesselLengthIcon.vue?vue&type=template&id=1bffd1e5&ts=true\"\nimport script from \"./VesselLengthIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./VesselLengthIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent, ref } from 'vue'\r\nimport FavouriteButton from '@/components/buttons/FavouriteButton.vue'\r\nimport VesselLengthIcon from '@/components/icons/VesselLengthIcon.vue'\r\nimport LeftArrowIcon from '@/components/icons/LeftArrowIcon.vue'\r\nimport assets from '@/core/composables/assets.composable'\r\nimport manageFavourite from '@/core/composables/favourite.composable'\r\nimport { useRoute } from 'vue-router'\r\nimport FormatService from '@/core/services/format.service'\r\n\r\nexport default defineComponent({\r\n name: 'FleetDetailTitleCard',\r\n components: {\r\n FavouriteButton,\r\n // Compass,\r\n // SpeedometerIcon,\r\n VesselLengthIcon,\r\n // WifiIcon,\r\n LeftArrowIcon\r\n },\r\n props: {\r\n id: Number,\r\n isFav: Boolean,\r\n name: String,\r\n type: String,\r\n country: String,\r\n course: Number,\r\n lastCourseUpdate: String,\r\n speed: String,\r\n length: String,\r\n imo: String,\r\n mmsi: String,\r\n bridgeNumber: String,\r\n bridgeEmail: String,\r\n loading: Boolean,\r\n imgUrl: String\r\n },\r\n setup (props) {\r\n // if (props.type === undefined) throw new Error('Asset has not type.')\r\n const loa = props.length === undefined ? undefined : +props.length\r\n const lengthFormatted = FormatService.preciseNumberRound(loa, 1)\r\n const route = useRoute()\r\n const assetsImages = assets(props.type!, props.country)\r\n const manageFav = manageFavourite(+route.params.assetId, +route.params.categoryId, props.loading, props.isFav)\r\n const isFavourite = ref(manageFav.isFavouriteRef)\r\n const icon = assetsImages.icon\r\n const img = assetsImages.img\r\n const flag = assetsImages.flag\r\n const changeFavStatus = manageFav.changeFavStatus\r\n const favLoading = ref(manageFav.loadingRef)\r\n return { icon, img, flag, changeFavStatus, isFavourite, favLoading, lengthFormatted }\r\n }\r\n})\r\n","import { render } from \"./FleetDetailTitleCard.vue?vue&type=template&id=3fe3dd82&scoped=true&ts=true\"\nimport script from \"./FleetDetailTitleCard.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetDetailTitleCard.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetDetailTitleCard.vue?vue&type=style&index=0&id=3fe3dd82&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3fe3dd82\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"w-full mt-10 body-2\" }\nconst _hoisted_2 = { class: \"w-full sm:w-1/2 lg:w-1/3 m-auto\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"p-4 text-left text-text-alt\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"p-4 text-right text-text-prim font-bold\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"table\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.characteristics, (characteristic) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: characteristic,\n class: \"border-b border-bg-3\"\n }, [\n characteristic\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_3, _toDisplayString(characteristic.name), 1))\n : _createCommentVNode(\"\", true),\n characteristic\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_4, _toDisplayString(characteristic.value), 1))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { AssetProperty } from '@/core/model/fleet.model'\r\nimport FormatService from '@/core/services/format.service'\r\n\r\nexport default defineComponent({\r\n name: 'FleetAssetDetails',\r\n props: {\r\n country: String,\r\n type: String,\r\n imo: String,\r\n mmsi: String,\r\n loa: String,\r\n properties: Array as PropType\r\n },\r\n computed: {\r\n alphaCodeToCountry () {\r\n const isoCountries = {\r\n AF: 'Afghanistan',\r\n AX: 'Aland Islands',\r\n AL: 'Albania',\r\n DZ: 'Algeria',\r\n AS: 'American Samoa',\r\n AD: 'Andorra',\r\n AO: 'Angola',\r\n AI: 'Anguilla',\r\n AQ: 'Antarctica',\r\n AG: 'Antigua And Barbuda',\r\n AR: 'Argentina',\r\n AM: 'Armenia',\r\n AW: 'Aruba',\r\n AU: 'Australia',\r\n AT: 'Austria',\r\n AZ: 'Azerbaijan',\r\n BS: 'Bahamas',\r\n BH: 'Bahrain',\r\n BD: 'Bangladesh',\r\n BB: 'Barbados',\r\n BY: 'Belarus',\r\n BE: 'Belgium',\r\n BZ: 'Belize',\r\n BJ: 'Benin',\r\n BM: 'Bermuda',\r\n BT: 'Bhutan',\r\n BO: 'Bolivia',\r\n BA: 'Bosnia And Herzegovina',\r\n BW: 'Botswana',\r\n BV: 'Bouvet Island',\r\n BR: 'Brazil',\r\n IO: 'British Indian Ocean Territory',\r\n BN: 'Brunei Darussalam',\r\n BG: 'Bulgaria',\r\n BF: 'Burkina Faso',\r\n BI: 'Burundi',\r\n KH: 'Cambodia',\r\n CM: 'Cameroon',\r\n CA: 'Canada',\r\n CV: 'Cape Verde',\r\n KY: 'Cayman Islands',\r\n CF: 'Central African Republic',\r\n TD: 'Chad',\r\n CL: 'Chile',\r\n CN: 'China',\r\n CX: 'Christmas Island',\r\n CC: 'Cocos (Keeling) Islands',\r\n CO: 'Colombia',\r\n KM: 'Comoros',\r\n CG: 'Congo',\r\n CD: 'Congo, Democratic Republic',\r\n CK: 'Cook Islands',\r\n CR: 'Costa Rica',\r\n CI: \"Cote D'Ivoire\",\r\n HR: 'Croatia',\r\n CU: 'Cuba',\r\n CY: 'Cyprus',\r\n CZ: 'Czech Republic',\r\n DK: 'Denmark',\r\n DJ: 'Djibouti',\r\n DM: 'Dominica',\r\n DO: 'Dominican Republic',\r\n EC: 'Ecuador',\r\n EG: 'Egypt',\r\n SV: 'El Salvador',\r\n GQ: 'Equatorial Guinea',\r\n ER: 'Eritrea',\r\n EE: 'Estonia',\r\n ET: 'Ethiopia',\r\n FK: 'Falkland Islands (Malvinas)',\r\n FO: 'Faroe Islands',\r\n FJ: 'Fiji',\r\n FI: 'Finland',\r\n FR: 'France',\r\n GF: 'French Guiana',\r\n PF: 'French Polynesia',\r\n TF: 'French Southern Territories',\r\n GA: 'Gabon',\r\n GM: 'Gambia',\r\n GE: 'Georgia',\r\n DE: 'Germany',\r\n GH: 'Ghana',\r\n GI: 'Gibraltar',\r\n GR: 'Greece',\r\n GL: 'Greenland',\r\n GD: 'Grenada',\r\n GP: 'Guadeloupe',\r\n GU: 'Guam',\r\n GT: 'Guatemala',\r\n GG: 'Guernsey',\r\n GN: 'Guinea',\r\n GW: 'Guinea-Bissau',\r\n GY: 'Guyana',\r\n HT: 'Haiti',\r\n HM: 'Heard Island & Mcdonald Islands',\r\n VA: 'Holy See (Vatican City State)',\r\n HN: 'Honduras',\r\n HK: 'Hong Kong',\r\n HU: 'Hungary',\r\n IS: 'Iceland',\r\n IN: 'India',\r\n ID: 'Indonesia',\r\n IR: 'Iran, Islamic Republic Of',\r\n IQ: 'Iraq',\r\n IE: 'Ireland',\r\n IM: 'Isle Of Man',\r\n IL: 'Israel',\r\n IT: 'Italy',\r\n JM: 'Jamaica',\r\n JP: 'Japan',\r\n JE: 'Jersey',\r\n JO: 'Jordan',\r\n KZ: 'Kazakhstan',\r\n KE: 'Kenya',\r\n KI: 'Kiribati',\r\n KR: 'Korea',\r\n KW: 'Kuwait',\r\n KG: 'Kyrgyzstan',\r\n LA: \"Lao People's Democratic Republic\",\r\n LV: 'Latvia',\r\n LB: 'Lebanon',\r\n LS: 'Lesotho',\r\n LR: 'Liberia',\r\n LY: 'Libyan Arab Jamahiriya',\r\n LI: 'Liechtenstein',\r\n LT: 'Lithuania',\r\n LU: 'Luxembourg',\r\n MO: 'Macao',\r\n MK: 'Macedonia',\r\n MG: 'Madagascar',\r\n MW: 'Malawi',\r\n MY: 'Malaysia',\r\n MV: 'Maldives',\r\n ML: 'Mali',\r\n MT: 'Malta',\r\n MH: 'Marshall Islands',\r\n MQ: 'Martinique',\r\n MR: 'Mauritania',\r\n MU: 'Mauritius',\r\n YT: 'Mayotte',\r\n MX: 'Mexico',\r\n FM: 'Micronesia, Federated States Of',\r\n MD: 'Moldova',\r\n MC: 'Monaco',\r\n MN: 'Mongolia',\r\n ME: 'Montenegro',\r\n MS: 'Montserrat',\r\n MA: 'Morocco',\r\n MZ: 'Mozambique',\r\n MM: 'Myanmar',\r\n NA: 'Namibia',\r\n NR: 'Nauru',\r\n NP: 'Nepal',\r\n NL: 'Netherlands',\r\n AN: 'Netherlands Antilles',\r\n NC: 'New Caledonia',\r\n NZ: 'New Zealand',\r\n NI: 'Nicaragua',\r\n NE: 'Niger',\r\n NG: 'Nigeria',\r\n NU: 'Niue',\r\n NF: 'Norfolk Island',\r\n MP: 'Northern Mariana Islands',\r\n NO: 'Norway',\r\n OM: 'Oman',\r\n PK: 'Pakistan',\r\n PW: 'Palau',\r\n PS: 'Palestinian Territory, Occupied',\r\n PA: 'Panama',\r\n PG: 'Papua New Guinea',\r\n PY: 'Paraguay',\r\n PE: 'Peru',\r\n PH: 'Philippines',\r\n PN: 'Pitcairn',\r\n PL: 'Poland',\r\n PT: 'Portugal',\r\n PR: 'Puerto Rico',\r\n QA: 'Qatar',\r\n RE: 'Reunion',\r\n RO: 'Romania',\r\n RU: 'Russian Federation',\r\n RW: 'Rwanda',\r\n BL: 'Saint Barthelemy',\r\n SH: 'Saint Helena',\r\n KN: 'Saint Kitts And Nevis',\r\n LC: 'Saint Lucia',\r\n MF: 'Saint Martin',\r\n PM: 'Saint Pierre And Miquelon',\r\n VC: 'Saint Vincent And Grenadines',\r\n WS: 'Samoa',\r\n SM: 'San Marino',\r\n ST: 'Sao Tome And Principe',\r\n SA: 'Saudi Arabia',\r\n SN: 'Senegal',\r\n RS: 'Serbia',\r\n SC: 'Seychelles',\r\n SL: 'Sierra Leone',\r\n SG: 'Singapore',\r\n SK: 'Slovakia',\r\n SI: 'Slovenia',\r\n SB: 'Solomon Islands',\r\n SO: 'Somalia',\r\n ZA: 'South Africa',\r\n GS: 'South Georgia And Sandwich Isl.',\r\n ES: 'Spain',\r\n LK: 'Sri Lanka',\r\n SD: 'Sudan',\r\n SR: 'Suriname',\r\n SJ: 'Svalbard And Jan Mayen',\r\n SZ: 'Swaziland',\r\n SE: 'Sweden',\r\n CH: 'Switzerland',\r\n SY: 'Syrian Arab Republic',\r\n TW: 'Taiwan',\r\n TJ: 'Tajikistan',\r\n TZ: 'Tanzania',\r\n TH: 'Thailand',\r\n TL: 'Timor-Leste',\r\n TG: 'Togo',\r\n TK: 'Tokelau',\r\n TO: 'Tonga',\r\n TT: 'Trinidad And Tobago',\r\n TN: 'Tunisia',\r\n TR: 'Turkey',\r\n TM: 'Turkmenistan',\r\n TC: 'Turks And Caicos Islands',\r\n TV: 'Tuvalu',\r\n UG: 'Uganda',\r\n UA: 'Ukraine',\r\n AE: 'United Arab Emirates',\r\n GB: 'United Kingdom',\r\n US: 'United States',\r\n UM: 'United States Outlying Islands',\r\n UY: 'Uruguay',\r\n UZ: 'Uzbekistan',\r\n VU: 'Vanuatu',\r\n VE: 'Venezuela',\r\n VN: 'Viet Nam',\r\n VG: 'Virgin Islands, British',\r\n VI: 'Virgin Islands, U.S.',\r\n WF: 'Wallis And Futuna',\r\n EH: 'Western Sahara',\r\n YE: 'Yemen',\r\n ZM: 'Zambia',\r\n ZW: 'Zimbabwe'\r\n }\r\n return (\r\n isoCountries[this.country as keyof typeof isoCountries] || this.country\r\n )\r\n },\r\n characteristics () {\r\n const characteristics = []\r\n for (const prop of Object.entries(this.$props)) {\r\n if (prop[1] && prop[0] !== 'properties') {\r\n const value = this.isNumber(prop[1] as string) ? FormatService.preciseNumberRound(+prop[1], 1) : prop[1]\r\n const formattedChar = {\r\n name: this.$t(`fleet.characteristics.${prop[0]}`),\r\n value\r\n }\r\n characteristics.push(formattedChar)\r\n }\r\n }\r\n if (this.properties) {\r\n for (const p of this.properties as AssetProperty[]) {\r\n const value = this.isNumber(p.value as string) ? FormatService.preciseNumberRound(+p.value, 1) : p.value\r\n characteristics.push({ name: p.label, value })\r\n }\r\n }\r\n return characteristics.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)\r\n }\r\n },\r\n methods: {\r\n isNumber (value: string | number): boolean {\r\n return ((value != null) &&\r\n (value !== '') &&\r\n !isNaN(Number(value.toString())))\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetAssetDetails.vue?vue&type=template&id=b3d683a2&ts=true\"\nimport script from \"./FleetAssetDetails.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetAssetDetails.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"flex flex-col\"\n}\nconst _hoisted_2 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportListByServiceCategory = _resolveComponent(\"ReportListByServiceCategory\")!\n const _component_ReportListByServiceCategoryLoading = _resolveComponent(\"ReportListByServiceCategoryLoading\")!\n const _component_ReportsListMenuShell = _resolveComponent(\"ReportsListMenuShell\")!\n\n return (_openBlock(), _createBlock(_component_ReportsListMenuShell, {\n categories: _ctx.categories,\n assetOnlyServices: [],\n error: _ctx.error,\n loading: _ctx.loading,\n isDashboard: false,\n isAsset: true,\n assetCategories: _ctx.assetCategories,\n onShowReport: _ctx.showReportById\n }, {\n default: _withCtx(() => [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n _createVNode(_component_ReportListByServiceCategory, {\n category: category,\n assets: [_ctx.asset],\n isInReports: false\n }, null, 8, [\"category\", \"assets\"])\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ReportListByServiceCategoryLoading)\n ]))\n ]),\n _: 1\n }, 8, [\"categories\", \"error\", \"loading\", \"assetCategories\", \"onShowReport\"]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createVNode as _createVNode, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dd2e69f4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mt-6\" }\nconst _hoisted_2 = { class: \"flex flex-col lg:flex-row text-gray-200 w-full\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_5 = { class: \"border-b border-b-bg-3 text-text-alt\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = {\n key: 2,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_9 = {\n key: 3,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_10 = {\n key: 4,\n class: \"lg:w-1/6 hidden lg:block\"\n}\nconst _hoisted_11 = { class: \"w-[70%] bg-bg-0/50 backdrop-blur-md h-full transit\" }\nconst _hoisted_12 = { class: \"border-b border-b-bg-3 text-text-alt\" }\nconst _hoisted_13 = { key: 0 }\nconst _hoisted_14 = [\"onClick\"]\nconst _hoisted_15 = { class: \"w-[70%] bg-bg-0/50 backdrop-blur-md h-full transit\" }\nconst _hoisted_16 = { class: \"border-b border-b-bg-3 text-text-alt\" }\nconst _hoisted_17 = { key: 0 }\nconst _hoisted_18 = [\"onClick\"]\nconst _hoisted_19 = { class: \"grow ml-0 lg:ml-6 w-full lg:max-w-[80%]\" }\nconst _hoisted_20 = {\n key: 0,\n class: \"flex lg:hidden justify-center my-7\"\n}\nconst _hoisted_21 = { class: \"ml-3 body-1 font-bold\" }\nconst _hoisted_22 = {\n key: 1,\n class: \"flex lg:hidden justify-center my-7\"\n}\nconst _hoisted_23 = {\n key: 2,\n class: \"flex lg:hidden justify-center my-7\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportsListMenu = _resolveComponent(\"ReportsListMenu\")!\n const _component_FilterIcon = _resolveComponent(\"FilterIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (\r\n !_ctx.error && !_ctx.loading && _ctx.categories.length && !_ctx.isDashboard && !_ctx.isAsset\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, i) => {\n return (_openBlock(), _createBlock(_component_ReportsListMenu, {\n key: i,\n category: category,\n isDashboard: _ctx.isDashboard,\n onShowReport: ($event: any) => (_ctx.handleDetailReport($event, category)),\n onShowService: ($event: any) => (_ctx.handleServiceReport($event, category)),\n allActive: _ctx.allActive,\n allActiveInCategory: _ctx.allActiveInCategory\n }, null, 8, [\"category\", \"isDashboard\", \"onShowReport\", \"onShowService\", \"allActive\", \"allActiveInCategory\"]))\n }), 128))\n ]))\n : (\r\n !_ctx.error && !_ctx.loading && _ctx.categories.length && !_ctx.isDashboard && _ctx.isAsset\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.categories && _ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(category.groups, (service, j) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: j }, [\n _withDirectives(_createElementVNode(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(service.groups, (report, k) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: k,\n class: _normalizeClass([\"body-2 p-4 cursor-pointer\", { 'font-bold': report.active }]),\n onClick: ($event: any) => (_ctx.handleVesselReport(report))\n }, _toDisplayString(report.title), 11, _hoisted_7))\n }), 128))\n ], 512), [\n [_vShow, _ctx.open]\n ])\n ]))\n }), 128))\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : (!_ctx.error && !_ctx.loading && !_ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, _toDisplayString(_ctx.$t(\"allReports.notFound\")), 1))\n : (_ctx.error && !_ctx.loading && !_ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _toDisplayString(_ctx.error), 1))\n : (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(5, (i) => {\n return _createVNode(_component_ReportsListMenu, {\n key: i,\n loading: _ctx.loading,\n onShowList: _cache[0] || (_cache[0] = ($event: any) => (_ctx.report.active = !_ctx.report.active))\n }, null, 8, [\"loading\"])\n }), 64))\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.error && !_ctx.loading && _ctx.categories.length && !_ctx.isAsset)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 5,\n class: _normalizeClass([\"block lg:hidden fixed h-[calc(100vh-56px-63px)] z-10 top-[63px] transit w-screen\", _ctx.filtersDisplayed ? 'left-0' : '-left-full']),\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.closeFilters && _ctx.closeFilters(...args)))\n }, [\n _createElementVNode(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, i) => {\n return (_openBlock(), _createBlock(_component_ReportsListMenu, {\n key: i,\n category: category,\n isDashboard: _ctx.isDashboard,\n onShowDetail: ($event: any) => (_ctx.handleDetailDashboard($event, category)),\n onShowReport: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('show-report', $event))),\n onShowService: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleServiceReport($event, _ctx.report))),\n class: \"border\"\n }, null, 8, [\"category\", \"isDashboard\", \"onShowDetail\"]))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_12, [\n (_ctx.categories && _ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(category.groups, (service, j) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: j }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(service.groups, (report, k) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: k,\n class: \"body-2 p-4 cursor-pointer\",\n onClick: ($event: any) => (_ctx.handleVesselReport(report))\n }, _toDisplayString(report.title), 9, _hoisted_14))\n }), 128))\n ]))\n }), 128))\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 2))\n : (!_ctx.error && !_ctx.loading && _ctx.categories.length && _ctx.isAsset)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 6,\n class: _normalizeClass([\"block lg:hidden fixed h-[calc(100vh-56px-63px)] z-10 top-[63px] transit w-screen\", _ctx.filtersDisplayed ? 'left-0' : '-left-full']),\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.closeFilters && _ctx.closeFilters(...args)))\n }, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n (_ctx.categories && _ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, i) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: i }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(category.groups, (service, j) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: j }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(service.groups, (report, k) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: k,\n class: \"body-2 p-4 cursor-pointer\",\n onClick: ($event: any) => (_ctx.handleVesselReport(report))\n }, _toDisplayString(report.title), 9, _hoisted_18))\n }), 128))\n ]))\n }), 128))\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_19, [\n (_ctx.categories.length && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.openFilters && _ctx.openFilters(...args))),\n class: \"text-text-title stroke-text-title py-2 px-4 border border-text-title rounded-lg flex items-center filters-button\"\n }, [\n _createVNode(_component_FilterIcon, { class: \"h-4\" }),\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.$t(\"allDashboards.filters\")), 1)\n ])\n ]))\n : (!_ctx.error && !_ctx.loading && !_ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, _toDisplayString(_ctx.$t(\"allReports.notFound\")), 1))\n : (_ctx.error && !_ctx.loading && !_ctx.categories.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5014be33\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"text-text-alt\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"mt-1.5 mb-2 w-5/6 ml-4\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"flex items-center justify-between font-normal cursor-pointer py-1\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.open = !_ctx.open))\n }, [\n (_ctx.category && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"h4\", {\n key: 0,\n class: _normalizeClass(_ctx.category.active ? 'font-bold' : '!font-normal !text-text-alt'),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('show-service', _ctx.category.name)))\n }, _toDisplayString(_ctx.category.name), 3))\n : _createCommentVNode(\"\", true),\n (!_ctx.category && _ctx.loading)\n ? (_openBlock(), _createElementBlock(\"h4\", {\n key: 1,\n class: _normalizeClass(_ctx.loading ? 'skeleton' : '')\n }, null, 2))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.category && _ctx.category.groups.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.category.groups, (service, index) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"body-2 py-3\"\n }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (_ctx.$emit('show-report', service.name)),\n class: _normalizeClass([{'font-bold border-l-2 border-semantic-activate': service.active && !_ctx.allActiveInCategory}, \"w-fit cursor-pointer px-4\"])\n }, _toDisplayString(service.name), 11, _hoisted_3)\n ])), [\n [_vShow, _ctx.category.active && !_ctx.allActive]\n ])\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { ReportServiceCategory } from '@/core/model/report.model'\r\n\r\nexport default defineComponent({\r\n name: 'DashboardsListMenu',\r\n props: {\r\n category: {\r\n type: Object as PropType\r\n },\r\n loading: { type: Boolean, default: false },\r\n allActive: { type: Boolean, default: true },\r\n allActiveInCategory: { type: Boolean, default: true }\r\n },\r\n data () {\r\n return {\r\n open: false\r\n }\r\n }\r\n})\r\n","import { render } from \"./ReportsListMenu.vue?vue&type=template&id=5014be33&scoped=true&ts=true\"\nimport script from \"./ReportsListMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportsListMenu.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportsListMenu.vue?vue&type=style&index=0&id=5014be33&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5014be33\"]])\n\nexport default __exports__","\r\nimport ReportsListMenu from '@/components/buttons/ReportsListMenu.vue'\r\nimport FilterIcon from '@/components/icons/FilterIcon.vue'\r\nimport manageReportsMenu from '@/core/composables/reportsMenu.composable'\r\nimport { FleetCategoryModel } from '@/core/model/fleet.model'\r\nimport { ReportServiceCategory, Report } from '@/core/model/report.model'\r\nimport { defineComponent, PropType, ref } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ReportsListMenuShell',\r\n components: { ReportsListMenu, FilterIcon },\r\n props: {\r\n categories: Array as PropType,\r\n // assetOnlyServices: Array as PropType,\r\n error: String,\r\n loading: Boolean,\r\n assetCategories: Array as PropType,\r\n isAsset: { type: Boolean, default: false }\r\n },\r\n setup () {\r\n const manageMenu = manageReportsMenu()\r\n const filtersDisplayed = ref(manageMenu.filtersDisplayed)\r\n const openFilters = manageMenu.openFilters\r\n const closeFilters = manageMenu.closeFilters\r\n const open = ref(false)\r\n const allActive = ref(true)\r\n const allActiveInCategory = ref(true)\r\n return {\r\n filtersDisplayed,\r\n openFilters,\r\n closeFilters,\r\n open,\r\n allActive,\r\n allActiveInCategory\r\n }\r\n },\r\n created () {\r\n if (this.isAsset) {\r\n this.open = true\r\n }\r\n },\r\n methods: {\r\n handleServiceReport ($e: string, report: ReportServiceCategory) {\r\n let allActive = -1\r\n\r\n for (const service of this.categories!) {\r\n console.log(service, report)\r\n if (service.active && service !== report) {\r\n allActive += 1\r\n }\r\n }\r\n if (allActive > -1) {\r\n for (const service of this.categories!) {\r\n service.active = false\r\n }\r\n\r\n report.active = !report.active\r\n for (const serv of report.groups) {\r\n serv.active = true\r\n }\r\n this.allActiveInCategory = true\r\n this.allActive = false\r\n } else {\r\n for (const service of this.categories!) {\r\n service.active = true\r\n for (const serv of service.groups) {\r\n serv.active = true\r\n }\r\n }\r\n this.allActiveInCategory = false\r\n this.allActive = true\r\n }\r\n },\r\n handleDetailReport ($e: string, report: ReportServiceCategory) {\r\n let allActive = -1\r\n const serviceSelected = report.groups.find((t) => t.name === $e)\r\n for (const service of this.categories!) {\r\n for (const serv of service.groups) {\r\n if (serv.active && serv !== serviceSelected) {\r\n allActive += 1\r\n }\r\n }\r\n }\r\n\r\n if (allActive > -1) {\r\n for (const service of this.categories!) {\r\n service.active = false\r\n for (const serv of service.groups) {\r\n serv.active = false\r\n }\r\n }\r\n\r\n serviceSelected!.active = !serviceSelected!.active\r\n report.active = !report.active\r\n this.allActiveInCategory = false\r\n this.allActive = false\r\n } else {\r\n for (const service of this.categories!) {\r\n service.active = true\r\n for (const serv of service.groups) {\r\n serv.active = true\r\n }\r\n }\r\n this.allActive = true\r\n this.allActiveInCategory = true\r\n }\r\n },\r\n handleVesselReport (report: Report) {\r\n if (!this.isAsset) {\r\n let allActive = -1\r\n if (this.categories) {\r\n // && this.assetOnlyServices) {\r\n for (const service of this.categories) {\r\n for (const serv of service.groups) {\r\n if (serv.active) {\r\n allActive += 1\r\n }\r\n }\r\n }\r\n if (allActive > -1) {\r\n for (const service of this.categories!) {\r\n service.active = false\r\n for (const serv of service.groups) {\r\n serv.active = false\r\n }\r\n }\r\n report.active = !report.active\r\n } else {\r\n for (const service of this.categories) {\r\n service.active = true\r\n for (const serv of service.groups) {\r\n serv.active = true\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n let allActive = -1\r\n for (const service of this.categories!) {\r\n for (const serviceGroup of service.groups) {\r\n for (const group of serviceGroup.groups) {\r\n if (group.active && group !== report) {\r\n allActive += 1\r\n }\r\n }\r\n }\r\n }\r\n if (allActive > -1) {\r\n for (const service of this.categories!) {\r\n for (const serviceGroup of service.groups) {\r\n for (const group of serviceGroup.groups) {\r\n group.active = false\r\n }\r\n }\r\n }\r\n report.active = !report.active\r\n } else {\r\n for (const service of this.categories!) {\r\n for (const serviceGroup of service.groups) {\r\n for (const group of serviceGroup.groups) {\r\n group.active = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./ReportsListMenuShell.vue?vue&type=template&id=dd2e69f4&scoped=true&ts=true\"\nimport script from \"./ReportsListMenuShell.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportsListMenuShell.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportsListMenuShell.vue?vue&type=style&index=0&id=dd2e69f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-dd2e69f4\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode, TransitionGroup as _TransitionGroup, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"font-display text-white text-2xl my-4 font-bold\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ListReportByService = _resolveComponent(\"ListReportByService\")!\n\n return (_openBlock(), _createBlock(_TransitionGroup, {\n name: \"fade\",\n tag: \"div\"\n }, {\n default: _withCtx(() => [\n (_ctx.category.active)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_ctx.category.name), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.category.groups, (service, i) => {\n return (_openBlock(), _createBlock(_component_ListReportByService, {\n key: i,\n service: service,\n categoryName: _ctx.category.name,\n assets: _ctx.assets,\n isInReports: _ctx.isInReports\n }, null, 8, [\"service\", \"categoryName\", \"assets\", \"isInReports\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"p-6 pb-4 mb-4\" }\nconst _hoisted_3 = { class: \"-mx-6 border-b mb-4\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportGroupHeader = _resolveComponent(\"ReportGroupHeader\")!\n const _component_AssetReport = _resolveComponent(\"AssetReport\")!\n const _component_ServiceReport = _resolveComponent(\"ServiceReport\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_ctx.service.active)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.service.groups, (report, j) => {\n return (_openBlock(), _createBlock(_component_GenericCardShell, {\n key: j,\n class: \"\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_ReportGroupHeader, {\n title: report.title,\n subtitle: _ctx.subtitle,\n onRequestUpload: ($event: any) => (report.showForm = true),\n id: report.id\n }, null, 8, [\"title\", \"subtitle\", \"onRequestUpload\", \"id\"])\n ]),\n (report.isAssetRelated)\n ? (_openBlock(), _createBlock(_component_AssetReport, {\n key: 0,\n \"report-title\": report.title,\n id: report.id,\n assets: _ctx.assets,\n isInReports: _ctx.isInReports,\n showForm: report.showForm,\n onCloseForm: ($event: any) => (report.showForm = false)\n }, null, 8, [\"report-title\", \"id\", \"assets\", \"isInReports\", \"showForm\", \"onCloseForm\"]))\n : (_openBlock(), _createBlock(_component_ServiceReport, {\n key: 1,\n id: report.id,\n \"report-title\": report.title,\n showForm: report.showForm,\n onCloseForm: ($event: any) => (report.showForm = false)\n }, null, 8, [\"id\", \"report-title\", \"showForm\", \"onCloseForm\"]))\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, withCtx as _withCtx, Teleport as _Teleport, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9e3d2b6e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = { key: 2 }\nconst _hoisted_3 = {\n key: 1,\n class: \"py-3 lg:py-6 h-100 relative\"\n}\nconst _hoisted_4 = { class: \"flex\" }\nconst _hoisted_5 = { class: \"table w-full\" }\nconst _hoisted_6 = { key: 3 }\nconst _hoisted_7 = { class: \"flex flex-col report-upload-form bg-bg-0\" }\nconst _hoisted_8 = { class: \"min-w-[300px] lg:max-w-[80%]\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Treeselect = _resolveComponent(\"Treeselect\")!\n const _component_ReportAttributeTabLoading = _resolveComponent(\"ReportAttributeTabLoading\")!\n const _component_ReportInstanceLoading = _resolveComponent(\"ReportInstanceLoading\")!\n const _component_ReportAttributeTab = _resolveComponent(\"ReportAttributeTab\")!\n const _component_ReportInstanceRow = _resolveComponent(\"ReportInstanceRow\")!\n const _component_Pagination = _resolveComponent(\"Pagination\")!\n const _component_AssetReportForm = _resolveComponent(\"AssetReportForm\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.isInReports && _ctx.assets.length)\n ? (_openBlock(), _createBlock(_component_Treeselect, {\n key: 0,\n onOpen: _ctx.rotateArrow,\n onClose: _ctx.rotateArrow,\n \"onUpdate:modelValue\": [\n _ctx.selectAsset,\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.modelValue) = $event))\n ],\n options: _ctx.assets,\n multiple: false,\n normalizer: _ctx.normalizer,\n searchable: true,\n alwaysOpen: false,\n limit: 1,\n valueConsistsOf: 'BRANCH_PRIORITY',\n \"disable-branch-nodes\": false,\n valueFormat: 'label',\n class: \"reportsAssetSelect max-w-[250px] mb-4\",\n modelValue: _ctx.modelValue,\n id: _ctx.TreeselectId\n }, null, 8, [\"onOpen\", \"onClose\", \"onUpdate:modelValue\", \"options\", \"normalizer\", \"modelValue\", \"id\"]))\n : _createCommentVNode(\"\", true),\n (this.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ReportAttributeTabLoading),\n _createVNode(_component_ReportInstanceLoading)\n ]))\n : (_ctx.report && _ctx.report.attributes.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ReportAttributeTab, {\n attributes: _ctx.report.attributes,\n onUpdateSelectedAttribute: _ctx.updateSelectedAttribute\n }, null, 8, [\"attributes\", \"onUpdateSelectedAttribute\"]),\n (_ctx.loadingInstance)\n ? (_openBlock(), _createBlock(_component_ReportInstanceLoading, { key: 0 }))\n : (_ctx.instances.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"table\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.instances, (item, i) => {\n return (_openBlock(), _createBlock(_component_ReportInstanceRow, {\n key: i,\n item: item,\n onDownload: ($event: any) => (_ctx.download(item))\n }, null, 8, [\"item\", \"onDownload\"]))\n }), 128))\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.loading && _ctx.totalPages > 1)\n ? (_openBlock(), _createBlock(_component_Pagination, {\n key: 2,\n currentPage: _ctx.currentPage,\n totalPages: _ctx.totalPages,\n numberOfButtonAfterCurrent: 4,\n onSelectPage: _cache[1] || (_cache[1] = selectedPage => _ctx.fetchReports(selectedPage - 1))\n }, null, 8, [\"currentPage\", \"totalPages\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (!_ctx.report.attributes.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \"No reports found for this asset/category\"))\n : _createCommentVNode(\"\", true),\n (_ctx.showForm)\n ? (_openBlock(), _createBlock(_Teleport, {\n key: 4,\n to: \"body\"\n }, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_GenericCardShell, null, {\n default: _withCtx(() => [\n _createVNode(_component_AssetReportForm, {\n id: _ctx.report.id,\n title: _ctx.report.name,\n assets: _ctx.assets,\n assetId: _ctx.selectedAsset?.id,\n onClose: _cache[2] || (_cache[2] = ($event: any) => (_ctx.closeForm()))\n }, null, 8, [\"id\", \"title\", \"assets\", \"assetId\"])\n ]),\n _: 1\n })\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, vModelText as _vModelText, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, createTextVNode as _createTextVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1342b190\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"p-6 pb-4\" }\nconst _hoisted_2 = { class: \"-mx-6 border-b\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex items-center justify-center p-2 pb-4\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"p-6 pt-4 mb-4\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Asset:\", -1))\nconst _hoisted_6 = { class: \"relative block\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Title:\", -1))\nconst _hoisted_8 = { class: \"relative block\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Attributes\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"-1\" }, \"---\", -1))\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Date\", -1))\nconst _hoisted_13 = { class: \"relative block\" }\nconst _hoisted_14 = { class: \"absolute inset-y-0 left-0 flex items-center pl-2\" }\nconst _hoisted_15 = { for: \"file-input\" }\nconst _hoisted_16 = { key: 0 }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Drop Them Here\", -1))\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"smaller\" }, \"to add them\", -1))\nconst _hoisted_19 = [\n _hoisted_17,\n _hoisted_18\n]\nconst _hoisted_20 = { key: 1 }\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Drag Your Files Here\", -1))\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"smaller\" }, [\n /*#__PURE__*/_createTextVNode(\" or \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, [\n /*#__PURE__*/_createElementVNode(\"em\", null, \"click here\")\n ]),\n /*#__PURE__*/_createTextVNode(\" to select files \")\n], -1))\nconst _hoisted_23 = [\n _hoisted_21,\n _hoisted_22\n]\nconst _hoisted_24 = {\n key: 1,\n class: \"preview-file-container mt-10\"\n}\nconst _hoisted_25 = { class: \"ml-10\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FormHeader = _resolveComponent(\"FormHeader\")!\n const _component_LoaderIcon = _resolveComponent(\"LoaderIcon\")!\n const _component_Treeselect = _resolveComponent(\"Treeselect\")!\n const _component_CalendarIcon = _resolveComponent(\"CalendarIcon\")!\n const _component_DropZone = _resolveComponent(\"DropZone\")!\n const _component_FilePreview = _resolveComponent(\"FilePreview\")!\n const _component_UploadIcon = _resolveComponent(\"UploadIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_FormHeader, {\n title: _ctx.title,\n ClientDepartment: _ctx.clientDepartmentContext,\n onClose: _ctx.close\n }, null, 8, [\"title\", \"ClientDepartment\", \"onClose\"])\n ])\n ]),\n (_ctx.uploading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_LoaderIcon)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _hoisted_5,\n (_ctx.assets.length)\n ? (_openBlock(), _createBlock(_component_Treeselect, {\n key: 0,\n onOpen: _ctx.rotateArrow,\n onClose: _ctx.rotateArrow,\n options: _ctx.assets,\n multiple: false,\n normalizer: _ctx.normalizer,\n searchable: true,\n alwaysOpen: false,\n limit: 1,\n valueConsistsOf: 'BRANCH_PRIORITY',\n \"disable-branch-nodes\": false,\n valueFormat: 'label',\n class: \"reportsAssetSelect max-w-[250px] mb-4\",\n modelValue: _ctx.modelValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.modelValue) = $event)),\n id: _ctx.TreeselectId\n }, null, 8, [\"onOpen\", \"onClose\", \"options\", \"normalizer\", \"modelValue\", \"id\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _hoisted_7,\n _withDirectives(_createElementVNode(\"input\", {\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\",\n placeholder: \"Title\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.name) = $event)),\n type: \"Text\",\n name: \"Format\"\n }, null, 512), [\n [_vModelText, _ctx.name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _hoisted_9,\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.attributeId) = $event)),\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\"\n }, [\n _hoisted_10,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.attributes, (attr, key) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: key,\n value: attr.id\n }, _toDisplayString(attr.name), 9, _hoisted_11))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.attributeId]\n ])\n ]),\n _hoisted_12,\n _createElementVNode(\"label\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, [\n _createVNode(_component_CalendarIcon, { class: \"h-5 w-5 fill-text-alt stroke-text-alt\" })\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n class: \"block bg-bg-0 w-full rounded-md py-2 pl-9 pr-3 shadow-sm focus:outline-none focus:border-text-alt focus:ring-text-alt focus:ring-1 sm:text-sm text-text-alt body-2 !leading-4 font-bold\",\n placeholder: \"Date\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.date) = $event)),\n type: \"date\",\n name: \"Date\"\n }, null, 512), [\n [_vModelText, _ctx.date]\n ])\n ]),\n (_ctx.file === null)\n ? (_openBlock(), _createBlock(_component_DropZone, {\n key: 0,\n \"data-active\": \"false\",\n class: \"drop-area mt-10\",\n onFilesDropped: _ctx.addFiles\n }, {\n default: _withCtx(({ dropZoneActive }) => [\n _createElementVNode(\"label\", _hoisted_15, [\n dropZoneActive\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, _hoisted_19))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_20, _hoisted_23)),\n _createElementVNode(\"input\", {\n type: \"file\",\n id: \"file-input\",\n multiple: \"\",\n onChange: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.onInputChange && _ctx.onInputChange(...args)))\n }, null, 32)\n ])\n ]),\n _: 1\n }, 8, [\"onFilesDropped\"]))\n : (_ctx.file)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n _createVNode(_component_FilePreview, {\n file: _ctx.file,\n tag: \"div\",\n onRemove: _ctx.removeFile\n }, null, 8, [\"file\", \"onRemove\"]),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.file.file.name), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.upload && _ctx.upload(...args))),\n class: \"mt-10 text-gray-800 btn-gradient-yellow no-underline flex items-center justify-end justify-between hover:bg-bg-2 rounded-md p-0.5 xxs:p-2 mx-0 font-normal w-full lg:w-auto\"\n }, [\n _createVNode(_component_UploadIcon, { class: \"w-4 h-4 fill-gray-800 mr-3\" }),\n _createTextVNode(\" Upload \")\n ])\n ]))\n ]))\n}","\r\n\r\nimport { defineComponent, inject, PropType } from 'vue'\r\nimport Treeselect from 'vue3-treeselect'\r\nimport DropZone from '@/components/reports/categories/services/reports/form/DropZone.vue'\r\nimport FilePreview from '@/components/reports/categories/services/reports/form/FilePreview.vue'\r\nimport FormHeader from '@/components/reports/categories/services/reports/form/ServiceReportFormHeader.vue'\r\nimport CalendarIcon from '@/components/icons/CalendarIcon.vue'\r\nimport LoaderIcon from '@/components/icons/LoaderIcon.vue'\r\nimport UploadIcon from '@/components/icons/UploadIcon.vue'\r\nimport { ContextManager } from '@/core/managers/context.manager'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport { UploadAssetReportModel, UploadableFile } from '@/core/model/report.model'\r\nimport { AssetApiModel } from '@/core/model/fleet.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n Treeselect,\r\n CalendarIcon,\r\n LoaderIcon,\r\n UploadIcon,\r\n FormHeader,\r\n DropZone,\r\n FilePreview\r\n },\r\n props: {\r\n id: { type: Number, required: true },\r\n title: { type: String, required: true },\r\n assets: { type: Array as PropType, required: true },\r\n assetId: { type: Number }\r\n },\r\n setup () {\r\n return {\r\n contextManager: inject(ContextManager.name) as ContextManager,\r\n reportManager: ReportManager\r\n }\r\n },\r\n data () {\r\n return {\r\n clientDepartmentContext: 'None',\r\n attributes: [] as Array,\r\n file: null as UploadableFile|null,\r\n date: new Date(Date.now()),\r\n modelValue: null as AssetApiModel|null,\r\n // format: 'pdf',\r\n name: '',\r\n attributeId: -1,\r\n uploading: false\r\n }\r\n },\r\n async created () {\r\n const contextResponse = await this.contextManager.currentDepartment()\r\n if (contextResponse.data) {\r\n this.clientDepartmentContext = contextResponse.data\r\n }\r\n this.attributes = await this.reportManager.attributes()\r\n if (this.assetId && this.assets.length) {\r\n this.modelValue = this.assets.find(a => a.id === this.assetId) as AssetApiModel\r\n }\r\n },\r\n methods: {\r\n close () {\r\n if (this.uploading) return\r\n\r\n this.removeFile()\r\n this.$emit('close')\r\n },\r\n onInputChange (e: any) {\r\n this.addFiles(e.target.files)\r\n e.target.value = null // reset so that selecting the same file again will still cause it to fire this change\r\n },\r\n addFiles (newFiles: File[]) {\r\n const newUploadableFile = new UploadableFile(newFiles[0])\r\n this.file = newUploadableFile\r\n },\r\n removeFile () {\r\n this.file = null\r\n },\r\n async upload () {\r\n if (this.file === null || this.modelValue === null) return\r\n this.uploading = true\r\n let shouldBeClose = false\r\n try {\r\n const uploadModel = {\r\n assetId: this.modelValue.id,\r\n reportId: this.id,\r\n Title: this.name,\r\n attributeId: this.attributeId,\r\n ClientDepartmentCode: this.clientDepartmentContext,\r\n Date: this.date,\r\n // Format: this.format,\r\n File: this.file as UploadableFile\r\n } as UploadAssetReportModel\r\n await this.reportManager.uploadForAsset(uploadModel)\r\n shouldBeClose = true\r\n } finally {\r\n this.uploading = false\r\n }\r\n\r\n if (shouldBeClose) {\r\n this.close()\r\n }\r\n },\r\n normalizer (node: AssetApiModel) {\r\n return {\r\n id: node.id,\r\n label: node.name\r\n }\r\n },\r\n rotateArrow () {\r\n const TreeselectElement = document.getElementById(this.TreeselectId)\r\n if (TreeselectElement === null) return\r\n const arrowContainer = TreeselectElement.querySelectorAll('.vue-treeselect__control-arrow-container')\r\n arrowContainer[0].classList.toggle('rotate-x-180')\r\n }\r\n },\r\n computed: {\r\n TreeselectId () {\r\n return 'reportform-' + this.id.toString() + '-AssetTreeSelect'\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./AssetReportForm.vue?vue&type=template&id=1342b190&scoped=true&ts=true\"\nimport script from \"./AssetReportForm.vue?vue&type=script&lang=ts\"\nexport * from \"./AssetReportForm.vue?vue&type=script&lang=ts\"\n\nimport \"./AssetReportForm.vue?vue&type=style&index=0&id=1342b190&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1342b190\"]])\n\nexport default __exports__","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport ReportAttributeTab from '@/components/reports/categories/services/reports/attributes/ReportAttributeTab.vue'\r\nimport ReportAttributeTabLoading\r\n from '@/components/reports/categories/services/reports/attributes/ReportAttributeTab.loading.vue'\r\nimport ReportInstanceRow from '@/components/reports/categories/services/reports/list/ReportRow.vue'\r\nimport ReportInstanceLoading from '@/components/reports/categories/services/reports/list/ReportInstanceLoading.vue'\r\nimport AssetReportForm from '@/components/reports/categories/services/reports/form/AssetReportForm.vue'\r\nimport Treeselect from 'vue3-treeselect'\r\nimport 'vue3-treeselect/dist/vue3-treeselect.css'\r\nimport { ReportAttributeItem, ReportDetail } from '@/core/model/report.model'\r\nimport { AssetApiModel } from '@/core/model/fleet.model'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport FormatService from '@/core/services/format.service'\r\nimport Pagination from '@/components/common/pagination.vue'\r\n\r\nexport default defineComponent({\r\n name: 'ReportsById',\r\n components: {\r\n GenericCardShell,\r\n ReportAttributeTab,\r\n ReportInstanceRow,\r\n ReportInstanceLoading,\r\n ReportAttributeTabLoading,\r\n AssetReportForm,\r\n Treeselect,\r\n Pagination\r\n },\r\n props: {\r\n id: { type: Number, required: true },\r\n reportTitle: { type: String, required: true },\r\n assets: { type: Array as PropType, required: true },\r\n assetId: { type: Number },\r\n isInReports: { type: Boolean, default: false },\r\n showForm: { type: Boolean, default: false }\r\n },\r\n\r\n data () {\r\n return {\r\n totalPages: 0,\r\n currentPage: 0,\r\n attributeId: undefined as number|undefined,\r\n loading: true,\r\n loadingInstance: true,\r\n report: {} as ReportDetail,\r\n // modelValue is used for treeselect - we don't use selected asset cause the update of value is not synch in time. We haave a delay\r\n modelValue: null as AssetApiModel|null,\r\n selectedAsset: {} as AssetApiModel,\r\n instances: [] as ReportAttributeItem[],\r\n toast: useToast()\r\n }\r\n },\r\n async created () {\r\n if (this.assetId && this.assets.length) {\r\n this.selectedAsset = this.assets.find(a => a.id === this.assetId) as AssetApiModel\r\n } else if (this.assetId) {\r\n this.selectedAsset = { id: this.assetId } as AssetApiModel\r\n } else {\r\n this.selectedAsset = this.assets[0]\r\n }\r\n this.modelValue = this.selectedAsset\r\n await this.retrieveReportDetail()\r\n },\r\n methods: {\r\n async selectAsset ($event: AssetApiModel) {\r\n /* console.log($event) */\r\n this.selectedAsset = $event\r\n await this.retrieveReportDetail()\r\n },\r\n async retrieveReportDetail () {\r\n this.loading = true\r\n this.attributeId = undefined\r\n\r\n const response = await ReportManager.detailAsset(this.id, this.selectedAsset.id)\r\n\r\n if (response.data && !response.isError) {\r\n this.report = response.data\r\n }\r\n this.loading = false\r\n await this.fetchReports()\r\n },\r\n async closeForm () {\r\n this.$emit('closeForm')\r\n await this.retrieveReportDetail()\r\n },\r\n async updateSelectedAttribute (selectedAttributeId: number|undefined) {\r\n this.attributeId = selectedAttributeId\r\n await this.fetchReports()\r\n },\r\n rotateArrow () {\r\n const TreeselectElement = document.getElementById(this.TreeselectId)\r\n if (TreeselectElement === null) return\r\n const arrowContainer = TreeselectElement.querySelectorAll('.vue-treeselect__control-arrow-container')\r\n arrowContainer[0].classList.toggle('rotate-x-180')\r\n },\r\n normalizer (node: AssetApiModel) {\r\n return {\r\n id: node.id,\r\n label: node.name\r\n }\r\n },\r\n async fetchReports (pageIndex = 0) {\r\n if (!this.selectedAsset.id) return\r\n\r\n this.loadingInstance = true\r\n this.instances = []\r\n if (this.attributeId) {\r\n this.instances = await this.retrieveReportInstance(this.attributeId, pageIndex)\r\n } else {\r\n this.instances = await this.retrieveDefaultInstance()\r\n }\r\n this.loadingInstance = false\r\n },\r\n async retrieveReportInstance (attributeId: number, pageIndex = 0): Promise {\r\n const numberOfElementPerPage = 5\r\n const response = await ReportManager.byAttributeAsset(this.id, this.selectedAsset.id, attributeId, pageIndex, numberOfElementPerPage)\r\n if (response.isError) {\r\n const error = this.$t('allReports.error', {\r\n error: response.Message\r\n })\r\n this.toast.error(error)\r\n }\r\n\r\n this.currentPage = response.data?.pageIndex as number + 1\r\n this.totalPages = response.data?.totalPages as number\r\n return response.data?.items ?? []\r\n },\r\n async changePageIndex (selectedPage: number) {\r\n await this.fetchReports(selectedPage - 1) // pageIndex start at 0 - selectedPage start at 1\r\n },\r\n async retrieveDefaultInstance (): Promise {\r\n let instances = [] as ReportAttributeItem[]\r\n for (const a of this.report.attributes) {\r\n instances = instances.concat(a.instances.map(i => {\r\n return {\r\n id: i.id,\r\n name: i.name,\r\n instanceDate: i.instanceDate,\r\n fileFormat: i.fileFormat,\r\n period: a.name\r\n } as ReportAttributeItem\r\n }))\r\n }\r\n this.currentPage = 0\r\n this.totalPages = 0\r\n // sort instance by instanceDate\r\n return instances.sort((a, b) => new Date(b.instanceDate).getTime() - new Date(a.instanceDate).getTime())\r\n },\r\n async download (item: ReportAttributeItem) {\r\n if (item.IsDownloading) return\r\n item.IsDownloading = true\r\n\r\n try {\r\n const filename = item.name + ' - ' + FormatService.formatDate(item.instanceDate) + '.' + item.fileFormat\r\n const displayFilename = this.reportTitle + '-' + item.name + '.' + item.fileFormat\r\n await ReportManager.DownloadInstance(displayFilename, filename, item.tinyGuid)\r\n } finally {\r\n item.IsDownloading = false\r\n }\r\n }\r\n },\r\n computed: {\r\n TreeselectId () {\r\n return 'report-' + this.id.toString() + '-AssetTreeSelect'\r\n }\r\n }\r\n})\r\n","import { render } from \"./AssetReport.vue?vue&type=template&id=9e3d2b6e&scoped=true&ts=true\"\nimport script from \"./AssetReport.vue?vue&type=script&lang=ts\"\nexport * from \"./AssetReport.vue?vue&type=script&lang=ts\"\n\nimport \"./AssetReport.vue?vue&type=style&index=0&id=9e3d2b6e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-9e3d2b6e\"]])\n\nexport default __exports__","\r\nimport ServiceReport from '@/components/reports/categories/services/reports/ServiceReport.vue'\r\nimport AssetReport from '@/components/reports/categories/services/reports/AssetReport.vue'\r\nimport ReportGroupHeader from '@/components/reports/categories/services/reports/headers/ReportGroupHeader.vue'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport { ServiceReportGroup } from '@/core/model/report.model'\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n GenericCardShell,\r\n ServiceReport,\r\n AssetReport,\r\n ReportGroupHeader\r\n },\r\n props: {\r\n service: { type: Object as PropType, required: true },\r\n categoryName: { type: String },\r\n assets: { type: Array as PropType },\r\n isInReports: { type: Boolean, default: false }\r\n },\r\n methods: {\r\n requestUpload () {\r\n console.log('requestUpload')\r\n }\r\n },\r\n computed: {\r\n subtitle () {\r\n if (this.categoryName) {\r\n return this.categoryName + ' | ' + this.service.name\r\n }\r\n return this.service.name\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceList.Report.vue?vue&type=template&id=2ed7eda2&ts=true\"\nimport script from \"./ServiceList.Report.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceList.Report.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport ListReportByService from '@/components/reports/categories/services/ServiceList.Report.vue'\r\nimport { ReportServiceCategory } from '@/core/model/report.model'\r\nimport { defineComponent, PropType } from 'vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ListReportByService\r\n },\r\n props: {\r\n category: { type: Object as PropType, required: true },\r\n assets: { type: Array as PropType },\r\n isInReports: { type: Boolean, default: false }\r\n },\r\n methods: {\r\n requestUpload () {\r\n console.log('requestUpload')\r\n }\r\n }\r\n})\r\n","import { render } from \"./ServiceCategoryList.report.vue?vue&type=template&id=162648c0&ts=true\"\nimport script from \"./ServiceCategoryList.report.vue?vue&type=script&lang=ts\"\nexport * from \"./ServiceCategoryList.report.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-510726ce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"font-display text-white text-2xl my-4 font-bold skeleton-title\" }, null, -1))\nconst _hoisted_2 = { class: \"p-6 pb-4\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportAttributeTabLoading = _resolveComponent(\"ReportAttributeTabLoading\")!\n const _component_ReportInstanceLoading = _resolveComponent(\"ReportInstanceLoading\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, _renderList(1, (i) => {\n return _createElementVNode(\"div\", { key: i }, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", null, [\n _hoisted_1,\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(1, (j) => {\n return _createElementVNode(\"div\", { key: j }, [\n _createElementVNode(\"div\", null, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (k) => {\n return _createVNode(_component_GenericCardShell, {\n key: k,\n class: \"mb-4\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_ReportAttributeTabLoading),\n _createVNode(_component_ReportInstanceLoading)\n ])\n ]),\n _: 2\n }, 1024)\n }), 64))\n ])\n ])\n }), 64))\n ])\n ])\n ])\n }), 64))\n}","\r\nimport { defineComponent } from 'vue'\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport ReportAttributeTabLoading from '@/components/reports/categories/services/reports/attributes/ReportAttributeTab.loading.vue'\r\nimport ReportInstanceLoading from '@/components/reports/categories/services/reports/list/ReportInstanceLoading.vue'\r\n\r\nexport default defineComponent({\r\n name: 'ReportsListLoading',\r\n components: {\r\n GenericCardShell, ReportAttributeTabLoading, ReportInstanceLoading\r\n }\r\n})\r\n","import { render } from \"./ReportListByServiceCategory.loading.vue?vue&type=template&id=510726ce&scoped=true&ts=true\"\nimport script from \"./ReportListByServiceCategory.loading.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportListByServiceCategory.loading.vue?vue&type=script&lang=ts\"\n\nimport \"./ReportListByServiceCategory.loading.vue?vue&type=style&index=0&id=510726ce&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-510726ce\"]])\n\nexport default __exports__","\r\nimport ReportsListMenuShell from '@/components/buttons/ReportsListMenuShell.vue'\r\nimport ReportListByServiceCategory from '@/components/reports/categories/ServiceCategoryList.report.vue'\r\nimport ReportListByServiceCategoryLoading from '@/components/reports/categories/ReportListByServiceCategory.loading.vue'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport { ReportServiceCategory } from '@/core/model/report.model'\r\nimport { defineComponent, PropType, ref, Ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\nimport { AssetApiModel } from '@/core/model/fleet.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ReportsListMenuShell,\r\n ReportListByServiceCategoryLoading,\r\n ReportListByServiceCategory\r\n },\r\n name: 'FleetReportTab',\r\n props: {\r\n asset: { type: Object as PropType, required: true }\r\n },\r\n setup () {\r\n const toast = useToast()\r\n const error = ref('')\r\n const categories: Ref = ref([])\r\n const loading = ref(true)\r\n return {\r\n toast,\r\n error,\r\n categories,\r\n loading\r\n }\r\n },\r\n async created () {\r\n const serviceReportResponse = await ReportManager.list(true)\r\n\r\n if (serviceReportResponse.isError) { // || assetReportResponse.isError) {\r\n this.error = this.$t('allReports.error', {\r\n error: serviceReportResponse.Message\r\n })\r\n this.toast.error(this.error)\r\n }\r\n\r\n if (serviceReportResponse.data) {\r\n const categories = serviceReportResponse.data.serviceCategories\r\n this.categories = categories.map(s => {\r\n s.groups.forEach(g => { g.active = true })\r\n return ({ ...s, active: true })\r\n })\r\n }\r\n\r\n this.loading = false\r\n }\r\n})\r\n","import { render } from \"./FleetReportTab.vue?vue&type=template&id=d681000c&ts=true\"\nimport script from \"./FleetReportTab.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetReportTab.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1ca63f0e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"w-full flex justify-between\" }\nconst _hoisted_2 = { class: \"flex\" }\nconst _hoisted_3 = { class: \"w-full mt-6\" }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = { key: 2 }\nconst _hoisted_6 = {\n key: 3,\n class: \"flex flex-col items-center\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"skeleton-main mb-3\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"skeleton-title mb-6\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FleetAssetTimelineModal = _resolveComponent(\"FleetAssetTimelineModal\")!\n const _component_TimelineZoom = _resolveComponent(\"TimelineZoom\")!\n const _component_FleetAssetTimelineDetail = _resolveComponent(\"FleetAssetTimelineDetail\")!\n const _component_GenericCardShell = _resolveComponent(\"GenericCardShell\")!\n\n return (_openBlock(), _createBlock(_component_GenericCardShell, { class: \"rounded-lg pt-2 pb-6 px-2 sm:px-6 relative\" }, {\n default: _withCtx(() => [\n (_ctx.openModal)\n ? (_openBlock(), _createBlock(_component_FleetAssetTimelineModal, {\n key: 0,\n onCloseModal: _ctx.closeModal,\n operation: _ctx.modalContent\n }, null, 8, [\"onCloseModal\", \"operation\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.selectedTimeline !== 'journey')\n ? (_openBlock(), _createBlock(_component_TimelineZoom, {\n key: 0,\n onZoom: _ctx.handleZoomLevel,\n zoomLevel: _ctx.zoomLevel,\n class: \"mr-2\"\n }, null, 8, [\"onZoom\", \"zoomLevel\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.timeline.length && _ctx.selectedTimeline === 'journey' && !_ctx.loading)\n ? (_openBlock(), _createBlock(_component_FleetAssetTimelineDetail, {\n key: 0,\n timeline: _ctx.reversedTimeline,\n openModal: _ctx.openModal,\n modalContent: _ctx.modalContent,\n onShowDetail: _ctx.showDetail\n }, null, 8, [\"timeline\", \"openModal\", \"modalContent\", \"onShowDetail\"]))\n : (!_ctx.timeline.length && !_ctx.error && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_ctx.$t('fleet.noTimeSheet')), 1))\n : (!_ctx.timeline.length && _ctx.error && !_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.error), 1))\n : (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _hoisted_8,\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(8, (i) => {\n return _createElementVNode(\"div\", {\n class: \"skeleton-body mb-1\",\n key: i\n })\n }), 64))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center p-1 bg-bg-0 rounded-md w-fit body-3 select-none\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ZoomInIcon = _resolveComponent(\"ZoomInIcon\")!\n const _component_ZoomOutIcon = _resolveComponent(\"ZoomOutIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ZoomInIcon, {\n class: \"cursor-pointer text-text-alt mr-2 rounded-md p-1 active:bg-semantic-activate focus:bg-semantic-activate\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('zoom', 'in')))\n }),\n _createVNode(_component_ZoomOutIcon, {\n class: _normalizeClass([\"text-gray-500 rounded-md p-1\", {'cursor-pointer !text-text-alt active:bg-semantic-activate focus:bg-semantic-activate' : _ctx.zoomLevel > 40}]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('zoom', 'out')))\n }, null, 8, [\"class\"])\n ]))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ZoomInIcon'\r\n})\r\n","import { render } from \"./ZoomInIcon.vue?vue&type=template&id=54c4b904&ts=true\"\nimport script from \"./ZoomInIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ZoomInIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-6 w-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ZoomOutIcon'\r\n})\r\n","import { render } from \"./ZoomOutIcon.vue?vue&type=template&id=20cbe02d&ts=true\"\nimport script from \"./ZoomOutIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ZoomOutIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from 'vue'\r\nimport ZoomInIcon from '@/components/icons/ZoomInIcon.vue'\r\nimport ZoomOutIcon from '@/components/icons/ZoomOutIcon.vue'\r\n\r\nexport default defineComponent({\r\n name: 'TimelineZoom',\r\n components: { ZoomInIcon, ZoomOutIcon },\r\n props: { zoomLevel: Number }\r\n})\r\n","import { render } from \"./TimelineZoom.vue?vue&type=template&id=b731ed4e&ts=true\"\nimport script from \"./TimelineZoom.vue?vue&type=script&lang=ts\"\nexport * from \"./TimelineZoom.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-46cae5fe\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"max-h-[800px] overflow-y-auto overflow-x-hidden custom-scrollbar pt-2\" }\nconst _hoisted_2 = { class: \"body-1 text-bg-0 bg-text-prim !font-bold p-3\" }\nconst _hoisted_3 = { class: \"flex flex-col\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"text-center body body-1 !font-bold\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"text-center body body-2\"\n}\nconst _hoisted_6 = {\n key: 2,\n class: \"opacity-0 body body-2\"\n}\nconst _hoisted_7 = { class: \"w-8/12 xs:w-4/5 ml-16 sm:ml-20 h-fit flex justify-center relative z-[3]\" }\nconst _hoisted_8 = { class: \"w-3/4 flex\" }\nconst _hoisted_9 = {\n key: 1,\n class: \"absolute rounded-full w-3 h-3 -top-1.5 -left-1.5 bg-text-alt\"\n}\nconst _hoisted_10 = {\n key: 2,\n class: \"absolute -top-2.5 -left-14 body-1\"\n}\nconst _hoisted_11 = {\n key: 3,\n class: \"absolute -bottom-2.5 -left-14 body-1\"\n}\nconst _hoisted_12 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.intervals, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: i,\n class: _normalizeClass([\"w-full pt-2 border-t\", { 'mt-6': i !== 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.formatDate(_ctx.timeline[i].date)), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(day, (interval, j) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: j,\n class: \"w-full\"\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass({\r\n 'my-3':\r\n j === 0 ||\r\n (day[j - 1] && interval.location !== day[j - 1].location) ||\r\n (day[j - 1] && interval.context !== day[j - 1].context),\r\n })\n }, [\n (_ctx.displayLocation(i, j))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(day[j - 1] ? day[j - 1].location : ''), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.displayContext(i, j))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(day[j - 1] ? day[j - 1].context : ''), 1))\n : _createCommentVNode(\"\", true),\n (!_ctx.displayContext(i, j) && !_ctx.displayLocation(i, j) && j === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \" Empty line \"))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(interval.events, (operation, k) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: k,\n class: \"w-full grow-0 shrink-0\",\n style: _normalizeStyle(`height: ${operation.height * 60}px;\r\n margin-top: ${\r\n (operation.heightIndex === -1 ? 0 : operation.heightIndex) *\r\n 60\r\n }px; width: ${100 / interval.events.length}%;\r\n `)\n }, [\n _createElementVNode(\"div\", {\n class: \"absolute w-full z-[-1] left-0 box\",\n style: _normalizeStyle(`height: ${operation.height * 60}px; top: ${\r\n (operation.heightIndex === -1 ? 0 : operation.heightIndex) *\r\n 60\r\n }px; border-top: ${\r\n _ctx.displayBorderTop(i, j, k) ? '1px solid' : ''\r\n }; border-bottom: ${\r\n _ctx.displayBorderBottom(i, j, k) ? '1px solid' : ''\r\n }; border-bottom-color: ${_ctx.topColour()}; border-top-color: #A9B8DB;`)\n }, [\n (_ctx.displayBorderBottom(i, j, k))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"absolute rounded-full w-3 h-3 -bottom-1.5 -left-1.5\",\n style: _normalizeStyle(`background: ${_ctx.topColour()}`)\n }, null, 4))\n : _createCommentVNode(\"\", true),\n (_ctx.displayBorderTop(i, j, k))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n (_ctx.displayBorderTop(i, j, k))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _toDisplayString(_ctx.getHours(operation.endTime)), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.displayBorderBottom(i, j, k))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, _toDisplayString(_ctx.getHours(operation.startTime)), 1))\n : _createCommentVNode(\"\", true)\n ], 4),\n _createElementVNode(\"div\", {\n class: \"h-full p-2 whitespace-nowrap overflow-hidden max-w-full text-ellipsis cursor-pointer\",\n style: _normalizeStyle(`${_ctx.operationBackground(\r\n operation.name,\r\n operation.startTime\r\n )}; ${_ctx.operationBorder(operation.name)}; `),\n onClick: ($event: any) => (_ctx.showDetail(operation))\n }, _toDisplayString(operation.name), 13, _hoisted_12)\n ], 4))\n }), 128))\n ])\n ])\n ]))\n }), 128))\n ])\n ], 2))\n }), 128))\n ]))\n}","import { TimelineModel, TimelineModalContent, Activity } from './../model/timeline.model'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport { getCurrentInstance } from 'vue'\r\n\r\ninterface timelinePropsData {\r\n timeline: TimelineModel[]\r\n openModal: boolean\r\n modalContent: TimelineModalContent\r\n zoomLevel?: number\r\n}\r\n\r\nexport default function timelineStyle (props: timelinePropsData): {\r\n getKpiColour: (label: string) => string\r\n lightenKpiColour: (colour: string, decimal: number) => string\r\n operationBackground: (operation: string, startTime: string) => string\r\n operationBorder: (operation: string) => string\r\n getHours: (date: string) => string\r\n showDetail: (stack: Activity) => void\r\n} {\r\n const { emit } = getCurrentInstance() as NonNullable>\r\n\r\n const showDetail = (stack: Activity) => {\r\n emit('show-detail', stack)\r\n }\r\n\r\n const getKpiColour = (label: string) => {\r\n return ColoursService.getColour(label)\r\n }\r\n const lightenKpiColour = (colour: string, decimal = 0.8) => {\r\n return ColoursService.colourLightness(colour, decimal)\r\n }\r\n const operationBackground = (operation: string, startTime: string) => {\r\n return (props.openModal &&\r\n props.modalContent.activity &&\r\n props.modalContent.activity.name === operation &&\r\n props.modalContent.activity.startTime === startTime) ||\r\n !props.openModal\r\n ? `background-color: ${getKpiColour(operation)}`\r\n : 'background-color: #4b5563; color: #1f2937'\r\n }\r\n const operationBorder = (operation: string) => {\r\n return `border: 1px solid ${lightenKpiColour(getKpiColour(operation))}`\r\n }\r\n\r\n const getHours = (date: string) => {\r\n const dateFormatted = new Date(date)\r\n return `${String(dateFormatted.getHours()).padStart(2, '0')}:${String(\r\n dateFormatted.getMinutes()\r\n ).padStart(2, '0')}`\r\n }\r\n\r\n return { showDetail, getKpiColour, lightenKpiColour, operationBackground, operationBorder, getHours }\r\n}\r\n","import { Activity, TimelineModel } from '@/core/model/timeline.model'\r\n\r\nexport interface EventsMapped extends Activity {\r\n location: string\r\n context: string\r\n minutesStart?: number\r\n minutesEnd?: number\r\n isOverlapping?: boolean\r\n isHoverable?: boolean\r\n hovered?: boolean\r\n height?: number\r\n heightIndex?: number\r\n}\r\n\r\nexport interface EventsMappedForJourney {\r\n events: EventsMapped[]\r\n location: string\r\n context: string\r\n}\r\n\r\nexport default class TimeLineService {\r\n public static getCutPeriods (events: EventsMapped[]): EventsMapped[][] {\r\n const stack: EventsMapped[][] = []\r\n let index = 0\r\n let lastStartDate; let lastEndDate; let newEvents\r\n events\r\n .sort((a, b) => {\r\n if (a.startTime > b.startTime) return 1\r\n if (a.startTime < b.startTime) return -1\r\n return 0\r\n })\r\n .forEach((interval) => {\r\n const start = new Date(interval.startTime)\r\n const end = new Date(interval.endTime)\r\n\r\n interval.minutesStart = start.getMinutes() + (start.getHours() * 60)\r\n interval.minutesEnd = end.getMinutes() + (end.getHours() * 60)\r\n })\r\n\r\n while (events.length > 0) {\r\n stack[index] = []\r\n newEvents = []\r\n stack[index].push(events[0])\r\n lastStartDate = events[0].startTime\r\n lastEndDate = events[0].endTime\r\n for (let i = 1; i < events.length; i++) {\r\n if (events[i].endTime < lastStartDate) {\r\n stack[index].push(events[i])\r\n lastStartDate = events[i].startTime\r\n delete events[i]\r\n } else if (events[i].startTime >= lastEndDate) {\r\n stack[index].push(events[i])\r\n lastEndDate = events[i].endTime\r\n } else {\r\n if (i === 1) {\r\n events[0].isOverlapping = true\r\n }\r\n if (events[i - 1].startTime === events[i].startTime) {\r\n events[i - 1].isOverlapping = true\r\n }\r\n events[i].isOverlapping = true\r\n newEvents.push(events[i])\r\n }\r\n }\r\n events = newEvents\r\n index++\r\n }\r\n\r\n return stack\r\n }\r\n\r\n public static getLocations (timeline: TimelineModel): { location: string, startTime: string, endTime: string, minutesStart: number, minutesEnd: number }[] {\r\n const locations = []\r\n for (const action of timeline.timeSheetContexts) {\r\n action.activities\r\n .sort(function (a, b) {\r\n if (a.startTime > b.startTime) return 1\r\n if (a.startTime < b.startTime) return -1\r\n return 0\r\n })\r\n const start = new Date(action.activities[0].startTime)\r\n const end = new Date(action.activities[action.activities.length - 1].endTime)\r\n\r\n const minutesStart = start.getMinutes() + (start.getHours() * 60)\r\n const minutesEnd = end.getMinutes() + (end.getHours() * 60)\r\n locations.push({\r\n location: action.location,\r\n context: action.context,\r\n startTime: action.activities[0].startTime,\r\n endTime: action.activities[action.activities.length - 1].endTime,\r\n minutesStart,\r\n minutesEnd\r\n })\r\n }\r\n return locations\r\n }\r\n\r\n public static partitionIntoOverlappingRanges (events: EventsMapped[], journey?: boolean): EventsMapped[][] | EventsMappedForJourney[]| undefined {\r\n if (events && events.length) {\r\n events\r\n .sort(function (a, b) {\r\n if (a.endTime > b.endTime) { return -1 }\r\n if (a.endTime < b.endTime) { return 1 }\r\n return 0\r\n })\r\n .forEach((event) => {\r\n const start = new Date(event.startTime)\r\n const end = new Date(event.endTime)\r\n event.minutesStart = start.getMinutes() + (start.getHours() * 60)\r\n event.minutesEnd = end.getMinutes() + (end.getHours() * 60)\r\n event.height = 1\r\n event.heightIndex = -1\r\n })\r\n const getMaxEnd = (events: EventsMapped[]) => {\r\n if (events.length === 0) return false\r\n events.sort(function (a, b) {\r\n if (a.startTime > b.startTime) { return 1 }\r\n if (a.startTime < b.startTime) { return -1 }\r\n return 0\r\n })\r\n return events[0].startTime\r\n }\r\n const rearrangedArray = []\r\n let eventIndex = 0\r\n rearrangedArray[eventIndex] = [events[0]]\r\n\r\n for (let i = 1, l = events.length; i < l; i++) {\r\n if ((events[i].endTime <= events[i - 1].endTime) &&\r\n (events[i].endTime > getMaxEnd(rearrangedArray[eventIndex]))\r\n ) {\r\n rearrangedArray[eventIndex].push(events[i])\r\n } else {\r\n eventIndex++\r\n rearrangedArray[eventIndex] = [events[i]]\r\n }\r\n }\r\n for (const array of rearrangedArray) {\r\n array\r\n .sort(function (a, b) {\r\n if (a.endTime > b.endTime) {\r\n return -1\r\n }\r\n if (a.endTime < b.endTime) { return 1 }\r\n return 0\r\n })\r\n if (array.length > 1 && journey) {\r\n for (const [index, interval] of array.entries()) {\r\n if (index === 0) {\r\n interval.heightIndex = 0\r\n }\r\n if (array[index + 1] && interval.endTime === array[index + 1].endTime) {\r\n array[index + 1].heightIndex = interval.heightIndex\r\n }\r\n if (array[index - 1] && interval.endTime < array[index - 1].endTime) {\r\n interval.heightIndex = (array[index - 1].heightIndex as number) + 1\r\n }\r\n if (array[index + 1] && array[index + 1].endTime < interval.endTime) {\r\n (interval.height as number) += 1\r\n }\r\n if (array[index - 1] && interval.startTime < array[index - 1].startTime) {\r\n (interval.height as number) += 1\r\n }\r\n if (array[index + 1] && array[index + 1].startTime > interval.startTime) {\r\n (interval.height as number) += 1\r\n }\r\n if (array[index + 1] && interval.startTime < array[index + 1].startTime && interval.endTime >= array[index + 1].endTime) {\r\n (interval.height as number) += 1\r\n }\r\n if (array[index + 1] && interval.startTime > array[index + 1].endTime) {\r\n (interval.height as number) -= 1\r\n }\r\n if (array[index - 1] && interval.endTime < array[index - 1].startTime) {\r\n (interval.heightIndex as number) += 1\r\n }\r\n if (array.length > 2 && array[index - 1] && interval.endTime < array[index - 1].endTime && interval.startTime < array[index - 1].startTime) {\r\n (interval.height as number) += 1\r\n }\r\n if (array.length > 2 && interval.startTime === array[0].startTime && index !== 0) {\r\n (interval.height as number) -= 1\r\n }\r\n\r\n if (array.length > 2 && interval.endTime < array[array.length - 1].endTime && interval.startTime > array[array.length - 1].startTime) {\r\n (interval.height as number) += 1\r\n }\r\n }\r\n\r\n const eventsWithIdenticalStartAndEnd = array.reduce((a, e) => {\r\n (a.set(e.startTime, (a.get(e.startTime) ?? 0) + 1)) && (a.set(e.endTime, (a.get(e.endTime) ?? 0) + 1))\r\n return a\r\n }, new Map())\r\n const arrayWithIdenticalStartAndEnd = array.filter(e => eventsWithIdenticalStartAndEnd.get(e.startTime) && eventsWithIdenticalStartAndEnd.get(e.endTime) > 1)\r\n const maxHeight = Math.max(...arrayWithIdenticalStartAndEnd.map(o => (o.height as number)))\r\n if (arrayWithIdenticalStartAndEnd.length) {\r\n for (const interval of array) {\r\n if (interval.startTime === arrayWithIdenticalStartAndEnd[0].startTime && interval.endTime === arrayWithIdenticalStartAndEnd[0].endTime) { interval.height = maxHeight }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (journey) {\r\n const journeyArray = []\r\n for (const array of rearrangedArray) {\r\n journeyArray.push({ events: array, location: array[0].location, context: array[0].context })\r\n }\r\n return journeyArray\r\n }\r\n\r\n return rearrangedArray\r\n }\r\n }\r\n}\r\n","\r\nimport timelineStyle from '@/core/composables/timeline.composable'\r\nimport {\r\n TimelineModalContent,\r\n TimelineModel\r\n} from '@/core/model/timeline.model'\r\nimport FormatService from '@/core/services/format.service'\r\nimport TimeLineService, {\r\n EventsMapped,\r\n EventsMappedForJourney\r\n} from '@/core/services/timeline.service'\r\nimport { computed, defineComponent, onMounted, PropType, Ref, ref, watch } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'FleetAssetTimelineDetail',\r\n props: {\r\n timeline: { type: Array as PropType, required: true },\r\n openModal: { type: Boolean, required: true, default: false },\r\n modalContent: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup (props) {\r\n const timelineMethods = timelineStyle(props)\r\n const operationBackground = timelineMethods.operationBackground\r\n const operationBorder = timelineMethods.operationBorder\r\n const getHours = timelineMethods.getHours\r\n const showDetail = timelineMethods.showDetail\r\n\r\n const events: Ref = ref([])\r\n watch(\r\n () => props.timeline,\r\n () => {\r\n events.value = []\r\n handleTimeline()\r\n })\r\n\r\n const handleTimeline = () => {\r\n for (const [index, day] of props.timeline.entries()) {\r\n day.timeSheetContexts = day.timeSheetContexts.reverse()\r\n events.value.push([])\r\n for (const action of day.timeSheetContexts) {\r\n action.activities = action.activities.reverse()\r\n const activities: EventsMapped[] = action.activities.map((activity) => {\r\n return {\r\n ...activity,\r\n location: action.location,\r\n context: action.context\r\n }\r\n })\r\n for (const activity of activities) {\r\n events.value[index].push(activity)\r\n }\r\n }\r\n }\r\n }\r\n\r\n const intervals = computed(() => {\r\n const intervals = []\r\n if (events.value && events.value.length) {\r\n for (const day of events.value) {\r\n intervals.push(\r\n TimeLineService.partitionIntoOverlappingRanges(\r\n day,\r\n true\r\n ) as EventsMappedForJourney[]\r\n )\r\n }\r\n }\r\n return intervals\r\n })\r\n\r\n const displayLocation = (i: number, j: number) => {\r\n return (\r\n (intervals.value[i - 1] &&\r\n intervals.value[i - 1][intervals.value[i - 1].length - 1].location !==\r\n intervals.value[i][0].location) ||\r\n (intervals.value[i][j - 1] &&\r\n intervals.value[i][j - 1].location !==\r\n intervals.value[i][j].location) ||\r\n (i === 0 && j === 0)\r\n )\r\n }\r\n\r\n const displayContext = (i: number, j: number) => {\r\n return (\r\n (intervals.value[i - 1] &&\r\n intervals.value[i - 1][intervals.value[i - 1].length - 1].context !==\r\n intervals.value[i][0].context) ||\r\n (intervals.value[i][j - 1] &&\r\n intervals.value[i][j - 1].context !== intervals.value[i][j].context &&\r\n intervals.value[i][j - 1].location ===\r\n intervals.value[i][j].location) ||\r\n (intervals.value[i][j - 1] &&\r\n intervals.value[i][j - 1].context === intervals.value[i][j].context &&\r\n intervals.value[i][j - 1].location !==\r\n intervals.value[i][j].location) ||\r\n (intervals.value[i][j - 1] &&\r\n intervals.value[i][j - 1].context !== intervals.value[i][j].context &&\r\n intervals.value[i][j - 1].location !==\r\n intervals.value[i][j].location) ||\r\n (i === 0 && j === 0)\r\n )\r\n }\r\n\r\n const getHeight = (i: number, j: number, k: number) => {\r\n const interval = intervals.value[i][j].events\r\n let intervalHeight = 1\r\n if (interval.length > 1) {\r\n if (\r\n interval[k + 1] &&\r\n interval[k + 1].startTime >= interval[k].startTime\r\n ) {\r\n intervalHeight += 1\r\n }\r\n if (interval[k - 1] && interval[k - 1].endTime <= interval[k].endTime) {\r\n intervalHeight += 1\r\n }\r\n }\r\n return intervalHeight\r\n }\r\n\r\n const topColour = () => {\r\n return '#A9B8DB'\r\n }\r\n\r\n const displayBorderBottom = (i: number, j: number, k: number) => {\r\n if (intervals.value[i][j].events[k - 1] && intervals.value[i][j].events[k + 1] && intervals.value[i][j].events[k].startTime > intervals.value[i][j].events[k - 1].startTime) {\r\n return true\r\n }\r\n if (intervals.value[i][j].events[k - 1] && intervals.value[i][j].events[k - 1].endTime === intervals.value[i][j].events[k].endTime) {\r\n return false\r\n }\r\n if (intervals.value[i][j].events[k + 1] && intervals.value[i][j].events[k].endTime > intervals.value[i][j].events[k + 1].endTime && intervals.value[i][j].events[k].startTime > intervals.value[i][j].events[k + 1].startTime) {\r\n return true\r\n }\r\n if (\r\n j === intervals.value[i].length - 1 &&\r\n intervals.value[i][j].events.length\r\n ) {\r\n const endTimesOfInterval = []\r\n if (intervals.value[i][j].events.length > 1) {\r\n for (const op of intervals.value[i][j].events) {\r\n endTimesOfInterval.push(op.endTime)\r\n }\r\n endTimesOfInterval.sort((a, b) => {\r\n if (a > b) return 1\r\n if (a < b) return -1\r\n return 0\r\n })\r\n } else {\r\n endTimesOfInterval.push(intervals.value[i][j].events[0].endTime)\r\n }\r\n for (const op of intervals.value[i][j].events) {\r\n if (\r\n intervals.value[i + 1] &&\r\n intervals.value[i + 1][0].context === op.context &&\r\n intervals.value[i + 1][0].location === op.location &&\r\n intervals.value[i + 1][0].events[0].name === op.name &&\r\n intervals.value[i][j].events[k].endTime ===\r\n endTimesOfInterval[endTimesOfInterval.length - 1]\r\n ) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return (\r\n (intervals.value[i][j].events[k + 1] &&\r\n (intervals.value[i][j].events[k] as EventsMapped).endTime !==\r\n (intervals.value[i][j].events[k + 1] as EventsMapped).startTime) ||\r\n (intervals.value[i][j].events[k - 1] &&\r\n (intervals.value[i][j].events[k] as EventsMapped).endTime <\r\n (intervals.value[i][j].events[k - 1] as EventsMapped).endTime) ||\r\n (intervals.value[i][j + 1] &&\r\n intervals.value[i][j + 1].context !==\r\n intervals.value[i][j].context) ||\r\n (intervals.value[i][j + 1] &&\r\n intervals.value[i][j + 1].location !== intervals.value[i][j].location) ||\r\n (intervals.value[i][j].events[0].endTime > intervals.value[i][j].events[k].endTime)\r\n )\r\n }\r\n\r\n const displayBorderTop = (i: number, j: number, k:number) => {\r\n if (intervals.value[i][j].events[k - 1] && intervals.value[i][j].events[k - 1].startTime === intervals.value[i][j].events[k].startTime) {\r\n return false\r\n }\r\n\r\n if (k === 0 && j === 0 && i > 0) {\r\n for (const previousOperation of intervals.value[i - 1][\r\n intervals.value[i - 1].length - 1\r\n ].events) {\r\n for (const operationOfInterval of intervals.value[i][0].events) {\r\n if (\r\n operationOfInterval.name === previousOperation.name &&\r\n operationOfInterval.context === previousOperation.context &&\r\n operationOfInterval.location === previousOperation.location\r\n ) {\r\n return false\r\n }\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n\r\n const formatDate = (date: string) => FormatService.formatDate(date)\r\n\r\n onMounted(() => handleTimeline())\r\n\r\n return {\r\n operationBackground,\r\n operationBorder,\r\n getHours,\r\n showDetail,\r\n intervals,\r\n displayLocation,\r\n displayContext,\r\n getHeight,\r\n topColour,\r\n displayBorderBottom,\r\n displayBorderTop,\r\n events,\r\n formatDate\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetAssetTimelineDetail.vue?vue&type=template&id=46cae5fe&scoped=true&ts=true\"\nimport script from \"./FleetAssetTimelineDetail.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetAssetTimelineDetail.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetAssetTimelineDetail.vue?vue&type=style&index=0&id=46cae5fe&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-46cae5fe\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"w-full h-10 relative\" }\nconst _hoisted_2 = { class: \"overflow-auto h-[calc(100%-20px)] custom-scrollbar\" }\nconst _hoisted_3 = { class: \"w-full mb-5\" }\nconst _hoisted_4 = { class: \"border-b border-bg-3\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-2.5 text-text-alt\" }, \"Vessel\", -1)\nconst _hoisted_6 = { class: \"py-2.5 text-text-prim !font-bold text-right\" }\nconst _hoisted_7 = { class: \"border-b border-bg-3\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-2.5 text-text-alt\" }, \"Type\", -1)\nconst _hoisted_9 = { class: \"py-2.5 text-text-prim !font-bold text-right\" }\nconst _hoisted_10 = { class: \"border-b border-bg-3\" }\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-2.5 text-text-alt\" }, \"From\", -1)\nconst _hoisted_12 = { class: \"py-2.5 text-text-prim !font-bold text-right\" }\nconst _hoisted_13 = { class: \"border-b border-bg-3\" }\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-2.5 text-text-alt\" }, \"To\", -1)\nconst _hoisted_15 = { class: \"py-2.5 text-text-prim !font-bold text-right\" }\nconst _hoisted_16 = { class: \"border-b border-bg-3\" }\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"td\", { class: \"py-2.5 text-text-alt\" }, \"Activity\", -1)\nconst _hoisted_18 = { class: \"flex items-center py-2.5 text-text-prim !font-bold text-right justify-end\" }\nconst _hoisted_19 = { class: \"w-full mb-5\" }\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b border-bg-3\" }, [\n /*#__PURE__*/_createElementVNode(\"td\", {\n class: \"py-2.5 text-text-alt\",\n colspan: \"2\"\n }, \" Commentary from the vessel \")\n], -1)\nconst _hoisted_21 = {\n class: \"py-2.5 text-text-prim !font-bold\",\n colspan: \"2\"\n}\nconst _hoisted_22 = { class: \"w-full mb-5\" }\nconst _hoisted_23 = { class: \"py-2.5 text-text-alt\" }\nconst _hoisted_24 = { class: \"py-2.5 text-text-prim !font-bold text-right\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CloseModal = _resolveComponent(\"CloseModal\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: \"fixed lg:absolute bottom-0 lg:top-6 -left-0 lg:-left-96 w-screen lg:w-[375px] h-[400px] lg:h-auto border bg-bg-0 rounded-b-none lg:rounded-b-xl rounded-t-xl py-5 px-6\",\n style: _normalizeStyle(`border: 1px solid ${_ctx.getKpiColour()}; z-index: 400`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_CloseModal, {\n onCloseModal: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close-modal')))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", _hoisted_3, [\n _createElementVNode(\"tr\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"td\", _hoisted_6, _toDisplayString(_ctx.operation.name), 1)\n ]),\n _createElementVNode(\"tr\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"td\", _hoisted_9, _toDisplayString(_ctx.operation.type), 1)\n ]),\n _createElementVNode(\"tr\", _hoisted_10, [\n _hoisted_11,\n _createElementVNode(\"td\", _hoisted_12, _toDisplayString(_ctx.formatDate(_ctx.operation.activity.startTime)), 1)\n ]),\n _createElementVNode(\"tr\", _hoisted_13, [\n _hoisted_14,\n _createElementVNode(\"td\", _hoisted_15, _toDisplayString(_ctx.formatDate(_ctx.operation.activity.endTime)), 1)\n ]),\n _createElementVNode(\"tr\", _hoisted_16, [\n _hoisted_17,\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"div\", {\n class: \"rounded-full h-3 w-3 mr-1 min-w-3\",\n style: _normalizeStyle(`background: ${_ctx.getKpiColour()}`)\n }, null, 4),\n _createTextVNode(\" \" + _toDisplayString(_ctx.operation.activity.name), 1)\n ])\n ])\n ]),\n _createElementVNode(\"table\", _hoisted_19, [\n _hoisted_20,\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", _hoisted_21, _toDisplayString(_ctx.operation.activity.commentary || \"N/A\"), 1)\n ])\n ]),\n _createElementVNode(\"table\", _hoisted_22, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.operation.activity.properties, (kpi, k) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n class: \"border-b border-bg-3\",\n key: k\n }, [\n _createElementVNode(\"td\", _hoisted_23, _toDisplayString(kpi.name), 1),\n _createElementVNode(\"td\", _hoisted_24, _toDisplayString(_ctx.formatNumber(kpi.value)), 1)\n ]))\n }), 128))\n ])\n ])\n ], 4),\n _createElementVNode(\"div\", {\n class: \"fixed w-screen h-screen top-0 left-0 modal\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.closeModalOnBg && _ctx.closeModalOnBg(...args)))\n })\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CrossIcon = _resolveComponent(\"CrossIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"p-2.5 rounded-full bg-bg-2 absolute right-0 top-0 cursor-pointer\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close-modal')))\n }, [\n _createVNode(_component_CrossIcon, { class: \"stroke-text-alt h-5 w-5 border-2 border-text-alt rounded-full\" })\n ]))\n}","\r\nimport CrossIcon from '@/components/icons/CrossIcon.vue'\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'CloseModal',\r\n components: {\r\n CrossIcon\r\n }\r\n})\r\n","import { render } from \"./CloseModal.vue?vue&type=template&id=3c549f66&ts=true\"\nimport script from \"./CloseModal.vue?vue&type=script&lang=ts\"\nexport * from \"./CloseModal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { DOMEvent } from '@/core/model/event.model'\r\nimport { defineComponent, PropType } from 'vue'\r\nimport CloseModal from '@/components/buttons/CloseModal.vue'\r\nimport { TimelineModalContent } from '@/core/model/timeline.model'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport FormatService from '@/core/services/format.service'\r\n\r\nexport default defineComponent({\r\n name: 'FleetAssetTimelineModal',\r\n components: { CloseModal },\r\n props: {\r\n operation: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup (props) {\r\n const getKpiColour = () => {\r\n return ColoursService.getColour(props.operation.activity.name)\r\n }\r\n\r\n const formatNumber = (num: number | string) => {\r\n if (typeof num === 'number') {\r\n return FormatService.formatNumber(+num)\r\n }\r\n if (typeof num === 'string') {\r\n if (!isNaN(parseInt(num))) {\r\n const regExp = /[a-zA-Z]/g\r\n if (regExp.test(num)) {\r\n return num\r\n }\r\n const numberCommaReplacedByDot = num.replace(',', '.')\r\n return FormatService.formatNumber(+numberCommaReplacedByDot)\r\n }\r\n return num\r\n }\r\n }\r\n\r\n const formatDate = (str: string) => FormatService.formatDate(str, true)\r\n\r\n return { getKpiColour, formatNumber, formatDate }\r\n },\r\n methods: {\r\n closeModalOnBg ($event: DOMEvent) {\r\n if ($event.target && $event.target.matches('.modal')) {\r\n this.$emit('close-modal')\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetAssetTimelineModal.vue?vue&type=template&id=6ba54a5c&ts=true\"\nimport script from \"./FleetAssetTimelineModal.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetAssetTimelineModal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport GenericCardShell from '@/components/cards/GenericCardShell.vue'\r\nimport { FleetDetailModel } from '@/core/model/fleet.model'\r\nimport {\r\n Activity,\r\n TimelineModalContent,\r\n TimelineModel\r\n} from '@/core/model/timeline.model'\r\nimport router from '@/router'\r\nimport { computed, defineComponent, PropType, reactive, ref } from 'vue'\r\nimport TimelineZoom from '@/components/buttons/TimelineZoom.vue'\r\nimport FleetAssetTimelineDetail from '@/components/fleet/FleetAssetTimelineDetail.vue'\r\nimport FleetAssetTimelineModal from '@/components/fleet/FleetAssetTimelineModal.vue'\r\n\r\nexport default defineComponent({\r\n name: 'FleetAssetTimeline',\r\n components: {\r\n GenericCardShell,\r\n // FleetPeriodFilter,\r\n FleetAssetTimelineModal,\r\n FleetAssetTimelineDetail,\r\n // FleetAssetTimelineAgenda,\r\n TimelineZoom\r\n // ToggleTimeline\r\n },\r\n props: {\r\n timeline: { type: Array as PropType, required: true },\r\n vesselDetails: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n error: String,\r\n loading: Boolean\r\n },\r\n setup (props, context) {\r\n const currentDay = ref(0)\r\n const changeDay = ($event: number) => {\r\n currentDay.value = $event\r\n }\r\n\r\n const reversedTimeline = computed(() => {\r\n let timeline = [...props.timeline]\r\n timeline = timeline.reverse()\r\n return timeline\r\n })\r\n\r\n const openModal = ref(false)\r\n const initialModalContentState: TimelineModalContent = {\r\n name: '',\r\n type: '',\r\n activity: {} as Activity\r\n }\r\n const modalContent = reactive({ ...initialModalContentState })\r\n const closeModal = () => {\r\n Object.assign(modalContent, initialModalContentState)\r\n openModal.value = false\r\n }\r\n const showDetail = (stack: Activity) => {\r\n Object.assign(modalContent, {\r\n name: props.vesselDetails.name,\r\n type: props.vesselDetails.type,\r\n activity: stack\r\n })\r\n openModal.value = true\r\n }\r\n\r\n const zoomLevel = ref(\r\n router.currentRoute.value.query.zoom\r\n ? +router.currentRoute.value.query.zoom\r\n : 50\r\n )\r\n const handleZoomLevel = ($event: string) => {\r\n if ($event === 'in') {\r\n zoomLevel.value += 10\r\n } else {\r\n zoomLevel.value > 40 ? (zoomLevel.value -= 10) : (zoomLevel.value -= 0)\r\n }\r\n const zoomQuery = { zoom: zoomLevel.value }\r\n const tabQuery = router.currentRoute.value.query.tab\r\n const timelineQuery = router.currentRoute.value.query.timeline\r\n const query = !tabQuery && !timelineQuery\r\n ? zoomQuery\r\n : tabQuery && !timelineQuery\r\n ? { tab: tabQuery, ...zoomQuery }\r\n : !tabQuery && timelineQuery\r\n ? { timeline: timelineQuery, ...zoomQuery }\r\n : { tab: tabQuery, timeline: timelineQuery, ...zoomQuery }\r\n router.replace({ query })\r\n }\r\n\r\n const selectedTimeline = ref(\r\n router.currentRoute.value.query.timeline\r\n ? router.currentRoute.value.query.timeline\r\n : 'journey'\r\n )\r\n\r\n const selectedPeriod = ref('L1W')\r\n\r\n const selectPeriod = ($event: string) => {\r\n selectedPeriod.value = $event\r\n context.emit('periodSelected', $event)\r\n }\r\n\r\n const changeTimelineView = ($event: string) => {\r\n selectedTimeline.value = $event\r\n const timelineQuery = { timeline: selectedTimeline.value }\r\n const query = !router.currentRoute.value.query.tab\r\n ? timelineQuery\r\n : { tab: router.currentRoute.value.query.tab, ...timelineQuery }\r\n router.replace({ query })\r\n }\r\n\r\n return {\r\n currentDay,\r\n changeDay,\r\n openModal,\r\n modalContent,\r\n closeModal,\r\n showDetail,\r\n zoomLevel,\r\n handleZoomLevel,\r\n selectedTimeline,\r\n changeTimelineView,\r\n selectPeriod,\r\n reversedTimeline\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetAssetTimeline.vue?vue&type=template&id=1ca63f0e&scoped=true&ts=true\"\nimport script from \"./FleetAssetTimeline.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetAssetTimeline.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetAssetTimeline.vue?vue&type=style&index=0&id=1ca63f0e&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1ca63f0e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative h-full\" }\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Open in map\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ArrowForward = _resolveComponent(\"ArrowForward\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_toaster = _resolveComponent(\"toaster\")!\n const _component_loader = _resolveComponent(\"loader\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n id: _ctx.mapId,\n style: {\"width\":\"100%\",\"height\":\"100%\",\"z-index\":\"0\"}\n }, null, 8, _hoisted_2),\n (_ctx.code !=='')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: { name : 'map', query : { panelDetail : _ctx.codeFormated, flyTo : _ctx.codeFormated, assetCircle: _ctx.codeFormated, setBlue : this.$route.params.categoryId === '3' ? _ctx.codeFormated : undefined}},\n class: \"text-white rounded-md bg-bg-0 px-4 py-2.5 absolute bottom-5 right-5\",\n style: {\"z-index\":\"400\"}\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createVNode(_component_ArrowForward, { class: \"h-6 w-6 inline-block ml-2.5\" })\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_toaster),\n _createVNode(_component_loader)\n ]))\n}","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7bc50370\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n role: \"alert\",\n \"aria-live\": \"assertive\",\n class: \"bg-green-100 border border-green-500 py-2 px-3 rounded-md flex items-center\",\n \"aria-atomic\": \"true\",\n style: {\"z-index\":\"999\",\"position\":\"fixed\",\"right\":\"50px\",\"bottom\":\"20px\"}\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-duotone fa-check me-2 text-green-600 fa-lg mr-2\" }, null, -1))\nconst _hoisted_3 = { class: \"text-green-600 text-xs\" }\nconst _hoisted_4 = {\n key: 0,\n role: \"alert\",\n \"aria-live\": \"assertive\",\n class: \"bg-red-100 border border-red-500 py-2 px-3 rounded-md flex items-center\",\n \"aria-atomic\": \"true\",\n style: {\"z-index\":\"999\",\"position\":\"fixed\",\"right\":\"50px\",\"bottom\":\"20px\"}\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-duotone fa-warning me-2 text-red-600 fa-lg\" }, null, -1))\nconst _hoisted_6 = { class: \"text-red-600 text-xs\" }\nconst _hoisted_7 = {\n key: 0,\n role: \"alert\",\n \"aria-live\": \"assertive\",\n class: \"bg-red-100 border border-red-500 py-2 px-3 rounded-md flex items-center\",\n \"aria-atomic\": \"true\",\n style: {\"z-index\":\"999\",\"position\":\"absolute\",\"right\":\"50px\",\"bottom\":\"20px\"}\n}\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-duotone fa-warning me-2 text-red-600 fa-lg\" }, null, -1))\nconst _hoisted_9 = { class: \"text-red-600 text-xs\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_ctx.GStore.msgSuccess !=='')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.GStore.msgSuccess), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_ctx.GStore.msgError !=='')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_ctx.GStore.msgError), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_ctx.GStore.mapError !=='')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(_ctx.GStore.mapError), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ], 64))\n}","\r\nimport { defineComponent } from 'vue'\r\n// todo test the error message upcoming\r\nexport default defineComponent({\r\n inject: ['GStore']\r\n})\r\n","import { render } from \"./toaster.vue?vue&type=template&id=7bc50370&scoped=true&ts=true\"\nimport script from \"./toaster.vue?vue&type=script&lang=ts\"\nexport * from \"./toaster.vue?vue&type=script&lang=ts\"\n\nimport \"./toaster.vue?vue&type=style&index=0&id=7bc50370&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7bc50370\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b311aa58\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"loader\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.GStore.mapLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n : _createCommentVNode(\"\", true)\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n inject: ['GStore'],\r\n components: {},\r\n data () {\r\n return {}\r\n },\r\n computed: {},\r\n methods: {}\r\n})\r\n","import { render } from \"./loader.vue?vue&type=template&id=b311aa58&scoped=true&ts=true\"\nimport script from \"./loader.vue?vue&type=script&lang=ts\"\nexport * from \"./loader.vue?vue&type=script&lang=ts\"\n\nimport \"./loader.vue?vue&type=style&index=0&id=b311aa58&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b311aa58\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M13 9l3 3m0 0l-3 3m3-3H8m13 0a9 9 0 11-18 0 9 9 0 0118 0z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'ArrowForward'\r\n})\r\n","import { render } from \"./ArrowForward.vue?vue&type=template&id=7f73543d&ts=true\"\nimport script from \"./ArrowForward.vue?vue&type=script&lang=ts\"\nexport * from \"./ArrowForward.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { control, Map } from 'leaflet'\r\n\r\nexport default {\r\n init: function (elementId : string, opts? : {isScaleControl: boolean}):Map {\r\n const options = { isScaleControl: true, ...opts }\r\n\r\n const map = new Map(elementId, {\r\n attributionControl: false,\r\n zoomControl: false,\r\n center: [43.279724, 6.325032],\r\n zoom: 3,\r\n minZoom: 2,\r\n worldCopyJump: true\r\n })\r\n map.createPane('concessionPane', map.getPane('tilePane'))\r\n const layers = '.leaflet-overlay-pane, .leaflet-concession-pane'\r\n\r\n map.on('zoomstart', function () {\r\n document.querySelectorAll(layers).forEach(elem => {\r\n (elem as HTMLElement).style.opacity = '0'\r\n })\r\n })\r\n map.on('zoomend', function () {\r\n document.querySelectorAll(layers).forEach(elem => {\r\n (elem as HTMLElement).style.opacity = '1'\r\n })\r\n })\r\n\r\n control.zoom({ position: 'bottomleft' }).addTo(map)\r\n\r\n if (options.isScaleControl) {\r\n control.scale({ position: 'bottomright', imperial: true }).addTo(map)\r\n }\r\n\r\n return map\r\n }\r\n}\r\n","import { AssetModel, GetAssetModel } from '@/map/core/bll/category/categoryModel'\r\nimport { latLng } from 'leaflet'\r\n\r\nexport function CategoryMapper (asset : GetAssetModel, categoryCode :string): AssetModel {\r\n const isVessel = asset.assetCategoryId === 3\r\n const isUnderContract = asset.isUnderContract\r\n const color = isVessel ? isUnderContract ? 'yellow' : 'grey' : 'noColorForAsset'\r\n const assetIconMarker = isVessel ? require(`@/assets/img/vessel/vessel_${color}.png`) : (asset.typeIconUrl || require('@/assets/img/other/ROND.png'))\r\n\r\n return {\r\n assetId: asset.assetId, // for kpi\r\n assetCode: asset.code,\r\n markerDim: isVessel ? isUnderContract ? 20 : 12 : 14, // marker\r\n stroke: 2,\r\n svgDim: 70,\r\n radius: 20,\r\n assetName: asset.name.toUpperCase(),\r\n categoryCode, // filter on category panel\r\n isVessel,\r\n isUnderContract,\r\n query: {\r\n staticStep: undefined,\r\n assetPopoverAdd: undefined,\r\n stepPopoverAdd: undefined,\r\n flyToBounds: undefined,\r\n assetCircle: asset.code,\r\n panelDetail: isUnderContract ? asset.code : undefined,\r\n setBlue: isVessel && isUnderContract ? asset.code : undefined,\r\n fetch: isVessel && isUnderContract ? asset.code : undefined\r\n },\r\n checked: true,\r\n vesselColor: color, // marker\r\n categoryId: asset.assetCategoryId, // panel category\r\n assetImg: asset.imageUrl || asset.typeImageUrl || require('@/assets/img/noAsset.png'),\r\n assetTypeName: asset.typeName,\r\n assetMarkerUrl: assetIconMarker, // marker\r\n lastPosition: asset.assetLastPosition.utcPositionTime || '-1',\r\n heading: asset.assetLastPosition.heading,\r\n speed: asset.assetLastPosition.speed,\r\n latLng: latLng([asset.assetLastPosition.latitude, asset.assetLastPosition.longitude])\r\n }\r\n}\r\n","import { layerGroup } from 'leaflet'\r\n\r\nexport const groupAssetLayer = layerGroup([])\r\n","import { AssetModel, CategoryModel, GetCategoryModel } from '@/map/core/bll/category/categoryModel'\r\nimport { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { CategoryMapper } from '@/map/core/bll/category/category.mapper'\r\nimport { divIcon, LayerGroup, Marker, marker } from 'leaflet'\r\nimport { groupAssetLayer } from '@/map/core/bll/category/category.group'\r\n\r\nconst fetch = function (): Promise<{ list: AssetModel[], group: CategoryModel[] }> {\r\n return new Promise((resolve, reject) => {\r\n // api/Asset/groupedByCategoryWithLastPosition\r\n ApiClient.list<{ assetCategories : GetCategoryModel[] }>('map/Asset/groupedByCategoryWithLastPosition').then(result => {\r\n const list: AssetModel[] = []\r\n const group: CategoryModel[] = []\r\n result.assetCategories.forEach(category => {\r\n group.push({\r\n code: category.categoryCode,\r\n name: category.categoryName\r\n })\r\n category.assets.forEach(asset => {\r\n const temp = CategoryMapper(asset, category.categoryCode)\r\n list.push(temp)\r\n\r\n const markerTemp = marker(temp.latLng,\r\n {\r\n attribution: `${temp.assetCode}_${temp.isVessel}`,\r\n riseOnHover: true,\r\n icon: divIcon({\r\n // assetCode and assetType required for mouseOver on map pane event-delegation\r\n // data-is-vessel && data-asset-code used by fleet\r\n // data-origin-color && data-asset-code used setBlue\r\n // data-popover-type for popover\r\n // todo check if no popover-type && asset-code\r\n html: temp.isVessel\r\n ? `\"${temp.assetName}\"`\r\n : `\"${temp.assetName}\"`,\r\n className: 'bg-transparent ',\r\n iconAnchor: [temp.markerDim / 2, temp.markerDim / 2]\r\n })\r\n })\r\n\r\n groupAssetLayer.addLayer(markerTemp)\r\n })\r\n })\r\n resolve({ list, group })\r\n }).catch((err:string) => {\r\n reject(err)\r\n })\r\n })\r\n}\r\n\r\nconst toggleLayer = function (group : LayerGroup, code : string, active : boolean):void {\r\n group.getLayers().forEach(layer => {\r\n if (layer instanceof Marker && ((layer as Marker).options.attribution as string).split('_')[0] === code) {\r\n (layer as Marker).options.opacity = active ? 1 : 0;\r\n (layer as Marker).options.interactive = active\r\n layer.remove()\r\n group.addLayer(layer)\r\n }\r\n })\r\n}\r\n\r\nconst disabledLayer = function (group : LayerGroup, code : string, active : boolean):void {\r\n group.getLayers().forEach(layer => {\r\n if (layer instanceof Marker && ((layer as Marker).options.attribution as string).split('_')[0] === code) {\r\n (layer as Marker).options.interactive = active\r\n layer.remove()\r\n group.addLayer(layer)\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n fetch,\r\n toggleLayer,\r\n disabledLayer\r\n}\r\n","import { reactive } from 'vue'\r\nimport { AssetModel, CategoryModel } from '@/map/core/bll/category/categoryModel'\r\nimport categoryManager from '@/map/core/bll/category/category.manager'\r\nimport { LatLng } from 'leaflet'\r\n\r\nexport const state = reactive({ list: [] as AssetModel[], group: [] as CategoryModel[], initialized: false, loading: false, error: '' })\r\n\r\nconst mutation = {\r\n loading: (value: boolean) => {\r\n state.loading = value\r\n },\r\n success: (result : { list: AssetModel[], group: CategoryModel[] }) => {\r\n state.list = result.list\r\n state.group = result.group\r\n state.initialized = true\r\n },\r\n error: function (err: string) {\r\n state.error = err\r\n },\r\n update: function (assetCode: string, value: boolean) {\r\n state.list = state.list.map(o => {\r\n return { ...o, checked: o.assetCode === assetCode ? value : o.checked }\r\n })\r\n }\r\n}\r\nconst effect = {\r\n fetch: function () {\r\n mutation.error('')\r\n mutation.loading(true)\r\n categoryManager.fetch().then(result => {\r\n mutation.success(result)\r\n }).catch(err => {\r\n mutation.error(err)\r\n }).finally(() => {\r\n mutation.loading(false)\r\n })\r\n }\r\n}\r\nconst action = {\r\n fetch: function ():void {\r\n effect.fetch()\r\n },\r\n update: function (code: string, value: boolean): void {\r\n mutation.update(code, value)\r\n }\r\n}\r\n\r\nconst getter = {\r\n noCategory: (): boolean => {\r\n return state.group.length === 0\r\n },\r\n atLeastOneCategory: (): boolean => {\r\n return state.group.length > 1\r\n },\r\n activeItems: (): AssetModel[] => {\r\n return state.list.filter(asset => asset.checked)\r\n },\r\n activeBound: (): LatLng[] => {\r\n return getter.activeItems().reduce((x: LatLng[], y: AssetModel) => {\r\n x.push(y.latLng)\r\n return x\r\n }, [])\r\n }\r\n}\r\n\r\nexport default {\r\n action,\r\n getter,\r\n state\r\n}\r\n","import { computed, watch } from 'vue'\r\nimport { Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport { AssetModel } from '@/map/core/bll/category/categoryModel'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n const flyTo = function (value :string): void {\r\n const asset = categoryStore.state.list.find(a => a.assetCode === value) as AssetModel\r\n if (asset) {\r\n map.flyTo(asset.latLng, 8)\r\n }\r\n }\r\n if (categoryStore.state.initialized && !!router.currentRoute.value.query.flyTo) {\r\n flyTo(router.currentRoute.value.query.flyTo as string)\r\n } else {\r\n const subject = computed(function ():string {\r\n return categoryStore.state.initialized && router.currentRoute.value.query.flyTo ? router.currentRoute.value.query.flyTo as string : '-1'\r\n })\r\n\r\n watch(subject, function (value:string) {\r\n if (value !== '-1') {\r\n flyTo(value)\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","import { Router } from 'vue-router'\r\n\r\nexport default {\r\n mounted: function (pane :HTMLElement, router : Router):void {\r\n pane.addEventListener('mouseover', async function (e: Event) {\r\n const img = e.target as HTMLImageElement\r\n\r\n if (img instanceof HTMLImageElement && img.dataset.popoverType === 'asset' && router.currentRoute.value.query.fetch !== img.dataset.assetCode) {\r\n await router.push({\r\n query: {\r\n ...router.currentRoute.value.query,\r\n assetPopoverAdd: img.dataset.assetCode,\r\n stepPopoverAdd: undefined\r\n }\r\n })\r\n }\r\n // todo add mouse over after fetch\r\n if (img instanceof HTMLImageElement && img.dataset.popoverType === 'step' && router.currentRoute.value.query.staticStep !== img.dataset.stepIndex) {\r\n await router.push({\r\n query: {\r\n ...router.currentRoute.value.query,\r\n stepPopoverAdd: img.dataset.stepIndex,\r\n assetPopoverAdd: undefined\r\n }\r\n })\r\n }\r\n })\r\n }\r\n}\r\n","import { Router } from 'vue-router'\r\nimport { IConfigPopover } from '@/map/core/service/popover.service'\r\n\r\nconst assetMouseOut = function (target:HTMLElement, router :Router) {\r\n const _mouseOut = async function () {\r\n target.removeEventListener('mouseout', _mouseOut)\r\n await router.push({ query: { ...router.currentRoute.value.query, assetPopoverAdd: undefined, stepPopoverAdd: undefined } })\r\n }\r\n target.addEventListener('mouseout', _mouseOut)\r\n}\r\n\r\nconst assetClick = function (target:HTMLElement, router :Router, additionalQuery: Record) {\r\n const _mouseClick = async function () {\r\n target.removeEventListener('click', _mouseClick)\r\n await router.push({\r\n query: { ...router.currentRoute.value.query, ...additionalQuery, flyTo: undefined }\r\n })\r\n }\r\n target.addEventListener('click', _mouseClick)\r\n}\r\n\r\nexport default {\r\n getPosition: function (isLeft : boolean, conf: IConfigPopover, router: Router):HTMLElement {\r\n const fullConf = {\r\n svg: {\r\n positionX: isLeft ? ('left:' + (conf.svgDim - conf.demiCircle - conf.offset) * -1) : ('left:' + (conf.demiCircle - conf.offset) * -1),\r\n positionY: (conf.demiCircle - conf.offset) * -1\r\n },\r\n circle: {\r\n cx: isLeft ? conf.svgDim - (conf.demiCircle) : conf.demiCircle,\r\n cy: conf.demiCircle\r\n },\r\n mask: {\r\n rect: {\r\n x: isLeft ? 0 : conf.demiCircle,\r\n y: conf.demiCircle,\r\n width: conf.svgDim - conf.demiCircle,\r\n height: conf.svgDim - conf.demiCircle\r\n }\r\n },\r\n line: {\r\n x1: isLeft ? 0 : conf.demiCircle,\r\n y1: isLeft ? conf.svgDim : conf.demiCircle,\r\n x2: isLeft ? conf.svgDim - conf.demiCircle : conf.svgDim,\r\n y2: isLeft ? conf.demiCircle : conf.svgDim\r\n }\r\n }\r\n\r\n const wrapper = document.createElement('div')\r\n wrapper.innerHTML = `\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `\r\n assetMouseOut(wrapper, router)\r\n assetClick(wrapper, router, conf.query)\r\n return wrapper\r\n }\r\n}\r\n","import svgMaker from '@/map/core/service/popover/svgMaker'\r\nimport { Router } from 'vue-router'\r\n\r\nexport interface IConfigPopover{\r\n offset: number\r\n html: HTMLElement,\r\n radius : number\r\n stroke : number\r\n svgDim : number\r\n demiCircle : number\r\n query : Record\r\n}\r\n\r\n// @ts-ignore\r\nexport default {\r\n append: function (anchor : HTMLElement, conf : IConfigPopover, type :string, router : Router): void {\r\n // todo remove querySelector\r\n const mapElement = document.querySelector('.leaflet-container')\r\n const mapDim = (mapElement as HTMLElement).getBoundingClientRect()\r\n const markerDim = anchor.getBoundingClientRect()\r\n\r\n document.querySelectorAll('.zIndex999, .zIndex998').forEach(element => element.classList.remove('zIndexTop'))\r\n\r\n const wrapper = document.createElement('div')\r\n wrapper.setAttribute('data-panel-type', type)\r\n anchor.appendChild(wrapper)\r\n\r\n const panel = conf.html\r\n panel.setAttribute('class', 'shadow-lg shadow-slate-800/40 bg-slate-800 border text-slate-300 border-2 border-blue-500 rounded-lg')\r\n panel.style.position = 'absolute'\r\n\r\n if (type === 'static') {\r\n panel.addEventListener('click', async function (e:Event) {\r\n await router.push({\r\n query: { ...router.currentRoute.value.query, stepPopoverAdd: undefined, staticStep: (e.target as HTMLElement).dataset.stepIndex !== '-1' ? (e.target as HTMLElement).dataset.stepIndex : undefined }\r\n })\r\n })\r\n document.querySelectorAll('.zIndex998').forEach(element => element.classList.remove('zIndex998'))\r\n anchor.classList.add('zIndex998')\r\n } else {\r\n document.querySelectorAll('.zIndex999').forEach(element => element.classList.remove('zIndex999'))\r\n anchor.classList.add('zIndex999')\r\n }\r\n wrapper.appendChild(panel)\r\n const panelDim = panel.getBoundingClientRect()\r\n const totalWidth = conf.svgDim + panelDim.width\r\n const isLeft = markerDim.x + totalWidth > mapDim.width\r\n\r\n panel.style.top = `${conf.svgDim - (conf.demiCircle - conf.offset)}px`\r\n if (isLeft) {\r\n panel.style.borderTopRightRadius = '0'\r\n panel.style.left = `${(panelDim.width + (conf.svgDim - conf.demiCircle - conf.offset)) * -1}px`\r\n } else {\r\n panel.style.borderTopLeftRadius = '0'\r\n panel.style.left = `${conf.svgDim - (conf.demiCircle - conf.offset)}px`\r\n }\r\n wrapper.appendChild(svgMaker.getPosition(isLeft, conf, router))\r\n }\r\n}\r\n","// @ts-ignore\r\nimport { DateTime } from 'luxon'\r\n\r\nexport const delay = async function (value : number): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(function () {\r\n resolve()\r\n }, value)\r\n })\r\n}\r\n\r\nexport function displayDate (date: string):string {\r\n const dd = (new Date(date).getDate()).toString().padStart(2, '0')\r\n const mm = (new Date(date).getMonth() + 1).toString().padStart(2, '0')\r\n const yyyy = new Date(date).getFullYear()\r\n const minute = new Date(date).getMinutes()\r\n const second = new Date(date).getSeconds()\r\n return yyyy + '-' + mm + '-' + dd + '-' + minute + ':' + second\r\n}\r\n\r\nexport function isObjectEmpty (object: Record): boolean {\r\n for (const property in object) {\r\n if (object[property]) { return false }\r\n }\r\n return true\r\n}\r\n\r\nexport function toggle (selector : string, hide : boolean):void {\r\n document.querySelectorAll(selector).forEach(elem => {\r\n (elem as HTMLElement).style.display = hide ? 'none' : 'block'\r\n })\r\n}\r\n\r\nexport type Immutable = {\r\n readonly [K in keyof T]: Immutable;\r\n}\r\nexport const duration = function (lastPosition: string):string {\r\n if (lastPosition !== '-1') {\r\n const start = DateTime.fromISO(lastPosition, { zone: 'UTC' })\r\n const dt = DateTime.now()\r\n const diffMinutes = dt.diff(start, 'minutes')\r\n const diffHours = dt.diff(start, 'minutes')\r\n const obj = dt.diff(start, ['days', 'hours', 'minutes']).toObject()\r\n if (diffMinutes.as('minutes') > 60) {\r\n if (diffHours.as('hours') > 24) {\r\n return `${obj.days} d`\r\n } else {\r\n return `${obj.hours} h`\r\n }\r\n } else {\r\n return `${Math.floor(diffMinutes.as('minutes'))} min`\r\n }\r\n } else {\r\n return ''\r\n }\r\n}\r\nexport const sticky = function (key:string, id : string):void {\r\n const target = document.getElementById(`target_${key}_${id}`)\r\n const element = document.getElementById(`element_${key}`)\r\n if (target && element) {\r\n const posY = `top:${window.pageYOffset + (target.getBoundingClientRect().bottom)}px`\r\n const posX = `right:${document.body.clientWidth - target.getBoundingClientRect().right}px`\r\n element.setAttribute('style', `${element.getAttribute('style')};${posX};${posY}`)\r\n element.classList.remove('invisible')\r\n }\r\n}\r\n","import popoverService, { IConfigPopover } from '@/map/core/service/popover.service'\r\nimport { AssetModel } from '@/map/core/bll/category/categoryModel'\r\nimport { duration } from '@/map/core/utilities'\r\nimport { Router } from 'vue-router'\r\n\r\nconst _html = function (asset: AssetModel): HTMLElement {\r\n const wrapper = document.createElement('div')\r\n\r\n let str = `
\r\n
\r\n
\r\n ${asset.assetName}`\r\n\r\n if (asset.isVessel && asset.isUnderContract) {\r\n str += `${duration(asset.lastPosition)}`\r\n }\r\n str += `
\r\n
${asset.assetTypeName}
\r\n `\r\n if (asset.isVessel && asset.isUnderContract) {\r\n str += `
\r\n \r\n ${asset.speed.toFixed(2)} kn\r\n \r\n ${asset.heading.toFixed(2)}°\r\n
`\r\n }\r\n\r\n str += `
\r\n \"${asset.assetName}\"
`\r\n\r\n wrapper.innerHTML = str\r\n return wrapper\r\n}\r\n// @ts-ignore\r\nexport default {\r\n append: function (anchor : HTMLElement, asset : AssetModel, router : Router):void {\r\n const conf: IConfigPopover = {\r\n offset: (asset.markerDim / 2),\r\n html: _html(asset),\r\n radius: asset.radius,\r\n stroke: asset.stroke,\r\n demiCircle: asset.radius + (asset.stroke / 2),\r\n svgDim: asset.svgDim,\r\n query: asset.query\r\n }\r\n popoverService.append(anchor, conf, 'asset', router)\r\n }\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport { computed, watch } from 'vue'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport assetPopover from '@/map/views/components/map/asset/assetPopover'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n if (router.currentRoute.value.query.assetPopoverAdd) {\r\n router.push({ query: { ...router.currentRoute.value.query, assetPopoverAdd: undefined } })\r\n }\r\n\r\n const subject = computed(function () {\r\n return categoryStore.state.initialized && router.currentRoute.value.query.assetPopoverAdd ? router.currentRoute.value.query.assetPopoverAdd as string : '-1'\r\n })\r\n\r\n watch(subject, function (value:string): void {\r\n const element = document.querySelector('[data-panel-type=asset]')\r\n if (element) {\r\n (element as HTMLElement).remove()\r\n }\r\n if (value !== '-1') {\r\n const asset = categoryStore.state.list.find(asset => asset.assetCode === value)\r\n const marker = (document.querySelector(`[data-asset-code='${value}']`) as HTMLElement).parentElement\r\n if (marker && asset) {\r\n assetPopover.append(marker, asset, router)\r\n }\r\n }\r\n },\r\n {\r\n flush: 'sync'\r\n })\r\n }\r\n}\r\n","import { layerGroup } from 'leaflet'\r\n\r\nexport const groupStepLayers = layerGroup([])\r\n","import { GetStepModel, StepModel } from '@/map/core/bll/step/step.model'\r\nimport { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { divIcon, LatLng, latLng, marker, polyline } from 'leaflet'\r\nimport { DateTime } from 'luxon'\r\nimport { groupStepLayers } from '@/map/core/bll/step/step.group'\r\n\r\nconst fetch = function (assetCode : string): Promise {\r\n return new Promise((resolve, reject) => {\r\n // api/Position/history/:id\r\n ApiClient.list('map/Position/history/' + assetCode).then(result => {\r\n const list : StepModel[] = []\r\n const coordinates : LatLng[] = [] // for making Polyline\r\n groupStepLayers.clearLayers()\r\n const markerDim = 6\r\n result.forEach((step, index) => {\r\n const _latLng = latLng([step.latitude, step.longitude])\r\n const anchor = marker(_latLng, {\r\n riseOnHover: true,\r\n icon: divIcon({\r\n html: `\"step_${index}\"`,\r\n className: 'bg-transparent ',\r\n iconAnchor: [markerDim / 2, markerDim / 2]\r\n })\r\n })\r\n groupStepLayers.addLayer(anchor)\r\n coordinates.push(_latLng)\r\n list.push({\r\n markerCode: assetCode,\r\n query: {\r\n assetPopoverAdd: undefined,\r\n stepPopoverAdd: undefined,\r\n flyToBounds: undefined,\r\n staticStep: index.toString()\r\n },\r\n index, // popover arrow\r\n utcTime: DateTime.fromISO(step.utcPositionTime, { zone: 'UTC' }).toFormat('LLL dd, yyyy, HH:mm ') + '(UTC)', // popover\r\n speed: step.speed, // popover\r\n heading: step.heading, // popover\r\n latLng: _latLng, // popover\r\n stroke: 2,\r\n svgDim: 50,\r\n markerDim,\r\n radius: index === 0 ? 20 : 6,\r\n first: index === 0, // popover arrow\r\n last: index === result.length - 1 // popover arrow\r\n })\r\n })\r\n groupStepLayers.addLayer(polyline(coordinates, { color: 'white', weight: 1, interactive: false }))\r\n resolve(list)\r\n }).catch((err:string) => {\r\n reject(err)\r\n })\r\n })\r\n}\r\nconst reset = function () {\r\n groupStepLayers.clearLayers()\r\n}\r\nexport default {\r\n fetch,\r\n reset\r\n}\r\n","import { reactive, readonly } from 'vue'\r\nimport stepManager from '@/map/core/bll/step/step.manager'\r\nimport { StepModel } from '@/map/core/bll/step/step.model'\r\n\r\nconst state = reactive({ assetCode: '', steps: [] as StepModel[], initialized: false })\r\n\r\nconst mutation = {\r\n reset: function () {\r\n state.assetCode = ''\r\n state.steps = []\r\n state.initialized = false\r\n },\r\n fetch_success: function (assetCode : string, steps : StepModel[]) {\r\n state.assetCode = assetCode\r\n state.steps = steps\r\n state.initialized = true\r\n }\r\n}\r\nconst effect = {\r\n fetch: function (assetCode : string) {\r\n stepManager.fetch(assetCode).then(steps => {\r\n mutation.fetch_success(assetCode, steps)\r\n })\r\n }\r\n}\r\nconst action = {\r\n fetch: function (assetCode : string): void {\r\n effect.fetch(assetCode)\r\n },\r\n reset: function (): void {\r\n mutation.reset()\r\n }\r\n}\r\n\r\nexport default { action, state: readonly(state) }\r\n","import { Map } from 'leaflet'\r\nimport { computed, onUnmounted, watch } from 'vue'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport { Router } from 'vue-router'\r\nimport stepStore from '@/map/core/bll/step/step.store'\r\nimport { groupStepLayers } from '@/map/core/bll/step/step.group'\r\nimport categoryManager from '@/map/core/bll/category/category.manager'\r\nimport { groupAssetLayer } from '@/map/core/bll/category/category.group'\r\nimport stepManager from '@/map/core/bll/step/step.manager'\r\n\r\nexport default {\r\n\r\n mounted: function (map: Map, router : Router): void {\r\n map.addLayer(groupStepLayers)\r\n\r\n const subject = computed(function () {\r\n return categoryStore.state.initialized && router.currentRoute.value.query.fetch ? router.currentRoute.value.query.fetch as string : '-1'\r\n })\r\n watch(subject, function (newVal:string, oldVal:string) {\r\n // toggle Marker, cause no marker under first step circle\r\n categoryManager.disabledLayer(groupAssetLayer, newVal, false)\r\n categoryManager.disabledLayer(groupAssetLayer, oldVal, true)\r\n\r\n if (newVal !== '-1') {\r\n stepStore.action.fetch(newVal)\r\n } else {\r\n stepStore.action.reset()\r\n stepManager.reset()\r\n }\r\n }, {\r\n flush: 'post'\r\n })\r\n\r\n onUnmounted(() => {\r\n groupStepLayers.remove()\r\n })\r\n }\r\n\r\n}\r\n","import popoverService, { IConfigPopover } from '@/map/core/service/popover.service'\r\nimport { StepModel } from '@/map/core/bll/step/step.model'\r\nimport { Router } from 'vue-router'\r\n\r\nconst _html = function (step : StepModel, isNavigation : boolean) : HTMLElement {\r\n const wrapper = document.createElement('div')\r\n let str = '
'\r\n if (isNavigation) {\r\n str += ''\r\n }\r\n str += `\r\n
\r\n
last position:${step.utcTime}
\r\n
lat:${step.latLng.lat}
\r\n
lng:${step.latLng.lng}
\r\n
speed:${step.speed.toFixed(2)} kn
\r\n
heading:${step.heading.toFixed(2)}°
\r\n
\r\n `\r\n wrapper.innerHTML = str\r\n\r\n return wrapper\r\n}\r\n\r\nexport default {\r\n append: function (anchor : HTMLElement, step: StepModel, isNavigation : boolean, router : Router):void {\r\n const conf:IConfigPopover = {\r\n offset: (step.markerDim / 2),\r\n html: _html(step, isNavigation),\r\n radius: step.radius,\r\n stroke: step.stroke,\r\n svgDim: step.svgDim,\r\n demiCircle: step.radius + (step.stroke / 2),\r\n query: step.query\r\n }\r\n popoverService.append(anchor, conf, isNavigation ? 'static' : 'step', router)\r\n }\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport { computed, watch } from 'vue'\r\nimport stepPopover from '@/map/views/components/map/step/stepPopover'\r\nimport stepStore from '@/map/core/bll/step/step.store'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n if (router.currentRoute.value.query.stepPopoverAdd) {\r\n router.push({ query: { ...router.currentRoute.value.query, stepPopoverAdd: undefined } })\r\n }\r\n\r\n const subject = computed(function ():string {\r\n return stepStore.state.initialized && router.currentRoute.value.query.stepPopoverAdd ? router.currentRoute.value.query.stepPopoverAdd as string : '-1'\r\n })\r\n\r\n watch(subject, function (value :string):void {\r\n const element = document.querySelector('[data-panel-type=step]')\r\n if (element) {\r\n element.remove()\r\n }\r\n if (value !== '-1') {\r\n const step = stepStore.state.steps[parseInt(value)]\r\n const marker = (document.querySelector(`[data-step-index='${value}']`) as HTMLElement).parentElement\r\n if (marker && step) {\r\n stepPopover.append(marker, step, false, router)\r\n }\r\n }\r\n }, {\r\n flush: 'post'\r\n })\r\n }\r\n}\r\n","import { ConcessionModel, GetConcessionModel } from '@/map/core/bll/concession/concession.model'\r\nimport { latLng, LatLng } from 'leaflet'\r\n\r\nexport function ConcessionMapper (concession : GetConcessionModel): ConcessionModel {\r\n const multi: LatLng[][] = []\r\n\r\n JSON.parse(concession.geoJson).coordinates.forEach((items:[number, number][] | [number, number][][]) => {\r\n const t:LatLng[] = []\r\n items.forEach((item : [number, number] | [number, number][]) => {\r\n if (Array.isArray(item) && Array.isArray(item[0])) {\r\n (item as [number, number][]).forEach(sub => {\r\n t.push(latLng([sub[1], sub[0]]))\r\n })\r\n } else {\r\n t.push(latLng([(item as [number, number])[1], (item as [number, number])[0]]))\r\n }\r\n })\r\n multi.push(t)\r\n })\r\n return {\r\n name: concession.areaName,\r\n geoJson: concession.geoJson,\r\n multiPolygon: multi\r\n }\r\n}\r\n","import { layerGroup } from 'leaflet'\r\n\r\nexport const groupConcessionLayers = layerGroup([])\r\n","import { ConcessionModel, GetResult } from '@/map/core/bll/concession/concession.model'\r\nimport { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { ConcessionMapper } from '@/map/core/bll/concession/concession.mapper'\r\nimport { canvas, polygon } from 'leaflet'\r\nimport { groupConcessionLayers } from '@/map/core/bll/concession/concession.group'\r\n\r\nconst renderer = canvas({ pane: 'concessionPane' })\r\n\r\nconst fetch = function (): Promise {\r\n return new Promise((resolve, reject) => {\r\n ApiClient.list('map/area/concessions').then(result => {\r\n resolve(result.areas.reduce(function (list: ConcessionModel[], row) {\r\n const concession = ConcessionMapper(row) as ConcessionModel\r\n list.push(concession)\r\n groupConcessionLayers.addLayer(polygon(concession.multiPolygon, { color: 'white', weight: 1, dashArray: [4, 4], renderer }).bindTooltip(concession.name, { direction: 'top' }))\r\n return list\r\n }, []))\r\n }).catch((err:string) => {\r\n reject(err)\r\n })\r\n })\r\n}\r\n\r\nexport default {\r\n fetch\r\n}\r\n","import { reactive } from 'vue'\r\nimport { ConcessionModel } from '@/map/core/bll/concession/concession.model'\r\nimport concessionManager from '@/map/core/bll/concession/concession.manager'\r\n\r\nexport const state = reactive({ list: null as ConcessionModel[] | null, toggle: false, loading: false, error: '', initialized: false })\r\n\r\nconst mutation = {\r\n fetch_success: (value : ConcessionModel[]) => {\r\n state.list = value\r\n state.initialized = true\r\n },\r\n loading: (value : boolean) => {\r\n state.loading = value\r\n },\r\n error: (value : string) => {\r\n state.error = value\r\n },\r\n toggle: (value : boolean) => {\r\n state.toggle = value\r\n }\r\n}\r\n\r\nconst effect = {\r\n fetch: function () {\r\n mutation.error('')\r\n mutation.loading(true)\r\n concessionManager.fetch().then(result => {\r\n mutation.fetch_success(result)\r\n }).catch(err => {\r\n mutation.error(err)\r\n }).finally(() => {\r\n mutation.loading(false)\r\n })\r\n }\r\n}\r\n\r\nconst action = {\r\n fetch: function (): void {\r\n effect.fetch()\r\n },\r\n toggle: function (value: boolean): void {\r\n mutation.toggle(value)\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n action\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { computed, onUnmounted, watch } from 'vue'\r\nimport concessionStore from '@/map/core/bll/concession/concession.store'\r\nimport { groupConcessionLayers } from '@/map/core/bll/concession/concession.group'\r\n\r\nexport default {\r\n mounted: function (map: Map): void {\r\n const concessionInitialized = computed(function (): boolean {\r\n return concessionStore.state.initialized\r\n })\r\n\r\n watch(concessionInitialized, function (value : boolean): void {\r\n if (!value) {\r\n concessionStore.action.fetch()\r\n }\r\n }, {\r\n immediate: true,\r\n flush: 'post'\r\n })\r\n\r\n const concessionDisplay = computed(function () : boolean {\r\n return concessionStore.state.toggle\r\n })\r\n\r\n watch(concessionDisplay, function (value : boolean): void {\r\n if (value) {\r\n map.addLayer(groupConcessionLayers)\r\n } else {\r\n groupConcessionLayers.remove()\r\n }\r\n }, {\r\n immediate: true\r\n })\r\n\r\n onUnmounted(() => {\r\n groupConcessionLayers.remove()\r\n })\r\n }\r\n\r\n}\r\n","import { GetZoneModel, ZoneModel } from '@/map/core/bll/zone/zone.model'\r\nimport { latLng, LatLng } from 'leaflet'\r\n\r\nexport function zoneMapper (zone : GetZoneModel): ZoneModel {\r\n return {\r\n code: zone.areaCode,\r\n name: zone.areaName,\r\n type: zone.areaType,\r\n geoJson: zone.geoJson,\r\n checked: true,\r\n coordinates: JSON.parse(zone.geoJson).coordinates.reduce((list:LatLng[], items : [number, number][]) => {\r\n items.forEach(item => {\r\n list.push(latLng([item[1], item[0]]))\r\n })\r\n return list\r\n }, [])\r\n }\r\n}\r\n","import { layerGroup } from 'leaflet'\r\n\r\nexport const groupZoneLayers = layerGroup([])\r\n","import { CategoryZoneModel, GetCategoryZoneModel, ZoneModel } from '@/map/core/bll/zone/zone.model'\r\nimport { ApiClient } from '@/map/core/dal/apiClient'\r\n\r\nimport { zoneMapper } from '@/map/core/bll/zone/zone.mapper'\r\nimport { GeoJSON, geoJSON, LayerGroup, PathOptions } from 'leaflet'\r\nimport { groupZoneLayers } from '@/map/core/bll/zone/zone.group'\r\n\r\nconst fetch = function (): Promise< {list: ZoneModel[], group:CategoryZoneModel[]}> {\r\n return new Promise((resolve, reject) => {\r\n ApiClient.list('map/area/maritime').then(result => {\r\n const group:CategoryZoneModel[] = []\r\n const list: ZoneModel[] = []\r\n result.areas.forEach((zone) => {\r\n const index = group.findIndex(item => item.name === zone.areaType)\r\n if (index === -1) {\r\n group.push({ name: zone.areaType })\r\n }\r\n list.push(zoneMapper(zone))\r\n groupZoneLayers.addLayer(geoJSON(JSON.parse(zone.geoJson), {\r\n pane: 'overlayPane',\r\n attribution: zone.areaCode,\r\n style: function () {\r\n return { color: 'blue', weight: 1, dashArray: [4, 4] }\r\n }\r\n }).bindTooltip(zone.areaName, { direction: 'top' }))\r\n })\r\n resolve({ group, list })\r\n }).catch((err:string) => {\r\n reject(err)\r\n })\r\n })\r\n}\r\nconst toggleLayer = function (group : LayerGroup, code : string, active : boolean):void {\r\n group.getLayers().forEach(layer => {\r\n if (layer instanceof GeoJSON && (layer as GeoJSON).options.attribution === code) {\r\n layer.setStyle({ className: active ? '' : 'hidden' } as PathOptions)\r\n layer.remove()\r\n group.addLayer(layer)\r\n }\r\n })\r\n}\r\nexport default {\r\n fetch,\r\n toggleLayer\r\n}\r\n","import { reactive } from 'vue'\r\nimport { CategoryZoneModel, ZoneModel } from '@/map/core/bll/zone/zone.model'\r\nimport zoneManager from '@/map/core/bll/zone/zone.manager'\r\nimport { LatLng } from 'leaflet'\r\n\r\nexport const state = reactive({ list: [] as ZoneModel[], group: [] as CategoryZoneModel[], initialized: false, loading: false, error: '' })\r\n\r\nconst mutation = {\r\n\r\n loading: (value : boolean) => {\r\n state.loading = value\r\n },\r\n success: (result : { list :ZoneModel[], group : CategoryZoneModel[] }) => {\r\n state.list = result.list\r\n state.group = result.group\r\n state.initialized = true\r\n },\r\n error: function (value : string) {\r\n state.error = value\r\n },\r\n update: (zoneCode : string, value : boolean) => {\r\n state.list = state.list.map(o => {\r\n return { ...o, checked: o.code === zoneCode ? value : o.checked }\r\n })\r\n }\r\n}\r\n\r\nconst action = {\r\n fetch: function (): void {\r\n mutation.error('')\r\n mutation.loading(true)\r\n zoneManager.fetch().then(result => {\r\n mutation.success(result)\r\n }).catch(err => {\r\n mutation.error(err)\r\n }).finally(() => {\r\n mutation.loading(false)\r\n })\r\n },\r\n update: function (args: { code: string, value : boolean }): void {\r\n mutation.update(args.code, args.value)\r\n }\r\n}\r\nconst getter = {\r\n noCategory: (): boolean => {\r\n return state.group.length === 0\r\n },\r\n atLeastOneCategory: (): boolean => {\r\n return state.group.length > 1\r\n },\r\n\r\n zoneActives: (): ZoneModel[] => {\r\n return state.list.filter(x => x.checked)\r\n },\r\n activeBound: (): LatLng[] => {\r\n return getter.zoneActives().reduce((x: LatLng[], y: ZoneModel) => x.concat(y.coordinates), [])\r\n }\r\n}\r\n\r\nexport default {\r\n action,\r\n getter,\r\n state\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { onUnmounted } from 'vue'\r\nimport zoneStore from '@/map/core/bll/zone/zone.store'\r\nimport { groupZoneLayers } from '@/map/core/bll/zone/zone.group'\r\n\r\nexport default {\r\n mounted: function (map: Map): void {\r\n map.addLayer(groupZoneLayers)\r\n\r\n if (!zoneStore.state.initialized) {\r\n zoneStore.action.fetch()\r\n }\r\n\r\n onUnmounted(() => {\r\n groupZoneLayers.remove()\r\n })\r\n }\r\n\r\n}\r\n","import { reactive } from 'vue'\r\n\r\nconst state = reactive({ url: process.env.VUE_APP_MAP_TILE_LAYER ?? '' })\r\n\r\nconst mutation = {\r\n toggle: function (url: string) :void {\r\n state.url = url\r\n }\r\n}\r\nconst action = {\r\n toggle: function (url: string):void {\r\n mutation.toggle(url)\r\n }\r\n}\r\nexport default {\r\n action,\r\n state\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport { computed, watch } from 'vue'\r\nimport stepPopover from '@/map/views/components/map/step/stepPopover'\r\nimport stepStore from '@/map/core/bll/step/step.store'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n const subject = computed(function ():string {\r\n return stepStore.state.initialized && router.currentRoute.value.query.staticStep ? router.currentRoute.value.query.staticStep as string : '-1'\r\n })\r\n\r\n watch(subject, function (value :string) {\r\n const element = document.querySelector('[data-panel-type=static]')\r\n if (element) {\r\n (element as HTMLElement).remove()\r\n }\r\n\r\n if (value !== '-1') {\r\n const step = stepStore.state.steps[parseInt(value)]\r\n const marker = (document.querySelector(`[data-step-index='${value}']`) as HTMLElement).parentElement\r\n if (marker && step) {\r\n stepPopover.append(marker, step, true, router)\r\n }\r\n }\r\n }, {\r\n flush: 'post'\r\n })\r\n }\r\n}\r\n","import { computed, onUnmounted, watch } from 'vue'\r\nimport { circleMarker, divIcon, layerGroup, Map, marker, Marker } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport { groupAssetLayer } from '@/map/core/bll/category/category.group'\r\n\r\nexport const fleetAssetGroup = layerGroup([])\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n map.addLayer(fleetAssetGroup)\r\n\r\n const fleetAsset = function (value :string) {\r\n fleetAssetGroup.clearLayers()\r\n if (value !== '-1') {\r\n groupAssetLayer.getLayers().forEach(layer => {\r\n if (layer instanceof Marker) {\r\n if (((layer as Marker).options.attribution as string).split('_')[0] === value) {\r\n const asset = categoryStore.state.list.find(item => item.assetCode === value)\r\n if (asset) {\r\n if (asset.isVessel === true) {\r\n fleetAssetGroup.addLayer(marker(asset.latLng,\r\n {\r\n riseOnHover: true,\r\n icon: divIcon({\r\n html: `\"${asset.assetName}\"`,\r\n className: 'bg-transparent ',\r\n iconAnchor: [asset.markerDim / 2, asset.markerDim / 2]\r\n })\r\n }))\r\n }\r\n\r\n fleetAssetGroup.addLayer(circleMarker(asset.latLng, {\r\n className: 'stroke-blue-500',\r\n radius: 20,\r\n fillColor: 'transparent',\r\n weight: 2,\r\n interactive: false\r\n }))\r\n }\r\n }\r\n if (((layer as Marker).options.attribution as string).split('_')[1] === 'false') {\r\n fleetAssetGroup.addLayer(layer)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n if (categoryStore.state.initialized && router.currentRoute.value.query.fleetAsset) {\r\n fleetAsset(router.currentRoute.value.query.fleetAsset as string)\r\n } else {\r\n if (!categoryStore.state.initialized) {\r\n categoryStore.action.fetch()\r\n }\r\n\r\n const subject = computed(function ():string {\r\n return categoryStore.state.initialized && router.currentRoute.value.query.fleetAsset ? router.currentRoute.value.query.fleetAsset as string : '-1'\r\n })\r\n\r\n watch(subject, function (value :string) {\r\n fleetAsset(value)\r\n })\r\n }\r\n\r\n onUnmounted(() => {\r\n fleetAssetGroup.remove()\r\n })\r\n }\r\n}\r\n","import { watchPostEffect } from 'vue'\r\nimport { Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n const setBlue = function (value :string) {\r\n const lastElement = document.querySelector('[data-asset-selected]') as HTMLImageElement\r\n if (lastElement) {\r\n lastElement.src = require(`@/assets/img/vessel/vessel_${lastElement.dataset.originColor}.png`)\r\n lastElement.removeAttribute('data-asset-selected')\r\n }\r\n const newElement = document.querySelector(`[data-asset-code='${value}']`) as HTMLImageElement\r\n\r\n if (newElement) {\r\n newElement.setAttribute('data-asset-selected', 'true')\r\n newElement.src = require('@/assets/img/vessel/vessel_blue.png')\r\n }\r\n }\r\n\r\n watchPostEffect(function () {\r\n const querySetBlue = router.currentRoute.value.query.setBlue as string\r\n if (categoryStore.state.initialized && querySetBlue) {\r\n console.log(querySetBlue)\r\n setBlue(querySetBlue)\r\n }\r\n })\r\n }\r\n}\r\n","\r\nimport { defineComponent } from 'vue'\r\n\r\nimport toaster from '@/map/views/components/misc/toaster.vue'\r\nimport loader from '@/map/views/components/misc/loader.vue'\r\nimport ArrowForward from '@/components/icons/ArrowForward.vue'\r\nimport mapMaker from '@/map/core/service/map.maker'\r\nimport flyToComposable from '@/map/views/composables/flyTo.composable'\r\nimport mapEventDelegation from '@/map/core/service/map.eventDelegation'\r\nimport popoverAssetComposable from '@/map/views/composables/popoverAsset.composable'\r\nimport fetchStepComposable from '@/map/views/composables/fetchStep.composable'\r\nimport popoverStepComposable from '@/map/views/composables/popoverStep.composable'\r\nimport fetchConcessionComposable from '@/map/views/composables/fetchConcession.composable'\r\nimport fetchZoneComposable from '@/map/views/composables/fetchZone.composable'\r\nimport { tileLayer } from 'leaflet'\r\nimport tileStore from '@/map/core/bll/map/tile.store'\r\nimport popoverStaticComposable from '@/map/views/composables/popoverStatic.composable'\r\nimport fleetAssetComposable from '@/map/views/composables/fleetAsset.composable'\r\nimport selectedBlueComposable from '@/map/views/composables/selectedSetBlue.composable'\r\n\r\nexport default defineComponent({\r\n components: {\r\n toaster,\r\n loader,\r\n ArrowForward\r\n },\r\n props: ['code'],\r\n setup () {\r\n return { mapId: 'mapPage2' }\r\n },\r\n computed: {\r\n codeFormated ():string {\r\n return this.code.split('|')[1]\r\n }\r\n },\r\n mounted () {\r\n // todo get directly the assetCode instead the imo code from fleet\r\n // AssetDetailManager.find(this.code).then(asset => {\r\n this.$router.push({ query: { fleetAsset: this.code.split('|')[1], flyTo: this.code.split('|')[1], fetch: this.code.split('|')[1] } })\r\n // })\r\n\r\n const map = mapMaker.init(this.mapId, { isScaleControl: false })\r\n\r\n mapEventDelegation.mounted((map.getPane('markerPane') as HTMLElement), this.$router)\r\n map.addLayer(tileLayer(tileStore.state.url))\r\n flyToComposable.mounted(map, this.$router)\r\n fetchConcessionComposable.mounted(map)\r\n fetchZoneComposable.mounted(map)\r\n fleetAssetComposable.mounted(map, this.$router)\r\n if (this.$route.params.categoryId === '3') {\r\n popoverStepComposable.mounted(map, this.$router)\r\n selectedBlueComposable.mounted(map, this.$router)\r\n fetchStepComposable.mounted(map, this.$router)\r\n popoverStaticComposable.mounted(map, this.$router)\r\n }\r\n\r\n popoverAssetComposable.mounted(map, this.$router)\r\n }\r\n\r\n})\r\n","import { render } from \"./fleetMap.vue?vue&type=template&id=dc26140c&ts=true\"\nimport script from \"./fleetMap.vue?vue&type=script&lang=ts\"\nexport * from \"./fleetMap.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport AssetDetailTab from '@/components/buttons/AssetDetailTab.vue'\r\nimport FleetDetailTitleCard from '@/components/cards/FleetDetailTitleCard.vue'\r\nimport ServiceCardContent from '@/components/cards/ServiceCardContent.vue'\r\nimport FleetAssetDetails from '@/components/fleet/FleetAssetDetails.vue'\r\nimport FleetReportTab from '@/components/fleet/tabs/FleetReportTab.vue'\r\nimport { Manager } from '@/core/managers/fleet.manager'\r\nimport { FleetDetailModel } from '@/core/model/fleet.model'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport Tools from '@/core/services/tools'\r\nimport router, { PAGE_TITLE } from '@/router'\r\nimport { computed, defineComponent, inject, reactive, Ref, ref } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { useToast } from 'vue-toastification'\r\nimport { useI18n } from 'vue-i18n'\r\nimport store from '@/store'\r\nimport FleetAssetTimeline from '@/components/fleet/FleetAssetTimeline.vue'\r\nimport { TimelineModel } from '@/core/model/timeline.model'\r\nimport FleetMap from '@/map/views/fleetMap.vue'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\n\r\nexport default defineComponent({\r\n name: 'FleetAssets',\r\n components: {\r\n FleetDetailTitleCard,\r\n AssetDetailTab,\r\n FleetAssetDetails,\r\n ServiceCardContent,\r\n FleetAssetTimeline,\r\n FleetReportTab,\r\n FleetMap\r\n },\r\n setup () {\r\n const route = useRoute()\r\n const toast = useToast()\r\n const loading = ref(true)\r\n const loadingTimeline = ref(true)\r\n const error = ref('')\r\n const { t } = useI18n()\r\n const selectedTab = ref(\r\n router.currentRoute.value.query.tab\r\n ? router.currentRoute.value.query.tab\r\n : t('fleet.tabs.history')\r\n // : 'fleet.tabs.history'\r\n )\r\n\r\n const tabs = [\r\n t('fleet.tabs.history'),\r\n t('fleet.tabs.documents'),\r\n t('fleet.tabs.details')\r\n ]\r\n\r\n const vesselDetails: FleetDetailModel|undefined = undefined as FleetDetailModel|undefined\r\n const assetFilter = computed(() => {\r\n return store.state.filtersSettings &&\r\n store.state.filtersSettings.id_AssetFilter\r\n ? store.state.filtersSettings.id_AssetFilter\r\n : ''\r\n })\r\n const periodFilter = computed(() => {\r\n return store.state.filtersSettings &&\r\n store.state.filtersSettings.id_PeriodFilter\r\n ? store.state.filtersSettings.id_PeriodFilter\r\n : ''\r\n })\r\n\r\n const imo = ref('')\r\n const mmsi = ref('')\r\n const length = ref('')\r\n const bridgeNumber = ref('')\r\n const bridgeEmail = ref('')\r\n\r\n const selectTab = (tab: string) => {\r\n router.replace({ query: { tab: encodeURI(tab) } })\r\n selectedTab.value = tab\r\n }\r\n\r\n const timeline: Ref = ref([])\r\n const periodSelected = ref('')\r\n const timeSheetError = ref('')\r\n\r\n return {\r\n periodFilter,\r\n assetFilter,\r\n vesselDetails,\r\n tabs,\r\n selectedTab,\r\n route,\r\n toast,\r\n loading,\r\n loadingTimeline,\r\n error,\r\n timeline,\r\n selectTab,\r\n length,\r\n imo,\r\n mmsi,\r\n periodSelected,\r\n timeSheetError,\r\n bridgeNumber,\r\n bridgeEmail,\r\n loginService: inject('ILoginService') as ILoginService,\r\n logger: inject('ILogger') as ILogger\r\n }\r\n },\r\n mounted () {\r\n Manager.detail(\r\n +this.route.params.categoryId,\r\n +this.route.params.assetId\r\n ).then((response) => {\r\n if (!response.isError && response.data) {\r\n this.vesselDetails = response.data\r\n if (this.vesselDetails === undefined) return\r\n const category =\r\n this.$route.params.categoryId === '1'\r\n ? 'Infrastructure'\r\n : this.$route.params.categoryId === '2'\r\n ? 'Installation'\r\n : 'Vessel'\r\n\r\n this.logger.logEvent({\r\n name: 'UserNavigation',\r\n properties: {\r\n contextName: 'Fleet',\r\n categoryName: category,\r\n subcategoryName: this.vesselDetails.name,\r\n ActionName: 'view'\r\n }\r\n })\r\n const imo = this.vesselDetails.properties.find(\r\n (property) => property.label === 'IMO'\r\n )\r\n const mmsi = this.vesselDetails.properties.find(\r\n (property) => property.label === 'MMSI'\r\n )\r\n const length = this.vesselDetails.properties.find(\r\n (property) => property.label === 'Length overall'\r\n )\r\n const phone = this.vesselDetails.properties.find(\r\n (property) => property.label === 'Bridge phone'\r\n )\r\n const email = this.vesselDetails.properties.find(\r\n (property) => property.label === 'Bridge email'\r\n )\r\n\r\n this.imo = imo?.value || ''\r\n this.length = length?.value || ''\r\n this.mmsi = mmsi?.value || ''\r\n this.bridgeNumber = phone?.value || ''\r\n this.bridgeEmail = email?.value || ''\r\n this.periodSelected = 'L1W'\r\n this.getTimeSheet(\r\n +this.route.params.categoryId,\r\n +this.route.params.assetId,\r\n 7\r\n )\r\n } else {\r\n this.error = `${this.$t('fleet.error')}${response.Message}`\r\n this.toast.error(this.error)\r\n }\r\n this.loading = false\r\n Tools.updatePageName(\r\n PAGE_TITLE[this.$route.name as string],\r\n this.vesselDetails?.name\r\n )\r\n })\r\n },\r\n methods: {\r\n getTimeSheet (categoryId: number, assetId: number, period: number) {\r\n Manager.timesheet(categoryId, assetId, period).then((response) => {\r\n this.loadingTimeline = false\r\n if (!response.isError && response.data) {\r\n this.timeline = response.data.timeSheetItems\r\n } else {\r\n this.timeSheetError = `${this.$t('fleet.errorTimeSheet')}${\r\n response.Message\r\n }`\r\n this.toast.error(this.timeSheetError)\r\n }\r\n })\r\n },\r\n choosePeriod ($event: string) {\r\n this.periodSelected = $event\r\n const period = $event === 'L1W' ? 7 : 3\r\n this.getTimeSheet(\r\n +this.route.params.categoryId,\r\n +this.route.params.assetId,\r\n period\r\n )\r\n }\r\n }\r\n})\r\n","import { render } from \"./FleetAsset.vue?vue&type=template&id=149b1b39&scoped=true&ts=true\"\nimport script from \"./FleetAsset.vue?vue&type=script&lang=ts\"\nexport * from \"./FleetAsset.vue?vue&type=script&lang=ts\"\n\nimport \"./FleetAsset.vue?vue&type=style&index=0&id=149b1b39&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-149b1b39\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7b5d89b2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mt-6 h-100 select-none\" }\nconst _hoisted_2 = { class: \"home-grid\" }\nconst _hoisted_3 = [\"poster\", \"id\"]\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = [\"src\", \"alt\", \"id\"]\nconst _hoisted_6 = { class: \"absolute top-6 left-6 right-6 p-2 bg-bg-2 bg-opacity-50 b w-fit rounded-lg\" }\nconst _hoisted_7 = { class: \"italic font-extrabold !text-lg sm:!text-3xl\" }\nconst _hoisted_8 = { class: \"text-text-prim text-sm sm:text-base\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", { class: \"mt-20 mb-10 border-t-gray-800\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PageTitle = _resolveComponent(\"PageTitle\")!\n const _component_CardButton = _resolveComponent(\"CardButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_PageTitle, {\n title: _ctx.$t('auth.welcome')\n }, null, 8, [\"title\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pages, (page, i) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(page.sameApp ? 'router-link' : 'a'), {\n to: { name: page.pageName, query: page.query },\n href: page.pageName,\n target: page.sameApp ? '' : '_blank',\n class: \"home-grid--item\",\n key: i,\n onMouseenter: ($event: any) => (page.hover = true),\n onMouseleave: ($event: any) => (page.hover = false)\n }, {\n default: _withCtx(() => [\n (page.hover)\n ? (_openBlock(), _createElementBlock(\"video\", {\n key: 0,\n autoplay: \"\",\n muted: \"\",\n loop: \"\",\n playsinline: \"\",\n poster: page.poster,\n class: \"w-full h-full\",\n id: `video-${page.title}`\n }, [\n _createElementVNode(\"source\", {\n src: page.video,\n type: \"video/mp4\"\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: page.poster,\n alt: page.title,\n id: `img-${page.title}`\n }, null, 8, _hoisted_5)),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"h1\", _hoisted_7, _toDisplayString(page.title), 1),\n _createElementVNode(\"p\", _hoisted_8, _toDisplayString(page.subtitle), 1)\n ]),\n _createVNode(_component_CardButton, { \"btn-text\": 'Open' })\n ]),\n _: 2\n }, 1064, [\"to\", \"href\", \"target\", \"onMouseenter\", \"onMouseleave\"]))\n }), 128))\n ]),\n _hoisted_9\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ArrowForward = _resolveComponent(\"ArrowForward\")!\n\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass([\"text-white inline-block rounded-md\", { 'bg-bg-0 px-4 py-2.5 absolute bottom-2.5 left-6': _ctx.home }])\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.btnText), 1),\n _createVNode(_component_ArrowForward, { class: \"h-6 w-6 inline-block ml-2.5\" })\n ], 2))\n}","\r\nimport ArrowForward from '@/components/icons/ArrowForward.vue'\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'CardButton.vue',\r\n components: { ArrowForward },\r\n props: {\r\n btnText: String,\r\n home: { type: Boolean, default: true }\r\n }\r\n})\r\n","import { render } from \"./CardButton.vue?vue&type=template&id=77eb326a&ts=true\"\nimport script from \"./CardButton.vue?vue&type=script&lang=ts\"\nexport * from \"./CardButton.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport PageTitle from '@/components/titles/PageTitle.vue'\r\nimport { SectorModel } from '@/core/model/sector.model'\r\nimport { defineComponent } from 'vue'\r\nimport CardButton from '@/components/buttons/CardButton.vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n PageTitle,\r\n CardButton\r\n },\r\n data () {\r\n return {\r\n imgService: ` url(${require('@/assets/img/home-photo-services.png')}`,\r\n imgMap: ` url(${require('@/assets/img/home-photo-map.png')}`,\r\n imgHelp: ` url(${require('@/assets/img/home-photo-help.png')}`,\r\n list: [] as SectorModel[],\r\n pages: [\r\n {\r\n title: 'Analytics',\r\n subtitle: \"Explore your fleet's key indicators.\",\r\n pageName: 'analytics',\r\n poster: require('@/assets/homepage/ANALYTICS.jpg'),\r\n video: require('@/assets/homepage/ANALYTICS.mp4'),\r\n hover: false,\r\n sameApp: true\r\n },\r\n {\r\n title: 'Map',\r\n subtitle:\r\n 'Your interactive tool for real-time vessel tracking from global overview to the single vessel.',\r\n pageName: 'map',\r\n poster: require('@/assets/homepage/MAP.jpg'),\r\n video: require('@/assets/homepage/MAP.mp4'),\r\n hover: false,\r\n sameApp: true,\r\n query: { flyToBounds: 'true' }\r\n },\r\n {\r\n title: 'Fleet',\r\n subtitle:\r\n 'Single vessel focus for operations monitoring, vessel tracking and key operational indicators.',\r\n pageName: 'fleet',\r\n poster: require('@/assets/homepage/FLEET.jpg'),\r\n video: require('@/assets/homepage/FLEET.mp4'),\r\n hover: false,\r\n sameApp: true\r\n },\r\n {\r\n title: 'Reports',\r\n subtitle: 'Consult all your reports available in this library.',\r\n pageName: 'allReports',\r\n poster: require('@/assets/homepage/REPORTS.jpg'),\r\n video: require('@/assets/homepage/REPORTS.mp4'),\r\n hover: false,\r\n sameApp: true\r\n },\r\n {\r\n title: 'Dashboards',\r\n subtitle: 'Explore and compare your data in your Dashboard catalog.',\r\n pageName: 'allDashboards',\r\n poster: require('@/assets/homepage/DASHBOARD.jpg'),\r\n video: require('@/assets/homepage/DASHBOARD.mp4'),\r\n hover: false,\r\n sameApp: true\r\n },\r\n {\r\n title: 'Contact us',\r\n subtitle: 'Our experts will revert shortly.',\r\n pageName: 'https://opsealog.zendesk.com/hc/en-150',\r\n poster: require('@/assets/homepage/NEED_A_QUESTION.jpg'),\r\n video: require('@/assets/homepage/NEED_A_QUESTION.mp4'),\r\n hover: false,\r\n sameApp: false\r\n }\r\n ]\r\n }\r\n }\r\n})\r\n","import { render } from \"./Home.vue?vue&type=template&id=7b5d89b2&scoped=true&ts=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\n\nimport \"./Home.vue?vue&type=style&index=0&id=7b5d89b2&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7b5d89b2\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5bd8d12c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"py-3 lg:py-6\" }\nconst _hoisted_2 = { class: \"grid grid-cols-1 xl:grid-cols-2 2xl:grid-cols-3 gap-4 body body-1\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"flex items-center\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"p-3 pl-0 w-32 min-w-[8rem]\" }, \"Department\", -1))\nconst _hoisted_6 = { class: \"font-bold\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"p-3 pl-0\" }, \"First Name\", -1))\nconst _hoisted_8 = { class: \"font-bold\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"p-3 pl-0\" }, \"Last Name\", -1))\nconst _hoisted_10 = { class: \"font-bold\" }\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"p-3 pl-0\" }, \"Department\", -1))\nconst _hoisted_12 = { class: \"font-bold\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"td\", { class: \"p-3 pl-0\" }, \"Email\", -1))\nconst _hoisted_14 = { class: \"font-bold\" }\nconst _hoisted_15 = { class: \"flex items-center\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"p-3 pl-0 w-32 min-w-[8rem]\" }, \"Activity Sectors\", -1))\nconst _hoisted_17 = { class: \"font-bold\" }\nconst _hoisted_18 = { class: \"body-1 text-semantic-negative\" }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Log out\", -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"hr\", { class: \"my-6 border-t-gray-800\" }, null, -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PageTitle = _resolveComponent(\"PageTitle\")!\n const _component_DepartmentSelect = _resolveComponent(\"DepartmentSelect\")!\n const _component_SectorsSelect = _resolveComponent(\"SectorsSelect\")!\n const _component_LogoutIcon = _resolveComponent(\"LogoutIcon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_PageTitle, {\n title: _ctx.$t('profile.title'),\n subtitle: _ctx.$t('profile.subtitle')\n }, null, 8, [\"title\", \"subtitle\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.user)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_DepartmentSelect, { onDepartmentChanged: _ctx.departmentChanged }, null, 8, [\"onDepartmentChanged\"])\n ])\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_7,\n _createElementVNode(\"td\", _hoisted_8, _toDisplayString(_ctx.user.firstName), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_9,\n _createElementVNode(\"td\", _hoisted_10, _toDisplayString(_ctx.user.lastName), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_11,\n _createElementVNode(\"td\", _hoisted_12, _toDisplayString(_ctx.department), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_13,\n _createElementVNode(\"td\", _hoisted_14, _toDisplayString(_ctx.user.email), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _hoisted_16,\n _createElementVNode(\"div\", _hoisted_17, [\n _createVNode(_component_SectorsSelect, { onChangeSectors: _ctx.changeSectors }, null, 8, [\"onChangeSectors\"])\n ])\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"tr\", _hoisted_18, [\n _createElementVNode(\"td\", {\n class: \"p-3 cursor-pointer flex items-center\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.logout && _ctx.logout(...args)))\n }, [\n _hoisted_19,\n _createVNode(_component_LogoutIcon, { class: \"ml-1\" })\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_20\n ]))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-55033cad\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"w-4/5\" }\nconst _hoisted_2 = {\n key: 1,\n class: \"skeleton\"\n}\nconst _hoisted_3 = {\n key: 2,\n class: \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Treeselect = _resolveComponent(\"Treeselect\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.departments.length && _ctx.modelValue)\n ? (_openBlock(), _createBlock(_component_Treeselect, {\n key: 0,\n \"onUpdate:modelValue\": [\n _ctx.departmentSelection,\n _cache[0] || (_cache[0] = ($event: any) => ((_ctx.modelValue) = $event))\n ],\n options: _ctx.departments,\n searchable: true,\n limit: 1,\n valueConsistsOf: 'BRANCH_PRIORITY',\n clearable: false,\n \"disable-branch-nodes\": false,\n normalizer: _ctx.normalizer,\n modelValue: _ctx.modelValue,\n onOpen: _ctx.rotateArrow,\n onClose: _ctx.rotateArrow,\n id: \"departmentSelect\"\n }, null, 8, [\"onUpdate:modelValue\", \"options\", \"normalizer\", \"modelValue\", \"onOpen\", \"onClose\"]))\n : (_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (!_ctx.loading && _ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { defineComponent, inject } from 'vue'\r\nimport Treeselect from 'vue3-treeselect'\r\nimport { ContextManager } from '@/core/managers/context.manager'\r\nimport { DepartmentModel } from '@/core/model/context.model'\r\nimport { useToast } from 'vue-toastification'\r\n\r\nexport default defineComponent({\r\n name: 'DepartmentSelect',\r\n // inject: [ContextManager.name],\r\n setup () {\r\n const toast = useToast()\r\n return {\r\n toast,\r\n contextManager: inject(ContextManager.name) as ContextManager\r\n }\r\n },\r\n components: { Treeselect },\r\n data () {\r\n return {\r\n departments: [] as DepartmentModel[],\r\n modelValue: 0,\r\n loading: true,\r\n error: ''\r\n }\r\n },\r\n created () {\r\n this.contextManager.departmentList().then((response) => {\r\n this.loading = false\r\n if (!response.isError && response.data) {\r\n const departments = response.data\r\n for (const department of departments) {\r\n if (department.children && department.children.length === 0) {\r\n delete department.children\r\n }\r\n }\r\n this.departments = departments\r\n\r\n this.contextManager.currentDepartment().then((res) => {\r\n const currentDepartment = (\r\n this.departments as DepartmentModel[]\r\n ).find((department) => department.code === res.data)\r\n if (currentDepartment) {\r\n this.modelValue = currentDepartment.id\r\n this.$emit('departmentChanged', currentDepartment)\r\n }\r\n })\r\n } else {\r\n this.error = this.$t('allReports.error', {\r\n error: response.Message\r\n })\r\n this.toast.error(this.error)\r\n }\r\n })\r\n },\r\n methods: {\r\n normalizer (node: DepartmentModel) {\r\n return {\r\n id: node.id,\r\n label: node.name,\r\n children: node.children\r\n }\r\n },\r\n departmentSelection ($event: number) {\r\n const currentDepartment = (this.departments as DepartmentModel[]).find(\r\n (department) => department.id === $event\r\n )\r\n\r\n this.$nextTick(() => {\r\n const control = document.querySelectorAll(\r\n '.vue-treeselect__single-value'\r\n )\r\n if (control && control[0]) {\r\n control[0].classList.add('line-height-value-selected')\r\n }\r\n })\r\n if (currentDepartment) {\r\n this.contextManager.declareDepartmentCode(\r\n currentDepartment.code as string\r\n )\r\n this.$emit('departmentChanged', currentDepartment)\r\n }\r\n },\r\n rotateArrow () {\r\n const arrowContainer = document.querySelectorAll(\r\n '.vue-treeselect__control-arrow-container'\r\n )\r\n arrowContainer[0].classList.toggle('rotate-x-180')\r\n }\r\n }\r\n})\r\n","import { render } from \"./DepartmentSelect.vue?vue&type=template&id=55033cad&scoped=true&ts=true\"\nimport script from \"./DepartmentSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./DepartmentSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./DepartmentSelect.vue?vue&type=style&index=0&id=55033cad&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-55033cad\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-574a634c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"w-4/5\" }\nconst _hoisted_2 = {\n key: 1,\n class: \"skeleton\"\n}\nconst _hoisted_3 = {\n key: 2,\n class: \"\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_CustomMultiSelect = _resolveComponent(\"CustomMultiSelect\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.sectors.length)\n ? (_openBlock(), _createBlock(_component_CustomMultiSelect, {\n key: 0,\n placeholder: _ctx.modelValue.toString(),\n options: _ctx.sectors,\n default: _ctx.modelValue,\n \"multiple-simple\": true,\n class: \"select w-45\",\n onSelection: _ctx.departmentSelection\n }, null, 8, [\"placeholder\", \"options\", \"default\", \"onSelection\"]))\n : (_ctx.loading && !_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (!_ctx.loading && _ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { defineComponent, inject } from 'vue'\r\nimport { ContextManager } from '@/core/managers/context.manager'\r\nimport { useToast } from 'vue-toastification'\r\nimport CustomMultiSelect from '@/components/dropdowns/CustomMultiSelect.vue'\r\n\r\nexport default defineComponent({\r\n name: 'DepartmentSelect',\r\n components: {\r\n CustomMultiSelect\r\n },\r\n setup () {\r\n const toast = useToast()\r\n return {\r\n toast,\r\n contextManager: inject(ContextManager.name) as ContextManager\r\n }\r\n },\r\n data () {\r\n return {\r\n sectors: [] as string[],\r\n modelValue: [] as string[],\r\n loading: true,\r\n error: ''\r\n }\r\n },\r\n created () {\r\n this.contextManager.activitySectorsList().then((response) => {\r\n this.loading = false\r\n if (!response.isError && response.data) {\r\n this.sectors = response.data\r\n this.contextManager.currentActivitySectors().then((res) => {\r\n this.modelValue = res.data as string[]\r\n this.$emit('changeSectors', this.modelValue)\r\n })\r\n } else {\r\n this.error = this.$t('allReports.error', {\r\n error: response.Message\r\n })\r\n this.toast.error(this.error)\r\n }\r\n })\r\n },\r\n\r\n methods: {\r\n departmentSelection ($event: string[]) {\r\n this.modelValue = $event\r\n if (this.modelValue.length) {\r\n this.contextManager.declareActivitySectors($event)\r\n this.$emit('changeSectors', this.modelValue)\r\n }\r\n },\r\n rotateArrow () {\r\n const arrowContainer = document.querySelectorAll(\r\n '.vue-treeselect__control-arrow-container'\r\n )\r\n arrowContainer[1].classList.toggle('rotate-x-180')\r\n }\r\n }\r\n})\r\n","import { render } from \"./SectorsSelect.vue?vue&type=template&id=574a634c&scoped=true&ts=true\"\nimport script from \"./SectorsSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./SectorsSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./SectorsSelect.vue?vue&type=style&index=0&id=574a634c&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-574a634c\"]])\n\nexport default __exports__","\r\nimport { defineComponent, inject, Ref, ref } from 'vue'\r\nimport { Manager as UserManager } from '@/core/managers/user.manager'\r\nimport PageTitle from '@/components/titles/PageTitle.vue'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport LogoutIcon from '@/components/icons/LogoutIcon.vue'\r\nimport DepartmentSelect from '@/components/Filters/DepartmentSelect.vue'\r\nimport SectorsSelect from '@/components/Filters/SectorsSelect.vue'\r\nimport { UserModel } from '@/core/model/user.model'\r\nimport { DepartmentModel } from '@/core/model/context.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n PageTitle,\r\n LogoutIcon,\r\n DepartmentSelect,\r\n SectorsSelect\r\n },\r\n name: 'Profile',\r\n inject: ['ILoginService'],\r\n setup () {\r\n const department = ref('')\r\n const sectors: Ref = ref([])\r\n\r\n return {\r\n loginService: inject('ILoginService') as ILoginService,\r\n _userManager: UserManager,\r\n department,\r\n sectors\r\n }\r\n },\r\n data () {\r\n return { user: {} as UserModel }\r\n },\r\n async mounted () {\r\n const userResponse = await this._userManager.detail()\r\n this.user = userResponse.data as UserModel\r\n },\r\n methods: {\r\n async logout () {\r\n await this.loginService.SignOut()\r\n await this.loginService.SignIn()\r\n },\r\n departmentChanged ($event: DepartmentModel) {\r\n this.department = $event.name\r\n },\r\n changeSectors ($event: string[]) {\r\n this.sectors = $event\r\n }\r\n }\r\n})\r\n","import { render } from \"./Profile.vue?vue&type=template&id=5bd8d12c&scoped=true&ts=true\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts\"\n\nimport \"./Profile.vue?vue&type=style&index=0&id=5bd8d12c&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5bd8d12c\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"flex flex-col\"\n}\nconst _hoisted_2 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ReportListByServiceCategory = _resolveComponent(\"ReportListByServiceCategory\")!\n const _component_ReportListByServiceCategoryLoading = _resolveComponent(\"ReportListByServiceCategoryLoading\")!\n const _component_ReportsListMenuShell = _resolveComponent(\"ReportsListMenuShell\")!\n\n return (_openBlock(), _createBlock(_component_ReportsListMenuShell, {\n categories: _ctx.categories,\n assetOnlyServices: [],\n error: _ctx.error,\n loading: _ctx.loading,\n isDashboard: false,\n assetCategories: _ctx.assetCategories,\n onShowReport: _ctx.showReportById\n }, {\n default: _withCtx(() => [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category, index) => {\n return (_openBlock(), _createElementBlock(\"div\", { key: index }, [\n _createVNode(_component_ReportListByServiceCategory, {\n category: category,\n assets: _ctx.assets,\n isInReports: true\n }, null, 8, [\"category\", \"assets\"])\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ReportListByServiceCategoryLoading, { loading: _ctx.loading }, null, 8, [\"loading\"])\n ]))\n ]),\n _: 1\n }, 8, [\"categories\", \"error\", \"loading\", \"assetCategories\", \"onShowReport\"]))\n}","\r\nimport ReportsListMenuShell from '@/components/buttons/ReportsListMenuShell.vue'\r\nimport ReportListByServiceCategory from '@/components/reports/categories/ServiceCategoryList.report.vue'\r\nimport ReportListByServiceCategoryLoading from '@/components/reports/categories/ReportListByServiceCategory.loading.vue'\r\nimport handleFilters from '@/core/composables/handleFilters.composable'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport * as FleetManager from '@/core/managers/fleet.manager'\r\nimport { ReportServiceCategory } from '@/core/model/report.model'\r\nimport { defineComponent, Ref, ref } from 'vue'\r\nimport { useToast } from 'vue-toastification'\r\nimport { AssetApiModel } from '@/core/model/fleet.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ReportsListMenuShell,\r\n ReportListByServiceCategoryLoading,\r\n ReportListByServiceCategory\r\n },\r\n name: 'Service.detail.vue',\r\n setup () {\r\n const toast = useToast()\r\n const error = ref('')\r\n const categories: Ref = ref([])\r\n // const assetOnlyServices: Ref = ref([])\r\n const loading = ref(true)\r\n const filterHandler = handleFilters()\r\n const isVisible = filterHandler.isVisible\r\n const assetCategories: Ref<{id: number, name: string}[]> = ref([])\r\n const assets: Ref = ref([])\r\n return {\r\n toast,\r\n error,\r\n categories,\r\n // assetOnlyServices,\r\n loading,\r\n isVisible,\r\n assetCategories,\r\n assets\r\n }\r\n },\r\n async created () {\r\n const assetCategoriesResponse = await FleetManager.Manager.categories()\r\n if (!assetCategoriesResponse.isError && assetCategoriesResponse.data) {\r\n this.assetCategories = assetCategoriesResponse.data.categories\r\n } else {\r\n this.error = `${this.$t('fleet.errorCategory')}${assetCategoriesResponse.Message}`\r\n this.toast.error(this.error)\r\n }\r\n await this.listAllAssets()\r\n\r\n // const assetReportResponse = await ReportManager.list(true)\r\n const serviceReportResponse = await ReportManager.list()\r\n\r\n if (serviceReportResponse.isError) { // || assetReportResponse.isError) {\r\n this.error = this.$t('allReports.error', {\r\n error: serviceReportResponse.Message\r\n })\r\n this.toast.error(this.error)\r\n }\r\n\r\n if (serviceReportResponse.data) {\r\n console.log(serviceReportResponse.data)\r\n const categories = serviceReportResponse.data.serviceCategories\r\n this.categories = categories.map(s => {\r\n s.groups.forEach(g => { g.active = true })\r\n return ({ ...s, active: true })\r\n })\r\n }\r\n\r\n // if (assetReportResponse.data) {\r\n // const categories = assetReportResponse.data.serviceCategories\r\n // this.assetOnlyServices = categories.map(s => {\r\n // s.groups.forEach(g => { g.active = true })\r\n // return ({ ...s, active: true })\r\n // })\r\n // }\r\n\r\n this.loading = false\r\n },\r\n mounted () {\r\n this.$router.push({ query: undefined })\r\n },\r\n methods: {\r\n async listAllAssets () : Promise {\r\n this.assets = []\r\n for (const category of this.assetCategories) {\r\n await this.buildAssetList(category.id)\r\n }\r\n },\r\n async buildAssetList (id: number, index = 0) : Promise {\r\n const response = await FleetManager.Manager.assets(id, index)\r\n if (response.isError || !response.data) return\r\n\r\n this.assets = this.assets.concat(response.data.assets)\r\n if (!response.data.hasNextPage) return\r\n await this.buildAssetList(id, index + 1)\r\n },\r\n rotateArrow () {\r\n const arrowContainer = document.querySelectorAll(\r\n '.vue-treeselect__control-arrow-container'\r\n )\r\n arrowContainer[0].classList.toggle('rotate-x-180')\r\n }\r\n }\r\n})\r\n","import { render } from \"./Reports.list.vue?vue&type=template&id=637ebe96&ts=true\"\nimport script from \"./Reports.list.vue?vue&type=script&lang=ts\"\nexport * from \"./Reports.list.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createVNode as _createVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"relative h-full\",\n id: \"stickyMenuRight\"\n}\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = { class: \"absolute top-2 right-2 rounded-sm drop-shadow-sm border-gray-600\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"end-of-body\",\n class: \"z-2\"\n}, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_vessel_detail = _resolveComponent(\"vessel-detail\")!\n const _component_menu_right = _resolveComponent(\"menu-right\")!\n const _component_toaster = _resolveComponent(\"toaster\")!\n const _component_loader = _resolveComponent(\"loader\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.$route.query.panelDetail)\n ? (_openBlock(), _createBlock(_component_vessel_detail, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n id: _ctx.mapId,\n class: \"h-full z-0\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.mapInitialized)\n ? (_openBlock(), _createBlock(_component_menu_right, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _hoisted_4,\n _createVNode(_component_toaster),\n _createVNode(_component_loader)\n ]))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Teleport as _Teleport, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-regular fa-search\" }, null, -1)\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-regular fa-layer-group\" }, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-regular fa-filter\" }, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-draw-polygon\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_search_bar_popover = _resolveComponent(\"search-bar-popover\")!\n const _component_map_layers_popover = _resolveComponent(\"map-layers-popover\")!\n const _component_advanced_filter_popover = _resolveComponent(\"advanced-filter-popover\")!\n const _component_zone_popover = _resolveComponent(\"zone-popover\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_router_link, {\n \"data-target-id\": \"searchBarPopover\",\n to: { query : {...this.$route.query, popover: 'searchBarPopover' }},\n title: \"Search\",\n class: \"m-2 py-2 px-3 block rounded-md duration-700 dark:text-slate-300 :dark:hover:text-white dark:bg-slate-800 dark:hover:bg-slate-700 bg-white/50 hover:bg-white/100\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n }, {\n default: _withCtx(() => [\n _hoisted_1\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, {\n \"data-target-id\": \"mapLayersPopover\",\n to: { query : {...this.$route.query, popover: 'mapLayersPopover' }},\n title: \"Map layers\",\n class: \"m-2 py-2 px-3 block rounded-md duration-700 dark:text-slate-300 :dark:hover:text-white dark:bg-slate-800 dark:hover:bg-slate-700 bg-white/50 hover:bg-white/100\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, {\n \"data-target-id\": \"advancedFilterPopover\",\n to: { query : {...this.$route.query, popover: 'advancedFilterPopover' }},\n title: \"Filter assets\",\n class: \"m-2 py-2 px-3 block rounded-md duration-700 dark:text-slate-300 :dark:hover:text-white dark:bg-slate-800 dark:hover:bg-slate-700 bg-white/50 hover:bg-white/100\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(_component_router_link, {\n \"data-target-id\": \"zonePopover\",\n to: { query : {...this.$route.query, popover: 'zonePopover' }},\n title: \"Filter zones\",\n class: \"m-2 py-2 px-3 block rounded-md duration-700 dark:text-slate-300 :dark:hover:text-white dark:bg-slate-800 dark:hover:bg-slate-700 bg-white/50 hover:bg-white/100\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"to\"]),\n (_openBlock(), _createBlock(_Teleport, { to: \"#end-of-body\" }, [\n ( _ctx.$route.query.popover === 'searchBarPopover' )\n ? (_openBlock(), _createBlock(_component_search_bar_popover, { key: 0 }))\n : _createCommentVNode(\"\", true),\n ( _ctx.$route.query.popover === 'mapLayersPopover' )\n ? (_openBlock(), _createBlock(_component_map_layers_popover, { key: 1 }))\n : _createCommentVNode(\"\", true),\n ( _ctx.$route.query.popover === 'advancedFilterPopover' )\n ? (_openBlock(), _createBlock(_component_advanced_filter_popover, { key: 2 }))\n : _createCommentVNode(\"\", true),\n ( _ctx.$route.query.popover === 'zonePopover' )\n ? (_openBlock(), _createBlock(_component_zone_popover, { key: 3 }))\n : _createCommentVNode(\"\", true)\n ]))\n ], 64))\n}","import { createElementVNode as _createElementVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7000121f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n \"data-element-id\": \"searchBarPopover\",\n \"data-sticky-parent\": \"stickyMenuRight\",\n class: \"absolute\",\n style: {\"width\":\"350px\"}\n}\nconst _hoisted_2 = {\n class: \"flex items-center dark:bg-slate-800 rounded-md bg-white/50 pl-2.5 py-2.5\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-search inline-block dark:text-slate-300\" }, null, -1))\nconst _hoisted_4 = {\n class: \"p-1 dark:bg-slate-800 rounded-md bg-white/50 py-2.5 mt-2.5\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_5 = { class: \"flex items-center pb-2.5 border-b border-gray-700\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"grow text-xl dark:text-white font-bold\" }, \"Search\", -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_8 = {\n key: 0,\n class: \"pr-3 custom-scrollbar mt-2.5 overflow-x-hidden overflow-y-auto\",\n style: {\"height\":\"300px\"},\n \"data-keyboard\": \"ul\"\n}\nconst _hoisted_9 = [\"data-item-id\"]\nconst _hoisted_10 = [\"src\", \"alt\"]\nconst _hoisted_11 = { class: \"grow\" }\nconst _hoisted_12 = { class: \"font-bolt flex items-center\" }\nconst _hoisted_13 = {\n class: \"text-ellipsis overflow-hidden whitespace-nowrap text-md\",\n style: {\"width\":\"170px\"}\n}\nconst _hoisted_14 = {\n class: \"text-sm text-slate-300 text-ellipsis overflow-hidden whitespace-nowrap\",\n style: {\"width\":\"170px\"}\n}\nconst _hoisted_15 = {\n key: 0,\n class: \"text-slate-300 flex\"\n}\nconst _hoisted_16 = { class: \"text-sm ml-1\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"flex flex-col items-center py-4 dark:text-white\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-spinner fa-spin\" }, null, -1))\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Loading\", -1))\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-empty-set\" }, null, -1))\nconst _hoisted_21 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"No data\", -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_wifi_icon = _resolveComponent(\"wifi-icon\")!\n const _directive_focus = _resolveDirective(\"focus\")!\n const _directive_keyboard = _resolveDirective(\"keyboard\")!\n const _directive_sticky = _resolveDirective(\"sticky\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _withDirectives(_createElementVNode(\"input\", {\n type: \"text\",\n \"data-keyboard\": \"input\",\n class: \"text-sm rounded pl-2 outline-none dark:bg-transparent dark:text-slate-300 dark:placeholder:text-slate-300\",\n placeholder: \"Search assets\",\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onSearch($event)))\n }, null, 544), [\n [_directive_focus]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (_ctx.list.length>0)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_router_link, {\n to: { query : {..._ctx.$route.query, popover: undefined} },\n class: \"text-white\"\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n (_ctx.trackList.length>0)\n ? _withDirectives((_openBlock(), _createElementBlock(\"ul\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.trackList, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n class: \"py-2.5 dark:bg-slate-800 bg-white dark:hover:bg-slate-600 hover:bg-gray-100 dark:text-white border-b border-slate-600\"\n }, [\n _createElementVNode(\"a\", {\n href: \"#\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.onClick($event)), [\"prevent\"])),\n \"data-item-id\": item.assetCode,\n class: \"flex items-center\"\n }, [\n _createElementVNode(\"img\", {\n src: item.assetImg,\n alt: item.assetName,\n style: {\"width\":\"60px\"},\n class: \"rounded mr-2.5 ml-2.5\"\n }, null, 8, _hoisted_10),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(item.assetName), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_14, _toDisplayString(item.assetTypeName), 1)\n ]),\n (item.isVessel && item.isUnderContract)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_wifi_icon, { class: \"text-xs h-4 w-4 fill-text-title\" }),\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.durationStr(item.lastPosition)), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_9)\n ]))\n }), 128))\n ])), [\n [_directive_keyboard]\n ])\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_18,\n _hoisted_19\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _hoisted_20,\n _hoisted_21\n ], 64))\n ]))\n ])\n ])), [\n [_directive_sticky]\n ])\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"Capa_1\",\n \"enable-background\": \"new 0 0 512 512\",\n height: \"512\",\n viewBox: \"0 0 512 512\",\n width: \"512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'WifiIcon'\r\n})\r\n","import { render } from \"./WifiIcon.vue?vue&type=template&id=e48b6eec&ts=true\"\nimport script from \"./WifiIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./WifiIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { duration } from '@/map/core/utilities'\r\nimport { defineComponent } from 'vue'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport wifiIcon from '@/components/icons/WifiIcon.vue'\r\nimport router from '@/router'\r\nimport { AssetModel } from '@/map/core/bll/category/categoryModel'\r\n\r\nexport default defineComponent({\r\n watch: {\r\n list: {\r\n immediate: true,\r\n handler (list:AssetModel[]) {\r\n if (list && list.length > 0) {\r\n // todo check why this implementation ?\r\n this.trackList = JSON.parse(JSON.stringify(list))\r\n }\r\n }\r\n }\r\n },\r\n components: {\r\n wifiIcon\r\n },\r\n\r\n computed: {\r\n list () { return categoryStore.state.list },\r\n loading () { return categoryStore.state.loading }\r\n },\r\n data () {\r\n return { trackList: [] as AssetModel[] }\r\n },\r\n mounted () {\r\n document.addEventListener('keydown', this.onEnterKeyPress)\r\n },\r\n\r\n methods: {\r\n onSearch (e:Event) {\r\n const input = (e.target as HTMLInputElement).value\r\n if (input !== '') {\r\n this.trackList = this.list.filter(item => item.assetName.toLowerCase().indexOf((e.target as HTMLInputElement).value.toLowerCase()) > -1)\r\n } else {\r\n this.trackList = this.list.filter(item => item)\r\n }\r\n },\r\n durationStr (lastPosition: string): string {\r\n return duration(lastPosition)\r\n },\r\n select (assetCode:string) {\r\n const asset = this.trackList.find(item => item.assetCode === assetCode)\r\n\r\n if (asset) {\r\n if (!asset.checked) {\r\n categoryStore.action.update(assetCode, true)\r\n }\r\n router.push({ query: { ...asset.query, flyTo: assetCode } })\r\n }\r\n },\r\n onClick (e:Event) {\r\n const elementLI = (e.currentTarget as HTMLElement)\r\n this.select(elementLI.dataset.itemId as string)\r\n },\r\n onEnterKeyPress (e:KeyboardEvent) {\r\n if (e.key === 'Enter') {\r\n const elementUL = (((e.target as HTMLElement).parentElement as HTMLElement).parentElement as HTMLElement).querySelector('ul')\r\n const elementLI = (elementUL as HTMLElement).querySelector('.selectedAsset > a') as HTMLElement\r\n if (elementLI) {\r\n this.select(elementLI.dataset.itemId as string)\r\n }\r\n }\r\n if (e.key === 'Escape') {\r\n this.$router.push({ query: { ...this.$route.query, popover: undefined } })\r\n }\r\n if (e.key === 'Tab') {\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./asset.typeAhead.vue?vue&type=template&id=7000121f&scoped=true&ts=true\"\nimport script from \"./asset.typeAhead.vue?vue&type=script&lang=ts\"\nexport * from \"./asset.typeAhead.vue?vue&type=script&lang=ts\"\n\nimport \"./asset.typeAhead.vue?vue&type=style&index=0&id=7000121f&lang=scss&scoped=true\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7000121f\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, createBlock as _createBlock, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a02b4f4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"p-1 dark:bg-slate-800 absolute rounded-md bg-white/50\",\n \"data-element-id\": \"advancedFilterPopover\",\n \"data-sticky-parent\": \"stickyMenuRight\",\n style: {\"width\":\"300px\",\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_2 = { class: \"flex items-center pl-2.5 py-2.5 border-b border-gray-700\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"grow text-xl dark:text-white font-bold\" }, \"Assets\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_5 = {\n key: 0,\n class: \"flex flex-col items-center py-4 dark:text-white\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-spinner fa-spin\" }, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Loading\", -1))\nconst _hoisted_8 = [\n _hoisted_6,\n _hoisted_7\n]\nconst _hoisted_9 = {\n key: 1,\n class: \"flex flex-col items-center py-4 dark:text-white\"\n}\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-empty-set\" }, null, -1))\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"No data\", -1))\nconst _hoisted_12 = [\n _hoisted_10,\n _hoisted_11\n]\nconst _hoisted_13 = {\n key: 2,\n \"data-accordion-type\": \"wrapper\",\n class: \"bg-white dark:bg-slate-800 dark:text-white rounded-md p-2\"\n}\nconst _hoisted_14 = [\"data-accordion-expanded\"]\nconst _hoisted_15 = {\n \"data-accordion-type\": \"link\",\n class: \"flex items-center\",\n href: \"#\"\n}\nconst _hoisted_16 = { class: \"grow font-semibold\" }\nconst _hoisted_17 = {\n key: 0,\n class: \"fa fa-chevron-down\"\n}\nconst _hoisted_18 = {\n \"data-accordion-type\": \"body\",\n class: \"accordion-body custom-scrollbar\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_checkbox_row = _resolveComponent(\"checkbox-row\")!\n const _directive_accordion = _resolveDirective(\"accordion\")!\n const _directive_sticky = _resolveDirective(\"sticky\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createVNode(_component_router_link, {\n to: { query : { ..._ctx.$route.query, popover: undefined} },\n class: \"text-white\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n (_ctx.state.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _hoisted_8))\n : (_ctx.noCategory)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _hoisted_12))\n : _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.state.group, (group, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"mt-2\",\n \"data-accordion-expanded\": index === 0,\n style: _normalizeStyle([{ overflowY : index === 0 ? 'auto' : 'hidden' }])\n }, [\n _createElementVNode(\"a\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, _toDisplayString(group.name), 1),\n (_ctx.atLeastOneCategory)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_17))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"section\", _hoisted_18, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.state.list, (item, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n (item.categoryCode === group.code)\n ? (_openBlock(), _createBlock(_component_checkbox_row, {\n key: 0,\n asset: item,\n onUpdate: _cache[0] || (_cache[0] = (args) => _ctx.update(args))\n }, null, 8, [\"asset\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ], 12, _hoisted_14))\n }), 128))\n ])), [\n [_directive_accordion]\n ])\n ])), [\n [_directive_sticky]\n ])\n}","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"block cursor-pointer my-2\" }\nconst _hoisted_2 = { class: \"flex items-center\" }\nconst _hoisted_3 = { class: \"flex flex-col ml-2\" }\nconst _hoisted_4 = { class: \"text-md text-white text-ellipsis overflow-hidden w-60 inline-block whitespace-nowrap\" }\nconst _hoisted_5 = { class: \"text-xs text-slate-400\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n onInput: _cache[0] || (_cache[0] = event => _ctx.$emit('update', { code : _ctx.asset.assetCode, value : !event.target.checked})),\n style: {\"display\":\"none\"}\n }, null, 32),\n _createElementVNode(\"span\", _hoisted_2, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa-lg\", {' fa-solid text-custom-blue fa-square-check' : _ctx.asset.checked, 'fa-regular text-slate-400 fa-square' : !_ctx.asset.checked}])\n }, null, 2),\n _createElementVNode(\"span\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.asset.assetName), 1),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.asset.assetTypeName), 1)\n ])\n ])\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { AssetModel } from '@/map/core/bll/category/categoryModel'\r\n\r\nexport default defineComponent({\r\n props: {\r\n asset: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n }\r\n})\r\n","import { render } from \"./category.row.vue?vue&type=template&id=09b54814&ts=true\"\nimport script from \"./category.row.vue?vue&type=script&lang=ts\"\nexport * from \"./category.row.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\nimport { defineComponent } from 'vue'\r\nimport checkboxRow from '@/map/views/components/drawers/right/category/category.row.vue'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport categoryManager from '@/map/core/bll/category/category.manager'\r\nimport { groupAssetLayer } from '@/map/core/bll/category/category.group'\r\n\r\nexport default defineComponent({\r\n components: {\r\n checkboxRow\r\n },\r\n setup () {\r\n return { state: categoryStore.state }\r\n },\r\n computed: {\r\n noCategory: categoryStore.getter.noCategory,\r\n atLeastOneCategory: categoryStore.getter.atLeastOneCategory\r\n },\r\n methods: {\r\n update (args: { code: string, value : boolean }) {\r\n categoryStore.action.update(args.code, args.value)\r\n categoryManager.toggleLayer(groupAssetLayer, args.code, args.value)\r\n this.$router.push({ query: { popover: 'advancedFilterPopover' } })\r\n }\r\n }\r\n\r\n})\r\n\r\n","import { render } from \"./category.panel.vue?vue&type=template&id=5a02b4f4&scoped=true&ts=true\"\nimport script from \"./category.panel.vue?vue&type=script&lang=ts\"\nexport * from \"./category.panel.vue?vue&type=script&lang=ts\"\n\nimport \"./category.panel.vue?vue&type=style&index=0&id=5a02b4f4&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5a02b4f4\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e27c896e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n \"data-element-id\": \"mapLayersPopover\",\n \"data-sticky-parent\": \"stickyMenuRight\",\n class: \"p-1 dark:bg-slate-800 absolute rounded-md drop-shadow-md bg-white/50\",\n style: {\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_2 = { class: \"flex items-center pl-2.5 py-2.5 border-b border-gray-700\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"grow text-xl dark:text-white font-bold\" }, \"Map layers\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_5 = { class: \"mt-2.5 flex\" }\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = {\n class: \"text-slate-300 text-sm capitalize inline-block text-center\",\n style: {\"background\":\"rgba(0,0,0,.4)\",\"width\":\"100%\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _directive_sticky = _resolveDirective(\"sticky\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createVNode(_component_router_link, {\n to: { query : { ..._ctx.$route.query, popover: undefined} },\n class: \"text-white\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.cards, (item, index) => {\n return (_openBlock(), _createElementBlock(\"a\", {\n style: _normalizeStyle({'background-image': item.img}),\n key: index,\n onClick: _withModifiers(($event: any) => (_ctx.onChangeUrl(item.name)), [\"prevent\"]),\n class: \"card border-2 dark:border-slate-800 hover:border-blue-600 dark:hover:border-custom-blue border-white inline-block h-16 relative bg-cover mx-1 w-32 rounded-md flex items-end justify-center\"\n }, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(item.title), 1)\n ], 12, _hoisted_6))\n }), 128))\n ])\n ])), [\n [_directive_sticky]\n ])\n}","\r\n\r\nimport { defineComponent } from 'vue'\r\nimport tileStore from '@/map/core/bll/map/tile.store'\r\n\r\nexport default defineComponent({\r\n\r\n setup () {\r\n return {\r\n cards: [\r\n { name: 'https://api.maptiler.com/maps/50300a58-72e8-4c8e-a71e-d5e395b00152/{z}/{x}/{y}.png?key=nrAD16PdiepKDbSBhR8U', img: `url(${require('@/assets/img/thumbTile/dark.png')}`, title: 'dark' },\r\n { name: 'https://api.maptiler.com/maps/c58ae4bb-5295-43b8-a414-eb3065d66e30/{z}/{x}/{y}.png?key=nrAD16PdiepKDbSBhR8U', img: `url(${require('@/assets/img/thumbTile/basic.png')}`, title: 'light' },\r\n { name: 'https://api.maptiler.com/maps/c9427de4-f1fb-45ac-828b-7db14101e3c1/{z}/{x}/{y}.png?key=nrAD16PdiepKDbSBhR8U', img: `url(${require('@/assets/img/thumbTile/satellite.png')}`, title: 'satellite' }\r\n ]\r\n }\r\n },\r\n methods: {\r\n onChangeUrl (url :string):void {\r\n tileStore.action.toggle(url)\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./switchLayer.panel.vue?vue&type=template&id=e27c896e&scoped=true&ts=true\"\nimport script from \"./switchLayer.panel.vue?vue&type=script&lang=ts\"\nexport * from \"./switchLayer.panel.vue?vue&type=script&lang=ts\"\n\nimport \"./switchLayer.panel.vue?vue&type=style&index=0&id=e27c896e&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e27c896e\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, createBlock as _createBlock, normalizeStyle as _normalizeStyle, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4a3e85c9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"p-1 dark:bg-slate-800 absolute rounded-md bg-white/50\",\n \"data-element-id\": \"zonePopover\",\n \"data-sticky-parent\": \"stickyMenuRight\",\n style: {\"width\":\"300px\",\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_2 = { class: \"flex items-center pl-2.5 py-2.5 border-b border-gray-700\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"grow text-xl dark:text-white font-bold\" }, \"Zones\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_5 = { class: \"ml-2\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"flex flex-col items-center py-4 dark:text-white\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-spinner fa-spin\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"Loading\", -1))\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\nconst _hoisted_10 = {\n key: 1,\n class: \"flex flex-col items-center py-4 dark:text-white\"\n}\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-empty-set\" }, null, -1))\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", null, \"No data\", -1))\nconst _hoisted_13 = [\n _hoisted_11,\n _hoisted_12\n]\nconst _hoisted_14 = {\n key: 2,\n \"data-accordion-type\": \"wrapper\",\n class: \"bg-white dark:bg-slate-800 dark:text-white rounded-md p-2\"\n}\nconst _hoisted_15 = [\"data-accordion-expanded\"]\nconst _hoisted_16 = {\n \"data-accordion-type\": \"link\",\n class: \"flex items-center\",\n href: \"#\"\n}\nconst _hoisted_17 = { class: \"grow font-semibold\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"fa fa-chevron-down\"\n}\nconst _hoisted_19 = {\n \"data-accordion-type\": \"body\",\n class: \"accordion-body custom-scrollbar\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_toggle_concession = _resolveComponent(\"toggle-concession\")!\n const _component_zone_row = _resolveComponent(\"zone-row\")!\n const _directive_accordion = _resolveDirective(\"accordion\")!\n const _directive_sticky = _resolveDirective(\"sticky\")!\n\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createVNode(_component_router_link, {\n to: { query : { ..._ctx.$route.query, popover: undefined} },\n class: \"text-white\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_toggle_concession)\n ]),\n (_ctx.state.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _hoisted_9))\n : (_ctx.noCategory)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, _hoisted_13))\n : _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.state.group, (group, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"mt-2\",\n \"data-accordion-expanded\": index === 0,\n style: _normalizeStyle([{ overflowY : index === 0 ? 'auto' : 'hidden' }])\n }, [\n _createElementVNode(\"a\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, _toDisplayString(group.name), 1),\n (_ctx.atLeastOneCategory)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_18))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"section\", _hoisted_19, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.state.list, (zone, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n (zone.type === group.name)\n ? (_openBlock(), _createBlock(_component_zone_row, {\n key: 0,\n zone: zone,\n onUpdate: _cache[0] || (_cache[0] = (args) => _ctx.update(args))\n }, null, 8, [\"zone\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ], 12, _hoisted_15))\n }), 128))\n ])), [\n [_directive_accordion]\n ])\n ])), [\n [_directive_sticky]\n ])\n}","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"block cursor-pointer mt-2\" }\nconst _hoisted_2 = [\"data-code\"]\nconst _hoisted_3 = { class: \"flex items-center\" }\nconst _hoisted_4 = { class: \"text-ellipsis text-md overflow-hidden w-64 inline-block whitespace-nowrap ml-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n onInput: _cache[0] || (_cache[0] = event => _ctx.$emit('update', { code : _ctx.zone.code, value : !event.target.checked})),\n \"data-code\": `${_ctx.zone.code}`,\n style: {\"display\":\"none\"}\n }, null, 40, _hoisted_2),\n _createElementVNode(\"span\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa-lg\", {' fa-solid text-custom-blue fa-square-check' : _ctx.zone.checked, 'fa-regular text-slate-400 fa-square' : !_ctx.zone.checked}])\n }, null, 2),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.zone.name), 1)\n ])\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { ZoneModel } from '@/map/core/bll/zone/zone.model'\r\n\r\nexport default defineComponent({\r\n props: {\r\n zone: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n }\r\n})\r\n","import { render } from \"./zone.row.vue?vue&type=template&id=2fda9a0a&ts=true\"\nimport script from \"./zone.row.vue?vue&type=script&lang=ts\"\nexport * from \"./zone.row.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"block cursor-pointer mt-2\" }\nconst _hoisted_2 = { class: \"text-ellipsis overflow-hidden w-64 inline-block whitespace-nowrap flex items-center\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid fa-spinner fa-spin-pulse text-white\" }, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2 text-white\" }, \"loading...\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-regular fa-triangle-exclamation\" }, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2 text-white\" }, \"Error occurs...\", -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-regular fa-triangle-exclamation\" }, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-2 text-white\" }, \"No concession\", -1)\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-ellipsis overflow-hidden w-64 inline-block whitespace-nowrap ml-2 text-white\" }, \"Display all concessions\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onToggle(!_ctx.state.toggle))),\n style: {\"display\":\"none\"}\n }, null, 32),\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.state.loading)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_3,\n _hoisted_4\n ], 64))\n : (_ctx.state.error !== '' )\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _hoisted_5,\n _hoisted_6\n ], 64))\n : (_ctx.state.list && _ctx.state.list.length === 0)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _hoisted_7,\n _hoisted_8\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa-lg text-white\", {' fa-solid fa-square-check' : _ctx.state.toggle, 'fa-regular fa-square' :!_ctx.state.toggle}])\n }, null, 2),\n _hoisted_9\n ], 64))\n ])\n ]))\n}","\r\nimport { defineComponent } from 'vue'\r\nimport concessionStore from '@/map/core/bll/concession/concession.store'\r\n\r\nexport default defineComponent({\r\n setup () {\r\n return {\r\n state: concessionStore.state\r\n }\r\n },\r\n methods: {\r\n onToggle (value: boolean): void {\r\n concessionStore.action.toggle(value)\r\n }\r\n }\r\n})\r\n","import { render } from \"./concession.toggle.vue?vue&type=template&id=35995462&ts=true\"\nimport script from \"./concession.toggle.vue?vue&type=script&lang=ts\"\nexport * from \"./concession.toggle.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\nimport zoneRow from '@/map/views/components/drawers/right/zone/zone.row.vue'\r\nimport { defineComponent } from 'vue'\r\nimport ToggleConcession from '@/map/views/components/drawers/right/zone/concession.toggle.vue'\r\nimport zoneStore from '@/map/core/bll/zone/zone.store'\r\nimport zoneManager from '@/map/core/bll/zone/zone.manager'\r\nimport { groupZoneLayers } from '@/map/core/bll/zone/zone.group'\r\n\r\nexport default defineComponent({\r\n components: {\r\n ToggleConcession,\r\n zoneRow\r\n },\r\n setup () {\r\n return { state: zoneStore.state }\r\n },\r\n computed: {\r\n noCategory: zoneStore.getter.noCategory,\r\n atLeastOneCategory: zoneStore.getter.atLeastOneCategory\r\n },\r\n methods: {\r\n update (args: { code: string, value : boolean }) {\r\n zoneStore.action.update(args)\r\n zoneManager.toggleLayer(groupZoneLayers, args.code, args.value)\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./zone.panel.vue?vue&type=template&id=4a3e85c9&scoped=true&ts=true\"\nimport script from \"./zone.panel.vue?vue&type=script&lang=ts\"\nexport * from \"./zone.panel.vue?vue&type=script&lang=ts\"\n\nimport \"./zone.panel.vue?vue&type=style&index=0&id=4a3e85c9&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4a3e85c9\"]])\n\nexport default __exports__","\r\n\r\nimport { defineComponent } from 'vue'\r\nimport SearchBarPopover from '@/map/views/components/drawers/right/search/asset.typeAhead.vue'\r\nimport AdvancedFilterPopover from '@/map/views/components/drawers/right/category/category.panel.vue'\r\nimport MapLayersPopover from '@/map/views/components/drawers/right/switch/switchLayer.panel.vue'\r\nimport ZonePopover from '@/map/views/components/drawers/right/zone/zone.panel.vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n SearchBarPopover,\r\n MapLayersPopover,\r\n AdvancedFilterPopover,\r\n ZonePopover\r\n }\r\n})\r\n","import { render } from \"./menuRight.vue?vue&type=template&id=239a2fe8&ts=true\"\nimport script from \"./menuRight.vue?vue&type=script&lang=ts\"\nexport * from \"./menuRight.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-75fad096\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"absolute rounded-lg bg-gray-900 text-white\",\n style: {\"width\":\"300px\",\"top\":\"10px\",\"left\":\"10px\",\"z-index\":\"2\",\"box-shadow\":\"0 0 10px rgba(169,184,219,.4)\"}\n}\nconst _hoisted_2 = {\n key: 0,\n style: {\"height\":\"500px\"},\n class: \"flex flex-col items-center justify-center\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-spinner fa-spin fa-2xl\" }, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = {\n key: 1,\n style: {\"height\":\"500px\"},\n class: \"flex flex-col items-center justify-center\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-duotone fa-triangle-exclamation fa-2xl\" }, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"flex p-2.5\" }\nconst _hoisted_9 = { class: \"grow\" }\nconst _hoisted_10 = { class: \"text-xl font-bold mb-0\" }\nconst _hoisted_11 = { class: \"text-sm text-slate-300\" }\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"fa-stack\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa-solid text-slate-600 fa-circle fa-circle fa-stack-2x\" }),\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa-regular fa-circle-xmark fa-stack-1x dark:text-white\",\n style: {\"font-size\":\"1.2em\"}\n })\n], -1))\nconst _hoisted_13 = { class: \"mt-2 relative px-2.5\" }\nconst _hoisted_14 = { class: \"relative img-gradient\" }\nconst _hoisted_15 = [\"src\", \"alt\"]\nconst _hoisted_16 = {\n class: \"absolute\",\n style: {\"bottom\":\"5px\",\"right\":\"10px\"}\n}\nconst _hoisted_17 = {\n class: \"text-slate-300 font-bold text-sm\",\n style: {\"line-height\":\"2em\"}\n}\nconst _hoisted_18 = { class: \"flex justify-between p-2.5\" }\nconst _hoisted_19 = { class: \"flex flex-col items-center mx-2\" }\nconst _hoisted_20 = { class: \"text-text-prim text-sm font-bold mt-1.5\" }\nconst _hoisted_21 = { class: \"flex flex-col items-center\" }\nconst _hoisted_22 = { class: \"text-text-prim text-sm font-bold mt-1.5\" }\nconst _hoisted_23 = { class: \"flex flex-col items-center mr-2\" }\nconst _hoisted_24 = { class: \"text-text-prim text-sm font-bold\" }\nconst _hoisted_25 = { class: \"mt-2 py-2 px-2.5 border-b border-t border-gray-700 flex\" }\nconst _hoisted_26 = { class: \"grow\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-lg font-bold\" }, \"Last position received\", -1))\nconst _hoisted_28 = { class: \"text-sm text-slate-300\" }\nconst _hoisted_29 = { class: \"flex justify-center items-center\" }\nconst _hoisted_30 = [\"href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_wifi_icon = _resolveComponent(\"wifi-icon\")!\n const _component_SpeedometerIcon = _resolveComponent(\"SpeedometerIcon\")!\n const _component_Compass = _resolveComponent(\"Compass\")!\n const _component_VesselLengthIcon = _resolveComponent(\"VesselLengthIcon\")!\n const _component_wifiIcon = _resolveComponent(\"wifiIcon\")!\n const _component_slider_container = _resolveComponent(\"slider-container\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _hoisted_4))\n : (_ctx.error)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _hoisted_7))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"section\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, _toDisplayString(_ctx.asset.assetName), 1),\n _createElementVNode(\"div\", _hoisted_11, _toDisplayString(_ctx.asset.assetTypeName), 1)\n ]),\n _createVNode(_component_router_link, {\n to: { query: { ..._ctx.$route.query, panelDetail: undefined }},\n class: \"text-white\",\n style: {\"margin-right\":\"-5px\"}\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"section\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n src: _ctx.asset.assetImg,\n alt: _ctx.asset.assetName,\n class: \"rounded-lg\",\n style: {\"width\":\"280px\"}\n }, null, 8, _hoisted_15)\n ]),\n _createElementVNode(\"small\", _hoisted_16, [\n _createVNode(_component_wifi_icon, { class: \"h-4 w-4 fill-text-title\" }),\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.durationStr(_ctx.asset.lastPosition)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_SpeedometerIcon, { class: \"h-4 w-4 fill-text-title\" }),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.asset.speed) + \" kn\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createVNode(_component_Compass, { class: \"h-4 w-4 fill-text-title\" }),\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.asset.heading) + \"°\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_23, [\n _createVNode(_component_VesselLengthIcon, { class: \"w-12 fill-text-title\" }),\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.asset.assetLength) + \" m\", 1)\n ])\n ]),\n _createElementVNode(\"section\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _hoisted_27,\n _createElementVNode(\"div\", _hoisted_28, _toDisplayString(_ctx.formatDate(_ctx.asset.lastPosition)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createVNode(_component_wifiIcon, { class: \"h-4 w-4 fill-text-title\" })\n ])\n ]),\n (_ctx.kpiList.length > 0 && _ctx.asset.assetId)\n ? (_openBlock(), _createBlock(_component_slider_container, {\n key: 0,\n kpiList: _ctx.kpiList,\n assetId: _ctx.asset.assetId\n }, null, 8, [\"kpiList\", \"assetId\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"a\", {\n href: _ctx.asset.assetMsFleetUrl,\n class: \"btn-view-more btn-gradient-yellow text-gray-800\",\n title: \"view more\"\n }, \"View more\", 8, _hoisted_30)\n ], 64))\n ]))\n}","import { AssetDetailModel, GetAssetDetailModel } from '@/map/core/bll/asset/assetDetail.model'\r\n\r\nexport function AssetDetailMapper (asset: GetAssetDetailModel) : AssetDetailModel {\r\n return {\r\n assetId: asset.assetId, // panel detail - KPI\r\n assetCode: asset.asset.code, // use FleetMap\r\n assetName: asset.asset.name.toUpperCase(),\r\n categoryId: asset.asset.assetCategoryId, // panel detail - KPI\r\n assetImg: asset.asset.imageUrl || asset.asset.typeImageUrl || require('@/assets/img/noAsset.png'), // panel detail\r\n assetTypeName: asset.asset.typeName, // panel detail\r\n lastPosition: asset.asset.assetLastPosition.utcPositionTime, // panel detail\r\n heading: asset.asset.assetLastPosition.heading, // panel detail\r\n speed: asset.asset.assetLastPosition.speed, // panel detail\r\n assetLength: asset.mappedProperties.assetLengthOverall, // panel detail\r\n assetMsFleetUrl: asset.assetMsFleetUrl// panel detail\r\n }\r\n}\r\n","import { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { AssetDetailModel, GetAssetDetailModel } from '@/map/core/bll/asset/assetDetail.model'\r\nimport { AssetDetailMapper } from '@/map/core/bll/asset/assetDetailMapper'\r\nimport { GlobalStore } from '@/main'\r\n\r\nexport const AssetDetailManager = {\r\n find (code: string): Promise {\r\n GlobalStore.mapError = ''\r\n return new Promise((resolve, reject) => {\r\n // /api/Asset/details/:id\r\n ApiClient.list('map/Asset/details/' + code).then(result => {\r\n resolve(AssetDetailMapper(result))\r\n }).catch((err:string) => {\r\n GlobalStore.mapError = err\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"Capa_1\",\n \"enable-background\": \"new 0 0 512 512\",\n height: \"512\",\n viewBox: \"0 0 512 512\",\n width: \"512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m256 40c-141.484 0-256 114.497-256 256 0 62.371 22.704 122.471 63.928 169.227 3.797 4.306 9.261 6.773 15.002 6.773h354.14c5.741 0 11.205-2.467 15.001-6.773 41.225-46.756 63.929-106.856 63.929-169.227 0-141.483-114.497-256-256-256zm167.798 392h-335.596c-26.942-33.209-43.329-73.569-47.266-116h19.064c11.046 0 20-8.954 20-20s-8.954-20-20-20h-19.079c3.971-43.535 20.877-84.349 48.853-117.942l13.492 13.492c7.81 7.81 20.473 7.81 28.284-.001s7.811-20.474 0-28.284l-13.491-13.491c33.591-27.976 74.406-44.882 117.941-48.853v19.079c0 11.046 8.954 20 20 20s20-8.954 20-20v-19.079c103.361 9.428 185.652 91.733 195.079 195.079h-19.079c-11.046 0-20 8.954-20 20s8.954 20 20 20h19.064c-3.937 42.431-20.325 82.791-47.266 116zm-71.683-260.399-70.263 70.263c-7.833-3.756-16.601-5.864-25.852-5.864-33.084 0-60 26.916-60 60s26.916 60 60 60 60-26.916 60-60c0-9.251-2.108-18.019-5.863-25.852l70.262-70.262c7.811-7.811 7.811-20.475 0-28.285s-20.474-7.811-28.284 0zm-96.115 144.399c-11.028 0-20-8.972-20-20s8.972-20 20-20 20 8.972 20 20-8.972 20-20 20z\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'SpeedometerIcon'\r\n})\r\n","import { render } from \"./SpeedometerIcon.vue?vue&type=template&id=5fa58a6f&ts=true\"\nimport script from \"./SpeedometerIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./SpeedometerIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n version: \"1.1\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512 512\",\n style: {\"enable-background\":\"new 0 0 512 512\"},\n \"xml:space\": \"preserve\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 16)\nconst _hoisted_18 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_18))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'Compass'\r\n})\r\n","import { render } from \"./Compass.vue?vue&type=template&id=2bcce36f&ts=true\"\nimport script from \"./Compass.vue?vue&type=script&lang=ts\"\nexport * from \"./Compass.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { GetMapKPI, GetMapKPIs, MapKpiModel } from '@/map/core/bll/kpi/kpi.model'\r\n\r\nfunction previewsInfo (kpi: GetMapKPI): any {\r\n return kpi.previewType === 'Chart'\r\n\r\n ? kpi.chart\r\n\r\n : kpi.previewType === 'Kpi' ||\r\n\r\n kpi.previewType === 'KPI'\r\n\r\n ? kpi.kpi\r\n\r\n : kpi.previewType === 'ChartAndKPI'\r\n\r\n ? [kpi.chart, kpi.kpi]\r\n\r\n : kpi.previewType === 'Custom'\r\n\r\n ? kpi.customHtml\r\n\r\n : {}\r\n}\r\n\r\nexport function MapKpiMapper (kpiList: GetMapKPIs) : MapKpiModel[] {\r\n return kpiList.services.map(kpi => {\r\n return {\r\n id: kpi.id,\r\n title: kpi.title,\r\n subTitle: kpi.text,\r\n graphType: kpi.chart ? kpi.chart.type : null,\r\n previewType: kpi.previewType,\r\n previewInfos: previewsInfo(kpi),\r\n desc: kpi.text,\r\n kpiTitle: kpi.kpi && kpi.previewType.toLowerCase().indexOf('kpi') > -1 ? kpi.kpi.label : ''\r\n }\r\n })\r\n}\r\n","import { ApiClient } from '@/map/core/dal/apiClient'\r\nimport { GlobalStore } from '@/main'\r\nimport { GetMapKPIs, MapKpiModel } from '@/map/core/bll/kpi/kpi.model'\r\nimport { MapKpiMapper } from '@/map/core/bll/kpi/kpi.mapper'\r\n\r\nexport const KpiManager = {\r\n list (categoryId: number, assetId: number): Promise {\r\n GlobalStore.mapError = ''\r\n return new Promise((resolve, reject) => {\r\n ApiClient.list(`Fleet/categories/${categoryId}/assets/${assetId}`).then(result => {\r\n resolve(MapKpiMapper(result))\r\n }).catch((err:string) => {\r\n GlobalStore.mapError = err\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"p-2.5\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_viewport_slider = _resolveComponent(\"viewport-slider\")!\n const _component_paginate_slider = _resolveComponent(\"paginate-slider\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_viewport_slider, {\n sources: _ctx.kpiList,\n current: _ctx.position,\n direction: _ctx.direction,\n \"asset-id\": _ctx.assetId,\n \"asset-filter\": _ctx.assetFilter,\n periodFilter: _ctx.periodFilter\n }, null, 8, [\"sources\", \"current\", \"direction\", \"asset-id\", \"asset-filter\", \"periodFilter\"]),\n _createVNode(_component_paginate_slider, {\n count: _ctx.kpiList.length,\n current: _ctx.position,\n onMouseover: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onMouseOver())),\n onMouseleave: _cache[1] || (_cache[1] = ($event: any) => (_ctx.onMouseLeave())),\n onCurrent: _ctx.onClick\n }, null, 8, [\"count\", \"current\", \"onCurrent\"])\n ]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-267e6df6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"footer\", {\n id: \"footer\",\n class: \"flex justify-center py-2\",\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('mouseleave'))),\n onMouseenter: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('mouseover')))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.count, (n) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: n-1,\n onClick: ($event: any) => (_ctx.$emit('current', n-1)),\n class: _normalizeClass([\"btn-square\", {active : n-1 === _ctx.current}])\n }, null, 10, _hoisted_1))\n }), 128))\n ], 32))\n}","\r\nimport { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n props: ['count', 'current']\r\n})\r\n","import { render } from \"./slider-pagination.vue?vue&type=template&id=267e6df6&scoped=true&ts=true\"\nimport script from \"./slider-pagination.vue?vue&type=script&lang=ts\"\nexport * from \"./slider-pagination.vue?vue&type=script&lang=ts\"\n\nimport \"./slider-pagination.vue?vue&type=style&index=0&id=267e6df6&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-267e6df6\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, vShow as _vShow, withCtx as _withCtx, withDirectives as _withDirectives, Transition as _Transition, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bfb78804\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"viewport bg-bg-2 rounded-lg\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_services_card_preview = _resolveComponent(\"services-card-preview\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sources, (item, index) => {\n return (_openBlock(), _createBlock(_Transition, {\n key: index,\n name: `slide-${_ctx.direction}`\n }, {\n default: _withCtx(() => [\n _withDirectives(_createVNode(_component_router_link, {\n to: { name: 'analyticsDetail', params: { analyticsId: item.id }, query: { filter: encodeURI(JSON.stringify([{ id: _ctx.periodFilter, members: 'L1W'},{ id: _ctx.assetFilter, members: [_ctx.assetId] }]))}}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_services_card_preview, {\n id: item.id,\n title: item.title,\n \"preview-type\": item.previewType,\n description: item.desc,\n \"graph-type\": item.graphType,\n \"preview-infos\": item.previewInfos,\n \"kpi-title\": item.kpiTitle,\n \"asset-id\": _ctx.assetId,\n period: 'L1W'\n }, null, 8, [\"id\", \"title\", \"preview-type\", \"description\", \"graph-type\", \"preview-infos\", \"kpi-title\", \"asset-id\"])\n ]),\n _: 2\n }, 1032, [\"to\"]), [\n [_vShow, index === _ctx.current]\n ])\n ]),\n _: 2\n }, 1032, [\"name\"]))\n }), 128))\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { MapKpiModel } from '@/map/core/bll/kpi/kpi.model'\r\nimport ServicesCardPreview from '@/components/cards/ServicesCardPreview.vue'\r\nexport default defineComponent({\r\n components: {\r\n ServicesCardPreview\r\n },\r\n props: {\r\n current: Number,\r\n assetId: Number,\r\n assetFilter: String,\r\n periodFilter: String,\r\n direction: String,\r\n sources: {\r\n type: Array as PropType,\r\n require: true\r\n }\r\n }\r\n})\r\n","import { render } from \"./slider-viewport.vue?vue&type=template&id=bfb78804&scoped=true&ts=true\"\nimport script from \"./slider-viewport.vue?vue&type=script&lang=ts\"\nexport * from \"./slider-viewport.vue?vue&type=script&lang=ts\"\n\nimport \"./slider-viewport.vue?vue&type=style&index=0&id=bfb78804&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bfb78804\"]])\n\nexport default __exports__","\r\nimport { ref } from 'vue'\r\n\r\nconst position = ref(0)\r\nlet direction = 'left'\r\n\r\nlet isIntervalActive = true\r\nlet intervalId: number | null = null\r\nlet _sliderLength = 0\r\n\r\nconst _checkLimit = function () {\r\n if (position.value > _sliderLength - 2) {\r\n position.value = 0\r\n } else {\r\n position.value++\r\n }\r\n}\r\n\r\nconst updateDirection = function (newVal : number, oldVal : number):void {\r\n direction = newVal > oldVal ? 'left' : 'right'\r\n}\r\n\r\nconst initEvent = function (sliderLength : number):void {\r\n _sliderLength = sliderLength\r\n isIntervalActive = true\r\n intervalId = null\r\n position.value = 0\r\n nextEvent()\r\n}\r\n\r\nconst stopEvent = function (): void {\r\n if (intervalId) {\r\n window.clearInterval(intervalId)\r\n intervalId = null\r\n }\r\n}\r\n\r\nconst nextEvent = function (): void {\r\n if (!intervalId && isIntervalActive) {\r\n intervalId = window.setInterval(_checkLimit, 6000)\r\n }\r\n}\r\n\r\nconst removeEvent = function (): void {\r\n stopEvent()\r\n position.value = 0\r\n}\r\n\r\nconst changePosition = function (value : number): void {\r\n isIntervalActive = false\r\n position.value = value\r\n}\r\n\r\nexport default {\r\n position,\r\n direction,\r\n updateDirection,\r\n stopEvent,\r\n removeEvent,\r\n nextEvent,\r\n initEvent,\r\n changePosition\r\n}\r\n","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport PaginateSlider from '@/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-pagination.vue'\r\nimport ViewportSlider from '@/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-viewport.vue'\r\nimport { MapKpiModel } from '@/map/core/bll/kpi/kpi.model'\r\nimport store from '@/store'\r\nimport * as SettingsManager from '@/core/managers/settings.manager'\r\nimport sliderComposable from '@/map/views/components/drawers/left/vesselDetail/kpi/slider/slider.composable'\r\n\r\nexport default defineComponent({\r\n components: {\r\n PaginateSlider,\r\n ViewportSlider\r\n },\r\n props: {\r\n assetId: Number,\r\n kpiList: {\r\n type: Array as PropType,\r\n require: true\r\n }\r\n },\r\n watch: {\r\n position: {\r\n handler (newVal, oldVal) {\r\n sliderComposable.updateDirection(newVal, oldVal)\r\n }\r\n }\r\n },\r\n setup () {\r\n return {\r\n position: sliderComposable.position,\r\n direction: sliderComposable.direction\r\n }\r\n },\r\n created () {\r\n if (!store.state.filtersSettings) {\r\n SettingsManager.Manager.filtersSettings()\r\n }\r\n },\r\n mounted () {\r\n sliderComposable.initEvent((this.kpiList as MapKpiModel[]).length)\r\n },\r\n unmounted () {\r\n sliderComposable.removeEvent()\r\n },\r\n methods: {\r\n onMouseOver () {\r\n sliderComposable.stopEvent()\r\n },\r\n onMouseLeave () {\r\n sliderComposable.nextEvent()\r\n },\r\n onClick (value : number) {\r\n sliderComposable.changePosition(value)\r\n }\r\n },\r\n computed: {\r\n slidesCount () {\r\n return (this.kpiList as MapKpiModel[]).length\r\n },\r\n assetFilter () {\r\n return store.state.filtersSettings &&\r\n store.state.filtersSettings.id_AssetFilter\r\n ? store.state.filtersSettings.id_AssetFilter\r\n : ''\r\n },\r\n periodFilter () {\r\n return store.state.filtersSettings &&\r\n store.state.filtersSettings.id_PeriodFilter\r\n ? store.state.filtersSettings.id_PeriodFilter\r\n : ''\r\n }\r\n\r\n }\r\n\r\n})\r\n","import { render } from \"./slider-container.vue?vue&type=template&id=75ebb753&ts=true\"\nimport script from \"./slider-container.vue?vue&type=script&lang=ts\"\nexport * from \"./slider-container.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { DateTime } from 'luxon'\r\nimport { defineComponent } from 'vue'\r\nimport { AssetDetailModel } from '@/map/core/bll/asset/assetDetail.model'\r\nimport { AssetDetailManager } from '@/map/core/bll/asset/assetDetail.manager'\r\n\r\nimport SpeedometerIcon from '@/components/icons/SpeedometerIcon.vue'\r\nimport Compass from '@/components/icons/Compass.vue'\r\nimport wifiIcon from '@/components/icons/WifiIcon.vue'\r\nimport VesselLengthIcon from '@/components/icons/VesselLengthIcon.vue'\r\n\r\nimport { duration } from '@/map/core/utilities'\r\nimport { KpiManager } from '@/map/core/bll/kpi/kpi.manager'\r\n\r\nimport SliderContainer from '@/map/views/components/drawers/left/vesselDetail/kpi/slider/slider-container.vue'\r\n\r\nimport { MapKpiModel } from '@/map/core/bll/kpi/kpi.model'\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpeedometerIcon,\r\n Compass,\r\n VesselLengthIcon,\r\n wifiIcon,\r\n SliderContainer\r\n },\r\n data () {\r\n return { loading: false, error: false, asset: {} as AssetDetailModel, kpiList: [] as MapKpiModel[] }\r\n },\r\n\r\n watch: {\r\n '$route.query.panelDetail': {\r\n immediate: true,\r\n handler (newValue: string) {\r\n if (newValue && newValue !== '') {\r\n this.loading = true\r\n this.error = false\r\n\r\n AssetDetailManager.find(newValue).then(result => {\r\n this.asset = result\r\n KpiManager.list(this.asset.categoryId, this.asset.assetId).then(result => {\r\n this.kpiList = result\r\n }).catch(() => {\r\n this.error = true\r\n })\r\n .finally(() => {\r\n this.loading = false\r\n })\r\n }).catch(() => {\r\n this.error = true\r\n this.loading = false\r\n })\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n durationStr (lastPosition: string): string {\r\n return duration(lastPosition)\r\n },\r\n formatDate (date: string):string {\r\n return DateTime.fromISO(date, { zone: 'UTC' }).toFormat('LLL dd, yyyy, HH:mm ') + '(UTC)'\r\n }\r\n }\r\n\r\n})\r\n\r\n","import { render } from \"./detail.card.vue?vue&type=template&id=75fad096&scoped=true&ts=true\"\nimport script from \"./detail.card.vue?vue&type=script&lang=ts\"\nexport * from \"./detail.card.vue?vue&type=script&lang=ts\"\n\nimport \"./detail.card.vue?vue&type=style&index=0&id=75fad096&scoped=true&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-75fad096\"]])\n\nexport default __exports__","import { Map, tileLayer } from 'leaflet'\r\nimport { computed, onUnmounted, watch } from 'vue'\r\nimport tileStore from '@/map/core/bll/map/tile.store'\r\n\r\nconst tile = tileLayer(tileStore.state.url) // no need immediate on watcher\r\n\r\nexport default {\r\n mounted: function (map: Map): void {\r\n map.addLayer(tile)\r\n const subject = computed(function ():string {\r\n return tileStore.state.url\r\n })\r\n\r\n watch(subject, function (value:string) {\r\n tile.setUrl(value)\r\n })\r\n onUnmounted(() => tile.remove())\r\n }\r\n}\r\n","import { Map } from 'leaflet'\r\nimport { onUnmounted } from 'vue'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport { groupAssetLayer } from '@/map/core/bll/category/category.group'\r\n\r\nexport default {\r\n\r\n mounted: function (map: Map): void {\r\n map.addLayer(groupAssetLayer)\r\n\r\n if (!categoryStore.state.initialized) {\r\n categoryStore.action.fetch()\r\n }\r\n\r\n onUnmounted(() => {\r\n groupAssetLayer.remove()\r\n })\r\n }\r\n\r\n}\r\n","import { computed, onUnmounted, watch } from 'vue'\r\nimport { circleMarker, layerGroup, Map } from 'leaflet'\r\nimport { Router } from 'vue-router'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport { AssetModel } from '@/map/core/bll/category/categoryModel'\r\n\r\nconst group = layerGroup([])\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n map.addLayer(group)\r\n\r\n const addCircle = function (value:string) {\r\n const asset = categoryStore.state.list.find(a => a.assetCode === value) as AssetModel\r\n group.clearLayers()\r\n group.addLayer(circleMarker(asset.latLng, {\r\n className: 'stroke-blue-500',\r\n radius: 20,\r\n fillColor: 'transparent',\r\n weight: 2,\r\n interactive: false\r\n }))\r\n }\r\n const subject = computed(function ():string {\r\n return categoryStore.state.initialized && router.currentRoute.value.query.assetCircle ? router.currentRoute.value.query.assetCircle as string : '-1'\r\n })\r\n\r\n if (categoryStore.state.initialized && !!router.currentRoute.value.query.assetCircle) {\r\n addCircle(router.currentRoute.value.query.assetCircle as string)\r\n } else {\r\n watch(subject, function (value:string) {\r\n if (value !== '-1') {\r\n addCircle(value)\r\n }\r\n }, {\r\n flush: 'post'\r\n })\r\n }\r\n\r\n onUnmounted(() => {\r\n group.remove()\r\n })\r\n }\r\n}\r\n","import { computed, watch } from 'vue'\r\nimport { latLngBounds, Map, point } from 'leaflet'\r\nimport categoryStore from '@/map/core/bll/category/category.store'\r\nimport zoneStore from '@/map/core/bll/zone/zone.store'\r\nimport { Router } from 'vue-router'\r\n\r\nexport default {\r\n mounted: function (map: Map, router: Router): void {\r\n const flyBounds = function (): void {\r\n map.flyToBounds(latLngBounds(categoryStore.getter.activeBound().concat(zoneStore.getter.activeBound())), { maxZoom: 12, padding: point(5, 5) })\r\n }\r\n if (zoneStore.state.initialized && categoryStore.state.initialized && !!router.currentRoute.value.query.flyToBounds) {\r\n flyBounds()\r\n } else {\r\n const subject = computed(function ():boolean {\r\n return zoneStore.state.initialized && categoryStore.state.initialized && !!router.currentRoute.value.query.flyToBounds\r\n })\r\n\r\n watch(subject, function (value : boolean) {\r\n if (value && !router.currentRoute.value.query.flyTo) {\r\n flyBounds()\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","\r\nimport { defineComponent } from 'vue'\r\nimport MenuRight from '@/map/views/components/menuRight.vue'\r\nimport vesselDetail from '@/map/views/components/drawers/left/vesselDetail/detail.card.vue'\r\nimport toaster from '@/map/views/components/misc/toaster.vue'\r\nimport loader from '@/map/views/components/misc/loader.vue'\r\nimport mapMaker from '@/map/core/service/map.maker'\r\nimport mapEventDelegation from '@/map/core/service/map.eventDelegation'\r\nimport tilesComposable from '@/map/views/composables/tiles.composable'\r\nimport fetchConcessionComposable from '@/map/views/composables/fetchConcession.composable'\r\nimport fetchZoneComposable from '@/map/views/composables/fetchZone.composable'\r\nimport fetchAssetComposable from '@/map/views/composables/fetchAsset.composable'\r\nimport selectedCircleComposable from '@/map/views/composables/selectedCircle.composable'\r\nimport selectedBlueComposable from '@/map/views/composables/selectedSetBlue.composable'\r\nimport flyBoundComposable from '@/map/views/composables/flyBound.composable'\r\nimport fetchStepComposable from '@/map/views/composables/fetchStep.composable'\r\nimport popoverAssetComposable from '@/map/views/composables/popoverAsset.composable'\r\nimport popoverStepComposable from '@/map/views/composables/popoverStep.composable'\r\nimport popoverStaticComposable from '@/map/views/composables/popoverStatic.composable'\r\nimport flyToComposable from '@/map/views/composables/flyTo.composable'\r\n\r\nexport default defineComponent({\r\n inject: ['GStore'],\r\n components: {\r\n MenuRight,\r\n vesselDetail,\r\n toaster,\r\n loader\r\n },\r\n data () {\r\n return { mapInitialized: false }\r\n },\r\n setup () {\r\n return { mapId: 'mapPage1' }\r\n },\r\n mounted () {\r\n const map = mapMaker.init(this.mapId)\r\n mapEventDelegation.mounted((map.getPane('markerPane') as HTMLElement), this.$router)\r\n this.mapInitialized = true\r\n tilesComposable.mounted(map)\r\n flyBoundComposable.mounted(map, this.$router)\r\n flyToComposable.mounted(map, this.$router)\r\n fetchConcessionComposable.mounted(map)\r\n fetchZoneComposable.mounted(map)\r\n fetchAssetComposable.mounted(map)\r\n fetchStepComposable.mounted(map, this.$router)\r\n selectedCircleComposable.mounted(map, this.$router)\r\n selectedBlueComposable.mounted(map, this.$router)\r\n popoverAssetComposable.mounted(map, this.$router)\r\n popoverStepComposable.mounted(map, this.$router)\r\n popoverStaticComposable.mounted(map, this.$router)\r\n }\r\n})\r\n","import { render } from \"./tabMap.vue?vue&type=template&id=bdf65d3c&ts=true\"\nimport script from \"./tabMap.vue?vue&type=script&lang=ts\"\nexport * from \"./tabMap.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Tools from '@/core/services/tools'\r\nimport Layout1 from '@/views/layouts/layout1.vue'\r\nimport AnalyticsDetail from '@/views/pages/Analytics.detail.vue'\r\nimport AnalyticsList from '@/views/pages/Analytics.list.vue'\r\nimport Dashboard from '@/views/pages/Dashboard.vue'\r\nimport Dashboards from '@/views/pages/Dashboards.list.vue'\r\nimport NotFound from '@/views/pages/errors/NotFound.vue'\r\nimport Fleet from '@/views/pages/Fleet.vue'\r\nimport FleetAsset from '@/views/pages/FleetAsset.vue'\r\nimport Home from '@/views/pages/Home.vue'\r\nimport Profile from '@/views/pages/Profile.vue'\r\nimport ReportsList from '@/views/pages/Reports.list.vue'\r\nimport TabMap from '@/map/views/tabMap.vue'\r\nimport ReportManager from '@/core/managers/report.manager'\r\nimport { _RouteLocationBase, createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\r\n\r\nconst routes: Array = [\r\n { path: '/', redirect: 'home' },\r\n {\r\n path: '/layout-1',\r\n component: Layout1,\r\n children: [\r\n { path: '/home', name: 'home', component: Home },\r\n { path: '/analytics', name: 'analytics', component: AnalyticsList },\r\n { path: '/map', name: 'map', component: TabMap },\r\n { path: '/analytics/:analyticsId/:filter?/:member?', name: 'analyticsDetail', component: AnalyticsDetail, meta: { detail: true } },\r\n { path: '/profile', name: 'profile', component: Profile },\r\n { path: '/dashboard/:dashboardId', name: 'dashboard', component: Dashboard, props: true },\r\n { path: '/dashboards', name: 'allDashboards', component: Dashboards },\r\n { path: '/reports', name: 'allReports', component: ReportsList },\r\n { path: '/fleet/:categoryId?', name: 'fleet', component: Fleet },\r\n { path: '/fleet/category/:categoryId/asset/:assetId', name: 'assetDetail', component: FleetAsset },\r\n { path: '/help-center', name: 'helpCenter', component: Home }\r\n ]\r\n },\r\n { path: '/server-error', name: 'server error', component: NotFound, props: { type: 'serverError' } },\r\n { path: '/unauthorized', name: 'unauthorized', component: NotFound, props: { type: 'unauthorized' } },\r\n { path: '/:pathMatch(.*)*', name: 'not found', component: NotFound }\r\n]\r\n\r\nexport const router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes\r\n})\r\n\r\nexport const PAGE_TITLE: Record = {\r\n home: 'Home',\r\n analytics: 'Analytics',\r\n analyticsDetail: 'Analytics Detail',\r\n dashboard: 'Dashboard',\r\n reports: 'Reports',\r\n allReports: 'All Reports',\r\n allDashboards: 'All Dashboards',\r\n fleet: 'Fleet',\r\n helpCenter: 'Help Center',\r\n assetDetail: 'Asset Detail',\r\n profile: 'Profile',\r\n unauthorized: 'Unauthorized',\r\n map: 'Map'\r\n}\r\n\r\nexport default router\r\nrouter.beforeEach(async (to: _RouteLocationBase) => {\r\n if (to.name === 'allReports' && to.query && to.query.dl) {\r\n await ReportManager.DownloadInstance('', '', to.query.dl as string)\r\n }\r\n})\r\nrouter.afterEach((toRoute: _RouteLocationBase) => {\r\n Tools.updatePageName(PAGE_TITLE[toRoute.name as string])\r\n})\r\n","import axios, { AxiosError } from 'axios'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport router from '@/router'\r\n\r\nexport const apiClient = axios.create({\r\n baseURL: process.env.VUE_APP_URL,\r\n withCredentials: false,\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n})\r\n\r\nexport const dlClient = axios.create({\r\n baseURL: process.env.VUE_APP_URL,\r\n withCredentials: false,\r\n headers: {\r\n Accept: '*/*',\r\n 'Content-Type': 'application/octet-stream'\r\n }\r\n})\r\n\r\nexport function AddHttpInterceptor (tokenService: ILoginService, sessionId: string): any {\r\n apiClient.interceptors.request.use(async function (option: any) {\r\n if (option.headers && tokenService !== undefined) {\r\n const tokenResponse = await tokenService.GetToken()\r\n option.headers.Authorization = `Bearer ${tokenResponse.accessToken}`\r\n option.headers['x-sessionId'] = sessionId\r\n }\r\n return option\r\n })\r\n\r\n dlClient.interceptors.request.use(async function (option: any) {\r\n if (option.headers && tokenService !== undefined) {\r\n const tokenResponse = await tokenService.GetToken()\r\n option.headers.Authorization = `Bearer ${tokenResponse.accessToken}`\r\n option.headers['x-sessionId'] = sessionId\r\n }\r\n return option\r\n })\r\n\r\n // Add a response interceptor\r\n apiClient.interceptors.response.use(function (response: any) {\r\n return response\r\n }, (error: AxiosError) => {\r\n if (error.response && error.response.status === 403) {\r\n router.push('/unauthorized')\r\n }\r\n\r\n return Promise.reject(error)\r\n })\r\n}\r\n","import { apiClient } from '@/core/axios.plugin'\r\nimport { AxiosInstance, AxiosPromise } from 'axios'\r\n// import { Settings } from 'luxon'\r\n\r\ntype EmptyObject = Record\r\n\r\ntype Method =\r\n | 'get' | 'GET'\r\n | 'delete' | 'DELETE'\r\n | 'head' | 'HEAD'\r\n | 'options' | 'OPTIONS'\r\n | 'post' | 'POST'\r\n | 'put' | 'PUT'\r\n | 'patch' | 'PATCH'\r\n | 'purge' | 'PURGE'\r\n | 'link' | 'LINK'\r\n | 'unlink' | 'UNLINK';\r\n\r\ninterface Error{\r\n field: string;\r\n values: string[];\r\n}\r\n\r\nclass Errors {\r\n values: Error[] = []\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n constructor (code:string, raw:any) {\r\n if (code !== '500') {\r\n for (const key in raw) {\r\n this.values.push({ field: key, values: raw[key] })\r\n }\r\n } else {\r\n this.values.push({ field: 'technical error', values: raw.split(/\\r?\\n/).splice(0, 2) })\r\n }\r\n }\r\n\r\n reset (): void {\r\n this.values = []\r\n }\r\n}\r\n\r\nexport class ApiResult {\r\n isError = false\r\n data?: T\r\n Message = ''\r\n rawError: EmptyObject | string = {}\r\n errors:Errors = new Errors('400', this.rawError)\r\n code?: string\r\n status?: number\r\n}\r\n\r\nexport class RequestHandler {\r\n private get httpRequest (): AxiosInstance {\r\n return apiClient\r\n }\r\n\r\n request (method: Method, url: string, data?: unknown, options?: any): Promise> {\r\n const res = new ApiResult()\r\n return this.httpRequest({\r\n method,\r\n url,\r\n data,\r\n ...options\r\n })\r\n .then((response) => {\r\n res.isError = false\r\n res.data = response.data\r\n res.Message = 'OK'\r\n res.status = 200\r\n return res\r\n })\r\n .catch(err => {\r\n res.isError = true\r\n res.Message = err.message\r\n res.rawError = err.response ? err.response.data : ''\r\n res.errors = new Errors(err.response ? err.response.status : '', res.rawError)\r\n res.code = err.code\r\n res.status = err.response.status\r\n return res\r\n })\r\n }\r\n\r\n emptyResponseRequest (method: Method, url: string) : AxiosPromise {\r\n return this.httpRequest({ method, url })\r\n }\r\n\r\n download (url: string): Promise> {\r\n const res = new ApiResult()\r\n\r\n return apiClient.get(url, { responseType: 'blob' })\r\n .then((response) => {\r\n res.isError = false\r\n res.data = response.data\r\n res.Message = 'OK'\r\n res.status = 200\r\n return res\r\n })\r\n .catch(err => {\r\n res.isError = true\r\n res.Message = err.message\r\n res.rawError = err.response ? err.response.data : ''\r\n res.errors = new Errors(err.response ? err.response.status : '', res.rawError)\r\n res.code = err.code\r\n res.status = err.response.status\r\n return res\r\n })\r\n }\r\n\r\n postFormData (url: string, data: unknown): Promise> {\r\n const res = new ApiResult()\r\n return this.httpRequest.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'form-data'\r\n }\r\n })\r\n .then((response) => {\r\n res.isError = false\r\n res.data = response.data\r\n res.Message = 'OK'\r\n res.status = 200\r\n return res\r\n })\r\n .catch(err => {\r\n res.isError = true\r\n res.Message = err.message\r\n res.rawError = err.response ? err.response.data : ''\r\n res.errors = new Errors(err.response ? err.response.status : '', res.rawError)\r\n res.code = err.code\r\n res.status = err.response.status\r\n return res\r\n })\r\n }\r\n}\r\n\r\nexport const http = new RequestHandler()\r\n","import { ApiResult, http } from '@/core/services/request.service'\r\nimport { FiltersSettings, FleetSettings, PublicSettings } from '@/core/model/settings.model'\r\nimport store from '@/store'\r\n\r\nexport const Manager = {\r\n getPublicSettings (): Promise> {\r\n return http.request('get', 'Settings')\r\n .then((rep: ApiResult) => {\r\n return rep\r\n })\r\n .catch(err => {\r\n return err\r\n })\r\n },\r\n fleetSettings (): Promise> {\r\n const fleetSettings = {\r\n defaultImage_Url: 'Avatar-Default-NoVessel',\r\n defaultIcon_Url: 'unknown-vessel',\r\n assetTypeSettings: [\r\n {\r\n code: 'FSIV',\r\n name: 'FSIV',\r\n icon_Url: 'high-speed-craft',\r\n image_Url: 'Avatar-Default-FSIV'\r\n },\r\n {\r\n code: 'PSV',\r\n name: 'PSV',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-PSV'\r\n },\r\n {\r\n code: 'PLSV',\r\n name: 'PLSV',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'TUG',\r\n name: 'TUG',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-TUG'\r\n },\r\n {\r\n code: 'AHTS',\r\n name: 'AHTS',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-AHTS'\r\n },\r\n {\r\n code: 'AHT',\r\n name: 'AHT',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'CREW',\r\n name: 'CREW',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-CREWBOAT'\r\n },\r\n {\r\n code: 'W2W',\r\n name: 'W2W',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'Cruise Ship',\r\n name: 'Cruise Ship',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'Solas Yacht',\r\n name: 'Solas Yacht',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'Large CrewBoat',\r\n name: 'Large CrewBoat',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-CREWBOAT'\r\n },\r\n {\r\n code: 'Crew Supply Vessel',\r\n name: 'Crew Supply Vessel',\r\n icon_Url: 'passenger-ship',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'IMR',\r\n name: 'IMR',\r\n icon_Url: 'tanker',\r\n image_Url: 'Avatar-Default-TANKER'\r\n },\r\n {\r\n code: 'Barge',\r\n name: 'Barge',\r\n icon_Url: 'cargo',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n code: 'ERRV',\r\n name: 'ERRV',\r\n icon_Url: 'cargo',\r\n image_Url: 'Avatar-Default-NoVessel'\r\n },\r\n {\r\n name: 'SSRV',\r\n code: 'SSRV',\r\n icon_Url: 'unknown-vessel',\r\n image_Url: 'Avatar-Default-SSRV'\r\n },\r\n {\r\n name: 'ETV',\r\n code: 'ETV',\r\n icon_Url: 'tug',\r\n image_Url: 'Avatar-Default-ETV'\r\n },\r\n {\r\n name: 'MPSV',\r\n code: 'MPSV',\r\n icon_Url: 'cargo',\r\n image_Url: 'Avatar-Default-MPSV'\r\n }\r\n ]\r\n }\r\n return http.request('get', 'Settings/fleets')\r\n .then((rep: ApiResult) => {\r\n const settings =\r\n rep.data && rep.data.assetTypeSettings.length ? rep.data.assetTypeSettings : fleetSettings\r\n store.dispatch('setFleetSettings', settings)\r\n })\r\n .catch(err => err)\r\n },\r\n filtersSettings (): Promise> {\r\n return http.request('get', 'Settings/filters')\r\n .then((rep: ApiResult) => {\r\n const settings = rep.data\r\n store.dispatch('setFiltersSettings', settings)\r\n })\r\n .catch(err => err)\r\n }\r\n}\r\n","import { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport { AuthenticationSettings } from '@/core/model/settings.model'\r\nimport { AccountInfo, AuthenticationResult, PublicClientApplication, RedirectRequest } from '@azure/msal-browser'\r\n\r\nexport class LoginService implements ILoginService {\r\n private readonly _additionalScope: Array\r\n private connectedUser: AccountInfo|undefined\r\n public get AccountInfo (): AccountInfo {\r\n return this.connectedUser ?? {} as AccountInfo\r\n }\r\n\r\n private readonly msalInstance: PublicClientApplication\r\n\r\n constructor (authSettings: AuthenticationSettings, metadata?: string) {\r\n this.msalInstance = this.GenerateMsalInstance(authSettings, metadata)\r\n this._additionalScope = authSettings.scopes ?? []\r\n }\r\n\r\n private GenerateMsalInstance (authSettings: AuthenticationSettings, metadata?: string) : PublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: authSettings.clientId,\r\n authority: metadata === undefined ? authSettings.authority : 'https://login.microsoftonline.com/common/',\r\n authorityMetadata: metadata,\r\n redirectUri: '/signin-oidc'\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage'\r\n }\r\n })\r\n }\r\n\r\n public SignIn () : Promise {\r\n return this.msalInstance.loginRedirect({ ...this.loginRequest() } as RedirectRequest)\r\n }\r\n\r\n private async handleRedirectPromise (): Promise {\r\n return await this.msalInstance.handleRedirectPromise()\r\n }\r\n\r\n public async HandleUserAlreadyLogin () : Promise {\r\n const response:AuthenticationResult | null = await this.handleRedirectPromise()\r\n this.connectedUser = response ? response.account as AccountInfo : this.msalInstance.getAllAccounts()[0]\r\n this.msalInstance.setActiveAccount(this.connectedUser)\r\n }\r\n\r\n public SignOut () : Promise {\r\n if (this.connectedUser === undefined) throw new Error('No connected user.')\r\n const logoutRequest = {\r\n account: this.msalInstance.getAccountByHomeId(this.connectedUser.homeAccountId)\r\n }\r\n return this.msalInstance.logoutRedirect(logoutRequest)\r\n }\r\n\r\n public async IsConnected () : Promise {\r\n if (this.connectedUser === undefined || this.connectedUser === null) {\r\n return false\r\n }\r\n const token = await this.callAuthority(false)\r\n return token.expiresOn !== null && token.expiresOn > new Date()\r\n }\r\n\r\n public async IsInternalUser (): Promise {\r\n if (!await this.IsConnected()) return false\r\n if (this.AccountInfo.idTokenClaims === undefined) return false\r\n return this.AccountInfo.idTokenClaims.extension_ClientDepartmentCode === 'OPSL'\r\n }\r\n\r\n async GetToken () : Promise {\r\n let token = await this.callAuthority(false)\r\n const needRefresh: boolean = token === null || token.accessToken === null || this.isTokenExpired(token.accessToken)\r\n if (needRefresh) {\r\n token = await this.callAuthority(true)\r\n }\r\n if (token === null) console.error('Could not get access token from authority.')\r\n // const encrypt = CryptoJS.AES.encrypt(token.accessToken, 'Passphrase')\r\n // document.cookie = `accessToken = ${encrypt};path=/`\r\n return token\r\n }\r\n\r\n private isTokenExpired (accessToken: string): boolean {\r\n try {\r\n const splitedToken = accessToken.split('.')[1]\r\n const parsedToken = JSON.parse(atob(splitedToken))\r\n // Transform exp milisecond into date\r\n const dToken = new Date(parsedToken.exp * 1000)\r\n // Get date now + 5 minutes\r\n const dNow = new Date(Date.now() + (30 * 1000))\r\n // Refresh the token if the token expire in 5 minute or less\r\n return dToken < dNow\r\n } catch {\r\n return true\r\n }\r\n }\r\n\r\n private loginRequest () {\r\n return {\r\n scopes: ['openid', 'profile', ...this._additionalScope],\r\n account: this.msalInstance.getAllAccounts()[0] ?? undefined\r\n }\r\n }\r\n\r\n private async callAuthority (forceRefresh: boolean) : Promise {\r\n const tokenInfos = {\r\n ...this.loginRequest(),\r\n forceRefresh\r\n }\r\n return this.msalInstance.acquireTokenSilent(tokenInfos).then((response) => {\r\n return response\r\n }\r\n ).catch(err => {\r\n // this.msalInstance.acquireTokenRedirect(tokenInfos)\r\n return err\r\n })\r\n }\r\n}\r\n","import { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport { LoginService } from '@/core/services/authentication/login.service'\r\nimport { AuthenticationSettings } from '@/core/model/settings.model'\r\nimport axios from 'axios'\r\n\r\nclass LoginServiceProvider {\r\n private _instance : LoginService | null\r\n // private _authSettings : AuthenticationSettings|null|undefined\r\n constructor () {\r\n this._instance = null\r\n }\r\n\r\n private async _getMetadata (url: string) : Promise {\r\n const metadataResponce = await axios.get(url)\r\n const metadata = JSON.stringify(metadataResponce.data)\r\n return metadata\r\n }\r\n\r\n private async _createInstance (authSettings: AuthenticationSettings) : Promise {\r\n if (authSettings === null || authSettings === undefined) {\r\n return\r\n }\r\n let metadata: string|undefined\r\n if (authSettings.metadataAddress !== undefined) {\r\n metadata = await this._getMetadata(authSettings.metadataAddress)\r\n }\r\n this._instance = new LoginService(authSettings, metadata)\r\n }\r\n\r\n async GetInstance (authSettings: AuthenticationSettings) : Promise {\r\n if (this._instance == null) { await this._createInstance(authSettings) }\r\n return this._instance as LoginService\r\n }\r\n}\r\n\r\nexport const loginServiceProvider = new LoginServiceProvider()\r\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Teleport as _Teleport, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"hidden\" }\nconst _hoisted_2 = { class: \"h-full w-full\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"div\", {\n id: \"end-of-doc\",\n style: {\"z-index\":\"2\"}\n}, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_fleet_popover = _resolveComponent(\"fleet-popover\")!\n const _component_toaster = _resolveComponent(\"toaster\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.isConnected()), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_router_view),\n (_openBlock(), _createBlock(_Teleport, { to: \"#end-of-body\" }, [\n (_ctx.$route.query.popover ==='subscription_popover' )\n ? (_openBlock(), _createBlock(_component_fleet_popover, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ])),\n _hoisted_3,\n _createVNode(_component_toaster)\n ])\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-08f2cae8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"border text-slate-200 custom-scrollbar bg-bg-2 border-grey-600 shadow-sm invisible rounded-b-md\",\n id: `element_subscription_popover`,\n style: {\"position\":\"absolute\",\"width\":\"220px\",\"max-height\":\"300px\",\"overflow-x\":\"hidden\",\"overflow-y\":\"auto\",\"transform\":\"translateY(-2px)\"}\n}\nconst _hoisted_2 = { class: \"p-2\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"h-[150px] flex items-center justify-center\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-spinner fa-spin fa-2x\" }, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = {\n key: 1,\n class: \"h-[150px] flex items-center justify-center\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-center\" }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-box-open fa-2x\" }),\n /*#__PURE__*/_createElementVNode(\"small\", { class: \"block\" }, \"List empty...\")\n], -1))\nconst _hoisted_8 = [\n _hoisted_7\n]\nconst _hoisted_9 = {\n key: 0,\n class: \"pl-2\"\n}\nconst _hoisted_10 = {\n key: 2,\n class: \"pl-4\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_attribute_row = _resolveComponent(\"attribute-row\")!\n const _component_asset_row = _resolveComponent(\"asset-row\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_router_link, {\n to: { query : { undefined }},\n style: {\"position\":\"fixed\",\"background\":\"transparent\",\"inset\":\"0\"}\n }),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n : (_ctx.items.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _hoisted_8))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 2 }, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n (item.assets && item.assets.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, _toDisplayString(_ctx.getLabel(_ctx.labels,item.attributeId).name), 1))\n : (_openBlock(), _createBlock(_component_attribute_row, {\n key: 1,\n labels: _ctx.labels,\n attribute: item\n }, null, 8, [\"labels\", \"attribute\"])),\n (item.assets)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.assets, (asset, index) => {\n return (_openBlock(), _createBlock(_component_asset_row, {\n key: index,\n labels: _ctx.labels,\n asset: asset,\n attributeId: item.attributeId\n }, null, 8, [\"labels\", \"asset\", \"attributeId\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ])\n ], 64))\n}","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"block cursor-pointer my-2\" }\nconst _hoisted_2 = { class: \"flex items-center text-gray-200\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"fa fa-spin fa-spinner lr-2\"\n}\nconst _hoisted_4 = { class: \"flex flex-col ml-2\" }\nconst _hoisted_5 = {\n class: \"text-md text-ellipsis overflow-hidden inline-block whitespace-nowrap\",\n style: {\"width\":\"150px\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n onInput: _cache[0] || (_cache[0] = event => _ctx.onChange(_ctx.asset,!event.target.checked)),\n style: {\"display\":\"none\"}\n }, null, 32),\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.asset.pending)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_3))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass([\"fa-lg\", {' fa-solid fa-square-check' : _ctx.asset.checked, 'fa-regular text-slate-200 fa-square' : !_ctx.asset.checked}])\n }, null, 2)),\n _createElementVNode(\"span\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.asset.assetName), 1)\n ])\n ])\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { IdNameModel, Report2Manager, ReportSubscriptionRowAssetModel } from '@/map/core/bll/report/reportManager'\r\n\r\nexport default defineComponent({\r\n props: {\r\n asset: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n attributeId: {\r\n type: Number,\r\n required: true\r\n },\r\n labels: {\r\n type: Array as PropType,\r\n required: true\r\n }\r\n },\r\n methods: {\r\n getLabel (labels: IdNameModel[], id : number) {\r\n return labels.find(item => item.id === id) || { id: -1, name: 'not found' }\r\n },\r\n onChange (item:ReportSubscriptionRowAssetModel, checked : boolean) {\r\n item.pending = true\r\n const reportId = parseInt(this.$route.query.id as string)\r\n const params = `${reportId}/${this.attributeId}/${item.assetId}`\r\n Report2Manager.updateSubscription(params, { checked: !checked }).then(() => {\r\n item.checked = !checked\r\n }).finally(() => {\r\n item.pending = false\r\n })\r\n }\r\n }\r\n})\r\n","import { render } from \"./assetRowPopover.vue?vue&type=template&id=334e2612&ts=true\"\nimport script from \"./assetRowPopover.vue?vue&type=script&lang=ts\"\nexport * from \"./assetRowPopover.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"block cursor-pointer my-2\" }\nconst _hoisted_2 = { class: \"flex items-center text-gray-200\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"fa fa-spin fa-spinner lr-2\"\n}\nconst _hoisted_4 = { class: \"flex flex-col ml-2\" }\nconst _hoisted_5 = {\n class: \"text-md text-white text-ellipsis overflow-hidden inline-block whitespace-nowrap\",\n style: {\"width\":\"150px\"}\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n onInput: _cache[0] || (_cache[0] = event => _ctx.onChange(_ctx.attribute)),\n style: {\"display\":\"none\"}\n }, null, 32),\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.attribute.pending)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_3))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass([\"fa-lg\", {' fa-solid fa-square-check' : _ctx.attribute.checked, 'fa-regular text-slate-200 fa-square' : !_ctx.attribute.checked}])\n }, null, 2)),\n _createElementVNode(\"span\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.getLabel(_ctx.labels, _ctx.attribute.attributeId).name), 1)\n ])\n ])\n ]))\n}","\r\nimport { defineComponent, PropType } from 'vue'\r\nimport { IdNameModel, Report2Manager, ReportSubscriptionRowModel } from '@/map/core/bll/report/reportManager'\r\n\r\nexport default defineComponent({\r\n props: {\r\n attribute: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n labels: {\r\n type: Array as PropType,\r\n required: true\r\n }\r\n },\r\n methods: {\r\n getLabel (labels: IdNameModel[], id : number) {\r\n return labels.find(item => item.id === id) || { id: -1, name: 'not found' }\r\n },\r\n onChange (item: ReportSubscriptionRowModel) {\r\n item.pending = true\r\n const reportId = parseInt(this.$route.query.id as string)\r\n const params = `${reportId}/${item.attributeId}`\r\n Report2Manager.updateSubscription(params, { checked: !item.checked }).then(() => {\r\n item.checked = !item.checked\r\n item.pending = false\r\n })\r\n }\r\n }\r\n})\r\n","import { render } from \"./attributeRowPopover.vue?vue&type=template&id=769b0984&ts=true\"\nimport script from \"./attributeRowPopover.vue?vue&type=script&lang=ts\"\nexport * from \"./attributeRowPopover.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\nimport { defineComponent } from 'vue'\r\nimport { IdNameModel, Report2Manager, ReportSubscriptionRowModel } from '@/map/core/bll/report/reportManager'\r\nimport assetRow from '@/views/popover/assetRowPopover.vue'\r\nimport attributeRow from '@/views/popover/attributeRowPopover.vue'\r\n\r\nexport default defineComponent({\r\n components: {\r\n assetRow,\r\n attributeRow\r\n },\r\n watch: {\r\n '$route.query.id': {\r\n immediate: true,\r\n handler (value: string) {\r\n if (value) {\r\n const promises = []\r\n promises.push(Report2Manager.getSubscription(parseInt(value)))\r\n promises.push(Report2Manager.getAttributeAll())\r\n Promise.all(promises).then(results => {\r\n this.items = results[0] as ReportSubscriptionRowModel[]\r\n this.labels = results[1] as IdNameModel[]\r\n this.loading = false\r\n })\r\n }\r\n }\r\n }\r\n },\r\n data () {\r\n return { loading: true, items: [] as ReportSubscriptionRowModel[], labels: [] as IdNameModel[] }\r\n },\r\n methods: {\r\n getLabel (labels: IdNameModel[], id : number) {\r\n return labels.find(item => item.id === id) || { id: -1, name: 'not found' }\r\n }\r\n }\r\n})\r\n\r\n","import { render } from \"./fleet-period.vue?vue&type=template&id=08f2cae8&scoped=true&ts=true\"\nimport script from \"./fleet-period.vue?vue&type=script&lang=ts\"\nexport * from \"./fleet-period.vue?vue&type=script&lang=ts\"\n\nimport \"./fleet-period.vue?vue&type=style&index=0&id=08f2cae8&scoped=true&lang=css\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-08f2cae8\"]])\n\nexport default __exports__","\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport { defineComponent } from 'vue'\r\nimport toaster from '@/map/views/components/misc/toaster.vue'\r\nimport { sticky } from '@/map/core/utilities'\r\nimport { LocationQuery } from 'vue-router'\r\nimport fleetPopover from '@/views/popover/fleet-period.vue'\r\n\r\nexport default defineComponent({\r\n\r\n inject: ['ILoginService'],\r\n components: {\r\n toaster,\r\n fleetPopover\r\n },\r\n watch: {\r\n '$route.query': {\r\n immediate: true,\r\n handler (value:LocationQuery) {\r\n if (value.modal) {\r\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth\r\n document.body.style.overflowY = 'hidden'\r\n if (scrollBarWidth > 0 && document.body.scrollHeight > document.body.clientHeight) {\r\n document.body.style.paddingRight = scrollBarWidth + 'px'\r\n }\r\n } else {\r\n document.body.style.overflowY = 'auto'\r\n document.body.style.paddingRight = '0px'\r\n }\r\n if (value.popover) {\r\n window.addEventListener('resize', this.movePosition)\r\n setTimeout(() => {\r\n this.movePosition()\r\n }, 1)\r\n } else {\r\n window.removeEventListener('resize', this.movePosition)\r\n }\r\n }\r\n }\r\n },\r\n data (): { ILoginService?: ILoginService } {\r\n return {}\r\n },\r\n methods: {\r\n async isConnected (): Promise {\r\n return await this.ILoginService?.IsConnected() ?? false\r\n },\r\n movePosition ():void {\r\n if (this.$route.query.popover) {\r\n // @ts-ignore\r\n sticky(this.$route.query.popover, this.$route.query.id)\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./App.vue?vue&type=template&id=6de8e9f1&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=6de8e9f1&lang=scss\"\n\nimport exportComponent from \"D:\\\\a\\\\1\\\\s\\\\Marinsight.Client\\\\Marinsight.Client\\\\clientapp\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const FocusDirective = {\r\n mounted (el:HTMLInputElement):void {\r\n setTimeout(() => {\r\n el.focus()\r\n }, 1)\r\n }\r\n}\r\n","const accordionBodyExpandEnd = (e: Event) => {\r\n const accordionBodyElement:HTMLElement = e.target as HTMLElement\r\n accordionBodyElement.removeEventListener('transitionend', accordionBodyExpandEnd)\r\n accordionBodyElement.style.overflowY = 'auto'\r\n}\r\nconst accordionBodyCollapseEnd = (e: Event) => {\r\n const wrapper = document.querySelector('[data-accordion-type=wrapper]') as HTMLElement\r\n const accordionBodyElement:HTMLElement = e.target as HTMLElement\r\n accordionBodyElement.removeEventListener('transitionend', accordionBodyCollapseEnd)\r\n const sectionClickedElement = wrapper.querySelector('[data-clicked]') as HTMLElement\r\n sectionClickedElement.removeAttribute('data-clicked')\r\n sectionClickedElement.setAttribute('data-accordion-expanded', 'true');\r\n (sectionClickedElement.querySelector('[data-accordion-type=body]') as HTMLElement).addEventListener('transitionend', accordionBodyExpandEnd)\r\n}\r\nconst onClick = function (e: Event) {\r\n e.preventDefault()\r\n const wrapper = document.querySelector('[data-accordion-type=wrapper]') as HTMLElement\r\n const clickedElement = e.currentTarget as HTMLElement\r\n clickedElement.removeEventListener('click', onClick)\r\n const sectionClickedElement = clickedElement.parentElement as HTMLElement\r\n sectionClickedElement.setAttribute('data-clicked', 'true')\r\n const sectionToClose = wrapper.querySelector('[data-accordion-expanded=true]') as HTMLElement\r\n sectionToClose.setAttribute('data-accordion-expanded', 'false')\r\n const linkToClose = sectionToClose.querySelector('[data-accordion-type=link]') as HTMLElement\r\n linkToClose.addEventListener('click', onClick)\r\n const accordionBodyElement:HTMLElement = sectionToClose.querySelector('[data-accordion-type=body]') as HTMLElement\r\n accordionBodyElement.style.overflowY = 'hidden'\r\n accordionBodyElement.addEventListener('transitionend', accordionBodyCollapseEnd)\r\n}\r\nconst setEventListener = function (wrapper : HTMLElement) : void {\r\n wrapper.querySelectorAll('[data-accordion-expanded=false]').forEach(sectionElement => {\r\n const linkElement = (sectionElement.querySelector('[data-accordion-type=link]') as HTMLElement)\r\n linkElement.removeEventListener('click', onClick)\r\n linkElement.addEventListener('click', onClick)\r\n })\r\n}\r\nexport const AccordionDirective = {\r\n mounted (wrapper: HTMLElement): void {\r\n setEventListener(wrapper)\r\n },\r\n updated (wrapper: HTMLElement): void {\r\n setEventListener(wrapper)\r\n }\r\n}\r\n","export const KeyboardDirective = {\r\n\r\n // ul is ul\r\n mounted (ul:HTMLElement):void {\r\n let indexColor = 0\r\n let translateHeight = 0\r\n\r\n const onKeyDown = (e:KeyboardEvent) => {\r\n ul.scrollTop = 0\r\n if ((e.key === 'ArrowUp' || e.key === 'ArrowDown')) {\r\n const list = ul.querySelectorAll('li')\r\n const ulHeight = ul.getBoundingClientRect().height\r\n const liHeight = list[0].getBoundingClientRect().height\r\n const liLength = list.length\r\n\r\n if (e.key === 'ArrowDown') {\r\n if (indexColor > 0) {\r\n list[indexColor - 1].classList.remove('selectedAsset')\r\n }\r\n list[indexColor].classList.add('selectedAsset')\r\n if (indexColor < liLength - 1) {\r\n indexColor++\r\n }\r\n if (indexColor * liHeight > ulHeight && translateHeight < liHeight * liLength - ulHeight) {\r\n translateHeight += liHeight\r\n list.forEach(ul => {\r\n ul.style.transform = 'translateY(' + (translateHeight) * -1 + 'px)'\r\n })\r\n }\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n if (translateHeight > 0) {\r\n translateHeight -= liHeight\r\n list.forEach(ul => {\r\n ul.style.transform = 'translateY(' + translateHeight * -1 + 'px)'\r\n })\r\n }\r\n\r\n list[indexColor].classList.remove('selectedAsset')\r\n if (indexColor > 0) {\r\n list[indexColor - 1].classList.add('selectedAsset')\r\n indexColor--\r\n }\r\n }\r\n } else {\r\n const temp = document.querySelector('.selectedAsset') as HTMLElement\r\n if (temp) {\r\n temp.classList.remove('selectedAsset')\r\n }\r\n\r\n indexColor = 0\r\n translateHeight = 0\r\n ul.style.transform = 'translateY(0px)'\r\n }\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n }\r\n}\r\n","const _sticky = function ():void {\r\n // only one directive once so only one data-element-id\r\n const element = document.querySelector('[data-element-id]') as HTMLElement\r\n const sourceId = element.dataset.elementId\r\n const target = document.querySelector(`[data-target-id=\"${sourceId}\"]`) as HTMLElement\r\n if (target && element) {\r\n const targetId = element.dataset.stickyParent as string\r\n const parentTarget = (document.getElementById(targetId) as HTMLElement)\r\n const posY = `top:${target.getBoundingClientRect().top - parentTarget.getBoundingClientRect().top}px`\r\n const posX = 'right:70px'\r\n element.setAttribute('style', `${element.getAttribute('style')};${posX};${posY}`)\r\n }\r\n}\r\nexport const StickyDirective = {\r\n mounted ():void {\r\n window.addEventListener('resize', _sticky)\r\n _sticky()\r\n },\r\n unmounted ():void {\r\n window.removeEventListener('resize', _sticky)\r\n }\r\n}\r\n","import { ApplicationInsights, IEventTelemetry, ITelemetryItem } from '@microsoft/applicationinsights-web'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\n\r\nexport class LoggerService implements ILogger {\r\n private _appInsights: ApplicationInsights\r\n\r\n constructor (connectionString: string, customTelemetries: Record) {\r\n this._appInsights = this.setupAppInsights(connectionString)\r\n\r\n for (const recordKey in customTelemetries) {\r\n this.addTelemetry(recordKey, customTelemetries[recordKey])\r\n }\r\n }\r\n\r\n private setupAppInsights (connectionString: string) : ApplicationInsights {\r\n const instrumentationKey = connectionString?.substring(\r\n connectionString.indexOf('=') + 1,\r\n connectionString.lastIndexOf(';')\r\n )\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString,\r\n instrumentationKey,\r\n enableAutoRouteTracking: true,\r\n loggingLevelConsole: 1,\r\n autoTrackPageVisitTime: true\r\n }\r\n })\r\n appInsights.loadAppInsights()\r\n appInsights.trackPageView()\r\n return appInsights\r\n }\r\n\r\n updateClientDepartmentContext (ClientDepartmentCode: string) {\r\n console.log('updateClientDepartmentContext')\r\n this.addTelemetry('context', ClientDepartmentCode)\r\n }\r\n\r\n // setUserId (userId: string): void {\r\n // this.appInsights.setAuthenticatedUserContext(userId)\r\n // }\r\n\r\n // clearUserId (): void {\r\n // this.appInsights.clearAuthenticatedUserContext()\r\n // }\r\n\r\n private addTelemetry (key: string, value?: string): void {\r\n const telemetry = (envelope: ITelemetryItem) => {\r\n if (envelope.data === undefined) throw new Error('Unhandle null data in telemetry.')\r\n envelope.data[key] = value\r\n }\r\n this._appInsights.addTelemetryInitializer(telemetry)\r\n }\r\n\r\n logPageView (name?: string, uri?: string): void {\r\n this._appInsights.trackPageView({ name, uri })\r\n }\r\n\r\n logEvent (event: IEventTelemetry, customProperties?: { [key: string]: any }): void {\r\n this._appInsights.trackEvent(event, customProperties)\r\n }\r\n}\r\n","import { LabelModel } from '@/core/model/label.model'\r\nimport ColoursService from '@/core/services/colours.service'\r\nimport { ApiResult, http } from '@/core/services/request.service'\r\nimport store from '@/store'\r\n\r\nexport const Manager = {\r\n list (): void {\r\n const provisionalLabels1 =\r\n [\r\n {\r\n text: 'Reported consumption',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Optimal consumption',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Fuel saved',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Potential Fuel Savings',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Idle Time Trend',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Top 10 Idle time duration by location',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Stand by types',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'CO² Emmissions',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'SOX Emmissions',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'NOX Emmissions',\r\n color: ColoursService.randomColour()\r\n }, {\r\n text: 'Top 8 spent time by activity',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Remaining on board',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Product loaded and discharged',\r\n color: ColoursService.randomColour()\r\n },\r\n {\r\n text: 'Number of PAX',\r\n color: ColoursService.randomColour()\r\n }\r\n ]\r\n\r\n const provisionalLabels2 = [\r\n {\r\n text: 'Reported Consumtion',\r\n color: provisionalLabels1[0].color\r\n },\r\n {\r\n text: 'Optimal Consumtion',\r\n color: provisionalLabels1[1].color\r\n },\r\n {\r\n text: 'CO² Emissions',\r\n color: provisionalLabels1[7].color\r\n },\r\n {\r\n text: 'SOX Emissions',\r\n color: provisionalLabels1[8].color\r\n },\r\n {\r\n text: 'NOX Emissions',\r\n color: provisionalLabels1[9].color\r\n }\r\n ]\r\n\r\n const provisionalLabels = provisionalLabels1.concat(provisionalLabels2)\r\n\r\n http.request('get', 'Labels')\r\n .then((rep: ApiResult) => {\r\n const labels = rep.data && rep.data.labels.length ? rep.data.labels : provisionalLabels\r\n store.dispatch('setLabelsList', labels)\r\n }\r\n )\r\n .catch(err => err)\r\n }\r\n}\r\n","import { Manager as SettingsManager } from '@/core/managers/settings.manager'\r\nimport { AuthenticationSettings, PublicSettings } from '@/core/model/settings.model'\r\nimport { ILoginService } from '@/core/services/authentication/ILogin.service'\r\nimport { FakeLoginService } from '@/core/services/authentication/fakelogin.service'\r\nimport { loginServiceProvider } from '@/core/services/authentication/login.service.provider'\r\nimport 'flag-icons/css/flag-icons.css'\r\nimport { createApp, reactive } from 'vue'\r\nimport { createI18n } from 'vue-i18n'\r\nimport Toast, { PluginOptions, POSITION } from 'vue-toastification'\r\nimport 'vue-toastification/dist/index.css'\r\nimport App from './App.vue'\r\nimport { AddHttpInterceptor } from './core/axios.plugin'\r\nimport router from './router'\r\nimport store from './store'\r\n\r\nimport '@/assets/css/fontawesome.min.css'\r\nimport '@/assets/css/solid.min.css'\r\nimport '@/assets/css/regular.min.css'\r\nimport '@/assets/css/light.min.css'\r\nimport '@/assets/css/duotone.min.css'\r\nimport '../node_modules/leaflet/dist/leaflet.css'\r\nimport '@/assets/css/leaflet.scss'\r\nimport { FocusDirective } from '@/map/views/directives/focus.directives'\r\nimport { AccordionDirective } from '@/map/views/directives/accordion.directive'\r\nimport { KeyboardDirective } from '@/map/views/directives/keyboard.directive'\r\nimport { StickyDirective } from '@/map/views/directives/sticky.directive'\r\nimport { LoggerService } from '@/core/services/loggers/logger.service'\r\nimport { ILogger } from '@/core/services/loggers/ilogger.service'\r\nimport { ContextManager } from '@/core/managers/context.manager'\r\nimport * as LabelsManager from '@/core/managers/labels.manager'\r\nimport * as UserManager from '@/core/managers/user.manager'\r\nimport { http } from '@/core/services/request.service'\r\n\r\nexport interface GStoreModel {\r\n mapLoading : boolean\r\n mapError : string,\r\n msgSuccess: string\r\n msgError: string\r\n}\r\n\r\nexport const GlobalStore = reactive({ mapError: '', mapLoading: false, msgSuccess: '', msgError: '' } as GStoreModel)\r\nconst sessionId = (crypto as any).randomUUID()\r\n\r\nconst toastOptions: PluginOptions = { position: POSITION.BOTTOM_RIGHT, timeout: 2000, hideProgressBar: true }\r\nconst messages = {\r\n en: require('./locale/en.json')\r\n}\r\nconst i18n = createI18n({\r\n messages,\r\n legacy: false\r\n})\r\n\r\nconst app = createApp(App)\r\nRetrievePublicSettings()\r\n .then(async (settings) => {\r\n if (settings.authSetting === null) throw new Error('No Authentication config')\r\n const loginServiceInstance = await SetupLoginServiceAndPublicConfiguration(settings.authSetting)\r\n AddHttpInterceptor(loginServiceInstance, sessionId)\r\n\r\n const customTelemetries = await GenerateCutomsTelemetries(loginServiceInstance)\r\n const loggingServiceInstance = await SetupLoggerService(settings.applicationInsights?.connectionString as string, customTelemetries)\r\n\r\n const contextManagerInstance = new ContextManager(http, loggingServiceInstance)\r\n\r\n LabelsManager.Manager.list()\r\n SettingsManager.fleetSettings()\r\n SettingsManager.filtersSettings()\r\n\r\n app.directive('focus', FocusDirective)\r\n app.directive('accordion', AccordionDirective)\r\n app.directive('keyboard', KeyboardDirective)\r\n app.directive('sticky', StickyDirective)\r\n app.use(store)\r\n .use(router)\r\n .use(i18n)\r\n .use(Toast, toastOptions)\r\n .provide('ILoginService', loginServiceInstance)\r\n .provide('ILogger', loggingServiceInstance)\r\n .provide(ContextManager.name, contextManagerInstance)\r\n .provide('GStore', GlobalStore)\r\n .mount('#app')\r\n })\r\n\r\n/* ======= END of main setup ========== */\r\n\r\nasync function RetrievePublicSettings () : Promise {\r\n const setting = await SettingsManager.getPublicSettings()\r\n if (setting.data === undefined) throw new Error('No application config retrieved.')\r\n return setting.data\r\n}\r\n\r\nasync function SetupLoginServiceAndPublicConfiguration (settings : AuthenticationSettings): Promise {\r\n if (process.env.VUE_APP_MSAL_ACTIVE === 'true') {\r\n const loginService = await loginServiceProvider.GetInstance(settings)\r\n try {\r\n await loginService.HandleUserAlreadyLogin()\r\n } catch (err) {\r\n console.error('handle reponse failed ! Exception: ' + err)\r\n }\r\n if (!await loginService.IsConnected()) {\r\n await loginService.SignIn()\r\n }\r\n return loginService\r\n } else {\r\n // set a fake login service when we use fake api\r\n const loginService = new FakeLoginService()\r\n return loginService\r\n }\r\n}\r\n\r\nasync function SetupLoggerService (connectionString: string, customTelemetries: Record) : Promise {\r\n const appInsights = new LoggerService(connectionString, customTelemetries)\r\n return appInsights\r\n}\r\n\r\nasync function GenerateCutomsTelemetries (loginService: ILoginService) : Promise> {\r\n const customTelemetries: Record = {}\r\n customTelemetries.sessionId = sessionId\r\n\r\n const userResponce = await UserManager.Manager.detail()\r\n if (userResponce.status === 403 || userResponce.data === undefined) {\r\n router.push('/unauthorized')\r\n return customTelemetries\r\n }\r\n const user = userResponce.data\r\n customTelemetries.userEmail = user.email\r\n if (loginService.AccountInfo) {\r\n customTelemetries.userOid = loginService.AccountInfo.idTokenClaims?.oid as string\r\n }\r\n // const contextResponse = await ContextManager.currentDepartment()\r\n // customTelemetries.context = contextResponse.data!\r\n return customTelemetries\r\n}\r\n","var map = {\n\t\"./Avatar-Default-AHTS.svg\": 972,\n\t\"./Avatar-Default-CREWBOAT.svg\": 9306,\n\t\"./Avatar-Default-ETV.svg\": 8066,\n\t\"./Avatar-Default-FSIV.svg\": 555,\n\t\"./Avatar-Default-IRM.svg\": 2757,\n\t\"./Avatar-Default-Installation.svg\": 9112,\n\t\"./Avatar-Default-MPSV.svg\": 6985,\n\t\"./Avatar-Default-Mooring-Buoy.svg\": 6948,\n\t\"./Avatar-Default-NoVessel.svg\": 5225,\n\t\"./Avatar-Default-PSV.svg\": 6058,\n\t\"./Avatar-Default-Port.svg\": 5055,\n\t\"./Avatar-Default-Rig.svg\": 4025,\n\t\"./Avatar-Default-SSRV.svg\": 976,\n\t\"./Avatar-Default-TANKER.svg\": 9683,\n\t\"./Avatar-Default-TUG.svg\": 286\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 8773;","var map = {\n\t\"./cargo.svg\": 9563,\n\t\"./fishing-vessel.svg\": 3306,\n\t\"./high-speed-craft.svg\": 8576,\n\t\"./passenger-ship.svg\": 961,\n\t\"./tanker.svg\": 1124,\n\t\"./tug.svg\": 6970,\n\t\"./unknown-vessel.svg\": 4315,\n\t\"./yacht.svg\": 2945\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4499;","var map = {\n\t\"./vessel_blue.png\": 3830,\n\t\"./vessel_grey.png\": 426,\n\t\"./vessel_yellow.png\": 2070\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9951;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmarinsights\"] = self[\"webpackChunkmarinsights\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(3582); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["Tools","static","array","JSON","parse","stringify","storage","item","getItem","arr","concat","fn","wait","timer","clearTimeout","setTimeout","obj","Object","keys","length","getPrototypeOf","prototype","name","title","titleAddition","window","document","date","hours","day","Date","toLocaleDateString","month","year","hour","getHours","minute","getMinutes","categories","rep","category","active","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","src","_imports_0","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","style","_hoisted_10","key","_hoisted_11","_hoisted_12","href","target","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","render","_ctx","_cache","$props","$setup","$data","$options","_component_router_link","_resolveComponent","_component_NavigationLinkPrimary","_component_question_icon","_component_profile_icon","_component_router_view","_component_BackToTop","_openBlock","_createElementBlock","_Fragment","_createVNode","to","default","_withCtx","_","_renderList","navigationLinks","link","i","_createBlock","query","onClick","openMenu","_withModifiers","$event","menuHelp","modal","_createTextVNode","_createCommentVNode","_normalizeClass","$route","displayFeedBackModal","_Teleport","undefined","_component_DownChevronIcon","ref","args","scrollToTop","btt","xmlns","width","height","viewBox","id","d","fill","defineComponent","props","type","Boolean","__exports__","components","DownChevronIcon","mounted","addEventListener","this","handleScroll","beforeUnmount","removeEventListener","methods","scrollBtn","$refs","scrollTopButton","scrollY","classList","remove","add","scrollTo","top","behavior","onMouseenter","hideBar","onMouseleave","stroke","includes","activeLink","_resolveDynamicComponent","icon","_toDisplayString","$t","_createStaticVNode","version","x","y","transform","HomeIcon","DashboardIcon","FilesIcon","FleetIcon","MapIcon","AnalyticsIcon","String","required","setup","route","useRoute","computed","script","watch","handler","value","_click","body","immediate","scrollBarWidth","innerWidth","documentElement","clientWidth","overflowY","scrollHeight","clientHeight","paddingRight","NavigationLinkPrimary","BackToTop","ProfileIcon","QuestionIcon","data","open","menuClass","flyToBounds","secondaryNavigationLinks","e","currentTarget","_component_ServiceDetailTitle","_component_Filters","_component_ServiceCardContent","_component_GenericCardShell","_component_DashboardCard","_component_ServiceDetailReportsAndDashboards","_component_ReportGroupHeader","_component_ServiceReport","error","loading","detail","filters","onFiltersLoading","blockFilters","kpis","previewType","fromList","charts","chart","size","label","dashboards","subtitle","dashboard","description","reports","report","j","analyticsCategory","onRequestUpload","requestUpload","_component_DashboardSmallCard","_component_FavouriteButton","goToDashboard","previewImageUrl","service","onChangeFavStatus","isFav","_defineComponent","__name","__props","_renderSlot","$slots","_component_SmartphoneIcon","_component_TabletIcon","_component_MonitorIcon","require","alt","smartphone","tablet","laptop","Number","SmartphoneIcon","TabletIcon","MonitorIcon","GenericCardShell","DashboardSmallCard","router","useRouter","event","matches","push","params","dashboardId","_component_FilesIcon","_component_UploadIcon","isInternalUser","requestDocumentUpload","UploadIcon","isAssetReport","loginService","inject","async","IsInternalUser","$emit","_component_ReportAttributeTabLoading","_component_ReportInstanceLoading","_component_ReportAttributeTab","_component_ReportInstanceRow","_component_Pagination","_component_ServiceReportForm","attributes","onUpdateSelectedAttribute","updateSelectedAttribute","loadingInstance","instances","reportId","onDownload","download","onDelete","totalPages","currentPage","numberOfButtonAfterCurrent","onSelectPage","selectedPage","fetchReports","showForm","onClose","closeForm","Manager","constructor","_attributes","http","request","then","catch","err","response","isError","detailAsset","assetId","displayFilename","filename","tinyGUID","queryDisplayFileName","encodeURI","aElement","createElement","setAttribute","URL","createObjectURL","click","revokeObjectURL","byVersion","instanceId","byAttribute","attributeId","pageIndex","pageSize","byAttributeAsset","list","assetRelated","console","log","model","formData","FormData","append","File","file","toString","Title","ClientDepartmentCode","postFormData","attribute","selectAttribute","selectedAttributeTabIndex","Array","created","index","_component_LoaderIcon","_component_DownloadIcon","_a","fileFormat","toLowerCase","period","periodClass","formatDate","instanceDate","tinyGuid","IsDownloading","FormatService","number","formattedNumber","toFixed","replace","charAt","substring","minutes","isValidDate","parseInt","tryDate","knownFormats","precision","multiplier","Math","pow","roundedNumber","round","DownloadIcon","LoaderIcon","blank","csv","doc","docx","xls","xlsx","txt","tsv","pdf","confirm","for","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_component_FormHeader","_component_CalendarIcon","_component_DropZone","_component_FilePreview","ClientDepartment","clientDepartmentContext","close","uploading","_withDirectives","placeholder","_vModelText","attr","_vModelSelect","onFilesDropped","addFiles","dropZoneActive","multiple","onChange","onInputChange","tag","onRemove","removeFile","upload","inActiveTimeout","setActive","setInactive","onDrop","emit","dataTransfer","files","preventDefaults","preventDefault","events","onMounted","forEach","eventName","onUnmounted","extension","lastIndexOf","_component_CrossIcon","CrossIcon","ContextManager","logger","_http","_logger","currentDepartment","code","updateClientDepartmentContext","clear","clientDepartmentCode","status","departmentList","activitySectorsList","currentActivitySectors","declareActivitySectors","activitySectors","UploadableFile","lastModified","url","CalendarIcon","FormHeader","DropZone","FilePreview","contextManager","reportManager","ReportManager","now","contextResponse","isFileValid","newFiles","newUploadableFile","shouldBeClose","uploadModel","_component_LeftArrowIcon","_component_RightArrowIcon","paginationButton","innerPagination","pageNumber","numberOfButton","LeftArrowIcon","RightArrowIcon","pagination","maxPage","ApiClient","slice","Promise","resolve","reject","apiClient","get","total","headers","message","find","post","newId","put","delete","Report2Manager","getAttributeAll","GlobalStore","msgError","result","getSubscription","updateSubscription","deleteReport","ReportAttributeTab","ReportInstanceRow","ReportInstanceLoading","ReportAttributeTabLoading","ServiceReportForm","Pagination","reportTitle","toast","useToast","retrieveReportDetail","filter","GStore","msgSuccess","res","selectedAttributeId","retrieveReportInstance","retrieveDefaultInstance","numberOfElementPerPage","Message","items","a","map","sort","b","getTime","_component_ServicesCardKpiShell","_component_ServicesCardChart","_component_Observer","onOnChange","loadDetails","fromFleet","observed","graphType","kpiTitle","previewInfos","compatibleFilters","_component_Highcharts","options","chartOptions","filtersSorted","compFilter","filtersUniq","from","Set","createStore","state","labels","fleetSettings","filtersSettings","mutations","updateServiceList","updateLabelsList","updateFiltersList","updateFleetSettings","settings","updateFiltersSettings","actions","setServiceList","store","payload","commit","setLabelsList","setFiltersList","filtersWithoutEmpty","values","isArray","members","defineUser","setFleetSettings","setFiltersSettings","defineUserOid","defineContext","defineSessionId","modules","textGray400","textGray600","textWhite","textPrim","textAlt","bg0","bg2","semanticActivate","ColoursService","random","str","randomColour","hash","charCodeAt","colour","substr","labelIndex","findIndex","text","color","stringToColour","decimal","base","startsWith","r","g","rr","gg","bb","chartTypes","bar","line","pie","LINE","PIE","BAR","BARXLINE","pieCharts","BaseChartGenerator","Type","OverviewType","DefaultFont","createChart","content","createSeries","isDetailed","yAxisOptions","createYOptions","zoomType","panning","panKey","resetZoomButton","theme","fontWeight","states","hover","backgroundColor","fontFamily","margin","defineMargins","lang","noData","fontSize","ontouchstart","tooltip","plotOptions","legend","chartLegend","dataLabels","enabled","xAxis","series","yAxis","credits","exporting","navigation","createGaugeFromKpi","unit","detailed","gaugeOptions","pane","startAngle","endAngle","background","getColour","innerRadius","outerRadius","shape","borderWidth","allowOverlap","solidgauge","z","linecap","stickyTracking","rounded","gauge","dial","baseWidth","baseLength","rearLength","pivot","radius","min","max","stops","lineWidth","tickWidth","minorTickWidth","minorTickInterval","tickAmount","plotBands","thickness","parseFloat","format","textOutline","valueSuffix","finalType","categoryIndex","serie","v","_b","_c","borderColor","colourLightness","getColor","crosshairs","shared","borderRadius","padding","useHTML","headerFormat","tooltipHeader","pointFormat","tooltipPoint","footerFormat","dataSorting","matchByName","enableMouseTracking","fillOpacity","stacking","opacity","marker","fillColor","symbol","lineColor","inactive","pointPlacement","genericLegend","itemHoverStyle","itemStyle","lineHeight","maxHeight","itemWidth","XAxis","noPadding","minPadding","maxPadding","formattedXAxis","minorGridLineWidth","gridLineWidth","tickPixelInterval","crosshair","yAxisOptionIndex","yAxisOption","gridLineColor","showLastLabel","autoRotation","opposite","stackedLabels","minRange","buttonList","plotBackgroundImage","buttons","contextButton","menuItems","buttonOptions","select","BarChart","super","UnstackBarChart","BarAndLineChart","_d","HorizontalBarChart","LineChart","PieChart","innerSize","showInLegend","layout","align","verticalAlign","floating","labelFormat","UndefinedChartGenerator","GaugeChart","KpiService","kpiListRef","errorRef","kpiDetailsRef","loadingRef","kpi","KpiManager","isPreview","highchartsMore","Highcharts","solidGauge","previewHandlingProps","linkUrl","validator","previewHandling","customDetails","graphDetails","kpiDetails","kpiList","fleet","customDetailsRef","graphDetailsRef","detailedRef","isEmpty","UndefinedChart","displayPreview","compFilters","handleChart","handleKpi","promises","ChartManager","all","kpiToGauge","handleDetailsKpi","Chart","buttonText","prop","preview","deep","currentValue","oldValue","_component_ServicesCardKpi","onScroll","showOrHideArrows","scrollCategory","_normalizeStyle","getKpiColour","formatNumber","isHovering","hoverTitle","num","ServicesCardKpi","changeLoaderState","displayArrowWrapper","arrows","scrollWidth","categoryWrapper","offsetWidth","direction","scrollLeft","arrowLeft","arrowRight","kpiColour","details","$store","flattenedList","flattenArray","kpiKeys","Error","sortArray","indexOf","$nextTick","_component_AnalyticsIcon","skeleton","innerHTML","currentRoute","current","element","querySelectorAll","iterator","acceptedClasses","contains","observer","root","rootMargin","threshold","unobserve","$el","IntersectionObserver","entries","observe","Observer","ServicesCardFleet","ServicesCardPreview","ServicesCardKpiShell","ServicesCardChart","entry","isIntersecting","_component_CustomMultiSelect","_component_treeselect","oneLoading","monoOptions","defaultFilter","onInput","multiSelected","modelValue","multiOptions","alwaysOpen","clearOnSelect","clearable","searchable","limit","valueConsistsOf","openMulti","onOpen","rotateArrow","tabindex","onBlur","selected","hidden","option","checked","selection","selectOption","emitSelection","_vModelCheckbox","multipleSimple","splice","simple","CustomMultiSelect","Treeselect","selectedFilter","flattenedFilters","debounce","firstHandle","dispatchFilters","firstHandleFilters","$watch","join","container","newValue","arrowContainer","toggle","filterIndex","displayFilters","fil","decodeURI","member","FilterManager","mappedMembers","children","rest","deepMappedMembers","crypto","randomUUID","fromEntries","defaultSelected","defaultOption","defaultOptionFromQuery","finally","val","getElementsByClassName","$router","dispatch","filtersSelected","goTo","small","skeleton__title","formattedLink","history","back","go","Filters","ServiceCardContent","ServiceDetailTitle","DashboardCard","ServiceDetailReportsAndDashboards","ReportGroupHeader","ServiceReport","reactive","CategoryManager","serviceId","analyticsId","updatePageName","PAGE_TITLE","logEvent","properties","contextName","categoryName","subcategoryName","ActionName","cat","services","_component_PageTitle","_component_ServicesFilterButton","selectAll","isAllActive","toggleCat","_TransitionGroup","isVisible","ref_for","customHtml","handleFilters","isOnceSelected","ServicesFilterButton","PageTitle","serviceDisplayed","filterHandler","atLeastOneActiveIndex","unmounted","_component_TopButton","pageName","linkParams","dashboardHeight","dashboardLoaded","primary","dash","fullscreen","routeName","specificClass","handleClick","svgClass","HelpCenter","Services","Close","ExpandIcon","LogoutIcon","context","TopButton","pbiInfos","powerbi","getDashBoardHeight","DashboardManager","createDashboard","dashboardTitle","id_Service","permissions","pbi","f","$schema","table","column","operator","config","tokenType","accessToken","token","embedUrl","pageView","filterPaneEnabled","layoutType","dashboardContainer","embed","off","getElementById","header","navBar","backLinkHeight","offsetHeight","windowHeight","innerHeight","headerHeight","navBarHeight","_component_DashboardsListMenuShell","isDashboard","onSearchDashboard","filterServices","serv","group","_component_SearchInput","_component_DashboardsListMenu","_component_FilterIcon","search","onClearInput","onShowDetail","handleDetailDashboard","onShowService","handleServiceDashboard","allActive","allActiveInCategory","filtersDisplayed","closeFilters","openFilters","_vShow","manageReportsMenu","_component_SearchIcon","SearchIcon","DashboardsListMenu","FilterIcon","SearchInput","manageMenu","$e","serviceSelected","t","DashboardsListMenuShell","allSelected","s","ser","dir","_component_lottie_player","autoplay","loop","mode","speed","logout","UserManager","ILoginService","SignOut","_component_FleetTabs","_component_ListCardView","_component_FleetCard","onTabSelected","displayTabInfos","onChangeView","changeView","tabDisplayed","searchAssets","cardView","vessels","vessel","course","heading","lastCourseUpdate","lastPositionUpdate","country","country_alpha2","loa","imo","mmsi","isFavorite","imgUrl","imageUrl","categoryId","loadingList","loadingCard","asset","tabs","tabGroupClass","tab","displayed","tabClass","selectTab","tabBottomClass","assets","manageFavourite","favourite","favouriteMethod","emptyResponseRequest","timesheet","FleetManager","indexInTabs","sessionStorage","setItem","component","button","ListIcon","CardViewIcon","onSeeAssetDetails","seeAssetDetails","changeFavStatus","img","flag","isFavourite","_component_Star","fillFav","strokeFav","isFavouriteRef","getCurrentInstance","emitFavourite","Star","manageFav","assetType","assetTypeSetting","assetTypeSettings","icon_Url","defaultIcon","image_Url","defaultImg","defaultImage_Url","fleetCardProps","FavouriteButton","favouriteHandler","assetsDetails","FleetCardCardView","FleetCardListView","FleetTabs","FleetCard","ListCardView","hasNextPage","updateList","toggleObservation","update","apiList","_component_FleetDetailTitleCard","_component_AssetDetailTab","_component_fleet_map","_component_FleetAssetTimeline","_component_FleetReportTab","_component_FleetAssetDetails","vesselDetails","bridgeNumber","bridgeEmail","selectedTab","periodFilter","periodSelected","assetFilter","timeline","timeSheetError","onPeriodSelected","choosePeriod","loadingTimeline","HistoryIcon","DetailsIcon","_component_VesselLengthIcon","lengthFormatted","favLoading","VesselLengthIcon","preciseNumberRound","assetsImages","characteristics","characteristic","alphaCodeToCountry","isoCountries","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","isNumber","formattedChar","p","isNaN","_component_ReportListByServiceCategory","_component_ReportListByServiceCategoryLoading","_component_ReportsListMenuShell","assetOnlyServices","isAsset","assetCategories","onShowReport","showReportById","isInReports","_component_ReportsListMenu","onShowList","groups","k","handleVesselReport","handleDetailReport","handleServiceReport","ReportsListMenu","serviceGroup","_component_ListReportByService","_component_AssetReport","isAssetRelated","onCloseForm","_component_Treeselect","_component_AssetReportForm","selectAsset","normalizer","valueFormat","TreeselectId","selectedAsset","_hoisted_25","uploadForAsset","node","TreeselectElement","AssetReportForm","AssetReport","ListReportByService","ReportsListMenuShell","ReportListByServiceCategoryLoading","ReportListByServiceCategory","serviceReportResponse","serviceCategories","_component_FleetAssetTimelineModal","_component_TimelineZoom","_component_FleetAssetTimelineDetail","openModal","onCloseModal","closeModal","operation","modalContent","selectedTimeline","onZoom","handleZoomLevel","zoomLevel","reversedTimeline","showDetail","_component_ZoomInIcon","_component_ZoomOutIcon","ZoomInIcon","ZoomOutIcon","intervals","interval","location","displayLocation","displayContext","heightIndex","displayBorderTop","displayBorderBottom","topColour","endTime","startTime","operationBackground","operationBorder","timelineStyle","stack","lightenKpiColour","activity","dateFormatted","padStart","TimeLineService","lastStartDate","lastEndDate","newEvents","start","end","minutesStart","minutesEnd","isOverlapping","locations","action","timeSheetContexts","activities","journey","getMaxEnd","rearrangedArray","eventIndex","l","eventsWithIdenticalStartAndEnd","reduce","set","Map","arrayWithIdenticalStartAndEnd","o","journeyArray","timelineMethods","handleTimeline","reverse","partitionIntoOverlappingRanges","getHeight","intervalHeight","endTimesOfInterval","op","previousOperation","operationOfInterval","colspan","_component_CloseModal","commentary","closeModalOnBg","CloseModal","regExp","test","numberCommaReplacedByDot","FleetAssetTimelineModal","FleetAssetTimelineDetail","TimelineZoom","currentDay","changeDay","initialModalContentState","assign","zoomQuery","zoom","tabQuery","timelineQuery","selectedPeriod","selectPeriod","changeTimelineView","_component_ArrowForward","_component_toaster","_component_loader","mapId","panelDetail","codeFormated","flyTo","assetCircle","setBlue","role","_Transition","mapError","mapLoading","init","elementId","opts","isScaleControl","attributionControl","zoomControl","center","minZoom","worldCopyJump","createPane","getPane","layers","on","elem","control","position","addTo","imperial","CategoryMapper","categoryCode","isVessel","assetCategoryId","isUnderContract","assetIconMarker","typeIconUrl","assetCode","markerDim","svgDim","assetName","toUpperCase","staticStep","assetPopoverAdd","stepPopoverAdd","fetch","vesselColor","assetImg","typeImageUrl","assetTypeName","typeName","assetMarkerUrl","lastPosition","assetLastPosition","utcPositionTime","latLng","latitude","longitude","groupAssetLayer","layerGroup","temp","markerTemp","attribution","riseOnHover","divIcon","html","className","iconAnchor","addLayer","toggleLayer","getLayers","layer","Marker","split","interactive","disabledLayer","initialized","mutation","success","effect","categoryManager","getter","noCategory","atLeastOneCategory","activeItems","activeBound","categoryStore","subject","HTMLImageElement","dataset","popoverType","stepIndex","assetMouseOut","_mouseOut","assetClick","additionalQuery","_mouseClick","getPosition","isLeft","conf","fullConf","svg","positionX","demiCircle","offset","positionY","circle","cx","cy","mask","rect","x1","y1","x2","y2","wrapper","anchor","mapElement","querySelector","mapDim","getBoundingClientRect","appendChild","panel","panelDim","totalWidth","borderTopRightRadius","left","borderTopLeftRadius","svgMaker","duration","DateTime","zone","dt","diffMinutes","diff","diffHours","toObject","as","days","floor","sticky","posY","pageYOffset","bottom","posX","right","getAttribute","_html","popoverService","parentElement","assetPopover","flush","groupStepLayers","coordinates","clearLayers","step","_latLng","markerCode","utcTime","toFormat","first","last","polyline","weight","reset","steps","fetch_success","stepManager","readonly","newVal","oldVal","stepStore","isNavigation","lat","lng","stepPopover","ConcessionMapper","concession","multi","geoJson","sub","areaName","multiPolygon","groupConcessionLayers","renderer","canvas","areas","row","polygon","dashArray","bindTooltip","concessionManager","concessionInitialized","concessionStore","concessionDisplay","zoneMapper","areaCode","areaType","groupZoneLayers","geoJSON","GeoJSON","setStyle","zoneCode","zoneManager","zoneActives","zoneStore","process","fleetAssetGroup","fleetAsset","circleMarker","lastElement","originColor","removeAttribute","newElement","watchPostEffect","querySetBlue","toaster","loader","ArrowForward","mapMaker","mapEventDelegation","tileLayer","tileStore","flyToComposable","fetchConcessionComposable","fetchZoneComposable","fleetAssetComposable","popoverStepComposable","selectedBlueComposable","fetchStepComposable","popoverStaticComposable","popoverAssetComposable","FleetDetailTitleCard","AssetDetailTab","FleetAssetDetails","FleetAssetTimeline","FleetReportTab","FleetMap","useI18n","id_AssetFilter","id_PeriodFilter","property","phone","email","getTimeSheet","timeSheetItems","_component_CardButton","pages","page","sameApp","muted","playsinline","poster","video","home","btnText","CardButton","imgService","imgMap","imgHelp","_component_DepartmentSelect","_component_SectorsSelect","_component_LogoutIcon","user","onDepartmentChanged","departmentChanged","firstName","lastName","department","onChangeSectors","changeSectors","departments","departmentSelection","declareDepartmentCode","sectors","onSelection","DepartmentSelect","SectorsSelect","_userManager","userResponse","SignIn","assetCategoriesResponse","listAllAssets","buildAssetList","_component_vessel_detail","_component_menu_right","mapInitialized","_component_search_bar_popover","_component_map_layers_popover","_component_advanced_filter_popover","_component_zone_popover","popover","_component_wifi_icon","_directive_focus","_resolveDirective","_directive_keyboard","_directive_sticky","onSearch","trackList","durationStr","wifiIcon","onEnterKeyPress","input","elementLI","itemId","elementUL","_component_checkbox_row","_directive_accordion","onUpdate","checkboxRow","cards","onChangeUrl","_component_toggle_concession","_component_zone_row","onToggle","ToggleConcession","zoneRow","SearchBarPopover","MapLayersPopover","AdvancedFilterPopover","ZonePopover","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_component_SpeedometerIcon","_component_Compass","_component_wifiIcon","_component_slider_container","assetLength","assetMsFleetUrl","AssetDetailMapper","mappedProperties","assetLengthOverall","AssetDetailManager","previewsInfo","MapKpiMapper","subTitle","desc","_component_viewport_slider","_component_paginate_slider","sources","count","onMouseover","onMouseOver","onMouseLeave","onCurrent","_component_services_card_preview","isIntervalActive","intervalId","_sliderLength","_checkLimit","updateDirection","initEvent","sliderLength","nextEvent","stopEvent","clearInterval","setInterval","removeEvent","changePosition","PaginateSlider","ViewportSlider","sliderComposable","SettingsManager","slidesCount","SpeedometerIcon","Compass","SliderContainer","tile","setUrl","addCircle","flyBounds","latLngBounds","maxZoom","point","MenuRight","vesselDetail","tilesComposable","flyBoundComposable","fetchAssetComposable","selectedCircleComposable","routes","path","redirect","Layout1","Home","AnalyticsList","TabMap","AnalyticsDetail","meta","Profile","Dashboard","Dashboards","ReportsList","Fleet","FleetAsset","NotFound","createRouter","createWebHistory","analytics","analyticsDetail","allReports","allDashboards","helpCenter","assetDetail","profile","unauthorized","beforeEach","dl","afterEach","toRoute","axios","baseURL","withCredentials","Accept","dlClient","AddHttpInterceptor","tokenService","sessionId","interceptors","use","tokenResponse","GetToken","Authorization","Errors","raw","field","ApiResult","rawError","errors","RequestHandler","httpRequest","method","responseType","getPublicSettings","defaultIcon_Url","LoginService","AccountInfo","connectedUser","authSettings","metadata","msalInstance","GenerateMsalInstance","_additionalScope","scopes","PublicClientApplication","auth","clientId","authority","authorityMetadata","redirectUri","cache","cacheLocation","loginRedirect","loginRequest","handleRedirectPromise","account","getAllAccounts","setActiveAccount","logoutRequest","getAccountByHomeId","homeAccountId","logoutRedirect","callAuthority","expiresOn","IsConnected","idTokenClaims","extension_ClientDepartmentCode","needRefresh","isTokenExpired","splitedToken","parsedToken","atob","dToken","exp","dNow","forceRefresh","tokenInfos","acquireTokenSilent","LoginServiceProvider","_instance","metadataResponce","metadataAddress","_getMetadata","_createInstance","loginServiceProvider","_component_fleet_popover","isConnected","_component_attribute_row","_component_asset_row","getLabel","pending","assetRow","attributeRow","results","fleetPopover","movePosition","FocusDirective","el","focus","accordionBodyExpandEnd","accordionBodyElement","accordionBodyCollapseEnd","sectionClickedElement","clickedElement","sectionToClose","linkToClose","setEventListener","sectionElement","linkElement","AccordionDirective","updated","KeyboardDirective","ul","indexColor","translateHeight","onKeyDown","scrollTop","ulHeight","liHeight","liLength","_sticky","sourceId","targetId","stickyParent","parentTarget","StickyDirective","LoggerService","connectionString","customTelemetries","_appInsights","setupAppInsights","recordKey","addTelemetry","instrumentationKey","appInsights","ApplicationInsights","enableAutoRouteTracking","loggingLevelConsole","autoTrackPageVisitTime","loadAppInsights","trackPageView","telemetry","envelope","addTelemetryInitializer","logPageView","uri","customProperties","trackEvent","provisionalLabels1","provisionalLabels2","provisionalLabels","toastOptions","POSITION","timeout","hideProgressBar","messages","en","i18n","createI18n","legacy","app","createApp","App","RetrievePublicSettings","setting","SetupLoginServiceAndPublicConfiguration","GetInstance","HandleUserAlreadyLogin","SetupLoggerService","GenerateCutomsTelemetries","userResponce","userEmail","userOid","oid","authSetting","loginServiceInstance","loggingServiceInstance","applicationInsights","contextManagerInstance","LabelsManager","directive","Toast","provide","mount","webpackContext","req","webpackContextResolve","__webpack_require__","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","__esModule","definition","defineProperty","enumerable","globalThis","Function","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}