@piveau/piveau-hub-ui-modules 4.5.12 → 4.6.0

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 (44) hide show
  1. package/dist/data-provider-interface/CatalogueMQA.vue.mjs +21 -21
  2. package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
  3. package/dist/data-provider-interface/DPIMenu.vue.mjs +5 -5
  4. package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +9 -4
  5. package/dist/data-provider-interface/components/Navigation.vue.mjs +57 -56
  6. package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
  7. package/dist/data-provider-interface/components/SpatialInput.vue.mjs +23 -22
  8. package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
  9. package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs +13 -13
  10. package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
  11. package/dist/data-provider-interface/composables/index.d.ts +1 -0
  12. package/dist/data-provider-interface/composables/useDpiEditMode.mjs +15 -16
  13. package/dist/data-provider-interface/composables/useDpiEditMode.mjs.map +1 -1
  14. package/dist/data-provider-interface/composables/useFormSchema.d.ts +13 -0
  15. package/dist/data-provider-interface/composables/useFormSchema.mjs +59 -0
  16. package/dist/data-provider-interface/composables/useFormSchema.mjs.map +1 -0
  17. package/dist/data-provider-interface/index.d.ts +33 -0
  18. package/dist/data-provider-interface/utils/translation-helper.mjs +23 -23
  19. package/dist/data-provider-interface/utils/translation-helper.mjs.map +1 -1
  20. package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +1 -1
  21. package/dist/data-provider-interface/views/InputPage.vue.d.ts +9 -4
  22. package/dist/data-provider-interface/views/InputPage.vue.mjs +110 -110
  23. package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
  24. package/dist/dataProviderInterface.d.ts +1 -0
  25. package/dist/dataProviderInterface.mjs +71 -0
  26. package/dist/dataProviderInterface.mjs.map +1 -0
  27. package/dist/datasetDetails/DatasetDetails.vue.mjs +31 -29
  28. package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
  29. package/dist/embed/DatasetEmbedModal.vue.d.ts +2 -0
  30. package/dist/embed/DatasetEmbedModal.vue.mjs +126 -88
  31. package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
  32. package/dist/embed/EmbedDataset.vue.mjs +31 -26
  33. package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
  34. package/dist/embed/EmbedDatasetSnippet.vue.mjs +30 -25
  35. package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
  36. package/dist/external/@vueuse/core/index +31 -31
  37. package/dist/external/@vueuse/shared/index +66 -63
  38. package/dist/external/@vueuse/shared/index.map +1 -1
  39. package/dist/form/FormKitGroup.vue.mjs.map +1 -1
  40. package/dist/index.mjs +54 -54
  41. package/dist/piveau-hub-ui-modules.css +1 -1
  42. package/package.json +17 -1
  43. package/dist/data-provider-interface/index.mjs +0 -15
  44. package/dist/data-provider-interface/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\" :close=\"modal.confirm\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: '',\n message: '',\n callback: this.clearStorage,\n },\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n };\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n created() {\n this.$i18n.locale = this.$route.query.locale\n this.modals.clear.message = this.$t('message.dataupload.modal.resetForm')\n this.modals.clear.confirm = this.$t('message.dataupload.modal.confirmReset')\n\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogName = this.getData(this.property)['dcat:catalog'] ? this.getData(this.property)['dcat:catalog'] : '';\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogName,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogName}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n } else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogName };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogName}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogName, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress.finish();\n this.uploading = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.handleIDError();\n }\n } catch (err) {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.datasetPublished'), variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.draftCreated'), variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.catalogPublished'), variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogName","uploadUrl","actionName","actionParams","id","isUniqueID","draftIDs","isNil","request","axios","e","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_cache","_createTextVNode","_createVNode","$options","$data","_withCtx","_openBlock","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\" :close=\"modal.confirm\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: '',\n message: '',\n callback: this.clearStorage,\n },\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n };\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n created() {\n // this.$i18n.locale = this.$route.query.locale\n this.modals.clear.message = this.$t('message.dataupload.modal.resetForm')\n this.modals.clear.confirm = this.$t('message.dataupload.modal.confirmReset')\n\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress?.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogName = this.getData(this.property)['dcat:catalog'] ? this.getData(this.property)['dcat:catalog'] : '';\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogName,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogName}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n } else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogName };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogName}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogName, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress?.finish();\n this.uploading[mode] = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.handleIDError();\n }\n } catch (err) {\n console.error(err)\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.datasetPublished'), variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.draftCreated'), variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.catalogPublished'), variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","_a","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogName","uploadUrl","actionName","actionParams","_b","_c","err","_d","id","isUniqueID","draftIDs","isNil","request","axios","e","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_cache","_createTextVNode","_createVNode","$options","$data","_withCtx","_openBlock","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { getCurrentInstance as re, ref as d, computed as v, watchEffect as ce, watch as L, onMounted as de, nextTick as ue, reactive as pe, openBlock as l, createElementBlock as i, unref as y, createElementVNode as c, toDisplayString as m, createTextVNode as u, withDirectives as S, vShow as ve, createCommentVNode as I, vModelText as J, Fragment as G, renderList as E, isRef as R } from "vue";
2
- import { useStore as me } from "vuex";
1
+ import { getCurrentInstance as re, ref as d, computed as m, watchEffect as ce, watch as L, onMounted as de, nextTick as ue, reactive as pe, openBlock as l, createElementBlock as i, unref as y, createElementVNode as c, toDisplayString as v, createTextVNode as u, withDirectives as S, vShow as me, createCommentVNode as I, vModelText as J, Fragment as G, renderList as E, isRef as R } from "vue";
2
+ import { useStore as ve } from "vuex";
3
3
  import { getTranslationFor as W } from "../../utils/helpers.mjs";
4
4
  import { onClickOutside as N } from "../../external/@vueuse/core/index";
5
5
  import { useRoute as fe } from "vue-router";
@@ -19,6 +19,7 @@ import "../../configurations/config-schema/languagesSchema.mjs";
19
19
  import "../../configurations/config-schema/themesSchema.mjs";
20
20
  import "../../configurations/config-schema/trackerSchema.mjs";
21
21
  import "../../configurations/config-schema/configSchema.mjs";
22
+ import "lodash-es";
22
23
  import "./SpatialInput.vue2.mjs";
23
24
  import ke from "../../_virtual/_plugin-vue_export-helper.mjs";
24
25
  import { whenever as Ce } from "../../external/@vueuse/shared/index";
@@ -51,32 +52,32 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
51
52
  let x = d([]);
52
53
  const U = d("");
53
54
  let n = d({}), g = d({}), w = d({}), K = d({});
