{"version":3,"file":"DatasetsMapFacet.vue.mjs","sources":["../../../lib/datasets/datasetsFacets/DatasetsMapFacet.vue"],"sourcesContent":["<template>\n<div v-if=\"useDatasetFacetsMap && !showCatalogDetails\">\n  <div class=\"row\">\n    <div class=\"input-group suggestion-input-group mb-3\">\n      <input type=\"text\" class=\"form-control suggestion-input\"\n        :aria-label=\"$t('message.datasets.findLocation')\"\n        :placeholder=\"$t('message.datasets.findLocation')\"\n        :title=\"$t('message.tooltip.locationFilter')\"\n        data-toggle=\"tooltip\"\n        data-placement=\"right\"\n        v-model=\"gazetteer.searchbarText\"\n        @focus=\"gazetteer.selected = false; gazetteer.searchbarText = ''\"\n        @input=\"getAutocompleteSuggestions(gazetteer.searchbarText)\"\n        @keyup.enter=\"getAutocompleteSuggestions(gazetteer.searchbarText)\">\n      <div class=\"input-group-append\">\n        <button class=\"btn btn-primary rounded-right search-button\" :title=\"$t('message.tooltip.locationFilter')\">\n          <i class=\"material-icons align-bottom\">search</i>\n        </button>\n      </div>\n      <div class=\"suggestion-list-group\" v-if=\"!gazetteer.selected\">\n        <ul class=\"list-group suggestion-list\">\n          <button class=\"list-group-item list-group-item-action\"\n            v-for=\"(suggestion, i) in gazetteer.suggestions.slice(0, 10)\"\n            :key=\"i\"\n            @click=\"handleSuggestionSelection(suggestion)\">\n            {{suggestion.name}}\n          </button>\n        </ul>\n      </div>\n    </div>\n  </div>\n  <div class=\"row position-relative mb-3\">\n    <map-bounds-receiver class=\"border-secondary map focus-border\"\n           :start-bounds=\"map.receiver.startBounds\"\n           :height=\"map.receiver.height\"\n           :width=\"map.receiver.width\"\n           :map-container-id=\"map.receiver.mapContainerId\"\n           :bounds-id=\"map.geoBoundsId\"\n           :title=\"$t('message.tooltip.locationFilter')\"\n            data-toggle=\"tooltip\"\n            data-placement=\"top\"\n           ref=\"mapReceiver\"></map-bounds-receiver>\n    <button class=\"btn btn-highlight reset-bounds-button\" v-if=\"getGeoBoundsById(map.geoBoundsId)\" @click=\"resetBoundsFor(map.geoBoundsId)\">\n      Reset Bounds\n    </button>\n    <button class=\"btn btn-sm btn-secondary map-modal-button\" data-toggle=\"modal\" data-target=\".map-modal\" @click=\"triggerResize()\">\n      <i class=\"material-icons\">fullscreen</i>\n    </button>\n    <!-- Modal Map Start -->\n    <div id=\"modal-map-wrapper\" class=\"modal fade map-modal pr-md-4 pl-md-4 pr-0 pl-0\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"Large map view\" aria-hidden=\"true\">\n      <div class=\"modal-dialog mt-md-4 mb-md-4 m-0\">\n        <div class=\"modal-content\">\n          <div class=\"modal-header\">\n            <h2 class=\"modal-title\">{{ $t('message.mapModal.drawRectangleMsg') }}</h2>\n            <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n              <span aria-hidden=\"true\">&times;</span>\n            </button>\n          </div>\n          <div class=\"modal-body d-flex flex-row flex-wrap p-md-3 p-0\">\n            <map-bounds-sender :start-bounds=\"map.sender.startBounds\"\n                         :height=\"map.sender.height\"\n                         :width=\"map.sender.width\"\n                         :map-container-id=\"map.sender.mapContainerId\"\n                         :bounds-id=\"map.geoBoundsId\"\n                         ref=\"mapSender\"></map-bounds-sender>\n          </div>\n          <div class=\"modal-footer\">\n            <button type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\">{{ $t('message.mapModal.close') }}</button>\n            <button type=\"button\" class=\"btn btn-highlight\" data-dismiss=\"modal\" @click=\"resetBoundsFor(map.geoBoundsId)\">{{ $t('message.mapModal.reset') }}</button>\n            <button type=\"button\" class=\"btn btn-primary\" @click=\"applyHoldedBounds()\" data-dismiss=\"modal\">{{ $t('message.mapModal.findDatasets') }}</button>\n          </div>\n        </div>\n      </div>\n    </div>\n  <!-- Modal Map End -->\n  </div>\n</div>\n</template>\n\n<script>\nimport MapBoundsSender from '../../map/MapBoundsSender.vue';\nimport MapBoundsReceiver from '../../map/MapBoundsReceiver.vue';\nimport {isNil} from \"lodash\";\nimport {mapActions, mapGetters} from \"vuex\";\nexport default {\n  name: \"DatasetFacetMap\",\n  components: {\n    MapBoundsReceiver,\n    MapBoundsSender\n  },\n  props: [\n    \"showCatalogDetails\"\n  ],\n  data() {\n    return {\n      useDatasetFacetsMap: this.$env.content.datasets.facets.useDatasetFacetsMap,\n      gazetteer: {\n        searchbarText: '',\n        suggestions: [],\n        selected: false,\n        bounds: [],\n      },\n      map: {\n        sender: {\n          startBounds: this.$env.content.maps.sender.startBounds,\n          height: this.$env.content.maps.sender.height,\n          width: this.$env.content.maps.sender.width,\n          mapContainerId: this.$env.content.maps.sender.mapContainerId,\n        },\n        receiver: {\n          startBounds: this.$env.content.maps.receiver.startBounds,\n          height: this.$env.content.maps.receiver.height,\n          width: this.$env.content.maps.receiver.width,\n          mapContainerId: this.$env.content.maps.receiver.mapContainerId,\n        },\n        geoBoundsId: this.$env.content.maps.geoBoundsId,\n      },\n      browser: {\n        /* eslint-disable-next-line */\n        isIE: /*@cc_on!@*/!!document.documentMode,\n      }\n    }\n  },\n  computed: {\n    ...mapGetters('gazetteer', [\n      'getSuggestions',\n    ]),\n    ...mapGetters('geo', [\n      'getGeoBoundsById',\n      'getHoldedGeoBoundsById',\n    ]),\n    geoStateBoundsWatcher() {\n      return this.getGeoBoundsById(this.map.geoBoundsId);\n    }\n  },\n  methods: {\n    ...mapActions('gazetteer', [\n      'autocomplete',\n    ]),\n    ...mapActions('geo', [\n      'setGeoBoundsForId',\n      'resetGeoBoundsForId',\n      'resetHoldedGeoBoundsForId',\n    ]),\n    ...mapActions('datasets', [\n      'setDatasetGeoBounds'\n    ]),\n    applyHoldedBounds() {\n      const holdedBounds = this.getHoldedGeoBoundsById(this.map.geoBoundsId);\n      this.setGeoBoundsForId({\n        bounds: holdedBounds,\n        boundsId: this.map.geoBoundsId,\n      });\n    },\n    resetBoundsFor(boundsId) {\n      this.$refs.mapSender.resetBounds();\n      this.$refs.mapReceiver.resetBounds();\n      this.resetGeoBoundsForId(boundsId);\n      this.resetHoldedGeoBoundsForId(boundsId);\n    },\n    getAutocompleteSuggestions(query) {\n      if (!query || isNil(query)) this.clearAutocompleteSuggestions();\n      else {\n        this.autocomplete(query).then(() => {\n          this.$nextTick(() => {\n            this.gazetteer.suggestions = this.getSuggestions;\n          });\n        });\n      }\n    },\n    clearAutocompleteSuggestions() {\n      this.gazetteer.suggestions = [];\n    },\n    handleSuggestionSelection(suggestion) {\n      this.gazetteer.searchbarText = suggestion.name;\n      this.gazetteer.selected = true;\n      const location = suggestion.geometry.split(',');\n      this.gazetteer.bounds = [[location[1], location[0]], [location[3], location[2]]]\n        .map(point => point.map(coord => parseFloat(coord)));\n      this.setGeoBoundsForId({\n        bounds: this.gazetteer.bounds,\n        boundsId: this.map.geoBoundsId,\n      });\n    },\n    triggerResize() {\n      if (this.browser.isIE) {\n        // Note: Trigger resize after 500ms (IE11 needs longer than modern browsers) in IE11 when Modal element is visible to properly display the map component\n        setTimeout(() => {\n          const evt = document.createEvent('UIEvents');\n          evt.initUIEvent('resize', true, false, window, 0);\n          window.dispatchEvent(evt);\n        }, 500);\n      } else {\n        // Note: Trigger resize after 200ms when Modal element is visible to properly display the map component\n        setTimeout(() => {\n          window.dispatchEvent(new Event('resize'));\n        }, 200);\n      }\n    }\n  },\n  watch: {\n    geoStateBoundsWatcher: {\n      deep: true,\n      handler(bounds) {\n        this.setDatasetGeoBounds(bounds);\n      },\n    }\n  },\n  created() {}\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.search-button {\n  &:hover {\n    background-color: #196fd2;\n    border-color: #196fd2\n  }\n}\n\n.map {\n  z-index: 0;\n}\n.suggestion-input-group {\n  position: relative;\n}\n.suggestion-input {\n  // Position absolute is causing the input box to be invisible\n  // position: absolute;\n  position: relative;\n  top: 0;\n  height: 100%;\n}\n.suggestion-list-group {\n  position: relative;\n  width: 100%;\n}\n.suggestion-list {\n  width: 100%;\n  position: absolute;\n  top: 0;\n  z-index: 100;\n}\n\n.map-modal-button {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n}\n\n#modal-map-wrapper .modal-dialog {\n  max-width: 100%;\n}\n\n.modal-content {\n  //min-height: 100%;\n  min-height: 100vh;\n}\n\n#modalMap {\n  display: flex;\n  flex: 1 1;\n}\n\n.reset-bounds-button {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n}\n\n.focus-border {\n  transition: box-shadow 200ms ease;\n\n  &:focus {\n    box-shadow: 0px 0px 7px #202020;\n  }\n}\n\n@media (min-width: 768px) {\n  .modal-content {\n    min-height: auto!important;\n  }\n  #modalMap {\n    height: 500px;\n  }\n}\n\n/*** MATERIAL ICONS ***/\n.material-icons.small-icon {\n  font-size: 20px;\n}\n</style>\n"],"names":["_sfc_main","MapBoundsReceiver","MapBoundsSender","mapGetters","mapActions","holdedBounds","boundsId","query","isNil","suggestion","location","point","coord","evt","bounds","_hoisted_2","_hoisted_3","_hoisted_5","_hoisted_8","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","$data","$props","_createElementBlock","_hoisted_1","_createElementVNode","_ctx","_cache","$event","$options","_withKeys","_vModelText","_openBlock","_hoisted_7","_Fragment","_renderList","i","_toDisplayString","_hoisted_9","_createVNode","_component_map_bounds_receiver","_hoisted_11","_component_map_bounds_sender","_hoisted_18"],"mappings":"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"}