{"version":3,"sources":["webpack:///./wwwroot/src/vue/areas/field-record-system/components/cultivation-planning/helpers.js","webpack:///./wwwroot/src/vue/areas/field-record-system/components/cultivation-overview/helpers.js","webpack:///./wwwroot/src/js/store/modules/field-record-system/cultivation-overview/getters.js","webpack:///./wwwroot/src/js/store/modules/field-record-system/cultivation-overview/actions.js","webpack:///./wwwroot/src/js/store/modules/field-record-system/cultivation-overview/mutations.js","webpack:///./wwwroot/src/js/store/modules/field-record-system/cultivation-overview/index.js"],"names":["toCultivationName","cultivation","frsTranslations","store","state","i18n","translations","type","name","concat","cropUsageId","toString","mixtureComponents","toMixtureName","CatchCrop","EcologicalPriorityAreas","TwoCropUsage","Error","InvalidCultivationType","components","sorted","orderBy","componentsShort","map","component","format","percentage","join","isEcoCompatible","Math","max","apply","Object","C_src_Solutions_WebApp_node_modules_babel_runtime_corejs2_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","x","__webpack_require__","d","__webpack_exports__","cultivationToColor","cultivationToName","cultivationTypeToShortcut","src_js_i18n_translate__WEBPACK_IMPORTED_MODULE_0__","_cultivation_planning_helpers__WEBPACK_IMPORTED_MODULE_1__","color","ecoTypeId","console","error","id","translate","cultivationData","cultivations","length","properties","cultivationDataLookup","getters","keyBy","cultivationFeatureLookup","visibleCultivationFeatures","filter","feature","visible","includes","visibleCultivationData","selectedCultivationData","selected","cultivationId","fieldDataLookup","fields","field","fieldFeatureLookup","selectedFieldFeatures","selectedFieldIds","fieldIds","reduce","acc","curr","loadPrerequisiteData","_ref","dispatch","rootState","can","permissions","Promise","all","root","resolve","loadCultivations","_ref2","commit","smarterGet","inputs","orgUnitId","fieldRecordSystem","navigation","location","harvestYear","userSettings","sharedCache","onResult","_ref3","_ref4","slicedToArray","data","orgUnitName","deleteCultivation","_ref5","smarterDelete","then","acceptAndToggleFilterRule","_ref6","rule","ruleAccepted","hasOwnProperty","toggleCultivation","_ref7","features","mutations","_objectSpread","makeSetters","removeUnknownSelected","cultivationIds","ids","initializeCultivations","forEach","label","typeShortcut","toConsumableArray","index","indexOf","splice","push","toggleRule","clone","filterRules","findIndex","ruleElement","property","setVisibleCultivations","visibleCultivation","clearSelected","clearFilter","deselectFilterType","reset","defaults","assign","namespaced","actions"],"mappings":"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","file":"js/chunk-6972ffa2.7435b00d.js","sourcesContent":["import store from '@store'\r\nimport {orderBy} from 'lodash'\r\n\r\nimport {format} from 'src/js/i18n/conversion'\r\n\r\nexport const toCultivationName = (cultivation) => {\r\n if (!cultivation) {\r\n return ''\r\n }\r\n\r\n const frsTranslations = store.state.i18n.translations['Areas.FieldRecordSystem.SR_FieldRecordSystem']\r\n\r\n switch (cultivation.type) {\r\n case 'main':\r\n case 'secondary': {\r\n const name = store.state.i18n.translations['masterData.crops.usage'][`${cultivation.cropUsageId}_name`]\r\n\r\n return frsTranslations[`CultivationType_${cultivation.type}`]\r\n ? typeof name === 'string'\r\n ? `${frsTranslations[`CultivationType_${cultivation.type}`]} - ${name}`\r\n : frsTranslations[`CultivationType_${cultivation.type}`].toString()\r\n : null\r\n }\r\n case 'catch': {\r\n const frsTranslations = store.state.i18n.translations['Areas.FieldRecordSystem.SR_FieldRecordSystem']\r\n return cultivation.mixtureComponents ? toMixtureName(cultivation.mixtureComponents) : frsTranslations.CatchCrop\r\n }\r\n case 'eco':\r\n return frsTranslations.EcologicalPriorityAreas\r\n case 'dual':\r\n return frsTranslations.TwoCropUsage ? frsTranslations.TwoCropUsage.concat(` - ${'a'} + ${'b'}`) : null\r\n default:\r\n throw new Error(frsTranslations.InvalidCultivationType.concat(`: ${cultivation.type}`))\r\n }\r\n}\r\n\r\nexport const toMixtureName = (components) => {\r\n const sorted = orderBy(components, ['percentage', 'cropUsageId'], ['desc', 'asc'])\r\n const componentsShort = sorted.map((component) => {\r\n const name = store.state.i18n.translations['masterData.crops.usage'][`${component.cropUsageId}_name`]\r\n return `${name} (${format(component.percentage, 'percent')})`\r\n })\r\n return componentsShort.join(', ')\r\n}\r\n\r\nexport const isEcoCompatible = (components) => {\r\n return Math.max(...components.map(x => x.percentage)) < 0.6\r\n}\r\n","import translate from 'src/js/i18n/translate'\r\nimport {toMixtureName} from '../cultivation-planning/helpers'\r\n\r\nexport function cultivationToColor (cultivation) {\r\n let color\r\n switch (cultivation.type) {\r\n case 'main':\r\n case 'secondary':\r\n color = cultivation.color\r\n break\r\n case 'eco': {\r\n switch (cultivation.ecoTypeId) {\r\n case 'Brache': {\r\n color = '#4a91b1'\r\n break\r\n }\r\n default: {\r\n color = '#6c9db3'\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'catch': {\r\n color = '#302f69'\r\n break\r\n }\r\n default: {\r\n color = '#ff0000'\r\n break\r\n }\r\n }\r\n return color || '#3b3b3b'\r\n}\r\n\r\nexport function cultivationToName (cultivation) {\r\n switch (cultivation.type) {\r\n case 'main':\r\n case 'secondary': {\r\n if (!cultivation.cropUsageId) {\r\n console.error(`cropUsageId for cultivation with id ${cultivation.id} is null`)\r\n }\r\n return translate(`masterData.crops.usage.${cultivation.cropUsageId}_name`)\r\n }\r\n case 'catch': {\r\n return cultivation.mixtureComponents\r\n ? toMixtureName(cultivation.mixtureComponents)\r\n : translate('Areas.FieldRecordSystem.SR_FieldRecordSystem.CatchCrop')\r\n }\r\n case 'eco':\r\n return translate(`Areas.FieldRecordSystem.SR_FieldRecordSystem.EcoTypes_${cultivation.ecoTypeId}`)\r\n default:\r\n throw new Error(translate('Areas.FieldRecordSystem.SR_FieldRecordSystem.InvalidCultivationType').concat(`: ${cultivation.type}`))\r\n }\r\n}\r\n\r\nexport function cultivationTypeToShortcut (cultivation) {\r\n return translate(`Areas.FieldRecordSystem.SR_FieldRecordSystem.CultivationType_${cultivation.type}_shortcut`)\r\n}\r\n","import {keyBy} from 'lodash'\r\n\r\n// cultivation getters\r\nexport function cultivationData (state) {\r\n if (!state.cultivations.length) return []\r\n return state.cultivations.map(cultivation => cultivation.properties)\r\n}\r\n\r\nexport function cultivationDataLookup (state, getters) {\r\n if (!getters.cultivationData.length) return {}\r\n return keyBy(getters.cultivationData, 'id')\r\n}\r\n\r\nexport function cultivationFeatureLookup (state) {\r\n if (!state.cultivations.length) return {}\r\n return keyBy(state.cultivations, 'properties.id')\r\n}\r\n\r\nexport function visibleCultivationFeatures (state) {\r\n return state.cultivations.filter(feature => state.visible.includes(feature.properties.id))\r\n}\r\n\r\nexport function visibleCultivationData (state) {\r\n if (!state.cultivations.length) return []\r\n return state.cultivations.filter(feature => state.visible.includes(feature.properties.id)).map(cultivation => cultivation.properties)\r\n}\r\n\r\nexport function selectedCultivationData (state, getters) {\r\n if (!state.selected.length) return getters.cultivationData\r\n return state.selected.map(cultivationId => getters.cultivationDataLookup[cultivationId])\r\n}\r\n// field getters\r\nexport function fieldDataLookup (state) {\r\n if (!state.fields.length) return {}\r\n\r\n const properties = state.fields.map(field => field.properties)\r\n return keyBy(properties, 'id')\r\n}\r\n\r\nexport function fieldFeatureLookup (state) {\r\n if (!state.fields.length) return {}\r\n return keyBy(state.fields, 'properties.id')\r\n}\r\n\r\nexport function selectedFieldFeatures (state, getters) {\r\n if (!state.fields.length) return []\r\n return getters.selectedFieldIds.map(id => getters.fieldFeatureLookup[id])\r\n}\r\n\r\nexport function selectedFieldIds (state, getters) {\r\n return state.selected.map(cultivationId => getters.cultivationDataLookup[cultivationId])\r\n .map(cultivation => cultivation.fieldIds)\r\n .reduce((acc, curr) => acc.concat(curr), [])\r\n}\r\n","import {can} from '@helpers/permissions'\r\nimport {smarterGet, smarterDelete} from '@helpers/vuex/data-loading'\r\n\r\nexport function loadPrerequisiteData ({dispatch, rootState}) {\r\n if (can(rootState.permissions, 'Use.Frs.Cultivations')) {\r\n return Promise.all([\r\n dispatch('fieldRecordSystem/machines/loadMachines', null, {root: true}),\r\n dispatch('fieldRecordSystem/persons/loadPersons', null, {root: true}),\r\n dispatch('loadCultivations')\r\n ])\r\n } else {\r\n return Promise.resolve()\r\n }\r\n}\r\n\r\nexport function loadCultivations ({commit, rootState}) {\r\n return smarterGet([\r\n '/api/v2/{harvestYear}/org/{orgUnitId}/cultivations'\r\n ], {\r\n id: 'orgUnit.cultivations.loadCultivations',\r\n inputs: {\r\n orgUnitId: () => rootState.fieldRecordSystem.navigation.location.orgUnitId,\r\n harvestYear: () => rootState.fieldRecordSystem.userSettings.harvestYear\r\n },\r\n sharedCache: true,\r\n onResult ([data]) {\r\n commit('removeUnknownSelected', data.cultivations)\r\n commit('initializeCultivations', data.cultivations)\r\n commit('setFields', data.fields)\r\n commit('setOrgUnitName', data.orgUnitName)\r\n }\r\n })\r\n}\r\n\r\nexport function deleteCultivation ({commit, dispatch}, cultivationId) {\r\n return smarterDelete('/api/v2/cultivations/{cultivationId}', {\r\n id: 'orgUnit.cultivationsV2.delete',\r\n inputs: {\r\n cultivationId: () => cultivationId\r\n }\r\n }).then(() => {\r\n commit('toggleCultivation', cultivationId)\r\n dispatch('loadPrerequisiteData')\r\n })\r\n}\r\n\r\nexport function acceptAndToggleFilterRule ({commit}, rule) {\r\n let ruleAccepted = true\r\n if (!rule.hasOwnProperty('property')) {\r\n console.error('Rule property \\'property\\' is missing')\r\n ruleAccepted = false\r\n }\r\n if (!rule.hasOwnProperty('filter')) {\r\n console.error('Rule property \\'filter\\' is missing')\r\n ruleAccepted = false\r\n }\r\n if (!rule.hasOwnProperty('operation')) {\r\n console.error('Rule property \\'operation\\' is missing')\r\n ruleAccepted = false\r\n }\r\n\r\n if (ruleAccepted) {\r\n commit('toggleRule', rule)\r\n }\r\n}\r\n\r\nexport function toggleCultivation ({state, commit, dispatch}, cultivationId) {\r\n commit('toggleCultivation', cultivationId)\r\n const features = state.cultivations.filter(feature => state.selected.includes(feature.properties.id))\r\n return dispatch('fieldRecordSystem/map/focus', features, {root: true})\r\n}\r\n","import {defaults} from './index'\r\nimport {cultivationToColor, cultivationToName, cultivationTypeToShortcut} from '@frs/components/cultivation-overview/helpers'\r\n\r\nimport {makeSetters} from '@helpers/vuex/mutations'\r\n\r\nconst mutations = {\r\n ...makeSetters([\r\n 'cultivations',\r\n 'fields',\r\n 'orgUnitName',\r\n 'selected'\r\n ]),\r\n removeUnknownSelected (state, cultivations) {\r\n const cultivationIds = cultivations.map(x => x.properties.id)\r\n const ids = state.selected.filter(id => cultivationIds.includes(id))\r\n state.selected = ids\r\n },\r\n initializeCultivations (state, cultivations) {\r\n cultivations.forEach(cultivation => {\r\n cultivation.properties.color = cultivationToColor(cultivation.properties)\r\n cultivation.properties.label = cultivationToName(cultivation.properties)\r\n cultivation.properties.typeShortcut = cultivationTypeToShortcut(cultivation.properties)\r\n })\r\n state.cultivations = cultivations\r\n },\r\n toggleCultivation (state, cultivationId) {\r\n const ids = [...state.selected]\r\n if (ids.includes(cultivationId)) {\r\n const index = ids.indexOf(cultivationId)\r\n ids.splice(index, 1)\r\n } else {\r\n ids.push(cultivationId)\r\n }\r\n state.selected = ids\r\n },\r\n toggleRule (state, rule) {\r\n const clone = [...state.filterRules]\r\n const index = clone.findIndex(ruleElement => (ruleElement.property === rule.property && ruleElement.filter === rule.filter))\r\n\r\n if (index !== -1) {\r\n clone.splice(index, 1)\r\n } else {\r\n clone.push(rule)\r\n }\r\n state.filterRules = clone\r\n },\r\n setVisibleCultivations (state, visibleCultivation) {\r\n state.visible = visibleCultivation.map(x => x.id)\r\n },\r\n clearSelected (state) {\r\n state.selected = []\r\n },\r\n clearFilter (state) {\r\n state.filterRules = []\r\n },\r\n deselectFilterType (state, type) {\r\n state.filterRules = state.filterRules.filter(x => x.property !== type)\r\n },\r\n reset (state) {\r\n var reset = {...defaults(), selected: state.selected}\r\n Object.assign(state, reset)\r\n }\r\n}\r\n\r\nexport default mutations\r\n","import * as getters from './getters'\r\nimport * as actions from './actions'\r\nimport mutations from './mutations'\r\n\r\nexport const defaults = () => ({\r\n orgUnitName: null,\r\n cultivations: [],\r\n fields: [],\r\n selected: [],\r\n visible: [],\r\n filterRules: []\r\n})\r\n\r\nexport default {\r\n namespaced: true,\r\n state: defaults(),\r\n getters,\r\n actions,\r\n mutations\r\n}\r\n"],"sourceRoot":""}