54
- me();
55
- const { t: H, locale: T } = ye({ inheritLocale: !0, useScope: "global" }), p = ge(), k = d(!1), C = d(!1), F = v(() => {
55
+ ve();
56
+ const { t: H, locale: T } = ye({ inheritLocale: !0, useScope: "global" }), p = ge(), k = d(!1), C = d(!1), F = m(() => {
56
57
  var t;
57
58
  return !!((t = X.value.edit) != null && t.enabled);
58
- }), h = v(() => !!F.value && o.context.value.resource), V = v(() => h.value ? h.value.split("/")[h.value.split("/").length - 2] : ""), Q = v(() => {
59
+ }), h = m(() => !!F.value && o.context.value.resource), V = m(() => h.value ? h.value.split("/")[h.value.split("/").length - 2] : ""), Q = m(() => {
59
60
  if (!V.value)
60
61
  return "";
61
62
  const t = o.context.attrs.identifier === "politicalGeocodingURI" ? "political-geocoding-" : "", e = V.value.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
62
63
  return `${t}${e}`;
63
- }), Y = v(() => {
64
+ }), Y = m(() => {
64
65
  const e = V.value.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase().split(" ").map((a) => a.charAt(0).toUpperCase() + a.slice(1)).join(" ");
65
66
  return H(`message.dataupload.datasets.conditional.${e}`);
66
67
  }), { execute: ee, state: O, isLoading: te } = be({
67
68
  voc: Q,
68
- res: v(() => o.context.value.resource),
69
+ res: m(() => o.context.value.resource),
69
70
  // property: 'dcatde:politicalGeocodingURI',
70
- property: v(() => o.context.attrs.identifier === "politicalGeocodingURI" ? "dcatde:politicalGeocodingURI" : "dct:spatial"),
71
+ property: m(() => o.context.attrs.identifier === "politicalGeocodingURI" ? "dcatde:politicalGeocodingURI" : "dct:spatial"),
71
72
  locale: T
72
- }), A = v(() => F.value && !te.value && h.value && O.value ? `${Y.value}: ${O.value} (${h.value.split("/").pop()})` : ""), P = d(!1);
73
+ }), A = m(() => F.value && !te.value && h.value && O.value ? `${Y.value}: ${O.value} (${h.value.split("/").pop()})` : ""), P = d(!1);
73
74
  ce(() => {
74
75
  P.value || h.value && (P.value = !0, ee());
75
76
  }, { immediate: !0 }), Ce(A, () => {
76
77
  const t = { name: A.value, resource: h.value };
77
78
  o.context.node.input(t);
78
79
  });
79
- const B = v(() => {
80
+ const B = m(() => {
80
81
  var t, e;
81
82
  return !!((e = (t = o.context) == null ? void 0 : t.attrs) != null && e.vocabularyOnly);
82
83
  });
@@ -160,7 +161,7 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
160
161
  }
161
162
  return (t, e) => (l(), i("div", xe, [
162
163
  !o.context.attrs.multiple && y(s).activeValue ? (l(), i("div", we, [
163
- c("a", $e, m(A.value), 1),
164
+ c("a", $e, v(A.value), 1),
164
165
  e[8] || (e[8] = u()),
165
166
  c("div", {
166
167
  class: "removeX",
@@ -170,7 +171,7 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
170
171
  c("div", Ue, [
171
172
  B.value ? I("", !0) : (l(), i("div", Ke, [
172
173
  c("label", Te, [
173
- u(m(t.$t("message.dataupload.info.preferredInput")) + " ", 1),
174
+ u(v(t.$t("message.dataupload.info.preferredInput")) + " ", 1),
174
175
  c("input", {
175
176
  id: "I1",
176
177
  type: "text",
@@ -191,22 +192,22 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
191
192
  f("showTable"), k.value = !0, C.value && (C.value = !1);
192
193
  }),
193
194
  class: "p-2 border-b border-gray-200 choosableItemsAC"
194
- }, m(t.$t("message.dataupload.datasets.conditional.manually")), 1),
195
+ }, v(t.$t("message.dataupload.datasets.conditional.manually")), 1),
195
196
  e[9] || (e[9] = u()),
196
197
  c("li", {
197
198
  onClick: e[2] || (e[2] = (a) => {
198
199
  f("showTable"), C.value = !0, k.value && (k.value = !1);
199
200
  }),
200
201
  class: "p-2 border-b border-gray-200 choosableItemsAC"
201
- }, m(t.$t("message.dataupload.datasets.conditional.vocabulary")), 1)
202
+ }, v(t.$t("message.dataupload.datasets.conditional.vocabulary")), 1)
202
203
  ], 512), [
203
- [ve, y(s).first]
204
+ [me, y(s).first]
204
205
  ])
205
206
  ])),
206
207
  e[12] || (e[12] = u()),
207
208
  k.value ? (l(), i("div", Ae, [
208
209
  c("label", Le, [
209
- u(m(t.$te("message.dataupload.datasets.isReferencedByUrl.placeholder") ? t.$t("message.dataupload.datasets.isReferencedByUrl.placeholder") : "Provide an URL") + " ", 1),
210
+ u(v(t.$te("message.dataupload.datasets.isReferencedByUrl.placeholder") ? t.$t("message.dataupload.datasets.isReferencedByUrl.placeholder") : "Provide an URL") + " ", 1),
210
211
  c("input", {
211
212
  type: "URL",
212
213
  class: "selectInputField formkit-inner",
@@ -218,7 +219,7 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
218
219
  e[13] || (e[13] = u()),
219
220
  C.value ? (l(), i("div", Se, [
220
221
  c("label", Ge, [
221
- u(m(t.$te("message.dataupload.datasets.contributorType.placeholder") ? t.$t("message.dataupload.datasets.contributorType.placeholder") : "Choose type of vocabulary") + " ", 1),
222
+ u(v(t.$te("message.dataupload.datasets.contributorType.placeholder") ? t.$t("message.dataupload.datasets.contributorType.placeholder") : "Choose type of vocabulary") + " ", 1),
222
223
  S(c("input", {
223
224
  id: "I2",
224
225
  type: "text",
@@ -246,7 +247,7 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
246
247
  onClick: (r) => {
247
248
  ae(), a.active = !a.active, f("showVocTable"), R(n) ? n.value = "" : n = "", R(g) ? g.value = a.item : g = a.item, U.value = a.placeholder;
248
249
  }
249
- }, m(t.$t("message.dataupload.datasets.conditional." + a.item)), 9, Ne))), 128))
250
+ }, v(t.$t("message.dataupload.datasets.conditional." + a.item)), 9, Ne))), 128))
250
251
  ], 512)) : I("", !0)
251
252
  ])) : I("", !0)
252
253
  ]),
@@ -257,7 +258,7 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
257
258
  class: "position-relative"
258
259
  }, [
259
260
  a.active ? (l(), i("label", Me, [
260
- u(m(a.placeholder ? a.placeholder : t.$t("message.dataupload.datasets.conditional." + a.item)) + " ", 1),
261
+ u(v(a.placeholder ? a.placeholder : t.$t("message.dataupload.datasets.conditional." + a.item)) + " ", 1),
261
262
  S(c("input", {
262
263
  id: "I3",
263
264
  type: "text",
@@ -283,15 +284,15 @@ const xe = { class: "d-flex flex-column w-100 spatialWrap" }, we = {
283
284
  key: r,
284
285
  class: "p-2 border-b border-gray-200 choosableItemsAC",
285
286
  onClick: ($) => ne(r)
286
- }, m(r.name), 9, Fe))), 128))
287
+ }, v(r.name), 9, Fe))), 128))
287
288
  ], 512)) : I("", !0)
288
289
  ]))), 128))
289
290
  ])) : I("", !0)
290
291
  ]))
291
292
  ]));
292
293
  }
293
- }, pt = /* @__PURE__ */ ke(Oe, [["__scopeId", "data-v-c7b8d84d"]]);
294
+ }, mt = /* @__PURE__ */ ke(Oe, [["__scopeId", "data-v-c7b8d84d"]]);
294
295
  export {
295
- pt as default
296
+ mt as default
296
297
  };
