{"version":3,"file":"MapBasic.vue.mjs","sources":["../../lib/map/MapBasic.vue"],"sourcesContent":["<!-- Basic MAP component -->\n\n<template>\n  <div :id=\"mapContainerId\" ref=\"mapref\" style=\"z-index:0\"></div>\n</template>\n\n<script>\n  import { mapActions } from 'vuex';\n  import Leaflet from 'leaflet';\n\n  // Fix Leaflet Marker Bug (https://github.com/Leaflet/Leaflet/issues/4968#issuecomment-264311098)\n  import iconRetinaUrl from 'leaflet/dist/images/marker-icon-2x.png';\n  import iconUrl from 'leaflet/dist/images/marker-icon.png';\n  import shadowUrl from 'leaflet/dist/images/marker-shadow.png';\n\n  Leaflet.Marker.prototype.options.icon = Leaflet.icon({\n    iconRetinaUrl,\n    iconUrl,\n    shadowUrl,\n    iconSize: [25, 41],\n    iconAnchor: [12, 41],\n    popupAnchor: [1, -34],\n    tooltipAnchor: [16, -28],\n    shadowSize: [41, 41],\n  });\n\n  export default {\n    name: 'MapBasic',\n    data() {\n      return {\n        map: {},\n        mapStyle: this.$env.content.maps.mapStyle,\n        urlTemplate: this.$env.content.maps.urlTemplate,\n        options: this.$env.content.maps.options,\n      };\n    },\n    props: {\n      location: {\n        type: Array,\n      },\n      spatialType: {\n        type: String,\n      },\n      height: {\n        type: String,\n      },\n      width: {\n        type: String,\n      },\n      mapContainerId: {\n        type: String,\n      },\n    },\n    computed: {\n      type() { return this.spatialType.substring(0, 1).toUpperCase() + this.spatialType.substring(1); },\n    },\n    methods: {\n      ...mapActions('datasets', [\n      ]),\n      initMap() {\n        // Init Map\n        const map = Leaflet.map(this.mapContainerId, { editable: true });\n\n        // Get Tiles\n        Leaflet.tileLayer(this.urlTemplate, this.options).addTo(map);\n\n        // Use GeoJSON object\n        const geoJsonLayer = Leaflet.geoJSON({\n          type: 'Feature',\n          properties: {},\n          geometry: {\n            type: this.type,\n            coordinates: this.location,\n          },\n        }, {\n          style: this.mapStyle,\n          pointToLayer: (feature, latLng) => Leaflet.circleMarker(latLng, this.mapStyle),\n        }).addTo(map);\n\n        this.$refs.mapref.style.height = this.height;\n        this.$refs.mapref.style.width = this.width;\n        map.invalidateSize();\n        map.setZoom(map.getBoundsZoom(geoJsonLayer.getBounds()));\n        map.fitBounds(geoJsonLayer.getBounds());\n        return map;\n      },\n    },\n    filters: {},\n    watch: {\n      height: {\n        handler(height) {\n          this.$refs.mapref.style.height = height;\n          this.map.invalidateSize();\n        },\n      },\n      width: {\n        handler(width) {\n          this.$refs.mapref.style.width = width;\n          this.map.invalidateSize();\n        },\n      },\n    },\n    mounted() {\n      this.map = this.initMap();\n      this.map.on('resize', () => {\n        this.map.invalidateSize();\n      });\n    },\n  };\n</script>\n\n<style lang=\"scss\">\n  .leaflet-zoom-anim .leaflet-zoom-animated {\n    will-change: unset !important;\n  }\n</style>\n"],"names":["Leaflet","iconRetinaUrl","iconUrl","shadowUrl","_sfc_main","mapActions","map","geoJsonLayer","feature","latLng","height","width","_createElementBlock","$props"],"mappings":";;;;;;;;AAeEA,EAAQ,OAAO,UAAU,QAAQ,OAAOA,EAAQ,KAAK;AAAA,EACnD,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAU,CAAC,IAAI,EAAE;AAAA,EACjB,YAAY,CAAC,IAAI,EAAE;AAAA,EACnB,aAAa,CAAC,GAAG,GAAG;AAAA,EACpB,eAAe,CAAC,IAAI,GAAG;AAAA,EACvB,YAAY,CAAC,IAAI,EAAE;AACrB,CAAC;AAED,MAAKC,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AACL,WAAO;AAAA,MACL,KAAK,CAAE;AAAA,MACP,UAAU,KAAK,KAAK,QAAQ,KAAK;AAAA,MACjC,aAAa,KAAK,KAAK,QAAQ,KAAK;AAAA,MACpC,SAAS,KAAK,KAAK,QAAQ,KAAK;AAAA;EAEnC;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,IACP;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,IACP;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,IACP;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAE,aAAO,KAAK,YAAY,UAAU,GAAG,CAAC,EAAE,YAAW,IAAK,KAAK,YAAY,UAAU,CAAC;AAAA,IAAI;AAAA,EAClG;AAAA,EACD,SAAS;AAAA,IACP,GAAGC,EAAW,YAAY,CAC1B,CAAC;AAAA,IACD,UAAU;AAER,YAAMC,IAAMN,EAAQ,IAAI,KAAK,gBAAgB,EAAE,UAAU,GAAK,CAAC;AAG/D,MAAAA,EAAQ,UAAU,KAAK,aAAa,KAAK,OAAO,EAAE,MAAMM,CAAG;AAG3D,YAAMC,IAAeP,EAAQ,QAAQ;AAAA,QACnC,MAAM;AAAA,QACN,YAAY,CAAE;AAAA,QACd,UAAU;AAAA,UACR,MAAM,KAAK;AAAA,UACX,aAAa,KAAK;AAAA,QACnB;AAAA,MACH,GAAG;AAAA,QACD,OAAO,KAAK;AAAA,QACZ,cAAc,CAACQ,GAASC,MAAWT,EAAQ,aAAaS,GAAQ,KAAK,QAAQ;AAAA,OAC9E,EAAE,MAAMH,CAAG;AAEZ,kBAAK,MAAM,OAAO,MAAM,SAAS,KAAK,QACtC,KAAK,MAAM,OAAO,MAAM,QAAQ,KAAK,OACrCA,EAAI,eAAc,GAClBA,EAAI,QAAQA,EAAI,cAAcC,EAAa,UAAW,CAAA,CAAC,GACvDD,EAAI,UAAUC,EAAa,UAAW,CAAA,GAC/BD;AAAA,IACR;AAAA,EACF;AAAA,EACD,SAAS,CAAE;AAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQI,GAAQ;AACd,aAAK,MAAM,OAAO,MAAM,SAASA,GACjC,KAAK,IAAI;MACV;AAAA,IACF;AAAA,IACD,OAAO;AAAA,MACL,QAAQC,GAAO;AACb,aAAK,MAAM,OAAO,MAAM,QAAQA,GAChC,KAAK,IAAI;MACV;AAAA,IACF;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,MAAM,KAAK,WAChB,KAAK,IAAI,GAAG,UAAU,MAAM;AAC1B,WAAK,IAAI;IACX,CAAC;AAAA,EACF;;;cAxGHC,EAA+D,OAAA;AAAA,IAAzD,IAAIC,EAAc;AAAA,IAAE,KAAI;AAAA,IAAS,OAAA,EAAiB,WAAA,IAAA;AAAA;;;"}