{"version":3,"sources":["webpack:///./src/modules/AreaSaggio/services/areaSaggioService.ts","webpack:///./src/modules/AreaSaggioPiantaCampione/components/form.vue?fe90","webpack:///./src/modules/AreaSaggioPiantaCampione/components/form.ts","webpack:///./src/modules/AreaSaggioPiantaCampione/components/form.ts?9bc6","webpack:///./src/modules/AreaSaggioPiantaCampione/components/form.vue","webpack:///./src/modules/AreaSaggioPiantaCampione/components/display.vue?ea06","webpack:///./src/modules/AreaSaggioPiantaCampione/components/display.ts","webpack:///./src/modules/AreaSaggioPiantaCampione/components/display.ts?0cbb","webpack:///./src/modules/AreaSaggioPiantaCampione/components/display.vue","webpack:///./src/modules/AreaSaggioPiantaCampione/components/index.ts","webpack:///./src/modules/AreaSaggioPiantaCampione/components/index.ts?24e8","webpack:///./src/modules/AreaSaggio/store/areaSaggio.store.ts","webpack:///./src/modules/Reports/store/report.store.ts","webpack:///./src/utils/ApplyArrayChange.ts"],"names":["AreaSaggioService","baseUrl","api","apiServerUrl","versioneId","ts","this","Get","id","obj","Post","Delete","areaSaggioService","render","_vm","_h","$createElement","_c","_self","staticClass","on","$event","cancel","ref","preventDefault","stopPropagation","validateForm","_v","attrs","directives","name","rawName","value","expression","$$selectedVal","Array","prototype","filter","call","target","options","o","selected","map","val","_value","$set","multiple","_l","a","key","domProps","_s","nome","d","label","model","callback","$$v","composing","remove","_e","formIsValid","ok","staticRenderFns","Form","saving","setTimeout","$refs","form","checkValidity","Unchanged","closeModal","actions","setAreaSaggioPiantaCampione","slideShow","save","Changed","beforeDelete","show","Deleted","response","status","error","getters","requiredSync","needSync","online","onlineCheck","specieAreaSaggio","areeSaggio","find","f","areaSaggioId","speciePresenti","specieArboree","includes","get","getAll","default","lazy","component","Display","isWeb","Index","showSearchBar","text","selectedArea","showsize","items","i","navigation","sort","b","specieOrder","specie","diametro","n","item","modalHelper","showModal","Object","assign","result","areeSaggioPiantaCampione","currentVersion","store","storeSaggio","m","description","set_filter","area","set_logarithmic_regression","applyFilter","slice","current","TABLES","areaSaggio","areaSaggioClasseDiametrica","areaSaggioPiantaCampione","AreaSaggioStore","PREFIX","namespaced","mutations","state","length","getMaxTs","maxts","List","then","r","set","resultDoSync","some","s","__needsSync","classeDiametricaDoSync","piantaCampionDoSync","nearestAreaSaggio","position","ui","currentGPSPosition","areaSaggioStore","distance","shift","setAreaSaggio","context","payload","operation","update","create","toString","Set","op","publish","type","oldTypeId","newTypeId","Remove","clean","Promise","all","Math","sqrt","pow","abs","longitude","latitude","ReportStore","logarithmicRegression","regression","init","getValuesOfLogarithmicExpression","commit","reportStore","coordinates","pianteCampione","altezza","data","order","precision","sum","len","log","coeffB","round","coeffA","fn","x","points","point","equation","string","r2","determinationCoefficient","results","predictions","observations","forEach","push","reduce","observation","mean","ssyy","difference","sse","accum","index","prediction","residual","number","factor","applyArrayChanges","source","dest","comparer","from","element","unchanged","deleted","idx","findIndex","splice","changed"],"mappings":"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","file":"chunk-775a4e74.js","sourcesContent":["import { baseRestService } from \"@/utils/baseRestService\"\r\nimport { Config } from '@/config';\r\n\r\nclass AreaSaggioService extends baseRestService {\r\n\r\n constructor() {\r\n super()\r\n this.baseUrl = Config.api.apiServerUrl;\r\n }\r\n\r\n async List(versioneId: string, ts: number): Promise {\r\n return await this.Get(`/api/in-situ/${versioneId}/area-saggio`, { ts: ts }) || [];\r\n }\r\n\r\n async Detail(id: string, versioneId: string): Promise {\r\n return await this.Get(`/api/in-situ/${versioneId}/area-saggio/${id}`);\r\n }\r\n\r\n async Set(obj: server.areaSaggio, versioneId: string): Promise {\r\n return await this.Post(`/api/in-situ/${versioneId}/area-saggio`, obj);\r\n }\r\n\r\n async Remove(id: string, versioneId: string): Promise {\r\n return await this.Delete(`/api/in-situ/${versioneId}/area-saggio/${id}`);\r\n }\r\n}\r\n\r\nexport const areaSaggioService = new AreaSaggioService();","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dialog',{staticClass:\"form-container\"},[_c('header',[_c('button',{staticClass:\"btn-cancel \",on:{\"click\":function($event){return _vm.cancel()}}},[_c('i',{staticClass:\"fas fa-arrow-left hide-mobile\"}),_c('i',{staticClass:\"fas fa-chevron-right hide-web\"})])]),_c('form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();},\"blur\":_vm.validateForm}},[_c('section',[_c('label',[_vm._v(\"Dati generali\")]),_c('cell',{attrs:{\"validate\":true,\"immediate\":true,\"placeholder\":\"Area di Saggio\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.areaSaggioId),expression:\"value.areaSaggioId\"}],attrs:{\"name\":\"areaSaggioId\",\"id\":\"areaSaggioId\",\"required\":\"true\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"areaSaggioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.areeSaggio),function(a){return _c('option',{key:a.id,domProps:{\"value\":a.id}},[_vm._v(_vm._s(a.nome))])}),0)]),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Specie\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.specie),expression:\"value.specie\"}],attrs:{\"name\":\"specie\",\"id\":\"specie\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"specie\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.specieArboreeAreaSaggio),function(d){return _c('option',{key:d.id,domProps:{\"value\":d.id}},[_vm._v(_vm._s(d.label))])}),0)]),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Diametro\"}},[_c('numeric',{attrs:{\"min\":0},model:{value:(_vm.value.diametro),callback:function ($$v) {_vm.$set(_vm.value, \"diametro\", $$v)},expression:\"value.diametro\"}}),_c('small',[_vm._v(\"cm\")])],1),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Diametro metà altezza\"}},[_c('numeric',{attrs:{\"min\":0},model:{value:(_vm.value.diametroMetaAltezza),callback:function ($$v) {_vm.$set(_vm.value, \"diametroMetaAltezza\", $$v)},expression:\"value.diametroMetaAltezza\"}}),_c('small',[_vm._v(\"cm\")])],1),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Altezza\"}},[_c('numeric',{attrs:{\"min\":0},model:{value:(_vm.value.altezza),callback:function ($$v) {_vm.$set(_vm.value, \"altezza\", $$v)},expression:\"value.altezza\"}}),_c('small',[_vm._v(\"m\")])],1),_c('cell',{staticClass:\"note\",attrs:{\"validate\":false,\"placeholder\":\"Note\"}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.note),expression:\"value.note\"}],attrs:{\"name\":\"note\",\"maxlength\":\"2000\"},domProps:{\"value\":(_vm.value.note)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"note\", $event.target.value)}}})])],1),_c('slide-show',{ref:\"slideShow\",attrs:{\"type\":'area-saggio-pianta-campione',\"typeId\":this.value.id}})],1),_c('footer',[_c('button',{staticClass:\"btn-cancel \",on:{\"click\":function($event){return _vm.cancel()}}},[_c('i',{staticClass:\"fas fa-arrow-left hide-mobile\"}),_c('i',{staticClass:\"fas fa-times hide-web\"})]),(_vm.value.id)?_c('button',{staticClass:\"btn-danger\",on:{\"click\":function($event){return _vm.remove()}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e(),_c('button',{staticClass:\"btn-primary\",attrs:{\"disabled\":!_vm.formIsValid},on:{\"click\":function($event){return _vm.ok()}}},[_c('i',{staticClass:\"fas fa-check\"})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from 'vue-class-component';\r\nimport { modalHelper, IModalBase, DataItem, alertHelper } from '@/components';\r\nimport { Deferred } from '@/utils/Deferred';\r\nimport { areaSaggioPiantaCampioneStore } from '../store/areaSaggioPiantaCampione.store';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport { localizeFunction } from '@/filters/localizeFilter';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { areaSaggioStore } from '@/modules/AreaSaggio/store/areaSaggio.store';\r\nimport { domainStore } from '@/modules/domains/store/domains.store';\r\nimport { toastHelper } from '@/helpers/ToastHelper';\r\nimport { onlineCheck } from \"@/utils/onlineCheck\";\r\n\r\n@Component({})\r\nexport default class Form extends Vue implements IModalBase{\r\n @Prop()\r\n value: server.areaSaggioPiantaCampione;\r\n\r\n @Prop()\r\n deferred: Deferred>;\r\n\r\n @Async({ async get() { return await areaSaggioStore.getters.getAll(); }, default: [], lazy: true })\r\n areeSaggio: server.areaSaggio[];\r\n\r\n @Async({ async get() { return await domainStore.getters.specieArboree(); }, default: [], lazy: true })\r\n specieArboree: domains.domini[];\r\n\r\n mounted() {\r\n setTimeout(this.validateForm, 2000);\r\n }\r\n\r\n formIsValid: boolean = false;\r\n validateForm() {\r\n this.formIsValid = (this.$refs.form && (this.$refs.form as any).checkValidity())\r\n }\r\n\r\n get specieArboreeAreaSaggio() {\r\n let specieAreaSaggio = this.areeSaggio.find(f => f.id === this.value.areaSaggioId)?.speciePresenti || [];\r\n return this.specieArboree.filter((value) => specieAreaSaggio.includes(value.id));\r\n }\r\n\r\n cancel() {\r\n modalHelper.Unchanged(this);\r\n modalHelper.closeModal(\"extended\");\r\n }\r\n\r\n saving: boolean = false;\r\n async ok() {\r\n if (this.saving) return;\r\n\r\n this.saving = true;\r\n await areaSaggioPiantaCampioneStore.actions.setAreaSaggioPiantaCampione(this.value);\r\n await (this.$refs.slideShow as any).save(this.value.id);\r\n modalHelper.Changed(this);\r\n }\r\n\r\n\r\n async remove() {\r\n const beforeDelete = await this.beforeDelete();\r\n if (beforeDelete)\r\n if (await alertHelper.show(localizeFunction('confirm-delete', `Sei sicuro di voler cancellare l'elemento corrente?`))) {\r\n try {\r\n await areaSaggioPiantaCampioneStore.actions.remove(this.value);\r\n modalHelper.Deleted(this);\r\n } catch (e) {\r\n if (e && e.response && e.response.status == 412) toastHelper.error('Impossibile cancellare elemento, sono presenti uno o più vincoli che ne impediscono la cancellazione.')\r\n modalHelper.Unchanged(this);\r\n }\r\n } else {\r\n modalHelper.Unchanged(this);\r\n }\r\n }\r\n\r\n async beforeDelete() {\r\n const needSync = await areaSaggioPiantaCampioneStore.getters.requiredSync();\r\n if (needSync) {\r\n toastHelper.error(\"Ci sono dei Rilievi ipsometrici che necessitano di sincronia. Effettuare la sincronia prima di poter effettuare la cancellazione\")\r\n return false;\r\n }\r\n\r\n const online = onlineCheck()\r\n if (!online) {\r\n toastHelper.error(\"Non è possibile effettuare la cancellazione in modalità Offline\")\r\n return false;\r\n }\r\n\r\n return !needSync && online;\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./form.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./form.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./form.vue?vue&type=template&id=2d8d68f7&\"\nimport script from \"./form.ts?vue&type=script&lang=ts&\"\nexport * from \"./form.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dialog',{staticClass:\"form-container\"},[_c('header',[_c('button',{staticClass:\"btn-cancel\",on:{\"click\":function($event){return _vm.cancel()}}},[_c('i',{staticClass:\"fas fa-arrow-left hide-mobile\"}),_c('i',{staticClass:\"fas fa-chevron-right hide-web\"})])]),_c('form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('section',[_c('label',[_vm._v(\"Dati generali\")]),_c('cell',{attrs:{\"validate\":true,\"immediate\":true,\"placeholder\":\"Area di Saggio\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.areaSaggioId),expression:\"value.areaSaggioId\"}],attrs:{\"disabled\":\"\",\"name\":\"areaSaggioId\",\"id\":\"areaSaggioId\",\"required\":\"true\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"areaSaggioId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.areeSaggio),function(a){return _c('option',{key:a.id,domProps:{\"value\":a.id}},[_vm._v(_vm._s(a.nome))])}),0)]),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Specie\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.specie),expression:\"value.specie\"}],attrs:{\"disabled\":\"\",\"name\":\"specie\",\"id\":\"specie\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"specie\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.specieArboree),function(d){return _c('option',{key:d.id,domProps:{\"value\":d.id}},[_vm._v(_vm._s(d.label))])}),0)]),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Diametro\"}},[_c('numeric',{attrs:{\"disabled\":\"\",\"min\":0},model:{value:(_vm.value.diametro),callback:function ($$v) {_vm.$set(_vm.value, \"diametro\", $$v)},expression:\"value.diametro\"}}),_c('small',[_vm._v(\"cm\")])],1),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Diametro metà altezza\"}},[_c('numeric',{attrs:{\"disabled\":\"\",\"min\":0},model:{value:(_vm.value.diametroMetaAltezza),callback:function ($$v) {_vm.$set(_vm.value, \"diametroMetaAltezza\", $$v)},expression:\"value.diametroMetaAltezza\"}}),_c('small',[_vm._v(\"cm\")])],1),_c('cell',{attrs:{\"validate\":false,\"placeholder\":\"Altezza\"}},[_c('numeric',{attrs:{\"disabled\":\"\",\"min\":0},model:{value:(_vm.value.altezza),callback:function ($$v) {_vm.$set(_vm.value, \"altezza\", $$v)},expression:\"value.altezza\"}}),_c('small',[_vm._v(\"m\")])],1),_c('cell',{staticClass:\"note\",attrs:{\"validate\":false,\"placeholder\":\"Note\"}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.note),expression:\"value.note\"}],attrs:{\"disabled\":\"\",\"name\":\"note\",\"maxlength\":\"2000\"},domProps:{\"value\":(_vm.value.note)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"note\", $event.target.value)}}})])],1),_c('slide-show',{ref:\"slideShow\",attrs:{\"disabled\":true,\"type\":'area-saggio-pianta-campione',\"typeId\":this.value.id}})],1),_c('footer',[_c('button',{staticClass:\"btn-cancel\",attrs:{\"disabled\":\"\"},on:{\"click\":function($event){return _vm.cancel()}}},[_c('i',{staticClass:\"fas fa-arrow-left hide-mobile\"}),_c('i',{staticClass:\"fas fa-times hide-web\"})]),(_vm.value.id)?_c('button',{staticClass:\"btn-danger\",attrs:{\"disabled\":\"\"},on:{\"click\":function($event){return _vm.remove()}}},[_c('i',{staticClass:\"fas fa-trash\"})]):_vm._e(),_c('button',{staticClass:\"btn-primary\",attrs:{\"disabled\":\"\"},on:{\"click\":function($event){return _vm.ok()}}},[_c('i',{staticClass:\"fas fa-check\"})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from 'vue-class-component';\r\nimport { modalHelper, IModalBase, DataItem, alertHelper } from '@/components';\r\nimport { Deferred } from '@/utils/Deferred';\r\nimport { areaSaggioPiantaCampioneStore } from '../store/areaSaggioPiantaCampione.store';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport { localizeFunction } from '@/filters/localizeFilter';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { areaSaggioStore } from '@/modules/AreaSaggio/store/areaSaggio.store';\r\nimport { domainStore } from '@/modules/domains/store/domains.store';\r\nimport { toastHelper } from '@/helpers/ToastHelper';\r\n\r\n@Component({})\r\nexport default class Display extends Vue implements IModalBase{\r\n @Prop()\r\n value: server.areaSaggioPiantaCampione;\r\n\r\n @Prop()\r\n deferred: Deferred>;\r\n\r\n @Async({ async get() { return await areaSaggioStore.getters.getAll(); }, default: [], lazy: true })\r\n areeSaggio: server.areaSaggio[];\r\n\r\n @Async({ async get() { return await domainStore.getters.specieArboree(); }, default: [], lazy: true })\r\n specieArboree: domains.domini[];\r\n\r\n cancel() {\r\n modalHelper.Unchanged(this);\r\n modalHelper.closeModal(\"extended\");\r\n }\r\n\r\n saving: boolean = false;\r\n async ok()\r\n {\r\n if (this.saving) return;\r\n\r\n this.saving = true;\r\n await areaSaggioPiantaCampioneStore.actions.setAreaSaggioPiantaCampione(this.value);\r\n await (this.$refs.slideShow as any).save(this.value.id);\r\n modalHelper.Changed(this);\r\n }\r\n\r\n\r\n async remove()\r\n {\r\n if (await alertHelper.show(localizeFunction('confirm-delete', `Sei sicuro di voler cancellare l'elemento corrente?`)))\r\n {\r\n try{\r\n await areaSaggioPiantaCampioneStore.actions.remove(this.value);\r\n modalHelper.Deleted(this);\r\n }catch(e){\r\n if(e && e.response && e.response.status==412) toastHelper.error('Impossibile cancellare elemento, sono presenti uno o più vincoli che ne impediscono la cancellazione.')\r\n modalHelper.Unchanged(this);\r\n }\r\n\r\n }else{\r\n modalHelper.Unchanged(this);\r\n }\r\n }\r\n\r\n\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./display.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./display.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./display.vue?vue&type=template&id=05e57c02&\"\nimport script from \"./display.ts?vue&type=script&lang=ts&\"\nexport * from \"./display.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { modalHelper, DataItem } from '@/components/modal/modalHelper';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport Form from \"./form.vue\";\r\nimport { areaSaggioPiantaCampioneStore } from '../store/areaSaggioPiantaCampione.store';\r\nimport { applyArrayChanges } from '@/utils/ApplyArrayChange';\r\nimport { versioneInSituStore } from '@/modules/VersioneInSitu/store/VersioneInSitu.store';\r\nimport { areaSaggioStore } from '@/modules/AreaSaggio/store/areaSaggio.store';\r\nimport { store } from '@/store';\r\nimport { layoutHelper } from '@/helpers/LayoutHelper';\r\nimport { localVersionHelper } from '@/helpers/LocalVersionHelper';\r\nimport Display from './display.vue';\r\nimport { reportStore } from '@/modules/Reports/store/report.store';\r\n\r\nVue.component(\"area-saggio-pianta-campione-item\", () => !layoutHelper.isWeb ? import(\"./mobile/areaSaggioPiantaCampioneMobileItem.vue\") : import(\"./web/areaSaggioPiantaCampioneWebItem.vue\"));\r\n\r\n@Component({})\r\nexport default class Index extends Vue {\r\n showSearchBar: boolean = false;\r\n\r\n @Async({ async get() { return await areaSaggioStore.getters.getAll(); }, default: [], lazy: false })\r\n storeSaggio: server.areaSaggio[];\r\n\r\n @Async({ async get() { return await areaSaggioPiantaCampioneStore.getters.getAll() }, default: [], lazy: true })\r\n areeSaggioPiantaCampione: server.areaSaggioPiantaCampione[];\r\n\r\n @Async({ async get() { return await versioneInSituStore.getters.current() }, default: {}, lazy: false })\r\n currentVersion: server.VersioneInSitu;\r\n\r\n get areeSaggio() {\r\n return this.storeSaggio.map((m) => {\r\n return {\r\n key: m.id,\r\n value: m.id,\r\n description: m.nome,\r\n } as server.autocomplete\r\n })\r\n }\r\n\r\n get areaSaggioId() {\r\n return store.getters.navigation.selected(\"areaSaggio\");\r\n }\r\n get navigation() {\r\n if (!this.areaSaggioId) return null;\r\n return this.areeSaggio.find(f => f.key === this.areaSaggioId) || {} as server.autocomplete;\r\n }\r\n set navigation(value: server.autocomplete) {\r\n if (value.key !== this.areaSaggioId) {\r\n store.actions.navigation.set_filter({ area: \"areaSaggio\", id: value ? value.key : null });\r\n reportStore.actions.set_logarithmic_regression(value ? value.key : null);\r\n this.selectedArea = null;\r\n }\r\n }\r\n\r\n filter = {\r\n text: \"\",\r\n };\r\n\r\n selectedArea: server.areaSaggioPiantaCampione = null;\r\n\r\n applyFilter(items: server.areaSaggioPiantaCampione[]): server.areaSaggioPiantaCampione[] {\r\n return items.filter(i => (!this.navigation || i.areaSaggioId === this.areaSaggioId))\r\n .sort((a, b) => {\r\n const specieOrder = a.specie - b.specie;\r\n if (specieOrder !== 0) return specieOrder;\r\n return a.diametro - b.diametro;\r\n });\r\n };\r\n\r\n @Watch('filter.text') change(n, o) { this.showsize = 20; }\r\n showsize: number = 20;\r\n\r\n get areeOrdered(): server.areaSaggioPiantaCampione[] {\r\n return this.applyFilter(this.areeSaggioPiantaCampione).slice(0, this.showsize);\r\n }\r\n\r\n async edit(item: server.areaSaggioPiantaCampione) {\r\n this.selectedArea = item;\r\n try {\r\n var result: DataItem;\r\n if (localVersionHelper.get(\"InSitu\")) {\r\n result = await modalHelper.showModal(Display, Object.assign({}, item));\r\n } else {\r\n result = await modalHelper.showModal(Form, Object.assign({}, item));\r\n }\r\n applyArrayChanges([result], this.areeSaggioPiantaCampione, (a, b) => a.id == b.id);\r\n } catch { }\r\n this.selectedArea = null;\r\n }\r\n\r\n async add() {\r\n try {\r\n let item: server.areaSaggioPiantaCampione = { versioneId: this.currentVersion.id } as server.areaSaggioPiantaCampione;\r\n item.areaSaggioId = store.getters.navigation.selected(\"areaSaggio\");\r\n let result = await modalHelper.showModal(Form, Object.assign({}, item));\r\n applyArrayChanges([result], this.areeSaggioPiantaCampione, (a, b) => a.id == b.id);\r\n } catch { }\r\n }\r\n\r\n onShow(){\r\n return localVersionHelper.get(\"InSitu\") ? true : false\r\n }\r\n \r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./index.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!./index.ts?vue&type=script&lang=ts&\"","import { GetterTree, ActionTree } from 'vuex';\r\nimport { replaceInArray } from '@/utils/Array';\r\nimport { messageService } from '@/utils/MessageService';\r\nimport { PersistentStore, saveAndSync, syncOperation } from '@/utils/PersistentStore';\r\nimport vuestore, { store } from '@/store';\r\nimport { CreateTypedStoreProxy } from 'vuex-typed-store';\r\nimport { areaSaggioService } from '../services/areaSaggioService';\r\nimport { versioneInSituStore } from '@/modules/VersioneInSitu/store/VersioneInSitu.store';\r\nimport { Guid } from 'guid-typescript';\r\nimport { syncDeletedRow } from '@/modules/SyncDeletedRow/helper/syncDeletedRowHelper';\r\n\r\nexport interface AreaSaggioStoreModel { }\r\n\r\nexport interface AreaSaggioStoreActions {\r\n setAreaSaggio(payload: server.areaSaggio): Promise;\r\n remove(payload: server.areaSaggio): Promise;\r\n clean(): Promise;\r\n}\r\n\r\nexport interface AreaSaggioStoreGetters {\r\n get(id): Promise;\r\n getAll(): Promise;\r\n requiredSync(areaSaggioId: string): Promise;\r\n nearestAreaSaggio(): Promise;\r\n}\r\n\r\nexport const TABLES = {\r\n areaSaggio: 'AreeSaggio',\r\n areaSaggioClasseDiametrica: 'AreeSaggioClassiDiametriche',\r\n areaSaggioPiantaCampione: 'AreeSaggioPianteCampione'\r\n};\r\nexport const AreaSaggioStore = {\r\n PREFIX: 'areaSaggio',\r\n namespaced: true,\r\n mutations: {},\r\n getters: {\r\n get: (state) => async (id): Promise => await PersistentStore.get(TABLES.areaSaggio, id),\r\n getAll: (state) => async (): Promise => {\r\n let currentVersion = await versioneInSituStore.getters.current();\r\n if (!currentVersion) return [];\r\n\r\n var result = await PersistentStore.getAll(TABLES.areaSaggio) || [];\r\n\r\n if (result.length > 0) {\r\n result = await syncDeletedRow(TABLES.areaSaggio, result);\r\n }\r\n\r\n var maxts = await PersistentStore.getMaxTs(TABLES.areaSaggio);\r\n areaSaggioService.List(currentVersion.id, maxts).then(async (r) => {\r\n replaceInArray(r, result, (a, b) => a.id == b.id);\r\n await PersistentStore.set(TABLES.areaSaggio, r);\r\n });\r\n return result;\r\n },\r\n requiredSync: (state) => async (areaSaggioId: string): Promise => {\r\n var resultDoSync = (await PersistentStore.getAll(TABLES.areaSaggio) || [])\r\n .filter(f => f.id === areaSaggioId).some((s: any) => s.__needsSync);\r\n var classeDiametricaDoSync = (await PersistentStore.getAll(TABLES.areaSaggioClasseDiametrica) || [])\r\n .filter(f => f.id === areaSaggioId).some((s: any) => s.__needsSync);\r\n var piantaCampionDoSync = (await PersistentStore.getAll(TABLES.areaSaggioPiantaCampione) || [])\r\n .filter(f => f.id === areaSaggioId).some((s: any) => s.__needsSync);\r\n return resultDoSync && classeDiametricaDoSync && piantaCampionDoSync;\r\n },\r\n nearestAreaSaggio: (state) => async (): Promise => {\r\n var position = store.getters.ui.currentGPSPosition();\r\n if (position != null)\r\n return (await areaSaggioStore.getters.getAll()).map(f => { return { distance: distance(f, position), f } })\r\n .sort((a, b) => a.distance - b.distance).shift()?.f;\r\n return null;\r\n }\r\n } as GetterTree,\r\n actions: {\r\n async setAreaSaggio(context, payload: server.areaSaggio) {\r\n let operation: syncOperation = syncOperation.update;\r\n if (!payload.id) {\r\n payload.id = Guid.create().toString();\r\n operation = syncOperation.create;\r\n }\r\n\r\n await saveAndSync(payload, TABLES.areaSaggio,\r\n i => operation, i => areaSaggioService.Set(i, i.versioneId), i => areaSaggioService.Set(i, i.versioneId),\r\n async (o, n, op) => {\r\n messageService.publish('updateMediaReference', { type: 'areaSaggio', oldTypeId: o.id, newTypeId: n.id } as messages.updateMediaReference);\r\n })\r\n },\r\n async remove(context, payload: server.areaSaggio) {\r\n await areaSaggioService.Remove(payload.id, payload.versioneId);\r\n await PersistentStore.remove(TABLES.areaSaggio, payload);\r\n },\r\n async clean(context) {\r\n var result = await PersistentStore.getAll(TABLES.areaSaggio) || [];\r\n if (result.length > 0) {\r\n return Promise.all(result.map(async (f) => PersistentStore.remove(TABLES.areaSaggio, f)));\r\n }\r\n }\r\n } as ActionTree\r\n}\r\n\r\nexport const areaSaggioStore = CreateTypedStoreProxy(vuestore, AreaSaggioStore.PREFIX);\r\n\r\nfunction distance(f: server.areaSaggio, position: { latitude: number, longitude: number }) {\r\n return Math.sqrt(\r\n Math.pow(Math.abs(f.longitude - position.longitude), 2) +\r\n Math.pow(Math.abs(f.latitude - position.latitude), 2)\r\n )\r\n}","import { GetterTree, ActionTree } from 'vuex';\r\nimport { CreateTypedStoreProxy } from 'vuex-typed-store';\r\nimport vuestore, { store } from '../../../store';\r\nimport { areaSaggioPiantaCampioneStore } from '@/modules/AreaSaggioPiantaCampione/store/areaSaggioPiantaCampione.store';\r\n\r\nexport interface ReportStoreModel {\r\n logarithmicRegression: report.regression\r\n}\r\n\r\nexport interface ReportStoreActions {\r\n init();\r\n set_logarithmic_regression: (areaSaggioId) => Promise;\r\n}\r\n\r\nexport interface ReportStoreGetters {\r\n regression: () => report.regression;\r\n}\r\n\r\nexport const ReportStore = {\r\n PREFIX: 'report',\r\n namespaced: true,\r\n state: {\r\n logarithmicRegression: null\r\n },\r\n mutations: {\r\n set_logarithmic_regression(state: ReportStoreModel, regression: report.regression) {\r\n state.logarithmicRegression = regression\r\n },\r\n },\r\n getters: {\r\n regression: (state) => () => state.logarithmicRegression\r\n } as GetterTree,\r\n actions: {\r\n async init(context) {\r\n const areaSaggioId = store.getters.navigation.selected(\"areaSaggio\");\r\n const value = await getValuesOfLogarithmicExpression(areaSaggioId);\r\n context.commit('set_logarithmic_regression', value);\r\n },\r\n async set_logarithmic_regression(context, areaSaggioId: string) {\r\n const value = await getValuesOfLogarithmicExpression(areaSaggioId);\r\n context.commit('set_logarithmic_regression', value);\r\n }\r\n } as ActionTree\r\n}\r\n\r\nexport const reportStore = CreateTypedStoreProxy(vuestore, ReportStore.PREFIX);\r\n\r\nasync function getValuesOfLogarithmicExpression(areaSaggioId: string): Promise {\r\n let coordinates = [];\r\n if (!areaSaggioId)\r\n return null;\r\n const pianteCampione = (await areaSaggioPiantaCampioneStore.getters.getAll())\r\n .filter(i => i.areaSaggioId === areaSaggioId);\r\n\r\n coordinates = pianteCampione.map(m => {\r\n return [m.diametro || 0, m.altezza || 0];\r\n })\r\n return logarithmicRegression(coordinates);\r\n\r\n}\r\n\r\nfunction logarithmicRegression(data, options: { order: number, precision: number } = { order: 2, precision: 2 }): report.regression {\r\n const sum = [0, 0, 0, 0];\r\n const len = data.length;\r\n\r\n for (let n = 0; n < len; n++) {\r\n if (data[n][1] !== null) {\r\n sum[0] += Math.log(data[n][0]);\r\n sum[1] += data[n][1] * Math.log(data[n][0]);\r\n sum[2] += data[n][1];\r\n sum[3] += (Math.log(data[n][0]) ** 2);\r\n }\r\n }\r\n\r\n const a = ((len * sum[1]) - (sum[2] * sum[0])) / ((len * sum[3]) - (sum[0] * sum[0]));\r\n const coeffB = round(a, options.precision);\r\n const coeffA = round((sum[2] - (coeffB * sum[0])) / len, options.precision);\r\n \r\n \r\n const fn = x => round(round(coeffA + (coeffB * Math.log(x)), options.precision), options.precision);\r\n const points = data.map(point => fn(point[0]));\r\n\r\n return {\r\n points,\r\n fn: fn,\r\n equation: [coeffA, coeffB],\r\n string: `y = ${coeffA} + ${coeffB} ln(x)`,\r\n r2: round(determinationCoefficient(data, points), options.precision),\r\n };\r\n\r\n function determinationCoefficient(data, results) {\r\n const predictions = [];\r\n const observations = [];\r\n\r\n data.forEach((d, i) => {\r\n if (d[1] !== null) {\r\n observations.push(d);\r\n predictions.push(results[i]);\r\n }\r\n });\r\n\r\n const sum = observations.reduce((a, observation) => a + observation[1], 0);\r\n const mean = sum / observations.length;\r\n\r\n const ssyy = observations.reduce((a, observation) => {\r\n const difference = observation[1] - mean;\r\n return a + (difference * difference);\r\n }, 0);\r\n\r\n const sse = observations.reduce((accum, observation, index) => {\r\n const prediction = predictions[index];\r\n const residual = observation[1] - prediction[1];\r\n return accum + (residual * residual);\r\n }, 0);\r\n\r\n return 1 - (sse / ssyy);\r\n }\r\n\r\n function round(number, precision) {\r\n const factor = 10 ** precision;\r\n return Math.round(number * factor) / factor;\r\n }\r\n}\r\n","import { DataItem, DataItemStatus } from '@/components';\r\nexport function applyArrayChanges(source: Iterable>, dest: Array, comparer: (d: T, s: T) => boolean): Array {\r\n Array.from(source).forEach(element => {\r\n\r\n switch (element.status) {\r\n case DataItemStatus.unchanged: return;\r\n case DataItemStatus.deleted:\r\n var idx = dest.findIndex(i => comparer(i, element.item));\r\n if (idx >= 0)\r\n dest.splice(idx, 1);\r\n return;\r\n case DataItemStatus.changed:\r\n var result = dest.find(i => comparer(i, element.item));\r\n if (result)\r\n Object.assign(result, element.item);\r\n else\r\n dest.push(element.item);\r\n return;\r\n }\r\n });\r\n return dest;\r\n}"],"sourceRoot":""}