{"version":3,"file":"js/5253-7af68171173b4e57c0c8.chunk.js","mappings":"iGAAA,KACEA,SAAU,CACRC,YAAAA,GACE,QAASC,KAAKC,aAChB,EAEAA,aAAAA,GACE,OAAOD,KAAKE,kBAAkBD,aAChC,GAGFE,OAAAA,GAKMH,KAAKD,cACPC,KAAKI,uCAET,EAEAC,QAAS,CACPC,qBAAAA,GACE,OAAO,IAAIC,SAASC,IAGlBC,MAAM,WAAWT,KAAKC,uBAAuBS,MAAMC,IACjDA,EAAKC,OAAOF,MAAMG,IAChBL,EAAQK,EAAa,GACrB,GACF,GAEN,EAEAT,qCAAAA,GACOJ,KAAKE,kBAAkBY,mBAAmBC,SAC7Cf,KAAKM,wBAAwBI,MAAMG,IACjC,MAAMG,EAAcH,EAAaI,aAAaC,cAC9ClB,KAAKE,kBAAkBY,mBAAmBC,QAAUC,CAAW,GAGrE,G,kFCtCG,MAAMG,EAAsB,CACjCC,OAAQ,CAAEC,EAAAA,GAEVC,MAAO,CACLC,sBAAuB,CACrBC,KAAMC,OACNC,UAAU,GAEZC,uBAAwB,CACtBH,KAAMC,OACNC,UAAU,GAEZE,aAAc,CACZJ,KAAMC,OACNC,UAAU,EACVG,QAAS,IAEXC,gBAAiB,CACfN,KAAMO,OACNL,UAAU,EACVG,QAASA,KAAA,CAAS,IAEpBG,qBAAsB,CACpBR,KAAMC,OACNC,UAAU,EACVG,QAAS,IAEXI,UAAW,CACTT,KAAMC,OACNC,UAAU,IAIdQ,IAAAA,GACE,MAAO,CACLC,YAAanC,KAAKgC,qBAEtB,EAEAlC,SAAU,CACRsC,mBAAAA,GACE,OAAOL,OAAOM,QAAQrC,KAAK8B,iBAAiBQ,KAAIC,IAAC,CAAMC,KAAMD,EAAE,GAAIE,MAAOF,EAAE,MAC9E,EAEAG,iBAAAA,GACE,OAAO1C,KAAKE,kBAAkBY,mBAAmBC,OACnD,EAEA4B,gBAAAA,GACE,YAAoCC,IAAhC5C,KAAK2B,uBACA3B,KAAK2B,uBAEL3B,KAAK6C,KAAKC,EAAE,iBAEvB,GAGFzC,QAAS,CACP0C,MAAAA,CAAOC,GACLhD,KAAKmC,YAAca,GACnBC,EAAAA,EAAAA,KAAS,KACPjD,KAAKkD,MAAMC,KAAKC,QAAQ,GAE5B,G,wDClEG,MAAMC,EAAiB,CAC5B/B,MAAO,CACLgC,aAAc,CACZ9B,KAAMC,OACNI,QAAS,IAEX0B,WAAY,CACV/B,KAAMC,OACNI,QAAS,IAEXN,sBAAuB,CACrBC,KAAMC,OACNC,UAAU,GAEZ8B,QAAS,CACPhC,KAAMC,OACNI,QAAS,eAIb4B,MAAO,CAAC,UAERvB,IAAAA,GACE,MAAO,CACLwB,QAAS,8BACTV,MAAOhD,KAAKsD,aAEhB,EAEAxD,SAAU,CACR6D,eAAAA,GACE,YAAmCf,IAA/B5C,KAAKuB,sBACAvB,KAAKuB,sBAELvB,KAAK6C,KAAKC,EAAE,mCAEvB,GAGFzC,QAAS,CACP0C,MAAAA,GACE/C,KAAK4D,MAAM,SAAU5D,KAAKgD,MAC5B,G,sBCtCJa,EAAQ,EAAU,CAACC,EAAKxC,KACpB,MAAMyC,EAASD,EAAIE,WAAaF,EAChC,IAAK,MAAOG,EAAKC,KAAQ5C,EACrByC,EAAOE,GAAOC,EAElB,OAAOH,CAAM,C,uGCTjB,qEAAAE,IAAA,EAY6BE,MAAM,sBACvBA,MAAM,c,yBAWlB,GACEC,WAAY,CAAEC,UAAU,KAExBjD,OAAQ,CAAED,EAAAA,IClBZ,OAFiC,E,SAAA,GAAgB,EAAQ,CAAC,CAAC,SDM7B,uEAZ5BmD,EAAAA,EAAAA,IAgBO,QAhBDC,IAAI,OAAQC,OAAQC,EAAAxC,UAAWyC,OAAO,SAC1CC,EAAAA,EAAAA,IAAgE,SAAzDnD,KAAK,SAASgB,KAAK,iBAAkBC,MAAOgC,EAAAtC,aAAAA,KAAAA,EAFvDyC,GAAA,aAAAC,EAAAA,EAAAA,SAAA,aAGIP,EAAAA,EAAAA,IAAwIQ,EAAAA,GAAA,MAH5IC,EAAAA,EAAAA,IAGgCN,EAAArC,qBAAd4C,KAAU,WAAxBV,EAAAA,EAAAA,IAAwI,SAAtFL,IAAKe,EAAWxC,KAAMhB,KAAK,SAAUgB,KAAMwC,EAAWxC,KAAOC,MAAOuC,EAAWvC,OAAAA,KAAAA,EAHrIwC,MAAA,mBAAAJ,EAAAA,EAAAA,OAIiBJ,EAAA/B,oBAAiB,WAA9B4B,EAAAA,EAAAA,IAA6F,SAJjGL,IAAA,EAIoCzC,KAAK,SAASgB,KAAK,eAAgBC,MAAOgC,EAAA/B,mBAAAA,KAAAA,EAJ9EwC,KAAAC,EAAAA,EAAAA,IAAA,oBAAAN,EAAAA,EAAAA,QAKIO,EAAAA,EAAAA,IAMaC,EAAA,CANA,gBAAeZ,EAAAzC,qBAAuB,0BAAyByC,EAAAlD,sBAAwB+D,SAAQb,EAAA1B,QAAAA,CAC/F,iBAAawC,EAAAA,EAAAA,KACtB,IAES,EAFTZ,EAAAA,EAAAA,IAES,UAFDnD,KAAK,SAAS2C,MAAM,oCAAqCqB,MAAOf,EAAA9B,mBAAAA,EAAAA,EAAAA,IACnE8B,EAAA9B,kBAAgB,EAR7B8C,MAAAC,EAAA,0EAAAb,EAAAA,EAAAA,OAYeJ,EAAA7C,eAAY,WAAvB0C,EAAAA,EAAAA,IAIM,MAJNqB,EAIM,EAHJhB,EAAAA,EAAAA,IAEO,OAFPiB,GAEOC,EAAAA,EAAAA,IADFpB,EAAA7C,cAAY,OAdvBuD,EAAAA,EAAAA,IAAA,UAAAW,EAAA,GCO4E,CAAC,YAAY,oB,qGCLhF3B,MAAM,eAAa,EAF5B,qB,IAcA,GACE/C,OAAQ,C,SAAEiC,ICNZ,OAFiC,E,SAAA,GAAgB,EAAQ,CAAC,CAAC,SDP3D,wCACEiB,EAAAA,EAAAA,IAQO,QARDH,MAAM,cAAe4B,SAAMC,EAAA,KAAAA,EAAA,IADnCC,EAAAA,EAAAA,KAAA,IAAAC,IAC6CzB,EAAA1B,QAAA0B,EAAA1B,UAAAmD,IAAM,iBAC/CvB,EAAAA,EAAAA,IAMM,MANNmB,EAMM,WALJnB,EAAAA,EAAAA,IACsC,SAD9BwB,GAAI1B,EAAAf,QAHlB,sBAAAsC,EAAA,KAAAA,EAAA,GAAAI,GAGoC3B,EAAAzB,MAAKoD,GAAE5E,KAAK,OAAO2C,OAHvDkC,EAAAA,EAAAA,IAAA,CAG6D,eAAc,EAAW5B,EAAAlB,aAAY,KAAQf,KAAK,QACjG8D,YAAa7B,EAAAd,iBAAAA,KAAAA,GAJ3BiB,GAAA,OAGoCH,EAAAzB,SAAK,aAHzC6B,EAAAA,EAAAA,QAKMF,EAAAA,EAAAA,IAEM,aADJ4B,EAAAA,EAAAA,IAA6B9B,EAAA+B,OAAA,wBAAA5D,GAAA,cCCuC,CAAC,YAAY,oB","sources":["webpack://agra/./app/javascript/location-search/geoip-country-mixin.js","webpack://agra/./app/javascript/location-search/location-search-mixin.js","webpack://agra/./app/javascript/location-search/search-bar-mixin.js","webpack://agra/./node_modules/vue-loader/dist/exportHelper.js","webpack://agra/./app/javascript/components/inputs/locations/location-search.vue","webpack://agra/./app/javascript/components/inputs/locations/location-search.vue?a578","webpack://agra/./app/javascript/local/search-bar.vue","webpack://agra/./app/javascript/local/search-bar.vue?ac78"],"sourcesContent":["export default {\n  computed: {\n    geoipEnabled() {\n      return !!this.geoipHostname\n    },\n\n    geoipHostname() {\n      return this.agraConfiguration.geoipHostname\n    }\n  },\n\n  created() {\n    // Kick off the geoip call that will set agraConfiguration.locationSearchBias.country, which\n    // we'll want to pass along with location search requests.\n    // Q: What happens if this isn't done by the time the user makes a search request?\n    // A: That's fine, it's not a big deal, their search just won't have the country biasing on it.\n    if (this.geoipEnabled) {\n      this.setLocationSearchBiasCountryFromGeoip()\n    }\n  },\n\n  methods: {\n    fetchGeoipInformation() {\n      return new Promise((resolve) => {\n        // Q: Why not use our ajax helper?\n        // A: It runs into a CORS issue trying to make this external request\n        fetch(`https://${this.geoipHostname}/geoip`).then((resp) => {\n          resp.json().then((jsonResponse) => {\n            resolve(jsonResponse)\n          })\n        })\n      })\n    },\n\n    setLocationSearchBiasCountryFromGeoip() {\n      if (!this.agraConfiguration.locationSearchBias.country) {\n        this.fetchGeoipInformation().then((jsonResponse) => {\n          const countryCode = jsonResponse.country_code.toUpperCase()\n          this.agraConfiguration.locationSearchBias.country = countryCode\n        })\n      }\n    }\n  }\n}\n","import GeoipCountryMixin from '@/location-search/geoip-country-mixin'\nimport { nextTick } from 'vue'\n\nexport const locationSearchMixin = {\n  mixins: [ GeoipCountryMixin ],\n\n  props: {\n    customPlaceholderText: {\n      type: String,\n      required: false\n    },\n    customSearchButtonText: {\n      type: String,\n      required: false\n    },\n    distanceHint: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    extraParameters: {\n      type: Object,\n      required: false,\n      default: () => ({})\n    },\n    initialLocationQuery: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    lookupUrl: {\n      type: String,\n      required: true\n    }\n  },\n\n  data() {\n    return {\n      searchQuery: this.initialLocationQuery\n    }\n  },\n\n  computed: {\n    extraParameterPairs() {\n      return Object.entries(this.extraParameters).map(e => ({name: e[0], value: e[1]}))\n    },\n\n    searchBiasCountry() {\n      return this.agraConfiguration.locationSearchBias.country\n    },\n\n    searchButtonText() {\n      if (this.customSearchButtonText !== undefined) {\n        return this.customSearchButtonText\n      } else {\n        return this.i18n.t('buttons.lookup')\n      }\n    }\n  },\n\n  methods: {\n    search(query) {\n      this.searchQuery = query\n      nextTick(() => {\n        this.$refs.form.submit()\n      })\n    }\n  }\n}\n","export const searchBarMixin = {\n  props: {\n    initialQuery: {\n      type: String,\n      default: ''\n    },\n    inputClass: {\n      type: String,\n      default: ''\n    },\n    customPlaceholderText: {\n      type: String,\n      required: false\n    },\n    variant: {\n      type: String,\n      default: 'inputGroup'\n    }\n  },\n\n  emits: ['search'],\n\n  data() {\n    return {\n      inputId: 'location-search-query-input',\n      query: this.initialQuery\n    }\n  },\n\n  computed: {\n    placeholderText() {\n      if (this.customPlaceholderText !== undefined) {\n        return this.customPlaceholderText\n      } else {\n        return this.i18n.t('public.local_search.search_label')\n      }\n    }\n  },\n\n  methods: {\n    search() {\n      this.$emit('search', this.query)\n    }\n  }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","<template>\n  <form ref=\"form\" :action=\"lookupUrl\" method=\"GET\">\n    <input type=\"hidden\" name=\"location_query\" :value=\"searchQuery\">\n    <input v-for=\"extraParam in extraParameterPairs\" :key=\"extraParam.name\" type=\"hidden\" :name=\"extraParam.name\" :value=\"extraParam.value\">\n    <input v-if=\"searchBiasCountry\" type=\"hidden\" name=\"user_country\" :value=\"searchBiasCountry\">\n    <search-bar :initial-query=\"initialLocationQuery\" :custom-placeholder-text=\"customPlaceholderText\" @search=\"search\">\n      <template #search-button>\n        <button type=\"submit\" class=\"btn btn-lg btn-dark search-button\" :title=\"searchButtonText\">\n          {{ searchButtonText }}\n        </button>\n      </template>\n    </search-bar>\n    <div v-if=\"distanceHint\" class=\"text-start mt-1\">\n      <span class=\"small-text\">\n        {{ distanceHint }}\n      </span>\n    </div>\n  </form>\n</template>\n\n<script>\nimport SearchBar from '@/local/search-bar'\nimport { locationSearchMixin } from '@/location-search/location-search-mixin'\n\nexport default {\n  components: { SearchBar },\n\n  mixins: [ locationSearchMixin ]\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.search-button {\n  border-radius: 0 4px 4px 0;\n}\n</style>\n","import { render } from \"./location-search.vue?vue&type=template&id=3af2ee0f&scoped=true\"\nimport script from \"./location-search.vue?vue&type=script&lang=js\"\nexport * from \"./location-search.vue?vue&type=script&lang=js\"\n\nimport \"./location-search.vue?vue&type=style&index=0&id=3af2ee0f&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3af2ee0f\"]])\n\nexport default __exports__","<template>\n  <form class=\"search-form\" @submit.prevent=\"search\">\n    <div class=\"input-group\">\n      <input :id=\"inputId\" v-model=\"query\" type=\"text\" class=\"form-control\" :class=\"{[inputClass]: true}\" name=\"query\"\n             :placeholder=\"placeholderText\">\n      <div>\n        <slot name=\"search-button\" />\n      </div>\n    </div>\n  </form>\n</template>\n\n<script>\nimport { searchBarMixin } from '../location-search/search-bar-mixin'\nexport default {\n  mixins: [ searchBarMixin ]\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.search-form {\n  background-color: transparent;\n}\n\n.input-group {\n  display: flex;\n  width: 100%;\n\n  input {\n    flex: 1;\n  }\n\n  .form-control, ::v-deep(.btn) {\n    height: 50px;\n    z-index: unset;\n  }\n}\n</style>\n","import { render } from \"./search-bar.vue?vue&type=template&id=33abc7c2&scoped=true\"\nimport script from \"./search-bar.vue?vue&type=script&lang=js\"\nexport * from \"./search-bar.vue?vue&type=script&lang=js\"\n\nimport \"./search-bar.vue?vue&type=style&index=0&id=33abc7c2&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-33abc7c2\"]])\n\nexport default __exports__"],"names":["computed","geoipEnabled","this","geoipHostname","agraConfiguration","created","setLocationSearchBiasCountryFromGeoip","methods","fetchGeoipInformation","Promise","resolve","fetch","then","resp","json","jsonResponse","locationSearchBias","country","countryCode","country_code","toUpperCase","locationSearchMixin","mixins","GeoipCountryMixin","props","customPlaceholderText","type","String","required","customSearchButtonText","distanceHint","default","extraParameters","Object","initialLocationQuery","lookupUrl","data","searchQuery","extraParameterPairs","entries","map","e","name","value","searchBiasCountry","searchButtonText","undefined","i18n","t","search","query","nextTick","$refs","form","submit","searchBarMixin","initialQuery","inputClass","variant","emits","inputId","placeholderText","$emit","exports","sfc","target","__vccOpts","key","val","class","components","SearchBar","_createElementBlock","ref","action","_ctx","method","_createElementVNode","_hoisted_2","_createTextVNode","_Fragment","_renderList","extraParam","_hoisted_3","_hoisted_4","_createCommentVNode","_createVNode","_component_search_bar","onSearch","_withCtx","title","_hoisted_5","_","_hoisted_6","_hoisted_7","_toDisplayString","_hoisted_1","onSubmit","_cache","_withModifiers","args","id","$event","_normalizeClass","placeholder","_renderSlot","$slots"],"sourceRoot":""}