297
298
  //# sourceMappingURL=SpatialInput.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside, whenever } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useTed } from '../../composables/useTed';\nimport { useAutocomplete } from '../composables/aucotomplete';\nimport { useRequestUriName } from '../composables/useRequestUriName';\nimport { useDpiContext } from '../composables';\n\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\nconst dpiContext = useDpiContext();\n\nconst props = defineProps({\n context: Object,\n})\n\nconst { requestAutocompleteSuggestions } = useAutocomplete()\n\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nconst typeText = ref('')\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\nconst { t, locale } = useI18n({ inheritLocale: true, useScope: 'global' });\nconst ted = useTed();\n\nconst man = ref(false)\nconst vocSearch = ref(false)\n\nconst isEdit = computed(() => !!dpiContext.value.edit?.enabled)\nconst resourceNameWhenEditing = computed(() => !!isEdit.value && props.context.value.resource)\n// e.g. extract \"municipalityKey\" (second to last) out of resourceName\nconst keyFromResourceName = computed(() => {\n if (resourceNameWhenEditing.value) {\n return resourceNameWhenEditing.value.split('/')[resourceNameWhenEditing.value.split('/').length - 2]\n }\n return ''\n})\nconst spatialVocabName = computed(() => {\n if (!keyFromResourceName.value) {\n return ''\n }\n\n const maybePrefix = props.context.attrs.identifier === 'politicalGeocodingURI'\n ? 'political-geocoding-'\n // todo: extend this for other vocabularies\n : ''\n\n // transform key from camelCase to kebab-case\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n return `${maybePrefix}${vocabKey}`\n})\n\nconst translatedResourceName = computed(() => {\n // transform key 'districtKey' to 'District Key'\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase()\n // make first letters of each word uppercase\n const vocabKeyUpper = vocabKey.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ')\n return t(`message.dataupload.datasets.conditional.${vocabKeyUpper}`)\n})\n\nconst { execute, state, isLoading } = useRequestUriName({\n voc: spatialVocabName,\n res: computed(() => props.context.value.resource),\n // property: 'dcatde:politicalGeocodingURI',\n property: computed(() => props.context.attrs.identifier === 'politicalGeocodingURI' ? 'dcatde:politicalGeocodingURI' : 'dct:spatial'), \n locale,\n})\n\nconst restoredValueFromEditMode = computed(() => {\n if (isEdit.value && !isLoading.value && resourceNameWhenEditing.value && state.value) {\n return `${translatedResourceName.value}: ${state.value} (${resourceNameWhenEditing.value.split('/').pop()})`\n }\n\n return ''\n})\n\nconst once = ref(false)\nwatchEffect(() => {\n if (once.value) return;\n\n if (!!resourceNameWhenEditing.value) {\n once.value = true\n execute()\n }\n}, { immediate: true })\n\nwhenever(restoredValueFromEditMode, () => {\n const v = { name: restoredValueFromEditMode.value, resource: resourceNameWhenEditing.value }\n props.context.node.input(v)\n})\n\n// If true, then:\n// - hides the select input for manual and vocabulary\n// - pre-selects the vocabulary option\n// When using formkit schema, enable this option by setting vocabularyOnly to true\n// {\n// $formkit: 'spatialinput',\n// name: 'dcatde:politicalGeocodingURI',\n// identifier: 'politicalGeocodingURI',\n// vocabularyOnly: true,\n// }\nconst vocabularyOnly = computed(() => !!props.context?.attrs?.vocabularyOnly)\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push(\n { item: 'Municipality Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipality Key', 'Municipality Key') },\n { item: 'Regional Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Regional Key', 'Regional Key') },\n { item: 'Municipal Association Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipal Association Key', 'Municipal Association Key') },\n { item: 'District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.District Key', 'District Key') },\n { item: 'Government District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Government District Key', 'Government District Key') },\n { item: 'State Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.State Key', 'State Key') },\n )\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push(\n { item: 'Country', active: false, placeholder: ted('message.dataupload.datasets.conditional.Country', 'Country') },\n { item: 'Place', active: false, placeholder: ted('message.dataupload.datasets.conditional.Place', 'Place') },\n { item: 'Continent', active: false, placeholder: ted('message.dataupload.datasets.conditional.Continent', 'Continent') },\n )\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async (newValue, oldValue) => {\n if (newValue === oldValue) { return }\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: ted('message.dataupload.info.searchVocabulary', '--- Type in anything for a live search of the vocabulary ---').value, resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n if (vocabularyOnly.value) {\n activeInput('showTable'); vocSearch.value = true; if (man.value) { man.value = false }\n }\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n\n let vocCache = voc.value?.toLowerCase()\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n\nfunction handleSpatielListClick(el) {\n props.context.node.input(el);\n inputText.value = el.name;\n activeInput('showVocEntries');\n showTable.third = false;\n saveToLocal(el)\n}\n\nfunction submitType() {\n activeInput('showVocTable');\n\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ restoredValueFromEditMode }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div v-if=\"!vocabularyOnly\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> {{ $t('message.dataupload.info.preferredInput') }}\n <input id=\"I1\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n :placeholder=\"$t('message.dataupload.info.preferredInput')\"\n @click=\"activeInput('showTable')\" />\n </label>\n\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.manually') }}\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.vocabulary') }}\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n {{ $te('message.dataupload.datasets.isReferencedByUrl.placeholder') ? $t('message.dataupload.datasets.isReferencedByUrl.placeholder') : 'Provide an URL' }}\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <label class=\"w-100\"> {{ $te('message.dataupload.datasets.contributorType.placeholder') ? $t('message.dataupload.datasets.contributorType.placeholder') : 'Choose type of vocabulary' }} \n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\" v-model=\"typeText\"\n :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item; typeText = el.placeholder\">\n {{ $t('message.dataupload.datasets.conditional.' + el.item) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <!-- {{ $te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary' }} -->\n {{ el.placeholder ? el.placeholder : $t('message.dataupload.datasets.conditional.' + el.item) }}\n <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\"\n @click=\"activeInput('showVocEntries'); inputText = ''\"\n >\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"handleSpatielListClick(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top: 78px;\n }\n}\n</style>\n"],"names":["instance","getCurrentInstance","route","useRoute","dpiContext","useDpiContext","props","__props","requestAutocompleteSuggestions","useAutocomplete","listOfVoc","ref","typeText","inputText","voc","matches","manURL","useStore","t","locale","useI18n","ted","useTed","man","vocSearch","isEdit","computed","_a","resourceNameWhenEditing","keyFromResourceName","spatialVocabName","maybePrefix","vocabKey","translatedResourceName","vocabKeyUpper","word","execute","state","isLoading","useRequestUriName","restoredValueFromEditMode","once","watchEffect","whenever","v","vocabularyOnly","_b","watch","getAutocompleteSuggestions","newValue","oldValue","onMounted","nextTick","showTable","activeInput","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","manURLInput","handleSpatielListClick"],"mappings":"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"}
