{"version":3,"sources":["webpack:///./wwwroot/src/js/store/modules/field-record-system/biomass-maps/index.js"],"names":["defaults","data","satelliteImages","ignoredImageCount","selectedImageId","borderGeometry","ui","calculationStarted","startDate","moment","subtract","startOf","buffer","useRedBorder","__webpack_exports__","namespaced","state","getters","selectedImage","find","image","id","mutations","_objectSpread","makeSetters","setSatelliteImages","images","forEach","recordingDate","substring","concat","dataSource","setDefaultState","Object","assign","setSelectedImageId","resetSelectedImageId","actions","loadBorderGeometry","_ref","commit","rootState","rootGetters","smarterGet","expiry","inputs","harvestYear","fieldRecordSystem","userSettings","fieldId","onResult","geometry","loadSatelliteImages","_ref2","format","sharedCache","_ref3","loadPrerequisiteData","_loadPrerequisiteData","C_src_Solutions_WebApp_node_modules_babel_runtime_corejs2_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__","regeneratorRuntime","mark","_callee","_ref4","dispatch","wrap","_context","prev","next","Promise","all","stop","_x","apply","this","arguments","calculateBiomassMap","_ref5","biomassData","cloudMean","imageDate","ndviMean","dto","geoJsonGeometry","smarterPost"],"mappings":"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","file":"js/chunk-774b6f63.262ab013.js","sourcesContent":["import {makeSetters} from '@helpers/vuex/mutations'\r\nimport {smarterGet, smarterPost} from '@helpers/vuex/data-loading'\r\n\r\nimport moment from 'moment'\r\n\r\nconst defaults = () => ({\r\n data: {\r\n satelliteImages: [],\r\n ignoredImageCount: 0,\r\n selectedImageId: null,\r\n borderGeometry: null\r\n },\r\n ui: {\r\n calculationStarted: false,\r\n startDate: moment().subtract(1, 'month').startOf('d'),\r\n buffer: 10,\r\n useRedBorder: true\r\n }\r\n})\r\n\r\nexport default {\r\n namespaced: true,\r\n state: defaults(),\r\n getters: {\r\n selectedImage (state) {\r\n if (!state.data.selectedImageId) return null\r\n return state.data.satelliteImages.find(image => image.id === state.data.selectedImageId)\r\n }\r\n },\r\n mutations: {\r\n ...makeSetters([\r\n 'data.satelliteImages',\r\n 'data.borderGeometry',\r\n 'data.ignoredImageCount',\r\n 'ui.calculationStarted',\r\n 'ui.startDate',\r\n 'ui.buffer',\r\n 'ui.useRedBorder'\r\n ]),\r\n setSatelliteImages (state, images) {\r\n images.forEach(image => {\r\n // for testing: fix dto format\r\n image.recordingDate = image.recordingDate.substring(0, 10)\r\n // for testing: create surrogate id for UI\r\n image.id = `${image.recordingDate}-${image.dataSource}`\r\n })\r\n\r\n state.data.satelliteImages = images\r\n },\r\n setDefaultState (state) {\r\n Object.assign(state, defaults())\r\n },\r\n setSelectedImageId (state, id) {\r\n state.data.selectedImageId = state.data.selectedImageId !== id\r\n ? id\r\n : null\r\n state.ui.calculationStarted = false\r\n },\r\n resetSelectedImageId (state) {\r\n state.data.selectedImageId = null\r\n state.ui.calculationStarted = false\r\n }\r\n },\r\n actions: {\r\n loadBorderGeometry ({commit, rootState, rootGetters}) {\r\n return smarterGet('/api/v2/entities/fields/{fieldId}/geodata/{harvestYear}', {\r\n id: 'biomassMaps.borderGeometry',\r\n expiry: 0, // NOTE does not work properly with high expiration because store location is unloaded on module exit\r\n inputs: {\r\n harvestYear: () => rootState.fieldRecordSystem.userSettings.harvestYear,\r\n fieldId: () => rootGetters['fieldRecordSystem/fieldId']\r\n },\r\n onResult (geometry) {\r\n commit('setBorderGeometry', geometry)\r\n }\r\n })\r\n },\r\n loadSatelliteImages ({commit, rootGetters, state}) {\r\n state.ui.selectedImageId = null\r\n\r\n const fieldId = rootGetters['fieldRecordSystem/fieldId']\r\n const harvestYear = rootGetters['fieldRecordSystem/harvestYear']\r\n const startDate = moment(state.ui.startDate).format('YYYY-MM-DD')\r\n\r\n return smarterGet(`/api/v2/biomass/entities/fields/${fieldId}/biomass-map/${harvestYear}/images/${startDate}`, {\r\n id: 'get.ndviPreview',\r\n expiry: 5,\r\n inputs: {\r\n fieldId: () => fieldId,\r\n harvestYear: () => harvestYear,\r\n startDate: () => startDate\r\n },\r\n sharedCache: true,\r\n onResult ({images, ignoredImageCount}) {\r\n commit('resetSelectedImageId')\r\n commit('setIgnoredImageCount', ignoredImageCount)\r\n commit('setSatelliteImages', images)\r\n }\r\n })\r\n },\r\n async loadPrerequisiteData ({commit, dispatch}) {\r\n commit('setDefaultState')\r\n\r\n await Promise.all([\r\n dispatch('loadSatelliteImages'),\r\n dispatch('loadBorderGeometry')\r\n ])\r\n },\r\n calculateBiomassMap ({rootGetters, rootState, state}) {\r\n const fieldId = rootGetters['fieldRecordSystem/fieldId']\r\n const harvestYear = rootGetters['fieldRecordSystem/harvestYear']\r\n\r\n const biomassData = state.data.satelliteImages.find(image => image.id === state.data.selectedImageId)\r\n\r\n const {cloudMean, recordingDate: imageDate, ndviMean} = biomassData\r\n\r\n const dto = {\r\n fieldId,\r\n harvestYear,\r\n geoJsonGeometry: state.data.borderGeometry,\r\n cloudMean,\r\n imageDate,\r\n ndviMean,\r\n buffer: state.ui.useRedBorder ? state.ui.buffer : null\r\n }\r\n\r\n return smarterPost('/api/v2/biomass/create', dto, {\r\n id: 'frs.zoneMaps.sentinel.createZoneMap'\r\n })\r\n }\r\n }\r\n}\r\n"],"sourceRoot":""}