@piveau/piveau-hub-ui-modules 4.6.65 → 4.6.67

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.
Files changed (233) hide show
  1. package/dist/PvBadge/PvBadge.vue.mjs.map +1 -1
  2. package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +2 -1
  3. package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
  4. package/dist/PvDataInfoBox/PvDataInfoBoxDescription.vue.mjs.map +1 -1
  5. package/dist/PvDataInfoBox/PvDataInfoBoxFooter.vue.mjs.map +1 -1
  6. package/dist/PvDataInfoBox/PvDataInfoBoxFormats.vue.mjs.map +1 -1
  7. package/dist/catalogues/CatalogPage.vue.mjs.map +1 -1
  8. package/dist/catalogues/CatalogPageDatasetCard.vue.mjs +6 -5
  9. package/dist/catalogues/CatalogPageDatasetCard.vue.mjs.map +1 -1
  10. package/dist/catalogues/Catalogues.vue.mjs.map +1 -1
  11. package/dist/catalogues/cataloguesFacets/CataloguesFacets.vue.mjs.map +1 -1
  12. package/dist/citation/DatasetCitationModal.vue.mjs.map +1 -1
  13. package/dist/citation/DatasetCitationTable.vue.mjs.map +1 -1
  14. package/dist/composables/useRuntimeEnv.d.ts +2 -2
  15. package/dist/configurations/config-schema/apiSchema.mjs +1 -1
  16. package/dist/configurations/config-schema/authenticationSchema.mjs +1 -1
  17. package/dist/configurations/config-schema/configSchema.d.ts +5 -5
  18. package/dist/configurations/config-schema/configSchema.mjs +18 -18
  19. package/dist/configurations/config-schema/contentSchema.mjs +1 -1
  20. package/dist/configurations/config-schema/languagesSchema.d.ts +2 -2
  21. package/dist/configurations/config-schema/languagesSchema.mjs +1 -1
  22. package/dist/configurations/config-schema/metadataSchema.mjs +1 -1
  23. package/dist/configurations/config-schema/routingSchema.mjs +1 -1
  24. package/dist/configurations/config-schema/themesSchema.mjs +1 -1
  25. package/dist/configurations/config-schema/trackerSchema.mjs +1 -1
  26. package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
  27. package/dist/data-provider-interface/DPIMenu.vue.d.ts +10 -10
  28. package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
  29. package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +15 -17
  30. package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
  31. package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
  32. package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
  33. package/dist/data-provider-interface/components/DataFetchingComponent.vue.d.ts +2 -2
  34. package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +2 -1
  35. package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
  36. package/dist/data-provider-interface/components/Dropup.vue.d.ts +1 -1
  37. package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
  38. package/dist/data-provider-interface/components/FileUpload.vue.d.ts +1 -1
  39. package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
  40. package/dist/data-provider-interface/components/InfoSlot.vue.mjs.map +1 -1
  41. package/dist/data-provider-interface/components/InputPageStep.vue.mjs.map +1 -1
  42. package/dist/data-provider-interface/components/LanguageSelector.vue.mjs.map +1 -1
  43. package/dist/data-provider-interface/components/Navigation.vue.d.ts +8 -8
  44. package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
  45. package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +2 -1
  46. package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs.map +1 -1
  47. package/dist/data-provider-interface/components/SimpleAccessURLInput.vue.mjs.map +1 -1
  48. package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
  49. package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
  50. package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
  51. package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
  52. package/dist/data-provider-interface/components/WidgetInput.vue.mjs.map +1 -1
  53. package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
  54. package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +2 -2
  55. package/dist/data-provider-interface/views/DistributionOverview.vue.mjs.map +1 -1
  56. package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +5 -5
  57. package/dist/data-provider-interface/views/DraftsPage.vue.mjs +19 -14
  58. package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
  59. package/dist/data-provider-interface/views/InputPage.vue.d.ts +12 -14
  60. package/dist/data-provider-interface/views/InputPage.vue.mjs +4 -2
  61. package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
  62. package/dist/data-provider-interface/views/LinkedDataViewer.vue.mjs.map +1 -1
  63. package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.mjs.map +1 -1
  64. package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
  65. package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.mjs.map +1 -1
  66. package/dist/data-provider-interface/views/OverviewPage/Properties/MultilingualProp.vue.mjs.map +1 -1
  67. package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.mjs.map +1 -1
  68. package/dist/data-provider-interface/views/OverviewPage/Properties/StringProp.vue.mjs.map +1 -1
  69. package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
  70. package/dist/data-provider-interface/views/OverviewPage/Properties/URLProp.vue.mjs.map +1 -1
  71. package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.mjs.map +1 -1
  72. package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +3 -5
  73. package/dist/data-provider-interface/views/OverviewPage.vue.mjs.map +1 -1
  74. package/dist/data-provider-interface/views/PropertyChooser.vue.mjs.map +1 -1
  75. package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
  76. package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
  77. package/dist/datasetDetails/AppMarkdownContent.vue.mjs.map +1 -1
  78. package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
  79. package/dist/datasetDetails/DatasetDetailsActivityStream.vue.mjs.map +1 -1
  80. package/dist/datasetDetails/DatasetDetailsBanners.vue.d.ts +1 -3
  81. package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
  82. package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
  83. package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
  84. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +2 -1
  85. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
  86. package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +1 -3
  87. package/dist/datasetDetails/DatasetDetailsDescription.vue.mjs.map +1 -1
  88. package/dist/datasetDetails/DatasetDetailsFeedbackButton.vue.mjs.map +1 -1
  89. package/dist/datasetDetails/DatasetDetailsLinkedMetricsButton.vue.mjs.map +1 -1
  90. package/dist/datasetDetails/DatasetDetailsQuality.vue.mjs.map +1 -1
  91. package/dist/datasetDetails/DatasetDetailsShareButton.vue.mjs.map +1 -1
  92. package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
  93. package/dist/datasetDetails/DatasetDetailsSkeleton.vue.mjs.map +1 -1
  94. package/dist/datasetDetails/distributions/Distribution.vue.mjs.map +1 -1
  95. package/dist/datasetDetails/distributions/DistributionAdded.vue.mjs.map +1 -1
  96. package/dist/datasetDetails/distributions/DistributionDownloadAsModal.vue.mjs.map +1 -1
  97. package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
  98. package/dist/datasetDetails/distributions/DistributionFormat.vue.mjs.map +1 -1
  99. package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
  100. package/dist/datasetDetails/distributions/DistributionsHeader.vue.d.ts +4 -4
  101. package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
  102. package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +8 -8
  103. package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs +2 -1
  104. package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
  105. package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +7 -5
  106. package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
  107. package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +6 -5
  108. package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs.map +1 -1
  109. package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
  110. package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs +15 -12
  111. package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs.map +1 -1
  112. package/dist/datasetDetails/distributions/distributionActions/DistributionDownloadAs.vue.mjs.map +1 -1
  113. package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.d.ts +2 -2
  114. package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.mjs.map +1 -1
  115. package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.d.ts +4 -4
  116. package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs +6 -5
  117. package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs.map +1 -1
  118. package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.d.ts +4 -4
  119. package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.mjs.map +1 -1
  120. package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.d.ts +4 -4
  121. package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.mjs.map +1 -1
  122. package/dist/datasetDetails/distributions/distributionActions/LinkedDataButtonsDropdown.vue.mjs.map +1 -1
  123. package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +22 -21
  124. package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
  125. package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.d.ts +6 -6
  126. package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.mjs.map +1 -1
  127. package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.d.ts +16 -16
  128. package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
  129. package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.d.ts +2 -2
  130. package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.mjs.map +1 -1
  131. package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.d.ts +1 -1
  132. package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.mjs.map +1 -1
  133. package/dist/datasetDetails/features/DatasetDetailsDataServices.vue.mjs.map +1 -1
  134. package/dist/datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs.map +1 -1
  135. package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +2 -2
  136. package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
  137. package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.d.ts +1 -1
  138. package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.mjs.map +1 -1
  139. package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs.map +1 -1
  140. package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.d.ts +1 -1
  141. package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.mjs.map +1 -1
  142. package/dist/datasetDetails/features/DatasetDetailsMap.vue.mjs.map +1 -1
  143. package/dist/datasetDetails/features/DatasetDetailsPages.vue.mjs.map +1 -1
  144. package/dist/datasetDetails/features/DatasetDetailsRelations.vue.mjs.map +1 -1
  145. package/dist/datasetDetails/features/DatasetDetailsSubject.vue.d.ts +1 -1
  146. package/dist/datasetDetails/features/DatasetDetailsSubject.vue.mjs.map +1 -1
  147. package/dist/datasetDetails/features/DatasetDetailsVisualisations.vue.mjs.map +1 -1
  148. package/dist/datasetDetails/header/DatasetDetailsHeader.vue.mjs.map +1 -1
  149. package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.d.ts +2 -2
  150. package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
  151. package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +2 -2
  152. package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.mjs.map +1 -1
  153. package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.mjs.map +1 -1
  154. package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +2 -2
  155. package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.mjs.map +1 -1
  156. package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
  157. package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.d.ts +7 -1
  158. package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
  159. package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +200 -1
  160. package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
  161. package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
  162. package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
  163. package/dist/datasets/DatasetDate.vue.mjs.map +1 -1
  164. package/dist/datasets/DatasetList.vue.mjs.map +1 -1
  165. package/dist/datasets/Datasets.vue.mjs.map +1 -1
  166. package/dist/datasets/DatasetsFilters.vue.d.ts +1 -1
  167. package/dist/datasets/DatasetsFilters.vue.mjs.map +1 -1
  168. package/dist/datasets/DatasetsFiltersTabs.vue.d.ts +2 -2
  169. package/dist/datasets/DatasetsFiltersTabs.vue.mjs.map +1 -1
  170. package/dist/datasets/DatasetsTopControls.vue.d.ts +5 -5
  171. package/dist/datasets/DatasetsTopControls.vue.mjs +8 -6
  172. package/dist/datasets/DatasetsTopControls.vue.mjs.map +1 -1
  173. package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
  174. package/dist/datasets/datasetsFacets/DatasetsFacetsItem.vue.mjs.map +1 -1
  175. package/dist/datasets/datasetsFacets/DatasetsMapFacet.vue.mjs.map +1 -1
  176. package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
  177. package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
  178. package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
  179. package/dist/external/zod/dist/esm/v3/ZodError +84 -0
  180. package/dist/external/zod/dist/esm/v3/ZodError.map +1 -0
  181. package/dist/external/zod/dist/esm/v3/errors +10 -0
  182. package/dist/external/zod/dist/esm/v3/errors.map +1 -0
  183. package/dist/external/zod/dist/esm/v3/helpers/errorUtil +8 -0
  184. package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +1 -0
  185. package/dist/external/zod/dist/esm/v3/helpers/parseUtil +98 -0
  186. package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +1 -0
  187. package/dist/external/zod/dist/esm/v3/helpers/util +95 -0
  188. package/dist/external/zod/dist/esm/v3/helpers/util.map +1 -0
  189. package/dist/external/zod/dist/esm/v3/locales/en +62 -0
  190. package/dist/external/zod/dist/esm/v3/locales/en.map +1 -0
  191. package/dist/external/zod/dist/esm/v3/types +2440 -0
  192. package/dist/external/zod/dist/esm/v3/types.map +1 -0
  193. package/dist/facets/CatalogDetailsFacet.vue.mjs.map +1 -1
  194. package/dist/facets/ExpandableSelectFacet.vue.mjs.map +1 -1
  195. package/dist/facets/Facet.vue.mjs.map +1 -1
  196. package/dist/facets/FacetTitle.vue.mjs.map +1 -1
  197. package/dist/facets/RadioFacet.vue.mjs.map +1 -1
  198. package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -2
  199. package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
  200. package/dist/form/FormKitGroup.vue.mjs.map +1 -1
  201. package/dist/form/Repeatable.vue2.mjs +2 -1
  202. package/dist/form/Repeatable.vue2.mjs.map +1 -1
  203. package/dist/map/MapBasic.vue.mjs.map +1 -1
  204. package/dist/map/MapBoundsReceiver.vue.mjs.map +1 -1
  205. package/dist/map/MapBoundsSender.vue.mjs.map +1 -1
  206. package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
  207. package/dist/modal/AppSnackbar.vue.mjs.map +1 -1
  208. package/dist/modal/AppToast.vue.mjs.map +1 -1
  209. package/dist/navigation/SubNavigation.vue.mjs.map +1 -1
  210. package/dist/pages/NotFound.vue.mjs.map +1 -1
  211. package/dist/pages/SparqlSearch.vue.mjs.map +1 -1
  212. package/dist/pages/user/UserImprint.vue.mjs.map +1 -1
  213. package/dist/pages/user/UserPrivacyPolicy.vue.mjs.map +1 -1
  214. package/dist/piveau-hub-ui-modules.css +1 -1
  215. package/dist/search/Search.vue.mjs.map +1 -1
  216. package/dist/services/bulkDownloadCorsProxyService.mjs +37 -20
  217. package/dist/services/bulkDownloadCorsProxyService.mjs.map +1 -1
  218. package/dist/services/datasetService.d.ts +1 -1
  219. package/dist/widgets/AppLink.vue.mjs.map +1 -1
  220. package/dist/widgets/Dropdown.vue.mjs.map +1 -1
  221. package/dist/widgets/Pagination.vue.d.ts +1 -1
  222. package/dist/widgets/Pagination.vue.mjs.map +1 -1
  223. package/dist/widgets/PropertyValue.vue.mjs.map +1 -1
  224. package/dist/widgets/PvBanner.vue.mjs.map +1 -1
  225. package/dist/widgets/PvButton.vue.mjs.map +1 -1
  226. package/dist/widgets/PvShowMore.vue.mjs.map +1 -1
  227. package/dist/widgets/ResourceAccessPopup.vue.d.ts +1 -1
  228. package/dist/widgets/ResourceAccessPopup.vue.mjs.map +1 -1
  229. package/dist/widgets/ResourceDetailsLinkedDataButton.vue.mjs.map +1 -1
  230. package/dist/widgets/Tooltip.vue.mjs.map +1 -1
  231. package/package.json +1 -1
  232. package/dist/external/zod/lib/index +0 -2849
  233. package/dist/external/zod/lib/index.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CataloguesFacets.vue.mjs","sources":["../../../lib/catalogues/cataloguesFacets/CataloguesFacets.vue"],"sourcesContent":["<template>\n <div class=\"container catalog-facets\">\n <div class=\"row mx-3 mr-md-0\">\n <div class=\"col\">\n <catalog-details-facet class=\"catalog-details\" :catalog=\"superCatalog\"\n :catalogLanguageIds=\"catalogLanguageIds\" />\n <span v-if=\"showFacetsTitle\" class=\"row h5 font-weight-bold mt-4 mb-3\">Filter by</span>\n <settings-facet v-if=\"!showCatalogDetails\" class=\"row facet-field mb-3\" />\n <div class=\"row facet-field mb-3\" v-for=\"(field, index) in getSortedFacets\" :key=\"`facet@${index}`\"\n :class=\"{ 'mt-3': (index > 0) }\">\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=\"isErpd()\" :change=\"changeErpd\" />\n <select-facet v-if=\"field.id !== 'superCatalog'\" :fieldId=\"field.id\" :header=\"facetTitle(field.id)\"\n :items=\"sortByCount(field.items, field.id)\" :getFacetTranslationWrapper=\"getFacetTranslation\"\n :facetIsSelected=\"facetIsSelected\" :facetClicked=\"facetClicked\" :multiSelect=\"field.id !== 'scoring'\"\n class=\"col pr-0\" />\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 <pv-button v-if=\"showClearButton\" label=\"Clear filters\" class=\"row mt-5 facets-clear\" :action=\"clearFacets\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport {\n isEmpty,\n isBoolean,\n has,\n isNil,\n isArray\n} from 'lodash';\nimport DatasetsFacetsItem from '../../datasets/datasetsFacets/DatasetsFacetsItem.vue';\nimport { getTranslationFor, getCountryFlagImg, getFacetTranslation } from '../../utils/helpers';\nimport SettingsFacet from \"../../datasets/datasetsFacets/SettingsFacet\";\nimport CatalogDetailsFacet from '../../facets/CatalogDetailsFacet.vue'\n\nexport default {\n name: 'catalogueFacets',\n components: {\n SettingsFacet,\n DatasetsFacetsItem,\n CatalogDetailsFacet\n },\n dependencies: ['catalogService'],\n data() {\n return {\n cutoff: this.$env.content.catalogs.facets.cutoff,\n showClearButton: this.$env.content.catalogs.facets.showClearButton,\n showFacetsTitle: this.$env.content.catalogs.facets.showFacetsTitle,\n showCatalogDetails: false,\n superCatalog: {},\n browser: {\n /* eslint-disable-next-line */\n isIE: /*@cc_on!@*/false || !!document.documentMode,\n },\n defaultFacetOrder: this.$env.content.catalogs.facets.defaultFacetOrder,\n MIN_FACET_LIMIT: this.$env.content.catalogs.facets.MIN_FACET_LIMIT,\n MAX_FACET_LIMIT: this.$env.content.catalogs.facets.MAX_FACET_LIMIT,\n FACET_OPERATORS: this.$env.content.catalogs.facets.FACET_OPERATORS,\n FACET_GROUP_OPERATORS: this.$env.content.catalogs.facets.FACET_GROUP_OPERATORS,\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.datasetFacets.facets.erpd'),\n // toolTipTitle: \"TOOLTIP\",//this.i18n.global.t('message.helpIcon.dataServices'),\n }\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('catalogs', [\n 'getAvailableFacets',\n 'getCatalogsCount',\n 'getFacetOperator',\n 'getFacetGroupOperator',\n 'getLimit',\n 'getPage',\n 'getFacets',\n ]),\n facetOperatorWatcher() {\n return this.getFacetOperator;\n },\n facetGroupOperatorWatcher() {\n return this.getFacetGroupOperator;\n },\n showMoreFacetsShown() {\n return this.$env.content.catalogs.facets.cutoff > 0 && this.$env.content.catalogs.facets.cutoff < this.getAvailableFacets.length;\n },\n getSortedFacets() {\n const availableFacets = this.getAvailableFacets;\n const sortedFacets = [];\n\n this.defaultFacetOrder.forEach((facet) => {\n availableFacets.forEach((field) => {\n if (facet === field.id && field.items.length > 0) sortedFacets.push(field);\n });\n });\n\n return sortedFacets;\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 },\n methods: {\n isEmpty,\n isBoolean,\n has,\n isNil,\n getFacetTranslation,\n getCountryFlagImg,\n getTranslationFor,\n ...mapActions('catalogDetails', [\n 'loadCatalog',\n ]),\n ...mapActions('catalogs', [\n 'addFacet',\n 'removeFacet',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setPage',\n 'setPageCount',\n ]),\n /**\n * @description Sorts an array of facets by their count.\n * @param {Array<Object>} facets - The facets to sort\n * @param {Number} facet.count - The amount of catalogs having this facet assigned\n * @param {String} facet.name - The name of this facet\n * @returns {Array<Object>}\n */\n toggleCutoff() {\n this.cutoff = this.cutoff >= 0 ? -1 : this.$env.content.datasets.facets.cutoff;\n },\n sortByCount(facets, fieldId) {\n if (fieldId === 'scoring') return facets;\n return facets.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 facetTitle(fieldId) {\n if (fieldId === 'scoring'){\n return this.i18n.global.t('message.header.navigation.data.metadataquality')\n }else if (fieldId === 'country'){\n return this.i18n.global.t(`message.datasetFacets.facets.origin`)\n }else {\n return this.i18n.global.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\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 /**\n * @description Returns whether a facet is selected or not.\n * @param field - The field of the facet to check.\n * @param facet - The facet to check.\n * @returns {boolean}\n */\n facetIsSelected(field, item) {\n const facet = item.id;\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, field)) {\n return false;\n }\n let qField = this.$route.query[field];\n if (!Array.isArray(qField)) qField = [qField];\n return qField.indexOf(facet) > -1;\n },\n /**\n * @description Wrapping callback-function for a click on a facet.\n * @param field - The field of the clicked facet\n * @param facet - The clicked facet\n */\n facetClicked(field, item) {\n const facet = item.id;\n this.toggleFacet(field, facet);\n // this.resetPage();\n },\n clearFacets() {\n if (Object.keys(this.$route.query).some(key => (key !== 'locale' && key !== 'page') && this.$route.query[key].length)) {\n this.$router.push({ query: { locale: this.$i18n.locale, page: \"1\" } })\n .catch(error => { console.error(error); });\n }\n },\n /**\n * @description Add/Remove a facet from the routers query parameters.\n * @param field - The field of the facet\n * @param facet - The given facet\n */\n toggleFacet(field, facet) {\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n this.$router.push({ query: Object.assign({}, this.$route.query, { [field]: [] }) });\n }\n let facets = this.$route.query?.[field]?.slice();\n if (!facets) facets = [];\n if (!Array.isArray(facets)) facets = [facets];\n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n this.$router.push({ query: Object.assign({}, this.$route.query, { [field]: facets, page: 1 }) });\n },\n changeFacetOperator(op) {\n this.setFacetOperator(op);\n this.setFacetGroupOperator(op);\n },\n isErpd() {\n const superCatalogs = this.$route.query?.superCatalog;\n const superCatalog = (superCatalogs && superCatalogs.constructor === Array) ? superCatalogs[0] : superCatalogs;\n return superCatalog === 'erpd' ? 'true' : 'false';\n },\n changeErpd(erpd) {\n const erdpCatalog = 'erpd';\n const superCatalogs = this.$route.query?.superCatalog;\n const superCatalog = superCatalogs && superCatalogs.constructor === Array ? superCatalogs[0] : superCatalogs;\n if ((erpd === 'false' && superCatalog === erdpCatalog) || (erpd === 'true' && superCatalog !== erdpCatalog)) {\n if (superCatalog === erdpCatalog) {\n delete this.$route.query.showsubcatalogs;\n }\n this.toggleFacet('superCatalog', erdpCatalog);\n }\n },\n /**\n * @description Toggles the facetoperator between 'or'/'and'.\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 resetPage() {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { page: 1 }) });\n },\n triggerResize() {\n // Note: Trigger resize after 200ms when Modal element is visible to properly display the map component\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 200);\n },\n getFacetCount(field, facet) {\n if (field.id === 'scoring') return '';\n return facet.count;\n }\n },\n watch: {\n facetOperatorWatcher: {\n handler(facetOperator) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { facetOperator }) });\n },\n },\n facetGroupOperatorWatcher: {\n handler(facetGroupOperator) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { facetGroupOperator }) });\n },\n },\n getCatalog(catalog) {\n this.superCatalog = catalog;\n }\n },\n created() {\n if (this.$route.query.showsubcatalogs) {\n const superCatalogUrl = this.$route.query.superCatalog;\n if (typeof superCatalogUrl === 'string') {\n const catalogId = superCatalogUrl.substring(superCatalogUrl.lastIndexOf('/') + 1);\n this.loadCatalog(catalogId)\n .then(result => {\n // console.log(\"HELLLLO\", result)\n }\n )\n }\n }\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.map {\n z-index: 0;\n}\n\n.suggestion-input-group {\n position: relative;\n}\n\n.suggestion-input {\n position: absolute;\n top: 0;\n}\n\n.suggestion-list-group {\n position: relative;\n width: 100%;\n}\n\n.suggestion-list {\n width: 100%;\n position: absolute;\n top: 0;\n z-index: 100;\n}\n\n.map-modal-button {\n position: absolute;\n bottom: 0;\n right: 0;\n}\n\n.reset-bounds-button {\n position: absolute;\n bottom: 0;\n left: 0;\n}\n\n#modal-map-wrapper {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n</style>\n"],"names":["_sfc_main","SettingsFacet","DatasetsFacetsItem","CatalogDetailsFacet","mapGetters","availableFacets","sortedFacets","facet","field","languages","isArray","lang","isEmpty","isBoolean","has","isNil","getFacetTranslation","getCountryFlagImg","getTranslationFor","mapActions","facets","fieldId","b","item","qField","key","error","_b","_a","index","op","superCatalogs","erpd","erdpCatalog","superCatalog","facetOperator","facetGroupOperator","catalog","superCatalogUrl","catalogId","result","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_catalog_details_facet","$data","$options","_cache","_createTextVNode","_hoisted_4","_createCommentVNode","_createBlock","_component_settings_facet","_Fragment","_renderList","_normalizeClass","_component_radio_facet","_component_select_facet","_component_pv_show_more","_ctx","_component_pv_button"],"mappings":"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"}
