{"version":3,"sources":["webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/app.component.html","webpack:///src/app/fish-map/fish-map.component.html","webpack:///src/app/fish-map/recaptures-list/recaptures-list.component.html","webpack:///src/app/shared/map/map.component.html","webpack:///src/$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.scss","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/core/core.module.ts","webpack:///src/app/core/helpers/common/formatter.helper.ts","webpack:///src/app/core/helpers/common/utils.ts","webpack:///src/app/core/helpers/index.ts","webpack:///src/app/core/helpers/map/catches.helper.ts","webpack:///src/app/core/helpers/map/factories.helper.ts","webpack:///src/app/core/helpers/map/recaptures.helper.ts","webpack:///src/app/core/helpers/map/releases.helper.ts","webpack:///src/app/core/models/common/catch.ts","webpack:///src/app/core/models/common/color.ts","webpack:///src/app/core/models/common/factory.ts","webpack:///src/app/core/models/common/feature-data.ts","webpack:///src/app/core/models/common/filter-recapture.ts","webpack:///src/app/core/models/common/filter.ts","webpack:///src/app/core/models/common/recapture.ts","webpack:///src/app/core/models/common/release.ts","webpack:///src/app/core/models/common/select-item.ts","webpack:///src/app/core/models/enums/feature-states.ts","webpack:///src/app/core/models/enums/feature-types.ts","webpack:///src/app/core/models/enums/layer-types.ts","webpack:///src/app/core/models/ices/ices-catch-group.ts","webpack:///src/app/core/models/ices/ices-cell.ts","webpack:///src/app/core/models/ices/ices-filter.ts","webpack:///src/app/core/models/ices/ices-recapture-group.ts","webpack:///src/app/core/models/ices/ices-recaptures.ts","webpack:///src/app/core/models/ices/ices-release-group.ts","webpack:///src/app/core/models/ices/ices-releases.ts","webpack:///src/app/core/models/ices/ices-total.ts","webpack:///src/app/core/models/index.ts","webpack:///src/app/core/models/map/interpolated-feature-style.ts","webpack:///src/app/core/models/map/map-configuration.ts","webpack:///src/app/core/pipes/date-format.pipe.ts","webpack:///src/app/core/pipes/weight-format.pipe.ts","webpack:///src/app/core/services/app-config-resolover.service.ts","webpack:///src/app/core/services/app-config.service.ts","webpack:///src/app/fish-map/fish-map.component.scss","webpack:///src/app/fish-map/fish-map.component.ts","webpack:///src/app/fish-map/fish-map.module.ts","webpack:///src/app/fish-map/panel-option.ts","webpack:///src/app/fish-map/recaptures-list/recaptures-list.component.scss","webpack:///src/app/fish-map/recaptures-list/recaptures-list.component.ts","webpack:///src/app/services/app.settings.ts","webpack:///src/app/services/fish-map.service.ts","webpack:///src/app/services/index.ts","webpack:///src/app/services/logger.service.ts","webpack:///src/app/services/settings.service.ts","webpack:///src/app/shared/group.pipe.ts","webpack:///src/app/shared/map/map.component.scss","webpack:///src/app/shared/map/map.component.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","webpackContextKeys","Object","resolve","module","exports","webpackEmptyAsyncContext","Promise","then","routes","path","component","appConfig","AppRoutingModule","imports","forRoot","providers","AppComponent","title","selector","template","AppModule","declarations","bootstrap","CoreModule","parentModule","ngModule","FormatterHelper","numberStr","value","replace","Number","array","filter","v","i","a","indexOf","toString","reduce","b","max","min","one","two","Total","sortAlphaNum","reA","reN","AInt","parseInt","BInt","isNaN","aA","bA","aN","bN","CatchesHelper","catches","formatter","data","ICES","ices_rectangle","CatchYear","catchdate","FactoryId","reference_plant","FactoryName","plant_name","FactoryICES","plant_ices_rectangle","Catches","TotalWeight","c","Year","Factory","length","includes","groups","getMinGroup","getMaxGroup","result","r","group","create","key","Math","round","push","FactoriesHelper","factories","formatterHelper","factory","Id","pkID","Name","name","Longitude","convertToISODecimal","LO","Latitude","LA","f","RecapturesHelper","recaptures","recapture","ReleasedICES","RelICES","ReleasedYear","RelTime","RecapturedTime","RecTime","RecapturedYear","Date","getFullYear","RecapturedTimestamp","ReleasedLongitude","RelPosLO","ReleasedLatitude","RelPosLA","RecapturedFactoryId","FactoryID","RecapturedFactory","RecFactory","RecapturedArea","RecArea","RecapturedExpedition","Expedition","ReleaseYear","icesRecaptures","accumulateRecaptureGroup","Recaptures","accumulateReleaseGroup","Releases","ReleasesHelper","releases","release","Count","count","icesName","find","Catch","Color","g","FeatureData","FeatureType","Data","State","Default","FilterRecapture","Filter","Recapture","Release","SelectItem","Value","Text","FeatureStates","FeatureTypes","LayerTypes","ICESCatchGroup","ICESCell","ICESFilter","ICESRecaptureGroup","ICESRecaptures","ICESReleaseGroup","ICESReleases","ICESTotal","InterpolatedFeatureStyle","MapConfiguration","DateFormatPipe","format","WeightFormatPipe","AppConfigResoloverService","appConfigService","router","route","state","loadEnvironment","es","setEnvSpecific","error","console","log","AppConfigService","http","appConfigNull","appConfigSubject","undefined","get","pipe","toPromise","ac","next","caller","callback","subscribe","FishMapComponent","logger","fishMap","appSettingService","panelOption","panelRecaptures","filterMobile","fishTypes","totalReleases","totalRecaptures","totalCatches","showFactories","showICESGrid","showDetailsPanel","showLastRecapturesPanel","activeLayer","factoriesList","mapUrls","resetFilters","setFilters","getFishTypes","loaded","getAllData","activeFishType","mapData","fillDropdownLists","showErrorMessage","response","removeHighlight","loadData","concat","allExpedition","expeditions","getUniqueItems","sort","expeditionList","allYears","years","releaseYearsList","convertToSelectList","recaptureYearsList","catchYearsList","recaptureReleaseYearsList","resetSelections","releasesFilter","selectedReleaseYear","recapturesFilter","selectedRecaptureYear","selectedRecaptureFactory","selectedRecaptureReleaseYear","selectedRecaptureExpedition","recaptureListFilter","selectedRecaptureListYear","selectedRecaptureListFactory","catchesFilter","selectedCatchYear","selectedCatchFactory","selectedFeature","toggleDetails","updateMapSize","setTimeout","selectAllExpedition","selected","item","setRecapturesFilter","deselect","select","getSelectedFactory","setFilterBySelectedOption","getToggleSelectedFactory","selectAllFactory","selectAllFactoryOnCatches","setCatchesFilter","selectAllFactoryOnPanel","setRecaptureListFilter","setReleasesFilter","icesCells","apiBaseUrl","apiFishTypeUrl","apiCatchesUrl","apiFactoriesUrl","apiReleasesUrl","apiRecapturesUrl","index","FishMapModule","PanelOption","RecapturesListComponent","columns","_recaptures","sortedData","slice","recapturesHelper","active","direction","isAsc","compare","findRecaptures","_recapturesFilter","filterRecaptures","AppSettings","snackbar_action_label","snackbar_duration","FishMapService","appSettings","factoriesHelper","catchesHelper","releasesHelper","fishType","factoriesObservable","getFactories","releasesObservable","getReleases","recapturesObservable","getRecaptures","catchesObservable","getCatches","icesObservable","getICESCoordinates","observables","createFactory","createCatch","createRecapture","createRelease","LoggerService","settings","snackBar","actionLabel","snackBarConfig","duration","message","open","SettingsService","GroupByPipe","collection","property","groupedCollection","previous","current","MapComponent","onSelectedFeatureChange","onTotalChange","markedFeatures","initializeMap","updateSize","mapElement","nativeElement","innerHTML","ol","Map","layers","layer","Tile","source","XYZ","crossOrigin","url","attributions","OSM","ATTRIBUTION","view","View","center","proj","transform","zoom","popup","Overlay","element","popupElement","offset","positioning","addOverlay","setTarget","addFeatureClickHandler","addFeatureHoverHandler","addLayers","icesGridLayer","getEmptyLayer","getICESGridStyle","factoriesLayer","releasesLayer","recapturesLayer","catchesLayer","highlightLayer","addLayer","onClick","showRegionStatistics","on","event","features","forEachFeatureAtPixel","pixel","feature","highlightCell","emit","onHover","markHoveredFeature","setPosition","coordinate","removeMarks","markFactory","markCell","style","getStyle","Hovered","set","setStyle","display","addToMarkedFeatures","Highlighted","existing","addFeaturesToLayer","getSource","clear","selectedFactoryIds","_activeLayer","setLayerVisibility","_catchesFilter","filterFactories","_icesCells","ices","getPolygonFeature","Coordinates","findFactory","getIconFeature","getFactoryPointStyle","findReleases","drawReleases","redraw","total","groupByICES","findRecapturesByReleasedICES","_releasesFilter","recapturesGroups","getAccumulatedRecapturesByICES","getMaxReleaseGroup","getMinReleaseGroup","color","getInterpolatedFeature","drawRecaptures","findReleasesByICES","releasesGroups","getAccumulatedReleasesByICES","getMaxRecaptureGroup","getMinRecaptureGroup","findCatches","drawCatches","findRecapturesByRecapturedICES","getMaxCatchGroup","getMinCatchGroup","currentValue","minValue","maxValue","styleConfig","MaxOpacity","MinOpacity","CurrentValue","MinValue","MaxValue","Style","stroke","Stroke","width","getView","getZoom","scale","fontSize","text","font","fill","Fill","ICESName","resolution","strokeWidth","zIndex","image","Circle","radius","offsetX","offsetY","textAlign","placement","difference","abs","opacityDifference","scaledOpacity","toFixed","featureStyle","getInterpolatedICESStyle","cell","coordinates","Feature","geometry","geom","Polygon","getGeometry","point","Point","visible","Vector","icesCell","findICESCell","getInterpolatedStyleConfig","getInterpolatedFeatureStyle","setVisible","addFeature","fit","getExtent","getSize","maxZoom","_showICESGrid","_showFactories","changeActiveLayer","cells","loadICESGrid","_factories","_releases","_catches","filterReleases","filterCatches","SharedModule","environment","production","api_url","bootstrapModule"],"mappings":"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","file":"main-es5.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\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 = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"\";","export default \"
\\n \\n \\n
\\n \\n
Area {{ selectedFeature?.ICES }}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n {{fish}}\\n \\n\\n \\n\\n
\\n\\n \\n
\\n \\n \\n Releases\\n \\n \\n Recaptures\\n \\n \\n Catches\\n \\n \\n \\n
\\n\\n \\n \\n\\n \\n \\n
\\n
\\n
Year
\\n \\n \\n {{ year.Text }}\\n \\n \\n
\\n
\\n
Releases:
{{ totalReleases | weightFormat }}
\\n
\\n
\\n
\\n\\n \\n \\n
\\n
\\n
Year
\\n \\n \\n {{ year.Text }}\\n \\n \\n
\\n
\\n
Factory
\\n \\n *\\n \\n {{ factory.Text }}\\n \\n \\n
\\n
\\n
Release Year
\\n \\n \\n {{ releaseYear.Text }}\\n \\n \\n
\\n
\\n
Expedition
\\n \\n *\\n \\n {{ expedition.Text }}\\n \\n \\n
\\n
Recaptures:
{{ totalRecaptures | weightFormat }}
\\n
\\n
\\n\\n \\n \\n
\\n
\\n
Year
\\n \\n \\n {{ year.Text }}\\n \\n \\n
\\n
\\n
Factory
\\n \\n *\\n \\n {{ factory.Text }}\\n \\n \\n
\\n
Catches:
{{ totalCatches | weightFormat }}\\n kg\\n
\\n
\\n
\\n\\n \\n \\n \\n\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n\\n
\\n \\n \\n
\\n \\n
\\n\\n \\n \\n
\\n\\n \\n \\n\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n\\n \\n \\n \\n
\\n \\n\\n \\n\\n \\n
\\n
\\n

List of Recaptures

\\n \\n
\\n
\\n
\\n
Year
\\n \\n \\n {{ year.Text }}\\n \\n \\n
\\n
\\n
Factory
\\n \\n *\\n \\n {{ factory.Text }}\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n \\n \\n
\\n
Released{{ selectedFeature?.Total | weightFormat }}
\\n
Total recaptured{{ selectedFeature?.Recaptures.Total | weightFormat }}\\n
\\n
\\n
\\n {{ recapture.Total }} recaptured in {{ recapture.ICES }} in {{ recapture.Year }}\\n
\\n
\\n
\\n
\\n \\n
\\n
Recaptured{{ selectedFeature?.Total | weightFormat }}
\\n \\n
\\n
\\n {{ release.value.length }} released in {{ release.key }} in {{ release.value[0].ReleasedYear }}\\n
\\n
\\n
\\n
\\n \\n
\\n
Caught{{ selectedFeature?.Total | weightFormat }} kg
\\n
Recaptures{{ selectedFeature?.Recaptures.Total }}
\\n
\\n
\\n {{ catch.Total }} released in {{ catch.ICES }} in {{ catch.Year }}\\n
\\n
\\n
\\n
\\n\\n
\";","export default \"\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Recapture TimeFactoryRecapture ICESRelease ICESRelease Year
{{ recapture.RecapturedTime | dateFormat }}{{ recapture.RecapturedFactory }}{{ recapture.RecapturedArea }}{{ recapture.ReleasedICES }}{{ recapture.ReleasedYear }}
\\n\\n\\n \";","export default \"
\\n
\\n
\\n
\\n\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Routes, RouterModule } from '@angular/router';\nimport { FishMapComponent } from './fish-map/fish-map.component';\nimport { AppConfigResoloverService } from './core/services/app-config-resolover.service';\n\nconst routes: Routes = [\n {\n path: '',\n component: FishMapComponent,\n resolve: { appConfig: AppConfigResoloverService }\n }\n];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forRoot(routes)\n ],\n exports: [\n RouterModule\n ],\n providers: []\n})\nexport class AppRoutingModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'app works!';\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { AppComponent } from './app.component';\nimport { FishMapModule } from './fish-map/fish-map.module';\nimport { AppSettings, FishMapService, LoggerService, SettingsService } from './services';\nimport { AppRoutingModule } from './app-routing.module';\nimport { CoreModule } from './core/core.module';\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n CoreModule.forRoot(),\n AppRoutingModule,\n FormsModule,\n BrowserAnimationsModule,\n NoopAnimationsModule,\n FishMapModule,\n HttpClientModule\n ],\n providers: [\n AppSettings,\n FishMapService,\n LoggerService,\n SettingsService, \n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { AppConfigResoloverService } from './services/app-config-resolover.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule, Optional, SkipSelf, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AppConfigService } from './services/app-config.service';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule\n ],\n declarations: [],\n providers: []\n})\n\nexport class CoreModule {\n\n constructor( @Optional() @SkipSelf() parentModule: CoreModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: CoreModule,\n providers: [AppConfigService, AppConfigResoloverService]\n };\n }\n\n}\n","import { SelectItem, ICESGroup } from '../../models'\nexport class FormatterHelper {\n\n constructor() { }\n\n public convertToISODecimal(numberStr: string): number {\n let value = 0;\n if (numberStr) {\n numberStr = numberStr.replace(',', '.');\n value = Number(numberStr);\n }\n return value;\n }\n\n public getUniqueItems(array: T[]): T[] {\n return array.filter((v, i, a) => v && a.indexOf(v) === i);\n }\n\n public convertToSelectList(array: number[]): SelectItem[] {\n return array.map(i => new SelectItem(i, i.toString()));\n }\n\n public getMaxGroup(array: T[]): T {\n return array.reduce((a, b) => this.max(a, b));\n }\n\n public getMinGroup(array: T[]): T {\n return array.reduce((a, b) => this.min(a, b));\n }\n\n public max(one: T, two: T): T {\n if (one.Total > two.Total) {\n return one;\n }\n else {\n return two;\n }\n }\n\n public min(one: T, two: T): T {\n if (one.Total < two.Total) {\n return one;\n }\n else {\n return two;\n }\n } \n}","export function sortAlphaNum(a, b) {\n var reA = /[^a-zA-Z]/g;\n var reN = /[^0-9]/g;\n\n var AInt = parseInt(a, 10);\n var BInt = parseInt(b, 10);\n\n if (isNaN(AInt) && isNaN(BInt)) {\n var aA = a.replace(reA, \"\");\n var bA = b.replace(reA, \"\");\n if (aA === bA) {\n var aN = parseInt(a.replace(reN, \"\"), 10);\n var bN = parseInt(b.replace(reN, \"\"), 10);\n return aN === bN ? 0 : bN > aN ? 1 : -1;\n } else {\n return aA > bA ? 1 : -1;\n }\n } else if (isNaN(AInt)) {\n return 1;\n } else if (isNaN(BInt)) {\n return -1;\n } else {\n return BInt > AInt ? 1 : -1;\n }\n}","export { FactoriesHelper } from './map/factories.helper';\nexport { ReleasesHelper } from './map/releases.helper';\nexport { RecapturesHelper } from './map/recaptures.helper';\nexport { CatchesHelper } from './map/catches.helper';\nexport { FormatterHelper } from './common/formatter.helper';","import { Catch, Recapture, Filter, ICESFilter, ICESCatchGroup } from '../../models';\nimport { FormatterHelper } from '../common/formatter.helper';\n\nexport class CatchesHelper {\n\n catches: Catch[];\n formatter: FormatterHelper;\n\n constructor() {\n this.catches = [];\n this.formatter = new FormatterHelper();\n }\n\n createCatch(data: any): Catch {\n return { \n ICES : data.ices_rectangle ? data.ices_rectangle : '?',\n CatchYear : data.catchdate,\n FactoryId : data.reference_plant,\n FactoryName : data.plant_name,\n FactoryICES : data.plant_ices_rectangle,\n Catches: data.catches,\n TotalWeight: data.TotalWeight\n }\n }\n\n public findCatches(filter: Filter): Catch[] {\n return this.catches.filter(c => \n ((filter.Year == 0 || c.CatchYear === filter.Year) && (filter.Factory.length == 0 || filter.Factory.includes(c.FactoryId))));\n }\n\n public findCatchesByICES(filter: ICESFilter): Catch[] {\n return this.catches.filter(c => \n ((filter.Year == 0 || c.CatchYear === filter.Year) && c.ICES === filter.ICES));\n }\n \n public getMinCatchGroup(groups: ICESCatchGroup[]): ICESCatchGroup {\n return this.formatter.getMinGroup(groups);\n }\n\n public getMaxCatchGroup(groups: ICESCatchGroup []): ICESCatchGroup {\n return this.formatter.getMaxGroup(groups);\n }\n \n public groupByICES(catches: Catch[]): ICESCatchGroup[] {\n let groups = [];\n let result = catches.reduce((r, a) => this.group(r, a), Object.create(null));\n // Make a list of groups\n if (result) {\n for (let key in result) {\n if (key != '?') {\n result[key].Total = Math.round(result[key].Total);\n groups.push(result[key]);\n }\n }\n }\n return groups;\n }\n\n /* Helper functions */\n\n private group(r: any, a: Catch) {\n r[a.ICES] = r[a.ICES] || new ICESCatchGroup(a.ICES);\n r[a.ICES].Total += a.TotalWeight;\n r[a.ICES].Catches.push(a);\n return r;\n }\n\n \n}","import { Factory } from '../../models';\nimport { FormatterHelper } from '../common/formatter.helper';\n\nexport class FactoriesHelper {\n\n protected formatterHelper: FormatterHelper;\n public factories: Factory[];\n\n constructor() {\n this.factories = [];\n this.formatterHelper = new FormatterHelper();\n }\n\n createFactory(data: any): Factory {\n let factory: Factory = {\n Id: data.pkID,\n Name: data.name,\n Longitude: this.formatterHelper.convertToISODecimal(data.LO),\n Latitude: this.formatterHelper.convertToISODecimal(data.LA)\n };\n return factory;\n }\n\n findFactory(factory: string[]): Factory[] {\n return this.factories.filter(f => factory.includes(f.Id));\n }\n\n\n}","import { FilterRecapture } from '@app/core/models/common/filter-recapture';\nimport { Recapture, Filter, ICESTotal, ICESFilter, ICESRecaptures, ICESReleases, ICESRecaptureGroup } from '../../models';\nimport { FormatterHelper } from '../common/formatter.helper';\n\nexport class RecapturesHelper {\n\n protected formatter: FormatterHelper;\n public recaptures: Recapture[];\n\n constructor() {\n this.recaptures = [];\n this.formatter = new FormatterHelper();\n }\n\n public createRecapture(data: any): Recapture {\n let recapture: Recapture = {\n ReleasedICES: data.RelICES,\n ReleasedYear: data.RelTime,\n RecapturedTime: data.RecTime,\n RecapturedYear: new Date(data.RecTime).getFullYear(),\n RecapturedTimestamp: new Date(data.RecTime),\n ReleasedLongitude: this.formatter.convertToISODecimal(data.RelPosLO),\n ReleasedLatitude: this.formatter.convertToISODecimal(data.RelPosLA),\n RecapturedFactoryId: data.FactoryID,\n RecapturedFactory: data.RecFactory,\n RecapturedArea: data.RecArea ? data.RecArea : '?',\n RecapturedExpedition: data.Expedition\n }\n return recapture;\n }\n\n public findRecaptures(filter: FilterRecapture): Recapture[] {\n return this.recaptures.filter(function(recapture) {\n return (\n (filter.Year == 0 || recapture.RecapturedYear === filter.Year) &&\n (filter.Factory.length == 0 || filter.Factory.includes('') || filter.Factory.includes(recapture.RecapturedFactoryId)) &&\n ((filter.ReleaseYear == 0 || recapture.ReleasedYear === filter.ReleaseYear)) &&\n (filter.Expedition.length == 0 || filter.Expedition.includes('') || filter.Expedition.includes(recapture.RecapturedExpedition))\n )});\n }\n\n public findRecapturesByReleasedICES(filter: ICESFilter): Recapture[] {\n return this.recaptures.filter(recapture =>\n ((filter.Year == 0 || recapture.ReleasedYear === filter.Year) && recapture.ReleasedICES === filter.ICES));\n }\n\n public findRecapturesByRecapturedICES(filter: ICESFilter): Recapture[] {\n return this.recaptures.filter(recapture =>\n ((filter.Year == 0 || recapture.RecapturedYear === filter.Year)\n && (filter.Factory.length == 0 || filter.Factory.includes('') || filter.Factory.includes(recapture.RecapturedFactoryId))\n && recapture.RecapturedArea === filter.ICES));\n }\n\n public findReleasesByICES(filter: ICESFilter): Recapture[] {\n return this.recaptures.filter(recapture =>\n ((filter.Year == 0 || recapture.RecapturedYear === filter.Year)\n && (filter.Factory.length == 0 || filter.Factory.includes('') || filter.Factory.includes(recapture.RecapturedFactoryId))\n && recapture.RecapturedArea === filter.ICES));\n }\n\n public groupByICES(recaptures: Recapture[]): ICESRecaptureGroup[] {\n let groups = [];\n let result = recaptures.reduce((r, a) => this.group(r, a), Object.create(null));\n // Make a list of groups\n if (result) {\n for (let key in result) {\n if (key != '?') {\n groups.push(result[key]);\n }\n }\n }\n return groups;\n }\n\n public getMinRecaptureGroup(groups: ICESRecaptureGroup[]): ICESRecaptureGroup {\n // return groups.reduce((a, b) => this.min(a, b));\n return this.formatter.getMinGroup(groups);\n }\n\n public getMaxRecaptureGroup(groups: ICESRecaptureGroup[]): ICESRecaptureGroup {\n // return groups.reduce((a, b) => this.max(a, b));\n return this.formatter.getMaxGroup(groups);\n }\n\n public getAccumulatedRecapturesByICES(recaptures: Recapture[]): ICESRecaptures {\n let icesRecaptures = new ICESRecaptures();\n let groups = [];\n let result = recaptures.reduce((r, a) => this.accumulateRecaptureGroup(r, a), Object.create(null));\n // Make a list of groups\n if (result) {\n for (let key in result) {\n if (key.indexOf('null') < 0) {\n icesRecaptures.Total += result[key].Total;\n icesRecaptures.Recaptures.push(result[key]);\n }\n }\n }\n return icesRecaptures;\n }\n\n public getAccumulatedReleasesByICES(recaptures: Recapture[]): ICESReleases {\n let icesRecaptures = new ICESReleases();\n let groups = [];\n let result = recaptures.reduce((r, a) => this.accumulateReleaseGroup(r, a), Object.create(null));\n // Make a list of groups\n if (result) {\n for (let key in result) {\n if (key.indexOf('null') < 0) {\n icesRecaptures.Total += result[key].Total;\n icesRecaptures.Releases.push(result[key]);\n }\n }\n }\n return icesRecaptures;\n }\n\n /* Helper functions */\n\n private group(r: any, a: any) {\n r[a.RecapturedArea] = r[a.RecapturedArea] || new ICESRecaptureGroup(a.RecapturedArea);\n r[a.RecapturedArea].Total += 1;\n r[a.RecapturedArea].Recaptures.push(a);\n return r;\n }\n\n private accumulateReleaseGroup(r: any, a: any) {\n let key = `${a.ReleasedICES}-${a.ReleasedYear}`;\n r[key] = r[key] || new ICESTotal(a.ReleasedICES);\n r[key].Total += 1;\n r[key].Year = a.ReleasedYear;\n return r;\n }\n\n private accumulateRecaptureGroup(r: any, a: any) {\n let key = `${a.RecapturedArea}-${a.RecapturedYear}`;\n r[key] = r[key] || new ICESTotal(a.RecapturedArea);\n r[key].Total += 1;\n r[key].Year = a.RecapturedYear;\n return r;\n }\n}","import { Release, Filter, ICESFilter, ICESReleaseGroup } from '../../models';\nimport { FormatterHelper } from '../common/formatter.helper';\n\nexport class ReleasesHelper {\n\n releases: Release[];\n formatter: FormatterHelper;\n\n constructor() {\n this.releases = [];\n this.formatter = new FormatterHelper();\n }\n\n public createRelease(data: any): Release {\n let release: Release = {\n ICES: data.RelICES ? data.RelICES : '?',\n Year: data.RelTime,\n Count: data.count\n };\n return release;\n }\n\n public getRelease(icesName: string) {\n return this.releases.find(release => release.ICES === icesName);\n }\n\n public findReleases(filter: Filter): Release[] {\n return this.releases.filter(release => release.Year != null && (release.Year === filter.Year || filter.Year == 0));\n }\n \n public groupByICES(releases: Release[]): ICESReleaseGroup[] {\n let groups = [];\n let result = releases.reduce((r, a) => this.group(r, a), Object.create(null));\n // Make a list of groups\n if (result) {\n for (let key in result) {\n groups.push(result[key]);\n }\n }\n return groups;\n }\n\n public getMinReleaseGroup(groups: ICESReleaseGroup[]): ICESReleaseGroup {\n // return groups.reduce((a, b) => this.min(a, b));\n return this.formatter.getMinGroup(groups);\n }\n\n public getMaxReleaseGroup(groups: ICESReleaseGroup[]): ICESReleaseGroup {\n // return groups.reduce((a, b) => this.max(a, b));\n return this.formatter.getMaxGroup(groups);\n }\n\n /* helper functions */\n \n private group(r: any, a: any) {\n r[a.ICES] = r[a.ICES] || new ICESReleaseGroup(a.ICES, [], null);\n r[a.ICES].Total += a.Count;\n r[a.ICES].Releases.push(a);\n return r;\n }\n}","export class Catch {\n\n public ICES: string;\n public CatchYear: number;\n public FactoryId: string;\n public FactoryName: string;\n public FactoryICES: string;\n public Catches: number;\n public TotalWeight: number;\n}","export class Color {\n constructor (\n public r: number,\n public g: number,\n public b: number) { \n }\n}","export class Factory {\n Id: string;\n Name: string;\n Longitude: number;\n Latitude: number;\n}","import { FeatureTypes } from '../enums/feature-types';\nimport { FeatureStates } from '../enums/feature-states';\n\nexport class FeatureData {\n constructor (\n public FeatureType: FeatureTypes,\n public Data: any,\n public State: FeatureStates = FeatureStates.Default,\n ) {\n \n }\n}","export class FilterRecapture {\n constructor(\n public Year: number,\n public Factory?: string[],\n public ReleaseYear?: number,\n public Expedition?: string[]\n ) {\n\n }\n}","export class Filter {\n constructor (\n public Year: number,\n public Factory?: string[]\n ){\n \n }\n}","export class Recapture {\n public ReleasedICES: string;\n public ReleasedYear: number;\n public ReleasedLongitude: number;\n public ReleasedLatitude: number;\n public RecapturedTime: string;\n public RecapturedTimestamp: Date;\n public RecapturedYear: number;\n public RecapturedFactoryId: string;\n public RecapturedFactory: string;\n public RecapturedArea: any;\n public RecapturedExpedition : string;\n}","export class Release {\n public ICES: string;\n public Year: number;\n public Count: number;\n}","export class SelectItem {\n constructor (\n public Value: any, \n public Text: string\n ) {\n \n }\n}","export enum FeatureStates {\n Default = 1,\n Highlighted,\n Hovered\n}","export enum FeatureTypes {\n ICES = 1,\n Factory,\n Releases,\n Recaptures,\n Catches\n}","export enum LayerTypes {\n Releases = 1,\n Recaptures,\n Catches\n}","import { Catch } from '../common/catch';\nimport { ICESReleases } from '../ices/ices-releases';\nimport { ICESGroup } from '../interfaces/ices-group';\n\nexport class ICESCatchGroup implements ICESGroup {\n public Total: number;\n constructor (\n public ICES: string,\n public Catches: Catch[] = [],\n public Recaptures: ICESReleases = null\n ){\n this.Total = 0;\n }\n}","export class ICESCell {\n public ICESName: string;\n public Coordinates: any[];\n}","export class ICESFilter {\n constructor(\n public ICES: string,\n public Year: number,\n public Factory: string[] = []\n ) {}\n}","import { Recapture } from '../common/recapture';\nimport { ICESReleases } from './ices-releases';\nimport { ICESGroup } from '../interfaces/ices-group';\n\nexport class ICESRecaptureGroup implements ICESGroup { \n public Total: number;\n constructor (\n public ICES: string,\n public Recaptures: Recapture[] = [],\n public Releases: ICESReleases = null\n ){\n this.Total = 0;\n }\n}\n","import { ICESTotal } from './ices-total';\n\nexport class ICESRecaptures {\n public Total: number = 0;\n public Recaptures: ICESTotal[] = [];\n}","import { Release } from '../common/release';\nimport { ICESGroup } from '../interfaces/ices-group';\nimport { ICESRecaptures } from '../ices/ices-recaptures';\n\nexport class ICESReleaseGroup implements ICESGroup {\n public Total: number;\n constructor (\n public ICES: string,\n public Releases: Release[],\n public Recaptures: ICESRecaptures\n ){\n this.Total = 0;\n }\n}","import { ICESTotal } from './ices-total';\n\nexport class ICESReleases {\n public Total: number = 0;\n public Releases: ICESTotal[] = [];\n}","export class ICESTotal {\n public Total: number;\n public Year: number;\n\n constructor(\n public ICES: string\n ) {\n this.Total = 0;\n }\n}","export { ICESGroup } from './interfaces/ices-group'\nexport { Factory } from './common/factory';\nexport { Catch } from './common/catch';\nexport { Release } from './common/release';\nexport { Recapture } from './common/recapture';\nexport { Color } from './common/color';\nexport { Filter } from './common/filter';\nexport { SelectItem } from './common/select-item';\nexport { FeatureData } from './common/feature-data';\nexport { LayerTypes } from './enums/layer-types';\nexport { FeatureTypes } from './enums/feature-types';\nexport { FeatureStates } from './enums/feature-states';\nexport { ICESCell } from './ices/ices-cell';\nexport { ICESTotal } from './ices/ices-total';\nexport { ICESFilter } from './ices/ices-filter';\nexport { ICESRecaptureGroup } from './ices/ices-recapture-group';\nexport { ICESReleaseGroup } from './ices/ices-release-group';\nexport { ICESCatchGroup } from './ices/ices-catch-group';\nexport { ICESReleases } from './ices/ices-releases';\nexport { ICESRecaptures } from './ices/ices-recaptures';\nexport { MapConfiguration } from './map/map-configuration';\nexport { InterpolatedFeatureStyle } from './map/interpolated-feature-style';","import { Color } from '../common/color';\n\nexport class InterpolatedFeatureStyle {\n public Color: Color;\n public CurrentValue: number;\n public MinValue: number;\n public MaxValue: number;\n public MinOpacity: number;\n public MaxOpacity: number;\n}","export class MapConfiguration {\n \n}","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'dateFormat'\n})\nexport class DateFormatPipe implements PipeTransform {\n\n transform(value: string): string {\n return moment(value).format('DD MMM YYYY HH:mm');\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'weightFormat'\n})\nexport class WeightFormatPipe implements PipeTransform {\n\n transform(value: number): string {\n return value.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1 \");\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router, RouterStateSnapshot, ActivatedRouteSnapshot, Resolve } from '@angular/router';\nimport { AppConfig } from '../models/config/appConfig';\nimport { AppConfigService } from './app-config.service';\n\n@Injectable()\nexport class AppConfigResoloverService implements Resolve {\n\n constructor(private appConfigService: AppConfigService, private router: Router) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n return this.appConfigService.loadEnvironment()\n .then(es => {\n this.appConfigService.setEnvSpecific(es);\n return this.appConfigService.appConfig;\n }, error => {\n console.log(error);\n return null;\n });\n }\n\n}\n","\nimport {map} from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { AppConfig } from './../models/config/appConfig';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n\n@Injectable()\nexport class AppConfigService {\n\n public appConfig: AppConfig;\n public appConfigNull: AppConfig = null;\n private appConfigSubject: BehaviorSubject = new BehaviorSubject(null);\n\n constructor(private http: HttpClient) { }\n\n public loadEnvironment() {\n // Only want to do this once - if root page is revisited, it calls this again.\n if (this.appConfig === null || this.appConfig === undefined) {\n console.log('Loading app.config.json');\n\n return this.http.get('./assets/app.config.json').pipe(\n map((data: AppConfig) => data))\n .toPromise();\n }\n\n return Promise.resolve(this.appConfigNull);\n }\n\n\n public setEnvSpecific(ac: AppConfig) {\n // This has already been set so bail out.\n if (ac === null || ac === undefined) {\n return;\n }\n\n this.appConfig = ac;\n console.log(this.appConfig);\n\n if (this.appConfigSubject) {\n this.appConfigSubject.next(this.appConfig);\n }\n }\n\n /*\n Call this if you want to know when EnvSpecific is set.\n */\n public subscribe(caller: any, callback: (caller: any, ac: AppConfig) => void) {\n this.appConfigSubject\n .subscribe((ac) => {\n if (ac === null) {\n return;\n }\n callback(caller, ac);\n });\n }\n\n}\n","export default \".filter-factory {\\n width: 300px;\\n}\\n\\n.menu-footer {\\n margin: 10px 0 5px 0;\\n font-size: 0.75em;\\n text-align: center;\\n}\\n\\n.menu-footer a {\\n text-decoration: none;\\n font-weight: bold;\\n}\\n\\n.menu-footer, .menu-footer a:visited, .menu-footer a {\\n color: rgba(0, 0, 0, 0.2);\\n}\\n\\napp-recaptures-list {\\n width: 100%;\\n}\\n\\n.details-panel-catches {\\n width: 265px !important;\\n}\\n\\n.spinner {\\n position: absolute;\\n z-index: 100;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n#recaptures-panel {\\n width: 20%;\\n}\\n\\nh3 {\\n margin: 0.7em 0;\\n}\\n\\n.filter-release-year {\\n width: 75px;\\n}\\n\\n.filter-expedition {\\n width: 300px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9obWEvRG9jdW1lbnRzL0hvbWUvd2Vicy9GaXNoLk1hcC9GaXNoLk1hcC5Bbmd1bGFyL0Zpc2hNYXAvc3JjL2FwcC9maXNoLW1hcC9maXNoLW1hcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvZmlzaC1tYXAvZmlzaC1tYXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7RUFDSSxZQUFBO0FDSko7O0FET0E7RUFDSSxvQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNKSjs7QURPQTtFQUNJLHFCQUFBO0VBQ0EsaUJBQUE7QUNKSjs7QURPQTtFQUNJLHlCQUFBO0FDSko7O0FET0E7RUFDSSxXQUFBO0FDSko7O0FEU0E7RUFDSSx1QkFBQTtBQ05KOztBRFNBO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFLQSxnQ0FBQTtBQ05KOztBRFNBO0VBQ0ksVUFBQTtBQ05KOztBRFNBO0VBQ0ksZUFBQTtBQ05KOztBRFNBO0VBQ0ksV0FBQTtBQ05KOztBRFNBO0VBQ0ksWUFBQTtBQ05KIiwiZmlsZSI6InNyYy9hcHAvZmlzaC1tYXAvZmlzaC1tYXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGFiLWdyb3VwLW1vYmlsZSB7XG4gICAgLy8gaGVpZ2h0OiAzMHB4O1xuICAgIC8vIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5maWx0ZXItZmFjdG9yeSB7XG4gICAgd2lkdGg6IDMwMHB4O1xufVxuXG4ubWVudS1mb290ZXIge1xuICAgIG1hcmdpbjogMTBweCAwIDVweCAwO1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbnUtZm9vdGVyIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1lbnUtZm9vdGVyLCAubWVudS1mb290ZXIgYTp2aXNpdGVkLCAubWVudS1mb290ZXIgYSB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuYXBwLXJlY2FwdHVyZXMtbGlzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cblxuXG4uZGV0YWlscy1wYW5lbC1jYXRjaGVzIHtcbiAgICB3aWR0aDogMjY1cHggIWltcG9ydGFudDtcbn1cblxuLnNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogNTAlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyBcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbiNyZWNhcHR1cmVzLXBhbmVsIHtcbiAgICB3aWR0aDogMjAlO1xufVxuXG5oMyB7XG4gICAgbWFyZ2luOiAwLjdlbSAwO1xufVxuXG4uZmlsdGVyLXJlbGVhc2UteWVhciB7XG4gICAgd2lkdGg6IDc1cHg7XG59XG5cbi5maWx0ZXItZXhwZWRpdGlvbiB7XG4gICAgd2lkdGg6IDMwMHB4O1xufSIsIi5maWx0ZXItZmFjdG9yeSB7XG4gIHdpZHRoOiAzMDBweDtcbn1cblxuLm1lbnUtZm9vdGVyIHtcbiAgbWFyZ2luOiAxMHB4IDAgNXB4IDA7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51LWZvb3RlciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1lbnUtZm9vdGVyLCAubWVudS1mb290ZXIgYTp2aXNpdGVkLCAubWVudS1mb290ZXIgYSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbmFwcC1yZWNhcHR1cmVzLWxpc3Qge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRldGFpbHMtcGFuZWwtY2F0Y2hlcyB7XG4gIHdpZHRoOiAyNjVweCAhaW1wb3J0YW50O1xufVxuXG4uc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuI3JlY2FwdHVyZXMtcGFuZWwge1xuICB3aWR0aDogMjAlO1xufVxuXG5oMyB7XG4gIG1hcmdpbjogMC43ZW0gMDtcbn1cblxuLmZpbHRlci1yZWxlYXNlLXllYXIge1xuICB3aWR0aDogNzVweDtcbn1cblxuLmZpbHRlci1leHBlZGl0aW9uIHtcbiAgd2lkdGg6IDMwMHB4O1xufSJdfQ== */\";","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { FormatterHelper } from '../core/helpers';\nimport { ICESCell, Factory, Catch, Release, Recapture, SelectItem, Filter, FeatureData, FeatureTypes, LayerTypes } from '../core/models';\nimport { LoggerService, FishMapService, AppSettings } from '../services';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppConfig } from '@app/core/models/config/appConfig';\nimport { FilterRecapture } from '@app/core/models/common/filter-recapture';\nimport { MatOption } from '@angular/material/core';\nimport { sortAlphaNum } from '@app/core/helpers/common/utils';\nimport { PanelOption } from './panel-option';\n\ndeclare var ol;\n@Component({\n selector: 'app-fish-map',\n templateUrl: './fish-map.component.html',\n styleUrls: ['./fish-map.component.scss']\n})\nexport class FishMapComponent implements OnInit {\n @ViewChild('map', { static: true }) map;\n @ViewChild('selectAllExpedition') private selectAllExpedition: MatOption;\n @ViewChild('selectAllFactory') private selectAllFactory: MatOption;\n @ViewChild('selectAllFactoryOnCatches') private selectAllFactoryOnCatches: MatOption;\n @ViewChild('selectAllFactoryOnPanel') private selectAllFactoryOnPanel: MatOption;\n\n panelOption = PanelOption\n\n // Options\n panelRecaptures: boolean = false;\n filterMobile: boolean = false;\n showFactories: boolean;\n showICESGrid: boolean;\n\n activeLayer: LayerTypes;\n activeFishType: string;\n factoriesList: SelectItem[];\n releaseYearsList: SelectItem[];\n catchYearsList: SelectItem[];\n recaptureYearsList: SelectItem[];\n recaptureReleaseYearsList: SelectItem[];\n expeditionList: SelectItem[];\n\n factories: Factory[];\n catches: Catch[];\n releases: Release[];\n recaptures: Recapture[];\n lastRecaptures: Recapture[];\n icesCells: ICESCell[];\n fishTypes = [];\n\n // Selected values\n selectedReleaseYear: number;\n selectedCatchYear: number;\n selectedRecaptureYear: number;\n selectedRecaptureFactory: string[];\n selectedCatchFactory: string[];\n selectedFactory: any;\n selectedFeature: any;\n selectedRecaptureListYear: number;\n selectedRecaptureListFactory: string[];\n selectedRecaptureReleaseYear: number;\n selectedRecaptureExpedition: string[];\n\n // Filters\n releasesFilter: Filter;\n recapturesFilter: Filter;\n catchesFilter: Filter;\n recaptureListFilter: FilterRecapture;\n\n // Total\n totalReleases: number = 0;\n totalRecaptures: number = 0;\n totalCatches: number = 0;\n\n formatter: FormatterHelper;\n\n showDetailsPanel: boolean;\n showLastRecapturesPanel: boolean;\n loaded: boolean;\n\n constructor(\n private logger: LoggerService,\n private fishMap: FishMapService,\n private appSettingService: AppSettings,\n private route: ActivatedRoute\n ) {\n this.formatter = new FormatterHelper();\n this.showFactories = true;\n this.showICESGrid = true;\n this.showDetailsPanel = false;\n this.showLastRecapturesPanel = true;\n this.activeLayer = LayerTypes.Releases;\n this.factoriesList = [];\n }\n\n ngOnInit() {\n\n this.route.data\n .subscribe((data: { appConfig: AppConfig }) => {\n this.mapUrls(data);\n });\n\n this.resetFilters();\n\n this.setFilters();\n\n this.getFishTypes();\n\n }\n\n loadData(): void {\n\n this.loaded = true;\n this.fishMap.getAllData(this.activeFishType).subscribe(data => {\n\n this.mapData(data)\n this.fillDropdownLists();\n this.setFilters();\n\n }, error => {\n\n this.loaded = false;\n this.logger.showErrorMessage(\"Error while loading data\");\n }, () => {\n this.loaded = false;\n });\n }\n\n\n getFishTypes() {\n this.loaded = true;\n this.fishMap.getFishTypes().pipe(\n mergeMap(response => {\n\n this.fishTypes = response;\n this.activeFishType = response[0];\n return this.fishMap.getAllData(this.activeFishType)\n }))\n .subscribe(data => {\n\n this.mapData(data)\n this.fillDropdownLists();\n this.setFilters();\n\n }, error => {\n\n this.loaded = false;\n this.logger.showErrorMessage(\"Error while loading data\");\n }, () => {\n this.loaded = false;\n });\n }\n\n changeFishType() {\n this.showDetailsPanel = false;\n this.map.removeHighlight();\n this.resetFilters();\n this.loadData();\n }\n\n fillDropdownLists(): void {\n\n // Fill factories\n this.factoriesList = this.factoriesList.concat(this.factories.map(f => new SelectItem(f.Id, f.Name)));\n\n // Fill expeditions\n let allExpedition = this.recaptures.map(f => f.RecapturedExpedition);\n let expeditions = this.formatter.getUniqueItems(allExpedition).sort(sortAlphaNum);\n this.expeditionList = this.expeditionList.concat(expeditions.map(f => new SelectItem(f, f)));\n\n // Fill release years\n let allYears = this.releases.map(r => r.Year);\n let years = this.formatter.getUniqueItems(allYears);\n this.releaseYearsList = this.releaseYearsList.concat(this.formatter.convertToSelectList(years));\n\n // Fill recapture years\n allYears = this.recaptures.map(r => r.RecapturedYear);\n years = this.formatter.getUniqueItems(allYears);\n this.recaptureYearsList = this.recaptureYearsList.concat(this.formatter.convertToSelectList(years));\n\n // Fill catch years\n allYears = this.catches.map(c => c.CatchYear);\n years = this.formatter.getUniqueItems(allYears);\n this.catchYearsList = this.catchYearsList.concat(this.formatter.convertToSelectList(years));\n\n // Fill recapture release years\n allYears = this.recaptures.map(r => r.ReleasedYear);\n years = this.formatter.getUniqueItems(allYears).sort((a, b) => b - a);\n this.recaptureReleaseYearsList = this.recaptureReleaseYearsList.concat(this.formatter.convertToSelectList(years));\n }\n\n // setLastRecaptures(): void {\n // if (this.recaptures) {\n // let lastDate = new Date();\n // lastDate.setDate(lastDate.getDate() - 365);\n // let latest = this.recaptures.filter(r => r.RecapturedTimestamp >= lastDate);\n // this.lastRecaptures = latest;\n // }\n // }\n\n setICESGridVisibility(value: boolean): void {\n this.showICESGrid = value;\n }\n\n setFactoryVisibility(value: boolean): void {\n this.showFactories = value;\n }\n\n setReleasesFilter(): void {\n this.resetSelections();\n this.releasesFilter = new Filter(this.selectedReleaseYear);\n }\n\n setRecapturesFilter(): void {\n this.resetSelections();\n this.recapturesFilter = new FilterRecapture(this.selectedRecaptureYear, this.selectedRecaptureFactory, this.selectedRecaptureReleaseYear, this.selectedRecaptureExpedition);\n }\n\n setRecaptureListFilter(): void {\n this.resetSelections();\n this.recaptureListFilter = new FilterRecapture(this.selectedRecaptureListYear, this.selectedRecaptureListFactory, 0, []);\n }\n\n setCatchesFilter(): void {\n this.resetSelections();\n this.catchesFilter = new Filter(this.selectedCatchYear, this.selectedCatchFactory);\n }\n\n onSelectFeature(data: FeatureData): void {\n switch (data.FeatureType) {\n case FeatureTypes.Releases:\n case FeatureTypes.Recaptures:\n case FeatureTypes.Catches:\n this.selectedFeature = data.Data;\n break;\n }\n if (!this.showDetailsPanel) {\n this.toggleDetails(true);\n }\n }\n\n resetSelections(): void {\n this.selectedFeature = null;\n this.toggleDetails(false);\n }\n\n toggleLastRecaptures(value: boolean): void {\n this.showLastRecapturesPanel = value;\n this.updateMapSize();\n }\n\n toggleDetails(value: boolean): void {\n this.showDetailsPanel = value;\n // this.updateMapSize();\n if (!value && this.map) {\n this.map.removeHighlight();\n }\n }\n\n updateMapSize(): void {\n if (this.map) {\n this.map.updateMapSize();\n }\n }\n\n onTotalChange(data: FeatureData): void {\n switch (data.FeatureType) {\n case FeatureTypes.Releases:\n setTimeout(() => {\n this.totalReleases = Math.round(data.Data);\n });\n break;\n case FeatureTypes.Recaptures:\n setTimeout(() => {\n this.totalRecaptures = Math.round(data.Data);\n });\n break;\n case FeatureTypes.Catches:\n setTimeout(() => {\n this.totalCatches = Math.round(data.Data);\n });\n break;\n }\n }\n\n onClickAllExpedition() {\n if (this.selectAllExpedition.selected) {\n this.selectedRecaptureExpedition = ([...this.expeditionList.map(item => item.Value), '*']);\n } else {\n this.selectedRecaptureExpedition = [];\n }\n this.setRecapturesFilter();\n }\n\n togglePerOptionForExpedition() {\n if (this.selectAllExpedition.selected) {\n this.selectAllExpedition.deselect();\n this.setRecapturesFilter();\n return false;\n }\n if (this.selectedRecaptureExpedition.length == this.expeditionList.length)\n this.selectAllExpedition.select();\n\n this.setRecapturesFilter();\n }\n\n onClickAllFactory(panelOption: number) {\n this.getSelectedFactory(panelOption);\n this.setFilterBySelectedOption(panelOption);\n }\n\n togglePerOptionForFactory(panelOption: number) {\n this.getToggleSelectedFactory(panelOption);\n this.setFilterBySelectedOption(panelOption);\n }\n\n getSelectedFactory(panelOption: number) {\n switch (panelOption) {\n case PanelOption.recaptures: {\n if (this.selectAllFactory.selected) {\n this.selectedRecaptureFactory = ([...this.factoriesList.map(item => item.Value), '*']);\n } else {\n this.selectedRecaptureFactory = [];\n }\n }\n case PanelOption.catches: {\n if (this.selectAllFactoryOnCatches.selected) {\n this.selectedCatchFactory = ([...this.factoriesList.map(item => item.Value), '*']);\n } else {\n this.selectedCatchFactory = [];\n }\n }\n }\n }\n\n getToggleSelectedFactory(panelOption: number) {\n switch (panelOption) {\n case PanelOption.recaptures: {\n if (this.selectAllFactory.selected) {\n this.selectAllFactory.deselect();\n this.setFilterBySelectedOption(panelOption);\n return false;\n }\n if (this.selectedRecaptureFactory.length == this.factoriesList.length)\n this.selectAllFactory.select();\n }\n case PanelOption.catches: {\n if (this.selectAllFactoryOnCatches.selected) {\n this.selectAllFactoryOnCatches.deselect();\n this.setFilterBySelectedOption(panelOption);\n return false;\n }\n if (this.selectedCatchFactory.length == this.factoriesList.length)\n this.selectAllFactoryOnCatches.select();\n }\n }\n }\n\n setFilterBySelectedOption(panelOption: number) {\n switch (panelOption) {\n case PanelOption.recaptures: {\n this.setRecapturesFilter();\n break;\n }\n case PanelOption.catches: {\n this.setCatchesFilter();\n break;\n }\n }\n }\n\n onClickPanelAllFactory() {\n if (this.selectAllFactoryOnPanel.selected) {\n this.selectedRecaptureListFactory = ([...this.factoriesList.map(item => item.Value), '*']);\n } else {\n this.selectedRecaptureListFactory = [];\n }\n this.setRecaptureListFilter();\n }\n\n togglePerOptionForFactoryOnPanel() {\n if (this.selectAllFactoryOnPanel.selected) {\n this.selectAllFactoryOnPanel.deselect();\n this.setRecaptureListFilter();\n return false;\n }\n if (this.selectedRecaptureListFactory.length == this.factoriesList.length)\n this.selectAllFactoryOnPanel.select();\n\n this.setRecaptureListFilter();\n }\n\n private resetFilters() {\n this.selectedReleaseYear = 0;\n\n this.selectedRecaptureYear = 0;\n this.selectedRecaptureFactory = [];\n\n this.selectedRecaptureListYear = 0;\n this.selectedRecaptureListFactory = [];\n\n this.selectedCatchYear = 0;\n this.selectedCatchFactory = [];\n\n this.selectedRecaptureReleaseYear = 0;\n this.selectedRecaptureExpedition = [];\n\n this.factoriesList = [];\n this.releaseYearsList = [];\n this.recaptureYearsList = [];\n this.catchYearsList = [];\n this.recaptureReleaseYearsList = [];\n this.expeditionList = [];\n\n // this.factoriesList.push(new SelectItem('', '*'));\n this.releaseYearsList = [new SelectItem(0, '*')];\n this.recaptureYearsList = [new SelectItem(0, '*')];\n this.catchYearsList = [new SelectItem(0, '*')];\n this.recaptureReleaseYearsList = [new SelectItem(0, '*')];\n }\n\n private setFilters() {\n this.setRecapturesFilter();\n this.setRecaptureListFilter();\n this.setReleasesFilter();\n this.setCatchesFilter();\n }\n\n private mapData(data: any[]) {\n this.factories = data[0];\n this.releases = data[1];\n this.recaptures = data[2];\n this.catches = data[3];\n this.icesCells = data[4];\n }\n\n private mapUrls(data: { appConfig: AppConfig }) {\n this.appSettingService.apiBaseUrl = data.appConfig.apiBaseUrl;\n this.appSettingService.apiFishTypeUrl = data.appConfig.apiFishTypeUrl;\n this.appSettingService.apiCatchesUrl = data.appConfig.apiCatchesUrl;\n this.appSettingService.apiFactoriesUrl = data.appConfig.apiFactoriesUrl;\n this.appSettingService.apiReleasesUrl = data.appConfig.apiReleasesUrl;\n this.appSettingService.apiRecapturesUrl = data.appConfig.apiRecapturesUrl;\n }\n\n showRecapturesList() {\n if (this.panelRecaptures) {\n this.panelRecaptures = false;\n }\n else {\n this.panelRecaptures = true;\n }\n }\n hideFilterMobile() {\n if (this.filterMobile) {\n this.filterMobile = false;\n }\n else {\n this.filterMobile = true;\n }\n }\n\n trackByFn(index: any, item: any) {\n return index;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FishMapComponent } from './fish-map.component';\nimport { DateFormatPipe } from '../core/pipes/date-format.pipe';\nimport { WeightFormatPipe } from '../core/pipes/weight-format.pipe';\nimport { RecapturesListComponent } from './recaptures-list/recaptures-list.component';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserModule,\n FormsModule,\n SharedModule\n ],\n exports: [\n FishMapComponent\n ],\n declarations: [\n DateFormatPipe,\n WeightFormatPipe,\n FishMapComponent,\n RecapturesListComponent\n ]\n})\nexport class FishMapModule { }\n","export enum PanelOption {\n releases = 1,\n recaptures = 2,\n catches = 3\n}","export default \"table {\\n width: 100%;\\n border-collapse: collapse;\\n}\\n\\nth {\\n height: 25px;\\n}\\n\\nth, td {\\n padding: 10px 20px;\\n border-bottom: 1px solid #DDD;\\n}\\n\\n.th1 {\\n width: 20%;\\n}\\n\\n.th2 {\\n width: 35%;\\n}\\n\\n.th3, .th4, .th5 {\\n width: 15%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9obWEvRG9jdW1lbnRzL0hvbWUvd2Vicy9GaXNoLk1hcC9GaXNoLk1hcC5Bbmd1bGFyL0Zpc2hNYXAvc3JjL2FwcC9maXNoLW1hcC9yZWNhcHR1cmVzLWxpc3QvcmVjYXB0dXJlcy1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9maXNoLW1hcC9yZWNhcHR1cmVzLWxpc3QvcmVjYXB0dXJlcy1saXN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksV0FBQTtFQUNBLHlCQUFBO0FDQ0o7O0FEQ0E7RUFDSSxZQUFBO0FDRUo7O0FEQUE7RUFDSSxrQkFBQTtFQUNBLDZCQUFBO0FDR0o7O0FEREE7RUFDSSxVQUFBO0FDSUo7O0FERkE7RUFDSSxVQUFBO0FDS0o7O0FESEE7RUFDSSxVQUFBO0FDTUoiLCJmaWxlIjoic3JjL2FwcC9maXNoLW1hcC9yZWNhcHR1cmVzLWxpc3QvcmVjYXB0dXJlcy1saXN0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsidGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG50aCB7XG4gICAgaGVpZ2h0OiAyNXB4O1xufVxudGgsIHRkIHtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEREQ7XG59XG4udGgxIHtcbiAgICB3aWR0aDogMjAlO1xufVxuLnRoMiB7XG4gICAgd2lkdGg6IDM1JTtcbn1cbi50aDMsIC50aDQsIC50aDUge1xuICAgIHdpZHRoOiAxNSU7XG59IiwidGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGgge1xuICBoZWlnaHQ6IDI1cHg7XG59XG5cbnRoLCB0ZCB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEREQ7XG59XG5cbi50aDEge1xuICB3aWR0aDogMjAlO1xufVxuXG4udGgyIHtcbiAgd2lkdGg6IDM1JTtcbn1cblxuLnRoMywgLnRoNCwgLnRoNSB7XG4gIHdpZHRoOiAxNSU7XG59Il19 */\";","import { Component, OnInit, Input } from '@angular/core';\n\nimport { Recapture } from '../../core/models';\nimport { RecapturesHelper } from '../../core/helpers';\nimport { Sort } from '@angular/material/sort';\nimport { FilterRecapture } from '@app/core/models/common/filter-recapture';\n\n@Component({\n selector: 'app-recaptures-list',\n templateUrl: './recaptures-list.component.html',\n styleUrls: ['./recaptures-list.component.scss'],\n})\nexport class RecapturesListComponent implements OnInit {\n public columns = [\n 'RecapturedTime',\n 'RecapturedFactory',\n 'RecapturedArea',\n 'ReleasedICES',\n 'ReleasedYear'\n ]\n\n private _recaptures: Recapture[] = [];\n private _recapturesFilter: FilterRecapture;\n\n @Input()\n set recaptures(recaptures: Recapture[]) {\n if (recaptures) {\n this._recaptures = recaptures;\n this.recapturesHelper.recaptures = recaptures;\n this.sortedData = this._recaptures.slice();\n }\n }\n\n @Input()\n set recapturesFilter(filter: FilterRecapture) {\n this._recapturesFilter = filter;\n if (filter && this._recaptures) {\n this.filterRecaptures(filter);\n }\n }\n\n sortedData: any;\n recapturesHelper: RecapturesHelper;\n\n constructor() {\n this.sortedData = this._recaptures.slice();\n this.recapturesHelper = new RecapturesHelper();\n }\n\n ngOnInit() {\n }\n\n sortData(sort: Sort) {\n let data = this._recaptures.slice();\n if (!sort.active || sort.direction == '') {\n this.sortedData = data;\n return;\n }\n\n this.sortedData = data.sort((a, b) => {\n let isAsc = sort.direction == 'asc';\n switch (sort.active) {\n case 'Date': return compare(a.RecapturedTime, b.RecapturedTime, isAsc);\n case 'RecapturedFactory': return compare(a.RecapturedFactory, b.RecapturedFactory, isAsc);\n case 'RecapturedArea': return compare(a.RecapturedArea, b.RecapturedArea, isAsc);\n case 'ReleasedICES': return compare(a.ReleasedICES, b.ReleasedICES, isAsc);\n case 'ReleasedYear': return compare(a.ReleasedYear, b.ReleasedYear, isAsc);\n default: return 0;\n }\n });\n }\n\n filterRecaptures(filter: FilterRecapture) {\n this._recaptures = this.recapturesHelper.findRecaptures(filter);\n this.sortedData = this._recaptures.slice();\n }\n\n trackByFn(index: any, item: any) {\n return index;\n }\n}\n\nfunction compare(a, b, isAsc) {\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../environments/environment';\n\nInjectable()\nexport class AppSettings {\n\n public apiBaseUrl: string;\n public apiFishTypeUrl:string;\n public apiCatchesUrl: string;\n public apiFactoriesUrl: string;\n public apiReleasesUrl: string;\n public apiRecapturesUrl: string;\n\n public readonly snackbar_action_label: string;\n public readonly snackbar_duration: number;\n\n constructor() {\n \n this.snackbar_action_label = 'close';\n this.snackbar_duration = 2000;\n }\n\n}","\nimport {map} from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, forkJoin } from 'rxjs';\n\n\nimport { AppSettings } from './app.settings';\nimport { Catch, Factory, Recapture, Release, ICESCell } from '../core/models';\nimport { FactoriesHelper, CatchesHelper, RecapturesHelper, ReleasesHelper } from '../core/helpers';\n\n@Injectable()\nexport class FishMapService {\n\n factoriesHelper: FactoriesHelper;\n catchesHelper: CatchesHelper;\n recapturesHelper: RecapturesHelper;\n releasesHelper: ReleasesHelper\n fishType:string;\n\n constructor(\n private http: HttpClient,\n private appSettings: AppSettings) {\n this.factoriesHelper = new FactoriesHelper();\n this.catchesHelper = new CatchesHelper();\n this.recapturesHelper = new RecapturesHelper();\n this.releasesHelper = new ReleasesHelper();\n }\n\n // getICESCoordinates(): Observable {\n // return this.http.get('./assets/data/_ICES_Statistical_Rectangles_Eco.json').map(response => {\n // let features: any[] = response.features;\n // return features.map(item => new ICESCell(item));\n // });\n // }\n\n getICESCoordinates(): Observable {\n return this.http.get('./assets/data/ICES_Statistical_Rectangles_Eco.json');\n }\n\n getAllData(fishType:string): Observable {\n // Declare observables\n this.fishType=fishType;\n let factoriesObservable = this.getFactories();\n let releasesObservable = this.getReleases();\n let recapturesObservable = this.getRecaptures();\n let catchesObservable = this.getCatches();\n let icesObservable = this.getICESCoordinates();\n let observables = [factoriesObservable, releasesObservable, recapturesObservable, catchesObservable, icesObservable];\n\n // Declare a fork join to load data together\n return forkJoin(observables);\n }\n\n getFactories(): Observable {\n // return this.http.get('./assets/data/factories.json');\n return this.http.get(`${this.appSettings.apiFactoriesUrl}/${this.fishType}`).pipe(map(response => {\n return response.map(item => this.factoriesHelper.createFactory(item));\n }));\n }\n\n getCatches(): Observable {\n // return this.http.get('./assets/data/catches.json');\n return this.http.get(`${this.appSettings.apiCatchesUrl}/${this.fishType}`).pipe(map(response => {\n return response.map(item => this.catchesHelper.createCatch(item));\n }));\n }\n\n getRecaptures(): Observable {\n // return this.http.get('./assets/data/recaptures.json');\n return this.http.get(`${this.appSettings.apiRecapturesUrl}/${this.fishType}`).pipe(map(response => {\n return response.map(item => this.recapturesHelper.createRecapture(item));\n }));\n }\n\n getReleases(): Observable {\n // return this.http.get('./assets/data/releases.json');\n return this.http.get(`${this.appSettings.apiReleasesUrl}/${this.fishType}`).pipe(map(response => {\n return response.map(item => this.releasesHelper.createRelease(item));\n }));\n }\n\n getFishTypes() {\n return this.http.get(`${this.appSettings.apiFishTypeUrl}`).pipe(map(response => response));\n }\n}","export * from './app.settings';\nexport * from './logger.service';\nexport * from './settings.service';\nexport * from './fish-map.service';","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\nimport { AppSettings } from './app.settings';\n\n@Injectable()\nexport class LoggerService {\n\n private actionLabel: string;\n private snackBarConfig: MatSnackBarConfig;\n\n constructor(\n private settings: AppSettings,\n private snackBar: MatSnackBar) {\n this.actionLabel = settings.snackbar_action_label;\n this.snackBarConfig = {\n duration: settings.snackbar_duration,\n };\n }\n\n public showErrorMessage(message: string) {\n this.snackBar.open(message, this.actionLabel, this.snackBarConfig);\n }\n\n public showWarningMessage(message: string) {\n this.snackBar.open(message, this.actionLabel, this.snackBarConfig);\n }\n\n public showSuccessfulMessage(message: string) {\n this.snackBar.open(message, this.actionLabel, this.snackBarConfig);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SettingsService {\n\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'groupBy'\n})\nexport class GroupByPipe implements PipeTransform {\n transform(collection: any[], property: string): any[] {\n // prevents the application from breaking if the array of objects doesn't exist yet\n if(!collection) {\n return null;\n }\n\n const groupedCollection = collection.reduce((previous, current)=> {\n if(!previous[current[property]]) {\n previous[current[property]] = [current];\n } else {\n previous[current[property]].push(current);\n }\n\n return previous;\n }, {});\n\n // this will return an array of objects, each object containing a group of objects\n return Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] }));\n }\n}","export default \".map {\\n height: 100%;\\n width: 100%;\\n}\\n\\n.popup {\\n background: #5DA514;\\n padding: 3px;\\n color: white;\\n opacity: 0.7;\\n position: relative;\\n white-space: nowrap;\\n font-size: 0.8em;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9obWEvRG9jdW1lbnRzL0hvbWUvd2Vicy9GaXNoLk1hcC9GaXNoLk1hcC5Bbmd1bGFyL0Zpc2hNYXAvc3JjL2FwcC9zaGFyZWQvbWFwL21hcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL21hcC9tYXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxZQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksbUJBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9tYXAvbWFwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucG9wdXAge1xuICAgIGJhY2tncm91bmQ6ICM1REE1MTQ7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbn0iLCIubWFwIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnBvcHVwIHtcbiAgYmFja2dyb3VuZDogIzVEQTUxNDtcbiAgcGFkZGluZzogM3B4O1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDAuOGVtO1xufSJdfQ== */\";","import { Component, ElementRef, ViewChild, Input, Output, EventEmitter } from '@angular/core';\n\nimport { ICESCell, Factory, Release, Recapture, Catch, Color, Filter, ICESFilter, FeatureData, FeatureTypes, LayerTypes, FeatureStates, InterpolatedFeatureStyle } from '../../core/models';\nimport { FactoriesHelper, ReleasesHelper, RecapturesHelper, CatchesHelper } from '../../core/helpers';\nimport { AppSettings, LoggerService, SettingsService, FishMapService } from '../../services';\nimport { FilterRecapture } from '@app/core/models/common/filter-recapture';\n\ndeclare var ol: any;\n@Component({\n selector: 'app-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent {\n @ViewChild('mapElement', { static: true }) mapElement: ElementRef;\n @ViewChild('popupElement', { static: true }) popupElement: ElementRef;\n\n // Input fields\n private _showICESGrid: boolean;\n private _showFactories: boolean;\n private _releasesFilter: Filter;\n private _recapturesFilter: FilterRecapture;\n private _catchesFilter: Filter;\n private _activeLayer: LayerTypes;\n private _factories: Factory[];\n private _releases: Release[];\n private _recaptures: Recapture[];\n private _catches: Catch[];\n private _icesCells: ICESCell[];\n \n // Input fields setters\n @Input()\n set showICESGrid(value: boolean) {\n this._showICESGrid = value;\n this.setLayerVisibility(this.icesGridLayer, value);\n }\n\n @Input()\n set showFactories(value: boolean) {\n this._showFactories = value;\n this.setLayerVisibility(this.factoriesLayer, value);\n }\n\n @Input()\n set activeLayer(layer: LayerTypes) {\n this._activeLayer = layer;\n if (layer) {\n this._activeLayer = Number(layer);\n this.changeActiveLayer();\n }\n }\n\n @Input()\n set icesCells(cells: ICESCell[]) {\n this._icesCells = cells;\n if (cells) {\n this.loadICESGrid();\n }\n }\n\n @Input()\n set factories(factories: Factory[]) {\n this._factories = factories;\n if (factories) {\n this.factoriesHelper.factories = factories;\n this.filterFactories([]);\n }\n }\n\n @Input()\n set releases(releases: Release[]) {\n this._releases = releases;\n this.releasesHelper.releases = releases;\n }\n\n @Input()\n set catches(catches: Catch[]) {\n this._catches = catches;\n this.catchesHelper.catches = catches;\n }\n\n @Input()\n set recaptures(recaptures: Recapture[]) {\n this._recaptures = recaptures;\n this.recapturesHelper.recaptures = recaptures;\n if (this._recapturesFilter) {\n this.filterRecaptures(this._recapturesFilter);\n }\n // Releases should be loaded after recaptures due to its dependency\n if (this._releasesFilter) {\n this.filterReleases(this._releasesFilter);\n }\n // Catches also should be loaded after recaptures due to its dependency\n if (this._catchesFilter) {\n this.filterCatches(this._catchesFilter);\n }\n }\n\n @Input()\n set releasesFilter(filter: Filter) {\n this._releasesFilter = filter;\n if (this._releases && this._releases.length > 0) {\n this.filterReleases(filter);\n }\n }\n\n @Input()\n set catchesFilter(filter: Filter) { \n this._catchesFilter = filter;\n if (filter) {\n this.filterFactories(filter.Factory);\n }\n if (this._catches && this._catches.length > 0) {\n this.filterCatches(filter);\n }\n }\n\n @Input()\n set recapturesFilter(filter: FilterRecapture) {\n this._recapturesFilter = filter;\n if (filter) {\n this.filterFactories(filter.Factory);\n }\n if (this._recaptures && this._recaptures.length > 0) {\n this.filterRecaptures(filter);\n }\n }\n\n // Outputs\n @Output()\n onSelectedFeatureChange = new EventEmitter();\n\n @Output()\n onTotalChange = new EventEmitter();\n\n // fileds\n map: any;\n selectedFeature: any;\n markedFeature: any;\n markedFeatures: any[];\n popup: any;\n\n // Map layers\n icesGridLayer: any;\n factoriesLayer: any;\n highlightLayer: any;\n catchesLayer: any;\n releasesLayer: any;\n recapturesLayer: any;\n\n // Helpers\n factoriesHelper: FactoriesHelper;\n releasesHelper: ReleasesHelper;\n recapturesHelper: RecapturesHelper;\n catchesHelper: CatchesHelper;\n\n constructor(\n private appSettings: AppSettings,\n private logger: LoggerService,\n private fishMap: FishMapService\n ) {\n this.icesCells = [];\n this.markedFeatures = [];\n\n this.factoriesHelper = new FactoriesHelper();\n this.releasesHelper = new ReleasesHelper();\n this.recapturesHelper = new RecapturesHelper();\n this.catchesHelper = new CatchesHelper();\n }\n\n ngOnInit() {\n this.initializeMap();\n }\n\n updateMapSize(): void {\n if (this.map) {\n setTimeout(() => this.map.updateSize(), 10);\n }\n }\n\n initializeMap() {\n this.mapElement.nativeElement.innerHTML = '';\n this.map = new ol.Map({\n layers: [\n new ol.layer.Tile({\n source: new ol.source.XYZ({\n crossOrigin: null,\n //url: 'http://{a-c}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',\n url: 'https://cartodb-basemaps-{a-c}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png',\n attributions: [ ol.source.OSM.ATTRIBUTION, '© OpenStreetMap contributors.'],\n })\n })\n ],\n // interactions: ol.interaction.defaults({\n // mouseWheelZoom: false,\n // }),\n view: new ol.View({\n center: ol.proj.transform([5, 58], 'EPSG:4326', 'EPSG:3857'),\n zoom: 4.2,\n })\n });\n // Add popup\n this.popup = new ol.Overlay({\n element: this.popupElement.nativeElement,\n offset: [0, -5],\n positioning: 'bottom-center'\n })\n this.map.addOverlay(this.popup);\n this.map.setTarget(this.mapElement.nativeElement);\n this.addFeatureClickHandler();\n this.addFeatureHoverHandler();\n\n this.addLayers();\n\n this.updateMapSize();\n }\n\n // Add required layers to the map\n addLayers(): void {\n this.icesGridLayer = this.getEmptyLayer(true, this.getICESGridStyle());\n // this.factoriesLayer = this.getEmptyLayer(true, this.getFactoryPointStyle());\n this.factoriesLayer = this.getEmptyLayer(true);\n this.releasesLayer = this.getEmptyLayer(true);\n this.recapturesLayer = this.getEmptyLayer(false);\n this.catchesLayer = this.getEmptyLayer(false);\n this.highlightLayer = this.getEmptyLayer(true);\n\n this.map.addLayer(this.icesGridLayer);\n this.map.addLayer(this.releasesLayer);\n this.map.addLayer(this.recapturesLayer);\n this.map.addLayer(this.catchesLayer);\n this.map.addLayer(this.factoriesLayer);\n this.map.addLayer(this.highlightLayer);\n }\n\n // add click event handler to features\n addFeatureClickHandler(): void {\n if (this.map) {\n let onClick = (data) => this.showRegionStatistics(data);\n this.map.on(\"click\", (event) => {\n let features = [];\n this.map.forEachFeatureAtPixel(event.pixel, function (feature, layer) {\n features.push(feature);\n });\n if (features.length > 0) {\n onClick(features[0]);\n }\n });\n }\n }\n\n // call show statistics for highlighted feature\n showRegionStatistics(feature: any): void {\n let data: FeatureData = feature.get('data');\n if (data.FeatureType != FeatureTypes.ICES && data.FeatureType != FeatureTypes.Factory) {\n this.highlightCell(feature);\n this.onSelectedFeatureChange.emit(data);\n }\n }\n\n // add hover event handler to features\n addFeatureHoverHandler(): void {\n if (this.map) {\n let onHover = (data) => this.markHoveredFeature(data);\n this.map.on('pointermove', (event) => {\n let features = [];\n this.popup.setPosition(event.coordinate);\n this.map.forEachFeatureAtPixel(event.pixel, function (feature, layer) {\n features.push(feature);\n });\n // Remove previous marked features\n this.removeMarks();\n for (let feature of features) {\n onHover(feature);\n }\n });\n }\n }\n\n // draw a thin border around features which are hovered by mouse\n markHoveredFeature(feature: any): void {\n let data: FeatureData = feature.get('data');\n if (data.FeatureType == FeatureTypes.Factory) {\n this.markFactory(feature);\n }\n else if (data.FeatureType != FeatureTypes.ICES) {\n this.markCell(feature)\n }\n }\n\n // mark factory\n markFactory(feature: any): void {\n\n let style = feature.getStyle();\n let data: FeatureData = feature.get('data');\n data.State = FeatureStates.Hovered;\n feature.set('data', data);\n feature.setStyle(style);\n\n this.popupElement.nativeElement.style.display = '';\n this.popupElement.nativeElement.innerHTML = `${data.Data.Name}`;\n\n // Save into selected feature\n this.addToMarkedFeatures(feature);\n\n // this.addFeaturesToLayer(this.highlightLayer, [feature]);\n }\n\n // mark cell\n markCell(feature: any): void {\n\n let data: FeatureData = feature.get('data');\n if (data.State != FeatureStates.Highlighted) {\n let style = feature.getStyle();\n data.State = FeatureStates.Hovered;\n feature.set('data', data);\n feature.setStyle(style);\n\n // Save into selected feature\n this.addToMarkedFeatures(feature);\n }\n }\n\n addToMarkedFeatures(feature: any): void {\n let existing = this.markedFeatures.find(f => f == feature);\n if (!existing) {\n this.markedFeatures.push(feature);\n }\n }\n\n removeMarks(): void {\n\n for (let feature of this.markedFeatures) {\n let data: FeatureData = feature.get('data');\n if (data.State != FeatureStates.Highlighted) {\n this.popupElement.nativeElement.style.display = 'none';\n\n let style = feature.getStyle();\n data.State = FeatureStates.Default;\n feature.set('data', data);\n feature.setStyle(style);\n }\n }\n this.markedFeatures = [];\n }\n\n // highlight factory\n highlightFactory(feature: any): void {\n // Remove previous\n this.removeHighlight();\n // Save into selected feature\n this.selectedFeature = feature;\n\n // let style = this.getHighlightedFactoryPointStyle();\n // feature.setStyle(style);\n this.addFeaturesToLayer(this.highlightLayer, [feature]);\n\n }\n\n // highlight cell\n highlightCell(feature: any): void {\n // Remove previous\n this.removeHighlight();\n let style = feature.getStyle();\n\n // Set highlighted feature to true\n let data: FeatureData = feature.get('data');\n data.State = FeatureStates.Highlighted;\n this.selectedFeature = feature;\n feature.set('data', data);\n feature.setStyle(style);\n\n this.addFeaturesToLayer(this.highlightLayer, [feature]);\n }\n\n // remove highlighted feature\n removeHighlight(): void {\n \n if (this.selectedFeature) {\n let data: FeatureData = this.selectedFeature.get('data');\n data.State = FeatureStates.Default;\n this.highlightLayer.getSource().clear();\n if (data.FeatureType == FeatureTypes.Factory) {\n // let style = this.getFactoryPointStyle();\n // this.selectedFeature.setStyle(style);\n }\n else {\n let style = this.selectedFeature.getStyle();\n data.State = FeatureStates.Default;\n this.selectedFeature.set('data', data);\n this.selectedFeature.setStyle(style);\n }\n }\n }\n\n // change the visible layer\n changeActiveLayer(): void {\n \n // Remove any highlighted feature\n this.removeHighlight();\n let selectedFactoryIds = [];\n // Make the active layer visible\n switch (this._activeLayer) {\n case LayerTypes.Releases:\n this.setLayerVisibility(this.releasesLayer, true);\n this.setLayerVisibility(this.recapturesLayer, false);\n this.setLayerVisibility(this.catchesLayer, false);\n break;\n case LayerTypes.Recaptures:\n selectedFactoryIds = this._recapturesFilter ? this._recapturesFilter.Factory : [];\n this.setLayerVisibility(this.releasesLayer, false);\n this.setLayerVisibility(this.recapturesLayer, true);\n this.setLayerVisibility(this.catchesLayer, false);\n break;\n case LayerTypes.Catches:\n selectedFactoryIds = this._catchesFilter ? this._catchesFilter.Factory : [];\n this.setLayerVisibility(this.releasesLayer, false);\n this.setLayerVisibility(this.recapturesLayer, false);\n this.setLayerVisibility(this.catchesLayer, true);\n break;\n }\n this.filterFactories(selectedFactoryIds);\n }\n\n // Load ICES cells grid\n loadICESGrid(): void {\n if (this._icesCells) {\n let features = [];\n for (let ices of this._icesCells) {\n let feature = this.getPolygonFeature(ices.Coordinates, new FeatureData(FeatureTypes.ICES, ices));\n let data = new FeatureData(FeatureTypes.ICES, ices);\n // feature.setStyle(this.getNamedICESGridStyle(data));\n features.push(feature);\n }\n // Draw grid lines in the map\n this.addFeaturesToLayer(this.icesGridLayer, features);\n }\n }\n\n // Filter factories in the map\n filterFactories(factory: string[]): void {\n let features = [];\n if (factory.length > 0) {\n let factories = this.factoriesHelper.findFactory(factory);\n for(let f of factories) {\n let feature = this.getIconFeature([f.Longitude, f.Latitude], new FeatureData(FeatureTypes.Factory, f));\n feature.setStyle(this.getFactoryPointStyle());\n features.push(feature);\n } \n }\n else {\n for (let factory of this.factoriesHelper.factories) {\n let feature = this.getIconFeature([factory.Longitude, factory.Latitude], new FeatureData(FeatureTypes.Factory, factory));\n feature.setStyle(this.getFactoryPointStyle());\n features.push(feature);\n }\n }\n this.addFeaturesToLayer(this.factoriesLayer, features, true);\n }\n\n // Filter releases in the map\n filterReleases(filter: Filter): void {\n let releases = [];\n releases = this.releasesHelper.findReleases(filter);\n this.drawReleases(releases, true);\n }\n\n drawReleases(releases: Release[], redraw: boolean = false): void {\n let features = [];\n let total = 0;\n if (releases.length > 0) {\n // Group releases by ICES cell\n let groups = this.releasesHelper.groupByICES(releases);\n // Fill corresponding recaptures\n for (let group of groups) {\n let recaptures = this.recapturesHelper.findRecapturesByReleasedICES(new ICESFilter(group.ICES, this._releasesFilter.Year));\n let recapturesGroups = this.recapturesHelper.getAccumulatedRecapturesByICES(recaptures);\n group.Recaptures = recapturesGroups;\n total += group.Total;\n }\n if (groups.length > 0) {\n // Get maximum\n let max = this.releasesHelper.getMaxReleaseGroup(groups);\n // Get minimum\n let min = this.releasesHelper.getMinReleaseGroup(groups);\n // Draw releases with respect to theri ICES cell\n for (let group of groups) {\n let color = new Color(0, 132, 255);//#0084FF // new Color(118, 196, 229); //#76C4E5\n let data = new FeatureData(FeatureTypes.Releases, group);\n let feature = this.getInterpolatedFeature(color, data, min.Total, max.Total);\n if (feature) {\n features.push(feature);\n }\n }\n }\n }\n this.onTotalChange.emit(new FeatureData(FeatureTypes.Releases, total));\n this.addFeaturesToLayer(this.releasesLayer, features, redraw);\n // this.fitContentToFeatures(this.releasesLayer);\n }\n\n // Filter recaptures in the map\n filterRecaptures(filter: FilterRecapture) {\n let recaptures = [];\n if (filter.Year > 0 || filter.Factory.length > 0 || filter.ReleaseYear > 0 || filter.Expedition.length > 0) {\n recaptures = this.recapturesHelper.findRecaptures(filter);\n }\n else {\n recaptures = this.recapturesHelper.recaptures;\n }\n this.drawRecaptures(recaptures, true);\n }\n\n drawRecaptures(recaptures: Recapture[], redraw: boolean = false): void {\n let features = [];\n let total = 0;\n if (recaptures.length > 0) {\n // Group recaptures by ICES cell\n let groups = this.recapturesHelper.groupByICES(recaptures);\n // Fill corresponding releases\n for (let group of groups) {\n let filter = new ICESFilter(group.ICES, this._recapturesFilter.Year, this._recapturesFilter.Factory);\n let releases = this.recapturesHelper.findReleasesByICES(filter);\n let releasesGroups = this.recapturesHelper.getAccumulatedReleasesByICES(releases);\n group.Releases = releasesGroups;\n total += group.Total;\n }\n if (groups.length > 0) {\n // Get maximum\n let max = this.recapturesHelper.getMaxRecaptureGroup(groups);\n // Get minimum\n let min = this.recapturesHelper.getMinRecaptureGroup(groups);\n // Draw releases with respect to theri ICES cell\n for (let group of groups) {\n let color = new Color(196, 60, 232); //#C43CE8\n let data = new FeatureData(FeatureTypes.Recaptures, group);\n let feature = this.getInterpolatedFeature(color, data, min.Total, max.Total);\n if (feature) {\n features.push(feature);\n }\n }\n }\n }\n this.onTotalChange.emit(new FeatureData(FeatureTypes.Recaptures, total));\n this.addFeaturesToLayer(this.recapturesLayer, features, true);\n }\n\n\n // Filter catches in the map\n filterCatches(filter: Filter) {\n let catches = [];\n if (filter.Year != 0 || filter.Factory.length > 0) {\n catches = this.catchesHelper.findCatches(filter);\n }\n else {\n catches = this.catchesHelper.catches;\n }\n this.drawCatches(catches, true);\n }\n\n drawCatches(catches: Catch[], redraw: boolean = false): void {\n let features = [];\n let total = 0;\n if (catches?.length > 0) {\n // Group catches by ICES cell\n let groups = this.catchesHelper.groupByICES(catches);\n // Fill corresponding releases\n for (let group of groups) {\n let filter = new ICESFilter(group.ICES, this._catchesFilter.Year, this._catchesFilter.Factory);\n let recaptures = this.recapturesHelper.findRecapturesByRecapturedICES(filter);\n let recapturesGroups = this.recapturesHelper.getAccumulatedReleasesByICES(recaptures);\n group.Recaptures = recapturesGroups;\n total += group.Total;\n }\n if (groups.length > 0) {\n // Get maximum\n let max = this.catchesHelper.getMaxCatchGroup(groups);\n // Get minimum\n let min = this.catchesHelper.getMinCatchGroup(groups);\n // Draw releases with respect to theri ICES cell\n for (let group of groups) {\n let color = new Color(22, 174, 0); //#16AE00\n let data = new FeatureData(FeatureTypes.Catches, group);\n let feature = this.getInterpolatedFeature(color, data, min.Total, max.Total);\n if (feature) {\n features.push(feature);\n }\n }\n }\n }\n this.onTotalChange.emit(new FeatureData(FeatureTypes.Catches, total));\n this.addFeaturesToLayer(this.catchesLayer, features, true);\n }\n\n /* Feature styles */\n\n private getInterpolatedStyleConfig(color: Color, currentValue: number, minValue: number, maxValue: number): InterpolatedFeatureStyle {\n let styleConfig: InterpolatedFeatureStyle = {\n Color: color,\n MaxOpacity: 1,\n MinOpacity: 0.3,\n CurrentValue: currentValue,\n MinValue: minValue,\n MaxValue: maxValue\n };\n return styleConfig;\n }\n\n private getICESGridStyle(): any {\n let style = new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: 'rgba(238, 238, 238, 0.5)', // '#EEE',\n width: 0.5\n })\n });\n return style;\n }\n\n private getNamedICESGridStyle(data: FeatureData): any {\n let style = () => {\n let zoom = this.map.getView().getZoom();\n let scale = (zoom - 4) * 0.5;\n let fontSize = scale * 12;\n return [new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: 'rgba(238, 238, 238, 0.5)', // '#EEE',\n width: 0.5\n }),\n text: new ol.style.Text({\n font: `${fontSize}px Roboto, \"Helvetica Neue\", sans-serif`,\n fill: new ol.style.Fill({ color: 'rgba(0, 0, 0, 0.4)' }),\n text: fontSize < 12 ? '' : data.Data.ICESName\n }),\n })];\n };\n return style;\n }\n\n private getStrokeStyle(color: string, width: number): any {\n let stroke = new ol.style.Stroke({\n color: color,\n width: width\n });\n return stroke;\n }\n\n // private getFactoryPointStyle(): any {\n // let style = new ol.style.Style({\n // image: new ol.style.Circle({\n // radius: 5,\n // fill: new ol.style.Fill({\n // color: '#5DA514'\n // })\n // })\n // });\n // return style;\n // }\n\n // getInterpolatedFeatureStyle(style: InterpolatedFeatureStyle): any {\n // let difference = Math.abs(style.MaxValue - style.MinValue + 1);\n // let opacityDifference = style.MaxOpacity - style.MinOpacity;\n // let scaledOpacity = '1';\n // if (difference > 0) {\n // scaledOpacity = ((opacityDifference / difference) * style.CurrentValue + style.MinOpacity).toFixed(2);\n // }\n // // console.log(style.MinValue, style.MaxValue);\n // // console.log('Value: ' + style.CurrentValue + ', scaledOpacity: ' + scaledOpacity);\n // let color = `rgba(${style.Color.r}, ${style.Color.g}, ${style.Color.b}, ${scaledOpacity})`;\n // let featureStyle = new ol.style.Style({\n // fill: new ol.style.Fill({\n // color: color\n // })\n // });\n // return featureStyle;\n // }\n\n private getFactoryPointStyle(): any {\n let style = (feature, resolution) => {\n let data: FeatureData = feature.get('data');\n let zoom = this.map.getView().getZoom();\n let scale = (zoom - 4) * 0.5;\n let fontSize = scale * 12;\n let strokeWidth = 0;\n let zIndex = 100;\n if (data.State == FeatureStates.Hovered) {\n strokeWidth = 2;\n zIndex = 500;\n }\n return [new ol.style.Style({\n image: new ol.style.Circle({\n radius: 5,\n fill: new ol.style.Fill({\n color: '#5DA514'\n }),\n stroke: strokeWidth == 0 ? null : new ol.style.Stroke({\n color: '#000',\n width: strokeWidth\n })\n }),\n text: new ol.style.Text({\n // font: `${ fontSize }px Roboto, \"Helvetica Neue\", sans-serif`,\n font: `10px Roboto, \"Helvetica Neue\", sans-serif`,\n offsetX: 10,\n offsetY: 0,\n textAlign: 'left',\n placement: 'point',\n fill: new ol.style.Fill({ color: 'rgba(0, 0, 0, 0.8)' }),\n text: zoom < 7 ? '' : data.Data.Name\n }),\n zIndex: zIndex\n })];\n }\n return style;\n }\n\n getInterpolatedFeatureStyle(style: InterpolatedFeatureStyle, data: FeatureData): any {\n let difference = Math.abs(style.MaxValue - style.MinValue + 1);\n let opacityDifference = style.MaxOpacity - style.MinOpacity;\n let scaledOpacity = '1';\n if (difference > 0) {\n scaledOpacity = ((opacityDifference / difference) * style.CurrentValue + style.MinOpacity).toFixed(2);\n }\n // console.log(style.MinValue, style.MaxValue);\n // console.log('Value: ' + style.CurrentValue + ', scaledOpacity: ' + scaledOpacity);\n let color = `rgba(${style.Color.r}, ${style.Color.g}, ${style.Color.b}, ${scaledOpacity})`;\n let featureStyle = (feature, resolution) => this.getInterpolatedICESStyle(feature, resolution, color);\n return featureStyle;\n }\n\n getInterpolatedICESStyle(feature: any, resolution: number, color: string) {\n let data: FeatureData = feature.get('data');\n let zoom = this.map.getView().getZoom();\n let scale = (zoom - 4) * 0.5;\n let fontSize = scale * 12;\n let strokeWidth = 0;\n let zIndex = 100;\n if (data.State == FeatureStates.Hovered) {\n strokeWidth = 2;\n }\n else if (data.State == FeatureStates.Highlighted) {\n strokeWidth = 3;\n }\n return [new ol.style.Style({\n fill: new ol.style.Fill({\n color: color\n }),\n stroke: strokeWidth == 0 ? null : new ol.style.Stroke({\n color: '#000',\n width: strokeWidth\n }),\n text: new ol.style.Text({\n font: `${fontSize}px Roboto, \"Helvetica Neue\", sans-serif`,\n fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.5)' }),\n text: fontSize < 12 ? '' : data.Data.ICES\n }),\n })];\n }\n\n /* Helper functions */\n\n private findICESCell(icesName: string): ICESCell {\n let cell = this._icesCells.find(i => i.ICESName == icesName);\n return cell;\n }\n\n private getPolygonFeature(coordinates: any[], data: FeatureData): any {\n let feature = new ol.Feature({\n geometry: new ol.geom.Polygon(coordinates),\n data: data\n });\n feature.getGeometry().transform('EPSG:4326', 'EPSG:3857');\n return feature;\n }\n\n private getIconFeature(point: [number, number], data?: any): any {\n let feature = new ol.Feature({\n geometry: new ol.geom.Point(ol.proj.transform(point, 'EPSG:4326', 'EPSG:3857')),\n data: data\n });\n return feature;\n }\n\n private getEmptyLayer(visible: boolean, style?: any): any {\n let source = new ol.source.Vector({\n features: []\n });\n let layer = new ol.layer.Vector({\n source: source,\n style: style,\n visible: visible\n });\n return layer;\n }\n\n // Get interpolated feature\n private getInterpolatedFeature(color: Color, data: FeatureData, min: number, max: number): any {\n let feature;\n let icesCell = this.findICESCell(data.Data.ICES);\n if (icesCell) {\n feature = this.getPolygonFeature(icesCell.Coordinates, data);\n let styleConfig = this.getInterpolatedStyleConfig(color, data.Data.Total, min, max);\n let style = this.getInterpolatedFeatureStyle(styleConfig, data);\n feature.setStyle(style);\n }\n return feature;\n }\n\n private setLayerVisibility(layer: any, value: boolean): void {\n if (layer) {\n layer.setVisible(value);\n }\n }\n\n private addFeaturesToLayer(layer: any, features: any[], redraw: boolean = false): void {\n if (layer) {\n let source = layer.getSource();\n if (source) {\n if (redraw) {\n source.clear();\n }\n for (let feature of features) {\n source.addFeature(feature);\n }\n }\n }\n }\n\n private fitContentToFeatures(layer: any): void {\n if (layer) {\n let source = layer.getSource();\n if (source) {\n this.map.getView().fit(source.getExtent(), this.map.getSize(), { maxZoom: 10 });\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MapComponent } from './map/map.component';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTableModule } from '@angular/material/table';\nimport { GroupByPipe } from './group.pipe';\n\n@NgModule({\n imports: [\n FlexLayoutModule,\n MatTabsModule,\n MatButtonToggleModule,\n MatToolbarModule,\n MatIconModule,\n MatSnackBarModule,\n MatSelectModule,\n MatMenuModule,\n MatTooltipModule,\n MatButtonModule,\n MatSidenavModule,\n MatProgressSpinnerModule,\n CommonModule,\n ],\n exports: [\n FlexLayoutModule,\n MatTabsModule,\n MatButtonToggleModule,\n MatToolbarModule,\n MatIconModule,\n MatSnackBarModule,\n MatSelectModule,\n MatMenuModule,\n MatTooltipModule,\n MatButtonModule,\n MatSidenavModule,\n MatTableModule,\n MatProgressSpinnerModule,\n MatSortModule,\n MapComponent,\n GroupByPipe\n ],\n declarations: [\n MapComponent,\n GroupByPipe\n ]\n})\nexport class SharedModule { }\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n // api_url: 'http://tracfish.imr.no:9000/api/',\n api_url: 'http://smartfishsvc.smartsea.no/api/'\n // api_url: 'http://s3.smartsea.no:9000/api/'\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport 'hammerjs';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n"]}