1
+ {"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside, whenever } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useTed } from '../../composables/useTed';\nimport { useAutocomplete } from '../composables/aucotomplete';\nimport { useRequestUriName } from '../composables/useRequestUriName';\nimport { useDpiContext } from '../composables';\n\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\nconst dpiContext = useDpiContext();\n\nconst props = defineProps({\n context: Object,\n})\n\nconst { requestAutocompleteSuggestions } = useAutocomplete()\n\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nconst typeText = ref('')\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\nconst { t, locale } = useI18n({ inheritLocale: true, useScope: 'global' });\nconst ted = useTed();\n\nconst man = ref(false)\nconst vocSearch = ref(false)\n\nconst isEdit = computed(() => !!dpiContext.value.edit?.enabled)\nconst resourceNameWhenEditing = computed(() => !!isEdit.value && props.context.value.resource)\n// e.g. extract \"municipalityKey\" (second to last) out of resourceName\nconst keyFromResourceName = computed(() => {\n if (resourceNameWhenEditing.value) {\n return resourceNameWhenEditing.value.split('/')[resourceNameWhenEditing.value.split('/').length - 2]\n }\n return ''\n})\nconst spatialVocabName = computed(() => {\n if (!keyFromResourceName.value) {\n return ''\n }\n\n const maybePrefix = props.context.attrs.identifier === 'politicalGeocodingURI'\n ? 'political-geocoding-'\n // todo: extend this for other vocabularies\n : ''\n\n // transform key from camelCase to kebab-case\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n return `${maybePrefix}${vocabKey}`\n})\n\nconst translatedResourceName = computed(() => {\n // transform key 'districtKey' to 'District Key'\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase()\n // make first letters of each word uppercase\n const vocabKeyUpper = vocabKey.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ')\n return t(`message.dataupload.datasets.conditional.${vocabKeyUpper}`)\n})\n\nconst { execute, state, isLoading } = useRequestUriName({\n voc: spatialVocabName,\n res: computed(() => props.context.value.resource),\n // property: 'dcatde:politicalGeocodingURI',\n property: computed(() => props.context.attrs.identifier === 'politicalGeocodingURI' ? 'dcatde:politicalGeocodingURI' : 'dct:spatial'), \n locale,\n})\n\nconst restoredValueFromEditMode = computed(() => {\n if (isEdit.value && !isLoading.value && resourceNameWhenEditing.value && state.value) {\n return `${translatedResourceName.value}: ${state.value} (${resourceNameWhenEditing.value.split('/').pop()})`\n }\n\n return ''\n})\n\nconst once = ref(false)\nwatchEffect(() => {\n if (once.value) return;\n\n if (!!resourceNameWhenEditing.value) {\n once.value = true\n execute()\n }\n}, { immediate: true })\n\nwhenever(restoredValueFromEditMode, () => {\n const v = { name: restoredValueFromEditMode.value, resource: resourceNameWhenEditing.value }\n props.context.node.input(v)\n})\n\n// If true, then:\n// - hides the select input for manual and vocabulary\n// - pre-selects the vocabulary option\n// When using formkit schema, enable this option by setting vocabularyOnly to true\n// {\n// $formkit: 'spatialinput',\n// name: 'dcatde:politicalGeocodingURI',\n// identifier: 'politicalGeocodingURI',\n// vocabularyOnly: true,\n// }\nconst vocabularyOnly = computed(() => !!props.context?.attrs?.vocabularyOnly)\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push(\n { item: 'Municipality Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipality Key', 'Municipality Key') },\n { item: 'Regional Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Regional Key', 'Regional Key') },\n { item: 'Municipal Association Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipal Association Key', 'Municipal Association Key') },\n { item: 'District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.District Key', 'District Key') },\n { item: 'Government District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Government District Key', 'Government District Key') },\n { item: 'State Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.State Key', 'State Key') },\n )\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push(\n { item: 'Country', active: false, placeholder: ted('message.dataupload.datasets.conditional.Country', 'Country') },\n { item: 'Place', active: false, placeholder: ted('message.dataupload.datasets.conditional.Place', 'Place') },\n { item: 'Continent', active: false, placeholder: ted('message.dataupload.datasets.conditional.Continent', 'Continent') },\n )\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async (newValue, oldValue) => {\n if (newValue === oldValue) { return }\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: ted('message.dataupload.info.searchVocabulary', '--- Type in anything for a live search of the vocabulary ---').value, resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n if (vocabularyOnly.value) {\n activeInput('showTable'); vocSearch.value = true; if (man.value) { man.value = false }\n }\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n\n let vocCache = voc.value?.toLowerCase()\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n\nfunction handleSpatielListClick(el) {\n props.context.node.input(el);\n inputText.value = el.name;\n activeInput('showVocEntries');\n showTable.third = false;\n saveToLocal(el)\n}\n\nfunction submitType() {\n activeInput('showVocTable');\n\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ restoredValueFromEditMode }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div v-if=\"!vocabularyOnly\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> {{ $t('message.dataupload.info.preferredInput') }}\n <input id=\"I1\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n :placeholder=\"$t('message.dataupload.info.preferredInput')\"\n @click=\"activeInput('showTable')\" />\n </label>\n\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.manually') }}\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.vocabulary') }}\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n {{ $te('message.dataupload.datasets.isReferencedByUrl.placeholder') ? $t('message.dataupload.datasets.isReferencedByUrl.placeholder') : 'Provide an URL' }}\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <label class=\"w-100\"> {{ $te('message.dataupload.datasets.contributorType.placeholder') ? $t('message.dataupload.datasets.contributorType.placeholder') : 'Choose type of vocabulary' }} \n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\" v-model=\"typeText\"\n :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item; typeText = el.placeholder\">\n {{ $t('message.dataupload.datasets.conditional.' + el.item) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <!-- {{ $te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary' }} -->\n {{ el.placeholder ? el.placeholder : $t('message.dataupload.datasets.conditional.' + el.item) }}\n <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\"\n @click=\"activeInput('showVocEntries'); inputText = ''\"\n >\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"handleSpatielListClick(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top: 78px;\n }\n}\n</style>\n"],"names":["instance","getCurrentInstance","route","useRoute","dpiContext","useDpiContext","props","__props","requestAutocompleteSuggestions","useAutocomplete","listOfVoc","ref","typeText","inputText","voc","matches","manURL","useStore","t","locale","useI18n","ted","useTed","man","vocSearch","isEdit","computed","_a","resourceNameWhenEditing","keyFromResourceName","spatialVocabName","maybePrefix","vocabKey","translatedResourceName","vocabKeyUpper","word","execute","state","isLoading","useRequestUriName","restoredValueFromEditMode","once","watchEffect","whenever","v","vocabularyOnly","_b","watch","getAutocompleteSuggestions","newValue","oldValue","onMounted","nextTick","showTable","activeInput","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","manURLInput","handleSpatielListClick"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { getCurrentInstance as g, ref as l, computed as D, onMounted as h, watchEffect as q, resolveComponent as $, openBlock as o, createElementBlock as b, createElementVNode as _, toDisplayString as y, createTextVNode as k, createBlock as r } from "vue";
1
+ import { getCurrentInstance as I, ref as l, computed as D, onMounted as h, watchEffect as q, resolveComponent as b, openBlock as o, createElementBlock as $, createElementVNode as _, toDisplayString as y, createTextVNode as k, createBlock as r } from "vue";
2
2
  import "vue-router";
3
3
  import { isNil as C } from "lodash-es";
4
- import U from "axios";
5
- import { useStore as x } from "vuex";
6
- import { useI18n as E } from "vue-i18n";
7
- import { useDpiContext as N } from "../composables/useDpiContext.mjs";
4
+ import S from "axios";
5
+ import { useStore as U } from "vuex";
6
+ import { useI18n as x } from "vue-i18n";
7
+ import { useDpiContext as E } from "../composables/useDpiContext.mjs";
8
8
  import "@formkit/core";
9
9
  import "merge-anything";
10
10
  import "../../configurations/config-schema/apiSchema.mjs";
@@ -17,18 +17,18 @@ import "../../configurations/config-schema/themesSchema.mjs";
17
17
  import "../../configurations/config-schema/trackerSchema.mjs";