1
+ {"version":3,"file":"CataloguesFacets.vue.mjs","sources":["../../../lib/catalogues/cataloguesFacets/CataloguesFacets.vue"],"sourcesContent":["<template>\n <div class=\"container catalog-facets\">\n <div class=\"row mx-3 mr-md-0\">\n <div class=\"col\">\n <catalog-details-facet class=\"catalog-details\" :catalog=\"superCatalog\"\n :catalogLanguageIds=\"catalogLanguageIds\" />\n <span v-if=\"showFacetsTitle\" class=\"row h5 font-weight-bold mt-4 mb-3\">Filter by</span>\n <settings-facet v-if=\"!showCatalogDetails\" class=\"row facet-field mb-3\" />\n <div class=\"row facet-field mb-3\" v-for=\"(field, index) in getSortedFacets\" :key=\"`facet@${index}`\"\n :class=\"{ 'mt-3': (index > 0) }\">\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=\"isErpd()\" :change=\"changeErpd\" />\n <select-facet v-if=\"field.id !== 'superCatalog'\" :fieldId=\"field.id\" :header=\"facetTitle(field.id)\"\n :items=\"sortByCount(field.items, field.id)\" :getFacetTranslationWrapper=\"getFacetTranslation\"\n :facetIsSelected=\"facetIsSelected\" :facetClicked=\"facetClicked\" :multiSelect=\"field.id !== 'scoring'\"\n class=\"col pr-0\" />\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 <pv-button v-if=\"showClearButton\" label=\"Clear filters\" class=\"row mt-5 facets-clear\" :action=\"clearFacets\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport {\n isEmpty,\n isBoolean,\n has,\n isNil,\n isArray\n} from 'lodash';\nimport DatasetsFacetsItem from '../../datasets/datasetsFacets/DatasetsFacetsItem.vue';\nimport { getTranslationFor, getCountryFlagImg, getFacetTranslation } from '../../utils/helpers';\nimport SettingsFacet from \"../../datasets/datasetsFacets/SettingsFacet\";\nimport CatalogDetailsFacet from '../../facets/CatalogDetailsFacet.vue'\n\nexport default {\n name: 'catalogueFacets',\n components: {\n SettingsFacet,\n DatasetsFacetsItem,\n CatalogDetailsFacet\n },\n dependencies: ['catalogService'],\n data() {\n return {\n cutoff: this.$env.content.catalogs.facets.cutoff,\n showClearButton: this.$env.content.catalogs.facets.showClearButton,\n showFacetsTitle: this.$env.content.catalogs.facets.showFacetsTitle,\n showCatalogDetails: false,\n superCatalog: {},\n browser: {\n /* eslint-disable-next-line */\n isIE: /*@cc_on!@*/false || !!document.documentMode,\n },\n defaultFacetOrder: this.$env.content.catalogs.facets.defaultFacetOrder,\n MIN_FACET_LIMIT: this.$env.content.catalogs.facets.MIN_FACET_LIMIT,\n MAX_FACET_LIMIT: this.$env.content.catalogs.facets.MAX_FACET_LIMIT,\n FACET_OPERATORS: this.$env.content.catalogs.facets.FACET_OPERATORS,\n FACET_GROUP_OPERATORS: this.$env.content.catalogs.facets.FACET_GROUP_OPERATORS,\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.datasetFacets.facets.erpd'),\n // toolTipTitle: \"TOOLTIP\",//this.i18n.global.t('message.helpIcon.dataServices'),\n }\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('catalogs', [\n 'getAvailableFacets',\n 'getCatalogsCount',\n 'getFacetOperator',\n 'getFacetGroupOperator',\n 'getLimit',\n 'getPage',\n 'getFacets',\n ]),\n facetOperatorWatcher() {\n return this.getFacetOperator;\n },\n facetGroupOperatorWatcher() {\n return this.getFacetGroupOperator;\n },\n showMoreFacetsShown() {\n return this.$env.content.catalogs.facets.cutoff > 0 && this.$env.content.catalogs.facets.cutoff < this.getAvailableFacets.length;\n },\n getSortedFacets() {\n const availableFacets = this.getAvailableFacets;\n const sortedFacets = [];\n\n this.defaultFacetOrder.forEach((facet) => {\n availableFacets.forEach((field) => {\n if (facet === field.id && field.items.length > 0) sortedFacets.push(field);\n });\n });\n\n return sortedFacets;\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 },\n methods: {\n isEmpty,\n isBoolean,\n has,\n isNil,\n getFacetTranslation,\n getCountryFlagImg,\n getTranslationFor,\n ...mapActions('catalogDetails', [\n 'loadCatalog',\n ]),\n ...mapActions('catalogs', [\n 'addFacet',\n 'removeFacet',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setPage',\n 'setPageCount',\n ]),\n /**\n * @description Sorts an array of facets by their count.\n * @param {Array<Object>} facets - The facets to sort\n * @param {Number} facet.count - The amount of catalogs having this facet assigned\n * @param {String} facet.name - The name of this facet\n * @returns {Array<Object>}\n */\n toggleCutoff() {\n this.cutoff = this.cutoff >= 0 ? -1 : this.$env.content.datasets.facets.cutoff;\n },\n sortByCount(facets, fieldId) {\n if (fieldId === 'scoring') return facets;\n return facets.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 facetTitle(fieldId) {\n if (fieldId === 'scoring'){\n return this.i18n.global.t('message.header.navigation.data.metadataquality')\n }else if (fieldId === 'country'){\n return this.i18n.global.t(`message.datasetFacets.facets.origin`)\n }else {\n return this.i18n.global.t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\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 /**\n * @description Returns whether a facet is selected or not.\n * @param field - The field of the facet to check.\n * @param facet - The facet to check.\n * @returns {boolean}\n */\n facetIsSelected(field, item) {\n const facet = item.id;\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, field)) {\n return false;\n }\n let qField = this.$route.query[field];\n if (!Array.isArray(qField)) qField = [qField];\n return qField.indexOf(facet) > -1;\n },\n /**\n * @description Wrapping callback-function for a click on a facet.\n * @param field - The field of the clicked facet\n * @param facet - The clicked facet\n */\n facetClicked(field, item) {\n const facet = item.id;\n this.toggleFacet(field, facet);\n // this.resetPage();\n },\n clearFacets() {\n if (Object.keys(this.$route.query).some(key => (key !== 'locale' && key !== 'page') && this.$route.query[key].length)) {\n this.$router.push({ query: { locale: this.$i18n.locale, page: \"1\" } })\n .catch(error => { console.error(error); });\n }\n },\n /**\n * @description Add/Remove a facet from the routers query parameters.\n * @param field - The field of the facet\n * @param facet - The given facet\n */\n toggleFacet(field, facet) {\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n this.$router.push({ query: Object.assign({}, this.$route.query, { [field]: [] }) });\n }\n let facets = this.$route.query?.[field]?.slice();\n if (!facets) facets = [];\n if (!Array.isArray(facets)) facets = [facets];\n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n this.$router.push({ query: Object.assign({}, this.$route.query, { [field]: facets, page: 1 }) });\n },\n changeFacetOperator(op) {\n this.setFacetOperator(op);\n this.setFacetGroupOperator(op);\n },\n isErpd() {\n const superCatalogs = this.$route.query?.superCatalog;\n const superCatalog = (superCatalogs && superCatalogs.constructor === Array) ? superCatalogs[0] : superCatalogs;\n return superCatalog === 'erpd' ? 'true' : 'false';\n },\n changeErpd(erpd) {\n const erdpCatalog = 'erpd';\n const superCatalogs = this.$route.query?.superCatalog;\n const superCatalog = superCatalogs && superCatalogs.constructor === Array ? superCatalogs[0] : superCatalogs;\n if ((erpd === 'false' && superCatalog === erdpCatalog) || (erpd === 'true' && superCatalog !== erdpCatalog)) {\n if (superCatalog === erdpCatalog) {\n delete this.$route.query.showsubcatalogs;\n }\n this.toggleFacet('superCatalog', erdpCatalog);\n }\n },\n /**\n * @description Toggles the facetoperator between 'or'/'and'.\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 resetPage() {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { page: 1 }) });\n },\n triggerResize() {\n // Note: Trigger resize after 200ms when Modal element is visible to properly display the map component\n setTimeout(() => {\n window.dispatchEvent(new Event('resize'));\n }, 200);\n },\n getFacetCount(field, facet) {\n if (field.id === 'scoring') return '';\n return facet.count;\n }\n },\n watch: {\n facetOperatorWatcher: {\n handler(facetOperator) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { facetOperator }) });\n },\n },\n facetGroupOperatorWatcher: {\n handler(facetGroupOperator) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { facetGroupOperator }) });\n },\n },\n getCatalog(catalog) {\n this.superCatalog = catalog;\n }\n },\n created() {\n if (this.$route.query.showsubcatalogs) {\n const superCatalogUrl = this.$route.query.superCatalog;\n if (typeof superCatalogUrl === 'string') {\n const catalogId = superCatalogUrl.substring(superCatalogUrl.lastIndexOf('/') + 1);\n this.loadCatalog(catalogId)\n .then(result => {\n // console.log(\"HELLLLO\", result)\n }\n )\n }\n }\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.map {\n z-index: 0;\n}\n\n.suggestion-input-group {\n position: relative;\n}\n\n.suggestion-input {\n position: absolute;\n top: 0;\n}\n\n.suggestion-list-group {\n position: relative;\n width: 100%;\n}\n\n.suggestion-list {\n width: 100%;\n position: absolute;\n top: 0;\n z-index: 100;\n}\n\n.map-modal-button {\n position: absolute;\n bottom: 0;\n right: 0;\n}\n\n.reset-bounds-button {\n position: absolute;\n bottom: 0;\n left: 0;\n}\n\n#modal-map-wrapper {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n</style>\n"],"names":["_sfc_main","SettingsFacet","DatasetsFacetsItem","CatalogDetailsFacet","mapGetters","availableFacets","sortedFacets","facet","field","languages","isArray","lang","isEmpty","isBoolean","has","isNil","getFacetTranslation","getCountryFlagImg","getTranslationFor","mapActions","facets","fieldId","b","item","qField","key","error","_b","_a","index","op","superCatalogs","erpd","erdpCatalog","superCatalog","facetOperator","facetGroupOperator","catalog","superCatalogUrl","catalogId","result","_hoisted_1","_hoisted_2","_hoisted_3","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_catalog_details_facet","$data","$options","_hoisted_4","_createBlock","_component_settings_facet","_Fragment","_renderList","_normalizeClass","_component_radio_facet","_component_select_facet","_component_pv_show_more","_ctx","_component_pv_button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetCitationModal.vue.mjs","sources":["../../lib/citation/DatasetCitationModal.vue"],"sourcesContent":["<template>\n <div class=\"modal fade\" id=\"citationModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"deleteModalLabel\"\n aria-hidden=\"true\" data-cy=\"citation-modal\">\n <div class=\"modal-dialog modal-lg\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title\" id=\"deleteModalLabel\">\n {{ $t('message.cite.title') }}\n </h2>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" data-cy=\"citation-modal-close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <dataset-citation-table\n v-if=\"citationStyle && !getLoading && getID\"\n :modal-id=\"modalId\"\n :citation-style=\"citationStyle\"\n :available-citation-styles=\"availableCitationStyles\"\n />\n </div>\n <!-- Export options -->\n <!-- Currently unused but might be useful in the future -->\n <!-- <div v-if=\"false\" class=\"modal-footer\">\n <button v-for=\"({name, args, postprocess, extension, disabled}, format) in exportFormats\"\n :key=\"`format@${format}`\" type=\"button\" class=\"btn btn-link\" :disabled=\"disabled || getLoading || !citation\"\n @click=\"handleCitationExport({ args, postprocess, extension, filename: getID })\">\n {{ name }}\n </button>\n </div> -->\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { defineAsyncComponent } from 'vue';\nimport { mapGetters } from \"vuex\";\n\nexport default {\n components: {\n // Lazy-load DatasetCitationTable\n DatasetCitationTable: defineAsyncComponent(() => import(/* webpackChunkName: \"dataset-citation-table\" */ \"./DatasetCitationTable.vue\")),\n },\n props: {\n modalId: {\n type: String,\n default: 'citationModal',\n },\n citationStyle: {\n type: String,\n default: '',\n },\n availableCitationStyles: {\n type: Object,\n required: true,\n },\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getLoading',\n 'getID'\n ]),\n }\n}\n</script>\n"],"names":["_sfc_main","defineAsyncComponent","mapGetters","_hoisted_3","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_5","_toDisplayString","_ctx","_cache","_createTextVNode","$props","_createBlock","_component_dataset_citation_table","_createCommentVNode"],"mappings":";;;AAuCA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA;AAAA,IAEV,sBAAsBC,EAAqB,MAAO;AAAA;AAAA,MAAwD;AAAA,IAA4B,CAAC;AAAA,EACxI;AAAA,EACD,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;EA/DO,OAAM;AAAA,EAAa,IAAG;AAAA,EAAgB,UAAS;AAAA,EAAK,MAAK;AAAA,EAAS,mBAAgB;AAAA,EACrF,eAAY;AAAA,EAAO,WAAQ;;EACtB,OAAM;AAAA,EAAwB,MAAK;GACjCC,IAAA,EAAA,OAAM,gBAAe,GACnBC,IAAA,EAAA,OAAM,eAAc;EACnB,OAAM;AAAA,EAAc,IAAG;GAOxBC,IAAA,EAAA,OAAM,aAAY;;;AAZ7B,SAAAC,EAAA,GAAAC,EA+BM,OA/BNC,GA+BM;AAAA,IA7BJC,EA4BM,OA5BNC,GA4BM;AAAA,MA3BJD,EA0BM,OA1BNN,GA0BM;AAAA,QAzBJM,EAOM,OAPNL,GAOM;AAAA,UANJK,EAEK,MAFLE,GAEKC,EADAC,EAAE,GAAA,oBAAA,CAAA,GAAA,CAAA;AAAA,UAPjBC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,0BASUN,EAES,UAAA;AAAA,YAFD,MAAK;AAAA,YAAS,OAAM;AAAA,YAAQ,gBAAa;AAAA,YAAQ,cAAW;AAAA,YAAQ,WAAQ;AAAA;YAClFA,EAAuC,QAAjC,EAAA,eAAY,OAAM,GAAC,GAAO;AAAA;;QAV5CK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,QAaQN,EAOM,OAPNJ,GAOM;AAAA,UALIW,EAAa,iBAAA,CAAKH,EAAU,cAAIA,EAAK,cAD7CI,EAKEC,GAAA;AAAA,YAnBZ,KAAA;AAAA,YAgBa,YAAUF,EAAO;AAAA,YACjB,kBAAgBA,EAAa;AAAA,YAC7B,6BAA2BA,EAAuB;AAAA,sFAlB/DG,EAAA,IAAA,EAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"DatasetCitationModal.vue.mjs","sources":["../../lib/citation/DatasetCitationModal.vue"],"sourcesContent":["<template>\n <div class=\"modal fade\" id=\"citationModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"deleteModalLabel\"\n aria-hidden=\"true\" data-cy=\"citation-modal\">\n <div class=\"modal-dialog modal-lg\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title\" id=\"deleteModalLabel\">\n {{ $t('message.cite.title') }}\n </h2>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\" data-cy=\"citation-modal-close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <dataset-citation-table\n v-if=\"citationStyle && !getLoading && getID\"\n :modal-id=\"modalId\"\n :citation-style=\"citationStyle\"\n :available-citation-styles=\"availableCitationStyles\"\n />\n </div>\n <!-- Export options -->\n <!-- Currently unused but might be useful in the future -->\n <!-- <div v-if=\"false\" class=\"modal-footer\">\n <button v-for=\"({name, args, postprocess, extension, disabled}, format) in exportFormats\"\n :key=\"`format@${format}`\" type=\"button\" class=\"btn btn-link\" :disabled=\"disabled || getLoading || !citation\"\n @click=\"handleCitationExport({ args, postprocess, extension, filename: getID })\">\n {{ name }}\n </button>\n </div> -->\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { defineAsyncComponent } from 'vue';\nimport { mapGetters } from \"vuex\";\n\nexport default {\n components: {\n // Lazy-load DatasetCitationTable\n DatasetCitationTable: defineAsyncComponent(() => import(/* webpackChunkName: \"dataset-citation-table\" */ \"./DatasetCitationTable.vue\")),\n },\n props: {\n modalId: {\n type: String,\n default: 'citationModal',\n },\n citationStyle: {\n type: String,\n default: '',\n },\n availableCitationStyles: {\n type: Object,\n required: true,\n },\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getLoading',\n 'getID'\n ]),\n }\n}\n</script>\n"],"names":["_sfc_main","defineAsyncComponent","mapGetters","_hoisted_3","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_5","_toDisplayString","_ctx","$props","_createBlock","_component_dataset_citation_table"],"mappings":";;;AAuCA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA;AAAA,IAEV,sBAAsBC,EAAqB,MAAO;AAAA;AAAA,MAAwD;AAAA,IAA4B,CAAC;AAAA,EACxI;AAAA,EACD,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACF;EA/DO,OAAM;AAAA,EAAa,IAAG;AAAA,EAAgB,UAAS;AAAA,EAAK,MAAK;AAAA,EAAS,mBAAgB;AAAA,EACrF,eAAY;AAAA,EAAO,WAAQ;;EACtB,OAAM;AAAA,EAAwB,MAAK;GACjCC,IAAA,EAAA,OAAM,gBAAe,GACnBC,IAAA,EAAA,OAAM,eAAc;EACnB,OAAM;AAAA,EAAc,IAAG;GAOxBC,IAAA,EAAA,OAAM,aAAY;;;AAZ7B,SAAAC,EAAA,GAAAC,EA+BM,OA/BNC,GA+BM;AAAA,IA7BJC,EA4BM,OA5BNC,GA4BM;AAAA,MA3BJD,EA0BM,OA1BNN,GA0BM;AAAA,QAzBJM,EAOM,OAPNL,GAOM;AAAA,UANJK,EAEK,MAFLE,GAEKC,EADAC,EAAE,GAAA,oBAAA,CAAA,GAAA,CAAA;AAAA;0BAEPJ,EAES,UAAA;AAAA,YAFD,MAAK;AAAA,YAAS,OAAM;AAAA,YAAQ,gBAAa;AAAA,YAAQ,cAAW;AAAA,YAAQ,WAAQ;AAAA;YAClFA,EAAuC,QAAjC,EAAA,eAAY,OAAM,GAAC,GAAO;AAAA;;;QAGpCA,EAOM,OAPNJ,GAOM;AAAA,UALIS,EAAa,iBAAA,CAAKD,EAAU,cAAIA,EAAK,cAD7CE,EAKEC,GAAA;AAAA;YAHC,YAAUF,EAAO;AAAA,YACjB,kBAAgBA,EAAa;AAAA,YAC7B,6BAA2BA,EAAuB;AAAA;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetCitationTable.vue.mjs","sources":["../../lib/citation/DatasetCitationTable.vue"],"sourcesContent":["/**\n * Shows a table with the dataset citation based on the current state of DatasetDetails store.\n */\n\n<template>\n <div>\n <table class=\"table table-borderless table-responsive\">\n <tbody>\n <tr>\n <th scope=\"row\" class=\"text-muted font-weight-light\">\n {{ availableCitationStyles[citationStyle] }}\n </th>\n <td v-if=\"isReady\">\n <div ref=\"bibliography\" v-html=\"bibliographyHtml\" data-cy=\"bibliography\" />\n </td>\n <td v-else>\n <div>...</div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"mt-3 d-flex justify-content-start align-items-center\">\n <button class=\"btn btn-sm btn-outline-primary\" :disabled=\"!isReady\" @click=\"handleCopyToClipboard\"\n data-cy=\"citation-copy-to-clipboard\">\n {{ $t('message.cite.copyToClipboard') }}\n </button>\n </div>\n </div>\n\n</template>\n\n<script>\nimport { debounce } from 'lodash-es';\nimport { mapGetters } from 'vuex';\nimport { getRepresentativeLocaleOf } from '../utils/helpers';\n\nexport default {\n props: {\n modalId: {\n type: String,\n required: true,\n },\n citationStyle: {\n type: String,\n required: true,\n },\n availableCitationStyles: {\n type: Object,\n required: true,\n },\n },\n emits: ['ready'],\n data: () => ({\n currentCitationId: null,\n citation: null,\n // Currently unused, but might be useful in the future\n // exportFormats: {\n // bibtex: {\n // name: 'BibTeX',\n // format: 'bibtex',\n // args: ['biblatex'],\n // extension: 'bib',\n // },\n // datacite: {\n // name: 'DataCite XML',\n // format: 'datacite',\n // args: ['data'],\n // extension: 'xml',\n // // todo\n // disabled: true,\n // },\n // json: {\n // name: 'JSON',\n // format: 'json',\n // args: ['data', { format: 'object' }],\n // extension: 'json',\n // postprocess: o => JSON.stringify(o[0], null, 2),\n // },\n // jsonld: {\n // name: 'JSON-LD',\n // format: 'json-ld',\n // extension: 'jsonld',\n // // todo\n // disabled: true,\n // },\n // },\n }),\n computed: {\n ...mapGetters('datasetDetails', [\n 'getLoading',\n 'getID',\n ]),\n /**\n * Provide bibliography html based on current citation and citation style\n */\n bibliographyHtml() {\n if (!this.citation) {\n return '';\n }\n let bibliography = this.citation.format('bibliography', {\n format: 'html',\n template: this.citationStyle || 'apa',\n lang: 'en-US',\n });\n\n // Bibliography conditional post-processing\n // Remove Vancouver citation style numbering header from bibliography\n const isVancouver = this.citationStyle === 'vancouver';\n bibliography = bibliography && isVancouver\n ? bibliography.replace(/<div class=\"csl-left-margin\">\\d+\\. <\\/div>/g, '')\n : bibliography;\n\n return bibliography || '';\n },\n /**\n * Provide bibliography text for clipboard content\n */\n bibliographyText() {\n if (!this.citation) {\n return '';\n }\n\n const bibliographyText = this.citationStyle === 'vancouver'\n // If vancouver style, refer to html text content because it has postformatting applied\n ? this.$refs.bibliography.textContent.trim()\n // Otherwise, just format bibliography as text\n : this.citation.format('bibliography', {\n format: 'text',\n template: this.citationStyle || 'apa',\n lang: 'en-US',\n });\n\n return bibliographyText || '';\n },\n isReady() {\n this.$emit('ready');\n return !this.getLoading && this.citation && this.bibliographyHtml;\n },\n },\n watch: {\n // Update citation when dataset details are loaded\n // Uses watcher instead of computed property because computed is unable to\n // handle async code (i.e. citation retrieval per http request)\n getLoading: {\n /**\n * Assign citation object (CSL) based on current dataset in store to vm.citation\n */\n handler(isLoading) {\n if (isLoading) return;\n if (this.currentCitationId === this.getID) return;\n this.currentCitationId = this.getID;\n this.retrieveCitation(this);\n },\n immediate: false,\n },\n },\n async created() {\n const { plugins } = await import('@citation-js/core');\n\n await import('@citation-js/plugin-csl');\n await import('@citation-js/plugin-doi');\n\n const { default: installDcatStateToCsl } = await import('./plugins/dcat-state-to-csl');\n const { default: installCslAddAccessed } = await import('./plugins/csl-add-accessed');\n installDcatStateToCsl(plugins);\n installCslAddAccessed(plugins);\n\n const { default: deu } = await import('./template/deu');\n const styleConfig = plugins.config.get('@csl');\n if (styleConfig) {\n // styleConfig.templates.add(chicago.name, chicago.csl);\n // styleConfig.templates.add(datacite.name, datacite.csl);\n styleConfig.templates.add(deu.name, deu.csl);\n }\n\n this.retrieveCitation(this);\n },\n methods: {\n /**\n * Retrieves Citation Style Language (CSL) based on current dataset in store\n * Side-effect: sets vm.citation to the resulting citation object\n * @param vm Vue instance\n */\n retrieveCitation: async (vm) => {\n // Deep-clone state to avoid any unintended mutations while citation is generated\n const dataset = JSON.parse(JSON.stringify(vm.$store.state.datasetDetails.dataset));\n Object.freeze(dataset);\n\n if (!dataset || !dataset.id) return null;\n\n const citationParams = [{\n // Pass some additional data to the dataset object\n __meta: {\n // Pass the chosen dataset language for the bibliography\n lang: getRepresentativeLocaleOf(dataset.title, vm.$route.query.locale || 'en', dataset.languages),\n // Pass dataset URL for the bibliography\n url: `http://data.europa.eu/88u/dataset/${dataset.id || vm.$route.params.ds_id}`,\n skipDoiNegotiation: false,\n },\n ...dataset,\n }, {\n forceType: '@piveau/dcat-state',\n generateGraph: false,\n }];\n\n let citation = null;\n\n const { Cite } = await import('@citation-js/core')\n try {\n citation = await Cite.async(...citationParams);\n // eslint-disable-next-line no-param-reassign\n vm.citation = citation;\n return citation;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n // Retry by using manual citation generation as fallback\n // in case above DOI content negotiation service fails\n try {\n // eslint-disable-next-line no-underscore-dangle\n citationParams[0].__meta = { ...citationParams[0].__meta, skipDoiNegotiation: true };\n citation = await Cite.async(...citationParams);\n // eslint-disable-next-line no-param-reassign\n vm.citation = citation;\n return citation;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n return citation;\n },\n /**\n * Handle export of the citation\n *\n * @param {Object} format - The export format object\n * @param {String} format.args - The arguments to be passed into citation.format\n * @param {String} format.postprocess - A function to be called on the result of citation.format\n * @param {String} format.extension - The file extension\n * @param {String} format.filename - The filename\n */\n // handleCitationExport({\n // args,\n // postprocess = o => o,\n // extension,\n // filename = 'dataset',\n // }) {\n // const exportedCitation = this.citation.format(\n // ...args,\n // { graph: false },\n // );\n // const postprocessedCitation = postprocess(exportedCitation);\n\n // this.download(`${filename}.${extension}`, postprocessedCitation);\n // },\n /**\n * Download the given content as a file\n *\n * @see https://stackoverflow.com/a/45831280\n *\n * @param {String} filename - The filename\n * @param {String} content - The content to be downloaded\n */\n // download(filename, text) {\n // const element = document.createElement('a');\n // element.setAttribute('href', `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`);\n // element.setAttribute('download', filename);\n\n // element.style.display = 'none';\n // document.body.appendChild(element);\n\n // element.click();\n\n // document.body.removeChild(element);\n // },\n /**\n * Copy the bibliography to the clipboard\n */\n async handleCopyToClipboard() {\n // Select the bibliography text\n window.getSelection().selectAllChildren(this.$refs.bibliography);\n\n // Copy the text to the clipboard\n try {\n await navigator.clipboard.writeText(this.bibliographyText);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy to clipboard: ', err);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","mapGetters","bibliography","isVancouver","isLoading","plugins","installDcatStateToCsl","installCslAddAccessed","deu","styleConfig","vm","dataset","citationParams","getRepresentativeLocaleOf","citation","Cite","e","err","_hoisted_1","_hoisted_4","_hoisted_6","_hoisted_7","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$props","_cache","_createTextVNode","$options","_openBlock","_hoisted_3","_hoisted_5","args","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"DatasetCitationTable.vue.mjs","sources":["../../lib/citation/DatasetCitationTable.vue"],"sourcesContent":["/**\n * Shows a table with the dataset citation based on the current state of DatasetDetails store.\n */\n\n<template>\n <div>\n <table class=\"table table-borderless table-responsive\">\n <tbody>\n <tr>\n <th scope=\"row\" class=\"text-muted font-weight-light\">\n {{ availableCitationStyles[citationStyle] }}\n </th>\n <td v-if=\"isReady\">\n <div ref=\"bibliography\" v-html=\"bibliographyHtml\" data-cy=\"bibliography\" />\n </td>\n <td v-else>\n <div>...</div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"mt-3 d-flex justify-content-start align-items-center\">\n <button class=\"btn btn-sm btn-outline-primary\" :disabled=\"!isReady\" @click=\"handleCopyToClipboard\"\n data-cy=\"citation-copy-to-clipboard\">\n {{ $t('message.cite.copyToClipboard') }}\n </button>\n </div>\n </div>\n\n</template>\n\n<script>\nimport { debounce } from 'lodash-es';\nimport { mapGetters } from 'vuex';\nimport { getRepresentativeLocaleOf } from '../utils/helpers';\n\nexport default {\n props: {\n modalId: {\n type: String,\n required: true,\n },\n citationStyle: {\n type: String,\n required: true,\n },\n availableCitationStyles: {\n type: Object,\n required: true,\n },\n },\n emits: ['ready'],\n data: () => ({\n currentCitationId: null,\n citation: null,\n // Currently unused, but might be useful in the future\n // exportFormats: {\n // bibtex: {\n // name: 'BibTeX',\n // format: 'bibtex',\n // args: ['biblatex'],\n // extension: 'bib',\n // },\n // datacite: {\n // name: 'DataCite XML',\n // format: 'datacite',\n // args: ['data'],\n // extension: 'xml',\n // // todo\n // disabled: true,\n // },\n // json: {\n // name: 'JSON',\n // format: 'json',\n // args: ['data', { format: 'object' }],\n // extension: 'json',\n // postprocess: o => JSON.stringify(o[0], null, 2),\n // },\n // jsonld: {\n // name: 'JSON-LD',\n // format: 'json-ld',\n // extension: 'jsonld',\n // // todo\n // disabled: true,\n // },\n // },\n }),\n computed: {\n ...mapGetters('datasetDetails', [\n 'getLoading',\n 'getID',\n ]),\n /**\n * Provide bibliography html based on current citation and citation style\n */\n bibliographyHtml() {\n if (!this.citation) {\n return '';\n }\n let bibliography = this.citation.format('bibliography', {\n format: 'html',\n template: this.citationStyle || 'apa',\n lang: 'en-US',\n });\n\n // Bibliography conditional post-processing\n // Remove Vancouver citation style numbering header from bibliography\n const isVancouver = this.citationStyle === 'vancouver';\n bibliography = bibliography && isVancouver\n ? bibliography.replace(/<div class=\"csl-left-margin\">\\d+\\. <\\/div>/g, '')\n : bibliography;\n\n return bibliography || '';\n },\n /**\n * Provide bibliography text for clipboard content\n */\n bibliographyText() {\n if (!this.citation) {\n return '';\n }\n\n const bibliographyText = this.citationStyle === 'vancouver'\n // If vancouver style, refer to html text content because it has postformatting applied\n ? this.$refs.bibliography.textContent.trim()\n // Otherwise, just format bibliography as text\n : this.citation.format('bibliography', {\n format: 'text',\n template: this.citationStyle || 'apa',\n lang: 'en-US',\n });\n\n return bibliographyText || '';\n },\n isReady() {\n this.$emit('ready');\n return !this.getLoading && this.citation && this.bibliographyHtml;\n },\n },\n watch: {\n // Update citation when dataset details are loaded\n // Uses watcher instead of computed property because computed is unable to\n // handle async code (i.e. citation retrieval per http request)\n getLoading: {\n /**\n * Assign citation object (CSL) based on current dataset in store to vm.citation\n */\n handler(isLoading) {\n if (isLoading) return;\n if (this.currentCitationId === this.getID) return;\n this.currentCitationId = this.getID;\n this.retrieveCitation(this);\n },\n immediate: false,\n },\n },\n async created() {\n const { plugins } = await import('@citation-js/core');\n\n await import('@citation-js/plugin-csl');\n await import('@citation-js/plugin-doi');\n\n const { default: installDcatStateToCsl } = await import('./plugins/dcat-state-to-csl');\n const { default: installCslAddAccessed } = await import('./plugins/csl-add-accessed');\n installDcatStateToCsl(plugins);\n installCslAddAccessed(plugins);\n\n const { default: deu } = await import('./template/deu');\n const styleConfig = plugins.config.get('@csl');\n if (styleConfig) {\n // styleConfig.templates.add(chicago.name, chicago.csl);\n // styleConfig.templates.add(datacite.name, datacite.csl);\n styleConfig.templates.add(deu.name, deu.csl);\n }\n\n this.retrieveCitation(this);\n },\n methods: {\n /**\n * Retrieves Citation Style Language (CSL) based on current dataset in store\n * Side-effect: sets vm.citation to the resulting citation object\n * @param vm Vue instance\n */\n retrieveCitation: async (vm) => {\n // Deep-clone state to avoid any unintended mutations while citation is generated\n const dataset = JSON.parse(JSON.stringify(vm.$store.state.datasetDetails.dataset));\n Object.freeze(dataset);\n\n if (!dataset || !dataset.id) return null;\n\n const citationParams = [{\n // Pass some additional data to the dataset object\n __meta: {\n // Pass the chosen dataset language for the bibliography\n lang: getRepresentativeLocaleOf(dataset.title, vm.$route.query.locale || 'en', dataset.languages),\n // Pass dataset URL for the bibliography\n url: `http://data.europa.eu/88u/dataset/${dataset.id || vm.$route.params.ds_id}`,\n skipDoiNegotiation: false,\n },\n ...dataset,\n }, {\n forceType: '@piveau/dcat-state',\n generateGraph: false,\n }];\n\n let citation = null;\n\n const { Cite } = await import('@citation-js/core')\n try {\n citation = await Cite.async(...citationParams);\n // eslint-disable-next-line no-param-reassign\n vm.citation = citation;\n return citation;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n // Retry by using manual citation generation as fallback\n // in case above DOI content negotiation service fails\n try {\n // eslint-disable-next-line no-underscore-dangle\n citationParams[0].__meta = { ...citationParams[0].__meta, skipDoiNegotiation: true };\n citation = await Cite.async(...citationParams);\n // eslint-disable-next-line no-param-reassign\n vm.citation = citation;\n return citation;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n\n return citation;\n },\n /**\n * Handle export of the citation\n *\n * @param {Object} format - The export format object\n * @param {String} format.args - The arguments to be passed into citation.format\n * @param {String} format.postprocess - A function to be called on the result of citation.format\n * @param {String} format.extension - The file extension\n * @param {String} format.filename - The filename\n */\n // handleCitationExport({\n // args,\n // postprocess = o => o,\n // extension,\n // filename = 'dataset',\n // }) {\n // const exportedCitation = this.citation.format(\n // ...args,\n // { graph: false },\n // );\n // const postprocessedCitation = postprocess(exportedCitation);\n\n // this.download(`${filename}.${extension}`, postprocessedCitation);\n // },\n /**\n * Download the given content as a file\n *\n * @see https://stackoverflow.com/a/45831280\n *\n * @param {String} filename - The filename\n * @param {String} content - The content to be downloaded\n */\n // download(filename, text) {\n // const element = document.createElement('a');\n // element.setAttribute('href', `data:text/plain;charset=utf-8,${encodeURIComponent(text)}`);\n // element.setAttribute('download', filename);\n\n // element.style.display = 'none';\n // document.body.appendChild(element);\n\n // element.click();\n\n // document.body.removeChild(element);\n // },\n /**\n * Copy the bibliography to the clipboard\n */\n async handleCopyToClipboard() {\n // Select the bibliography text\n window.getSelection().selectAllChildren(this.$refs.bibliography);\n\n // Copy the text to the clipboard\n try {\n await navigator.clipboard.writeText(this.bibliographyText);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy to clipboard: ', err);\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","mapGetters","bibliography","isVancouver","isLoading","plugins","installDcatStateToCsl","installCslAddAccessed","deu","styleConfig","vm","dataset","citationParams","getRepresentativeLocaleOf","citation","Cite","e","err","_hoisted_1","_hoisted_6","_createElementBlock","_createElementVNode","_hoisted_2","_toDisplayString","$props","$options","_hoisted_3","_hoisted_5","_cache","args","_ctx","_hoisted_7"],"mappings":"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"}
@@ -19,7 +19,6 @@ export declare function useRuntimeEnv(): {
19
19
  corsproxyApiUrl: string;
20
20
  };
