{"version":3,"file":"datasetsStore.mjs","sources":["../../../lib/store/modules/datasetsStore.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable no-param-reassign,no-unused-vars,no-console,consistent-return */\n\nconst RESULTS_PER_PAGE = 10;\n// const RESULTS_PER_PAGE = GLUE_CONFIG.routing.pagination.defaultItemsPerPage;\n\nconst state = {\n  datasets: [],\n  loading: false,\n  searchParameters: {\n    query: '',\n    fields: undefined, \n    limit: RESULTS_PER_PAGE,\n    offset: 0,\n    // The Facets to filter for\n    facets: {},\n    facetOperator: 'AND',\n    facetGroupOperator: 'AND',\n    dataServices: 'false',\n    superCatalogue: undefined, // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n    datasetGeoBounds: undefined,\n    sort: 'relevance+desc, modified+desc, title.en+asc',\n    minDate: null,\n    maxDate: null,\n    dateType: null,\n  },\n  availableFacets: [],\n  page: 1,\n  pageCount: 1,\n  datasetsCount: 0,\n  dataScope: undefined,\n  minScoring: undefined,\n  maxScoring: undefined,\n  scoringFacets: [\n    {\n      id: 'excellentScoring',\n      title: 'Excellent',\n      count: 0,\n      minScoring: 351,\n      maxScoring: 405,\n    },\n    {\n      id: 'goodScoring',\n      title: 'Good',\n      count: 0,\n      minScoring: 221,\n      maxScoring: 350,\n    },\n    {\n      id: 'sufficientScoring',\n      title: 'Sufficient',\n      count: 0,\n      minScoring: 121,\n      maxScoring: 220,\n    },\n    {\n      id: 'anyScoring',\n      title: 'Any',\n      count: 0,\n      minScoring: 0,\n      maxScoring: 120,\n    },\n  ],\n};\n\nconst GETTERS = {\n  getDatasets: state => state.datasets,\n  getDatasetsCount: state => state.datasetsCount,\n  getQuery: state => state.searchParameters.query,\n  getFields: state => state.searchParameters.fields,\n  getMinDate: state => state.searchParameters.minDate,\n  getMaxDate: state => state.searchParameters.maxDate,\n  getDateType: state => state.searchParameters.dateType,\n  getLimit: state => state.searchParameters.limit,\n  getLoading: state => state.loading,\n  getOffset: state => state.searchParameters.offset,\n  getFacets: (state) => {\n    const preparedFacets = {...state.searchParameters.facets};\n    if (preparedFacets.categories) preparedFacets.categories = preparedFacets.categories.map(c => c.toUpperCase());\n    if (preparedFacets.dataScope) delete preparedFacets.dataScope;\n    return preparedFacets;\n  },\n  getFacetOperator: state => state.searchParameters.facetOperator,\n  getFacetGroupOperator: state => state.searchParameters.facetGroupOperator,\n  getDataServices: state => state.searchParameters.dataServices,\n  getSuperCatalogue_DEPRECATED: state => state.searchParameters.superCatalogue, // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n  getDatasetGeoBounds: state => state.searchParameters.datasetGeoBounds,\n  getAvailableFacets: state => state.availableFacets,\n  // Hacky solutiohn to insert special facets\n  getAllAvailableFacets: (state) => {\n    const allAvailableFacets = [...state.availableFacets];\n    const indexOfScoring = allAvailableFacets.findIndex(facet => facet.id === 'scoring');\n    allAvailableFacets.splice(indexOfScoring, 0,\n      {\n        id: 'dataServices',\n        items: [\n          { count: undefined, id: 'true', title: 'yes' },\n          { count: undefined, id: 'false', title: 'no' },\n        ],\n        title: 'Data services',\n      });\n    // allAvailableFacets.push({\n    //   id: 'erpd',\n    //   items: [\n    //     { count: undefined, id: 'true', title: 'yes' },\n    //     { count: undefined, id: 'false', title: 'no' },\n    //   ],\n    //   title: 'ERPD',\n    // });\n    return allAvailableFacets;\n  },\n  getPage: state => state.page,\n  getPageCount: state => state.pageCount,\n  getSort: state => state.searchParameters.sort,\n  getMinScoring: state => state.minScoring,\n  getMaxScoring: state => state.maxScoring,\n  getScoringFacets: state => state.scoringFacets,\n  getDataScope: state => state.dataScope,\n};\n\nconst actions = {\n  /**\n   * @description Load all datasets matching the given parameters.\n   * @param commit\n   * @param state\n   * @param options {Object} - Given search parameters\n   * @param options.query {String} - The given query string\n   * @param options.minDate {UTC} - The given query string\n   * @param options.maxDate {UTC} - The given query string\n   * @param options.dateType {UTC} - The given query string\n   * @param options.fields {String} - The given fields\n   * @param options.facets {Array} - The active facets\n   * @param options.limit {Number} - The maximum amount of datasets to fetch\n   * @param options.page {Number} - The current page\n   * @param options.sort {String} - The sort method to use\n   * @param options.geoBounds {Array} - The given bounds to setup a spatial search for\n   * @param options.append {Boolean} - Decides whether current datasets in state will be replaced or fetched datasets appended.\n   */\n  loadDatasets(\n    { commit, state },\n    {\n      locale,\n      query = GETTERS.getQuery(state),\n      fields = GETTERS.getFields(state),\n      limit = GETTERS.getLimit(state),\n      page = GETTERS.getPage(state),\n      sort = GETTERS.getSort(state),\n      facetOperator = GETTERS.getFacetOperator(state),\n      facetGroupOperator = GETTERS.getFacetGroupOperator(state),\n      dataServices = GETTERS.getDataServices(state),\n      facets = GETTERS.getFacets(state),\n      geoBounds = GETTERS.getDatasetGeoBounds(state),\n      minScoring = GETTERS.getMinScoring(state),\n      maxScoring = GETTERS.getMaxScoring(state),\n      dataScope = GETTERS.getDataScope(state),\n      minDate = GETTERS.getMinDate(state),\n      maxDate = GETTERS.getMaxDate(state),\n      dateType = GETTERS.getDateType(state),\n      append = false,\n    },\n  ) {\n\n    commit('SET_LOADING', true);\n\n    const gb = geoBounds;\n    if (gb instanceof Array && gb[0] && gb[1]) {\n      geoBounds = `${gb[0][0]},${gb[0][1]},${gb[1][0]},${gb[1][1]}`;\n    } else {\n      geoBounds = undefined;\n    }\n    // console.log(facets) \n    if (facets.catalog[0] === 'erpd') { // Special case: do not load datasets of catalog but rather all datasets of all sub-catalogs\n      facets.catalog = [];\n      facets.superCatalog = ['erpd'];\n    }\n\n    return new Promise((resolve, reject) => {\n      this.$datasetService.get(query, fields, locale, limit, page, sort, facetOperator, facetGroupOperator, dataServices, facets, geoBounds, minScoring, maxScoring, dataScope, minDate, maxDate, dateType)\n        .then((response) => {\n          commit('SET_FIELDS', response.fields);\n          commit('SET_AVAILABLE_FACETS', response.availableFacets);\n          commit('SET_SCORING_COUNT', response.scoringCount);\n          commit('SET_DATASETS_COUNT', response.datasetsCount);\n          if (append) commit('ADD_DATASETS', response.datasets);\n          else commit('SET_DATASETS', response.datasets);\n          commit('SET_LOADING', false);\n          resolve();\n        })\n        .catch((error) => {\n          console.error(error);\n          commit('SET_LOADING', false);\n          reject(error);\n        });\n    });\n  },\n\n    /**\n   * @description Loads more datasets.\n   * @param commit\n   * @param state\n   * @param {number} amount - The amount of datasets to add.\n   */\n  loadSingleDataset({ commit }, id) {\n    return new Promise((resolve, reject) => {\n      this.$datasetService.getSingle(id)\n        .then((response) => {\n          resolve(response);\n        })\n        .catch((error) => {\n          console.error(error);\n          reject(error);\n        });\n    });\n  },\n  /**\n   * @description Loads more datasets.\n   * @param commit\n   * @param state\n   * @param {number} amount - The amount of datasets to add.\n   */\n  loadAdditionalDatasets({ commit, state }) {\n    const page = GETTERS.getPage(state);\n    // const datasetsCount = GETTERS.getDatasetsCount(state);\n    actions.loadDatasets({ commit, state }, { page, append: true });\n  },\n\n  /**\n   * @description Autocomplete a query String by using a autocompletion service\n   * @param commit\n   * @param q {String} The Query to autocomplete\n   */\n  autocompleteQuery({ commit }, q) {\n    // If autocomplete function does not exist in this service -> Abort\n    if (typeof this.$datasetService.autocomplete !== 'function') return;\n    return new Promise((resolve, reject) => {\n      this.$datasetService.autocomplete(q)\n        .then((response) => {\n          resolve(response);\n        })\n        .catch((error) => {\n          reject(error);\n        });\n    });\n  },\n\n  /**\n   * @description Replace the current state facets by the given facets\n   * @param commit\n   * @param facets {Array} - The given facets\n   */\n  setFacets({ commit }, facets) {\n    if (facets) commit('SET_FACETS', facets);\n  },\n\n  /**\n   * @description Add the given facet to the states facets.\n   * @param commit\n   * @param params {Object} - The wrapped action parameters.\n   * @param params.field {String} - The field of the given facet\n   * @param params.facet {String} - The facet to add\n   */\n  addFacet({ commit }, { field, facet }) {\n    commit('ADD_FACET', { field, facet });\n  },\n\n  /**\n   * @description Remove the given facet from the states facets.\n   * @param commit\n   * @param params {Object} - The wrapped action parameters.\n   * @param params.field {String} - The field of the given facet\n   * @param params.facet {String} - The facet to remove\n   */\n  removeFacet({ commit }, { field, facet }) {\n    commit('REMOVE_FACET', { field, facet });\n  },\n\n  /**\n   * @description Remove the given facet from the states facets.\n   * @param commit\n   * @param operator {String} - The facet operator to set. Possible Operators : ['AND', 'OR'].\n   */\n  setFacetOperator({ commit }, operator) {\n    commit('SET_FACET_OPERATOR', operator);\n  },\n\n  /**\n   * @description Remove the given facet from the states facets.\n   * @param commit\n   * @param operator {String} - The facet operator to set. Possible Operators : ['AND', 'OR'].\n   */\n  setFacetGroupOperator({ commit }, operator) {\n    commit('SET_FACET_GROUP_OPERATOR', operator);\n  },\n\n  /**\n   * @description Remove the given facet from the states facets.\n   * @param commit\n   * @param operator {String} - The data services to set. Possible Operators : ['true', 'false'].\n   */\n  setDataServices({ commit }, dataServices) {\n    commit('SET_DATA_SERVICES', dataServices);\n  },\n\n  /**\n   * @description Remove the given facet from the states facets.\n   * @param commit\n   * @param operator {String} - Only Erpd data. Possible Operators : ['true', 'false'].\n   */\n  setSuperCatalogue_DEPRECATED({ commit }, superCatalogue) { // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n    commit('SET_SUPER_CATALOGUE', superCatalogue);\n  },\n  setPage({ commit }, page) {\n    commit('SET_PAGE', page);\n  },\n  setPageCount({ commit }, count) {\n    commit('SET_PAGE_COUNT', count);\n  },\n  setQuery({ commit }, query) {\n    commit('SET_QUERY', query);\n  },\n  setFields({ commit }, fields) {\n    commit('SET_FIELDS', fields);\n  },\n  setMinDate({ commit }, minDate) {\n    commit('SET_MINDATE', minDate);\n  },\n  setMaxDate({ commit }, maxDate) {\n    commit('SET_MAXDATE', maxDate);\n  },\n  setDateType({ commit }, dateType) {\n    commit('SET_DATETYPE', dateType);\n  },\n  setSort({ commit }, sort) {\n    commit('SET_SORT', sort);\n  },\n  setLimit({ commit }, amount = RESULTS_PER_PAGE) {\n    commit('SET_LIMIT', amount);\n  },\n  setDatasetGeoBounds({ commit }, bounds) {\n    commit('SET_DATASET_GEO_BOUNDS', bounds);\n  },\n  setLoading({ commit }, isLoading) {\n    commit('SET_LOADING', isLoading);\n  },\n  setMinScoring({ commit }, minScoring) {\n    commit('SET_MIN_SCORING', minScoring);\n  },\n  setMaxScoring({ commit }, maxScoring) {\n    commit('SET_MAX_SCORING', maxScoring);\n  },\n  setDataScope({ commit }, dataScope) {\n    commit('SET_DATA_SCOPE', dataScope);\n  },\n  setAvailableFacets({ commit }, facets) {\n    commit('SET_AVAILABLE_FACETS', facets);\n  },\n  setScoringCount({ commit }, count) {\n    commit('SET_SCORING_COUNT', count);\n  },\n  setDatasetsCount({ commit }, count) {\n    commit('SET_DATASETS_COUNT', count);\n  },\n  setDatasets({ commit }, datasets) {\n    commit('SET_DATASETS', datasets);\n  },\n};\n\nconst mutations = {\n  SET_DATASETS(state, data) {\n    state.datasets = data;\n  },\n  ADD_DATASETS(state, data) {\n    state.datasets = state.datasets.concat(data);\n  },\n  SET_LIMIT(state, limit) {\n    state.searchParameters.limit = limit;\n  },\n  SET_OFFSET(state, offset) {\n    state.searchParameters.offset = offset;\n  },\n  SET_FACETS(state, facets) {\n    state.searchParameters.facets = {...facets};\n  },\n  ADD_FACET(state, { field, facet }) {\n    // If the facetField is not defined in state..\n    if (!Object.prototype.hasOwnProperty.call(state.searchParameters.facets, field)) {\n      // ..define it by assigning an array containing {value} in it\n      state.searchParameters.facets[field] = [facet];\n    } else {\n      state.searchParameters.facets[field].push(facet);\n    }\n  },\n  REMOVE_FACET(state, { field, facet }) {\n    const index = state.searchParameters.facets[field].indexOf(facet);\n    state.searchParameters.facets[field].splice(index, 1);\n  },\n  SET_DATASET_GEO_BOUNDS(state, bounds) {\n    state.searchParameters.datasetGeoBounds = bounds;\n  },\n  SET_AVAILABLE_FACETS(state, facets) {\n    state.availableFacets = facets;\n  },\n  SET_SCORING_COUNT(state, scoringCount) {\n    state.scoringFacets.forEach((scoringFacet) => {\n      scoringFacet.count = scoringCount[scoringFacet.id];\n    });\n  },\n  SET_DATASETS_COUNT(state, datasetsCount) {\n    state.datasetsCount = datasetsCount;\n  },\n  SET_FACET_OPERATOR(state, operator) {\n    state.searchParameters.facetOperator = operator;\n  },\n  SET_FACET_GROUP_OPERATOR(state, operator) {\n    state.searchParameters.facetGroupOperator = operator;\n  },\n  SET_DATA_SERVICES(state, dataServices) {\n    state.searchParameters.dataServices = dataServices;\n  },\n  SET_SUPER_CATALOGUE(state, superCatalogue) { // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n    state.searchParameters.superCatalogue = superCatalogue;\n  },\n  SET_PAGE(state, page) {\n    state.page = page;\n  },\n  SET_PAGE_COUNT(state, count) {\n    state.pageCount = count;\n  },\n  SET_QUERY(state, query) {\n    state.searchParameters.query = query;\n  },\n  SET_FIELDS(state, fields) {\n    state.searchParameters.fields = fields;\n  },\n  SET_MINDATE(state, minDate) {\n    state.searchParameters.minDate = minDate;\n  },\n  SET_MAXTDATE(state, maxDate) {\n    state.searchParameters.maxDate = maxDate;\n  },\n  SET_DATETYPE(state, dateType) {\n    state.searchParameters.dateType = dateType;\n  },\n  SET_SORT(state, sort) {\n    state.searchParameters.sort = sort;\n  },\n  SET_LOADING(state, isLoading) {\n    state.loading = isLoading;\n  },\n  SET_MIN_SCORING(state, minScoring) {\n    state.minScoring = minScoring;\n  },\n  SET_MAX_SCORING(state, maxScoring) {\n    state.maxScoring = maxScoring;\n  },\n  SET_DATA_SCOPE(state, dataScope) {\n    state.dataScope = dataScope;\n  },\n};\n\nconst module = {\n  namespaced: true,\n  state,\n  actions,\n  mutations,\n  getters: GETTERS,\n};\n\nexport default module;\n"],"names":["state","GETTERS","preparedFacets","c","allAvailableFacets","indexOfScoring","facet","actions","commit","locale","query","fields","limit","page","sort","facetOperator","facetGroupOperator","dataServices","facets","geoBounds","minScoring","maxScoring","dataScope","minDate","maxDate","dateType","append","gb","resolve","reject","response","error","id","q","field","operator","superCatalogue","count","amount","bounds","isLoading","datasets","mutations","data","offset","index","scoringCount","scoringFacet","datasetsCount","module"],"mappings":"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"}