{"version":3,"sources":["webpack:///./src/modules/baseMapsSync/components/syncMap.vue?2e67","webpack:///./src/modules/baseMapsSync/components/syncMap.vue?c396","webpack:///./src/modules/baseMapsSync/components/syncMap.ts","webpack:///./src/modules/baseMapsSync/components/syncMap.ts?eaeb","webpack:///./src/modules/baseMapsSync/components/syncMap.vue","webpack:///./src/modules/baseMapsSync/route.ts","webpack:///./src/modules/baseMapsSync/index.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","progressTot","attrs","on","$event","cancel","_v","canDownload","doSync","_e","domProps","progressActual","_s","_f","staticRenderFns","syncMap","map","mapview","geometryEngine","Map","basemap","Views","MapView","constraints","minZoom","center","container","focus","Geometry","watch","extentChanged","PersistentStore","getKey","syncMapOfflineParameters","goTo","onlineCheck","addTools","Widgets","Search","view","searchWidget","Expand","id","expandIconClass","expandTooltip","content","expand","ui","add","WidgetsFactory","BasemapGallery","LayerList","removeKey","$this","zoom","extent","clone","longitude","latitude","setKey","layer","allLayers","find","i","type","title","destroy","a","tot","p","sync","store","actions","setIsSynced","$router","push","name","error","n","o","width","extentArea","geodesicArea","application","maxDownloadableAreaSize","component","routes","path","meta","route","modulename","module"],"mappings":"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","file":"modules/baseMapsSync.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./syncMap.vue?vue&type=style&index=0&id=6e4720d2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./syncMap.vue?vue&type=style&index=0&id=6e4720d2&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"syncmap\"},[(_vm.progressTot == 0)?_c('div',{staticClass:\"map-container\"},[_c('div',{staticClass:\"map\",attrs:{\"id\":\"syncMap\"}}),_c('div',{staticClass:\"map-buttons\"},[_c('button',{staticClass:\"btn-cancel\",on:{\"click\":function($event){return _vm.cancel()}}},[_c('i',{staticClass:\"fas fa-times\"}),_vm._v(\" Annulla \")]),_c('button',{staticClass:\"btn-primary\",attrs:{\"disabled\":!_vm.canDownload},on:{\"click\":function($event){return _vm.doSync()}}},[_c('i',{staticClass:\"fas fa-sync\"}),_vm._v(\" Sincronizza \")])])]):_vm._e(),(_vm.progressTot)?_c('div',{staticClass:\"bar\"},[_c('label',[_vm._v(\"Stiamo scaricando la mappa, attendere prego\")]),_c('progress',{attrs:{\"max\":_vm.progressTot},domProps:{\"value\":_vm.progressActual}})]):_vm._e(),(!_vm.canDownload)?_c('span',{staticClass:\"notification-badge alert-badge\"},[_vm._v(_vm._s(_vm._f(\"localize\")(\"map_area_too_big\",\"Area della mappa troppo grande\")))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from 'vue-class-component';\r\nimport { addTilesToCacheFromExtent, clearMapCache, hasCache } from '../module';\r\nimport { Esri } from '@/esriMap';\r\nimport { Config } from '@/config';\r\nimport { store } from '@/store';\r\nimport { toastHelper } from '@/helpers/ToastHelper';\r\nimport { onlineCheck } from '@/utils/onlineCheck';\r\nimport { PersistentStore } from \"@/utils/PersistentStore\";\r\n\r\n@Component({})\r\nexport default class syncMap extends Vue {\r\n map: __esri.Map = null;\r\n mapview: __esri.MapView = null;\r\n geometryEngine: __esri.geometryEngine = null;\r\n\r\n async mounted() {\r\n this.map = await Esri.Map({ basemap: 'hybrid' } as __esri.MapProperties);\r\n this.mapview = await Esri.Views.MapView({\r\n map: this.map,\r\n constraints: {\r\n minZoom: 8\r\n },\r\n center: [12.376403, 43.104636],\r\n container: \"syncMap\"\r\n } as __esri.MapViewProperties);\r\n\r\n this.mapview.focus();\r\n\r\n this.geometryEngine = await Esri.Geometry.geometryEngine();\r\n this.mapview.watch(\"extent\", this.extentChanged);\r\n\r\n const syncMapOfflineParameters: { zoom: number; extent: __esri.Extent; center: number[] } = (await PersistentStore.getKey(\"syncMapOfflineParameters\"));\r\n if (syncMapOfflineParameters) {\r\n await this.mapview.goTo(syncMapOfflineParameters);\r\n }\r\n\r\n if (onlineCheck()) {\r\n await this.addTools();\r\n }\r\n }\r\n\r\n async addTools() {\r\n var searchWidget = await Esri.Widgets.Search({ view: this.mapview })\r\n var expand = await Esri.Widgets.Expand({ id: \"search\", expandIconClass: \"esri-icon-search\", expandTooltip: \"Trova indirizzo o luogo\", view: this.mapview, content: searchWidget });\r\n this.mapview.ui.add(expand, \"top-left\");\r\n\r\n Esri.WidgetsFactory.BasemapGallery(this.mapview, \"top-left\");\r\n Esri.WidgetsFactory.LayerList(this.mapview, \"top-left\");\r\n }\r\n\r\n progressTot: number = 0;\r\n progressActual: number = 0;\r\n\r\n async doSync() {\r\n if (onlineCheck()) {\r\n await clearMapCache();\r\n await PersistentStore.removeKey(\"syncMapOfflineParameters\");\r\n let $this = this;\r\n\r\n\r\n const syncMapOfflineParameters: { zoom: number; extent: __esri.Extent; center: number[]} = {\r\n zoom: this.mapview.zoom,\r\n extent: this.mapview.extent.clone(),\r\n center: [this.mapview.center.longitude, this.mapview.center.latitude],\r\n };\r\n await PersistentStore.setKey(\"syncMapOfflineParameters\", syncMapOfflineParameters)\r\n\r\n let layer = this.map.allLayers.find(i => i.type == \"tile\" && i.title == \"World Imagery\") as __esri.WebTileLayer;\r\n\r\n this.mapview.destroy();\r\n this.map.destroy();\r\n\r\n await addTilesToCacheFromExtent(layer, syncMapOfflineParameters.zoom, (syncMapOfflineParameters.zoom + 2), syncMapOfflineParameters.extent, (a, tot, p) => {\r\n $this.progressActual = a;\r\n $this.progressTot = tot;\r\n })\r\n\r\n var sync = await hasCache() && !!(await PersistentStore.getKey(\"syncMapOfflineParameters\"));\r\n store.actions.ui.setIsSynced(sync);\r\n\r\n // this.$router.back();\r\n this.$router.push({ name: \"home\" });\r\n } else {\r\n toastHelper.error(\"Funzione disabilitata in modalità offline\");\r\n }\r\n }\r\n\r\n cancel() {\r\n // this.$router.back();\r\n this.$router.push({ name: \"home\" });\r\n }\r\n\r\n canDownload: boolean = false;\r\n\r\n private extentChanged(n: __esri.Extent, o: __esri.Extent) {\r\n if (!this.geometryEngine) {\r\n return;\r\n }\r\n\r\n if (n.width !== o?.width) {\r\n const extentArea = this.geometryEngine.geodesicArea(n as any, \"square-kilometers\");\r\n this.canDownload = extentArea < Config.application.maxDownloadableAreaSize;\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!./syncMap.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!./syncMap.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./syncMap.vue?vue&type=template&id=6e4720d2&scoped=true&\"\nimport script from \"./syncMap.ts?vue&type=script&lang=ts&\"\nexport * from \"./syncMap.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./syncMap.vue?vue&type=style&index=0&id=6e4720d2&scoped=true&lang=css&\"\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 \"6e4720d2\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router';\r\nimport SyncMap from './components/syncMap.vue';\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/syncMap',\r\n name: 'syncMap',\r\n component: SyncMap,\r\n meta: { title: 'Scarica la mappa Offline'},\r\n },\r\n];\r\n\r\nexport default routes;","\r\nimport * as route from \"./route\";\r\nimport * as module from \"./module\";\r\n\r\nexport default {\r\n modulename: 'syncMap', route, module\r\n}"],"sourceRoot":""}