21
21
  authentication: {
22
- useService: boolean;
23
22
  login: {
24
23
  useLogin: boolean;
25
24
  loginTitle: string;
@@ -29,6 +28,7 @@ export declare function useRuntimeEnv(): {
29
28
  logoutURL: string;
30
29
  logoutRedirectUri: string;
31
30
  };
31
+ useService: boolean;
32
32
  keycloak: {
33
33
  realm: string;
34
34
  clientId: string;
@@ -310,9 +310,9 @@ export declare function useRuntimeEnv(): {
310
310
  useCombinedSearch: boolean;
311
311
  };
312
312
  languages: {
313
+ useLanguageSelector: boolean;
313
314
  locale: string;
314
315
  fallbackLocale: string;
315
- useLanguageSelector: boolean;
316
316
  };
317
317
  themes: {
318
318
  header: string;
@@ -1,4 +1,4 @@
1
- import { object as s, string as r } from "../../external/zod/lib/index";
1
+ import { object as s, string as r } from "../../external/zod/dist/esm/v3/types";
2
2
  function a(t) {
3
3
  return t.endsWith("/") ? t : `${t}/`;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { object as a, string as e, boolean as t, number as u, enum as l } from "../../external/zod/lib/index";
1
+ import { object as a, string as e, boolean as t, number as u, enum as l } from "../../external/zod/dist/esm/v3/types";
2
2
  const o = a({
3
3
  realm: e().default("piveau"),
4
4
  url: e().url().optional(),
@@ -2057,13 +2057,13 @@ export declare const configSchema: z.ZodObject<{
2057
2057
  locale: z.ZodDefault<z.ZodString>;
2058
2058
  fallbackLocale: z.ZodDefault<z.ZodString>;
2059
2059
  }, "strip", z.ZodTypeAny, {
2060
+ useLanguageSelector: boolean;
2060
2061
  locale: string;
2061
2062
  fallbackLocale: string;
2062
- useLanguageSelector: boolean;
2063
2063
  }, {
2064
+ useLanguageSelector?: boolean | undefined;
2064
2065
  locale?: string | undefined;
2065
2066
  fallbackLocale?: string | undefined;
2066
- useLanguageSelector?: boolean | undefined;
2067
2067
  }>>;
2068
2068
  /**
2069
2069
  * Theming options (optional).
@@ -2109,7 +2109,6 @@ export declare const configSchema: z.ZodObject<{
2109
2109
  corsproxyApiUrl: string;
2110
2110
  };
2111
2111
  authentication: {
2112
- useService: boolean;
2113
2112
  login: {
2114
2113
  useLogin: boolean;
2115
2114
  loginTitle: string;
@@ -2119,6 +2118,7 @@ export declare const configSchema: z.ZodObject<{
2119
2118
  logoutURL: string;
2120
2119
  logoutRedirectUri: string;
2121
2120
  };
2121
+ useService: boolean;
2122
2122
  keycloak: {
2123
2123
  realm: string;
2124
2124
  clientId: string;
@@ -2400,9 +2400,9 @@ export declare const configSchema: z.ZodObject<{
2400
2400
  useCombinedSearch: boolean;
2401
2401
  };
2402
2402
  languages: {
2403
+ useLanguageSelector: boolean;
2403
2404
  locale: string;
2404
2405
  fallbackLocale: string;
2405
- useLanguageSelector: boolean;
2406
2406
  };
2407
2407
  themes: {
2408
2408
  header: string;
@@ -2799,9 +2799,9 @@ export declare const configSchema: z.ZodObject<{
2799
2799
  useCombinedSearch?: boolean | undefined;
2800
2800
  } | undefined;
2801
2801
  languages?: {
2802
+ useLanguageSelector?: boolean | undefined;
2802
2803
  locale?: string | undefined;
2803
2804
  fallbackLocale?: string | undefined;
2804
- useLanguageSelector?: boolean | undefined;
2805
2805
  } | undefined;
2806
2806
  themes?: {
2807
2807
  header?: string | undefined;
@@ -1,39 +1,39 @@
1
- import { object as t } from "../../external/zod/lib/index";
2
- import { apiSchema as m } from "./apiSchema.mjs";
3
- import { authenticationSchema as o } from "./authenticationSchema.mjs";
4
- import { contentSchema as a } from "./contentSchema.mjs";
5
- import { routingSchema as e } from "./routingSchema.mjs";
6
- import { metadataSchema as r } from "./metadataSchema.mjs";
7
- import { languagesSchema as c } from "./languagesSchema.mjs";
8
- import { themesSchema as i } from "./themesSchema.mjs";
9
- import { trackerSchema as n } from "./trackerSchema.mjs";
10
- const j = t({
11
- api: m,
12
- authentication: o,
1
+ import { apiSchema as t } from "./apiSchema.mjs";
2
+ import { authenticationSchema as m } from "./authenticationSchema.mjs";
3
+ import { contentSchema as o } from "./contentSchema.mjs";
4
+ import { routingSchema as a } from "./routingSchema.mjs";
5
+ import { metadataSchema as e } from "./metadataSchema.mjs";
6
+ import { languagesSchema as r } from "./languagesSchema.mjs";
7
+ import { themesSchema as c } from "./themesSchema.mjs";
8
+ import { trackerSchema as i } from "./trackerSchema.mjs";
9
+ import { object as n } from "../../external/zod/dist/esm/v3/types";
10
+ const j = n({
11
+ api: t,
12
+ authentication: m,
13
13
  /**
14
14
  * Routing options (optional).
15
15
  */
16
- routing: e,
16
+ routing: a,
17
17
  /**
18
18
  * Metadata options (optional).
19
19
  */
20
- metadata: r,
20
+ metadata: e,
21
21
  /**
22
22
  * Content options (optional).
23
23
  */
24
- content: a,
24
+ content: o,
25
25
  /**
26
26
  * Language options (optional).
27
27
  */
28
- languages: c,
28
+ languages: r,
29
29
  /**
30
30
  * Theming options (optional).
31
31
  */
32
- themes: i,
32
+ themes: c,
33
33
  /**
34
34
  * Tracker options (optional).
35
35
  */
36
- tracker: n
36
+ tracker: i
37
37
  });
38
38
  export {
39
39
  j as configSchema
@@ -1,4 +1,4 @@
1
- import { object as l, string as t, boolean as e, coerce as a, array as u, record as b, number as o, tuple as r, union as f, literal as s } from "../../external/zod/lib/index";
1
+ import { object as l, string as t, boolean as e, coerce as a, array as u, record as b, number as o, tuple as r, union as f, literal as s } from "../../external/zod/dist/esm/v3/types";
2
2
  const i = l({
3
3
  or: t().default("OR"),
4
4
  and: t().default("AND")
@@ -4,11 +4,11 @@ export declare const languagesSchema: z.ZodDefault<z.ZodObject<{
4
4
  locale: z.ZodDefault<z.ZodString>;
5
5
  fallbackLocale: z.ZodDefault<z.ZodString>;
6
6
  }, "strip", z.ZodTypeAny, {
7
+ useLanguageSelector: boolean;
7
8
  locale: string;
8
9
  fallbackLocale: string;
9
- useLanguageSelector: boolean;
10
10
  }, {
11
+ useLanguageSelector?: boolean | undefined;
11
12
  locale?: string | undefined;
12
13
  fallbackLocale?: string | undefined;
13
- useLanguageSelector?: boolean | undefined;
14
14
  }>>;
@@ -1,4 +1,4 @@
1
- import { object as a, boolean as l, string as e } from "../../external/zod/lib/index";
1
+ import { object as a, boolean as l, string as e } from "../../external/zod/dist/esm/v3/types";
2
2
  const t = a({
3
3
  useLanguageSelector: l().default(!0),
4
4
  locale: e().default("en"),
@@ -1,4 +1,4 @@
1
- import { object as e, string as a } from "../../external/zod/lib/index";
1
+ import { object as e, string as a } from "../../external/zod/dist/esm/v3/types";
2
2
  const o = e({
3
3
  title: a().default("piveau Hub-UI"),
4
4
  description: a().default("A modern and customizable web application for data management of extensive data catalogs."),
@@ -1,4 +1,4 @@
1
- import { object as e, string as t, boolean as a, number as r, array as u } from "../../external/zod/lib/index";
1
+ import { object as e, string as t, boolean as a, number as r, array as u } from "../../external/zod/dist/esm/v3/types";
2
2
  const s = e({
3
3
  routerOptions: e({
4
4
  base: t().default("/"),
@@ -1,4 +1,4 @@
1
- import { object as e, string as t } from "../../external/zod/lib/index";
1
+ import { object as e, string as t } from "../../external/zod/dist/esm/v3/types";
2
2
  const r = e({
3
3
  header: t().default("dark")
4
4
  }).default({});
@@ -1,4 +1,4 @@
1
- import { object as t, boolean as a, string as e } from "../../external/zod/lib/index";
1
+ import { object as t, boolean as a, string as e } from "../../external/zod/dist/esm/v3/types";
2
2
  const o = t({
3
3
  isPiwikPro: a().default(!1),
4
4
  siteId: e().default(""),
@@ -1 +1 @@
1
- {"version":3,"file":"CatalogueMQA.vue.mjs","sources":["../../lib/data-provider-interface/CatalogueMQA.vue"],"sourcesContent":["<template>\n <div class=\"container mb-3\">\n <div>\n <div>\n <div class=\"debug\">\n <strong> API object:</strong> <br><br>\n\n <textarea> {{ token }} </textarea>\n <hr>\n <!-- Disabled for PPE release (no backend on PPE yet)-->\n {{ notficationInfo }}\n\n <br> --- <br>\n\n {{ mailList }}\n\n <br>---<br>\n <strong>Fequency:</strong> <br>\n weekly: {{ weekly }}<br>\n monthly: {{ monthly }} <br>\n <p></p>\n unit: {{ frequencyUnit }} <br>\n value: {{ frequencyValue }}\n\n <br>---<br>\n threshold: {{ threshold }}\n\n </div>\n <h1>MQA notification settings</h1>\n <p>Configuration for\n\n <strong>{{ catalogId }}</strong>\n <!-- <strong>Test Catalogue</strong> -->\n </p>\n <p>For this Catalogue the <b>MQA Rating Checks </b>are currently <b>\n <span v-if=\"!active\">deactivated</span>\n <span v-if=\"active\">activated</span></b>.</p>\n </div>\n\n <button type=\"button\" :class=\"{ 'btn btn-primary mb-5': !active, 'btn btn-secondary': active }\" @click=\"handleActivate()\">\n {{ activatedString }}\n </button>\n </div>\n\n <div v-if=\"active\">\n <div class=\"mqaWrapper\" >\n <h3>Recipients Mail</h3>\n <span>Add and edit mail addresses for recieving the MQA report</span>\n <table class=\"mt-4\" ref=\"mailButtonWrap\" v-if=\"mailList.length !== 0\">\n <tr>\n <th>Mail</th>\n </tr>\n <tr v-for=\"(item, index) in mailList\" class=\"mailItems\" :key=\"index\">\n <td>\n <span v-if=\"!editMode\">{{ item }}</span>\n <input type=\"text\" v-model=\"mailList[index]\" class=\"mail-input\" v-if=\"editMode\"\n @input=\"editErrors[index] = ''\"\n :class=\"{ 'invalidNewMail': editErrors[index] }\" >\n\n <div>\n <button type=\"button\" class=\"btn btn-simple\"\n @click=\"editMode ? saveMail(index) : editMail(index)\">\n {{ editMode ? 'Save' : 'Edit' }}\n </button>\n <button type=\"button\" class=\"btn btn-simple\"\n @click=\"deleteMail(index)\">Delete</button>\n </div>\n </td>\n <span class=\"errormsg\" v-if=\"editErrors[index]\">{{ editErrors[index] }}</span>\n </tr>\n </table>\n <div class=\"d-flex mt-3\">\n <input type=\"text\" v-model=\"newMail.mail\" @input=\"newMail.isValid = true\"\n :class=\"{ 'invalidNewMail': !newMail.isValid }\" placeholder=\"Enter email address\"\n class=\"mail\">\n <button type=\"button\" class=\"btn btn-simple mx-3\" @click=\"addNewMail()\">+ Add Mail</button>\n </div>\n <span class=\"errormsg\" v-if=\"!newMail.isValid\">*Invalid email format</span>\n </div>\n <div class=\"mqaWrapper\">\n <h3>Frequency of Rating Checks</h3>\n <span>Configure the frequency of the MQA rating checks.</span>\n\n <div class=\"d-flex mt-3\">\n <div class=\"mr-3 my-3\">\n <button type=\"button\" class=\"btn btn-simple\" @click=\"setWeekly()\"\n :class=\"{ 'activeChoiceButton': weekly }\">Weekly</button>\n <div class=\"weekdays\" :class=\"{ 'blur': !weekly }\">\n <span v-for=\"(day, index) in week\" :key=\"index\">\n <button :disabled=\"!weekly\" class=\"dayButtons\"\n :class=\"{ 'activeItem': selectedDay === index }\" @click=\"selectDay(index)\">\n {{ day }}\n </button>\n </span>\n </div>\n </div>\n <div class=\"my-3\">\n <button type=\"button\" :class=\"{ 'activeChoiceButton': monthly }\" class=\"btn btn-simple\"\n @click=\"setMonthly()\">Monthly</button>\n <div class=\"d-flex daypicker my-3\" :class=\"{ 'blur': !monthly }\">\n <input v-model=\"daysInMonth\" @input=\"selectDay(index)\" :class=\"{ dynamicWidth: inputWidth }\"\n :disabled=\"!monthly\">\n <div class=\"caretWrap\">\n <button @click=\"editDate('up')\" class=\"caretButtons ml-1\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\"\n class=\"bi bi-caret-up-fill\" viewBox=\"0 0 16 16\">\n <path\n d=\"m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z\" />\n </svg></button>\n <button @click=\"editDate()\" class=\"caretButtons mr-1\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\"\n class=\"bi bi-caret-down-fill\" viewBox=\"0 0 16 16\">\n <path\n d=\"M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg></button>\n </div>\n <span>day of the month</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mqaWrapper\">\n <h3>Notification Threshold</h3>\n <span>This slider sets a threshold value. A notification email will be sent when the measured value increases and the difference between the first and last measurement exceeds the set threshold.</span>\n <div class=\"w-50 mt-3\">\n <div class=\"d-flex justify-content-between\">\n <span><b>0</b></span>\n <span><b>400</b></span>\n </div>\n <input type=\"range\" v-model=\"threshold\" min=\"0\" max=\"400\" />\n <p>Lower than <b>{{ threshold }}</b> Points</p>\n </div>\n </div>\n <div class=\"actionWrapper\">\n <button type=\"button\" class=\"btn btn-primary\" @click=\"postNotificationSettings\">Save</button>\n <button type=\"button\" class=\"btn btn-cancel\" @click=\"back()\">Cancel</button>\n </div>\n </div>\n </div>\n\n</template>\n<script setup>\n\nimport { ref } from 'vue';\nimport { useRoute } from 'vue-router'\nimport { getCurrentInstance } from \"vue\";\nimport { useStore } from 'vuex';\nimport { useRouter } from 'vue-router';\nimport { mapActions } from 'vuex'\nimport { computed } from 'vue'\nimport { mapGetters } from 'vuex'\n\nimport axios from 'axios'\n\nconst store = useStore();\nconst router = useRouter();\nconst getUserDrafts = computed(() => store.getters['auth/getUserDrafts'])\nconst getUserData = computed(() => store.getters['auth/getUserData'])\nconst token = computed(() => getUserData.value.rtpToken)\n\n// Update the mapActions usage\nconst authActions = mapActions('auth', {\n updateUserData: 'updateUserData'\n})\n\n// Destructure the action\nconst { updateUserData } = authActions\n\nconst showSnackbar = (payload) => {\n store.dispatch('snackbar/showSnackbar', payload);\n};\n\nconst triggerSnackbar = () => {\n showSnackbar({\n message: 'Saved Successfully',\n variant: 'success',\n });\n };\n\n// Map the showSnackbar action from the snackbar module\n\nconst route = useRoute()\n\nlet monthly = ref(false)\nlet weekly = ref(false)\nlet mailButtonWrap = ref(null)\nlet activatedString = ref('Activate')\nlet inputWidth = ref(false)\nlet active = ref(false)\nlet mailList = ref()\nlet week = ['Mo', 'Tue', 'We', 'Th', 'Fr', 'Sa', 'Su']\nlet daysInMonth = ref(1)\nlet editMode = ref(false);\nlet threshold = ref(0);\nlet frequencyUnit = ref('');\nlet frequencyValue = ref('');\nlet selectedDay = ref(null);\nconst catalogId = route.params.id\nconst app = getCurrentInstance()\nconst notificationBaseUrl = app.appContext.app.config.globalProperties.$env.api.notificationBaseUrl\nconst apiKey = app.appContext.app.config.globalProperties.$env.api.apiKey\n\n\n\nconst selectDay = (index) => {\n if (weekly.value) {\n selectedDay.value = index;\n frequencyValue.value = selectedDay; // Update frequencyValue when a day is selected\n }\n};\n\nconst setWeekly = () => {\n weekly.value = true;\n monthly.value = false;\n selectedDay.value = frequencyValue.value; // Set the selected day based on frequencyValue\n};\n\nconst setMonthly = () => {\n weekly.value = false;\n monthly.value = true;\n selectedDay.value = frequencyValue.value; // Set the day of the month based on frequencyValue\n};\n\nconst notficationInfo = ref({})\n\nconst isValidEmail = (email) => {\n const regex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return regex.test(email);\n};\n\nlet newMail = ref({ mail: '', isValid: true });\nlet editErrors = ref({});\n\n// enabeld for PPE release (dummy data)\n// mailList.value = [{ 'mail': \"mail@mail2.com\" }, { 'mail': \"mail@mail1.com\" }]\n\nconst fetchNotificationInfo = async () => {\n const config = {\n method: 'get',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n },\n }\n\n try {\n const response = await axios.request(config)\n notficationInfo.value = response.data\n\n if (notficationInfo.value.activeStatus === true) {\n active.value = true\n activatedString.value = 'Deactivate'\n } if (notficationInfo.value.activeStatus === false) {\n active.value = false\n activatedString.value = 'Activate'\n }\n\n mailList.value = notficationInfo.value.receiverEmailList\n frequencyUnit.value = notficationInfo.value.frequency.unit\n frequencyValue.value = notficationInfo.value.frequency.value\n threshold.value = notficationInfo.value.threshold\n\n if (frequencyUnit.value === 'week') {\n weekly.value = true\n monthly.value = false\n selectedDay.value = frequencyValue.value; // Set the selected day based on frequencyValue\n } else if (frequencyUnit.value === 'month') {\n weekly.value = false\n monthly.value = true\n daysInMonth.value = frequencyValue.value\n }\n\n console.log('Response:', response)\n } catch (error) {\n console.log('Full error:', error)\n }\n}\n\nconst postNotificationSettings = async () => {\n\n if (weekly.value === true) {\n frequencyUnit.value = \"week\"\n frequencyValue.value = selectedDay.value\n } else if (monthly.value === true) {\n frequencyUnit.value = \"month\"\n frequencyValue.value = daysInMonth.value\n }\n\n const config = {\n method: 'post',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n data: JSON.stringify({\n receiverEmailList: mailList.value,\n threshold: Number(threshold.value),\n frequency: {\n unit: frequencyUnit.value,\n value: frequencyValue.value\n },\n activeStatus: true\n })\n }\n\n try {\n const response = await axios.request(config)\n console.log('Settings updated:', response.data)\n triggerSnackbar();\n router.push({ name: 'DataProviderInterface-UserCatalogues' });\n return response.data\n\n } catch (error) {\n triggerSnackbar({\n message: 'Error updating settings.',\n variant: 'error',\n });\n\n console.log('Error updating settings:', error)\n\n throw error\n }\n}\n\nfetchNotificationInfo()\n\nconst postDeactive = async () => {\n\n const config = {\n method: 'post',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n data: JSON.stringify({\n activeStatus: active.value\n })\n }\n\n try {\n const response = await axios.request(config)\n console.log('Settings updated:', response.data)\n triggerSnackbar();\n if(!active.value) {router.push({ name: 'DataProviderInterface-UserCatalogues' });}\n return response.data\n\n\n } catch (error) {\n triggerSnackbar({\n message: 'Error updating settings.',\n variant: 'error',\n });\n\n console.log('Error updating settings:', error)\n\n throw error\n\n }\n}\n\nconst editMail = () => {\n editMode.value = true\n showSnackbar({\n message: 'Email added successfully.',\n variant: 'success',\n });\n}\n\nconst saveMail = (index) => {\n const email = mailList.value[index].trim();\n if (isValidEmail(email)) {\n editMode.value = false;\n delete editErrors.value[index];\n } else {\n editErrors.value[index] = '*Invalid email format';\n }\n};\n\nconst deleteMail = (index) => {\n mailList.value.splice(index, 1);\n}\n\nconst editDate = (count) => {\n if (count === \"up\" && daysInMonth.value < 28) {\n if (daysInMonth.value > 8) {\n inputWidth.value = true\n }\n daysInMonth.value++\n }\n else if (daysInMonth.value > 1) {\n if (daysInMonth.value < 11) {\n inputWidth.value = false\n }\n daysInMonth.value--\n }\n}\n\nconst addNewMail = () => {\n if (newMail.value.mail.trim() === '') {\n newMail.value.isValid = false;\n return;\n }\n if (isValidEmail(newMail.value.mail)) {\n mailList.value.push(newMail.value.mail);\n newMail.value.mail = ''; // Clear input after successful addition\n newMail.value.isValid = true;\n } else {\n newMail.value.isValid = false;\n }\n}\nconst handleActivate = () => {\n if (!active.value) {\n active.value = true\n activatedString.value = 'Deactivate'\n postDeactive()\n } else {\n active.value = false\n activatedString.value = 'Activate'\n postDeactive()\n }\n}\n\nconst back = () => {\n router.push({ name: 'DataProviderInterface-UserCatalogues' });\n}\n\n</script>\n<style scoped>\n.debug {\n position: fixed;\n right: 20px;\n top: 20px;\n border-radius: 20px;\n width: 400px;\n z-index: 999999;\n padding: 20px;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 16px;\n box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(5px);\n -webkit-backdrop-filter: blur(5px);\n border: 1px solid rgba(255, 255, 255, 0.3);\n display: none;\n}\n\n.btn-simple {\n border-color: rgb(115, 115, 115);\n}\n\n.btn-cancel {\n border-color: transparent;\n}\n\n.mail {\n width: 270px;\n padding: 5px 5px 5px 10px;\n}\n\n\n.errormsg {\n color: red;\n font-size: 10px;\n}\n\n.activeChoiceButton {\n background-color: var(--primary);\n color: white;\n border-color: var(--primary);\n\n &:active {\n background-color: #3E6CD5 !important;\n }\n\n &:focus {\n outline: none;\n background-color: #3E6CD5;\n }\n\n &:focus-visible {\n outline: none;\n background-color: #3E6CD5;\n }\n}\n\n\n.invalid {\n border-bottom: 1px solid red !important;\n}\n\n.blur {\n opacity: 0.3;\n}\n\n.invalidNewMail {\n\n border-radius: 2px;\n border: 2px solid rgba(255, 0, 0, 0.336);\n\n &:focus {\n border-radius: 2px;\n box-shadow: 0 0 0 0.1rem rgba(255, 0, 0, 0.774);\n border: 1px solid rgba(255, 0, 0, 0.336);\n }\n\n &:focus-visible {\n outline: 0;\n border-radius: 2px;\n box-shadow: 0 0 0 0.1rem rgba(255, 0, 0, 0.774);\n border: 1px solid rgba(255, 0, 0, 0.336);\n }\n}\n\n.editable {\n transition: all 200ms ease-in-out;\n padding-left: 0.5rem;\n border-bottom: 2px solid var(--primary) !important;\n}\n\n.invalid {\n border-bottom: 1px solid red !important;\n}\n\n.caretButtons {\n all: unset;\n cursor: pointer;\n}\n\n.caretWrap {\n display: contents;\n\n}\n\n.actionWrapper {\n display: flex;\n flex-direction: row-reverse;\n margin-bottom: 100px;\n\n button {\n margin-left: 1rem;\n }\n}\n\ninput[type=\"range\"] {\n width: 100%;\n}\n\n.mqaWrapper {\n margin: 3rem 0;\n}\n\ntable {\n margin-top: 1rem;\n min-width: 50%;\n}\n\nth {\n border-bottom: 1px solid lightgray;\n}\n\ntd {\n display: flex;\n justify-content: space-between;\n padding: 15px 0 0 0cap;\n}\n\n.daypicker {\n padding: 1rem;\n border: 1px solid lightgray;\n border-radius: 15px;\n\n input {\n width: 25px;\n border: none;\n background-color: unset;\n font-weight: 700;\n }\n\n}\n\n.dynamicWidth {\n width: 22px !important;\n}\n\n.activeItem {\n background-color: var(--primary);\n color: white;\n}\n\n.weekdays {\n border: 1px solid lightgray;\n border-radius: 15px;\n margin: 1rem 0;\n overflow: hidden;\n\n .dayButtons {\n border: none;\n display: inline-block;\n text-align: center;\n flex-direction: row;\n min-width: 60px;\n padding: 1rem;\n border-right: 1px solid lightgray;\n cursor: pointer;\n\n &:focus-visible {\n outline: unset;\n background-color: #3E6CD5;\n color: white;\n }\n\n &:hover {\n background-color: #3E6CD5;\n color: white;\n }\n }\n\n span:last-child button {\n border: none;\n }\n}\n\n.mqaWrapper {\n padding: 1rem;\n background-color: #f3f6fc;\n border-radius: 3px;\n}\n\nbutton {\n background-color: unset;\n border: 1px solid var(--primary);\n color: black;\n\n &:hover {\n background-color: #3E6CD5;\n color: white;\n border: 1px solid #3E6CD5;\n }\n}\n\n.btn-primary {\n background-color: var(--primary);\n color: white;\n\n}\n\n.btn-secondary {\n color: #0e47cb;\n}\n\nbutton,\nspan {\n transition: all 100ms ease-in-out;\n}\n</style>\n"],"names":["store","useStore","router","useRouter","computed","getUserData","token","mapActions","showSnackbar","payload","triggerSnackbar","route","useRoute","monthly","ref","weekly","mailButtonWrap","activatedString","inputWidth","active","mailList","week","daysInMonth","editMode","threshold","frequencyUnit","frequencyValue","selectedDay","catalogId","app","getCurrentInstance","notificationBaseUrl","selectDay","index","setWeekly","setMonthly","notficationInfo","isValidEmail","email","newMail","editErrors","fetchNotificationInfo","config","response","axios","error","postNotificationSettings","postDeactive","editMail","saveMail","deleteMail","editDate","count","addNewMail","handleActivate","back"],"mappings":"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"}
1
+ {"version":3,"file":"CatalogueMQA.vue.mjs","sources":["../../lib/data-provider-interface/CatalogueMQA.vue"],"sourcesContent":["<template>\n <div class=\"container mb-3\">\n <div>\n <div>\n <div class=\"debug\">\n <strong> API object:</strong> <br><br>\n\n <textarea> {{ token }} </textarea>\n <hr>\n <!-- Disabled for PPE release (no backend on PPE yet)-->\n {{ notficationInfo }}\n\n <br> --- <br>\n\n {{ mailList }}\n\n <br>---<br>\n <strong>Fequency:</strong> <br>\n weekly: {{ weekly }}<br>\n monthly: {{ monthly }} <br>\n <p></p>\n unit: {{ frequencyUnit }} <br>\n value: {{ frequencyValue }}\n\n <br>---<br>\n threshold: {{ threshold }}\n\n </div>\n <h1>MQA notification settings</h1>\n <p>Configuration for\n\n <strong>{{ catalogId }}</strong>\n <!-- <strong>Test Catalogue</strong> -->\n </p>\n <p>For this Catalogue the <b>MQA Rating Checks </b>are currently <b>\n <span v-if=\"!active\">deactivated</span>\n <span v-if=\"active\">activated</span></b>.</p>\n </div>\n\n <button type=\"button\" :class=\"{ 'btn btn-primary mb-5': !active, 'btn btn-secondary': active }\" @click=\"handleActivate()\">\n {{ activatedString }}\n </button>\n </div>\n\n <div v-if=\"active\">\n <div class=\"mqaWrapper\" >\n <h3>Recipients Mail</h3>\n <span>Add and edit mail addresses for recieving the MQA report</span>\n <table class=\"mt-4\" ref=\"mailButtonWrap\" v-if=\"mailList.length !== 0\">\n <tr>\n <th>Mail</th>\n </tr>\n <tr v-for=\"(item, index) in mailList\" class=\"mailItems\" :key=\"index\">\n <td>\n <span v-if=\"!editMode\">{{ item }}</span>\n <input type=\"text\" v-model=\"mailList[index]\" class=\"mail-input\" v-if=\"editMode\"\n @input=\"editErrors[index] = ''\"\n :class=\"{ 'invalidNewMail': editErrors[index] }\" >\n\n <div>\n <button type=\"button\" class=\"btn btn-simple\"\n @click=\"editMode ? saveMail(index) : editMail(index)\">\n {{ editMode ? 'Save' : 'Edit' }}\n </button>\n <button type=\"button\" class=\"btn btn-simple\"\n @click=\"deleteMail(index)\">Delete</button>\n </div>\n </td>\n <span class=\"errormsg\" v-if=\"editErrors[index]\">{{ editErrors[index] }}</span>\n </tr>\n </table>\n <div class=\"d-flex mt-3\">\n <input type=\"text\" v-model=\"newMail.mail\" @input=\"newMail.isValid = true\"\n :class=\"{ 'invalidNewMail': !newMail.isValid }\" placeholder=\"Enter email address\"\n class=\"mail\">\n <button type=\"button\" class=\"btn btn-simple mx-3\" @click=\"addNewMail()\">+ Add Mail</button>\n </div>\n <span class=\"errormsg\" v-if=\"!newMail.isValid\">*Invalid email format</span>\n </div>\n <div class=\"mqaWrapper\">\n <h3>Frequency of Rating Checks</h3>\n <span>Configure the frequency of the MQA rating checks.</span>\n\n <div class=\"d-flex mt-3\">\n <div class=\"mr-3 my-3\">\n <button type=\"button\" class=\"btn btn-simple\" @click=\"setWeekly()\"\n :class=\"{ 'activeChoiceButton': weekly }\">Weekly</button>\n <div class=\"weekdays\" :class=\"{ 'blur': !weekly }\">\n <span v-for=\"(day, index) in week\" :key=\"index\">\n <button :disabled=\"!weekly\" class=\"dayButtons\"\n :class=\"{ 'activeItem': selectedDay === index }\" @click=\"selectDay(index)\">\n {{ day }}\n </button>\n </span>\n </div>\n </div>\n <div class=\"my-3\">\n <button type=\"button\" :class=\"{ 'activeChoiceButton': monthly }\" class=\"btn btn-simple\"\n @click=\"setMonthly()\">Monthly</button>\n <div class=\"d-flex daypicker my-3\" :class=\"{ 'blur': !monthly }\">\n <input v-model=\"daysInMonth\" @input=\"selectDay(index)\" :class=\"{ dynamicWidth: inputWidth }\"\n :disabled=\"!monthly\">\n <div class=\"caretWrap\">\n <button @click=\"editDate('up')\" class=\"caretButtons ml-1\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\"\n class=\"bi bi-caret-up-fill\" viewBox=\"0 0 16 16\">\n <path\n d=\"m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z\" />\n </svg></button>\n <button @click=\"editDate()\" class=\"caretButtons mr-1\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\"\n class=\"bi bi-caret-down-fill\" viewBox=\"0 0 16 16\">\n <path\n d=\"M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg></button>\n </div>\n <span>day of the month</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mqaWrapper\">\n <h3>Notification Threshold</h3>\n <span>This slider sets a threshold value. A notification email will be sent when the measured value increases and the difference between the first and last measurement exceeds the set threshold.</span>\n <div class=\"w-50 mt-3\">\n <div class=\"d-flex justify-content-between\">\n <span><b>0</b></span>\n <span><b>400</b></span>\n </div>\n <input type=\"range\" v-model=\"threshold\" min=\"0\" max=\"400\" />\n <p>Lower than <b>{{ threshold }}</b> Points</p>\n </div>\n </div>\n <div class=\"actionWrapper\">\n <button type=\"button\" class=\"btn btn-primary\" @click=\"postNotificationSettings\">Save</button>\n <button type=\"button\" class=\"btn btn-cancel\" @click=\"back()\">Cancel</button>\n </div>\n </div>\n </div>\n\n</template>\n<script setup>\n\nimport { ref } from 'vue';\nimport { useRoute } from 'vue-router'\nimport { getCurrentInstance } from \"vue\";\nimport { useStore } from 'vuex';\nimport { useRouter } from 'vue-router';\nimport { mapActions } from 'vuex'\nimport { computed } from 'vue'\nimport { mapGetters } from 'vuex'\n\nimport axios from 'axios'\n\nconst store = useStore();\nconst router = useRouter();\nconst getUserDrafts = computed(() => store.getters['auth/getUserDrafts'])\nconst getUserData = computed(() => store.getters['auth/getUserData'])\nconst token = computed(() => getUserData.value.rtpToken)\n\n// Update the mapActions usage\nconst authActions = mapActions('auth', {\n updateUserData: 'updateUserData'\n})\n\n// Destructure the action\nconst { updateUserData } = authActions\n\nconst showSnackbar = (payload) => {\n store.dispatch('snackbar/showSnackbar', payload);\n};\n\nconst triggerSnackbar = () => {\n showSnackbar({\n message: 'Saved Successfully',\n variant: 'success',\n });\n };\n\n// Map the showSnackbar action from the snackbar module\n\nconst route = useRoute()\n\nlet monthly = ref(false)\nlet weekly = ref(false)\nlet mailButtonWrap = ref(null)\nlet activatedString = ref('Activate')\nlet inputWidth = ref(false)\nlet active = ref(false)\nlet mailList = ref()\nlet week = ['Mo', 'Tue', 'We', 'Th', 'Fr', 'Sa', 'Su']\nlet daysInMonth = ref(1)\nlet editMode = ref(false);\nlet threshold = ref(0);\nlet frequencyUnit = ref('');\nlet frequencyValue = ref('');\nlet selectedDay = ref(null);\nconst catalogId = route.params.id\nconst app = getCurrentInstance()\nconst notificationBaseUrl = app.appContext.app.config.globalProperties.$env.api.notificationBaseUrl\nconst apiKey = app.appContext.app.config.globalProperties.$env.api.apiKey\n\n\n\nconst selectDay = (index) => {\n if (weekly.value) {\n selectedDay.value = index;\n frequencyValue.value = selectedDay; // Update frequencyValue when a day is selected\n }\n};\n\nconst setWeekly = () => {\n weekly.value = true;\n monthly.value = false;\n selectedDay.value = frequencyValue.value; // Set the selected day based on frequencyValue\n};\n\nconst setMonthly = () => {\n weekly.value = false;\n monthly.value = true;\n selectedDay.value = frequencyValue.value; // Set the day of the month based on frequencyValue\n};\n\nconst notficationInfo = ref({})\n\nconst isValidEmail = (email) => {\n const regex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return regex.test(email);\n};\n\nlet newMail = ref({ mail: '', isValid: true });\nlet editErrors = ref({});\n\n// enabeld for PPE release (dummy data)\n// mailList.value = [{ 'mail': \"mail@mail2.com\" }, { 'mail': \"mail@mail1.com\" }]\n\nconst fetchNotificationInfo = async () => {\n const config = {\n method: 'get',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n },\n }\n\n try {\n const response = await axios.request(config)\n notficationInfo.value = response.data\n\n if (notficationInfo.value.activeStatus === true) {\n active.value = true\n activatedString.value = 'Deactivate'\n } if (notficationInfo.value.activeStatus === false) {\n active.value = false\n activatedString.value = 'Activate'\n }\n\n mailList.value = notficationInfo.value.receiverEmailList\n frequencyUnit.value = notficationInfo.value.frequency.unit\n frequencyValue.value = notficationInfo.value.frequency.value\n threshold.value = notficationInfo.value.threshold\n\n if (frequencyUnit.value === 'week') {\n weekly.value = true\n monthly.value = false\n selectedDay.value = frequencyValue.value; // Set the selected day based on frequencyValue\n } else if (frequencyUnit.value === 'month') {\n weekly.value = false\n monthly.value = true\n daysInMonth.value = frequencyValue.value\n }\n\n console.log('Response:', response)\n } catch (error) {\n console.log('Full error:', error)\n }\n}\n\nconst postNotificationSettings = async () => {\n\n if (weekly.value === true) {\n frequencyUnit.value = \"week\"\n frequencyValue.value = selectedDay.value\n } else if (monthly.value === true) {\n frequencyUnit.value = \"month\"\n frequencyValue.value = daysInMonth.value\n }\n\n const config = {\n method: 'post',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n data: JSON.stringify({\n receiverEmailList: mailList.value,\n threshold: Number(threshold.value),\n frequency: {\n unit: frequencyUnit.value,\n value: frequencyValue.value\n },\n activeStatus: true\n })\n }\n\n try {\n const response = await axios.request(config)\n console.log('Settings updated:', response.data)\n triggerSnackbar();\n router.push({ name: 'DataProviderInterface-UserCatalogues' });\n return response.data\n\n } catch (error) {\n triggerSnackbar({\n message: 'Error updating settings.',\n variant: 'error',\n });\n\n console.log('Error updating settings:', error)\n\n throw error\n }\n}\n\nfetchNotificationInfo()\n\nconst postDeactive = async () => {\n\n const config = {\n method: 'post',\n url: `${notificationBaseUrl}/catalogue/${catalogId}/setting`,\n headers: {\n Authorization: `Bearer ${token.value}`,\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n data: JSON.stringify({\n activeStatus: active.value\n })\n }\n\n try {\n const response = await axios.request(config)\n console.log('Settings updated:', response.data)\n triggerSnackbar();\n if(!active.value) {router.push({ name: 'DataProviderInterface-UserCatalogues' });}\n return response.data\n\n\n } catch (error) {\n triggerSnackbar({\n message: 'Error updating settings.',\n variant: 'error',\n });\n\n console.log('Error updating settings:', error)\n\n throw error\n\n }\n}\n\nconst editMail = () => {\n editMode.value = true\n showSnackbar({\n message: 'Email added successfully.',\n variant: 'success',\n });\n}\n\nconst saveMail = (index) => {\n const email = mailList.value[index].trim();\n if (isValidEmail(email)) {\n editMode.value = false;\n delete editErrors.value[index];\n } else {\n editErrors.value[index] = '*Invalid email format';\n }\n};\n\nconst deleteMail = (index) => {\n mailList.value.splice(index, 1);\n}\n\nconst editDate = (count) => {\n if (count === \"up\" && daysInMonth.value < 28) {\n if (daysInMonth.value > 8) {\n inputWidth.value = true\n }\n daysInMonth.value++\n }\n else if (daysInMonth.value > 1) {\n if (daysInMonth.value < 11) {\n inputWidth.value = false\n }\n daysInMonth.value--\n }\n}\n\nconst addNewMail = () => {\n if (newMail.value.mail.trim() === '') {\n newMail.value.isValid = false;\n return;\n }\n if (isValidEmail(newMail.value.mail)) {\n mailList.value.push(newMail.value.mail);\n newMail.value.mail = ''; // Clear input after successful addition\n newMail.value.isValid = true;\n } else {\n newMail.value.isValid = false;\n }\n}\nconst handleActivate = () => {\n if (!active.value) {\n active.value = true\n activatedString.value = 'Deactivate'\n postDeactive()\n } else {\n active.value = false\n activatedString.value = 'Activate'\n postDeactive()\n }\n}\n\nconst back = () => {\n router.push({ name: 'DataProviderInterface-UserCatalogues' });\n}\n\n</script>\n<style scoped>\n.debug {\n position: fixed;\n right: 20px;\n top: 20px;\n border-radius: 20px;\n width: 400px;\n z-index: 999999;\n padding: 20px;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 16px;\n box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(5px);\n -webkit-backdrop-filter: blur(5px);\n border: 1px solid rgba(255, 255, 255, 0.3);\n display: none;\n}\n\n.btn-simple {\n border-color: rgb(115, 115, 115);\n}\n\n.btn-cancel {\n border-color: transparent;\n}\n\n.mail {\n width: 270px;\n padding: 5px 5px 5px 10px;\n}\n\n\n.errormsg {\n color: red;\n font-size: 10px;\n}\n\n.activeChoiceButton {\n background-color: var(--primary);\n color: white;\n border-color: var(--primary);\n\n &:active {\n background-color: #3E6CD5 !important;\n }\n\n &:focus {\n outline: none;\n background-color: #3E6CD5;\n }\n\n &:focus-visible {\n outline: none;\n background-color: #3E6CD5;\n }\n}\n\n\n.invalid {\n border-bottom: 1px solid red !important;\n}\n\n.blur {\n opacity: 0.3;\n}\n\n.invalidNewMail {\n\n border-radius: 2px;\n border: 2px solid rgba(255, 0, 0, 0.336);\n\n &:focus {\n border-radius: 2px;\n box-shadow: 0 0 0 0.1rem rgba(255, 0, 0, 0.774);\n border: 1px solid rgba(255, 0, 0, 0.336);\n }\n\n &:focus-visible {\n outline: 0;\n border-radius: 2px;\n box-shadow: 0 0 0 0.1rem rgba(255, 0, 0, 0.774);\n border: 1px solid rgba(255, 0, 0, 0.336);\n }\n}\n\n.editable {\n transition: all 200ms ease-in-out;\n padding-left: 0.5rem;\n border-bottom: 2px solid var(--primary) !important;\n}\n\n.invalid {\n border-bottom: 1px solid red !important;\n}\n\n.caretButtons {\n all: unset;\n cursor: pointer;\n}\n\n.caretWrap {\n display: contents;\n\n}\n\n.actionWrapper {\n display: flex;\n flex-direction: row-reverse;\n margin-bottom: 100px;\n\n button {\n margin-left: 1rem;\n }\n}\n\ninput[type=\"range\"] {\n width: 100%;\n}\n\n.mqaWrapper {\n margin: 3rem 0;\n}\n\ntable {\n margin-top: 1rem;\n min-width: 50%;\n}\n\nth {\n border-bottom: 1px solid lightgray;\n}\n\ntd {\n display: flex;\n justify-content: space-between;\n padding: 15px 0 0 0cap;\n}\n\n.daypicker {\n padding: 1rem;\n border: 1px solid lightgray;\n border-radius: 15px;\n\n input {\n width: 25px;\n border: none;\n background-color: unset;\n font-weight: 700;\n }\n\n}\n\n.dynamicWidth {\n width: 22px !important;\n}\n\n.activeItem {\n background-color: var(--primary);\n color: white;\n}\n\n.weekdays {\n border: 1px solid lightgray;\n border-radius: 15px;\n margin: 1rem 0;\n overflow: hidden;\n\n .dayButtons {\n border: none;\n display: inline-block;\n text-align: center;\n flex-direction: row;\n min-width: 60px;\n padding: 1rem;\n border-right: 1px solid lightgray;\n cursor: pointer;\n\n &:focus-visible {\n outline: unset;\n background-color: #3E6CD5;\n color: white;\n }\n\n &:hover {\n background-color: #3E6CD5;\n color: white;\n }\n }\n\n span:last-child button {\n border: none;\n }\n}\n\n.mqaWrapper {\n padding: 1rem;\n background-color: #f3f6fc;\n border-radius: 3px;\n}\n\nbutton {\n background-color: unset;\n border: 1px solid var(--primary);\n color: black;\n\n &:hover {\n background-color: #3E6CD5;\n color: white;\n border: 1px solid #3E6CD5;\n }\n}\n\n.btn-primary {\n background-color: var(--primary);\n color: white;\n\n}\n\n.btn-secondary {\n color: #0e47cb;\n}\n\nbutton,\nspan {\n transition: all 100ms ease-in-out;\n}\n</style>\n"],"names":["store","useStore","router","useRouter","computed","getUserData","token","mapActions","showSnackbar","payload","triggerSnackbar","route","useRoute","monthly","ref","weekly","mailButtonWrap","activatedString","inputWidth","active","mailList","week","daysInMonth","editMode","threshold","frequencyUnit","frequencyValue","selectedDay","catalogId","app","getCurrentInstance","notificationBaseUrl","selectDay","index","setWeekly","setMonthly","notficationInfo","isValidEmail","email","newMail","editErrors","fetchNotificationInfo","config","response","axios","error","postNotificationSettings","postDeactive","editMail","saveMail","deleteMail","editDate","count","addNewMail","handleActivate","back","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_cache","_toDisplayString","_unref","_createTextVNode","_normalizeClass","_hoisted_5","_hoisted_6","_Fragment","_renderList","item","$event","_vModelText","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","day","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23"],"mappings":"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"}