18
18
  import "../../configurations/config-schema/configSchema.mjs";
19
19
  import "../../utils/helpers.mjs";
20
- const S = { class: "formkitProperty DSid" }, B = {
20
+ const N = { class: "formkitProperty DSid" }, B = {
21
21
  props: ["context"]
22
22
  }, te = /* @__PURE__ */ Object.assign(B, {
23
23
  __name: "UniqueIdentifierInput",
24
24
  setup(F) {
25
- let u = g().appContext.app.config.globalProperties.$env;
26
- const n = x(), p = N(), d = l(), m = D(() => {
25
+ let u = I().appContext.app.config.globalProperties.$env;
26
+ const n = U(), p = E(), d = l(), m = D(() => {
27
27
  var e;
28
28
  return !!((e = p.value.edit) != null && e.enabled);
29
29
  });
30
30
  d.value = localStorage.getItem("dpi_duplicate");
31
- const { t: i, locale: M } = E(), a = l({
31
+ const { t: i, locale: M } = x({ useScope: "global" }), a = l({
32
32
  idformatvalid: "",
33
33
  idunique: "",
34
34
  required: ""
@@ -46,8 +46,8 @@ const S = { class: "formkitProperty DSid" }, B = {
46
46
  else if (v.includes(e.value))
47
47
  t = !1;
48
48
  else {
49
- const I = `${s}datasets/${e.value}?useNormalizedId=true`;
50
- U.head(I).then(() => {
49
+ const g = `${s}datasets/${e.value}?useNormalizedId=true`;
50
+ S.head(g).then(() => {
51
51
  t = !1;
52
52
  }).catch((P) => {
53
53
  t = !0;
@@ -59,8 +59,8 @@ const S = { class: "formkitProperty DSid" }, B = {
59
59
  return /^[a-z0-9-]*$/.test(e.value);
60
60
  }
61
61
  return (e, t) => {
62
- const s = $("FormKit");
63
- return o(), b("div", S, [
62
+ const s = b("FormKit");
63
+ return o(), $("div", N, [
64
64
  _("h4", null, y(e.$t("message.dataupload.datasets.datasetID.label")), 1),
65
65
  t[0] || (t[0] = k()),
66
66
  !m.value || d.value ? (o(), r(s, {
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect, computed } from 'vue'\nimport { useRoute } from 'vue-router';\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst dpiContext = useDpiContext();\nconst isDuplicate = ref();\nconst isEditMode = computed(() => !!dpiContext.value.edit?.enabled)\nisDuplicate.value = localStorage.getItem('dpi_duplicate');\n\nconst { t, locale } = useI18n();\n\nconst validationMessages = ref({\n idformatvalid: \"\",\n idunique: \"\",\n required: \"\"\n\n});\n\nonMounted(() => {\n // This is kind of buggy, its taking the strings from the wrong json (de and en is switched)\n validationMessages.value.idformatvalid = t('message.dataupload.datasets.datasetID.invalidFormat');\n validationMessages.value.idunique = t('message.dataupload.datasets.datasetID.duplicate');\n validationMessages.value.required = t('message.dataupload.datasets.datasetID.required');\n});\n\n\nwatchEffect(() => {\n\n\n});\n\n\n\nasync function idunique(node) {\n let isUniqueID = true;\n let hubUrl = env.api.hubUrl;\n const draftIDs = store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(node.value) || node.value === '' || node.value === undefined) isUniqueID = true;\n else if (draftIDs.includes(node.value)) isUniqueID = false;\n else {\n const request = `${hubUrl}datasets/${node.value}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID;\n}\n\nfunction idformatvalid(node) {\n return /^[a-z0-9-]*$/.test(node.value);\n}\n\n</script>\n\n<template>\n <div class=\"formkitProperty DSid\">\n <h4>{{ $t(`message.dataupload.datasets.datasetID.label`) }}</h4>\n <FormKit v-if=\"!isEditMode || isDuplicate\" type=\"text\" name=\"datasetID\" id=\"datasetID\"\n :placeholder=\"$t(`message.dataupload.datasets.datasetID.label`)\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\"\n :validation-rules=\"{ idformatvalid, idunique }\" validation=\"idformatvalid|idunique|required\"\n validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n </FormKit>\n <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n </FormKit>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","dpiContext","useDpiContext","isDuplicate","ref","isEditMode","computed","_a","t","locale","useI18n","validationMessages","onMounted","watchEffect","idunique","node","isUniqueID","hubUrl","draftIDs","isNil","request","axios","e","idformatvalid"],"mappings":";;;;;;;;;;;;;;;;;;;6CAqFeA,IAAA;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA9EA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAa,GAC1BC,IAAcC,EAAG,GACjBC,IAAaC,EAAS;;AAAM,cAAC,GAACC,IAAAN,EAAW,MAAM,SAAjB,QAAAM,EAAuB;AAAA,KAAO;AAClE,IAAAJ,EAAY,QAAQ,aAAa,QAAQ,eAAe;AAExD,UAAM,EAAE,GAAAK,GAAG,QAAAC,MAAWC,KAEhBC,IAAqBP,EAAI;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IAEZ,CAAC;AAED,IAAAQ,EAAU,MAAM;AAEd,MAAAD,EAAmB,MAAM,gBAAgBH,EAAE,qDAAqD,GAChGG,EAAmB,MAAM,WAAWH,EAAE,iDAAiD,GACvFG,EAAmB,MAAM,WAAWH,EAAE,gDAAgD;AAAA,IACxF,CAAC,GAGDK,EAAY,MAAM;AAAA,IAGlB,CAAC;AAID,mBAAeC,EAASC,GAAM;AAC5B,UAAIC,IAAa,IACbC,IAASpB,EAAI,IAAI;AACrB,YAAMqB,IAAWnB,EAAM,QAAQ,sBAAsB;AAErD,iBAAI,QAAQ,MAAM;AAChB,YAAIoB,EAAMJ,EAAK,KAAK,KAAKA,EAAK,UAAU,MAAMA,EAAK,UAAU;AAAW,UAAAC,IAAa;AAAA,iBAC5EE,EAAS,SAASH,EAAK,KAAK;AAAG,UAAAC,IAAa;AAAA,aAChD;AACH,gBAAMI,IAAU,GAAGH,CAAM,YAAYF,EAAK,KAAK;AAC/C,UAAAM,EAAM,KAAKD,CAAO,EACf,KAAK,MAAM;AACV,YAAAJ,IAAa;AAAA,UACvB,CAAS,EACA,MAAM,CAACM,MAAM;AACZ,YAAAN,IAAa;AAAA,UACvB,CAAS;AAAA,QACL;AAAA,MACJ,CAAG,GACMA;AAAA,IACT;AAEA,aAASO,EAAcR,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect, computed } from 'vue'\nimport { useRoute } from 'vue-router';\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst dpiContext = useDpiContext();\nconst isDuplicate = ref();\nconst isEditMode = computed(() => !!dpiContext.value.edit?.enabled)\nisDuplicate.value = localStorage.getItem('dpi_duplicate');\n\nconst { t, locale } = useI18n({ useScope: 'global' });\n\nconst validationMessages = ref({\n idformatvalid: \"\",\n idunique: \"\",\n required: \"\"\n\n});\n\nonMounted(() => {\n // This is kind of buggy, its taking the strings from the wrong json (de and en is switched)\n validationMessages.value.idformatvalid = t('message.dataupload.datasets.datasetID.invalidFormat');\n validationMessages.value.idunique = t('message.dataupload.datasets.datasetID.duplicate');\n validationMessages.value.required = t('message.dataupload.datasets.datasetID.required');\n});\n\n\nwatchEffect(() => {\n\n\n});\n\n\n\nasync function idunique(node) {\n let isUniqueID = true;\n let hubUrl = env.api.hubUrl;\n const draftIDs = store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(node.value) || node.value === '' || node.value === undefined) isUniqueID = true;\n else if (draftIDs.includes(node.value)) isUniqueID = false;\n else {\n const request = `${hubUrl}datasets/${node.value}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID;\n}\n\nfunction idformatvalid(node) {\n return /^[a-z0-9-]*$/.test(node.value);\n}\n\n</script>\n\n<template>\n <div class=\"formkitProperty DSid\">\n <h4>{{ $t(`message.dataupload.datasets.datasetID.label`) }}</h4>\n <FormKit v-if=\"!isEditMode || isDuplicate\" type=\"text\" name=\"datasetID\" id=\"datasetID\"\n :placeholder=\"$t(`message.dataupload.datasets.datasetID.label`)\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\"\n :validation-rules=\"{ idformatvalid, idunique }\" validation=\"idformatvalid|idunique|required\"\n validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n </FormKit>\n <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n </FormKit>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","dpiContext","useDpiContext","isDuplicate","ref","isEditMode","computed","_a","t","locale","useI18n","validationMessages","onMounted","watchEffect","idunique","node","isUniqueID","hubUrl","draftIDs","isNil","request","axios","e","idformatvalid"],"mappings":";;;;;;;;;;;;;;;;;;;6CAqFeA,IAAA;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA9EA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAa,GAC1BC,IAAcC,EAAG,GACjBC,IAAaC,EAAS;;AAAM,cAAC,GAACC,IAAAN,EAAW,MAAM,SAAjB,QAAAM,EAAuB;AAAA,KAAO;AAClE,IAAAJ,EAAY,QAAQ,aAAa,QAAQ,eAAe;AAExD,UAAM,EAAE,GAAAK,GAAG,QAAAC,MAAWC,EAAQ,EAAE,UAAU,SAAQ,CAAE,GAE9CC,IAAqBP,EAAI;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IAEZ,CAAC;AAED,IAAAQ,EAAU,MAAM;AAEd,MAAAD,EAAmB,MAAM,gBAAgBH,EAAE,qDAAqD,GAChGG,EAAmB,MAAM,WAAWH,EAAE,iDAAiD,GACvFG,EAAmB,MAAM,WAAWH,EAAE,gDAAgD;AAAA,IACxF,CAAC,GAGDK,EAAY,MAAM;AAAA,IAGlB,CAAC;AAID,mBAAeC,EAASC,GAAM;AAC5B,UAAIC,IAAa,IACbC,IAASpB,EAAI,IAAI;AACrB,YAAMqB,IAAWnB,EAAM,QAAQ,sBAAsB;AAErD,iBAAI,QAAQ,MAAM;AAChB,YAAIoB,EAAMJ,EAAK,KAAK,KAAKA,EAAK,UAAU,MAAMA,EAAK,UAAU;AAAW,UAAAC,IAAa;AAAA,iBAC5EE,EAAS,SAASH,EAAK,KAAK;AAAG,UAAAC,IAAa;AAAA,aAChD;AACH,gBAAMI,IAAU,GAAGH,CAAM,YAAYF,EAAK,KAAK;AAC/C,UAAAM,EAAM,KAAKD,CAAO,EACf,KAAK,MAAM;AACV,YAAAJ,IAAa;AAAA,UACvB,CAAS,EACA,MAAM,CAACM,MAAM;AACZ,YAAAN,IAAa;AAAA,UACvB,CAAS;AAAA,QACL;AAAA,MACJ,CAAG,GACMA;AAAA,IACT;AAEA,aAASO,EAAcR,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,3 +4,4 @@ export * from './useDpiContext';
4
4
  export * from './useDpiEditMode';
5
5
  export * from './useDpiStepper';
6
6
  export * from './useRequestUriName';
7
+ export * from './useFormSchema';
@@ -1,26 +1,25 @@
1
1
  import { useRoute as D } from "vue-router";
2
- import { computed as o, toValue as n } from "vue";
3
- import { useStore as I } from "vuex";
4
- import { useRuntimeEnv as $ } from "../../composables/useRuntimeEnv.mjs";
5
- import { useAsyncState as q } from "../../external/@vueuse/core/index";
6
- import { watchOnce as S } from "../../external/@vueuse/shared/index";
7
- function N(s) {
8
- const r = D(), a = I(), i = $(), l = o(() => {
2
+ import { computed as o, toValue as n, watch as I } from "vue";
3
+ import { useStore as $ } from "vuex";
4
+ import { useRuntimeEnv as q } from "../../composables/useRuntimeEnv.mjs";
5
+ import { useAsyncState as S } from "../../external/@vueuse/core/index";
6
+ function w(s) {
7
+ const r = D(), a = $(), u = q(), m = o(() => {
9
8
  var t, e;
10
9
  return ((e = (t = n(s)) == null ? void 0 : t.edit) == null ? void 0 : e.enabled) ?? r.query.edit === "true";
11
- }), u = o(() => {
10
+ }), i = o(() => {
12
11
  var t, e;
13
12
  return ((e = (t = n(s)) == null ? void 0 : t.edit) == null ? void 0 : e.id) ?? r.query.id;
14
13
  }), d = o(() => {
15
14
  var t, e;
16
15
  return ((e = (t = n(s)) == null ? void 0 : t.edit) == null ? void 0 : e.fromDraft) ?? r.query.fromDraft ?? a.getters["auth/getIsDraft"];
17
16
  });
18
- l.value && (localStorage.setItem("dpi_editmode", "false"), a.dispatch("auth/setIsEditMode", !1));
17
+ m.value && (localStorage.setItem("dpi_editmode", "false"), a.dispatch("auth/setIsEditMode", !1));
19
18
  const c = o(() => {
20
- var m;
21
- const t = d.value, e = (m = a.getters["auth/getUserData"]) == null ? void 0 : m.rtpToken, g = r.params.property, h = r.params.id;
22
- return { endpoint: t ? `${i.api.hubUrl}drafts/datasets/${u.value}.nt?catalogue=${r.query.catalog}` : r.params.property === "catalogues" ? `${i.api.hubUrl}catalogues/${r.query.catalog}.nt` : `${i.api.hubUrl}datasets/${u.value}.nt?useNormalizedId=true`, token: e, property: g, id: h };
23
- }), { execute: f, isLoading: v, error: y } = q(
19
+ var l;
20
+ const t = d.value, e = (l = a.getters["auth/getUserData"]) == null ? void 0 : l.rtpToken, g = r.params.property, h = r.params.id;
21
+ return { endpoint: t ? `${u.api.hubUrl}drafts/datasets/${i.value}.nt?catalogue=${r.query.catalog}` : r.params.property === "catalogues" ? `${u.api.hubUrl}catalogues/${r.query.catalog}.nt` : `${u.api.hubUrl}datasets/${i.value}.nt?useNormalizedId=true`, token: e, property: g, id: h };
22
+ }), { execute: f, isLoading: v, error: y } = S(
24
23
  async () => await a.dispatch(
25
24
  "dpiStore/convertToInput",
26
25
  { ...c.value }
@@ -29,8 +28,8 @@ function N(s) {
29
28
  {
30
29
  immediate: !1
31
30
  }
32
- ), p = o(() => !!u.value && !!c.value.token);
33
- return S(p, () => {
31
+ ), p = o(() => !!i.value && !!c.value.token);
32
+ return I(p, () => {
34
33
  if (!p.value)
35
34
  return;
36
35
  const t = d.value;
@@ -41,6 +40,6 @@ function N(s) {
41
40
  };
42
41
  }
43
42
  export {
44
- N as useDpiEditMode
43
+ w as useDpiEditMode
45
44
  };
46
45
  //# sourceMappingURL=useDpiEditMode.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDpiEditMode.mjs","sources":["../../../lib/data-provider-interface/composables/useDpiEditMode.ts"],"sourcesContent":["import { useRoute } from \"vue-router\";\nimport { type DpiContext } from \"./useDpiContext\";\nimport { computed, MaybeRefOrGetter, toValue } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv\";\nimport { useAsyncState, watchOnce } from \"@vueuse/core\";\n\n /**\n * Use this composable in the DataProviderInterface to fetch a dataset from the Hub API and\n * convert it to a form input via localStorage. This composable is used when the user navigates to a dataset\n * by clicking on the \"Edit\" on the DatasetDetails page or in DraftsPage\n *\n *\n * @param dpiContext - The DPI context as returned by `useDpiContext`.\n * @returns The computed properties described above.\n */\nexport function useDpiEditMode(dpiContext: MaybeRefOrGetter<DpiContext>) {\n const route = useRoute();\n const store = useStore();\n const env = useRuntimeEnv();\n\n const editQuery = computed(() => {\n return toValue(dpiContext)?.edit?.enabled ?? route.query.edit === 'true';\n });\n\n const editIdQuery = computed(() => {\n return toValue(dpiContext)?.edit?.id ?? route.query.id;\n });\n\n const editFromDraft = computed(() => {\n return toValue(dpiContext)?.edit?.fromDraft ?? route.query.fromDraft ?? store.getters[\"auth/getIsDraft\"];\n });\n\n // For legacy purposes, set editmode to false if editQuery is false\n if (!!editQuery.value) {\n localStorage.setItem('dpi_editmode', 'false');\n store.dispatch(\"auth/setIsEditMode\", false);\n }\n\n const requestParams = computed(() => {\n const isDraft = editFromDraft.value;\n const token = store.getters[\"auth/getUserData\"]?.rtpToken;\n const property = route.params.property;\n const id = route.params.id;\n\n const endpoint = isDraft\n ? `${env.api.hubUrl}drafts/datasets/${editIdQuery.value}.nt?catalogue=${route.query.catalog}`\n : route.params.property === \"catalogues\"\n ? `${env.api.hubUrl}catalogues/${route.query.catalog}.nt`\n : `${env.api.hubUrl}datasets/${editIdQuery.value}.nt?useNormalizedId=true`;\n return { endpoint, token, property, id };\n });\n\n const { execute, isLoading, error } = useAsyncState(\n async () => {\n return await store.dispatch(\n \"dpiStore/convertToInput\",\n { ...requestParams.value }\n );\n },\n undefined,\n {\n immediate: false,\n }\n );\n\n const inEditModeAndRptAvailable = computed(() => !!editIdQuery.value && !!requestParams.value.token)\n watchOnce(inEditModeAndRptAvailable, () => {\n if (!inEditModeAndRptAvailable.value) return;\n const isDraft = editFromDraft.value;\n store.dispatch(\"auth/setIsEditMode\", true);\n store.dispatch(\"auth/setIsDraft\", isDraft);\n execute();\n }, { immediate: true });\n\n // Ensure dpiStore contains a specification before rendering the input page.\n // Maybe it's not needed but better safe than sorry.\n const isReady = computed(() => {\n return !!store.getters[\"dpiStore/getSpecificationName\"] && !isLoading.value;\n });\n\n return {\n isReady,\n error,\n }\n}\n"],"names":["useDpiEditMode","dpiContext","route","useRoute","store","useStore","env","useRuntimeEnv","editQuery","computed","_b","_a","toValue","editIdQuery","editFromDraft","requestParams","isDraft","token","property","id","execute","isLoading","error","useAsyncState","inEditModeAndRptAvailable","watchOnce"],"mappings":";;;;;;AAgBO,SAASA,EAAeC,GAA0C;AACvE,QAAMC,IAAQC,KACRC,IAAQC,KACRC,IAAMC,KAENC,IAAYC,EAAS,MAAM;;AAC/B,aAAOC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,YAAWR,EAAM,MAAM,SAAS;AAAA,EAAA,CACnE,GAEKW,IAAcJ,EAAS,MAAM;;AACjC,aAAOC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,OAAMR,EAAM,MAAM;AAAA,EAAA,CACrD,GAEKY,IAAgBL,EAAS,MAAM;;AAC5B,aAAAC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,cAAaR,EAAM,MAAM,aAAaE,EAAM,QAAQ,iBAAiB;AAAA,EAAA,CACxG;AAGG,EAAEI,EAAU,UACD,aAAA,QAAQ,gBAAgB,OAAO,GACtCJ,EAAA,SAAS,sBAAsB,EAAK;AAGtC,QAAAW,IAAgBN,EAAS,MAAM;;AACnC,UAAMO,IAAUF,EAAc,OACxBG,KAAQN,IAAAP,EAAM,QAAQ,kBAAkB,MAAhC,gBAAAO,EAAmC,UAC3CO,IAAWhB,EAAM,OAAO,UACxBiB,IAAKjB,EAAM,OAAO;AAOxB,WAAO,EAAE,UALQc,IACb,GAAGV,EAAI,IAAI,MAAM,mBAAmBO,EAAY,KAAK,iBAAiBX,EAAM,MAAM,OAAO,KACzFA,EAAM,OAAO,aAAa,eAC1B,GAAGI,EAAI,IAAI,MAAM,cAAcJ,EAAM,MAAM,OAAO,QAClD,GAAGI,EAAI,IAAI,MAAM,YAAYO,EAAY,KAAK,4BAC/B,OAAAI,GAAO,UAAAC,GAAU,IAAAC,EAAG;AAAA,EAAA,CACxC,GAEK,EAAE,SAAAC,GAAS,WAAAC,GAAW,OAAAC,EAAU,IAAAC;AAAA,IACpC,YACS,MAAMnB,EAAM;AAAA,MACjB;AAAA,MACA,EAAE,GAAGW,EAAc,MAAM;AAAA,IAAA;AAAA,IAG7B;AAAA,IACA;AAAA,MACE,WAAW;AAAA,IACb;AAAA,EAAA,GAGIS,IAA4Bf,EAAS,MAAM,CAAC,CAACI,EAAY,SAAS,CAAC,CAACE,EAAc,MAAM,KAAK;AACnG,SAAAU,EAAUD,GAA2B,MAAM;AACzC,QAAI,CAACA,EAA0B;AAAO;AACtC,UAAMR,IAAUF,EAAc;AACxB,IAAAV,EAAA,SAAS,sBAAsB,EAAI,GACnCA,EAAA,SAAS,mBAAmBY,CAAO,GACjCI;EAAA,GACP,EAAE,WAAW,GAAA,CAAM,GAQf;AAAA,IACL,SALcX,EAAS,MAChB,CAAC,CAACL,EAAM,QAAQ,+BAA+B,KAAK,CAACiB,EAAU,KACvE;AAAA,IAIC,OAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useDpiEditMode.mjs","sources":["../../../lib/data-provider-interface/composables/useDpiEditMode.ts"],"sourcesContent":["import { useRoute } from \"vue-router\";\nimport { type DpiContext } from \"./useDpiContext\";\nimport { computed, MaybeRefOrGetter, toValue, watch } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv\";\nimport { useAsyncState, watchOnce } from \"@vueuse/core\";\n\n /**\n * Use this composable in the DataProviderInterface to fetch a dataset from the Hub API and\n * convert it to a form input via localStorage. This composable is used when the user navigates to a dataset\n * by clicking on the \"Edit\" on the DatasetDetails page or in DraftsPage\n *\n *\n * @param dpiContext - The DPI context as returned by `useDpiContext`.\n * @returns The computed properties described above.\n */\nexport function useDpiEditMode(dpiContext: MaybeRefOrGetter<DpiContext>) {\n const route = useRoute();\n const store = useStore();\n const env = useRuntimeEnv();\n\n const editQuery = computed(() => {\n return toValue(dpiContext)?.edit?.enabled ?? route.query.edit === 'true';\n });\n\n const editIdQuery = computed(() => {\n return toValue(dpiContext)?.edit?.id ?? route.query.id;\n });\n\n const editFromDraft = computed(() => {\n return toValue(dpiContext)?.edit?.fromDraft ?? route.query.fromDraft ?? store.getters[\"auth/getIsDraft\"];\n });\n\n // For legacy purposes, set editmode to false if editQuery is false\n if (!!editQuery.value) {\n localStorage.setItem('dpi_editmode', 'false');\n store.dispatch(\"auth/setIsEditMode\", false);\n }\n\n const requestParams = computed(() => {\n const isDraft = editFromDraft.value;\n const token = store.getters[\"auth/getUserData\"]?.rtpToken;\n const property = route.params.property;\n const id = route.params.id;\n\n const endpoint = isDraft\n ? `${env.api.hubUrl}drafts/datasets/${editIdQuery.value}.nt?catalogue=${route.query.catalog}`\n : route.params.property === \"catalogues\"\n ? `${env.api.hubUrl}catalogues/${route.query.catalog}.nt`\n : `${env.api.hubUrl}datasets/${editIdQuery.value}.nt?useNormalizedId=true`;\n return { endpoint, token, property, id };\n });\n\n const { execute, isLoading, error } = useAsyncState(\n async () => {\n return await store.dispatch(\n \"dpiStore/convertToInput\",\n { ...requestParams.value }\n );\n },\n undefined,\n {\n immediate: false,\n }\n );\n\n const inEditModeAndRptAvailable = computed(() => !!editIdQuery.value && !!requestParams.value.token)\n watch(inEditModeAndRptAvailable, () => {\n if (!inEditModeAndRptAvailable.value) return;\n const isDraft = editFromDraft.value;\n store.dispatch(\"auth/setIsEditMode\", true);\n store.dispatch(\"auth/setIsDraft\", isDraft);\n execute();\n }, { immediate: true });\n\n // Ensure dpiStore contains a specification before rendering the input page.\n // Maybe it's not needed but better safe than sorry.\n const isReady = computed(() => {\n return !!store.getters[\"dpiStore/getSpecificationName\"] && !isLoading.value;\n });\n\n return {\n isReady,\n error,\n }\n}\n"],"names":["useDpiEditMode","dpiContext","route","useRoute","store","useStore","env","useRuntimeEnv","editQuery","computed","_b","_a","toValue","editIdQuery","editFromDraft","requestParams","isDraft","token","property","id","execute","isLoading","error","useAsyncState","inEditModeAndRptAvailable","watch"],"mappings":";;;;;AAgBO,SAASA,EAAeC,GAA0C;AACvE,QAAMC,IAAQC,KACRC,IAAQC,KACRC,IAAMC,KAENC,IAAYC,EAAS,MAAM;;AAC/B,aAAOC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,YAAWR,EAAM,MAAM,SAAS;AAAA,EAAA,CACnE,GAEKW,IAAcJ,EAAS,MAAM;;AACjC,aAAOC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,OAAMR,EAAM,MAAM;AAAA,EAAA,CACrD,GAEKY,IAAgBL,EAAS,MAAM;;AAC5B,aAAAC,KAAAC,IAAAC,EAAQX,CAAU,MAAlB,gBAAAU,EAAqB,SAArB,gBAAAD,EAA2B,cAAaR,EAAM,MAAM,aAAaE,EAAM,QAAQ,iBAAiB;AAAA,EAAA,CACxG;AAGG,EAAEI,EAAU,UACD,aAAA,QAAQ,gBAAgB,OAAO,GACtCJ,EAAA,SAAS,sBAAsB,EAAK;AAGtC,QAAAW,IAAgBN,EAAS,MAAM;;AACnC,UAAMO,IAAUF,EAAc,OACxBG,KAAQN,IAAAP,EAAM,QAAQ,kBAAkB,MAAhC,gBAAAO,EAAmC,UAC3CO,IAAWhB,EAAM,OAAO,UACxBiB,IAAKjB,EAAM,OAAO;AAOxB,WAAO,EAAE,UALQc,IACb,GAAGV,EAAI,IAAI,MAAM,mBAAmBO,EAAY,KAAK,iBAAiBX,EAAM,MAAM,OAAO,KACzFA,EAAM,OAAO,aAAa,eAC1B,GAAGI,EAAI,IAAI,MAAM,cAAcJ,EAAM,MAAM,OAAO,QAClD,GAAGI,EAAI,IAAI,MAAM,YAAYO,EAAY,KAAK,4BAC/B,OAAAI,GAAO,UAAAC,GAAU,IAAAC,EAAG;AAAA,EAAA,CACxC,GAEK,EAAE,SAAAC,GAAS,WAAAC,GAAW,OAAAC,EAAU,IAAAC;AAAA,IACpC,YACS,MAAMnB,EAAM;AAAA,MACjB;AAAA,MACA,EAAE,GAAGW,EAAc,MAAM;AAAA,IAAA;AAAA,IAG7B;AAAA,IACA;AAAA,MACE,WAAW;AAAA,IACb;AAAA,EAAA,GAGIS,IAA4Bf,EAAS,MAAM,CAAC,CAACI,EAAY,SAAS,CAAC,CAACE,EAAc,MAAM,KAAK;AACnG,SAAAU,EAAMD,GAA2B,MAAM;AACrC,QAAI,CAACA,EAA0B;AAAO;AACtC,UAAMR,IAAUF,EAAc;AACxB,IAAAV,EAAA,SAAS,sBAAsB,EAAI,GACnCA,EAAA,SAAS,mBAAmBY,CAAO,GACjCI;EAAA,GACP,EAAE,WAAW,GAAA,CAAM,GAQf;AAAA,IACL,SALcX,EAAS,MAChB,CAAC,CAACL,EAAM,QAAQ,+BAA+B,KAAK,CAACiB,EAAU,KACvE;AAAA,IAIC,OAAAC;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,13 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+
3
+ export declare function useFormSchema(): {
4
+ createSchema: ({ property, page }: {
5
+ property: string;
6
+ page: string;
7
+ }) => void;
8
+ translateSchema: ({ property, page }: {
9
+ property: string;
10
+ page: string;
11
+ }) => void;
12
+ getSchema: (property: MaybeRefOrGetter<string>) => import('vue').ComputedRef<{} | undefined>;
13
+ };