{"version":3,"file":"/scripts/story-grid.js","mappings":"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IAAO,OACP,IAAO,YACP,IAAO,QACP,IAAO,WACP,IAAO,OACP,IAAO,WACP,IAAO,mBACP,IAAO,aACP,IAAO,WACP,IAAO,QACP,IAAO,cACP,IAAO,cACP,IAAO,QACP,IAAO,mBACP,IAAO,cACP,IAAO,QACP,IAAO,YACP,IAAO,kBACP,IAAO,cACP,IAAO,SACP,IAAO,WACP,IAAO,cACP,IAAO,QACP,IAAO,SACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,aACP,IAAO,UACP,IAAO,UACP,IAAO,yBACP,IAAO,WACP,IAAO,UACP,IAAO,SACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,SACP,IAAO,UACP,IAAO,UACP,IAAO,SACP,IAAO,YACP,IAAO,WACP,IAAO,UACP,IAAO,UACP,IAAO,UACP,IAAO,QACP,IAAO,SACP,IAAO,SACP,IAAO,gBACP,IAAO,YACP,IAAO,aACP,IAAO,QACP,IAAO,UACP,IAAO,SACP,IAAO,aACP,IAAO,cACP,IAAO,kBACP,IAAO,SACP,IAAO,SACP,IAAO,WACP,IAAO,UACP,IAAO,SACP,IAAO,aACP,IAAO,SACP,IAAO,WACP,IAAO,WACP,IAAO,QACP,IAAO,SACP,IAAO,cACP,IAAO,UACP,IAAO,UACP,IAAO,iBACP,IAAO,UACP,IAAO,UACP,IAAO,QACP,IAAO,OACP,IAAO,OACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,UACP,IAAO,QACP,IAAO,UACP,IAAO,OACP,IAAO,0BACP,IAAO,QACP,IAAO,eACP,IAAO,QACP,IAAO,UACP,IAAO,uBACP,IAAO,QACP,IAAO,cACP,IAAO,aACP,IAAO,SACP,IAAO,QACP,IAAO,aACP,IAAO,aACP,IAAO,WACP,IAAO,QACP,IAAO,WACP,IAAO,YACP,IAAO,aACP,IAAO,eACP,IAAO,aACP,IAAO,sBACP,IAAO,YACP,IAAO,UACP,IAAO,WACP,IAAO,SACP,IAAO,UACP,IAAO,SACP,IAAO,SACP,IAAO,QACP,IAAO,WACP,IAAO,aACP,IAAO,OACP,IAAO,WACP,IAAO,qBACP,IAAO,UACP,IAAO,cACP,IAAO,UACP,IAAO,YACP,IAAO,SACP,IAAO,QACP,IAAO,WACP,IAAO,UACP,IAAO,SACP,IAAO,YACP,IAAO,SACP,IAAO,WACP,IAAO,OACP,IAAO,wBACP,IAAO,cACP,IAAO,mCACP,IAAO,WACP,IAAO,sBACP,IAAO,UACP,IAAO,aAIIC,EAAe,CAC1B,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,qBACP,IAAO,sBAIIC,EAAa,CAAC,MAAO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","sources":["webpack://sage/./resources/scripts/vue/composables/useFilters.js","webpack://sage/./resources/scripts/vue/components/Loader.vue","webpack://sage/./resources/scripts/vue/components/Loader.vue?9905","webpack://sage/./resources/scripts/vue/components/Loader.vue?a3c7","webpack://sage/./resources/scripts/util/formatDate.js","webpack://sage/./resources/scripts/vue/components/Dropdown.vue","webpack://sage/./resources/scripts/vue/components/Dropdown.vue?5a8d","webpack://sage/./resources/scripts/vue/components/Dropdown.vue?f66b","webpack://sage/./resources/scripts/lib/regions.js","webpack://sage/./resources/scripts/vue/components/Pagination.vue","webpack://sage/./resources/scripts/vue/components/Pagination.vue?c121","webpack://sage/./resources/scripts/vue/components/Loader.vue?562e","webpack://sage/./resources/scripts/vue/composables/useFetch.js","webpack://sage/./resources/scripts/vue/components/SearchBar.vue","webpack://sage/./resources/scripts/vue/components/SearchBar.vue?a031","webpack://sage/./resources/scripts/vue/components/StoryGrid.vue","webpack://sage/./resources/scripts/vue/components/StoryGrid.vue?705a","webpack://sage/./resources/scripts/vue/story-grid.js","webpack://sage/./resources/scripts/vue/components/Dropdown.vue?677b"],"sourcesContent":["import { ref, onMounted, watch } from 'vue';\n\nexport default (endpoint, preFilter = ref([]), limitOptions, applyFilters) => {\n  const filterGroups = ref([]);\n  const selected = ref([]);\n\n  onMounted(() => {\n    fetchFilters();\n    applyPreFilter();\n  });\n\n  watch(preFilter, (terms) => {\n    applyPreFilter(terms);\n  });\n\n  function fetchFilters() {\n    fetch(endpoint)\n      .then((data) => data.json())\n      .then((result) => {\n        result.data.forEach((data) => {\n          filterGroups.value.push(data);\n        });\n\n        if (preFilter.value.length > 0) {\n          for (let i=0; i<preFilter.value.length; i++) {\n            let filter = preFilter.value[i];\n\n            switch(filter.taxonomy) {\n              case \"story-region\":\n                limitOptions(filterGroups.value[1], filter);\n                break;\n              case \"story-country\":\n                limitOptions(filterGroups.value[2], filter);\n                break;\n              case \"participant-type\":\n                limitOptions(filterGroups.value[0], filter);\n                break;\n              case \"story-type\":\n                limitOptions(filterGroups.value[3], filter);\n                break;\n            }\n          }\n        }\n      });\n  }\n\n  function clearFilters(group, apply) {\n    if (!group) {\n      selected.value = [];\n    }\n\n    if (selected.value.length && group) {\n      selected.value = selected.value.filter(\n        (item) => item.taxonomy !== group.slug\n      );\n    }\n\n    if (apply) {\n      apply();\n    }\n  }\n\n  function isActiveFilter(filter) {\n    return selected.value.some((item) => item.ID === filter.ID);\n  }\n\n  function removeActiveFilter(filter) {\n    selected.value = selected.value.filter((item) => item.ID !== filter.ID);\n  }\n\n  function addFilter(filter) {\n    selected.value = [...selected.value, filter];\n  }\n\n  function toggleFilter(filter, apply) {\n    const activeGroup = selected.value.find(\n      (item) => filter.taxonomy === item.taxonomy\n    );\n\n    if (activeGroup) {\n      removeActiveFilter(activeGroup);\n    }\n\n    addFilter(filter);\n\n    if (apply) {\n      apply();\n    }\n  }\n\n  function getActiveFilter(group) {\n    return selected.value.find((item) => group.slug === item.taxonomy) || {};\n  }\n\n  function applyPreFilter(filters = preFilter) {\n    clearFilters();\n    filters.value.forEach((filter) => {\n      if (filter && filter.ID) {\n        addFilter(filter);\n      }\n    });\n  }\n\n  return {\n    filterGroups,\n    clearFilters,\n    isActiveFilter,\n    removeActiveFilter,\n    toggleFilter,\n    getActiveFilter,\n    selected,\n  };\n};\n","<template>\n  <div :class=\"block ? 'container mx-auto mb-7' : ''\" :style=\"style\">\n    <Transition>\n      <svg width=\"82%\" height=\"100%\" viewBox=\"0 0 123 150\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-if=\"showAnimation\">\n        <rect :width=\"width1\" height=\"31.98\" :x=\"x1\" :fill=\"barColor\" style=\"transition: all 1.15s ease-out\"/>\n        <rect :x=\"x2\" y=\"55.5\" :width=\"width2\" height=\"31.98\" :fill=\"barColor\" style=\"transition: all 1.15s ease-out\"/>\n        <rect :x=\"x3\" y=\"111\" :width=\"width3\" height=\"31.98\" :fill=\"barColor\" style=\"transition: all 1.15s ease-out\"/>\n      </svg>\n    </Transition>\n  </div>\n</template>\n\n<script>\nexport default {\n\tname: 'Loader',\n  props: {\n    color: {\n      type: String,\n      default: 'blue'\n    },\n    height: {\n      type: String,\n      default: '100px'\n    },\n    width: {\n      type: String,\n      default: '100px'\n    },\n    delay: {\n      type: Number,\n      default: '0'\n    },\n    block: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n\t\treturn {\n\t\t\twidth1: '123',\n      width2: '46.74',\n      width3: '46.74',\n      x1: '0',\n      x2: '76.26',\n      x3: '76.26',\n      loadingTime: 0,\n      showAnimation: false\n\t\t}\n\t},\n  computed: {\n    barColor() {\n      switch (this.color) {\n        case 'blue':\n          return '#1B4579';\n          break;\n        case 'red':\n          return '#8F311E';\n          break;\n        case 'purple':\n          return '#602662';\n          break;\n        case 'white':\n          return '#FFFFFF';\n          break;\n      }\n    },\n    style() {\n      return `height: ${this.height}; min-height: ${this.height}; width: ${this.width}`;\n    }\n  },\n\tmethods: {\n\t\tanimate() {\n      let scope = this;\n\n      setInterval(function() {\n        if (scope.width1 == '123') {\n          scope.x1 = '76.26';\n          scope.x2 = '0';\n          scope.width1 = '46.74';\n          scope.width2 = '123';\n        } else if (scope.width2 == '123') {\n          scope.x2 = '76.26';\n          scope.x3 = '0';\n          scope.width2 = '46.74';\n          scope.width3 = '123';\n        } else {\n          scope.x3 = '76.26';\n          scope.x1 = '0';\n          scope.width3 = '46.74';\n          scope.width1 = '123';\n        }\n      }, 1300, scope);\n    },\n    markTime() {\n      let scope = this;\n\n      let delay = setInterval(function() {\n        scope.loadingTime += 100;\n\n        if (scope.loadingTime > scope.delay) {\n          scope.showAnimation = true;\n          scope.animate();\n          clearInterval(delay);\n        }\n      }, 100, scope);\n    }\n\t},\n  mounted() {\n    if (this.delay > 0) {\n        this.markTime();\n    } else {\n      this.showAnimation = true;\n      this.animate();\n    }\n  }\n}\n</script>\n\n\n<style scoped>\n  svg {\n    display: block;\n    margin: auto;\n  }\n\n  .v-enter-active,\n  .v-leave-active {\n    transition: opacity 0.5s ease;\n  }\n\n  .v-enter-from,\n  .v-leave-to {\n    opacity: 0;\n  }\n</style>\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-11.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-11.use[2]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Loader.vue?vue&type=style&index=0&id=030432b0&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render } from \"./Loader.vue?vue&type=template&id=030432b0&scoped=true\"\nimport script from \"./Loader.vue?vue&type=script&lang=js\"\nexport * from \"./Loader.vue?vue&type=script&lang=js\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=030432b0&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-030432b0\"]])\n\nexport default __exports__","function dateFilter(dateString) {\n  const date = new Date(dateString.replace(/-/g, '/'));\n\n  const options = {\n    year: 'numeric',\n    month: 'long',\n    day: 'numeric',\n    timeZone: 'UTC',\n  };\n\n  return date.toLocaleDateString('en-US', options);\n}\n\nexport default dateFilter;\n","<template>\n  <label class=\"relative\">\n    <span\n      class=\"uppercase tracking-widest font-bold block text-sm mb-2.5\"\n      aria-hidden=\"true\"\n      v-html=\"options.label\"\n    >\n    </span>\n    <div class=\"relative cursor-pointer z-10\" ref=\"target\">\n      <span\n        @click=\"toggle\"\n        @keyup.enter=\"toggle\"\n        @keyup.esc=\"toggle\"\n        :aria-expanded=\"isOpen ? true : false\"\n        tabindex=\"0\"\n        ref=\"selector\"\n        :aria-label=\"isOpen ? 'Close Dropdown' : 'Open Dropdown'\"\n        class=\"\n          w-full\n          text-sm\n          lg:text-base\n          bg-white\n          relative\n          border border-grey-dark\n          font-semibold\n          py-6\n          pl-10\n          pr-6\n          inline-flex\n          items-center\n          justify-between\n          leading-none\n          z-20\n        \"\n        :class=\"{disabled: !clickable}\"\n      >\n        {{ selected.label || `All ${options.label}` }}\n        <svg\n          class=\"transition-transform duration-300 ease-cb\"\n          :class=\"[isOpen ? 'transform rotate-180 text-primary' : '']\"\n          height=\"20\"\n          width=\"10\"\n          aria-hidden=\"true\"\n        >\n          <use xlink:href=\"#icon-arrow-down\"></use>\n        </svg>\n      </span>\n      <ul\n        class=\"\n          w-full\n          overflow-y-scroll\n          bg-white\n          border border-t-0\n          lg:absolute\n          z-20\n          p-0\n          relative\n          top-0\n          transition-all\n          ease-cb\n          duration-200\n        \"\n        ref=\"list\"\n        :class=\"{ 'top-full visible h-57.5': isOpen, 'invisible h-0': !isOpen }\"\n      >\n        <li\n          class=\"\n            flex\n            justify-between\n            py-6\n            px-10\n            hover:text-white hover:bg-sky-blue\n            duration-300\n            transition\n            ease-cb\n          \"\n          tabindex=\"0\"\n          @keyup.enter=\"\n            () => {\n              clear(options);\n              toggle();\n            }\n          \"\n          @click=\"\n            () => {\n              clear(options);\n              toggle();\n            }\n          \"\n        >\n          All {{ options.label }}\n        </li>\n        <li\n          v-for=\"(option, i) in options.terms\"\n          :key=\"option.ID\"\n          tabindex=\"0\"\n          @keyup.enter=\"\n            () => {\n              select(option);\n              toggle();\n            }\n          \"\n          @click=\"\n            () => {\n              select(option);\n              toggle();\n            }\n          \"\n          class=\"\n            flex\n            justify-between\n            py-5.5\n            px-10\n            hover:text-white hover:bg-sky-blue\n            transition\n            duration-75\n            ease-cb\n          \"\n        >\n          <span v-html=\"option.label\"></span>\n        </li>\n      </ul>\n    </div>\n  </label>\n</template>\n\n<script>\nimport { ref, onMounted } from 'vue';\nimport { onClickOutside } from '@vueuse/core';\n\nexport default {\n  emits: ['close', 'open', 'select', 'clear'],\n  props: {\n    selected: {\n      default: () => ({}),\n      required: true,\n      type: Object,\n    },\n    options: {\n      default: () => ({}),\n      type: Object,\n      required: true,\n    },\n    clickable: {\n      default: () => (true),\n      type: Boolean,\n      required: false\n    }\n  },\n  setup(props, { emit }) {\n    const isOpen = ref(false);\n    const target = ref(null);\n    const selector = ref(null);\n    const list = ref(null);\n\n    function toggle() {\n      if (props.clickable == true) {\n          isOpen.value = !isOpen.value;\n      }\n\n      if (isOpen.value == false) {\n        list.value.scrollTop = 0;\n      }\n\n      emit('toggled');\n    }\n\n    function select(option) {\n      emit('select', option);\n    }\n\n    function clear(options) {\n      emit('clear', options);\n    }\n\n    onMounted(() => {\n      emit('passRef', selector.value);\n    });\n\n    return { isOpen, close, toggle, select, clear, target, selector, list };\n  },\n  watch: {\n    options(newOptions, oldOptions) {\n      if (newOptions.terms.length == 1) {\n        this.select(newOptions.terms[0]);\n      }\n    },\n    clickable(newVal, oldVal) {\n      if (newVal) {\n        if (this.options.terms.length == 1) {\n          this.select(this.options.terms[0]);\n        }\n      }\n    }\n  }\n};\n</script>\n\n\n<style scoped>\n.disabled {\n    cursor: not-allowed;\n}\n\n.disabled svg {\n  visibility: hidden;\n}\n</style>\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n            import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-11.use[1]!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-11.use[2]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Dropdown.vue?vue&type=style&index=0&id=5010e54a&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render } from \"./Dropdown.vue?vue&type=template&id=5010e54a&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=5010e54a&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5010e54a\"]])\n\nexport default __exports__","// find country by iso 3\nexport const countriesByISO = {\n  \"AGO\": \"Angola\",\n  \"BEN\": \"Benin\",\n  \"BWA\": \"Botswana\",\n  \"BFA\": \"Burkina Faso\",\n  \"BDI\": \"Burundi\",\n  \"CPV\": \"Cabo Verde\",\n  \"CMR\": \"Cameroon\",\n  \"CAF\": \"Central African Republic\",\n  \"TCD\": \"Chad\",\n  \"COM\": \"Comoros\",\n  \"CIV\": \"Côte d’Ivoire\",\n  \"CUW\": \"Curacao\",\n  \"COD\": \"Democratic Republic of the Congo\",\n  \"DJI\": \"Djibouti\",\n  \"GNQ\": \"Equatorial Guinea\",\n  \"ERI\": \"Eritrea\",\n  \"SWZ\": \"Eswatini\",\n  \"ETH\": \"Ethiopia\",\n  \"GAB\": \"Gabon\",\n  \"GMB\": \"Gambia\",\n  \"GHA\": \"Ghana\",\n  \"GIN\": \"Guinea\",\n  \"GNB\": \"Guinea-Bissau\",\n  \"KEN\": \"Kenya\",\n  \"LSO\": \"Lesotho\",\n  \"LBR\": \"Liberia\",\n  \"MDG\": \"Madagascar\",\n  \"MWI\": \"Malawi\",\n  \"MLI\": \"Mali\",\n  \"MRT\": \"Mauritania\",\n  \"MUS\": \"Mauritius\",\n  \"MOZ\": \"Mozambique\",\n  \"NAM\": \"Namibia\",\n  \"NER\": \"Niger\",\n  \"NGA\": \"Nigeria\",\n  \"COG\": \"Republic of the Congo\",\n  \"RWA\": \"Rwanda\",\n  \"STP\": \"São Tomé and Príncipe\",\n  \"SEN\": \"Senegal\",\n  \"SYC\": \"Seychelles\",\n  \"SLE\": \"Sierra Leone\",\n  \"SOM\": \"Somalia\",\n  \"ZAF\": \"South Africa\",\n  \"SSD\": \"South Sudan\",\n  \"SDN\": \"Sudan\",\n  \"TZA\": \"Tanzania\",\n  \"TGO\": \"Togo\",\n  \"UGA\": \"Uganda\",\n  \"ZMB\": \"Zambia\",\n  \"ZWE\": \"Zimbabwe\",\n  \"AUS\": \"Australia\",\n  \"BRN\": \"Brunei\",\n  \"MMR\": \"Burma\",\n  \"KHM\": \"Cambodia\",\n  \"CHN\": \"China\",\n  \"FJI\": \"Fiji\",\n  \"IDN\": \"Indonesia\",\n  \"JPN\": \"Japan\",\n  \"KIR\": \"Kiribati\",\n  \"LAO\": \"Laos\",\n  \"MYS\": \"Malaysia\",\n  \"MHL\": \"Marshall Islands\",\n  \"FSM\": \"Micronesia\",\n  \"MNG\": \"Mongolia\",\n  \"NRU\": \"Nauru\",\n  \"NZL\": \"New Zealand\",\n  \"PRK\": \"North Korea\",\n  \"PLW\": \"Palau\",\n  \"PNG\": \"Papua New Guinea\",\n  \"PHL\": \"Philippines\",\n  \"WSM\": \"Samoa\",\n  \"SGP\": \"Singapore\",\n  \"SLB\": \"Solomon Islands\",\n  \"KOR\": \"South Korea\",\n  \"TWN\": \"Taiwan\",\n  \"THA\": \"Thailand\",\n  \"TLS\": \"Timor-Leste\",\n  \"TON\": \"Tonga\",\n  \"TUV\": \"Tuvalu\",\n  \"VUT\": \"Vanuatu\",\n  \"VNM\": \"Vietnam\",\n  \"ALB\": \"Albania\",\n  \"AND\": \"Andorra\",\n  \"ARM\": \"Armenia\",\n  \"AUT\": \"Austria\",\n  \"AZE\": \"Azerbaijan\",\n  \"BLR\": \"Belarus\",\n  \"BEL\": \"Belgium\",\n  \"BIH\": \"Bosnia and Herzegovina\",\n  \"BGR\": \"Bulgaria\",\n  \"HRV\": \"Croatia\",\n  \"CYP\": \"Cyprus\",\n  \"CZE\": \"Czechia\",\n  \"DNK\": \"Denmark\",\n  \"EST\": \"Estonia\",\n  \"FIN\": \"Finland\",\n  \"FRA\": \"France\",\n  \"GEO\": \"Georgia\",\n  \"DEU\": \"Germany\",\n  \"GRC\": \"Greece\",\n  \"GRL\": \"Greenland\",\n  \"VAT\": \"Holy See\",\n  \"HUN\": \"Hungary\",\n  \"ISL\": \"Iceland\",\n  \"IRL\": \"Ireland\",\n  \"ITA\": \"Italy\",\n  \"RKS\": \"Kosovo\",\n  \"LVA\": \"Latvia\",\n  \"LIE\": \"Liechtenstein\",\n  \"LTU\": \"Lithuania\",\n  \"LUX\": \"Luxembourg\",\n  \"MLT\": \"Malta\",\n  \"MDA\": \"Moldova\",\n  \"MCO\": \"Monaco\",\n  \"MNE\": \"Montenegro\",\n  \"NLD\": \"Netherlands\",\n  \"MKD\": \"North Macedonia\",\n  \"NOR\": \"Norway\",\n  \"POL\": \"Poland\",\n  \"PRT\": \"Portugal\",\n  \"ROU\": \"Romania\",\n  \"RUS\": \"Russia\",\n  \"SMR\": \"San Marino\",\n  \"SRB\": \"Serbia\",\n  \"SVK\": \"Slovakia\",\n  \"SVN\": \"Slovenia\",\n  \"ESP\": \"Spain\",\n  \"SWE\": \"Sweden\",\n  \"CHE\": \"Switzerland\",\n  \"TUR\": \"Turkiye\",\n  \"UKR\": \"Ukraine\",\n  \"GBR\": \"United Kingdom\",\n  \"DZA\": \"Algeria\",\n  \"BHR\": \"Bahrain\",\n  \"EGY\": \"Egypt\",\n  \"IRN\": \"Iran\",\n  \"IRQ\": \"Iraq\",\n  \"ISR\": \"Israel\",\n  \"JOR\": \"Jordan\",\n  \"KWT\": \"Kuwait\",\n  \"LBN\": \"Lebanon\",\n  \"LBY\": \"Libya\",\n  \"MAR\": \"Morocco\",\n  \"OMN\": \"Oman\",\n  \"PSE\": \"Palestinian Territories\",\n  \"QAT\": \"Qatar\",\n  \"SAU\": \"Saudi Arabia\",\n  \"SYR\": \"Syria\",\n  \"TUN\": \"Tunisia\",\n  \"ARE\": \"United Arab Emirates\",\n  \"YEM\": \"Yemen\",\n  \"AFG\": \"Afghanistan\",\n  \"BGD\": \"Bangladesh\",\n  \"BTN\": \"Bhutan\",\n  \"IND\": \"India\",\n  \"KAZ\": \"Kazakhstan\",\n  \"KGZ\": \"Kyrgyzstan\",\n  \"MDV\": \"Maldives\",\n  \"NPL\": \"Nepal\",\n  \"PAK\": \"Pakistan\",\n  \"LKA\": \"Sri Lanka\",\n  \"TJK\": \"Tajikistan\",\n  \"TKM\": \"Turkmenistan\",\n  \"UZB\": \"Uzbekistan\",\n  \"ATG\": \"Antigua and Barbuda\",\n  \"ARG\": \"Argentina\",\n  \"BHS\": \"Bahamas\",\n  \"BRB\": \"Barbados\",\n  \"BLZ\": \"Belize\",\n  \"BOL\": \"Bolivia\",\n  \"BRA\": \"Brazil\",\n  \"CAN\": \"Canada\",\n  \"CHL\": \"Chile\",\n  \"COL\": \"Colombia\",\n  \"CRI\": \"Costa Rica\",\n  \"CUB\": \"Cuba\",\n  \"DMA\": \"Dominica\",\n  \"DOM\": \"Dominican Republic\",\n  \"ECU\": \"Ecuador\",\n  \"SLV\": \"El Salvador\",\n  \"GRD\": \"Grenada\",\n  \"GTM\": \"Guatemala\",\n  \"GUY\": \"Guyana\",\n  \"HTI\": \"Haiti\",\n  \"HND\": \"Honduras\",\n  \"JAM\": \"Jamaica\",\n  \"MEX\": \"Mexico\",\n  \"NIC\": \"Nicaragua\",\n  \"PAN\": \"Panama\",\n  \"PRY\": \"Paraguay\",\n  \"PER\": \"Peru\",\n  \"KNA\": \"Saint Kitts and Nevis\",\n  \"LCA\": \"Saint Lucia\",\n  \"VCT\": \"Saint Vincent and the Grenadines\",\n  \"SUR\": \"Suriname\",\n  \"TTO\": \"Trinadad and Tobago\",\n  \"URY\": \"Uruguay\",\n  \"VEN\": \"Venezuela\"\n};\n\n// find DoS region by iso\nexport const regionsByISO = {\n  \"AGO\": \"Africa\",\n  \"BEN\": \"Africa\",\n  \"BWA\": \"Africa\",\n  \"BFA\": \"Africa\",\n  \"BDI\": \"Africa\",\n  \"CPV\": \"Africa\",\n  \"CMR\": \"Africa\",\n  \"CAF\": \"Africa\",\n  \"TCD\": \"Africa\",\n  \"COM\": \"Africa\",\n  \"CIV\": \"Africa\",\n  \"COD\": \"Africa\",\n  \"DJI\": \"Africa\",\n  \"GNQ\": \"Africa\",\n  \"ERI\": \"Africa\",\n  \"SWZ\": \"Africa\",\n  \"ETH\": \"Africa\",\n  \"GAB\": \"Africa\",\n  \"GMB\": \"Africa\",\n  \"GHA\": \"Africa\",\n  \"GIN\": \"Africa\",\n  \"GNB\": \"Africa\",\n  \"KEN\": \"Africa\",\n  \"LSO\": \"Africa\",\n  \"LBR\": \"Africa\",\n  \"MDG\": \"Africa\",\n  \"MWI\": \"Africa\",\n  \"MLI\": \"Africa\",\n  \"MRT\": \"Africa\",\n  \"MUS\": \"Africa\",\n  \"MOZ\": \"Africa\",\n  \"NAM\": \"Africa\",\n  \"NER\": \"Africa\",\n  \"NGA\": \"Africa\",\n  \"COG\": \"Africa\",\n  \"RWA\": \"Africa\",\n  \"STP\": \"Africa\",\n  \"SEN\": \"Africa\",\n  \"SYC\": \"Africa\",\n  \"SLE\": \"Africa\",\n  \"SOM\": \"Africa\",\n  \"ZAF\": \"Africa\",\n  \"SSD\": \"Africa\",\n  \"SDN\": \"Africa\",\n  \"TZA\": \"Africa\",\n  \"TGO\": \"Africa\",\n  \"UGA\": \"Africa\",\n  \"ZMB\": \"Africa\",\n  \"ZWE\": \"Africa\",\n  \"AUS\": \"East Asia and Pacific\",\n  \"BRN\": \"East Asia and Pacific\",\n  \"MMR\": \"East Asia and Pacific\",\n  \"KHM\": \"East Asia and Pacific\",\n  \"CHN\": \"East Asia and Pacific\",\n  \"FJI\": \"East Asia and Pacific\",\n  \"IDN\": \"East Asia and Pacific\",\n  \"JPN\": \"East Asia and Pacific\",\n  \"KIR\": \"East Asia and Pacific\",\n  \"LAO\": \"East Asia and Pacific\",\n  \"MYS\": \"East Asia and Pacific\",\n  \"MHL\": \"East Asia and Pacific\",\n  \"FSM\": \"East Asia and Pacific\",\n  \"MNG\": \"East Asia and Pacific\",\n  \"NRU\": \"East Asia and Pacific\",\n  \"NZL\": \"East Asia and Pacific\",\n  \"PRK\": \"East Asia and Pacific\",\n  \"PLW\": \"East Asia and Pacific\",\n  \"PNG\": \"East Asia and Pacific\",\n  \"PHL\": \"East Asia and Pacific\",\n  \"WSM\": \"East Asia and Pacific\",\n  \"SGP\": \"East Asia and Pacific\",\n  \"SLB\": \"East Asia and Pacific\",\n  \"KOR\": \"East Asia and Pacific\",\n  \"TWN\": \"East Asia and Pacific\",\n  \"THA\": \"East Asia and Pacific\",\n  \"TLS\": \"East Asia and Pacific\",\n  \"TON\": \"East Asia and Pacific\",\n  \"TUV\": \"East Asia and Pacific\",\n  \"VUT\": \"East Asia and Pacific\",\n  \"VNM\": \"East Asia and Pacific\",\n  \"ALB\": \"Europe and Eurasia\",\n  \"AND\": \"Europe and Eurasia\",\n  \"ARM\": \"Europe and Eurasia\",\n  \"AUT\": \"Europe and Eurasia\",\n  \"AZE\": \"Europe and Eurasia\",\n  \"BLR\": \"Europe and Eurasia\",\n  \"BEL\": \"Europe and Eurasia\",\n  \"BIH\": \"Europe and Eurasia\",\n  \"BGR\": \"Europe and Eurasia\",\n  \"HRV\": \"Europe and Eurasia\",\n  \"CYP\": \"Europe and Eurasia\",\n  \"CZE\": \"Europe and Eurasia\",\n  \"DNK\": \"Europe and Eurasia\",\n  \"EST\": \"Europe and Eurasia\",\n  \"FIN\": \"Europe and Eurasia\",\n  \"FRA\": \"Europe and Eurasia\",\n  \"GEO\": \"Europe and Eurasia\",\n  \"DEU\": \"Europe and Eurasia\",\n  \"GRC\": \"Europe and Eurasia\",\n  \"GRL\": \"Europe and Eurasia\",\n  \"VAT\": \"Europe and Eurasia\",\n  \"HUN\": \"Europe and Eurasia\",\n  \"ISL\": \"Europe and Eurasia\",\n  \"IRL\": \"Europe and Eurasia\",\n  \"ITA\": \"Europe and Eurasia\",\n  \"RKS\": \"Europe and Eurasia\",\n  \"LVA\": \"Europe and Eurasia\",\n  \"LIE\": \"Europe and Eurasia\",\n  \"LTU\": \"Europe and Eurasia\",\n  \"LUX\": \"Europe and Eurasia\",\n  \"MLT\": \"Europe and Eurasia\",\n  \"MDA\": \"Europe and Eurasia\",\n  \"MCO\": \"Europe and Eurasia\",\n  \"MNE\": \"Europe and Eurasia\",\n  \"NLD\": \"Europe and Eurasia\",\n  \"MKD\": \"Europe and Eurasia\",\n  \"NOR\": \"Europe and Eurasia\",\n  \"POL\": \"Europe and Eurasia\",\n  \"PRT\": \"Europe and Eurasia\",\n  \"ROU\": \"Europe and Eurasia\",\n  \"RUS\": \"Europe and Eurasia\",\n  \"SMR\": \"Europe and Eurasia\",\n  \"SRB\": \"Europe and Eurasia\",\n  \"SVK\": \"Europe and Eurasia\",\n  \"SVN\": \"Europe and Eurasia\",\n  \"ESP\": \"Europe and Eurasia\",\n  \"SWE\": \"Europe and Eurasia\",\n  \"CHE\": \"Europe and Eurasia\",\n  \"TUR\": \"Europe and Eurasia\",\n  \"UKR\": \"Europe and Eurasia\",\n  \"GBR\": \"Europe and Eurasia\",\n  \"DZA\": \"Near East and North Africa\",\n  \"BHR\": \"Near East and North Africa\",\n  \"EGY\": \"Near East and North Africa\",\n  \"IRN\": \"Near East and North Africa\",\n  \"IRQ\": \"Near East and North Africa\",\n  \"ISR\": \"Near East and North Africa\",\n  \"JOR\": \"Near East and North Africa\",\n  \"KWT\": \"Near East and North Africa\",\n  \"LBN\": \"Near East and North Africa\",\n  \"LBY\": \"Near East and North Africa\",\n  \"MAR\": \"Near East and North Africa\",\n  \"OMN\": \"Near East and North Africa\",\n  \"PSE\": \"Near East and North Africa\",\n  \"QAT\": \"Near East and North Africa\",\n  \"SAU\": \"Near East and North Africa\",\n  \"SYR\": \"Near East and North Africa\",\n  \"TUN\": \"Near East and North Africa\",\n  \"ARE\": \"Near East and North Africa\",\n  \"YEM\": \"Near East and North Africa\",\n  \"AFG\": \"South and Central Asia\",\n  \"BGD\": \"South and Central Asia\",\n  \"BTN\": \"South and Central Asia\",\n  \"IND\": \"South and Central Asia\",\n  \"KAZ\": \"South and Central Asia\",\n  \"KGZ\": \"South and Central Asia\",\n  \"MDV\": \"South and Central Asia\",\n  \"NPL\": \"South and Central Asia\",\n  \"PAK\": \"South and Central Asia\",\n  \"LKA\": \"South and Central Asia\",\n  \"TJK\": \"South and Central Asia\",\n  \"TKM\": \"South and Central Asia\",\n  \"UZB\": \"South and Central Asia\",\n  \"ATG\": \"Western Hemisphere\",\n  \"ARG\": \"Western Hemisphere\",\n  \"BHS\": \"Western Hemisphere\",\n  \"BRB\": \"Western Hemisphere\",\n  \"BLZ\": \"Western Hemisphere\",\n  \"BOL\": \"Western Hemisphere\",\n  \"BRA\": \"Western Hemisphere\",\n  \"CAN\": \"Western Hemisphere\",\n  \"CHL\": \"Western Hemisphere\",\n  \"COL\": \"Western Hemisphere\",\n  \"CRI\": \"Western Hemisphere\",\n  \"CUB\": \"Western Hemisphere\",\n  \"CUW\": \"Western Hemisphere\",\n  \"DMA\": \"Western Hemisphere\",\n  \"DOM\": \"Western Hemisphere\",\n  \"ECU\": \"Western Hemisphere\",\n  \"SLV\": \"Western Hemisphere\",\n  \"GRD\": \"Western Hemisphere\",\n  \"GTM\": \"Western Hemisphere\",\n  \"GUY\": \"Western Hemisphere\",\n  \"HTI\": \"Western Hemisphere\",\n  \"HND\": \"Western Hemisphere\",\n  \"JAM\": \"Western Hemisphere\",\n  \"MEX\": \"Western Hemisphere\",\n  \"NIC\": \"Western Hemisphere\",\n  \"PAN\": \"Western Hemisphere\",\n  \"PRY\": \"Western Hemisphere\",\n  \"PER\": \"Western Hemisphere\",\n  \"KNA\": \"Western Hemisphere\",\n  \"LCA\": \"Western Hemisphere\",\n  \"VCT\": \"Western Hemisphere\",\n  \"SUR\": \"Western Hemisphere\",\n  \"TTO\": \"Western Hemisphere\",\n  \"URY\": \"Western Hemisphere\",\n  \"VEN\": \"Western Hemisphere\"\n};\n\n// region iso 3 arrays\nexport const AfricaISOs = [\"AGO\", \"BEN\", \"BWA\", \"BFA\", \"BDI\", \"CPV\", \"CMR\", \"CAF\", \"TCD\", \"COM\", \"CIV\", \"COD\", \"DJI\", \"GNQ\", \"ERI\", \"SWZ\", \"ETH\", \"GAB\", \"GMB\", \"GHA\", \"GIN\", \"GNB\", \"KEN\", \"LSO\", \"LBR\", \"MDG\", \"MWI\", \"MLI\", \"MRT\", \"MUS\", \"MOZ\", \"NAM\", \"NER\", \"NGA\", \"COG\", \"RWA\", \"STP\", \"SEN\", \"SYC\", \"SLE\", \"SOM\", \"ZAF\", \"SSD\", \"SDN\", \"TZA\", \"TGO\", \"UGA\", \"ZMB\", \"ZWE\"];\nexport const EastAsiaAndPacificISOs = [\"AUS\", \"BRN\", \"MMR\", \"KHM\", \"CHN\", \"FJI\", \"IDN\", \"JPN\", \"KIR\", \"LAO\", \"MYS\", \"MHL\", \"FSM\", \"MNG\", \"NRU\", \"NZL\", \"PRK\", \"PLW\", \"PNG\", \"PHL\", \"WSM\", \"SGP\", \"SLB\", \"KOR\", \"TWN\", \"THA\", \"TLS\", \"TON\", \"TUV\", \"VUT\", \"VNM\"];\nexport const EuropeAndEurasiaISOs = [\"ALB\", \"AND\", \"ARM\", \"AUT\", \"AZE\", \"BLR\", \"BEL\", \"BIH\", \"BGR\", \"HRV\", \"CYP\", \"CZE\", \"DNK\", \"EST\", \"FIN\", \"FRA\", \"GEO\", \"GRL\", \"DEU\", \"GRC\", \"VAT\", \"HUN\", \"ISL\", \"IRL\", \"ITA\", \"RKS\", \"LVA\", \"LIE\", \"LTU\", \"LUX\", \"MLT\", \"MDA\", \"MCO\", \"MNE\", \"NLD\", \"MKD\", \"NOR\", \"POL\", \"PRT\", \"ROU\", \"RUS\", \"SMR\", \"SRB\", \"SVK\", \"SVN\", \"ESP\", \"SWE\", \"CHE\", \"TUR\", \"UKR\", \"GBR\"];\nexport const NearEastAndNorthAfricaISOs = [\"DZA\", \"BHR\", \"EGY\", \"IRN\", \"IRQ\", \"ISR\", \"JOR\", \"KWT\", \"LBN\", \"LBY\", \"MAR\", \"OMN\", \"PSE\", \"QAT\", \"SAU\", \"SYR\", \"TUN\", \"ARE\", \"YEM\"];\nexport const SouthAndCentralAsiaISOs = [\"AFG\", \"BGD\", \"BTN\", \"IND\", \"KAZ\", \"KGZ\", \"MDV\", \"NPL\", \"PAK\", \"LKA\", \"TJK\", \"TKM\", \"UZB\"];\nexport const WesternHemisphereISOs = [ \"ATG\", \"ARG\", \"BHS\", \"BRB\", \"BLZ\", \"BOL\", \"BRA\", \"CAN\", \"CHL\", \"COL\", \"CRI\", \"CUB\", \"CUW\", \"DMA\", \"DOM\", \"ECU\", \"SLV\", \"GRD\", \"GTM\", \"GUY\", \"HTI\", \"HND\", \"JAM\", \"MEX\", \"NIC\", \"PAN\", \"PRY\", \"PER\", \"KNA\", \"LCA\", \"VCT\", \"SUR\", \"TTO\", \"URY\", \"VEN\"];\n\n// find wp region metadata by region\nexport const regionMeta = {\n  \"Africa\": {\n    ID: 22,\n    label: \"Africa\",\n    slug: \"africa\"\n  },\n  \"East Asia and Pacific\": {\n    ID: 27,\n    label: \"East Asia and Pacific\",\n    slug: \"east-asia-and-pacific\"\n  },\n  \"Europe and Eurasia\" : {\n    ID: 26,\n    label: \"Europe and Eurasia\",\n    slug: \"europe-and-eurasia\"\n  },\n  \"Near East and North Africa\": {\n    ID: 25,\n    label: \"Near East and North Africa\",\n    slug: \"near-east-and-north-africa\"\n  },\n  \"South and Central Asia\": {\n    ID: 24,\n    label: \"South and Central Asia\",\n    slug: \"south-and-central-asia\"\n  },\n  \"Western Hemisphere\": {\n    ID: 23,\n    label: \"Western Hemisphere\",\n    slug: \"western-hemisphere\"\n  }\n};\n","<template>\n  <nav class=\"flex items-center\" v-if=\"hasPages\">\n    <div v-if=\"!isFirstPage\" class=\"flex mr-4\">\n      <button\n        @click=\"onPrev\"\n        aria-label=\"Previous\"\n        class=\"\n          rounded-full\n          border-sky-blue-200 border-2\n          inline-flex\n          items-center\n          justify-center\n          text-sky-blue-200\n          hover:text-blue hover:border-blue\n          w-12.5\n          h-12.5\n          transition-colors\n          ease-cb\n        \"\n      >\n        <svg width=\"16\" height=\"10\">\n          <use xlink:href=\"#icon-arrow-left\"></use>\n        </svg>\n      </button>\n    </div>\n    <ul class=\"inline-flex pl-0\">\n      <li\n        v-for=\"n in range\"\n        :key=\"n\"\n        class=\"flex px-2.5 py-1.5 mx-3 cursor-pointer text-blue leading-none\"\n        @click=\"pageChange(n)\"\n        :class=\"{ [`bg-${activeColor}`]: n == current }\"\n      >\n        {{ n }}\n      </li>\n    </ul>\n\n    <div v-if=\"!isLastPage\" class=\"flex ml-4\">\n      <button\n        @click=\"onNext\"\n        aria-label=\"Next\"\n        class=\"\n          rounded-full\n          border-sky-blue-200 border-2\n          inline-flex\n          items-center\n          justify-center\n          text-sky-blue-200\n          hover:text-blue hover:border-blue\n          h-12.5\n          w-12.5\n          transition-colors\n          ease-cb\n        \"\n      >\n        <svg width=\"16\" height=\"10\">\n          <use xlink:href=\"#icon-arrow-right\"></use>\n        </svg>\n      </button>\n    </div>\n  </nav>\n</template>\n\n<script>\nexport default {\n  name: 'pagination',\n  props: {\n    max: {\n      default: 1,\n      type: Number,\n      required: true,\n    },\n    current: {\n      default: 1,\n      type: Number,\n      required: true,\n    },\n    threshold: {\n      default: 3,\n      type: Number,\n    },\n    limit: {\n      default: 8,\n      type: Number,\n    },\n    activeColor: {\n      type: String,\n      default: 'bg-white',\n    },\n  },\n  methods: {\n    onNext() {\n      this.pageChange(this.current + 1);\n    },\n    onPrev() {\n      this.pageChange(this.current - 1);\n    },\n    pageChange(page) {\n      if (page !== this.current) {\n        this.$emit('page-change', page);\n      }\n    },\n  },\n  computed: {\n    range() {\n      const length = this.endIndex - this.startIndex + 1;\n      const pages = Array.from({ length }, (v, i) => i + this.startIndex);\n\n      return pages;\n    },\n    startIndex() {\n      let start = this.current - this.threshold;\n\n      if (start + this.limit > this.max) {\n        start -= start - (this.max - this.limit + 1);\n      }\n\n      return start < 1 ? 1 : start;\n    },\n    endIndex() {\n      let end = this.current + this.threshold;\n\n      if (this.limit - end > 0) {\n        end += this.limit - end;\n      }\n\n      return end > this.max ? this.max : end;\n    },\n    isLastPage() {\n      return this.current === this.max;\n    },\n    isFirstPage() {\n      return this.current === 1;\n    },\n    hasPages() {\n      return this.max > 1;\n    },\n  },\n};\n</script>\n","import { render } from \"./Pagination.vue?vue&type=template&id=541280fb\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"svg[data-v-030432b0]{display:block;margin:auto}.v-enter-active[data-v-030432b0],.v-leave-active[data-v-030432b0]{transition:opacity .5s ease}.v-enter-from[data-v-030432b0],.v-leave-to[data-v-030432b0]{opacity:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./resources/scripts/vue/components/Loader.vue\"],\"names\":[],\"mappings\":\"AAwHE,qBACE,aAAc,CACd,WACF,CAEA,kEAEE,2BACF,CAEA,4DAEE,SACF\",\"sourcesContent\":[\"<template>\\n  <div :class=\\\"block ? 'container mx-auto mb-7' : ''\\\" :style=\\\"style\\\">\\n    <Transition>\\n      <svg width=\\\"82%\\\" height=\\\"100%\\\" viewBox=\\\"0 0 123 150\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" v-if=\\\"showAnimation\\\">\\n        <rect :width=\\\"width1\\\" height=\\\"31.98\\\" :x=\\\"x1\\\" :fill=\\\"barColor\\\" style=\\\"transition: all 1.15s ease-out\\\"/>\\n        <rect :x=\\\"x2\\\" y=\\\"55.5\\\" :width=\\\"width2\\\" height=\\\"31.98\\\" :fill=\\\"barColor\\\" style=\\\"transition: all 1.15s ease-out\\\"/>\\n        <rect :x=\\\"x3\\\" y=\\\"111\\\" :width=\\\"width3\\\" height=\\\"31.98\\\" :fill=\\\"barColor\\\" style=\\\"transition: all 1.15s ease-out\\\"/>\\n      </svg>\\n    </Transition>\\n  </div>\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'Loader',\\n  props: {\\n    color: {\\n      type: String,\\n      default: 'blue'\\n    },\\n    height: {\\n      type: String,\\n      default: '100px'\\n    },\\n    width: {\\n      type: String,\\n      default: '100px'\\n    },\\n    delay: {\\n      type: Number,\\n      default: '0'\\n    },\\n    block: {\\n      type: Boolean,\\n      default: false\\n    }\\n  },\\n  data() {\\n\\t\\treturn {\\n\\t\\t\\twidth1: '123',\\n      width2: '46.74',\\n      width3: '46.74',\\n      x1: '0',\\n      x2: '76.26',\\n      x3: '76.26',\\n      loadingTime: 0,\\n      showAnimation: false\\n\\t\\t}\\n\\t},\\n  computed: {\\n    barColor() {\\n      switch (this.color) {\\n        case 'blue':\\n          return '#1B4579';\\n          break;\\n        case 'red':\\n          return '#8F311E';\\n          break;\\n        case 'purple':\\n          return '#602662';\\n          break;\\n        case 'white':\\n          return '#FFFFFF';\\n          break;\\n      }\\n    },\\n    style() {\\n      return `height: ${this.height}; min-height: ${this.height}; width: ${this.width}`;\\n    }\\n  },\\n\\tmethods: {\\n\\t\\tanimate() {\\n      let scope = this;\\n\\n      setInterval(function() {\\n        if (scope.width1 == '123') {\\n          scope.x1 = '76.26';\\n          scope.x2 = '0';\\n          scope.width1 = '46.74';\\n          scope.width2 = '123';\\n        } else if (scope.width2 == '123') {\\n          scope.x2 = '76.26';\\n          scope.x3 = '0';\\n          scope.width2 = '46.74';\\n          scope.width3 = '123';\\n        } else {\\n          scope.x3 = '76.26';\\n          scope.x1 = '0';\\n          scope.width3 = '46.74';\\n          scope.width1 = '123';\\n        }\\n      }, 1300, scope);\\n    },\\n    markTime() {\\n      let scope = this;\\n\\n      let delay = setInterval(function() {\\n        scope.loadingTime += 100;\\n\\n        if (scope.loadingTime > scope.delay) {\\n          scope.showAnimation = true;\\n          scope.animate();\\n          clearInterval(delay);\\n        }\\n      }, 100, scope);\\n    }\\n\\t},\\n  mounted() {\\n    if (this.delay > 0) {\\n        this.markTime();\\n    } else {\\n      this.showAnimation = true;\\n      this.animate();\\n    }\\n  }\\n}\\n</script>\\n\\n\\n<style scoped>\\n  svg {\\n    display: block;\\n    margin: auto;\\n  }\\n\\n  .v-enter-active,\\n  .v-leave-active {\\n    transition: opacity 0.5s ease;\\n  }\\n\\n  .v-enter-from,\\n  .v-leave-to {\\n    opacity: 0;\\n  }\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { ref, computed, onMounted } from 'vue';\nimport debounce from 'lodash.debounce';\n\nexport default (endpoint, params, paginate = false, perPage = 15) => {\n  const DEFAULT_PAGE = paginate ? 1 : 0;\n  const search = ref('');\n  const maxPages = ref(1);\n  const page = ref(DEFAULT_PAGE);\n  const isLoading = ref(false);\n  const totalPosts = ref(null);\n  const resources = ref([]);\n\n  const debouncedLoad = debounce(load);\n  const debouncedReset = debounce(reset);\n\n  onMounted(() => {\n    debouncedLoad();\n  });\n\n  const hasMore = computed(() => page.value < maxPages.value);\n\n  const query = computed(() =>\n    Object.assign(\n      {},\n      {\n        page: paginate ? page.value : page.value + 1,\n        search: search.value,\n        terms: JSON.stringify(params.value),\n      }\n    )\n  );\n\n  const queryString = computed(() => new URLSearchParams(query.value));\n\n  function load(toPage) {\n    isLoading.value = true;\n    if (toPage) {\n      page.value = toPage;\n    }\n\n    fetch(`${endpoint}?${queryString.value}&per_page=${perPage}`)\n      .then((res) => res.json())\n      .then((res) => {\n        resources.value = paginate\n          ? res.data\n          : [...resources.value, ...res.data];\n        maxPages.value = res.max_pages;\n        page.value = res.current_page;\n        totalPosts.value = res.total_posts;\n        isLoading.value = false;\n      });\n  }\n\n  function reset() {\n    page.value = DEFAULT_PAGE;\n    maxPages.value = 1;\n    resources.value = [];\n    load();\n  }\n\n  function setSearch(value) {\n    search.value = value;\n  }\n\n  return {\n    search,\n    load,\n    reset: debouncedReset,\n    hasMore,\n    totalPosts,\n    resources,\n    setSearch,\n    page,\n    maxPages,\n    isLoading,\n  };\n};\n","<template>\n  <div class=\"lg:flex-1 w-full lg:w-auto\">\n    <label class=\"uppercase tracking-widest font-bold\">\n      <span aria-hidden=\"true\" class=\"mb-2.5 block text-sm\" id=\"searchLabel\">Search</span>\n      <div class=\"relative\">\n        <input\n          type=\"text\"\n          placeholder=\"Search Keywords\"\n          aria-labelledby=\"searchLabel\"\n          class=\"\n            text-grey-dark\n            placeholder-grey-dark\n            py-5.5\n            border border-grey-dark\n            w-full\n            px-10\n            font-semibold\n            text-sm\n          \"\n          @input=\"$emit('update:modelValue', $event.target.value)\"\n          @keydown.enter=\"submit\"\n          :value=\"modelValue\"\n        />\n        <button aria-label=\"Submit Search Query\" tabindex=\"-1\" @click=\"submit\">\n          <svg\n            width=\"16\"\n            height=\"16\"\n            class=\"\n              text-pale-50\n              absolute\n              right-6\n              top-1/2\n              -translate-y-1/2\n              transform\n            \"\n            aria-hidden=\"true\"\n          >\n            <use xlink:href=\"#icon-search\"></use>\n          </svg>\n        </button>\n      </div>\n    </label>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    modelValue: {\n      type: String,\n      default: '',\n      required: true,\n    },\n  },\n  emits: ['submit', 'update:modelValue'],\n  setup(props, { emit }) {\n    function submit() {\n      emit('submit');\n    }\n    return {\n      submit,\n    };\n  },\n};\n</script>\n","import { render } from \"./SearchBar.vue?vue&type=template&id=9eeec808\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <div>\n    <div class=\"lg:mb-17.5 mb-7 container lg:max-w-352\">\n      <div class=\"lg:-mx-4.5 lg:flex space-y-6 lg:space-y-0 mb-6 lg:mb-0\">\n        <div\n          class=\"lg:w-1/3 lg:px-4.5 mb-6\"\n          v-if=\"filterGroups.length > 0\"\n        >\n          <dropdown\n            :options=\"limitedRegion || filterGroups[2]\"\n            :selected=\"getActiveFilter(filterGroups[2])\"\n            :clickable=\"!isLoading\"\n            @select=\"\n              toggleFilter($event, applyFilters);\n              limitOptions(filterGroups[1], $event);\n              updateParams($event);\n            \"\n            @clear=\"\n              clearFilters(filterGroups[2], applyFilters);\n              clearLimit('country');\n              clearParam('region');\n            \"\n          />\n        </div>\n        <div\n          class=\"lg:w-1/3 lg:px-4.5 mb-6\"\n          v-if=\"filterGroups.length > 0\"\n        >\n          <dropdown\n            :options=\"limitedCountries || filterGroups[1]\"\n            :selected=\"getActiveFilter(filterGroups[1])\"\n            :clickable=\"!isLoading\"\n            @select=\"\n              toggleFilter($event, applyFilters);\n              limitOptions(filterGroups[2], $event);\n              updateParams($event);\n            \"\n            @clear=\"\n              clearFilters(filterGroups[1], applyFilters);\n              clearLimit('region');\n              clearParam('country');\n            \"\n          />\n        </div>\n        <div\n          class=\"lg:w-1/3 lg:px-4.5 mb-6\"\n          v-if=\"filterGroups.length > 0\"\n        >\n          <dropdown\n            :options=\"limitedParticipantType || filterGroups[0]\"\n            :selected=\"getActiveFilter(filterGroups[0])\"\n            :clickable=\"!isLoading\"\n            @select=\"\n              toggleFilter($event, applyFilters)\n              updateParams($event);\n            \"\n            @clear=\"\n              clearFilters(filterGroups[0], applyFilters)\n              clearParam('participant_type');\n            \"\n          />\n        </div>\n        <div\n          class=\"lg:w-1/3 lg:px-4.5 mb-6\"\n          v-if=\"filterGroups.length > 0\"\n        >\n          <dropdown\n            :options=\"filterGroups[3]\"\n            :selected=\"getActiveFilter(filterGroups[3])\"\n            :clickable=\"!isLoading\"\n            @select=\"\n              toggleFilter($event, applyFilters)\n              updateParams($event);\n            \"\n            @clear=\"\n              clearFilters(filterGroups[3], applyFilters)\n              clearParam('project_type');\n            \"\n          />\n        </div>\n      </div>\n      <div class=\"lg:-mx-4.5 lg:flex space-y-6 lg:space-y-0\">\n        <search-bar\n          v-model=\"search\"\n          @submit=\"load\"\n          class=\"lg:px-4.5\"\n        ></search-bar>\n        <div class=\"lg:px-4.5 lg:w-1/4 flex\">\n          <button\n            class=\"\n              bg-sky-blue \n              hover:bg-sky-blue-300 \n              py-5.5 \n              px-10 \n              text-sm \n              mt-8\n              uppercase \n              block \n              text-center \n              tracking-widest \n              text-white \n              duration-450 \n              ease-cb \n              transition \n              font-bold\n              w-full\n            \"\n            @click=\"\n              clearFilters(null, applyFilters);\n              clearParam('all');\n              reset();\n            \"\n          >\n            Clear\n          </button>\n        </div>\n      </div>\n    </div>\n    <h5\n      class=\"text-center mb-7\"\n      v-if=\"resources.length > 0 && !isLoading\"\n    >\n      {{resources.length}}\n      <span v-if=\"resources.length == 1\">story</span>\n      <span v-else>stories</span>\n    </h5>\n    <Loader v-if=\"isLoading\" height=\"150px\" width=\"150px\" :delay=\"0\" :block=\"true\" />\n    <div class=\"relative pb-20\" ref=\"grid\">\n      <figure\n        class=\"bg-blue-light absolute inset-0 z-0 top-75 lg:block hidden\"\n      ></figure>\n      <div class=\"container lg:max-w-352 relative\">\n        <div v-if=\"pageResources && !isLoading\" class=\"lg:flex lg:-mx-4.5 flex-wrap\">\n          <a\n            v-for=\"post in pageResources\"\n            :key=\"post.ID\"\n            class=\"lg:w-1/3 lg:px-4.5 group lg:mb-17.5 mb-10 flex flex-col\"\n            :href=\"post.link\"\n            aria-label=\"Read More\"\n          >\n            <figure>\n              <img\n                :src=\"\n                  post.grid_image\n                    ? post.grid_image.url\n                    : post.featured_image.post_thumb[0]\n                \"\n                :alt=\"post.grid_image ? post.grid_image.alt : ''\"\n                v-if=\"post.grid_image || post.featured_image.post_thumb\"\n                width=\"700\" height=\"700\"\n                class=\"w-full object-cover story-grid-image\"\n              />\n            </figure>\n            <div class=\"bg-white px-10 py-7.5 h-full\">\n              <span v-if=\"post.date\" class=\"font-bold text-sm mb-2 block\">\n                {{ formatDate(post.date) }}\n              </span>\n              <span\n                class=\"\n                  py-0.5\n                  px-2.5\n                  text-sky-blue-300\n                  bg-blue-light\n                  my-5.5\n                  mt-2\n                  inline-block\n                  text-xs\n                \"\n                v-if=\"getCountry(post.terms)\"\n              >\n                {{ getCountry(post.terms).label }}\n              </span>\n              <h4 v-html=\"post.title\" class=\"group-hover:text-sky-blue\"></h4>\n            </div>\n          </a>\n        </div>\n        <div\n          class=\"text-center\"\n          v-if=\"!isLoading && !resources.length\"\n          v-html=\"emptyMessage\"\n        ></div>\n        <div class=\"flex justify-center\">\n          <pagination\n            :max=\"maxPages\"\n            :current=\"page\"\n            class=\"flex justify-center\"\n            v-if=\"!isLoading\"\n            @page-change=\"\n              changePage($event);\n              scrollToGrid();\n            \"\n            :limit=\"pageRange\"\n            :threshold=\"threshold\"\n          />\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { ref, onMounted, computed } from 'vue';\nimport debounce from 'lodash.debounce';\nimport useFetch from '../composables/useFetch';\nimport useFilters from '../composables/useFilters';\nimport { regionsByISO, AfricaISOs, EastAsiaAndPacificISOs, EuropeAndEurasiaISOs, NearEastAndNorthAfricaISOs, SouthAndCentralAsiaISOs, WesternHemisphereISOs } from '../../lib/regions';\nimport SearchBar from '../components/SearchBar.vue';\nimport Dropdown from '../components/Dropdown.vue';\nimport formatDate from '../../util/formatDate';\nimport Pagination from '../components/Pagination.vue';\nimport Loader from '../components/Loader.vue';\n\nexport default {\n  props: {\n    postEndpoint: {\n      type: String,\n      default: '',\n      required: true,\n    },\n    termEndpoint: {\n      type: String,\n      default: '',\n      required: true,\n    },\n    preFilter: {\n      type: Array,\n      default: () => [],\n    },\n    emptyMessage: {\n      type: String,\n      default: '',\n    },\n  },\n  components: {\n    SearchBar,\n    Dropdown,\n    Pagination,\n    Loader\n  },\n  setup(props) {\n    const pageRange = ref(8);\n    const threshold = ref(4);\n    const grid = ref(null);\n    const isLoading = ref(false);\n    const resources = ref([]);\n    const stories = ref([]);\n    const search = ref('');\n    const page = ref(0);\n    const maxPages = ref(1);\n    const debouncedLoad = debounce(load);\n    const limitedRegion = ref(null);\n    const limitedCountries = ref(null);\n    const limitedParticipantType = ref(null);\n    const limitedProjectType = ref(null);\n\n    const {\n      selected,\n      filterGroups,\n      isActiveFilter,\n      toggleFilter,\n      getActiveFilter,\n      removeActiveFilter,\n      clearFilters,\n    } = useFilters(props.termEndpoint, ref(props.preFilter), limitOptions, applyFilters);\n\n    onMounted(() => {\n      if (props.preFilter.length) {\n        scrollToGrid();\n      }\n\n      responsivePageNumbers();\n\n      window.addEventListener('resize', () => {\n        responsivePageNumbers();\n      });\n\n      debouncedLoad();\n    });\n\n    function responsivePageNumbers() {\n      if (window.innerWidth < 768) {\n        pageRange.value = 4;\n        threshold.value = 1;\n      } else {\n        pageRange.value = 8;\n        threshold.value = 4;\n      }\n    }\n\n    function getCountry(terms) {\n      return terms.find((term) => term.taxonomy == 'story-country');\n    }\n\n    function scrollToGrid() {\n      window.scroll({\n        behavior: 'smooth',\n        top: grid.value.offsetTop,\n      });\n    }\n\n    const pageResources = computed(() => {\n      if (resources.value.length > 0) {\n        if (maxPages.value == page.value) {\n          return resources.value.slice((page.value - 1) * 15);\n        } else {\n          return resources.value.slice(page.value == 1 ? 0 : (page.value - 1) * 15, page.value == 1 ? 15 : page.value * 15);\n        }\n      } else {\n        return [];\n      }\n    });\n\n    const hasMore = computed(() => page.value < maxPages.value);\n\n    const query = computed(() =>\n      Object.assign(\n        {},\n        {\n          search: search.value,\n        }\n      )\n    );\n\n    const queryString = computed(() => new URLSearchParams(query.value));\n\n    function load() {\n      isLoading.value = true;\n      fetch(`${props.postEndpoint}?${queryString.value}&per_page=10000`)\n        .then((res) => res.json())\n        .then((res) => {\n          stories.value = res.data;\n          resources.value = res.data;\n\n          maxPages.value = resources.value.length / 15;\n          changePage(1);\n          isLoading.value = false;\n\n          applyFilters();\n        });\n    }\n\n    function applyFilters() {\n      isLoading.value = true;\n\n      resources.value = [];\n\n      let filterIDs = selected.value.map((param) => {\n        return param.ID;\n      });\n\n      if (stories.value.length > 0 && filterIDs.length > 0) {\n        for (let i=0; i<stories.value.length; i++) {\n          let story = stories.value[i];\n\n          let tests = filterIDs.map((ID) => {return false});\n\n          for (let k=0; k<story.terms.length; k++) {\n            let tag = story.terms[k].ID;\n\n            let index = filterIDs.indexOf(tag);\n\n            if (index !== -1) {\n              tests[index] = true;\n            }\n          }\n\n          if (tests.indexOf(false) == -1) {\n            resources.value.push(story);\n          }\n        }\n      } else {\n        resources.value = stories.value;\n      }\n\n      maxPages.value = resources.value.length / 15;\n      changePage(1);\n\n      isLoading.value = false;\n    }\n\n    function changePage(toPage) {\n      isLoading.value = true;\n\n      if (toPage) {\n        page.value = toPage;\n      }\n\n      isLoading.value = false;\n    }\n\n    function reset() {\n      search.value = '';\n      clearLimit('all');\n      load();\n    }\n\n    function updateParams(event) {\n      let searchParams = new URLSearchParams(window.location.search);\n\n      switch(event.taxonomy) {\n        case \"story-region\":\n          searchParams.set(\"region\", `${event.ID}`);\n          break;\n        case \"story-country\":\n          searchParams.set(\"country\", `${event.ID}`);\n          break;\n        case \"participant-type\":\n          searchParams.set(\"participant_type\", `${event.ID}`);\n          break;\n        case \"story-type\":\n          searchParams.set(\"project_type\", `${event.ID}`);\n          break;\n      }\n\n      let newRelativePathQuery = window.location.pathname + '?' + searchParams.toString();\n      history.pushState(null, '', newRelativePathQuery);\n    }\n\n    function clearParam(param) {\n      let searchParams = new URLSearchParams(window.location.search);\n\n      switch(param) {\n        case \"region\":\n          searchParams.delete(\"region\");\n          break;\n        case \"country\":\n          searchParams.delete(\"country\");\n          break;\n        case \"participant_type\":\n          searchParams.delete(\"participant_type\");\n          break;\n        case \"project_type\":\n          searchParams.delete(\"project_type\");\n          break;\n        case \"all\":\n          searchParams.delete(\"region\");\n          searchParams.delete(\"country\");\n          searchParams.delete(\"participant_type\");\n          searchParams.delete(\"project_type\");\n          break;\n      }\n\n      let newRelativePathQuery = window.location.pathname + '?' + searchParams.toString();\n      history.pushState(null, '', newRelativePathQuery);\n    }\n\n    function clearLimit(scope) {\n      if (scope == 'region' || scope == 'all') {\n        limitedRegion.value = null;\n      }\n\n      if (scope == 'country' || scope == 'all') {\n        limitedCountries.value = null;\n      }\n    }\n\n    function limitOptions(listToLimit, event) {\n      let filteredList = [];\n\n      switch(event.taxonomy) {\n        case \"story-region\":\n          let relatedCountries = [];\n          switch (event.label) {\n            case 'Africa':\n              relatedCountries = AfricaISOs;\n              break;\n            case 'East Asia and Pacific':\n              relatedCountries = EastAsiaAndPacificISOs;\n              break;\n            case 'Europe and Eurasia':\n              relatedCountries = EuropeAndEurasiaISOs;\n              break;\n            case 'Near East and North Africa':\n              relatedCountries = NearEastAndNorthAfricaISOs;\n              break;\n            case 'South and Central Asia':\n              relatedCountries = SouthAndCentralAsiaISOs;\n              break;\n            case 'Western Hemisphere':\n              relatedCountries = WesternHemisphereISOs;\n              break;\n          }\n\n          filteredList = listToLimit.terms.filter((country) => {\n            return relatedCountries.indexOf(country.slug.toUpperCase()) !== -1;\n          });\n\n          limitedCountries.value = {\n            label: listToLimit.label,\n            slug: listToLimit.slug,\n            terms: filteredList\n          };\n          break;\n        case \"story-country\":\n          let relatedRegion = regionsByISO[event.slug.toUpperCase()];\n\n          filteredList = listToLimit.terms.filter((region) => {\n            return region.label == relatedRegion;\n          });\n\n          limitedRegion.value = {\n            label: listToLimit.label,\n            slug: listToLimit.slug,\n            terms: filteredList\n          };\n          break;\n        case \"participant-type\":\n          let participantType = listToLimit.terms.filter((participantType) => {\n            return participantType.label == event.label\n          });\n\n          limitedParticipantType.value = {\n            label: listToLimit.label,\n            slug: listToLimit.slug,\n            terms: participantType\n          }\n          break;\n        case \"story-type\":\n          let projectType = listToLimit.terms.filter((projectType) => {\n            return projectType.label == event.label\n          });\n\n          limitedProjectType.value = {\n            label: listToLimit.label,\n            slug: listToLimit.slug,\n            terms: projectType\n          }\n          break;\n      }\n    }\n\n    return {\n      load,\n      reset,\n      hasMore,\n      isLoading,\n      resources,\n      search,\n      page,\n      maxPages,\n      filterGroups,\n      isActiveFilter,\n      toggleFilter,\n      getActiveFilter,\n      removeActiveFilter,\n      clearFilters,\n      formatDate,\n      getCountry,\n      scrollToGrid,\n      grid,\n      threshold,\n      pageRange,\n      pageResources,\n      changePage,\n      applyFilters,\n      limitOptions,\n      limitedCountries,\n      limitedRegion,\n      limitedParticipantType,\n      limitedProjectType,\n      clearLimit,\n      updateParams,\n      clearParam\n    };\n  },\n};\n</script>\n","import { render } from \"./StoryGrid.vue?vue&type=template&id=934ee628\"\nimport script from \"./StoryGrid.vue?vue&type=script&lang=js\"\nexport * from \"./StoryGrid.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from 'vue';\nimport StoryGrid from './components/StoryGrid.vue';\n\nconst app = createApp({\n  components: {\n    StoryGrid,\n  },\n});\n\napp.mount('.story-grid');\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".disabled[data-v-5010e54a]{cursor:not-allowed}.disabled svg[data-v-5010e54a]{visibility:hidden}\", \"\",{\"version\":3,\"sources\":[\"webpack://./resources/scripts/vue/components/Dropdown.vue\"],\"names\":[],\"mappings\":\"AAwMA,2BACI,kBACJ,CAEA,+BACE,iBACF\",\"sourcesContent\":[\"<template>\\n  <label class=\\\"relative\\\">\\n    <span\\n      class=\\\"uppercase tracking-widest font-bold block text-sm mb-2.5\\\"\\n      aria-hidden=\\\"true\\\"\\n      v-html=\\\"options.label\\\"\\n    >\\n    </span>\\n    <div class=\\\"relative cursor-pointer z-10\\\" ref=\\\"target\\\">\\n      <span\\n        @click=\\\"toggle\\\"\\n        @keyup.enter=\\\"toggle\\\"\\n        @keyup.esc=\\\"toggle\\\"\\n        :aria-expanded=\\\"isOpen ? true : false\\\"\\n        tabindex=\\\"0\\\"\\n        ref=\\\"selector\\\"\\n        :aria-label=\\\"isOpen ? 'Close Dropdown' : 'Open Dropdown'\\\"\\n        class=\\\"\\n          w-full\\n          text-sm\\n          lg:text-base\\n          bg-white\\n          relative\\n          border border-grey-dark\\n          font-semibold\\n          py-6\\n          pl-10\\n          pr-6\\n          inline-flex\\n          items-center\\n          justify-between\\n          leading-none\\n          z-20\\n        \\\"\\n        :class=\\\"{disabled: !clickable}\\\"\\n      >\\n        {{ selected.label || `All ${options.label}` }}\\n        <svg\\n          class=\\\"transition-transform duration-300 ease-cb\\\"\\n          :class=\\\"[isOpen ? 'transform rotate-180 text-primary' : '']\\\"\\n          height=\\\"20\\\"\\n          width=\\\"10\\\"\\n          aria-hidden=\\\"true\\\"\\n        >\\n          <use xlink:href=\\\"#icon-arrow-down\\\"></use>\\n        </svg>\\n      </span>\\n      <ul\\n        class=\\\"\\n          w-full\\n          overflow-y-scroll\\n          bg-white\\n          border border-t-0\\n          lg:absolute\\n          z-20\\n          p-0\\n          relative\\n          top-0\\n          transition-all\\n          ease-cb\\n          duration-200\\n        \\\"\\n        ref=\\\"list\\\"\\n        :class=\\\"{ 'top-full visible h-57.5': isOpen, 'invisible h-0': !isOpen }\\\"\\n      >\\n        <li\\n          class=\\\"\\n            flex\\n            justify-between\\n            py-6\\n            px-10\\n            hover:text-white hover:bg-sky-blue\\n            duration-300\\n            transition\\n            ease-cb\\n          \\\"\\n          tabindex=\\\"0\\\"\\n          @keyup.enter=\\\"\\n            () => {\\n              clear(options);\\n              toggle();\\n            }\\n          \\\"\\n          @click=\\\"\\n            () => {\\n              clear(options);\\n              toggle();\\n            }\\n          \\\"\\n        >\\n          All {{ options.label }}\\n        </li>\\n        <li\\n          v-for=\\\"(option, i) in options.terms\\\"\\n          :key=\\\"option.ID\\\"\\n          tabindex=\\\"0\\\"\\n          @keyup.enter=\\\"\\n            () => {\\n              select(option);\\n              toggle();\\n            }\\n          \\\"\\n          @click=\\\"\\n            () => {\\n              select(option);\\n              toggle();\\n            }\\n          \\\"\\n          class=\\\"\\n            flex\\n            justify-between\\n            py-5.5\\n            px-10\\n            hover:text-white hover:bg-sky-blue\\n            transition\\n            duration-75\\n            ease-cb\\n          \\\"\\n        >\\n          <span v-html=\\\"option.label\\\"></span>\\n        </li>\\n      </ul>\\n    </div>\\n  </label>\\n</template>\\n\\n<script>\\nimport { ref, onMounted } from 'vue';\\nimport { onClickOutside } from '@vueuse/core';\\n\\nexport default {\\n  emits: ['close', 'open', 'select', 'clear'],\\n  props: {\\n    selected: {\\n      default: () => ({}),\\n      required: true,\\n      type: Object,\\n    },\\n    options: {\\n      default: () => ({}),\\n      type: Object,\\n      required: true,\\n    },\\n    clickable: {\\n      default: () => (true),\\n      type: Boolean,\\n      required: false\\n    }\\n  },\\n  setup(props, { emit }) {\\n    const isOpen = ref(false);\\n    const target = ref(null);\\n    const selector = ref(null);\\n    const list = ref(null);\\n\\n    function toggle() {\\n      if (props.clickable == true) {\\n          isOpen.value = !isOpen.value;\\n      }\\n\\n      if (isOpen.value == false) {\\n        list.value.scrollTop = 0;\\n      }\\n\\n      emit('toggled');\\n    }\\n\\n    function select(option) {\\n      emit('select', option);\\n    }\\n\\n    function clear(options) {\\n      emit('clear', options);\\n    }\\n\\n    onMounted(() => {\\n      emit('passRef', selector.value);\\n    });\\n\\n    return { isOpen, close, toggle, select, clear, target, selector, list };\\n  },\\n  watch: {\\n    options(newOptions, oldOptions) {\\n      if (newOptions.terms.length == 1) {\\n        this.select(newOptions.terms[0]);\\n      }\\n    },\\n    clickable(newVal, oldVal) {\\n      if (newVal) {\\n        if (this.options.terms.length == 1) {\\n          this.select(this.options.terms[0]);\\n        }\\n      }\\n    }\\n  }\\n};\\n</script>\\n\\n\\n<style scoped>\\n.disabled {\\n    cursor: not-allowed;\\n}\\n\\n.disabled svg {\\n  visibility: hidden;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["endpoint","preFilter","arguments","length","undefined","ref","limitOptions","filterGroups","selected","clearFilters","group","apply","value","filter","item","taxonomy","slug","removeActiveFilter","ID","addFilter","concat","_toConsumableArray","applyPreFilter","filters","forEach","onMounted","fetch","then","data","json","result","push","i","watch","terms","isActiveFilter","some","toggleFilter","activeGroup","find","getActiveFilter","key","width","height","viewBox","fill","xmlns","name","props","color","type","String","default","delay","Number","block","Boolean","width1","width2","width3","x1","x2","x3","loadingTime","showAnimation","computed","barColor","this","style","methods","animate","scope","setInterval","markTime","clearInterval","mounted","options","locals","_createElementBlock","class","_normalizeClass","$props","_normalizeStyle","$options","_createVNode","_Transition","_withCtx","$data","_hoisted_1","_createElementVNode","x","_hoisted_2","y","_hoisted_3","_hoisted_4","_createCommentVNode","_","dateString","Date","replace","toLocaleDateString","year","month","day","timeZone","emits","required","Object","clickable","setup","_ref","emit","isOpen","target","selector","list","close","toggle","scrollTop","select","option","clear","newOptions","oldOptions","newVal","oldVal","innerHTML","label","onClick","_cache","$setup","onKeyup","_withKeys","tabindex","disabled","_createTextVNode","_toDisplayString","_hoisted_6","_Fragment","_renderList","_hoisted_8","_hoisted_7","countriesByISO","regionsByISO","AfricaISOs","EastAsiaAndPacificISOs","EuropeAndEurasiaISOs","NearEastAndNorthAfricaISOs","SouthAndCentralAsiaISOs","WesternHemisphereISOs","regionMeta","max","current","threshold","limit","activeColor","onNext","pageChange","onPrev","page","$emit","range","_this","endIndex","startIndex","Array","from","v","start","end","isLastPage","isFirstPage","hasPages","_hoisted_5","n","_defineProperty","$event","_hoisted_9","___CSS_LOADER_EXPORT___","module","id","params","paginate","perPage","DEFAULT_PAGE","search","maxPages","isLoading","totalPosts","resources","debouncedLoad","debounce","load","debouncedReset","hasMore","query","assign","JSON","stringify","queryString","URLSearchParams","toPage","res","max_pages","current_page","total_posts","reset","setSearch","modelValue","submit","placeholder","onInput","_ctx","onKeydown","postEndpoint","termEndpoint","emptyMessage","components","SearchBar","Dropdown","Pagination","Loader","pageRange","grid","stories","limitedRegion","limitedCountries","limitedParticipantType","limitedProjectType","_useFilters","useFilters","applyFilters","responsivePageNumbers","window","innerWidth","scrollToGrid","scroll","behavior","top","offsetTop","addEventListener","pageResources","slice","changePage","filterIDs","map","param","story","tests","k","tag","index","indexOf","clearLimit","listToLimit","event","filteredList","relatedCountries","country","toUpperCase","relatedRegion","region","participantType","projectType","formatDate","getCountry","term","updateParams","searchParams","location","set","newRelativePathQuery","pathname","toString","history","pushState","clearParam","_component_dropdown","onSelect","onClear","_component_search_bar","onSubmit","_hoisted_10","_hoisted_11","_createBlock","_component_Loader","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","post","href","link","grid_image","featured_image","post_thumb","src","url","alt","_hoisted_17","_hoisted_18","date","_hoisted_19","_hoisted_20","title","_hoisted_21","_hoisted_16","_hoisted_22","_hoisted_23","_component_pagination","onPageChange","createApp","StoryGrid","mount"],"sourceRoot":""}