@piveau/piveau-hub-ui-modules 4.6.87 → 4.6.89

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.
@@ -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>{{ $t('message.dpi.catalogue.mqa.settings') }}</h1>\n <p>{{ $t('message.dpi.catalogue.mqa.configurationfor') }}\n <strong>{{ catalogId }}</strong>\n </p>\n <p>\n <span v-html=\"$t('message.dpi.catalogue.mqa.ratingchecks')\"></span>\n <b><span v-if=\"!active\">{{ $t('message.dpi.catalogue.mqa.deactivated') }}</span>\n <span v-if=\"active\">{{ $t('message.dpi.catalogue.mqa.activated') }}</span></b>.\n </p>\n </div>\n\n <button type=\"button\" :class=\"{ 'btn btn-primary mb-5': !active, 'btn btn-secondary': active }\"\n @click=\"handleActivate()\">\n {{ activatedString }}\n </button>\n\n <button type=\"button\" :class=\"{ 'btn btn-action mb-5': !active, 'btn btn-action': active }\" @click=\"openMqaReport()\">\n <span class=\"mr-1\"> {{ $t('message.dpi.catalogue.mqa.mqareport') }}</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\n class=\"bi bi-box-arrow-up-right mb-1\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\"\n d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\" />\n <path fill-rule=\"evenodd\"\n d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\" />\n </svg>\n </button>\n\n\n\n </div>\n\n <div v-if=\"active\">\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.notificationthreshold.title') }}</h3>\n <div v-html=\"$t('message.dpi.catalogue.mqa.notificationthreshold.description')\"></div>\n <div class=\"w-50 mt-4\">\n <div class=\"d-flex justify-content-between\">\n <span><b>-1</b></span>\n <span><b>-405</b></span>\n </div>\n <input type=\"range\" v-model=\"threshold\" min=\"1\" max=\"405\" />\n <p>{{ $t('message.dpi.catalogue.mqa.notificationthreshold.notify') }} <b>-{{ threshold }}</b> </p>\n </div>\n </div>\n\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.frequencyratingchecks') }}</h3>\n <span>{{ $t('message.dpi.catalogue.mqa.configurethefrequency.description') }}</span>\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 }\">{{ $t('message.dpi.catalogue.mqa.configurethefrequency.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()\">{{ $t('message.dpi.catalogue.mqa.configuremonthly') }}</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>{{ $t('message.dpi.catalogue.mqa.configurethedayofmonth') }}</span>\n\n </div>\n </div>\n </div>\n </div>\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.recipientsmail') }}</h3>\n <span>{{ $t('message.dpi.catalogue.mqa.mailaddressesforrecieving') }}</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] = ''\" :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\" @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=\"$t('message.dpi.catalogue.mqa.enteremail')\" class=\"mail\">\n <button type=\"button\" class=\"btn btn-simple mx-3\" @click=\"addNewMail()\">{{ $t('message.dpi.catalogue.mqa.addmail') }}</button>\n </div>\n <span class=\"errormsg\" v-if=\"!newMail.isValid\">*Invalid email format</span>\n </div>\n\n <div class=\"actionWrapper\">\n <button type=\"button\" class=\"btn btn-primary\" @click=\"postNotificationSettings\">{{ $t('message.dpi.catalogue.mqa.save') }}</button>\n <button type=\"button\" class=\"btn btn-cancel\" @click=\"back()\">{{ $t('message.dpi.catalogue.mqa.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(1);\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\nconst openMqaReport = () => {\n const mqaBaseUrl = 'https://data.europa.eu';\n const locale = route.query.locale || 'en';\n const mqaUrl = `${mqaBaseUrl}/mqa/catalogues/${catalogId}?locale=${locale}`;\n window.open(mqaUrl, '_blank');\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\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\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","openMqaReport","mqaBaseUrl","locale","mqaUrl","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","$t","_normalizeClass","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_10","$event","_hoisted_11","_hoisted_12","_hoisted_13","_Fragment","_renderList","day","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","item","_vModelText","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_26","_hoisted_27"],"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>{{ $t('message.dpi.catalogue.mqa.settings') }}</h1>\n <p>{{ $t('message.dpi.catalogue.mqa.configurationfor') }}\n <strong>{{ catalogId }}</strong>\n </p>\n <p>\n <span v-html=\"$t('message.dpi.catalogue.mqa.ratingchecks')\"></span>\n <b><span v-if=\"!active\">{{ $t('message.dpi.catalogue.mqa.deactivated') }}</span>\n <span v-if=\"active\">{{ $t('message.dpi.catalogue.mqa.activated') }}</span></b>.\n </p>\n </div>\n\n <button type=\"button\" :class=\"{ 'btn btn-primary mb-5': !active, 'btn btn-secondary': active }\"\n @click=\"handleActivate()\">\n {{ activatedString }}\n </button>\n\n <button type=\"button\" :class=\"{ 'btn btn-action mb-5': !active, 'btn btn-action': active }\" @click=\"openMqaReport()\">\n <span class=\"mr-1\"> {{ $t('message.dpi.catalogue.mqa.mqareport') }}</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\n class=\"bi bi-box-arrow-up-right mb-1\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\"\n d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\" />\n <path fill-rule=\"evenodd\"\n d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\" />\n </svg>\n </button>\n\n\n\n </div>\n\n <div v-if=\"active\">\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.notificationthreshold.title') }}</h3>\n <div v-html=\"$t('message.dpi.catalogue.mqa.notificationthreshold.description')\"></div>\n <div class=\"w-50 mt-4\">\n <div class=\"d-flex justify-content-between\">\n <span><b>-1</b></span>\n <span><b>-405</b></span>\n </div>\n <input type=\"range\" v-model=\"threshold\" min=\"1\" max=\"405\" />\n <p>{{ $t('message.dpi.catalogue.mqa.notificationthreshold.notify') }} <b>-{{ threshold }}</b> </p>\n </div>\n </div>\n\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.frequencyratingchecks') }}</h3>\n <span>{{ $t('message.dpi.catalogue.mqa.configurethefrequency.description') }}</span>\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 }\">{{ $t('message.dpi.catalogue.mqa.configurethefrequency.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()\">{{ $t('message.dpi.catalogue.mqa.configuremonthly') }}</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>{{ $t('message.dpi.catalogue.mqa.configurethedayofmonth') }}</span>\n\n </div>\n </div>\n </div>\n </div>\n <div class=\"mqaWrapper\">\n <h3>{{ $t('message.dpi.catalogue.mqa.recipientsmail') }}</h3>\n <span>{{ $t('message.dpi.catalogue.mqa.mailaddressesforrecieving') }}</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] = ''\" :class=\"{ 'invalidNewMail': editErrors[index] }\">\n\n <div>\n <button type=\"button\" class=\"btn btn-simple\"\n @click=\"editMode ? saveMail(index) : editMail(index)\">\n {{ editMode ? $t('message.dpi.catalogue.mqa.save') : $t('message.dataupload.menu.edit') }}\n </button>\n <button type=\"button\" class=\"btn btn-simple\" @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=\"$t('message.dpi.catalogue.mqa.enteremail')\" class=\"mail\">\n <button type=\"button\" class=\"btn btn-simple mx-3\" @click=\"addNewMail()\">{{ $t('message.dpi.catalogue.mqa.addmail') }}</button>\n </div>\n <span class=\"errormsg\" v-if=\"!newMail.isValid\">*Invalid email format</span>\n </div>\n\n <div class=\"actionWrapper\">\n <button type=\"button\" class=\"btn btn-primary\" @click=\"postNotificationSettings\">{{ $t('message.dpi.catalogue.mqa.save') }}</button>\n <button type=\"button\" class=\"btn btn-cancel\" @click=\"back()\">{{ $t('message.dpi.catalogue.mqa.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(1);\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\nconst { appContext } = getCurrentInstance();\nconst $t = appContext.config.globalProperties.$t;\n\n\n\n\nconst openMqaReport = () => {\n const mqaBaseUrl = 'https://data.europa.eu';\n const locale = route.query.locale || 'en';\n const mqaUrl = `${mqaBaseUrl}/mqa/catalogues/${catalogId}?locale=${locale}`;\n window.open(mqaUrl, '_blank');\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 = $t('message.dpi.catalogue.mqa.deactivate');\n } if (notficationInfo.value.activeStatus === false) {\n active.value = false\n activatedString.value = $t('message.dpi.catalogue.mqa.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 = $t('message.dpi.catalogue.mqa.deactivate');\n postDeactive()\n } else {\n active.value = false\n activatedString.value = $t('message.dpi.catalogue.mqa.activate');\n postDeactive()\n }\n}\n\nconst back = () => {\n router.push({ name: 'DataProviderInterface-UserCatalogues' });\n}\n\n</script>\n<style scoped>\n\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\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","appContext","$t","openMqaReport","mqaBaseUrl","locale","mqaUrl","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_6","_hoisted_7","_hoisted_8","_hoisted_10","$event","_hoisted_11","_hoisted_12","_hoisted_13","_Fragment","_renderList","day","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","item","_vModelText","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_26","_hoisted_27"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { defineComponent as m, reactive as V, openBlock as f, createElementBlock as x, createElementVNode as a, toDisplayString as c, createTextVNode as i, createVNode as r, unref as d, withCtx as s, renderSlot as g } from "vue";
2
- import { FormKit as u } from "@formkit/vue";
1
+ import { defineComponent as m, reactive as V, openBlock as f, createElementBlock as x, createElementVNode as a, toDisplayString as c, createTextVNode as i, createVNode as r, unref as s, withCtx as d, renderSlot as g } from "vue";
2
+ import { FormKit as p } from "@formkit/vue";
3
3
  const k = { class: "formkitProperty" }, y = { class: "formkitCmpWrap d-flex" }, b = /* @__PURE__ */ m({
4
4
  __name: "SelectControlledGroup",
5
5
  props: {
@@ -13,16 +13,16 @@ const k = { class: "formkitProperty" }, y = { class: "formkitCmpWrap d-flex" },
13
13
  placeholder: {},
14
14
  info: {}
15
15
  },
16
- setup(n) {
17
- const t = n, l = V({
16
+ setup(u) {
17
+ const t = u, l = V({
18
18
  groupValue: {},
19
19
  selectValue: t.initialValue ?? Object.keys(t.options)[0]
20
20
  });
21
- return (p, e) => (f(), x("div", k, [
21
+ return (n, e) => (f(), x("div", k, [
22
22
  a("h4", null, c(t.label), 1),
23
23
  e[4] || (e[4] = i()),
24
24
  a("div", y, [
25
- r(d(u), {
25
+ r(s(p), {
26
26
  id: t.id,
27
27
  type: "group",
28
28
  name: n.name,
@@ -30,19 +30,19 @@ const k = { class: "formkitProperty" }, y = { class: "formkitCmpWrap d-flex" },
30
30
  modelValue: l.groupValue,
31
31
  "onUpdate:modelValue": e[1] || (e[1] = (o) => l.groupValue = o)
32
32
  }, {
33
- default: s(() => [
34
- r(d(u), {
33
+ default: d(() => [
34
+ r(s(p), {
35
35
  modelValue: l.selectValue,
36
36
  "onUpdate:modelValue": e[0] || (e[0] = (o) => l.selectValue = o),
37
37
  type: "select",
38
38
  options: t.options,
39
39
  name: t.selectName
40
40
  }, {
41
- prefix: s(() => [...e[2] || (e[2] = [])]),
41
+ prefix: d(() => [...e[2] || (e[2] = [])]),
42
42
  _: 1
43
43
  }, 8, ["modelValue", "options", "name"]),
44
44
  e[3] || (e[3] = i()),
45
- g(p.$slots, "default", {
45
+ g(n.$slots, "default", {
46
46
  selectValue: l.selectValue
47
47
  })
48
48
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"SelectControlledGroup.vue.mjs","sources":["../../../lib/data-provider-interface/components/SelectControlledGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * `SelectControlledGroup` is a Vue component wrapping the FormKit group input. \n * It features a central select input that dictates the behavior of all child inputs within the group. \n * This setup allows for conditional display and interaction of child components based on the select input's value. \n * \n * Note that this is not a FormKit input itself, but rather a wrapper around the FormKit group input.\n */\n\nimport { reactive } from 'vue';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps<{\n name?: string;\n selectName: string;\n initialValue?: string;\n options: Record<string, string>;\n index?: number;\n id?: any;\n label?: string;\n placeholder?: string;\n info?: string;\n}>();\n\nconst data = reactive({\n groupValue: {},\n selectValue: props.initialValue ?? Object.keys(props.options)[0],\n});\n</script>\n\n<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.label }}</h4>\n <div class=\"formkitCmpWrap d-flex\">\n <FormKit :id=\"props.id\" type=\"group\" :name=\"name\" :index=\"props.index\" v-model=\"data.groupValue\">\n <FormKit v-model=\"data.selectValue\" type=\"select\" :options=\"props.options\" :name=\"props.selectName\">\n <template #prefix>\n <!-- <div v-if=\"props.info\" class=\"infoI\">\n <div class=\"tooltipFormkit\">\n {{ props.info }}\n </div>\n </div> -->\n </template>\n </FormKit>\n <slot :select-value=\"data.selectValue\" />\n </FormKit>\n </div>\n\n </div>\n\n</template>"],"names":["props","__props","data","reactive","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","_hoisted_2","_createVNode","_unref","FormKit","_cache","$event","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAYRC,IAAOC,EAAS;AAAA,MACpB,YAAY,CAAC;AAAA,MACb,aAAaH,EAAM,gBAAgB,OAAO,KAAKA,EAAM,OAAO,EAAE,CAAC;AAAA,IAAA,CAChE;sBAICI,EAAA,GAAAC,EAiBM,OAjBNC,GAiBM;AAAA,MAhBJC,EAA0B,MAAA,MAAAC,EAAnBR,EAAM,KAAK,GAAA,CAAA;AAAA;MAClBO,EAaM,OAbNE,GAaM;AAAA,QAZJC,EAWUC,EAAAC,CAAA,GAAA;AAAA,UAXA,IAAIZ,EAAM;AAAA,UAAI,MAAK;AAAA,UAAS,MAAMC,EAAI;AAAA,UAAG,OAAOD,EAAM;AAAA,UAAgB,YAAAE,EAAK;AAAA,UAAL,uBAAAW,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAZ,EAAK,aAAUY;AAAA,QAAA;qBAC7F,MAQU;AAAA,YARVJ,EAQUC,EAAAC,CAAA,GAAA;AAAA,cARQ,YAAAV,EAAK;AAAA,cAAL,uBAAAW,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAZ,EAAK,cAAWY;AAAA,cAAE,MAAK;AAAA,cAAU,SAASd,EAAM;AAAA,cAAU,MAAMA,EAAM;AAAA,YAAA;cAC3E,UAAX,MAMW,CAAA,GAAAa,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,GAAA,CAAA;AAAA;;;YAEbE,EAAyCC,EAAA,QAAA,WAAA;AAAA,cAAlC,aAAcd,EAAK;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"SelectControlledGroup.vue.mjs","sources":["../../../lib/data-provider-interface/components/SelectControlledGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * `SelectControlledGroup` is a Vue component wrapping the FormKit group input. \n * It features a central select input that dictates the behavior of all child inputs within the group. \n * This setup allows for conditional display and interaction of child components based on the select input's value. \n * \n * Note that this is not a FormKit input itself, but rather a wrapper around the FormKit group input.\n */\n\nimport { reactive } from 'vue';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps<{\n name?: string;\n selectName: string;\n initialValue?: string;\n options: Record<string, string>;\n index?: number;\n id?: any;\n label?: string;\n placeholder?: string;\n info?: string;\n}>();\n\nconst data = reactive({\n groupValue: {},\n selectValue: props.initialValue ?? Object.keys(props.options)[0],\n});\n</script>\n\n<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.label }}</h4>\n <div class=\"formkitCmpWrap d-flex\">\n <FormKit :id=\"props.id\" type=\"group\" :name=\"name\" :index=\"props.index\" v-model=\"data.groupValue\">\n <FormKit v-model=\"data.selectValue\" type=\"select\" :options=\"props.options\" :name=\"props.selectName\">\n <template #prefix>\n <!-- <div v-if=\"props.info\" class=\"infoI\">\n <div class=\"tooltipFormkit\">\n {{ props.info }}\n </div>\n </div> -->\n </template>\n </FormKit>\n <slot :select-value=\"data.selectValue\" />\n </FormKit>\n </div>\n\n </div>\n\n</template>"],"names":["props","__props","data","reactive","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","_hoisted_2","_createVNode","_unref","FormKit","name","_cache","$event","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAYRC,IAAOC,EAAS;AAAA,MACpB,YAAY,CAAC;AAAA,MACb,aAAaH,EAAM,gBAAgB,OAAO,KAAKA,EAAM,OAAO,EAAE,CAAC;AAAA,IAAA,CAChE;sBAICI,EAAA,GAAAC,EAiBM,OAjBNC,GAiBM;AAAA,MAhBJC,EAA0B,MAAA,MAAAC,EAAnBR,EAAM,KAAK,GAAA,CAAA;AAAA;MAClBO,EAaM,OAbNE,GAaM;AAAA,QAZJC,EAWUC,EAAAC,CAAA,GAAA;AAAA,UAXA,IAAIZ,EAAM;AAAA,UAAI,MAAK;AAAA,UAAS,MAAMa,EAAI;AAAA,UAAG,OAAOb,EAAM;AAAA,UAAgB,YAAAE,EAAK;AAAA,UAAL,uBAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAb,EAAK,aAAUa;AAAA,QAAA;qBAC7F,MAQU;AAAA,YARVL,EAQUC,EAAAC,CAAA,GAAA;AAAA,cARQ,YAAAV,EAAK;AAAA,cAAL,uBAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAb,EAAK,cAAWa;AAAA,cAAE,MAAK;AAAA,cAAU,SAASf,EAAM;AAAA,cAAU,MAAMA,EAAM;AAAA,YAAA;cAC3E,UAAX,MAMW,CAAA,GAAAc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,GAAA,CAAA;AAAA;;;YAEbE,EAAyCC,EAAA,QAAA,WAAA;AAAA,cAAlC,aAAcf,EAAK;AAAA,YAAA;;;;;;;;"}
@@ -1,97 +1,95 @@
1
- import { getCurrentInstance as N, ref as I, computed as c, onMounted as M, openBlock as i, createElementBlock as r, createElementVNode as o, toDisplayString as s, createTextVNode as a, Fragment as $, renderList as A, unref as S, createVNode as T, withCtx as k, createCommentVNode as _ } from "vue";
2
- import { useStore as E } from "vuex";
3
- import V from "../../widgets/AppLink.vue.mjs";
4
- import D from "axios";
5
- import { useRouter as O, useRoute as L } from "vue-router";
1
+ import { getCurrentInstance as $, ref as k, computed as c, onMounted as M, openBlock as r, createElementBlock as i, createElementVNode as a, toDisplayString as s, createTextVNode as o, Fragment as I, renderList as L, unref as N, createVNode as V, withCtx as A, createCommentVNode as D } from "vue";
2
+ import { useStore as U } from "vuex";
3
+ import P from "../../widgets/AppLink.vue.mjs";
4
+ import S from "axios";
5
+ import { useRouter as x, useRoute as B } from "vue-router";
6
6
  import { has as g, isNil as f } from "lodash-es";
7
7
  import "./UserCataloguesPage.vue2.mjs";
8
- import U from "../../_virtual/_plugin-vue_export-helper.mjs";
9
- const P = { class: "catOverview" }, Q = { class: "d-flex flex-column bg-transparent container-fluid justify-content-between content" }, R = { class: "small-headline" }, B = { class: "m-0" }, x = ["onClick"], j = ["onClick"], z = { class: "mr-1" }, F = {
8
+ import j from "../../_virtual/_plugin-vue_export-helper.mjs";
9
+ const z = { class: "catOverview" }, E = { class: "d-flex flex-column bg-transparent container-fluid justify-content-between content" }, Q = { class: "small-headline" }, R = { class: "m-0" }, O = ["onClick"], F = ["onClick"], H = { class: "mr-1" }, T = {
10
10
  __name: "UserCataloguesPage",
11
- setup(H) {
12
- let p = N().appContext.app.config.globalProperties.$env;
13
- const v = O(), m = L(), h = E();
14
- let l = I([]), w = c(() => h.getters["auth/getUserCatalogIds"]);
11
+ setup(_) {
12
+ let m = $().appContext.app.config.globalProperties.$env;
13
+ const v = x(), p = B(), h = U();
14
+ let l = k([]), b = c(() => h.getters["auth/getUserCatalogIds"]);
15
15
  const C = c(() => {
16
- const e = p.content.dataProviderInterface.buttons.showMqaNotificationSettings;
17
- console.log("[MQA] env.content...showMqaNotificationSettings (raw):", e, "type:", typeof e);
18
- const t = {}.VITE_CONTENT_DATA_PROVIDER_INTERFACE_BUTTONS_SHOW_MQA_NOTIFICATION_SETTINGS === "true";
19
- if (console.log("[MQA] env.content...viteshowMqaNotificationSettings (raw):", t, "type:", typeof t), typeof e == "string") {
20
- const n = e.trim().toLowerCase();
21
- return console.log("[MQA] normalized string value:", n), n === "true";
16
+ const e = m.content.dataProviderInterface.buttons.showMqaNotificationSettings;
17
+ if (typeof e == "string") {
18
+ const t = e.trim().toLowerCase();
19
+ return console.log("[MQA] normalized string value:", t), t === "true";
22
20
  }
23
21
  return e === !0;
24
22
  });
25
- let b = async () => {
23
+ let w = async () => {
26
24
  let e;
27
- await D.get(p.api.baseUrl + "search?filter=catalogue&limit=1000").then((t) => e = t).catch((t) => {
25
+ await S.get(m.api.baseUrl + "search?filter=catalogue&limit=1000").then((t) => e = t).catch((t) => {
28
26
  reject(t);
29
27
  }), e.data.result.results.forEach((t) => {
30
28
  g(t, "title") && !f(t.title) && g(t, "id") && !f(t.id) && l.value.push({ title: Object.values(t.title)[0], id: t.id });
31
- }), l.value = l.value.filter((t) => w.value.includes(t.id)).map((t) => ({ id: t.id, name: t.title }));
29
+ }), l.value = l.value.filter((t) => b.value.includes(t.id)).map((t) => ({ id: t.id, name: t.title }));
32
30
  };
33
- const y = (e) => {
34
- const t = e.id, n = "https://data.europa.eu", u = m.query.locale || "en", d = `${n}/mqa/catalogues/${t}?locale=${u}`;
31
+ const q = (e) => {
32
+ const t = e.id, n = "https://data.europa.eu", u = p.query.locale || "en", d = `${n}/mqa/catalogues/${t}?locale=${u}`;
35
33
  window.open(d, "_blank");
36
- }, q = (e) => {
34
+ }, y = (e) => {
37
35
  v.push({
38
36
  name: "DataProviderInterface-MQASettings",
39
37
  params: { id: e.id },
40
- query: { locale: m.query.locale }
38
+ query: { locale: p.query.locale }
41
39
  }).catch(() => {
42
40
  });
43
41
  };
44
42
  return M(async () => {
45
- b();
46
- }), (e, t) => (i(), r("div", P, [
47
- o("div", Q, [
48
- o("h1", R, s(e.$t("message.dataupload.info.userCatalogues")), 1),
49
- t[8] || (t[8] = a()),
50
- o("p", B, s(e.$t("message.dataupload.info.userCatDescription")), 1),
51
- t[9] || (t[9] = a()),
52
- o("table", null, [
53
- o("thead", null, [
54
- o("tr", null, [
55
- o("th", null, s(e.$t("message.metadata.catalog")) + " - ID", 1),
56
- t[0] || (t[0] = a()),
57
- o("th", null, s(e.$t("message.metadata.description")), 1),
58
- t[1] || (t[1] = a()),
59
- o("th", null, s(e.$t("message.dataupload.menu.actions")), 1)
43
+ w();
44
+ }), (e, t) => (r(), i("div", z, [
45
+ a("div", E, [
46
+ a("h1", Q, s(e.$t("message.dataupload.info.userCatalogues")), 1),
47
+ t[8] || (t[8] = o()),
48
+ a("p", R, s(e.$t("message.dataupload.info.userCatDescription")), 1),
49
+ t[9] || (t[9] = o()),
50
+ a("table", null, [
51
+ a("thead", null, [
52
+ a("tr", null, [
53
+ a("th", null, s(e.$t("message.metadata.catalog")) + " - ID", 1),
54
+ t[0] || (t[0] = o()),
55
+ a("th", null, s(e.$t("message.metadata.description")), 1),
56
+ t[1] || (t[1] = o()),
57
+ a("th", null, s(e.$t("message.dataupload.menu.actions")), 1)
60
58
  ])
61
59
  ]),
62
- t[7] || (t[7] = a()),
63
- (i(!0), r($, null, A(S(l), (n, u) => (i(), r("tr", { key: u }, [
64
- o("td", null, [
65
- T(V, {
60
+ t[7] || (t[7] = o()),
61
+ (r(!0), i(I, null, L(N(l), (n, u) => (r(), i("tr", { key: u }, [
62
+ a("td", null, [
63
+ V(P, {
66
64
  to: { name: "CatalogueDetails", query: { locale: e.$route.query.locale }, params: { ctlg_id: n.id } }
67
65
  }, {
68
- default: k(() => [
69
- a(s(n.id), 1)
66
+ default: A(() => [
67
+ o(s(n.id), 1)
70
68
  ]),
71
69
  _: 2
72
70
  }, 1032, ["to"])
73
71
  ]),
74
- t[5] || (t[5] = a()),
75
- o("td", null, [
76
- o("span", null, s(n.name), 1)
72
+ t[5] || (t[5] = o()),
73
+ a("td", null, [
74
+ a("span", null, s(n.name), 1)
77
75
  ]),
78
- t[6] || (t[6] = a()),
79
- o("td", null, [
80
- C.value ? (i(), r("button", {
76
+ t[6] || (t[6] = o()),
77
+ a("td", null, [
78
+ C.value ? (r(), i("button", {
81
79
  key: 0,
82
80
  type: "button",
83
81
  class: "btn btn-action",
84
- onClick: (d) => q(n)
85
- }, s(e.$t("message.dpi.catalogue.mqa.settings")), 9, x)) : _("", !0),
86
- t[4] || (t[4] = a()),
87
- o("button", {
82
+ onClick: (d) => y(n)
83
+ }, s(e.$t("message.dpi.catalogue.mqa.settings")), 9, O)) : D("", !0),
84
+ t[4] || (t[4] = o()),
85
+ a("button", {
88
86
  type: "button",
89
87
  class: "btn btn-action",
90
- onClick: (d) => y(n)
88
+ onClick: (d) => q(n)
91
89
  }, [
92
- o("span", z, s(e.$t("message.dpi.catalogue.mqa.mqareport")), 1),
93
- t[2] || (t[2] = a()),
94
- t[3] || (t[3] = o("svg", {
90
+ a("span", H, s(e.$t("message.dpi.catalogue.mqa.mqareport")), 1),
91
+ t[2] || (t[2] = o()),
92
+ t[3] || (t[3] = a("svg", {
95
93
  xmlns: "http://www.w3.org/2000/svg",
96
94
  width: "16",
97
95
  height: "16",
@@ -99,24 +97,24 @@ const P = { class: "catOverview" }, Q = { class: "d-flex flex-column bg-transpar
99
97
  class: "bi bi-box-arrow-up-right mb-1",
100
98
  viewBox: "0 0 16 16"
101
99
  }, [
102
- o("path", {
100
+ a("path", {
103
101
  "fill-rule": "evenodd",
104
102
  d: "M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5"
105
103
  }),
106
- a(),
107
- o("path", {
104
+ o(),
105
+ a("path", {
108
106
  "fill-rule": "evenodd",
109
107
  d: "M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z"
110
108
  })
111
109
  ], -1))
112
- ], 8, j)
110
+ ], 8, F)
113
111
  ])
114
112
  ]))), 128))
115
113
  ])
116
114
  ])
117
115
  ]));
118
116
  }
119
- }, et = /* @__PURE__ */ U(F, [["__scopeId", "data-v-66eceedd"]]);
117
+ }, et = /* @__PURE__ */ j(T, [["__scopeId", "data-v-1aa03338"]]);
120
118
  export {
121
119
  et as default
122
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserCataloguesPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserCataloguesPage.vue"],"sourcesContent":["<script setup>\nimport { useStore } from 'vuex';\nimport { ref, computed, onMounted, } from 'vue';\nimport AppLink from \"../../widgets/AppLink.vue\";\nimport axios from 'axios'\nimport { useRouter, useRoute } from 'vue-router';\nimport { getCurrentInstance } from \"vue\";\n\nimport {\n has,\n isNil,\n} from 'lodash-es';\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst router = useRouter();\nconst route = useRoute();\n\n\nconst store = useStore();\nlet filteredCatalogs = ref([])\nlet userCatIDList = computed(() => store.getters['auth/getUserCatalogIds'])\n\nconst showMqaNotificationSettings = computed(() => {\n const raw = env.content.dataProviderInterface.buttons.showMqaNotificationSettings;\n console.log('[MQA] env.content...showMqaNotificationSettings (raw):', raw, 'type:', typeof raw);\n const viteshowMqaNotificationSettings = import.meta.env.VITE_CONTENT_DATA_PROVIDER_INTERFACE_BUTTONS_SHOW_MQA_NOTIFICATION_SETTINGS === 'true'\n console.log('[MQA] env.content...viteshowMqaNotificationSettings (raw):', viteshowMqaNotificationSettings, 'type:', typeof viteshowMqaNotificationSettings);\n\n if (typeof raw === 'string') {\n const normalized = raw.trim().toLowerCase();\n console.log('[MQA] normalized string value:', normalized);\n return normalized === 'true';\n }\n return raw === true;\n});\n\n\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n .then(response => (cache = response))\n .catch((err) => {\n reject(err);\n });\n\n cache.data.result.results.forEach((e) => {\n if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n });\n\n filteredCatalogs.value = filteredCatalogs.value\n .filter(item => userCatIDList.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n\n\n}\n\nconst openMqaReport = (catalog) => {\n const catalogId = catalog.id;\n const mqaBaseUrl = 'https://data.europa.eu';\n const locale = route.query.locale || 'en';\n const mqaUrl = `${mqaBaseUrl}/mqa/catalogues/${catalogId}?locale=${locale}`;\n window.open(mqaUrl, '_blank');\n}\n\nconst handleMQA = (cat) => {\n\n router.push({\n name: 'DataProviderInterface-MQASettings',\n params: { id: cat.id },\n query: { locale: route.query.locale }\n }).catch(() => { });\n}\nconst handleEdit = () => {\n\n}\nonMounted(async () => {\n filterCatList()\n});\n</script>\n<template>\n <div class=\"catOverview\">\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content \">\n <h1 class=\"small-headline\">{{ $t('message.dataupload.info.userCatalogues') }}</h1>\n <p class=\"m-0 \">{{ $t('message.dataupload.info.userCatDescription') }}</p>\n <!-- <div class=\"catWrap\">\n <div v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\" class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.name }}</app-link>\n </div>\n <div v-if=\"filteredCatalogs.length === 0\" v-for=\"(catalog, index) in userCatIDList\" :key=\"index\"\n class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog } }\">{{\n catalog }}</app-link>\n </div>\n </div> -->\n\n\n\n\n\n\n\n <table>\n <thead>\n <tr>\n <th>{{ $t('message.metadata.catalog') }} - ID</th>\n <th>{{ $t('message.metadata.description') }}</th>\n <th>{{ $t('message.dataupload.menu.actions') }}</th>\n </tr>\n </thead>\n\n <tr v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\">\n <td>\n\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.id }}</app-link>\n\n </td>\n <td>\n <span>{{ catalog.name }}</span>\n\n </td>\n <td>\n <!-- <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.metadata.linkedData') }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.dataupload.menu.edit') }}</button> -->\n\n <button\n v-if=\"showMqaNotificationSettings\"\n type=\"button\"\n class=\"btn btn-action\"\n @click=\"handleMQA(catalog)\"\n >\n {{ $t('message.dpi.catalogue.mqa.settings') }}\n </button>\n <button type=\"button\" class=\"btn btn-action\" @click=\"openMqaReport(catalog)\" >\n <span class=\"mr-1\"> {{ $t('message.dpi.catalogue.mqa.mqareport') }} </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right mb-1\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg>\n </button>\n\n </td>\n </tr>\n\n\n\n </table>\n\n</div>\n </div>\n\n</template>\n<style scoped>\n\ntable {\nmargin-top: 50px !important;\nmargin-left: 0px !important;\n}\n.catOverview {\n min-height: 60vh;\n}\n\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\n.catWrap {\n display: flex;\n flex-wrap: wrap;\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid lightgray;\n justify-content: space-between;\n}\n\n.catWrap .annifItems {\n background: #ECECEC;\n flex-grow: 1;\n text-align: center;\n}\n\n.subline {\n font-size: 12px;\n color: lightgray;\n\n}\n\n\nth,\ntd {\n padding: 1rem;\n\n}\n\ntr {\n padding: 1rem;\n border-bottom: 1px solid lightgray;\n}\n\nthead {\n border-bottom: 1px solid lightgray;\n}\n</style>\n"],"names":["env","getCurrentInstance","router","useRouter","route","useRoute","store","useStore","filteredCatalogs","ref","userCatIDList","computed","showMqaNotificationSettings","raw","viteshowMqaNotificationSettings","normalized","filterCatList","cache","axios","response","err","e","has","isNil","item","openMqaReport","catalog","catalogId","mqaBaseUrl","locale","mqaUrl","handleMQA","cat","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","$t","_hoisted_4","_Fragment","_renderList","_unref","index","_createVNode","AppLink","$route","_createTextVNode","$event","_hoisted_5","_hoisted_7"],"mappings":"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"}
1
+ {"version":3,"file":"UserCataloguesPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserCataloguesPage.vue"],"sourcesContent":["<script setup>\nimport { useStore } from 'vuex';\nimport { ref, computed, onMounted, } from 'vue';\nimport AppLink from \"../../widgets/AppLink.vue\";\nimport axios from 'axios'\nimport { useRouter, useRoute } from 'vue-router';\nimport { getCurrentInstance } from \"vue\";\n\nimport {\n has,\n isNil,\n} from 'lodash-es';\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst router = useRouter();\nconst route = useRoute();\n\n\nconst store = useStore();\nlet filteredCatalogs = ref([])\nlet userCatIDList = computed(() => store.getters['auth/getUserCatalogIds'])\n\nconst showMqaNotificationSettings = computed(() => {\n const raw = env.content.dataProviderInterface.buttons.showMqaNotificationSettings;\n //console.log('[MQA] env.content...showMqaNotificationSettings (raw):', raw, 'type:', typeof raw);\n const viteshowMqaNotificationSettings = import.meta.env.VITE_CONTENT_DATA_PROVIDER_INTERFACE_BUTTONS_SHOW_MQA_NOTIFICATION_SETTINGS === 'true'\n //console.log('[MQA] env.content...viteshowMqaNotificationSettings (raw):', viteshowMqaNotificationSettings, 'type:', typeof viteshowMqaNotificationSettings);\n\n if (typeof raw === 'string') {\n const normalized = raw.trim().toLowerCase();\n console.log('[MQA] normalized string value:', normalized);\n return normalized === 'true';\n }\n return raw === true;\n});\n\n\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n .then(response => (cache = response))\n .catch((err) => {\n reject(err);\n });\n\n cache.data.result.results.forEach((e) => {\n if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n });\n\n filteredCatalogs.value = filteredCatalogs.value\n .filter(item => userCatIDList.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n\n\n}\n\nconst openMqaReport = (catalog) => {\n const catalogId = catalog.id;\n const mqaBaseUrl = 'https://data.europa.eu';\n const locale = route.query.locale || 'en';\n const mqaUrl = `${mqaBaseUrl}/mqa/catalogues/${catalogId}?locale=${locale}`;\n window.open(mqaUrl, '_blank');\n}\n\nconst handleMQA = (cat) => {\n\n router.push({\n name: 'DataProviderInterface-MQASettings',\n params: { id: cat.id },\n query: { locale: route.query.locale }\n }).catch(() => { });\n}\nconst handleEdit = () => {\n\n}\nonMounted(async () => {\n filterCatList()\n});\n</script>\n<template>\n <div class=\"catOverview\">\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content \">\n <h1 class=\"small-headline\">{{ $t('message.dataupload.info.userCatalogues') }}</h1>\n <p class=\"m-0 \">{{ $t('message.dataupload.info.userCatDescription') }}</p>\n <!-- <div class=\"catWrap\">\n <div v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\" class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.name }}</app-link>\n </div>\n <div v-if=\"filteredCatalogs.length === 0\" v-for=\"(catalog, index) in userCatIDList\" :key=\"index\"\n class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog } }\">{{\n catalog }}</app-link>\n </div>\n </div> -->\n\n\n\n\n\n\n\n <table>\n <thead>\n <tr>\n <th>{{ $t('message.metadata.catalog') }} - ID</th>\n <th>{{ $t('message.metadata.description') }}</th>\n <th>{{ $t('message.dataupload.menu.actions') }}</th>\n </tr>\n </thead>\n\n <tr v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\">\n <td>\n\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.id }}</app-link>\n\n </td>\n <td>\n <span>{{ catalog.name }}</span>\n\n </td>\n <td>\n <!-- <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.metadata.linkedData') }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.dataupload.menu.edit') }}</button> -->\n\n <button\n v-if=\"showMqaNotificationSettings\"\n type=\"button\"\n class=\"btn btn-action\"\n @click=\"handleMQA(catalog)\"\n >\n {{ $t('message.dpi.catalogue.mqa.settings') }}\n </button>\n <button type=\"button\" class=\"btn btn-action\" @click=\"openMqaReport(catalog)\" >\n <span class=\"mr-1\"> {{ $t('message.dpi.catalogue.mqa.mqareport') }} </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right mb-1\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg>\n </button>\n\n </td>\n </tr>\n\n\n\n </table>\n\n</div>\n </div>\n\n</template>\n<style scoped>\n\ntable {\nmargin-top: 50px !important;\nmargin-left: 0px !important;\n}\n.catOverview {\n min-height: 60vh;\n}\n\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\n.catWrap {\n display: flex;\n flex-wrap: wrap;\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid lightgray;\n justify-content: space-between;\n}\n\n.catWrap .annifItems {\n background: #ECECEC;\n flex-grow: 1;\n text-align: center;\n}\n\n.subline {\n font-size: 12px;\n color: lightgray;\n\n}\n\n\nth,\ntd {\n padding: 1rem;\n\n}\n\ntr {\n padding: 1rem;\n border-bottom: 1px solid lightgray;\n}\n\nthead {\n border-bottom: 1px solid lightgray;\n}\n</style>\n"],"names":["env","getCurrentInstance","router","useRouter","route","useRoute","store","useStore","filteredCatalogs","ref","userCatIDList","computed","showMqaNotificationSettings","raw","normalized","filterCatList","cache","axios","response","err","e","has","isNil","item","openMqaReport","catalog","catalogId","mqaBaseUrl","locale","mqaUrl","handleMQA","cat","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","$t","_hoisted_4","_Fragment","_renderList","_unref","index","_createVNode","AppLink","$route","_createTextVNode","$event","_hoisted_5","_hoisted_7"],"mappings":"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"}
@@ -1,26 +1,26 @@
1
- import { defineComponent as c, openBlock as a, createBlock as n, resolveDynamicComponent as d, withCtx as m, createElementBlock as i, Fragment as u, renderList as f, unref as p, renderSlot as D } from "vue";
2
- import x from "../PvDataInfoBox/PvDataInfoBox.vue.mjs";
3
- import { useDataInfoBox as B } from "../composables/useDataInfoBox.mjs";
4
- const C = /* @__PURE__ */ c({
1
+ import { defineComponent as c, openBlock as a, createBlock as r, resolveDynamicComponent as d, withCtx as m, createElementBlock as i, Fragment as u, renderList as p, unref as f, renderSlot as D } from "vue";
2
+ import B from "../PvDataInfoBox/PvDataInfoBox.vue.mjs";
3
+ import { useDataInfoBox as k } from "../composables/useDataInfoBox.mjs";
4
+ const x = /* @__PURE__ */ c({
5
5
  __name: "DatasetList",
6
6
  props: {
7
7
  as: { default: "div" },
8
8
  datasets: {},
9
9
  locale: {}
10
10
  },
11
- setup(e) {
12
- const s = e, r = B({
11
+ setup(n) {
12
+ const s = n, l = k({
13
13
  datasets: s.datasets,
14
14
  locale: s.locale
15
15
  });
16
- return (l, k) => (a(), n(d(e.as), null, {
16
+ return (e, y) => (a(), r(d(e.as), null, {
17
17
  default: m(() => [
18
- (a(!0), i(u, null, f(p(r), (t, o) => D(l.$slots, "default", {
18
+ (a(!0), i(u, null, p(f(l), (t, o) => D(e.$slots, "default", {
19
19
  dataset: t,
20
20
  rawDataset: e.datasets[o],
21
21
  index: o
22
22
  }, () => [
23
- (a(), n(x, {
23
+ (a(), r(B, {
24
24
  key: t.id,
25
25
  to: `/datasets/${t.id}`,
26
26
  src: t.src,
@@ -36,6 +36,6 @@ const C = /* @__PURE__ */ c({
36
36
  }
37
37
  });
38
38
  export {
39
- C as default
39
+ x as default
40
40
  };
41
41
  //# sourceMappingURL=DatasetList.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetList.vue.mjs","sources":["../../lib/datasets/DatasetList.vue"],"sourcesContent":["<template>\n <component :is=\"as\">\n <template v-for=\"(dataset, idx) in computedDatasets\">\n <slot :dataset=\"dataset\" :raw-dataset=\"datasets[idx]\" :index=\"idx\">\n <pv-data-info-box\n :key=\"dataset.id\"\n :to=\"`/datasets/${dataset.id}`\"\n :src=\"dataset.src\"\n :dataset=\"dataset.dataset\"\n :description-max-length=\"1000\"\n :data-cy=\"`dataset@${dataset.id}`\"\n class=\"mt-3\"\n />\n </slot>\n </template>\n </component>\n</template>\n\n<script lang=\"ts\" setup>\nimport PvDataInfoBox from '../PvDataInfoBox/PvDataInfoBox.vue'\n\nimport { useDataInfoBox } from '../composables/useDataInfoBox';\n\nconst props = withDefaults(defineProps<{\n as?: string;\n datasets: any;\n locale: string;\n}>(), {\n as: 'div'\n})\n\nconst computedDatasets = useDataInfoBox({ \n datasets: props.datasets,\n locale: props.locale\n })\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>"],"names":["props","__props","computedDatasets","useDataInfoBox","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","_unref","dataset","idx","_renderSlot","_ctx","PvDataInfoBox"],"mappings":";;;;;;;;;;;AAuBA,UAAMA,IAAQC,GAQRC,IAAmBC,EAAe;AAAA,MACtC,UAAUH,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,IAAA,CACd;sBAjCAI,EAAA,GAAAC,EAcYC,EAdIL,EAAE,EAAA,GAAA,MAAA;AAAA,iBACN,MAA0C;AAAA,SAApDG,EAAA,EAAA,GAAAG,EAYWC,GAZwB,MAAAC,EAAAC,EAAAR,CAAA,GAAjB,CAAAS,GAASC,MACzBC,EAUOC,EAAA,QAAA,WAAA;AAAA,UAVA,SAAAH;AAAA,UAAmB,YAAaV,EAAQ,SAACW,CAAG;AAAA,UAAI,OAAOA;AAAA,QAAA,GAA9D,MAUO;AAAA,aATL,GAAAP,EAQEU,GAAA;AAAA,YAPC,KAAKJ,EAAQ;AAAA,YACb,IAAE,aAAeA,EAAQ,EAAE;AAAA,YAC3B,KAAKA,EAAQ;AAAA,YACb,SAASA,EAAQ;AAAA,YACjB,0BAAwB;AAAA,YACxB,WAAO,WAAaA,EAAQ,EAAE;AAAA,YAC/B,OAAM;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"DatasetList.vue.mjs","sources":["../../lib/datasets/DatasetList.vue"],"sourcesContent":["<template>\n <component :is=\"as\">\n <template v-for=\"(dataset, idx) in computedDatasets\">\n <slot :dataset=\"dataset\" :raw-dataset=\"datasets[idx]\" :index=\"idx\">\n <pv-data-info-box\n :key=\"dataset.id\"\n :to=\"`/datasets/${dataset.id}`\"\n :src=\"dataset.src\"\n :dataset=\"dataset.dataset\"\n :description-max-length=\"1000\"\n :data-cy=\"`dataset@${dataset.id}`\"\n class=\"mt-3\"\n />\n </slot>\n </template>\n </component>\n</template>\n\n<script lang=\"ts\" setup>\nimport PvDataInfoBox from '../PvDataInfoBox/PvDataInfoBox.vue'\n\nimport { useDataInfoBox } from '../composables/useDataInfoBox';\n\nconst props = withDefaults(defineProps<{\n as?: string;\n datasets: any;\n locale: string;\n}>(), {\n as: 'div'\n})\n\nconst computedDatasets = useDataInfoBox({ \n datasets: props.datasets,\n locale: props.locale\n })\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>"],"names":["props","__props","computedDatasets","useDataInfoBox","_openBlock","_createBlock","_resolveDynamicComponent","as","_createElementBlock","_Fragment","_renderList","_unref","dataset","idx","_renderSlot","_ctx","datasets","PvDataInfoBox"],"mappings":";;;;;;;;;;;AAuBA,UAAMA,IAAQC,GAQRC,IAAmBC,EAAe;AAAA,MACtC,UAAUH,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,IAAA,CACd;sBAjCAI,EAAA,GAAAC,EAcYC,EAdIC,EAAE,EAAA,GAAA,MAAA;AAAA,iBACN,MAA0C;AAAA,SAApDH,EAAA,EAAA,GAAAI,EAYWC,GAZwB,MAAAC,EAAAC,EAAAT,CAAA,GAAjB,CAAAU,GAASC,MACzBC,EAUOC,EAAA,QAAA,WAAA;AAAA,UAVA,SAAAH;AAAA,UAAmB,YAAaI,EAAQ,SAACH,CAAG;AAAA,UAAI,OAAOA;AAAA,QAAA,GAA9D,MAUO;AAAA,aATL,GAAAR,EAQEY,GAAA;AAAA,YAPC,KAAKL,EAAQ;AAAA,YACb,IAAE,aAAeA,EAAQ,EAAE;AAAA,YAC3B,KAAKA,EAAQ;AAAA,YACb,SAASA,EAAQ;AAAA,YACjB,0BAAwB;AAAA,YACxB,WAAO,WAAaA,EAAQ,EAAE;AAAA,YAC/B,OAAM;AAAA,UAAA;;;;;;;"}