@piveau/piveau-hub-ui-modules 4.6.89 → 4.6.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs +29 -29
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
- package/dist/datasets/Datasets.vue.mjs +31 -25
- package/dist/datasets/Datasets.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs +24 -24
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/services/datasetService.d.ts +2 -1
- package/dist/services/datasetService.mjs +26 -25
- package/dist/services/datasetService.mjs.map +1 -1
- package/dist/store/modules/datasetsStore.d.ts +8 -1
- package/dist/store/modules/datasetsStore.mjs +25 -16
- package/dist/store/modules/datasetsStore.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Datasets.vue.mjs","sources":["../../lib/datasets/Datasets.vue"],"sourcesContent":["<template>\n <div class=\"datasets-container d-flex flex-column p-0 bg-transparent\">\n <datasets-top-controls\n :facets=\"facets\"\n :getPage=\"getPage\"\n :getLimit=\"getLimit\"\n class=\"datasets-top-controls\"\n />\n <div class=\"container-fluid datasets content\">\n <slot name=\"title\">\n <h1 class=\"row col-12 page-title catalog-title text-primary\" v-if=\"showCatalogDetails\">\n {{ getTranslationFor(getCatalog.title, $route.query.locale, getCatalog.languages) }}</h1>\n <h1 class=\"row col-12 page-title text-primary\" v-else>{{ $t('message.header.navigation.data.datasets') }}</h1>\n </slot>\n <slot\n name=\"content\"\n :datasets-count=\"getDatasetsCount\"\n :datasets=\"getDatasets\"\n :locale=\"$route.query.locale\"\n :loading=\"getLoading\"\n :use-dataset-facets=\"useDatasetFacets\"\n :facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n <div class=\"row\">\n <div class=\"col d-flex d-md-none justify-content-end flex-wrap\">\n <button class=\"btn btn-primary mb-3 text-right text-white\" data-toggle=\"collapse\"\n data-target=\"#datasetFacets\" data-cy=\"btn-filter-toggle\"\n @click=\"filterCollapsed = !filterCollapsed\">\n <i class=\"material-icons small-icon align-bottom\" v-if=\"filterCollapsed\">arrow_drop_up</i>\n <i class=\"material-icons small-icon align-bottom\" v-else>arrow_drop_down</i>\n </button>\n </div>\n <datasets-facets\n v-if=\"useDatasetFacets\"\n class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\" id=\"datasetFacets\"\n :dataScope=\"dataScope\"\n :available-facets=\"getAllAvailableFacets\"\n ></datasets-facets>\n<!-- <facets-->\n<!-- :facetsConfig=\"getAllAvailableFacets\"-->\n<!-- :facetsIds=\"$env.content.datasets.facets.defaultFacetOrder\"-->\n<!-- class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\"-->\n<!-- id=\"datasetFacets\">-->\n<!-- </facets>-->\n <section class=\"col-md-9 col-12\">\n <slot name=\"datasets-filters\">\n <datasets-filters/>\n </slot>\n <slot name=\"datasets-found\" :data=\"{\n loading: getLoading,\n datasetsCount: getDatasetsCount,\n datasetsCountFormatted: getDatasetsCount.toLocaleString('fi'),\n loadingMessage: $t('message.datasets.loadingMessage'),\n countMessage: $t('message.datasets.countMessage'),\n }\">\n <div class=\"datasets-found alert alert-primary mt-3 d-flex flex-row\" role=\"status\"\n :class=\"{ 'alert-danger': getDatasetsCount <= 0 && !getLoading}\">\n <div>\n {{\n getLoading ? $t('message.datasets.loadingMessage') : `${getDatasetsCount.toLocaleString('fi')}\n ${$t('message.datasets.countMessage')}`\n }}\n </div>\n <div class=\"loading-spinner ml-3\" v-if=\"getLoading\"></div>\n </div>\n </slot>\n <div class=\"alert alert-warning mt-3 d-flex flex-row\" v-if=\"showScoreDisclaimer\">\n <span>\n {{ $t(\"message.datasets.scoreDisclaimer\") }}\n <app-link path=\"/mqa\" :query=\"{ locale: $route.query.locale }\" target=\"_blank\">\n <span>{{ $t(\"message.metadata.methodologyPage\") }}</span>\n </app-link>\n </span>\n </div>\n <!--\n <div class=\"alert alert-info mt-3\" v-if=\"getGeoBoundsById('modal-map')\">\n {{`${$t('message.datasets.geoBoundsMessagePre')}`}}<strong>{{getGeoBoundsById('modal-map')}}</strong>{{`. ${$t('message.datasets.geoBoundsMessageRemove')}`}}\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" @click=\"resetGeoBounds('modal-map'); loadDatasets({})\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n -->\n <selectedFacetsOverview\n v-if=\"getFacets\"\n :selected-facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n </selectedFacetsOverview>\n <template v-if=\"!getLoading\">\n <dataset-list :datasets=\"getDatasets\" :locale=\"$route.query.locale || 'en'\"></dataset-list>\n </template>\n <div class=\"loading-spinner mx-auto mt-3 mb-3\" v-if=\"getLoading\"></div>\n </section>\n </div>\n </slot>\n <div class=\"row\">\n <div class=\"column col-12 col-md-9 offset-md-3\">\n <pagination class=\"mt-3\"\n :items-count=\"getDatasetsCount\"\n :items-per-page=\"getLimit\"\n :get-page=\"getPage\"\n :get-page-count=\"getPageCount\"\n @setPageLimit=\"setPageLimit\"></pagination>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n /* eslint-disable no-undef */\n import { mapActions, mapGetters } from 'vuex';\n import {\n debounce,\n has,\n groupBy,\n uniqBy,\n toPairs,\n isArray,\n isNil,\n } from 'lodash-es';\n import $ from 'jquery';\n import fileTypes from '../utils/fileTypes';\n import Pagination from '../widgets/Pagination.vue';\n import SelectedFacetsOverview from '../facets/SelectedFacetsOverview';\n import AppLink from '../widgets/AppLink.vue';\n import { getTranslationFor, truncate, getImg } from '../utils/helpers';\n import DatasetsTopControls from \"../datasets/DatasetsTopControls.vue\";\n import DatasetsFilters from \"../datasets/DatasetsFilters.vue\";\n import DatasetList from './DatasetList.vue'\n import { useDatasetsHead } from '../composables/head'\n // import Facets from \"../facets_2.0/Facets.vue\"\n import DatasetsFacets from './datasetsFacets/DatasetsFacets.vue';\nexport default {\n name: 'Datasets',\n components: {\n DatasetsFilters,\n DatasetsTopControls,\n appLink: AppLink,\n selectedFacetsOverview: SelectedFacetsOverview,\n datasetsFacets: DatasetsFacets,\n pagination: Pagination,\n DatasetList,\n // Facets\n },\n props: {\n infiniteScrolling: {\n type: Boolean,\n default: false,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n }\n },\n data() {\n return {\n baseUrl: this.$env.api.baseUrl,\n debouncedOnBottomScroll: debounce(this.onBottomScroll, 500),\n facetFields: [],\n lang: this.locale,\n filterCollapsed: true,\n catalogAllowed: false,\n useDatasetFacets: this.$env.content.datasets.facets.useDatasetFacets\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getDatasets',\n 'getDatasetsCount',\n 'getLimit',\n 'getLoading',\n 'getOffset',\n 'getPage',\n 'getPageCount',\n 'getMinScoring',\n ]),\n ...mapGetters('datasets', {\n // Rename getters to something different because we'll perform some modifications on them.\n // These modifications involve removing catalog related information from facets for fixed catalog filter mode\n getAllAvailableFacetsOriginal: 'getAllAvailableFacets',\n getFacetsOriginal: 'getFacets',\n }),\n showCatalogDetails() {\n return !isNil(this.$route.params.ctlg_id) || this.fixedCatalogFilter;\n },\n /**\n * @description Returns the current page.\n * @returns {Number}\n *\n * @deprecated use getPage from datasets store instead\n */\n page() {\n return this.$route.query.page;\n },\n /**\n * @description Returns the active facets according to the route parameters.\n * @returns {Object}\n */\n facets() {\n const facetFields = this.$env.content.datasets.facets.defaultFacetOrder;\n const wantsToLoadCatalogByParamOrProp = this.showCatalogDetails;\n\n const facetObj = facetFields.reduce((acc, field) => {\n acc[field] = (wantsToLoadCatalogByParamOrProp && field === 'catalog' && !this.fixedCatalogFilter)\n ? [this.$route.params.ctlg_id || undefined]\n : this.getUrlFacetsOrDefault(field);\n\n return acc;\n }, {});\n\n // if fixedCatalogFilter is set, then set it as superCatalog\n // requirement by bayern\n const facetObjWithMaybeDefaultSuperCatalog = this.fixedCatalogFilter\n ? {\n ...facetObj,\n superCatalog: [this.fixedCatalogFilter],\n }\n : facetObj;\n\n return facetObjWithMaybeDefaultSuperCatalog;\n },\n\n getAllAvailableFacets() {\n return this.showCatalogDetails\n ? this.getAllAvailableFacetsOriginal.filter(facet => facet.id !== 'catalog')\n : this.getAllAvailableFacetsOriginal;\n },\n\n getFacets() {\n // Returns a record of facets with the catalog facet removed if we're in fixed catalog filter mode\n return this.showCatalogDetails\n ? {\n ...this.getFacetsOriginal,\n catalog: []\n }\n : this.getFacetsOriginal;\n },\n\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showScoreDisclaimer() {\n return this.getMinScoring > 0;\n },\n dataScope() {\n if (!this.$route.query.dataScope) return null;\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length > 0) return this.$route.query.dataScope[0];\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length === 0) return null;\n return this.$route.query.dataScope;\n },\n },\n methods: {\n isNil,\n ...mapActions('datasets', [\n 'loadDatasets',\n 'loadAdditionalDatasets',\n 'setPage',\n 'setSort',\n 'addFacet',\n 'removeFacet',\n 'setFacets',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setPageCount',\n 'setLimit',\n 'setLoading',\n 'setDataScope',\n ]),\n // The imported Lodash has function. Must be defined in Methods so we can use it in template\n has,\n isArray,\n truncate,\n getTranslationFor,\n getImg,\n /**\n * @description Handler-function for the scroll event.\n */\n onScroll() {\n const items = this.$el.querySelectorAll('.dataset');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const lastItemPos = lastItem.getBoundingClientRect();\n if (lastItemPos.bottom - window.innerHeight <= 0) {\n this.debouncedOnBottomScroll();\n }\n }\n },\n /**\n * @description Handler-function when bottom of the page is reached.\n */\n onBottomScroll() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadAdditionalDatasets()\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n initLimit() {\n const limit = parseInt(this.$route.query.limit, 10);\n if (limit > 0) this.setLimit(limit);\n },\n initSort() {\n const sort = this.$route.query.sort;\n if (sort) this.setSort(sort);\n },\n setPageLimit(value) {\n this.setLimit(value);\n this.initDatasets();\n },\n initDataScope() {\n this.setDataScope(this.dataScope);\n },\n /**\n * @description Determines the current page.\n */\n initPage() {\n const page = parseInt(this.$route.query.page, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n /**\n * @descritption Initialize the active facets by checking the route parameters\n */\n initFacets() {\n const fields = this.$env.content.datasets.facets.defaultFacetOrder;\n const facetsFromRouteParams = this.facets;\n\n this.facetFields.push(...fields);\n\n // Get fields that don't exist in the router query\n const fieldsNotInRouterQuery = fields.filter(field => {\n const fieldExists = facetsFromRouteParams[field] && facetsFromRouteParams[field].length > 0;\n return !fieldExists && !this.$route.query[field];\n });\n\n // Construct route query parameters to be added\n const routeQueryParamsToBeAdded = fieldsNotInRouterQuery.reduce((acc, field) => {\n acc[field] = [];\n return acc;\n }, {});\n // Add the route query params that are missing\n if (Object.keys(routeQueryParamsToBeAdded) > 0) {\n this.$router.push({query: {...this.$route.query, ...routeQueryParamsToBeAdded}});\n }\n\n this.setFacets(facetsFromRouteParams);\n },\n\n\n getUrlFacetsOrDefault(field) {\n const urlFacets = this.$route.query[field];\n return Array.isArray(urlFacets) ? urlFacets : (urlFacets ? [urlFacets] : []);\n },\n\n initFacetOperator() {\n // Always set facet operator to AND when in catalog details mode\n if (this.showCatalogDetails) this.setFacetOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetOperator(op);\n }\n },\n initFacetGroupOperator() {\n // The facetGroupOperator should be the same as the facetOperator\n // Always set facet operator to AND when\n // in catalog details mode\n if (this.showCatalogDetails) this.setFacetGroupOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetGroupOperator(op);\n }\n },\n /**\n * @descritption Initialize the active data services facet by checking the route parameters\n */\n initDataServices() {\n const ds = this.$route.query.dataServices;\n if (ds === 'true' || ds === 'false') this.setDataServices(ds);\n else {\n this.setDataServices('false');\n }\n },\n initDatasets() {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.setPageCount(Math.ceil(this.getDatasetsCount / this.getLimit));\n this.$Progress.finish();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n })\n .catch((error) => {\n console.error(error)\n this.$Progress.fail();\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n });\n });\n },\n initInfiniteScrolling() {\n if (this.infiniteScrolling) window.addEventListener('scroll', this.onScroll);\n },\n getFileTypeColor(format) {\n return fileTypes.getFileTypeColor(format);\n },\n },\n watch: {\n // eslint-disable-next-line object-shorthand\n page(pageStr) {\n const page = parseInt(pageStr, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n dataScope: {\n handler() {\n this.initDataScope();\n },\n deep: true,\n },\n },\n created() {\n this.initDataScope();\n this.initLimit();\n this.initSort();\n this.initPage();\n this.initFacetOperator();\n this.initFacetGroupOperator();\n this.initDataServices();\n this.initFacets();\n this.initDatasets();\n this.initInfiniteScrolling();\n },\n mounted() {\n // This is supposed to fix the browser issue (https://gitlab.fokus.fraunhofer.de/piveau/organisation/piveau-scrum-board/-/issues/2344)\n if (this.$route.query.refresh === 'true') {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.$router.push({query: {locale: this.$route.query.locale}});\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n });\n }\n },\n beforeUnmount() {\n $('.tooltip').remove();\n if (this.infiniteScrolling) window.removeEventListener('scroll', this.onScroll);\n },\n setup() {\n useDatasetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n\n.alert-primary {\n color: #042648;\n background-color: #cddbe8;\n border-color: #baccdf;\n}\n\n.page-title {\n // maybe we can change custom theme h1 to 3rem\n font-size: 3rem;\n margin-bottom: 15px;\n}\n\n.content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n\n &:hover {\n color: #175baf;\n }\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n\n@media screen and (min-width: 768px) {\n #datasetFacets {\n display: block\n }\n}\n</style>\n"],"names":["_sfc_main","DatasetsFilters","DatasetsTopControls","AppLink","SelectedFacetsOverview","DatasetsFacets","Pagination","DatasetList","debounce","mapGetters","isNil","facetFields","wantsToLoadCatalogByParamOrProp","facetObj","acc","field","facet","isArray","mapActions","has","truncate","getTranslationFor","getImg","items","lastItem","limit","sort","value","page","fields","facetsFromRouteParams","routeQueryParamsToBeAdded","urlFacets","op","ds","$","error","format","fileTypes","pageStr","useDatasetsHead","_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_13","_hoisted_14","_openBlock","_createElementBlock","_createVNode","_component_datasets_top_controls","$options","_ctx","_createElementVNode","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","$data","_cache","$event","_hoisted_7","_hoisted_8","_createBlock","_component_datasets_facets","_component_datasets_filters","_normalizeClass","_hoisted_10","_hoisted_11","_createTextVNode","_component_app_link","_component_selectedFacetsOverview","_component_dataset_list","_hoisted_12","_component_pagination"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Datasets.vue.mjs","sources":["../../lib/datasets/Datasets.vue"],"sourcesContent":["<template>\n <div class=\"datasets-container d-flex flex-column p-0 bg-transparent\">\n <datasets-top-controls\n :facets=\"facets\"\n :getPage=\"getPage\"\n :getLimit=\"getLimit\"\n class=\"datasets-top-controls\"\n />\n <div class=\"container-fluid datasets content\">\n <slot name=\"title\">\n <h1 class=\"row col-12 page-title catalog-title text-primary\" v-if=\"showCatalogDetails\">\n {{ getTranslationFor(getCatalog.title, $route.query.locale, getCatalog.languages) }}</h1>\n <h1 class=\"row col-12 page-title text-primary\" v-else>{{ $t('message.header.navigation.data.datasets') }}</h1>\n </slot>\n <slot\n name=\"content\"\n :datasets-count=\"getDatasetsCount\"\n :datasets=\"getDatasets\"\n :locale=\"$route.query.locale\"\n :loading=\"getLoading\"\n :use-dataset-facets=\"useDatasetFacets\"\n :facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n <div class=\"row\">\n <div class=\"col d-flex d-md-none justify-content-end flex-wrap\">\n <button class=\"btn btn-primary mb-3 text-right text-white\" data-toggle=\"collapse\"\n data-target=\"#datasetFacets\" data-cy=\"btn-filter-toggle\"\n @click=\"filterCollapsed = !filterCollapsed\">\n <i class=\"material-icons small-icon align-bottom\" v-if=\"filterCollapsed\">arrow_drop_up</i>\n <i class=\"material-icons small-icon align-bottom\" v-else>arrow_drop_down</i>\n </button>\n </div>\n <datasets-facets\n v-if=\"useDatasetFacets\"\n class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\" id=\"datasetFacets\"\n :dataScope=\"dataScope\"\n :available-facets=\"getAllAvailableFacets\"\n ></datasets-facets>\n<!-- <facets-->\n<!-- :facetsConfig=\"getAllAvailableFacets\"-->\n<!-- :facetsIds=\"$env.content.datasets.facets.defaultFacetOrder\"-->\n<!-- class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\"-->\n<!-- id=\"datasetFacets\">-->\n<!-- </facets>-->\n <section class=\"col-md-9 col-12\">\n <slot name=\"datasets-filters\">\n <datasets-filters/>\n </slot>\n <slot name=\"datasets-found\" :data=\"{\n loading: getLoading,\n datasetsCount: getDatasetsCount,\n datasetsCountFormatted: getDatasetsCount.toLocaleString('fi'),\n loadingMessage: $t('message.datasets.loadingMessage'),\n countMessage: $t('message.datasets.countMessage'),\n }\">\n <div class=\"datasets-found alert alert-primary mt-3 d-flex flex-row\" role=\"status\"\n :class=\"{ 'alert-danger': getDatasetsCount <= 0 && !getLoading}\">\n <div>\n {{\n getLoading ? $t('message.datasets.loadingMessage') : `${getDatasetsCount.toLocaleString('fi')}\n ${$t('message.datasets.countMessage')}`\n }}\n </div>\n <div class=\"loading-spinner ml-3\" v-if=\"getLoading\"></div>\n </div>\n </slot>\n <div class=\"alert alert-warning mt-3 d-flex flex-row\" v-if=\"showScoreDisclaimer\">\n <span>\n {{ $t(\"message.datasets.scoreDisclaimer\") }}\n <app-link path=\"/mqa\" :query=\"{ locale: $route.query.locale }\" target=\"_blank\">\n <span>{{ $t(\"message.metadata.methodologyPage\") }}</span>\n </app-link>\n </span>\n </div>\n <!--\n <div class=\"alert alert-info mt-3\" v-if=\"getGeoBoundsById('modal-map')\">\n {{`${$t('message.datasets.geoBoundsMessagePre')}`}}<strong>{{getGeoBoundsById('modal-map')}}</strong>{{`. ${$t('message.datasets.geoBoundsMessageRemove')}`}}\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" @click=\"resetGeoBounds('modal-map'); loadDatasets({})\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n -->\n <selectedFacetsOverview\n v-if=\"getFacets\"\n :selected-facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n </selectedFacetsOverview>\n <template v-if=\"!getLoading\">\n <dataset-list :datasets=\"getDatasets\" :locale=\"$route.query.locale || 'en'\"></dataset-list>\n </template>\n <div class=\"loading-spinner mx-auto mt-3 mb-3\" v-if=\"getLoading\"></div>\n </section>\n </div>\n </slot>\n <div class=\"row\">\n <div class=\"column col-12 col-md-9 offset-md-3\">\n <pagination class=\"mt-3\"\n :items-count=\"getDatasetsCount\"\n :items-per-page=\"getLimit\"\n :get-page=\"getPage\"\n :get-page-count=\"getPageCount\"\n @setPageLimit=\"setPageLimit\"></pagination>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n /* eslint-disable no-undef */\n import { mapActions, mapGetters } from 'vuex';\n import {\n debounce,\n has,\n groupBy,\n uniqBy,\n toPairs,\n isArray,\n isNil,\n } from 'lodash-es';\n import $ from 'jquery';\n import fileTypes from '../utils/fileTypes';\n import Pagination from '../widgets/Pagination.vue';\n import SelectedFacetsOverview from '../facets/SelectedFacetsOverview';\n import AppLink from '../widgets/AppLink.vue';\n import { getTranslationFor, truncate, getImg } from '../utils/helpers';\n import DatasetsTopControls from \"../datasets/DatasetsTopControls.vue\";\n import DatasetsFilters from \"../datasets/DatasetsFilters.vue\";\n import DatasetList from './DatasetList.vue'\n import { useDatasetsHead } from '../composables/head'\n // import Facets from \"../facets_2.0/Facets.vue\"\n import DatasetsFacets from './datasetsFacets/DatasetsFacets.vue';\nexport default {\n name: 'Datasets',\n components: {\n DatasetsFilters,\n DatasetsTopControls,\n appLink: AppLink,\n selectedFacetsOverview: SelectedFacetsOverview,\n datasetsFacets: DatasetsFacets,\n pagination: Pagination,\n DatasetList,\n // Facets\n },\n props: {\n infiniteScrolling: {\n type: Boolean,\n default: false,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n }\n },\n data() {\n return {\n baseUrl: this.$env.api.baseUrl,\n debouncedOnBottomScroll: debounce(this.onBottomScroll, 500),\n facetFields: [],\n lang: this.locale,\n filterCollapsed: true,\n catalogAllowed: false,\n useDatasetFacets: this.$env.content.datasets.facets.useDatasetFacets\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getDatasets',\n 'getDatasetsCount',\n 'getLimit',\n 'getLoading',\n 'getOffset',\n 'getPage',\n 'getPageCount',\n 'getMinScoring',\n 'getMaxScoring'\n ]),\n ...mapGetters('datasets', {\n // Rename getters to something different because we'll perform some modifications on them.\n // These modifications involve removing catalog related information from facets for fixed catalog filter mode\n getAllAvailableFacetsOriginal: 'getAllAvailableFacets',\n getFacetsOriginal: 'getFacets',\n }),\n showCatalogDetails() {\n return !isNil(this.$route.params.ctlg_id) || this.fixedCatalogFilter;\n },\n /**\n * @description Returns the current page.\n * @returns {Number}\n *\n * @deprecated use getPage from datasets store instead\n */\n page() {\n return this.$route.query.page;\n },\n /**\n * @description Returns the active facets according to the route parameters.\n * @returns {Object}\n */\n facets() {\n const facetFields = this.$env.content.datasets.facets.defaultFacetOrder;\n const wantsToLoadCatalogByParamOrProp = this.showCatalogDetails;\n\n const facetObj = facetFields.reduce((acc, field) => {\n acc[field] = (wantsToLoadCatalogByParamOrProp && field === 'catalog' && !this.fixedCatalogFilter)\n ? [this.$route.params.ctlg_id || undefined]\n : this.getUrlFacetsOrDefault(field);\n\n return acc;\n }, {});\n\n // if fixedCatalogFilter is set, then set it as superCatalog\n // requirement by bayern\n const facetObjWithMaybeDefaultSuperCatalog = this.fixedCatalogFilter\n ? {\n ...facetObj,\n superCatalog: [this.fixedCatalogFilter],\n }\n : facetObj;\n\n return facetObjWithMaybeDefaultSuperCatalog;\n },\n\n getAllAvailableFacets() {\n return this.showCatalogDetails\n ? this.getAllAvailableFacetsOriginal.filter(facet => facet.id !== 'catalog')\n : this.getAllAvailableFacetsOriginal;\n },\n\n getFacets() {\n // Returns a record of facets with the catalog facet removed if we're in fixed catalog filter mode\n return this.showCatalogDetails\n ? {\n ...this.getFacetsOriginal,\n catalog: []\n }\n : this.getFacetsOriginal;\n },\n\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showScoreDisclaimer() {\n return this.getMinScoring > 0;\n },\n dataScope() {\n if (!this.$route.query.dataScope) return null;\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length > 0) return this.$route.query.dataScope[0];\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length === 0) return null;\n return this.$route.query.dataScope;\n },\n },\n methods: {\n isNil,\n ...mapActions('datasets', [\n 'loadDatasets',\n 'loadAdditionalDatasets',\n 'setPage',\n 'setSort',\n 'addFacet',\n 'removeFacet',\n 'setFacets',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setPageCount',\n 'setLimit',\n 'setLoading',\n 'setDataScope',\n 'setMaxScoring'\n ]),\n // The imported Lodash has function. Must be defined in Methods so we can use it in template\n has,\n isArray,\n truncate,\n getTranslationFor,\n getImg,\n /**\n * @description Handler-function for the scroll event.\n */\n onScroll() {\n const items = this.$el.querySelectorAll('.dataset');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const lastItemPos = lastItem.getBoundingClientRect();\n if (lastItemPos.bottom - window.innerHeight <= 0) {\n this.debouncedOnBottomScroll();\n }\n }\n },\n /**\n * @description Handler-function when bottom of the page is reached.\n */\n onBottomScroll() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadAdditionalDatasets()\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n initLimit() {\n const limit = parseInt(this.$route.query.limit, 10);\n if (limit > 0) this.setLimit(limit);\n },\n initMaxScoring() {\n const maxScoring = parseInt(this.$route.query.maxScoring, 10);\n if (maxScoring > 0) this.setMaxScoring(maxScoring);\n},\n initSort() {\n const sort = this.$route.query.sort;\n if (sort) this.setSort(sort);\n },\n setPageLimit(value) {\n this.setLimit(value);\n this.initDatasets();\n },\n initDataScope() {\n this.setDataScope(this.dataScope);\n },\n /**\n * @description Determines the current page.\n */\n initPage() {\n const page = parseInt(this.$route.query.page, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n /**\n * @descritption Initialize the active facets by checking the route parameters\n */\n initFacets() {\n const fields = this.$env.content.datasets.facets.defaultFacetOrder;\n const facetsFromRouteParams = this.facets;\n\n this.facetFields.push(...fields);\n\n // Get fields that don't exist in the router query\n const fieldsNotInRouterQuery = fields.filter(field => {\n const fieldExists = facetsFromRouteParams[field] && facetsFromRouteParams[field].length > 0;\n return !fieldExists && !this.$route.query[field];\n });\n\n // Construct route query parameters to be added\n const routeQueryParamsToBeAdded = fieldsNotInRouterQuery.reduce((acc, field) => {\n acc[field] = [];\n return acc;\n }, {});\n // Add the route query params that are missing\n if (Object.keys(routeQueryParamsToBeAdded) > 0) {\n this.$router.push({query: {...this.$route.query, ...routeQueryParamsToBeAdded}});\n }\n\n this.setFacets(facetsFromRouteParams);\n },\n\n\n getUrlFacetsOrDefault(field) {\n const urlFacets = this.$route.query[field];\n return Array.isArray(urlFacets) ? urlFacets : (urlFacets ? [urlFacets] : []);\n },\n\n initFacetOperator() {\n // Always set facet operator to AND when in catalog details mode\n if (this.showCatalogDetails) this.setFacetOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetOperator(op);\n }\n },\n initFacetGroupOperator() {\n // The facetGroupOperator should be the same as the facetOperator\n // Always set facet operator to AND when\n // in catalog details mode\n if (this.showCatalogDetails) this.setFacetGroupOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetGroupOperator(op);\n }\n },\n /**\n * @descritption Initialize the active data services facet by checking the route parameters\n */\n initDataServices() {\n const ds = this.$route.query.dataServices;\n if (ds === 'true' || ds === 'false') this.setDataServices(ds);\n else {\n this.setDataServices('false');\n }\n },\n initDatasets() {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.setPageCount(Math.ceil(this.getDatasetsCount / this.getLimit));\n this.$Progress.finish();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n })\n .catch((error) => {\n console.error(error)\n this.$Progress.fail();\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n });\n });\n },\n initInfiniteScrolling() {\n if (this.infiniteScrolling) window.addEventListener('scroll', this.onScroll);\n },\n getFileTypeColor(format) {\n return fileTypes.getFileTypeColor(format);\n },\n },\n watch: {\n // eslint-disable-next-line object-shorthand\n page(pageStr) {\n const page = parseInt(pageStr, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n dataScope: {\n handler() {\n this.initDataScope();\n },\n deep: true,\n },\n },\n created() {\n this.initDataScope();\n this.initLimit();\n this.initSort();\n this.initPage();\n this.initFacetOperator();\n this.initFacetGroupOperator();\n this.initDataServices();\n this.initFacets();\n this.initMaxScoring()\n this.initDatasets();\n this.initInfiniteScrolling();\n },\n mounted() {\n // This is supposed to fix the browser issue (https://gitlab.fokus.fraunhofer.de/piveau/organisation/piveau-scrum-board/-/issues/2344)\n if (this.$route.query.refresh === 'true') {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.$router.push({query: {locale: this.$route.query.locale}});\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n });\n }\n },\n beforeUnmount() {\n $('.tooltip').remove();\n if (this.infiniteScrolling) window.removeEventListener('scroll', this.onScroll);\n },\n setup() {\n useDatasetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n\n.alert-primary {\n color: #042648;\n background-color: #cddbe8;\n border-color: #baccdf;\n}\n\n.page-title {\n // maybe we can change custom theme h1 to 3rem\n font-size: 3rem;\n margin-bottom: 15px;\n}\n\n.content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n\n &:hover {\n color: #175baf;\n }\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n\n@media screen and (min-width: 768px) {\n #datasetFacets {\n display: block\n }\n}\n</style>\n"],"names":["_sfc_main","DatasetsFilters","DatasetsTopControls","AppLink","SelectedFacetsOverview","DatasetsFacets","Pagination","DatasetList","debounce","mapGetters","isNil","facetFields","wantsToLoadCatalogByParamOrProp","facetObj","acc","field","facet","isArray","mapActions","has","truncate","getTranslationFor","getImg","items","lastItem","limit","maxScoring","sort","value","page","fields","facetsFromRouteParams","routeQueryParamsToBeAdded","urlFacets","op","ds","$","error","format","fileTypes","pageStr","useDatasetsHead","_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_13","_hoisted_14","_openBlock","_createElementBlock","_createVNode","_component_datasets_top_controls","$options","_ctx","_createElementVNode","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","$data","_cache","$event","_hoisted_7","_hoisted_8","_createBlock","_component_datasets_facets","_component_datasets_filters","_normalizeClass","_hoisted_10","_hoisted_11","_createTextVNode","_component_app_link","_component_selectedFacetsOverview","_component_dataset_list","_hoisted_12","_component_pagination"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mapGetters as y, mapActions as C } from "vuex";
|
|
2
|
-
import { isNil as f, isArray as h, isObject as D, isString as E, has as q, isNumber as
|
|
3
|
-
import
|
|
2
|
+
import { isNil as f, isArray as h, isObject as D, isString as E, has as q, isNumber as M } from "lodash-es";
|
|
3
|
+
import R from "./DatasetsFacetsItem.vue.mjs";
|
|
4
4
|
import { getTranslationFor as k, getFacetTranslation as I } from "../../utils/helpers.mjs";
|
|
5
5
|
import P from "./DatasetsMapFacet.vue.mjs";
|
|
6
6
|
import $ from "../../facets/CatalogDetailsFacet.vue.mjs";
|
|
@@ -16,7 +16,7 @@ import "../../configurations/config-schema/languagesSchema.mjs";
|
|
|
16
16
|
import "../../configurations/config-schema/themesSchema.mjs";
|
|
17
17
|
import "../../configurations/config-schema/trackerSchema.mjs";
|
|
18
18
|
import "../../configurations/config-schema/configSchema.mjs";
|
|
19
|
-
import { resolveComponent as u, openBlock as
|
|
19
|
+
import { resolveComponent as u, openBlock as n, createElementBlock as d, createElementVNode as m, renderSlot as T, createVNode as v, createTextVNode as l, createBlock as p, createCommentVNode as g, Fragment as L, renderList as B, normalizeClass as j } from "vue";
|
|
20
20
|
import "vue-router";
|
|
21
21
|
import "vue-i18n";
|
|
22
22
|
import { useDatasetsFacetsHead as U } from "../../composables/head/useDatasetsFacetsHead.mjs";
|
|
@@ -28,7 +28,7 @@ const N = {
|
|
|
28
28
|
SettingsFacet: G,
|
|
29
29
|
CatalogDetailsFacet: $,
|
|
30
30
|
DatasetsMapFacet: P,
|
|
31
|
-
DatasetsFacetsItem:
|
|
31
|
+
DatasetsFacetsItem: R
|
|
32
32
|
},
|
|
33
33
|
props: {
|
|
34
34
|
dataScope: {
|
|
@@ -129,8 +129,8 @@ const N = {
|
|
|
129
129
|
const t = this.resolvedAvailableFacets, e = [], a = [];
|
|
130
130
|
let o = Object.keys(this.getFacets).filter((s) => this.getFacets[s].length > 0);
|
|
131
131
|
this.defaultFacetOrder.forEach((s) => {
|
|
132
|
-
t.forEach((
|
|
133
|
-
s ===
|
|
132
|
+
t.forEach((c) => {
|
|
133
|
+
s === c.id && c.items.length > 0 && (o.includes(c.id) ? e.push(c) : a.push(c));
|
|
134
134
|
});
|
|
135
135
|
});
|
|
136
136
|
const r = e.concat(a);
|
|
@@ -157,7 +157,7 @@ const N = {
|
|
|
157
157
|
isString: E,
|
|
158
158
|
has: q,
|
|
159
159
|
isNil: f,
|
|
160
|
-
isNumber:
|
|
160
|
+
isNumber: M,
|
|
161
161
|
getTranslationFor: k,
|
|
162
162
|
getFacetTranslation: I,
|
|
163
163
|
...C("catalogDetails", [
|
|
@@ -207,8 +207,8 @@ const N = {
|
|
|
207
207
|
facetIsSelected(t, e) {
|
|
208
208
|
const a = e.id;
|
|
209
209
|
if (t === "scoring") {
|
|
210
|
-
const r = parseInt(this.getMinScoring, 10), s = this.$route.query[t];
|
|
211
|
-
return !
|
|
210
|
+
const r = parseInt(this.getMinScoring, 10), s = this.getMaxScoring, c = this.$route.query[t];
|
|
211
|
+
return !c || !r ? e.minScoring === 0 : c && r === e.minScoring && s === e.maxScoring;
|
|
212
212
|
}
|
|
213
213
|
if (!Object.prototype.hasOwnProperty.call(this.$route.query, t))
|
|
214
214
|
return !1;
|
|
@@ -325,30 +325,30 @@ const N = {
|
|
|
325
325
|
setup() {
|
|
326
326
|
U();
|
|
327
327
|
}
|
|
328
|
-
}, Q = { class: "container dataset-facets" },
|
|
328
|
+
}, Q = { class: "container dataset-facets" }, x = { class: "row mx-3 mr-md-0" }, V = { class: "col" }, X = {
|
|
329
329
|
key: 1,
|
|
330
330
|
class: "row h5 font-weight-bold mt-4 mb-3"
|
|
331
331
|
};
|
|
332
332
|
function z(t, e, a, o, r, s) {
|
|
333
|
-
const
|
|
334
|
-
return
|
|
335
|
-
m("div",
|
|
333
|
+
const c = u("datasets-map-facet"), O = u("catalog-details-facet"), b = u("settings-facet"), F = u("radio-facet"), _ = u("select-facet"), w = u("pv-show-more"), A = u("pv-button");
|
|
334
|
+
return n(), d("div", Q, [
|
|
335
|
+
m("div", x, [
|
|
336
336
|
T(t.$slots, "content", { facets: s.getSortedFacets }, () => [
|
|
337
|
-
m("div",
|
|
338
|
-
v(
|
|
337
|
+
m("div", V, [
|
|
338
|
+
v(c, { showCatalogDetails: r.showCatalogDetails }, null, 8, ["showCatalogDetails"]),
|
|
339
339
|
e[2] || (e[2] = l()),
|
|
340
|
-
r.showCatalogDetails ? (
|
|
340
|
+
r.showCatalogDetails ? (n(), p(O, {
|
|
341
341
|
key: 0,
|
|
342
342
|
class: "catalog-details",
|
|
343
343
|
catalog: r.catalog,
|
|
344
344
|
catalogLanguageIds: s.catalogLanguageIds
|
|
345
345
|
}, null, 8, ["catalog", "catalogLanguageIds"])) : g("", !0),
|
|
346
346
|
e[3] || (e[3] = l()),
|
|
347
|
-
r.showFacetsTitle ? (
|
|
347
|
+
r.showFacetsTitle ? (n(), d("span", X, "Filter by")) : g("", !0),
|
|
348
348
|
e[4] || (e[4] = l()),
|
|
349
349
|
v(b, { class: "row facet-field mb-3" }),
|
|
350
350
|
e[5] || (e[5] = l()),
|
|
351
|
-
(
|
|
351
|
+
(n(!0), d(L, null, B(s.getSortedFacets, (i, S) => (n(), d("div", {
|
|
352
352
|
class: j(["row facet-field mb-3", { "mt-3": S > 0 }]),
|
|
353
353
|
key: `facet@${i.id}`
|
|
354
354
|
}, [
|
|
@@ -363,7 +363,7 @@ function z(t, e, a, o, r, s) {
|
|
|
363
363
|
facetClicked: s.facetClicked,
|
|
364
364
|
isMultiSelect: s.isMultiSelect
|
|
365
365
|
}, () => [
|
|
366
|
-
i.id === "dataServices" ? (
|
|
366
|
+
i.id === "dataServices" ? (n(), p(F, {
|
|
367
367
|
key: 0,
|
|
368
368
|
title: r.dataServices.title,
|
|
369
369
|
property: r.dataServices.property,
|
|
@@ -374,7 +374,7 @@ function z(t, e, a, o, r, s) {
|
|
|
374
374
|
change: s.changeDataServices
|
|
375
375
|
}, null, 8, ["title", "property", "toolTipTitle", "optionLabels", "initialOption", "change"])) : g("", !0),
|
|
376
376
|
e[0] || (e[0] = l()),
|
|
377
|
-
i.id === "superCatalog" ? (
|
|
377
|
+
i.id === "superCatalog" ? (n(), p(F, {
|
|
378
378
|
key: 1,
|
|
379
379
|
title: r.erpd.title,
|
|
380
380
|
property: r.erpd.property,
|
|
@@ -385,7 +385,7 @@ function z(t, e, a, o, r, s) {
|
|
|
385
385
|
change: s.changeErpd
|
|
386
386
|
}, null, 8, ["title", "property", "toolTipTitle", "optionLabels", "initialOption", "change"])) : g("", !0),
|
|
387
387
|
e[1] || (e[1] = l()),
|
|
388
|
-
i.id !== "superCatalog" && i.id !== "dataServices" ? (
|
|
388
|
+
i.id !== "superCatalog" && i.id !== "dataServices" ? (n(), p(_, {
|
|
389
389
|
key: 2,
|
|
390
390
|
fieldId: i.id,
|
|
391
391
|
header: s.facetTitle(i.id),
|
|
@@ -401,7 +401,7 @@ function z(t, e, a, o, r, s) {
|
|
|
401
401
|
], 2))), 128)),
|
|
402
402
|
e[6] || (e[6] = l()),
|
|
403
403
|
m("div", null, [
|
|
404
|
-
s.showMoreFacetsShown ? (
|
|
404
|
+
s.showMoreFacetsShown ? (n(), p(w, {
|
|
405
405
|
key: 0,
|
|
406
406
|
label: r.cutoff >= 0 ? t.$t("message.datasetFacets.moreFilters") : t.$t("message.datasetFacets.lessFilters"),
|
|
407
407
|
upArrow: r.cutoff === -1,
|
|
@@ -410,7 +410,7 @@ function z(t, e, a, o, r, s) {
|
|
|
410
410
|
}, null, 8, ["label", "upArrow", "action"])) : g("", !0)
|
|
411
411
|
]),
|
|
412
412
|
e[7] || (e[7] = l()),
|
|
413
|
-
r.showClearButton ? (
|
|
413
|
+
r.showClearButton ? (n(), p(A, {
|
|
414
414
|
key: 2,
|
|
415
415
|
label: "Clear filters",
|
|
416
416
|
class: "row mt-5 facets-clear",
|
|
@@ -421,7 +421,7 @@ function z(t, e, a, o, r, s) {
|
|
|
421
421
|
])
|
|
422
422
|
]);
|
|
423
423
|
}
|
|
424
|
-
const yt = /* @__PURE__ */ W(N, [["render", z], ["__scopeId", "data-v-
|
|
424
|
+
const yt = /* @__PURE__ */ W(N, [["render", z], ["__scopeId", "data-v-0fcb8fe1"]]);
|
|
425
425
|
export {
|
|
426
426
|
yt as default
|
|
427
427
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetsFacets.vue.mjs","sources":["../../../lib/datasets/datasetsFacets/DatasetsFacets.vue"],"sourcesContent":["<template>\n <div class=\"container dataset-facets\">\n <div class=\"row mx-3 mr-md-0\">\n <slot :facets=\"getSortedFacets\" name=\"content\">\n <div class=\"col\">\n <datasets-map-facet :showCatalogDetails=\"showCatalogDetails\" />\n <catalog-details-facet class=\"catalog-details\" v-if=\"showCatalogDetails\" :catalog=\"catalog\"\n :catalogLanguageIds=\"catalogLanguageIds\" />\n <span v-if=\"showFacetsTitle\" class=\"row h5 font-weight-bold mt-4 mb-3\">Filter by</span>\n <settings-facet class=\"row facet-field mb-3\" />\n <div class=\"row facet-field mb-3\" v-for=\"(field, index) in getSortedFacets\" :key=\"`facet@${field.id}`\"\n :class=\"{ 'mt-3': (index > 0) }\">\n <slot\n name=\"facet\"\n :field=\"field\"\n :index=\"index\"\n :facetTitle=\"facetTitle\"\n :sortByCount=\"sortByCount\"\n :getFacetTranslationWrapper=\"getFacetTranslationWrapper\"\n :tooltip=\"tooltip\"\n :facetIsSelected=\"facetIsSelected\"\n :facetClicked=\"facetClicked\"\n :isMultiSelect=\"isMultiSelect\"\n >\n <radio-facet v-if=\"(field.id === 'dataServices')\" :title=\"dataServices.title\"\n :property=\"dataServices.property\" :toolTipTitle=\"dataServices.toolTipTitle\" :optionIds=\"['true', 'false']\"\n :optionLabels=\"[dataServices.yes, dataServices.no]\" :initialOption=\"getDataServices\"\n :change=\"changeDataServices\" />\n <radio-facet v-if=\"(field.id === 'superCatalog')\" :title=\"erpd.title\" :property=\"erpd.property\"\n :toolTipTitle=\"erpd.toolTipTitle\" :optionIds=\"['true', 'false']\" :optionLabels=\"[erpd.yes, erpd.no]\"\n :initialOption=\"isErdp\" :change=\"changeErpd\" />\n <select-facet v-if=\"(field.id !== 'superCatalog' && field.id !== 'dataServices')\" :fieldId=\"field.id\"\n :header=\"facetTitle(field.id)\" :items=\"sortByCount(field.items, field.id)\" :toolTipTitle=\"tooltip(field.id)\"\n :getFacetTranslationWrapper=\"getFacetTranslationWrapper\" :facetIsSelected=\"facetIsSelected\"\n :facetClicked=\"facetClicked\" :multiSelect=\"isMultiSelect(field.id)\" class=\"col pr-0\" />\n </slot>\n </div>\n <div>\n <pv-show-more v-if=\"showMoreFacetsShown\"\n :label=\"cutoff >= 0 ? $t('message.datasetFacets.moreFilters') : $t('message.datasetFacets.lessFilters')\"\n :upArrow=\"cutoff === -1\" :action=\"toggleCutoff\" class=\"p-0 row facets-show-more\" />\n </div>\n <pv-button v-if=\"showClearButton\" label=\"Clear filters\" class=\"row mt-5 facets-clear\" :action=\"clearFacets\" />\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport {\n isObject,\n isArray,\n isString,\n has,\n isNil,\n isNumber,\n} from 'lodash-es';\nimport DatasetsFacetsItem from './DatasetsFacetsItem.vue';\nimport { getTranslationFor, getFacetTranslation } from '../../utils/helpers';\nimport DatasetsMapFacet from \"../../datasets/datasetsFacets/DatasetsMapFacet.vue\";\nimport CatalogDetailsFacet from \"../../facets/CatalogDetailsFacet.vue\";\nimport SettingsFacet from \"../../datasets/datasetsFacets/SettingsFacet.vue\";\nimport { useDatasetsFacetsHead } from '../../composables/head';\n\nexport default {\n name: 'datasetsFacets',\n components: {\n SettingsFacet,\n CatalogDetailsFacet,\n DatasetsMapFacet,\n DatasetsFacetsItem\n },\n props: {\n dataScope: {\n type: String,\n default: null,\n },\n availableFacets: {\n type: Array,\n default: null,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n cutoff: this.$env.content.datasets.facets.cutoff,\n showClearButton: this.$env.content.datasets.facets.showClearButton,\n showFacetsTitle: this.$env.content.datasets.facets.showFacetsTitle,\n defaultFacetOrder: this.$env.content.datasets.facets.defaultFacetOrder,\n useScoringFacets: this.$env.content.datasets.facets.scoringFacets.useScoringFacets,\n useDataScopeFacets: isNil(this.$route.params.ctlg_id),\n showCatalogDetails: false,\n catalog: {},\n MIN_FACET_LIMIT: this.$env.content.datasets.facets.MIN_FACET_LIMIT,\n MAX_FACET_LIMIT: this.$env.content.datasets.facets.MAX_FACET_LIMIT,\n FACET_OPERATORS: this.$env.content.datasets.facets.FACET_OPERATORS,\n FACET_GROUP_OPERATORS: this.$env.content.datasets.facets.FACET_GROUP_OPERATORS,\n dataServices: {\n yes: this.i18n.global.t('message.metadata.yes'),\n no: this.i18n.global.t('message.metadata.no'),\n property: this.i18n.global.t('message.datasetFacets.facets.dataServices.dataServicesOnly'),\n title: this.i18n.global.t('message.metadata.dataServices'),\n toolTipTitle: this.i18n.global.t('message.helpIcon.dataServices'),\n },\n erpd: {\n yes: this.i18n.global.t('message.metadata.yes'),\n no: this.i18n.global.t('message.metadata.no'),\n property: this.i18n.global.t('message.datasetFacets.facets.erpdOnly'),\n title: this.i18n.global.t('message.metadata.erpd'),\n // toolTipTitle: \"TOOLTIP\",//this.i18n.global.t('message.helpIcon.dataServices'),\n }\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getAllAvailableFacets',\n 'getDatasetsCount',\n 'getFacets',\n 'getFacetOperator',\n 'getFacetGroupOperator',\n 'getDataServices',\n 'getLimit',\n 'getMinScoring',\n 'getPage',\n 'getDatasetGeoBounds',\n 'getScoringFacets',\n ]),\n resolvedAvailableFacets() {\n /** this.availableFacets is a prop, currently not used\n * this.getAllAvailableFacets takes the facet status from the store.\n * The facet store status is set in Datasets.vue::created. It uses the config array\n * content.datasets.facets.defaultFacetOrder */\n return this.availableFacets || this.getAllAvailableFacets;\n },\n datasetBoundsWatcher() {\n return this.getDatasetGeoBounds;\n },\n facetGroupOperatorWatcher() {\n return this.getFacetGroupOperator;\n },\n // dataServicesWatcher() {\n // return this.getDataServices;\n // },\n // catalogWatcher() {\n // return this.getCatalog;\n // },\n // showCatalogDetailsWatcher() {\n // return !isNil(this.$route.params.ctlg_id);\n // },\n useCatalogFacets() {\n return !this.showCatalogDetails;\n },\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showMoreFacetsShown() {\n return this.$env.content.datasets.facets.cutoff > 0 && this.$env.content.datasets.facets.cutoff < this.getAllVisibleFacets.length;\n },\n getAllVisibleFacets() {\n return this.resolvedAvailableFacets.filter(facet => facet.items.length > 0);\n },\n getSortedFacets() {\n const availableFacets = this.resolvedAvailableFacets;\n const activeFacets = [];\n const inactiveFacets = [];\n let activeFields = Object.keys(this.getFacets).filter(key => this.getFacets[key].length > 0);\n this.defaultFacetOrder.forEach((facet) => {\n availableFacets.forEach((field) => {\n // if (facet === field.id && field.items.length > 0\n // && (field.id !== 'country' || this.dataScope || this.$route.path === '/catalogues/erpd' || this.$route.query.superCatalog === 'erpd')\n // && (field.id !== 'catalog' || this.useCatalogFacets)\n // && (field.id !== 'scoring' || this.useScoringFacets)\n // && (field.id !== 'dataScope' || this.useDataScopeFacets)) {\n // if(activeFields.includes(field.id))\n // activeFacets.push(field);\n // else\n // inactiveFacets.push(field);\n // }\n if (facet === field.id && field.items.length > 0) {\n if (activeFields.includes(field.id))\n activeFacets.push(field);\n else\n inactiveFacets.push(field);\n }\n });\n });\n const sortedFacets = activeFacets.concat(inactiveFacets);\n if (this.cutoff > 0) {\n if (this.cutoff < activeFacets.length) this.cutoff = activeFacets.length;\n return sortedFacets.slice(0, this.cutoff);\n } else {\n return sortedFacets;\n }\n },\n // Returns the current catalog's available language ids\n // example: ['en', 'de', 'sv']\n catalogLanguageIds() {\n const languages = this.getCatalog && this.getCatalog.languages;\n if (!isArray(languages)) return [];\n return languages\n .map(lang => lang && lang.id)\n .filter(lang => lang);\n },\n isErdp() {\n if (this.$route.path === '/catalogues/erpd') {\n return 'true';\n } else {\n // if (this.$route.path.startsWith('/datasets')) {\n const superCatalogs = this.getFacets.superCatalog;\n return (superCatalogs && superCatalogs[0] === 'erpd') ? 'true' : 'false'\n }\n // return 'false';\n }\n },\n methods: {\n isObject,\n isArray,\n isString,\n has,\n isNil,\n isNumber,\n getTranslationFor,\n getFacetTranslation,\n ...mapActions('catalogDetails', [\n 'loadCatalog',\n ]),\n ...mapActions('datasets', [\n 'addFacet',\n 'removeFacet',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setSuperCatalogue_DEPRECATED', // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n 'setPage',\n 'setPageCount',\n 'setMinScoring',\n ]),\n toggleCutoff() {\n this.cutoff = this.cutoff >= 0 ? -1 : this.$env.content.datasets.facets.cutoff;\n },\n facetTitle(fieldId) {\n\n // if(fieldId==='scoring'){\n // return Vue.i18n.t('message.header.navigation.data.metadataquality')\n // }else if(fieldId==='subject'){\n // return 'EuroVoc keywords'\n // }else{\n // return Vue.i18n.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`)\n // }\n\n return fieldId === 'scoring' ?\n this.i18n.global.t('message.header.navigation.data.metadataquality')\n : this.i18n.global.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\n },\n tooltip(fieldId) {\n return fieldId === 'dataScope' ? this.i18n.global.t('message.helpIcon.dataScope') : this.i18n.global.t(`message.helpIcon.${fieldId.toLowerCase()}`);\n },\n getFacetTranslationWrapper(fieldId, facetId, userLocale, fallback) {\n return fieldId === 'scoring'\n ? this.$t(`message.datasetFacets.facets.scoring.${facetId}`)\n : this.getFacetTranslation(fieldId, facetId, userLocale, fallback);\n },\n sortByCount(items, fieldId) {\n if (fieldId === 'scoring' || fieldId === 'dataScope') return items;\n return items.slice().sort((a, b) => {\n const n = b.count - a.count;\n if (n !== 0) return b.count - a.count;\n if (a.name < b.name) return -1;\n return 1;\n });\n },\n setRouteQuery(query, mode) {\n if (mode === \"replace\") {\n return this.$router.replace(\n { query: Object.assign({}, this.$route.query, query) }\n ).catch(\n error => { console.error(error); }\n );\n } else {\n return this.$router.push(\n { query: Object.assign({}, this.$route.query, query) }\n ).catch(\n error => { console.error(error); }\n );\n }\n },\n facetIsSelected(fieldId, item) {\n const facet = item.id;\n if (fieldId === 'scoring') {\n const qMinScoring = parseInt(this.getMinScoring, 10);\n const minScoringIsSelected = this.$route.query[fieldId];\n if (!minScoringIsSelected || !qMinScoring) return item.minScoring === 0;\n return minScoringIsSelected && qMinScoring === item.minScoring;\n }\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, fieldId)) {\n return false;\n }\n if (fieldId === 'dataScope') return this.$route.query.dataScope === facet;\n let qField = this.$route.query[fieldId];\n if (!Array.isArray(qField)) qField = [qField];\n if (fieldId === 'categories') {\n // Ignore Case for categories\n facet.toUpperCase();\n qField = qField.map(f => f.toUpperCase());\n }\n\n return qField.indexOf(facet) > -1;\n },\n facetClicked(field, item) {\n \n const facet = item.id;\n if (field === \"dataScope\") {\n this.dataScopeFacetClicked(facet);\n } else {\n if (field === 'scoring') this.scoringFacetClicked(item);\n\n //filtering dataScope when provenance is selected\n if (field === 'country') {\n if (facet === 'eu') {\n this.$route.query.dataScope = 'eu'\n } else if (facet === 'io') {\n this.$route.query.dataScope = 'io'\n } else {\n this.$route.query.dataScope = 'countryData'\n }\n }\n this.toggleFacet(field, facet);\n }\n },\n \n toggleFacet(field, facet) {\n \n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n this.setRouteQuery({ [field]: [], page: 1 });\n }\n let facets = this.$route.query?.[field]?.slice();\n if (!facets) facets = [];\n if (!Array.isArray(facets)) facets = [facets];\n if (field === 'categories') {\n // Ignore Case for categories\n facet.toUpperCase();\n facets = facets.map(f => f.toUpperCase());\n }\n if (field === 'scoring') {\n // Empty facets as scoring facets are disjoint\n facets = (facet === 'badScoring') ? [] : [facet];\n } else {\n \n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n }\n \n return this.setRouteQuery({ [field]: facets, page: 1 });\n \n },\n clearFacets() {\n if (Object.keys(this.$route.query).some(key => (key !== 'locale' && key !== 'page') && this.$route.query[key].length)) {\n this.setMinScoring(0);\n this.$router.push({ query: { locale: this.$i18n.locale, page: \"1\" } })\n .catch(error => { console.error(error); });\n }\n sessionStorage.clear();\n },\n dataScopeFacetClicked(dataScope) {\n if (this.$route.query.dataScope === dataScope) {\n this.setRouteQuery({ dataScope: [], country: [], page: 1 });\n } else {\n const country = [];\n country.push(dataScope);\n this.setRouteQuery({ dataScope, country, page: 1 });\n }\n },\n scoringFacetClicked(item) {\n let newScoring = item.minScoring;\n if (newScoring === this.getMinScoring) newScoring = 0;\n this.setMinScoring(newScoring);\n this.resetPage();\n window.scrollTo(0, 0);\n },\n toggleFacetGroupOperator() {\n let op = this.getFacetGroupOperator;\n op = op === this.FACET_GROUP_OPERATORS.and ? this.FACET_GROUP_OPERATORS.or : this.FACET_GROUP_OPERATORS.and;\n this.setFacetGroupOperator(op);\n },\n changeDataServices(dataServices) {\n this.setDataServices(dataServices);\n // this.setRouteQuery({ dataServices: (dataServices ? 'true' : undefined), page: 1 });\n const query = Object.assign({}, this.$route.query, { dataServices, page: 1 });\n if (dataServices === 'false') {\n delete query.dataServices;\n }\n this.$router.replace({ query });\n },\n changeErpd(erpd) {\n if (this.$route.path === '/catalogues/erpd') {\n const query = Object.assign({}, this.$route.query, { page: 1 });\n this.$router.replace({\n path: '/datasets',\n query\n });\n } else {\n const superCatalog = erpd === 'true' ? 'erpd' : 'false';\n const query = Object.assign({}, this.$route.query, { superCatalog, page: 1 });\n if (superCatalog === 'false') {\n delete query.superCatalog;\n }\n this.$router.replace({ query });\n }\n },\n resetPage() {\n this.setRouteQuery({ page: 1 }, \"replace\");\n },\n getFacetCount(field, facet) {\n if (field.id === 'scoring') return '';\n return facet.count;\n },\n initShowCatalogDetails() {\n const showCatalogDetails = !isNil(this.$route.params.ctlg_id);\n if (showCatalogDetails === true) {\n this.showCatalogDetails = true;\n this.loadCatalog(this.$route.params.ctlg_id);\n } else this.showCatalogDetails = false;\n },\n initMinScoring() {\n let currentScoring = this.$route.query.scoring;\n currentScoring = isArray(currentScoring) && currentScoring.length > 0\n ? currentScoring[0]\n : isArray(currentScoring) && currentScoring.length === 0\n ? ''\n : currentScoring;\n if (currentScoring) {\n let scoringFacets = this.$env.content.datasets.facets.scoringFacets.defaultScoringFacets;\n Object.keys(scoringFacets).forEach(score => {\n if (score === currentScoring) {\n this.setMinScoring(scoringFacets[score].minScoring);\n }\n });\n } else {\n this.setMinScoring(0);\n }\n },\n isMultiSelect(fieldID) {\n return fieldID !== 'scoring';\n }\n },\n watch: {\n facetGroupOperatorWatcher: {\n handler(facetGroupOperator) {\n this.setRouteQuery({ facetGroupOperator }, \"replace\");\n },\n },\n // getDataServices(dataServices) {\n // this.$router.replace(\n // { query: Object.assign({}, this.$route.query, { dataServices }) }\n // ).catch(\n // error => { console.error(error); }\n // );\n // },\n '$route.params.ctlg_id'(showCatalogDetails) {\n this.showCatalogDetails = showCatalogDetails;\n },\n getDatasetGeoBounds(bounds) {\n this.bounds = bounds\n },\n getCatalog(catalog) {\n this.catalog = catalog;\n },\n },\n created() {\n this.initShowCatalogDetails();\n this.initMinScoring();\n for (var i in sessionStorage) {\n if (sessionStorage.length > 0 && i == \"Filter\") this.toggleCutoff();\n }\n },\n setup() {\n useDatasetsFacetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.facet:hover {\n cursor: pointer;\n}\n\n.custom-control {\n padding-left: 1.5rem;\n margin-right: 1rem;\n}\n\n.custom-control-label {\n &::before {\n left: -1.5rem !important;\n }\n\n &::after {\n left: -1.5rem !important;\n }\n}\n\n.custom-control-input:checked~.custom-control-label::before {\n border-color: var(--primary);\n background-color: var(--primary);\n}\n\n.active {\n background-color: var(--primary);\n border-color: var(--primary);\n}\n\n.io {\n border: 0 !important;\n margin-bottom: 3px;\n opacity: 0.8;\n}\n\n.dropdown-menu.show {\n transform: translate3d(0px, 15px, 0px) !important;\n width: max-content;\n display: block;\n\n}\n</style>\n"],"names":["_sfc_main","SettingsFacet","CatalogDetailsFacet","DatasetsMapFacet","DatasetsFacetsItem","isNil","mapGetters","facet","availableFacets","activeFacets","inactiveFacets","activeFields","key","field","sortedFacets","languages","isArray","lang","superCatalogs","isObject","isString","has","isNumber","getTranslationFor","getFacetTranslation","mapActions","fieldId","facetId","userLocale","fallback","items","b","query","mode","error","item","qMinScoring","minScoringIsSelected","qField","f","facets","_b","_a","index","dataScope","country","newScoring","op","dataServices","erpd","superCatalog","currentScoring","scoringFacets","score","fieldID","facetGroupOperator","showCatalogDetails","bounds","catalog","i","useDatasetsFacetsHead","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","$options","_createVNode","_component_datasets_map_facet","$data","_createBlock","_component_catalog_details_facet","_hoisted_4","_component_settings_facet","_Fragment","_renderList","_normalizeClass","_component_radio_facet","_component_select_facet","_component_pv_show_more","_component_pv_button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetsFacets.vue.mjs","sources":["../../../lib/datasets/datasetsFacets/DatasetsFacets.vue"],"sourcesContent":["<template>\n <div class=\"container dataset-facets\">\n <div class=\"row mx-3 mr-md-0\">\n <slot :facets=\"getSortedFacets\" name=\"content\">\n <div class=\"col\">\n <datasets-map-facet :showCatalogDetails=\"showCatalogDetails\" />\n <catalog-details-facet class=\"catalog-details\" v-if=\"showCatalogDetails\" :catalog=\"catalog\"\n :catalogLanguageIds=\"catalogLanguageIds\" />\n <span v-if=\"showFacetsTitle\" class=\"row h5 font-weight-bold mt-4 mb-3\">Filter by</span>\n <settings-facet class=\"row facet-field mb-3\" />\n <div class=\"row facet-field mb-3\" v-for=\"(field, index) in getSortedFacets\" :key=\"`facet@${field.id}`\"\n :class=\"{ 'mt-3': (index > 0) }\">\n <slot\n name=\"facet\"\n :field=\"field\"\n :index=\"index\"\n :facetTitle=\"facetTitle\"\n :sortByCount=\"sortByCount\"\n :getFacetTranslationWrapper=\"getFacetTranslationWrapper\"\n :tooltip=\"tooltip\"\n :facetIsSelected=\"facetIsSelected\"\n :facetClicked=\"facetClicked\"\n :isMultiSelect=\"isMultiSelect\"\n >\n <radio-facet v-if=\"(field.id === 'dataServices')\" :title=\"dataServices.title\"\n :property=\"dataServices.property\" :toolTipTitle=\"dataServices.toolTipTitle\" :optionIds=\"['true', 'false']\"\n :optionLabels=\"[dataServices.yes, dataServices.no]\" :initialOption=\"getDataServices\"\n :change=\"changeDataServices\" />\n <radio-facet v-if=\"(field.id === 'superCatalog')\" :title=\"erpd.title\" :property=\"erpd.property\"\n :toolTipTitle=\"erpd.toolTipTitle\" :optionIds=\"['true', 'false']\" :optionLabels=\"[erpd.yes, erpd.no]\"\n :initialOption=\"isErdp\" :change=\"changeErpd\" />\n <select-facet v-if=\"(field.id !== 'superCatalog' && field.id !== 'dataServices')\" :fieldId=\"field.id\"\n :header=\"facetTitle(field.id)\" :items=\"sortByCount(field.items, field.id)\" :toolTipTitle=\"tooltip(field.id)\"\n :getFacetTranslationWrapper=\"getFacetTranslationWrapper\" :facetIsSelected=\"facetIsSelected\"\n :facetClicked=\"facetClicked\" :multiSelect=\"isMultiSelect(field.id)\" class=\"col pr-0\" />\n </slot>\n </div>\n <div>\n <pv-show-more v-if=\"showMoreFacetsShown\"\n :label=\"cutoff >= 0 ? $t('message.datasetFacets.moreFilters') : $t('message.datasetFacets.lessFilters')\"\n :upArrow=\"cutoff === -1\" :action=\"toggleCutoff\" class=\"p-0 row facets-show-more\" />\n </div>\n <pv-button v-if=\"showClearButton\" label=\"Clear filters\" class=\"row mt-5 facets-clear\" :action=\"clearFacets\" />\n </div>\n </slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport {\n isObject,\n isArray,\n isString,\n has,\n isNil,\n isNumber,\n} from 'lodash-es';\nimport DatasetsFacetsItem from './DatasetsFacetsItem.vue';\nimport { getTranslationFor, getFacetTranslation } from '../../utils/helpers';\nimport DatasetsMapFacet from \"../../datasets/datasetsFacets/DatasetsMapFacet.vue\";\nimport CatalogDetailsFacet from \"../../facets/CatalogDetailsFacet.vue\";\nimport SettingsFacet from \"../../datasets/datasetsFacets/SettingsFacet.vue\";\nimport { useDatasetsFacetsHead } from '../../composables/head';\n\nexport default {\n name: 'datasetsFacets',\n components: {\n SettingsFacet,\n CatalogDetailsFacet,\n DatasetsMapFacet,\n DatasetsFacetsItem\n },\n props: {\n dataScope: {\n type: String,\n default: null,\n },\n availableFacets: {\n type: Array,\n default: null,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n cutoff: this.$env.content.datasets.facets.cutoff,\n showClearButton: this.$env.content.datasets.facets.showClearButton,\n showFacetsTitle: this.$env.content.datasets.facets.showFacetsTitle,\n defaultFacetOrder: this.$env.content.datasets.facets.defaultFacetOrder,\n useScoringFacets: this.$env.content.datasets.facets.scoringFacets.useScoringFacets,\n useDataScopeFacets: isNil(this.$route.params.ctlg_id),\n showCatalogDetails: false,\n catalog: {},\n MIN_FACET_LIMIT: this.$env.content.datasets.facets.MIN_FACET_LIMIT,\n MAX_FACET_LIMIT: this.$env.content.datasets.facets.MAX_FACET_LIMIT,\n FACET_OPERATORS: this.$env.content.datasets.facets.FACET_OPERATORS,\n FACET_GROUP_OPERATORS: this.$env.content.datasets.facets.FACET_GROUP_OPERATORS,\n dataServices: {\n yes: this.i18n.global.t('message.metadata.yes'),\n no: this.i18n.global.t('message.metadata.no'),\n property: this.i18n.global.t('message.datasetFacets.facets.dataServices.dataServicesOnly'),\n title: this.i18n.global.t('message.metadata.dataServices'),\n toolTipTitle: this.i18n.global.t('message.helpIcon.dataServices'),\n },\n erpd: {\n yes: this.i18n.global.t('message.metadata.yes'),\n no: this.i18n.global.t('message.metadata.no'),\n property: this.i18n.global.t('message.datasetFacets.facets.erpdOnly'),\n title: this.i18n.global.t('message.metadata.erpd'),\n // toolTipTitle: \"TOOLTIP\",//this.i18n.global.t('message.helpIcon.dataServices'),\n }\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getAllAvailableFacets',\n 'getDatasetsCount',\n 'getFacets',\n 'getFacetOperator',\n 'getFacetGroupOperator',\n 'getDataServices',\n 'getLimit',\n 'getMinScoring',\n 'getPage',\n 'getDatasetGeoBounds',\n 'getScoringFacets',\n ]),\n resolvedAvailableFacets() {\n /** this.availableFacets is a prop, currently not used\n * this.getAllAvailableFacets takes the facet status from the store.\n * The facet store status is set in Datasets.vue::created. It uses the config array\n * content.datasets.facets.defaultFacetOrder */\n return this.availableFacets || this.getAllAvailableFacets;\n },\n datasetBoundsWatcher() {\n return this.getDatasetGeoBounds;\n },\n facetGroupOperatorWatcher() {\n return this.getFacetGroupOperator;\n },\n // dataServicesWatcher() {\n // return this.getDataServices;\n // },\n // catalogWatcher() {\n // return this.getCatalog;\n // },\n // showCatalogDetailsWatcher() {\n // return !isNil(this.$route.params.ctlg_id);\n // },\n useCatalogFacets() {\n return !this.showCatalogDetails;\n },\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showMoreFacetsShown() {\n return this.$env.content.datasets.facets.cutoff > 0 && this.$env.content.datasets.facets.cutoff < this.getAllVisibleFacets.length;\n },\n getAllVisibleFacets() {\n return this.resolvedAvailableFacets.filter(facet => facet.items.length > 0);\n },\n getSortedFacets() {\n const availableFacets = this.resolvedAvailableFacets;\n const activeFacets = [];\n const inactiveFacets = [];\n let activeFields = Object.keys(this.getFacets).filter(key => this.getFacets[key].length > 0);\n this.defaultFacetOrder.forEach((facet) => {\n availableFacets.forEach((field) => {\n // if (facet === field.id && field.items.length > 0\n // && (field.id !== 'country' || this.dataScope || this.$route.path === '/catalogues/erpd' || this.$route.query.superCatalog === 'erpd')\n // && (field.id !== 'catalog' || this.useCatalogFacets)\n // && (field.id !== 'scoring' || this.useScoringFacets)\n // && (field.id !== 'dataScope' || this.useDataScopeFacets)) {\n // if(activeFields.includes(field.id))\n // activeFacets.push(field);\n // else\n // inactiveFacets.push(field);\n // }\n if (facet === field.id && field.items.length > 0) {\n if (activeFields.includes(field.id))\n activeFacets.push(field);\n else\n inactiveFacets.push(field);\n }\n });\n });\n const sortedFacets = activeFacets.concat(inactiveFacets);\n if (this.cutoff > 0) {\n if (this.cutoff < activeFacets.length) this.cutoff = activeFacets.length;\n return sortedFacets.slice(0, this.cutoff);\n } else {\n return sortedFacets;\n }\n },\n // Returns the current catalog's available language ids\n // example: ['en', 'de', 'sv']\n catalogLanguageIds() {\n const languages = this.getCatalog && this.getCatalog.languages;\n if (!isArray(languages)) return [];\n return languages\n .map(lang => lang && lang.id)\n .filter(lang => lang);\n },\n isErdp() {\n if (this.$route.path === '/catalogues/erpd') {\n return 'true';\n } else {\n // if (this.$route.path.startsWith('/datasets')) {\n const superCatalogs = this.getFacets.superCatalog;\n return (superCatalogs && superCatalogs[0] === 'erpd') ? 'true' : 'false'\n }\n // return 'false';\n }\n },\n methods: {\n isObject,\n isArray,\n isString,\n has,\n isNil,\n isNumber,\n getTranslationFor,\n getFacetTranslation,\n ...mapActions('catalogDetails', [\n 'loadCatalog',\n ]),\n ...mapActions('datasets', [\n 'addFacet',\n 'removeFacet',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setSuperCatalogue_DEPRECATED', // !!!!! Project specific (Bayern). Should be removed as soon as possible !!!!\n 'setPage',\n 'setPageCount',\n 'setMinScoring',\n ]),\n toggleCutoff() {\n this.cutoff = this.cutoff >= 0 ? -1 : this.$env.content.datasets.facets.cutoff;\n },\n facetTitle(fieldId) {\n\n // if(fieldId==='scoring'){\n // return Vue.i18n.t('message.header.navigation.data.metadataquality')\n // }else if(fieldId==='subject'){\n // return 'EuroVoc keywords'\n // }else{\n // return Vue.i18n.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`)\n // }\n\n return fieldId === 'scoring' ?\n this.i18n.global.t('message.header.navigation.data.metadataquality')\n : this.i18n.global.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\n },\n tooltip(fieldId) {\n return fieldId === 'dataScope' ? this.i18n.global.t('message.helpIcon.dataScope') : this.i18n.global.t(`message.helpIcon.${fieldId.toLowerCase()}`);\n },\n getFacetTranslationWrapper(fieldId, facetId, userLocale, fallback) {\n return fieldId === 'scoring'\n ? this.$t(`message.datasetFacets.facets.scoring.${facetId}`)\n : this.getFacetTranslation(fieldId, facetId, userLocale, fallback);\n },\n sortByCount(items, fieldId) {\n if (fieldId === 'scoring' || fieldId === 'dataScope') return items;\n return items.slice().sort((a, b) => {\n const n = b.count - a.count;\n if (n !== 0) return b.count - a.count;\n if (a.name < b.name) return -1;\n return 1;\n });\n },\n setRouteQuery(query, mode) {\n if (mode === \"replace\") {\n return this.$router.replace(\n { query: Object.assign({}, this.$route.query, query) }\n ).catch(\n error => { console.error(error); }\n );\n } else {\n return this.$router.push(\n { query: Object.assign({}, this.$route.query, query) }\n ).catch(\n error => { console.error(error); }\n );\n }\n },\n facetIsSelected(fieldId, item) {\n const facet = item.id;\n if (fieldId === 'scoring') {\n const qMinScoring = parseInt(this.getMinScoring, 10);\n const qMaxScoring = this.getMaxScoring;\n const minScoringIsSelected = this.$route.query[fieldId];\n if (!minScoringIsSelected || !qMinScoring) return item.minScoring === 0;\n return minScoringIsSelected && qMinScoring === item.minScoring && \n qMaxScoring === item.maxScoring;;\n }\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, fieldId)) {\n return false;\n }\n if (fieldId === 'dataScope') return this.$route.query.dataScope === facet;\n let qField = this.$route.query[fieldId];\n if (!Array.isArray(qField)) qField = [qField];\n if (fieldId === 'categories') {\n // Ignore Case for categories\n facet.toUpperCase();\n qField = qField.map(f => f.toUpperCase());\n }\n\n return qField.indexOf(facet) > -1;\n },\n facetClicked(field, item) {\n \n const facet = item.id;\n if (field === \"dataScope\") {\n this.dataScopeFacetClicked(facet);\n } else {\n if (field === 'scoring') this.scoringFacetClicked(item);\n\n //filtering dataScope when provenance is selected\n if (field === 'country') {\n if (facet === 'eu') {\n this.$route.query.dataScope = 'eu'\n } else if (facet === 'io') {\n this.$route.query.dataScope = 'io'\n } else {\n this.$route.query.dataScope = 'countryData'\n }\n }\n this.toggleFacet(field, facet);\n }\n },\n \n toggleFacet(field, facet) {\n \n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n this.setRouteQuery({ [field]: [], page: 1 });\n }\n let facets = this.$route.query?.[field]?.slice();\n if (!facets) facets = [];\n if (!Array.isArray(facets)) facets = [facets];\n if (field === 'categories') {\n // Ignore Case for categories\n facet.toUpperCase();\n facets = facets.map(f => f.toUpperCase());\n }\n if (field === 'scoring') {\n // Empty facets as scoring facets are disjoint\n facets = (facet === 'badScoring') ? [] : [facet];\n } else {\n \n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n }\n \n return this.setRouteQuery({ [field]: facets, page: 1 });\n \n },\n clearFacets() {\n if (Object.keys(this.$route.query).some(key => (key !== 'locale' && key !== 'page') && this.$route.query[key].length)) {\n this.setMinScoring(0);\n this.$router.push({ query: { locale: this.$i18n.locale, page: \"1\" } })\n .catch(error => { console.error(error); });\n }\n sessionStorage.clear();\n },\n dataScopeFacetClicked(dataScope) {\n if (this.$route.query.dataScope === dataScope) {\n this.setRouteQuery({ dataScope: [], country: [], page: 1 });\n } else {\n const country = [];\n country.push(dataScope);\n this.setRouteQuery({ dataScope, country, page: 1 });\n }\n },\n scoringFacetClicked(item) {\n let newScoring = item.minScoring;\n if (newScoring === this.getMinScoring) newScoring = 0;\n this.setMinScoring(newScoring);\n this.resetPage();\n window.scrollTo(0, 0);\n },\n toggleFacetGroupOperator() {\n let op = this.getFacetGroupOperator;\n op = op === this.FACET_GROUP_OPERATORS.and ? this.FACET_GROUP_OPERATORS.or : this.FACET_GROUP_OPERATORS.and;\n this.setFacetGroupOperator(op);\n },\n changeDataServices(dataServices) {\n this.setDataServices(dataServices);\n // this.setRouteQuery({ dataServices: (dataServices ? 'true' : undefined), page: 1 });\n const query = Object.assign({}, this.$route.query, { dataServices, page: 1 });\n if (dataServices === 'false') {\n delete query.dataServices;\n }\n this.$router.replace({ query });\n },\n changeErpd(erpd) {\n if (this.$route.path === '/catalogues/erpd') {\n const query = Object.assign({}, this.$route.query, { page: 1 });\n this.$router.replace({\n path: '/datasets',\n query\n });\n } else {\n const superCatalog = erpd === 'true' ? 'erpd' : 'false';\n const query = Object.assign({}, this.$route.query, { superCatalog, page: 1 });\n if (superCatalog === 'false') {\n delete query.superCatalog;\n }\n this.$router.replace({ query });\n }\n },\n resetPage() {\n this.setRouteQuery({ page: 1 }, \"replace\");\n },\n getFacetCount(field, facet) {\n if (field.id === 'scoring') return '';\n return facet.count;\n },\n initShowCatalogDetails() {\n const showCatalogDetails = !isNil(this.$route.params.ctlg_id);\n if (showCatalogDetails === true) {\n this.showCatalogDetails = true;\n this.loadCatalog(this.$route.params.ctlg_id);\n } else this.showCatalogDetails = false;\n },\n initMinScoring() {\n let currentScoring = this.$route.query.scoring;\n currentScoring = isArray(currentScoring) && currentScoring.length > 0\n ? currentScoring[0]\n : isArray(currentScoring) && currentScoring.length === 0\n ? ''\n : currentScoring;\n if (currentScoring) {\n let scoringFacets = this.$env.content.datasets.facets.scoringFacets.defaultScoringFacets;\n Object.keys(scoringFacets).forEach(score => {\n if (score === currentScoring) {\n this.setMinScoring(scoringFacets[score].minScoring);\n }\n });\n } else {\n this.setMinScoring(0);\n }\n },\n isMultiSelect(fieldID) {\n return fieldID !== 'scoring';\n }\n },\n watch: {\n facetGroupOperatorWatcher: {\n handler(facetGroupOperator) {\n this.setRouteQuery({ facetGroupOperator }, \"replace\");\n },\n },\n // getDataServices(dataServices) {\n // this.$router.replace(\n // { query: Object.assign({}, this.$route.query, { dataServices }) }\n // ).catch(\n // error => { console.error(error); }\n // );\n // },\n '$route.params.ctlg_id'(showCatalogDetails) {\n this.showCatalogDetails = showCatalogDetails;\n },\n getDatasetGeoBounds(bounds) {\n this.bounds = bounds\n },\n getCatalog(catalog) {\n this.catalog = catalog;\n },\n },\n created() {\n this.initShowCatalogDetails();\n this.initMinScoring();\n for (var i in sessionStorage) {\n if (sessionStorage.length > 0 && i == \"Filter\") this.toggleCutoff();\n }\n },\n setup() {\n useDatasetsFacetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.facet:hover {\n cursor: pointer;\n}\n\n.custom-control {\n padding-left: 1.5rem;\n margin-right: 1rem;\n}\n\n.custom-control-label {\n &::before {\n left: -1.5rem !important;\n }\n\n &::after {\n left: -1.5rem !important;\n }\n}\n\n.custom-control-input:checked~.custom-control-label::before {\n border-color: var(--primary);\n background-color: var(--primary);\n}\n\n.active {\n background-color: var(--primary);\n border-color: var(--primary);\n}\n\n.io {\n border: 0 !important;\n margin-bottom: 3px;\n opacity: 0.8;\n}\n\n.dropdown-menu.show {\n transform: translate3d(0px, 15px, 0px) !important;\n width: max-content;\n display: block;\n\n}\n</style>\n"],"names":["_sfc_main","SettingsFacet","CatalogDetailsFacet","DatasetsMapFacet","DatasetsFacetsItem","isNil","mapGetters","facet","availableFacets","activeFacets","inactiveFacets","activeFields","key","field","sortedFacets","languages","isArray","lang","superCatalogs","isObject","isString","has","isNumber","getTranslationFor","getFacetTranslation","mapActions","fieldId","facetId","userLocale","fallback","items","b","query","mode","error","item","qMinScoring","qMaxScoring","minScoringIsSelected","qField","f","facets","_b","_a","index","dataScope","country","newScoring","op","dataServices","erpd","superCatalog","currentScoring","scoringFacets","score","fieldID","facetGroupOperator","showCatalogDetails","bounds","catalog","i","useDatasetsFacetsHead","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","$options","_createVNode","_component_datasets_map_facet","$data","_createBlock","_component_catalog_details_facet","_hoisted_4","_component_settings_facet","_Fragment","_renderList","_normalizeClass","_component_radio_facet","_component_select_facet","_component_pv_show_more","_component_pv_button"],"mappings":"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"}
|