{"version":3,"file":"PcaPredictInput-DMpvLJAT.js","sources":["../../../app/javascript/utils/formatPcaAddress.js","../../../app/javascript/api/pcaLookup.js","../../../app/javascript/components/shared/PcaPredictInput.vue"],"sourcesContent":["export default {\n  formatPcaAddress(response) {\n    const [result] = response.data.Items;\n\n    // Track address lines beyond line1 and order them\n    // by broadest area (i.e. largest number first)\n    // filter to ensure we are only returning things with value\n    const addressCandidates = [\n      result.Company,\n      result.Line1,\n      result.Line5,\n      result.Line4,\n      result.Line3,\n      result.Line2\n    ].filter(el => el.length);\n\n    return {\n      city: result.City,\n      postcode: result.PostalCode,\n      region: result.Province,\n      street1: addressCandidates.shift(),\n      street2: addressCandidates.slice(0, 2).reverse().join(\", \")\n    };\n  }\n};\n","import axios from \"axios\";\nimport formatter from \"../utils/formatPcaAddress\";\n\nconst key = \"AN12-PF26-JG83-BC33\";\nconst limit = 5;\n\nfunction setUpSearchUrl(Text, Countries, Container = null) {\n  let url = `https://api.addressy.com/Capture/Interactive/Find/v1.00/json3.ws?Key=${key}&Limit=${limit}`;\n\n  // Build the query string\n  url += `&Text=${encodeURIComponent(Text)}`;\n  url += `&Countries=${encodeURIComponent(Countries)}`;\n  if (Container) {\n    url += `&Container=${encodeURIComponent(Container)}`;\n  }\n  return url;\n}\n\nfunction setUpSelectUrl(Id) {\n  let url = `https://api.addressy.com/Capture/Interactive/Retrieve/v1.00/json3.ws?Key=${key}`;\n\n  // Build the query string\n  url += `&Id=${encodeURIComponent(Id)}`;\n\n  return url;\n}\n\nexport default {\n  async runSearch(searchTerm, countryIso, searchId) {\n    try {\n      const url = setUpSearchUrl(searchTerm, countryIso, searchId);\n      return await axios.get(url);\n    } catch (error) {\n      return false;\n    }\n  },\n  async getAddress(id) {\n    try {\n      const url = setUpSelectUrl(id);\n      const response = await axios.get(url);\n      return formatter.formatPcaAddress(response);\n    } catch (error) {\n      return false;\n    }\n  },\n  isCorrectResponse(lastTermRequested, res) {\n    if (!res) return false;\n\n    return (\n      lastTermRequested === new URLSearchParams(res.config.url).get(\"Text\")\n    );\n  }\n};\n","<template>\n  <div class=\"mb-4 form-input pca-input-container\">\n    <label\n      class=\"typeset-6 control-label inline-flex mb-2\"\n      for=\"pca_lookup\">\n      {{ label }}\n    </label>\n    <input\n      id=\"pca_lookup\"\n      :value=\"modelValue\"\n      class=\"form-control mb-3\"\n      :placeholder=\"\n        t('checkout.sections.shipping-address.address-search-placeholder')\n      \"\n      @input=\"$emit('update:modelValue', $event.target.value)\" />\n    <ul\n      v-if=\"results.length\"\n      v-on-click-outside=\"clearResults\"\n      class=\"pca-results-list\">\n      <li\n        v-for=\"(result, index) in results\"\n        :key=\"index\"\n        :class=\"{ 'group-result': result.Type !== 'Address' }\"\n        class=\"pl-3 pr-5 py-3 cursor-pointer bg-white hover:bg-ink-1\"\n        data-cs-mask\n        @click=\"$emit('selected', result)\">\n        {{ result.Text }} - {{ result.Description }}\n      </li>\n      <li\n        v-if=\"results.length === 1\"\n        class=\"bg-ink-1 border-t border-ink-2 px-3 py-4 typeset-9\">\n        {{ t(\"editor.send-to-them-modal.no-other-addresses\") }}\n      </li>\n    </ul>\n  </div>\n</template>\n\n<script>\nimport { vOnClickOutside } from \"@vueuse/components\";\n\nexport default {\n  name: \"PcaPredictInput\",\n  directives: {\n    onClickOutside: vOnClickOutside\n  },\n  props: {\n    results: {\n      type: Array,\n      default: () => []\n    },\n    modelValue: {\n      type: String,\n      default: \"\"\n    },\n    label: {\n      type: String,\n      default: \"\"\n    }\n  },\n  emits: [\"update:modelValue\", \"selected\", \"clear-results\"],\n  methods: {\n    clearResults() {\n      this.$emit(\"clear-results\");\n    }\n  }\n};\n</script>\n"],"names":["formatter","response","result","addressCandidates","el","key","limit","setUpSearchUrl","Text","Countries","Container","url","setUpSelectUrl","Id","pcaLookup","searchTerm","countryIso","searchId","axios","id","lastTermRequested","res","_sfc_main","vOnClickOutside","_hoisted_1","_hoisted_3","_hoisted_5","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$props","_ctx","$event","_withDirectives","_hoisted_4","_Fragment","_renderList","index","_normalizeClass","_hoisted_6","_createCommentVNode","$options"],"mappings":"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"}