{"version":3,"sources":["webpack:///./src/components/AdminComponents/MapaDePedidos.vue?68d4","webpack:///src/components/AdminComponents/MapaDePedidos.vue","webpack:///./src/components/AdminComponents/MapaDePedidos.vue?ba2f","webpack:///./src/components/AdminComponents/MapaDePedidos.vue","webpack:///./src/components/AdminComponents/MapaDePedidos.vue?4c04"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","staticStyle","staticRenderFns","name","mixins","Helpers","data","pedidosService","direccionesService","map","google","mapConfig","center","lat","lng","zoom","streetViewControl","restriction","puntos","pedidosUbicacion","bounds","poligonoCobertura","created","methods","fetchAreaCobertura","getItemsForList","initializeMap","maps","Map","mapContainer","addZonaDeCobertura","objectPoligonoCobertura","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","setMap","addMarker","content","contentString","position","cy","cx","draggable","title","codigo_pedido","animation","Animation","DROP","objectMarcador","addListener","infowindow","open","anchor","shouldFocus","push","pintarPuntos","forEach","ajustarmapa","getBoundFromPoligon","getBoundFromPuntos","item","getPosition","ubicaciones","fitBounds","component"],"mappings":"0HAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACG,IAAI,YAAYD,YAAY,aAAaE,YAAY,CAAC,OAAS,aAChNC,EAAkB,G,uICWtB,GACEC,KAAM,cACNC,OAAQ,CAACC,EAAX,MACEC,KAHF,WAII,MAAO,CACLC,eAAgB,KAChBC,mBAAN,KACMC,IAAK,KACLC,OAAQ,KACRC,UAAW,CACTC,OAAQ,CACNC,IAAK,kBACLC,KAAM,mBAERC,KAAM,EACNC,mBAAmB,EACnBC,YAAa,MAEfL,OAAQ,CACNC,IAAK,kBACLC,KAAM,mBAERI,OAAQ,GACRC,iBAAkB,GAClBC,OAAQ,KACRC,kBAAmB,KAGvBC,QA5BF,WA6BI5B,KAAKa,eAAiB,IAAI,EAA9B,KACIb,KAAKc,mBAAqB,IAAI,EAAlC,MAEE,QAhCF,WAgCA,qKACA,uBADA,SAEA,KACA,mDAHA,OAEA,EAFA,OAKA,WACA,wCACA,kBAPA,8CASEe,QAAS,CACPC,mBADJ,WAEM9B,KAAK2B,kBAAX,4DAEII,gBAJJ,WAIA,WACM/B,KAAKa,eACX,aACA,kBACQ,EAAR,8CACU,OAAV,KAEQ,EAAR,kBAEA,kBACQ,EAAR,4BACU,MAAV,QACU,QAAV,SACU,QAAV,6CAIImB,cArBJ,WAsBM,IAAN,uBACMhC,KAAKe,IAAM,IAAIf,KAAKgB,OAAOiB,KAAKC,IAAIC,EAAcnC,KAAKiB,WACvDjB,KAAKoC,qBACLpC,KAAK+B,mBAEPK,mBA3BJ,WA4BMpC,KAAKqC,wBAA0B,IAAIrC,KAAKgB,OAAOiB,KAAKK,QAAQ,CAC1DC,MAAOvC,KAAK2B,kBACZa,YAAa,UACbC,cAAe,GACfC,aAAc,EACdC,UAAW,UACXC,YAAa,KAEf5C,KAAKqC,wBAAwBQ,OAAO7C,KAAKe,MAE3C+B,UAtCJ,SAsCA,cACA,4FAEA,gBAFA,gFAGA,QAHA,eAGA,gCAHA,cAGA,6BAHA,gFAIA,YAJA,2FAKA,gBALA,uBAKA,YALA,gFAMA,gBANA,gFAOA,kBAPA,4HAUM,EAAN,+BACQ,GAAR,mKAEM,GAAN,iCAGM,IAAN,mCACQC,QAASC,IAGjB,+BACQC,SAAU,CACR9B,IAAKP,EAAKsC,GACV9B,IAAKR,EAAKuC,IAEZpC,IAAKf,KAAKe,IACVqC,WAAW,EACXC,MAAOzC,EAAK0C,cACZC,UAAWvD,KAAKgB,OAAOiB,KAAKuB,UAAUC,OAGxCC,EAAeC,YAAY,SAAS,WAClCC,EAAWC,KAAK,CACdC,OAAQJ,EACR3C,IAAK,EAAf,IACUgD,aAAa,OAIjB/D,KAAKwB,OAAOwC,KAAKN,IAEnBO,aAhFJ,WAgFA,WACMjE,KAAKwB,OAAS,GACdxB,KAAKyB,iBAAiByC,SAAQ,SAApC,GACQ,EAAR,gBAEMlE,KAAKmE,eAEPC,oBAvFJ,WAuFA,WACM,OAAOpE,KAAK2B,kBAAkBZ,KAAI,SAAxC,GACQ,OAAO,IAAI,EAAnB,oCAGIsD,mBA5FJ,WA6FM,OAAOrE,KAAKwB,OAAOT,KAAI,SAA7B,GACQ,OAAOuD,EAAKC,kBAGhBJ,YAjGJ,WAiGA,WACA,6BAEMK,EAAYN,SAAQ,SAA1B,GACQ,EAAR,oBAEMlE,KAAKe,IAAI0D,UAAUzE,KAAK0B,WC5JwU,I,wBCQlWgD,EAAY,eACd,EACA5E,EACAU,GACA,EACA,KACA,WACA,MAIa,aAAAkE,E,oECnBf","file":"js/chunk-5be90450.860bd55f.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-cental\"},[_c('div',{ref:\"googleMap\",staticClass:\"google-map\",staticStyle:{\"height\":\"100%\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"container-cental\">\r\n    <div class=\"google-map\" ref=\"googleMap\" style=\"height: 100%\"></div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport GoogleMapsApiLoader from \"google-maps-api-loader\";\r\nimport DireccionesService from \"@/services/direcciones.service\";\r\nimport PedidosService from \"@/services/pedidos.service\";\r\nimport EventBus from \"@/services/eventBus.js\";\r\nimport { Helpers } from \"@/mixins/Helpers\";\r\nexport default {\r\n  name: \"MapaPedidos\",\r\n  mixins: [Helpers],\r\n  data() {\r\n    return {\r\n      pedidosService: null,\r\n      direccionesService:null,\r\n      map: null,\r\n      google: null,\r\n      mapConfig: {\r\n        center: {\r\n          lat: 4.683359696392844,\r\n          lng: -74.08041937443866,\r\n        },\r\n        zoom: 8,\r\n        streetViewControl: false,\r\n        restriction: null,\r\n      },\r\n      center: {\r\n        lat: 4.683359696392844,\r\n        lng: -74.08041937443866,\r\n      },\r\n      puntos: [],\r\n      pedidosUbicacion: [],\r\n      bounds: null,\r\n      poligonoCobertura: [],\r\n    };\r\n  },\r\n  created() {\r\n    this.pedidosService = new PedidosService();\r\n    this.direccionesService = new DireccionesService();\r\n  },\r\n  async mounted() {\r\n    this.fetchAreaCobertura();\r\n    const googleMapApi = await GoogleMapsApiLoader({\r\n      apiKey: \"AIzaSyCFnBjvp7-DXvPyohgfyFPUmRFH4o1CEUM\",\r\n    });\r\n    this.google = googleMapApi;\r\n    this.bounds = new this.google.maps.LatLngBounds();\r\n    this.initializeMap();\r\n  },\r\n  methods: {\r\n    fetchAreaCobertura(){\r\n      this.poligonoCobertura=[...this.direccionesService.getAreaCobertura()]\r\n    },\r\n    getItemsForList() {\r\n      this.pedidosService\r\n        .pedidosAll()\r\n        .then((result) => {\r\n          this.pedidosUbicacion = result.data.data.map((item) => {\r\n            return item;\r\n          });\r\n          this.pintarPuntos();\r\n        })\r\n        .catch(() => {\r\n          EventBus.$emit(\"MOSTRAR_TOAST\", {\r\n            title: \"Error\",\r\n            variant: \"danger\",\r\n            message: \"Error al recuperar items de la lista\",\r\n          });\r\n        });\r\n    },\r\n    initializeMap() {\r\n      const mapContainer = this.$refs.googleMap;\r\n      this.map = new this.google.maps.Map(mapContainer, this.mapConfig);\r\n      this.addZonaDeCobertura();\r\n      this.getItemsForList();\r\n    },\r\n    addZonaDeCobertura() {\r\n      this.objectPoligonoCobertura = new this.google.maps.Polygon({\r\n        paths: this.poligonoCobertura,\r\n        strokeColor: \"#FF0000\",\r\n        strokeOpacity: 0.8,\r\n        strokeWeight: 2,\r\n        fillColor: \"#FF0000\",\r\n        fillOpacity: 0.1,\r\n      });\r\n      this.objectPoligonoCobertura.setMap(this.map);\r\n    },\r\n    addMarker(data) {\r\n      let contentString = `\r\n        <div>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.codigo_pedido}</p>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.fecha} de ${this.secondsToHM(data.hora_inicio)} a ${this.secondsToHM(data.hora_fin)}</p>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.direccion}</p>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">torre/mnz: ${data.torre_manzana} apto/casa: ${data.apto_casa}</p>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.nombre_recibe}</p>\r\n            <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.telefono_recibe}</p>\r\n            <div>\r\n                <p style=\"padding:0px; margin:0px;margin-top:2px;font-weight:600\">Productos</p>`\r\n                data.productos.forEach((item)=>{\r\n                  contentString+= `<p style=\"padding:0px; margin:0px;\">${item.cantidad} ${item.producto} - ${item.presentacion} ${item.es_adicion==1?'(adición)':''}</p>`\r\n                })                \r\n            contentString+= `</div>\r\n        </div>\r\n      `;\r\n      const infowindow = new this.google.maps.InfoWindow({\r\n        content: contentString,\r\n      });\r\n\r\n      const objectMarcador = new this.google.maps.Marker({\r\n        position: {\r\n          lat: data.cy,\r\n          lng: data.cx,\r\n        },\r\n        map: this.map,\r\n        draggable: false,\r\n        title: data.codigo_pedido,\r\n        animation: this.google.maps.Animation.DROP,\r\n      });\r\n\r\n      objectMarcador.addListener(\"click\", () => {\r\n        infowindow.open({\r\n          anchor: objectMarcador,\r\n          map: this.map,\r\n          shouldFocus: false,\r\n        });\r\n      });\r\n\r\n      this.puntos.push(objectMarcador);\r\n    },\r\n    pintarPuntos() {\r\n      this.puntos = [];\r\n      this.pedidosUbicacion.forEach((item) => {\r\n        this.addMarker(item);\r\n      });\r\n      this.ajustarmapa();\r\n    },\r\n    getBoundFromPoligon() {\r\n      return this.poligonoCobertura.map((item) => {\r\n        return new this.google.maps.LatLng(item.lat, item.lng);\r\n      });\r\n    },\r\n    getBoundFromPuntos() {\r\n      return this.puntos.map((item) => {\r\n        return item.getPosition();\r\n      });\r\n    },\r\n    ajustarmapa() {\r\n      const ubicaciones = this.getBoundFromPoligon();\r\n      //const ubicaciones = this.getBoundFromPuntos();\r\n      ubicaciones.forEach((item) => {\r\n        this.bounds.extend(item);\r\n      });\r\n      this.map.fitBounds(this.bounds);\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.container-cental {\r\n  width: 100%;\r\n  height: calc(100vh - 55px);\r\n  padding: 0px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapaDePedidos.vue?vue&type=template&id=17c1da64&scoped=true&\"\nimport script from \"./MapaDePedidos.vue?vue&type=script&lang=js&\"\nexport * from \"./MapaDePedidos.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapaDePedidos.vue?vue&type=style&index=0&id=17c1da64&lang=scss&scoped=true&\"\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  \"17c1da64\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=style&index=0&id=17c1da64&lang=scss&scoped=true&\""],"sourceRoot":""}