{"version":3,"sources":["webpack:///./src/modules/PiantaSemeMarze/services/PiantaSemeMarzeService.ts","webpack:///./src/modules/PiantaSemeMarze/route.ts","webpack:///./src/modules/PiantaSemeMarze/sync.ts","webpack:///./src/modules/PiantaSemeMarze/index.ts","webpack:///./src/modules/PiantaSemeMarze/store/PiantaSemeMarze.store.ts","webpack:///./src/modules/PiantaSemeMarze/components/dashboard/counter.vue?7002","webpack:///./src/modules/PiantaSemeMarze/components/dashboard/counter.ts","webpack:///./src/modules/PiantaSemeMarze/components/dashboard/counter.ts?7303","webpack:///./src/modules/PiantaSemeMarze/components/dashboard/counter.vue","webpack:///./src/modules/PiantaSemeMarze/module.ts"],"names":["PiantaSemeMarzeService","baseUrl","api","apiServerUrl","versioneId","ts","this","Get","id","obj","Post","Delete","piantaSemeMarzeService","routes","path","name","component","isWeb","meta","title","showExpander","requireAuth","route","startup","getters","getAll","syncOperations","piantaSemeMarze","i","create","Set","o","n","op","publish","type","oldTypeId","newTypeId","modulename","module","sync","roles","TABLES","PiantaSemeMarzeStore","PREFIX","namespaced","mutations","get","state","current","currentVersion","result","length","getMaxTs","maxts","List","then","r","a","b","set","nearestPiantaSemeMarze","position","ui","currentGPSPosition","piantaSemeMarzeStore","map","f","distance","sort","shift","actions","setPiantaSemeMarze","context","payload","operation","update","toString","remove","Remove","clean","Promise","all","Math","sqrt","pow","abs","longitude","latitude","render","_vm","_h","$createElement","_c","_self","staticClass","on","$event","goTo","_v","_s","numeroTotale","staticRenderFns","DashboardItem","routeName","store","toggleDrawerMenu","toggleUserMenu","$router","push","PiantaSemeMarze","default","lazy","init","userRoles","securityService","getInfo","includes","MenuHelper","addMenuDefinition","description","icon","orderIndex","group","section","drawer","addComponent","registerModule","symbol","style","size","color","outline","width","invalidSymbol","parentSymbol"],"mappings":"yQAGMA,E,wDAEJ,iDACE,eACA,EAAKC,QAAU,OAAOC,IAAIC,aAF5B,E,+GAKWC,EAAoBC,G,iGAChBC,KAAKC,IAAL,uBAAmDH,EAAnD,sBAAmF,CAAEC,GAAIA,I,gDAAS,G,0OAGpGG,EAAYJ,G,iGACVE,KAAKC,IAAL,uBAAiDH,EAAjD,8BAAiFI,I,yOAGtFC,EAA6BL,G,iGACxBE,KAAKI,KAAL,uBAAkDN,EAAlD,sBAAkFK,G,4OAGpFD,EAAYJ,G,iGACVE,KAAKK,OAAL,uBAA4BP,EAA5B,8BAA4DI,I,yJApBxC,QAwBxBI,EAAyB,IAAIZ,G,mLCvBpCa,EAA6B,CACjC,CACEC,KAAM,kBACNC,KAAM,kBACNC,UAAW,kBAAM,OAAaC,MAAQ,iIAA2C,kIACjFC,KAAM,CAAEC,MAAO,0BAA2BC,cAAc,EAAOC,aAAa,KAKjEC,EAAA,E,oFCRA,GACbC,QAAS,WAAF,8CAAE,8GACD,OAAqBC,QAAQC,SAD5B,2CAAF,qDAAE,GAGTC,eAAgB,WAAF,8CAAE,8GACR,eAA6B,OAAOC,iBACxC,SAAAC,GAAC,OAAI,OAAcC,UAAQ,SAAAD,GAAC,OAAI,OAAuBE,IAAIF,EAAGA,EAAExB,eAAa,SAAAwB,GAAC,OAAI,OAAuBE,IAAIF,EAAGA,EAAExB,cAD1G,yDAER,WAAO2B,EAAGC,EAAGC,GAAb,iFACE,OAAeC,QAAQ,uBAAwB,CAAEC,KAAM,kBAAmBC,UAAWL,EAAEvB,GAAI6B,UAAWL,EAAExB,KAD1G,2CAFQ,2DADI,2CAAF,qDAAE,ICLH,cACb8B,WAAY,kBACZC,OAAA,EAAQjB,MAAA,EAAOkB,KAAA,EACfC,MAAO,CAAC,oB,gUCiBGC,EAAS,CAAEf,gBAAiB,mBAC5BgB,EAAuB,CAClCC,OAAQ,kBACRC,YAAY,EACZC,UAAW,GACXtB,QAAS,CACPuB,IAAK,SAACC,GAAD,gEAAW,WAAOxC,GAAP,iGAAqD,OAAgBuC,IAAIL,EAAOf,gBAAiBnB,GAAjG,mFAAX,uDACLiB,OAAQ,SAACuB,GAAD,+CAAW,wHACY,OAAoBxB,QAAQyB,UADxC,UACXC,EADW,OAEZA,EAFY,yCAEW,IAFX,uBAIE,OAAgBzB,OAA+BiB,EAAOf,iBAJxD,iDAI4E,GAJ5E,WAIbwB,EAJa,OAMbA,EAAOC,OAAS,GANH,kCAOA,eAAeV,EAAOf,gBAAiBwB,GAPvC,QAOfA,EAPe,gCAUC,OAAgBE,SAASX,EAAOf,iBAVjC,eAUb2B,EAVa,OAWjB,OAAuBC,KAAKL,EAAe1C,GAAI8C,GAAOE,KAAtD,yDAA2D,WAAOC,GAAP,wFACzD,eAAeA,EAAGN,GAAQ,SAACO,EAAGC,GAAJ,OAAUD,EAAElD,IAAMmD,EAAEnD,MADW,SAEnD,OAAgBoD,IAAIlB,EAAOf,gBAAiB8B,GAFO,2CAA3D,uDAXiB,kBAeVN,GAfU,6CAiBnBU,uBAAwB,SAACb,GAAD,+CAAW,yGAC7Bc,EAAW,OAAMtC,QAAQuC,GAAGC,qBAChB,MAAZF,EAF6B,iCAGjBG,EAAqBzC,QAAQC,SAHZ,wBAGsByC,KAAI,SAAAC,GAAO,MAAO,CAAEC,SAAUA,EAASD,EAAGL,GAAWK,QACvGE,MAAK,SAACX,EAAGC,GAAJ,OAAUD,EAAEU,SAAWT,EAAES,YAAUE,QAJZ,gIAGxB,EAC6CH,EAJrB,wEAK1B,MAL0B,8CASrCI,QAAS,CACDC,mBADC,SACkBC,EAASC,GAA+B,0JAC3DC,EAA2B,OAAcC,OACxCF,EAAQlE,KACXkE,EAAQlE,GAAK,UAAKqB,SAASgD,WAC3BF,EAAY,OAAc9C,QAJmC,SAOzD,eAAY6C,EAAShC,EAAOf,iBAChC,SAAAC,GAAC,OAAI+C,KAAW,SAAA/C,GAAC,OAAI,OAAuBE,IAAIF,EAAGA,EAAExB,eAAa,SAAAwB,GAAC,OAAI,OAAuBE,IAAIF,EAAGA,EAAExB,cADxF,yDAEf,WAAO2B,EAAGC,EAAGC,GAAb,iFACE,OAAeC,QAAQ,uBAAwB,CAAEC,KAAM,kBAAmBC,UAAWL,EAAEvB,GAAI6B,UAAWL,EAAExB,KAD1G,2CAFe,2DAP8C,8CAa3DsE,OAdC,SAcML,EAASC,GAA+B,6JAC7C,OAAuBK,OAAOL,EAAQlE,GAAIkE,EAAQtE,YADL,uBAE7C,OAAgB0E,OAAOpC,EAAOf,gBAAiB+C,GAFF,8CAI/CM,MAlBC,SAkBKP,GAAO,mKACE,OAAgBhD,OAA+BiB,EAAOf,iBADxD,gDAC4E,GAD5E,UACbwB,EADa,OAEbA,EAAOC,OAAS,GAFH,yCAGR6B,QAAQC,IAAI/B,EAAOe,IAAP,yDAAW,WAAOC,GAAP,0GAAa,OAAgBW,OAAOpC,EAAOf,gBAAiBwC,IAA5D,2CAAX,yDAHJ,gDASVF,EAAuB,mCAA2G,OAAUtB,EAAqBC,QAE9K,SAASwB,EAASD,EAA2BL,GAC3C,OAAOqB,KAAKC,KACVD,KAAKE,IAAIF,KAAKG,IAAInB,EAAEoB,UAAYzB,EAASyB,WAAY,GACrDJ,KAAKE,IAAIF,KAAKG,IAAInB,EAAEqB,SAAW1B,EAAS0B,UAAW,M,wRC1FnDC,EAAS,WAAa,IAAIC,EAAIpF,KAASqF,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAUC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOP,EAAIQ,KAAK,sBAAsB,CAACL,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,IAAI,CAACE,YAAY,4BAA4BF,EAAG,OAAO,CAACH,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,cAAc,OAAOR,EAAG,QAAQ,CAACH,EAAIS,GAAG,kCAC5VG,EAAkB,G,wHCMtB,iBAAqBC,EAArB,+KASSC,GACDC,EAAA,KAAMlC,QAAQR,GAAG2C,kBAAiB,GAClCD,EAAA,KAAMlC,QAAQR,GAAG4C,gBAAe,GAChCrG,KAAKsG,QAAQC,KAAK,CAAE9F,KAAMyF,MAZlC,mCAMQ,OAAOlG,KAAKwG,gBAAgB1D,WANpC,GAA2C,QAe3C,OAZI,gBADC,eAAM,CAAQL,IAAR,WAAW,6JAAkB,OAAqBvB,QAAQC,SAA/C,sFAA2DsF,QAAS,GAAIC,MAAM,K,sCAF/ET,EAAa,gBADjC,eAAU,KACUA,GAerB,EAfA,GAAqB,ICP2R,I,YCO5SvF,EAAY,eACd,EACAyE,EACAa,GACA,EACA,KACA,KACA,MAIa,EAAAtF,E,gCCVT,SAAUiG,IAAI,MACZC,EAAS,UAAIC,EAAA,KAAgBC,iBAApB,aAAI,EAA2B3E,MAE1C,OAAaxB,OAASiG,EAAUG,SAAS,oBAC3CC,EAAA,KAAWC,kBACT,CAAExG,KAAM,kBAAmByG,YAAa,0BAA2BC,KAAM,0BAA2BjB,UAAW,kBAAmBkB,WAAY,EAAGC,MAAO,sBACxJ,CAAEC,QAAS,OAASC,SAEtB,OAAgBC,aAAa,EAAS,WAIxC,OAASC,eAAe,OAAqBnF,OAAQ,QAGhD,IAAMoF,EAAS,CACpB7F,KAAM,gBACN8F,MAAO,SACPC,KAAM,OACNC,MAAO,UACPC,QAAS,CACPD,MAAO,QACPE,MAAO,IAMEC,EAAgB,CAC3BnG,KAAM,gBACN8F,MAAO,SACPC,KAAM,OACNC,MAAO,CAAC,IAAK,EAAG,GAChBC,QAAS,CACPD,MAAO,CAAC,IAAK,IAAK,KAClBE,MAAO,IAGEE,EAAe,CAC1BpG,KAAM,cACNgG,MAAO,CAAC,GAAI,IAAK,IAAK,IACtBC,QAAS,CACPD,MAAO,CAAC,IAAK,IAAK,KAClBE,MAAO","file":"modules/PiantaSemeMarze.js","sourcesContent":["import { baseRestService } from \"@/utils/baseRestService\"\r\nimport { Config } from '@/config';\r\n\r\nclass PiantaSemeMarzeService 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/ex-situ/${versioneId}/pianta-seme-marze`, { ts: ts }) || [];\r\n }\r\n\r\n async Detail(id: string, versioneId: string): Promise {\r\n return await this.Get(`/api/ex-situ/${versioneId}/pianta-seme-marze/${id}`);\r\n }\r\n\r\n async Set(obj: server.PiantaSemeMarze, versioneId: string): Promise {\r\n return await this.Post(`/api/ex-situ/${versioneId}/pianta-seme-marze`, obj);\r\n }\r\n\r\n async Remove(id: string, versioneId: string): Promise {\r\n return await this.Delete(`/api/ex-situ/${versioneId}/pianta-seme-marze/${id}`);\r\n }\r\n}\r\n\r\nexport const piantaSemeMarzeService = new PiantaSemeMarzeService();","import { RouteConfig } from 'vue-router';\r\nimport { mainRoute, InjectRoutes } from '@/router';\r\nimport { layoutHelper } from '@/helpers/LayoutHelper';\r\n\r\nconst routes: Array = [\r\n {\r\n path: 'PiantaSemeMarze',\r\n name: 'PiantaSemeMarze',\r\n component: () => layoutHelper.isWeb ? import(\"./components/web/index-web.vue\") : import(\"./components/mobile/index-mobile.vue\"),\r\n meta: { title: 'Piante da Seme/da Marze', showExpander: false, requireAuth: true }\r\n },\r\n]\r\n\r\n\r\nexport default routes;","import { ISyncOptions } from '@/utils/ISyncOptions';\r\nimport { syncOperation, sync } from '@/utils/PersistentStore';\r\nimport { messageService } from '@/utils/MessageService';\r\nimport { piantaSemeMarzeStore, TABLES } from './store/PiantaSemeMarze.store';\r\nimport { piantaSemeMarzeService } from './services/PiantaSemeMarzeService';\r\n\r\nexport default {\r\n startup: async (): Promise => {\r\n await piantaSemeMarzeStore.getters.getAll();\r\n },\r\n syncOperations: async (): Promise => {\r\n await sync(TABLES.piantaSemeMarze,\r\n i => syncOperation.create, i => piantaSemeMarzeService.Set(i, i.versioneId), i => piantaSemeMarzeService.Set(i, i.versioneId),\r\n async (o, n, op) => {\r\n messageService.publish('updateMediaReference', { type: 'PiantaSemeMarze', oldTypeId: o.id, newTypeId: n.id } as messages.updateMediaReference);\r\n })\r\n }\r\n} as ISyncOptions;","import * as route from \"./route\";\r\nimport * as module from \"./module\";\r\nimport * as sync from \"./sync\";\r\nimport { IModuleOptions } from '@/utils/IModuleOptions';\r\n\r\nexport default {\r\n modulename: \"PiantaSemeMarze\",\r\n module, route, sync, \r\n roles: [\"Amministratore\"]\r\n} as IModuleOptions","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 { piantaSemeMarzeService } from '../services/PiantaSemeMarzeService';\r\nimport { versioneExSituStore } from '@/modules/VersioneExSitu/store/VersioneExSitu.store';\r\nimport { Guid } from 'guid-typescript';\r\nimport { syncDeletedRow } from '@/modules/SyncDeletedRow/helper/syncDeletedRowHelper';\r\n\r\nexport interface PiantaSemeMarzeStoreModel { }\r\n\r\nexport interface PiantaSemeMarzeStoreActions {\r\n setPiantaSemeMarze(payload: server.PiantaSemeMarze): Promise;\r\n remove(payload: server.PiantaSemeMarze): Promise;\r\n clean(): Promise;\r\n}\r\n\r\nexport interface PiantaSemeMarzeStoreGetters {\r\n get(id): Promise;\r\n getAll(): Promise;\r\n nearestPiantaSemeMarze(): Promise;\r\n}\r\n\r\nexport const TABLES = { piantaSemeMarze: 'PianteSemeMarze' };\r\nexport const PiantaSemeMarzeStore = {\r\n PREFIX: 'PiantaSemeMarze',\r\n namespaced: true,\r\n mutations: {},\r\n getters: {\r\n get: (state) => async (id): Promise => await PersistentStore.get(TABLES.piantaSemeMarze, id),\r\n getAll: (state) => async (): Promise => {\r\n const currentVersion = await versioneExSituStore.getters.current();\r\n if (!currentVersion) return [];\r\n\r\n var result = await PersistentStore.getAll(TABLES.piantaSemeMarze) || [];\r\n\r\n if (result.length > 0) {\r\n result = await syncDeletedRow(TABLES.piantaSemeMarze, result);\r\n }\r\n\r\n var maxts = await PersistentStore.getMaxTs(TABLES.piantaSemeMarze);\r\n piantaSemeMarzeService.List(currentVersion.id, maxts).then(async (r) => {\r\n replaceInArray(r, result, (a, b) => a.id == b.id);\r\n await PersistentStore.set(TABLES.piantaSemeMarze, r);\r\n });\r\n return result;\r\n },\r\n nearestPiantaSemeMarze: (state) => async (): Promise => {\r\n var position = store.getters.ui.currentGPSPosition();\r\n if (position != null)\r\n return (await piantaSemeMarzeStore.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\r\n actions: {\r\n async setPiantaSemeMarze(context, payload: server.PiantaSemeMarze) {\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.piantaSemeMarze,\r\n i => operation, i => piantaSemeMarzeService.Set(i, i.versioneId), i => piantaSemeMarzeService.Set(i, i.versioneId),\r\n async (o, n, op) => {\r\n messageService.publish('updateMediaReference', { type: 'PiantaSemeMarze', oldTypeId: o.id, newTypeId: n.id } as messages.updateMediaReference);\r\n })\r\n },\r\n async remove(context, payload: server.PiantaSemeMarze) {\r\n await piantaSemeMarzeService.Remove(payload.id, payload.versioneId);\r\n await PersistentStore.remove(TABLES.piantaSemeMarze, payload);\r\n },\r\n async clean(context) {\r\n var result = await PersistentStore.getAll(TABLES.piantaSemeMarze) || [];\r\n if (result.length > 0) {\r\n return Promise.all(result.map(async (f) => PersistentStore.remove(TABLES.piantaSemeMarze, f)));\r\n }\r\n }\r\n } as ActionTree\r\n}\r\n\r\nexport const piantaSemeMarzeStore = CreateTypedStoreProxy(vuestore, PiantaSemeMarzeStore.PREFIX);\r\n\r\nfunction distance(f: server.PiantaSemeMarze, 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}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"counter\",on:{\"click\":function($event){return _vm.goTo('PiantaSemeMarze')}}},[_c('div',{staticClass:\"counter-body\"},[_c('i',{staticClass:\"icon-uf_piantasememarze\"}),_c('span',[_vm._v(_vm._s(_vm.numeroTotale)+\" \")]),_c('small',[_vm._v(\"Piante da Seme/da Marze\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { Async } from '@/utils/AsyncDecorators';\r\nimport { store } from '@/store';\r\nimport { piantaSemeMarzeStore } from '../../store/PiantaSemeMarze.store';\r\n\r\n@Component({})\r\nexport default class DashboardItem extends Vue{\r\n \r\n @Async({ async get() { return await piantaSemeMarzeStore.getters.getAll() }, default: [], lazy: true })\r\n PiantaSemeMarze: server.areaSaggio[];\r\n\r\n get numeroTotale(){\r\n return this.PiantaSemeMarze.length;\r\n }\r\n\r\n goTo(routeName) {\r\n store.actions.ui.toggleDrawerMenu(false);\r\n store.actions.ui.toggleUserMenu(false);\r\n this.$router.push({ name: routeName })\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!./counter.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!./counter.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./counter.vue?vue&type=template&id=46aacf14&\"\nimport script from \"./counter.ts?vue&type=script&lang=ts&\"\nexport * from \"./counter.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 { MenuHelper, IMenuDefinition, menuType } from \"@/helpers/MenuHelper\";\r\nimport vuestore from '@/store';\r\nimport { PiantaSemeMarzeStore } from './store/PiantaSemeMarze.store';\r\nimport { dashboardHelper } from '@/helpers/DashboardHelper';\r\nimport Counter from \"./components/dashboard/counter.vue\";\r\nimport { securityService } from '@/services/securityService';\r\nimport { layoutHelper } from '@/helpers/LayoutHelper';\r\n\r\nexport function init() {\r\n const userRoles = securityService.getInfo()?.roles;\r\n \r\n if (layoutHelper.isWeb && userRoles.includes(\"Amministratore\")){\r\n MenuHelper.addMenuDefinition(\r\n { name: \"PiantaSemeMarze\", description: \"Piante da Seme/da Marze\", icon: \"icon-uf_piantasememarze\", routeName: \"PiantaSemeMarze\", orderIndex: 1, group: \"Censimento ex situ\" } as IMenuDefinition,\r\n { section: menuType.drawer },\r\n );\r\n dashboardHelper.addComponent(Counter, \"exsitu\");\r\n }\r\n\r\n //REGISTRAZIONE DELLO STORE\r\n vuestore.registerModule(PiantaSemeMarzeStore.PREFIX, PiantaSemeMarzeStore);\r\n}\r\n\r\nexport const symbol = {\r\n type: \"simple-marker\",\r\n style: \"circle\",\r\n size: \"15px\",\r\n color: \"#5F9EA0\",\r\n outline: {\r\n color: \"white\",\r\n width: 1\r\n }\r\n};\r\n\r\n\r\n\r\nexport const invalidSymbol = {\r\n type: \"simple-marker\",\r\n style: \"circle\",\r\n size: \"15px\",\r\n color: [255, 0, 0],\r\n outline: {\r\n color: [255, 255, 255],\r\n width: 1\r\n }\r\n}\r\nexport const parentSymbol = {\r\n type: \"simple-fill\",\r\n color: [60, 179, 113, 0.1],\r\n outline: {\r\n color: [255, 255, 255],\r\n width: 2\r\n }\r\n};\r\n\r\n\r\n"],"sourceRoot":""}