@piveau/piveau-hub-ui-modules 4.1.6 → 4.1.8

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":"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\">\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\";\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: 'Clear form',\n message: 'Are your sure you want to clear the form? BE AWARE: this can not be reverted and all of your Data is lost!',\n callback: this.clearStorage,\n },\n // deleteDistribution: {\n // confirm: 'Delete Distribution',\n // message: 'Are you sure you want to delete the distribution? The whole content will be deleted permanently!',\n // callback: this.deleteCurrentDistribution,\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 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)) {\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: 'Dataset published successfully', 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: 'Draft saved successfully', 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: 'Catalogue saved successfully', 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","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_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\">\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\";\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: 'Clear form',\n message: 'Are your sure you want to clear the form? BE AWARE: this can not be reverted and all of your Data is lost!',\n callback: this.clearStorage,\n },\n // deleteDistribution: {\n // confirm: 'Delete Distribution',\n // message: 'Are you sure you want to delete the distribution? The whole content will be deleted permanently!',\n // callback: this.deleteCurrentDistribution,\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 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: 'Dataset published successfully', 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: 'Draft saved successfully', 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: 'Catalogue saved successfully', 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","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_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,91 +1,91 @@
1
- import { computed as b, ref as n, onMounted as j, openBlock as s, createElementBlock as d, createElementVNode as u, toDisplayString as m, createTextVNode as p, createBlock as C, unref as l, isRef as x, withDirectives as q, Fragment as _, renderList as w, createCommentVNode as B, vShow as F } from "vue";
1
+ import { computed as m, ref as c, onMounted as q, openBlock as i, createElementBlock as u, createElementVNode as p, toDisplayString as v, createTextVNode as f, createBlock as C, unref as a, isRef as x, withDirectives as B, Fragment as _, renderList as S, createCommentVNode as D, vShow as F } from "vue";
2
2
  import { useStore as R } from "vuex";
3
- import { getNode as v } from "@formkit/core";
3
+ import { getNode as d } from "@formkit/core";
4
4
  import { onClickOutside as U } from "../../external/@vueuse/core/index";
5
5
  import A from "axios";
6
- import { useRuntimeEnv as D } from "../../composables/useRuntimeEnv.mjs";
7
- import { has as L, isNil as N } from "lodash-es";
8
- import { FormKit as S } from "@formkit/vue";
6
+ import { useRuntimeEnv as J } from "../../composables/useRuntimeEnv.mjs";
7
+ import { has as L, isNil as w } from "lodash-es";
8
+ import { FormKit as I } from "@formkit/vue";
9
9
  import "./SimpleSelect.vue2.mjs";
10
- const J = { class: "formkitProperty" }, K = { class: "position-relative formkitCmpWrap" }, T = ["onClick"], $ = ["onClick"], Z = {
10
+ const K = { class: "formkitProperty" }, T = { class: "position-relative formkitCmpWrap" }, $ = ["onClick"], M = ["onClick"], ee = {
11
11
  __name: "SimpleSelect",
12
12
  props: {
13
13
  context: Object
14
14
  },
15
- setup(V) {
16
- const c = V, f = b(() => g.getters["auth/getUserCatalogIds"]);
17
- let t = n();
18
- const g = R(), h = n(null), y = n();
19
- n(!0), y.value = b(() => g.getters["auth/getIsEditMode"]);
20
- let i = n([]), E = D(), a = n();
21
- a = v("dcat:catalog").value, U(h, (o) => t.value = !1);
22
- const k = async (o) => {
23
- c.context.node.input(o.id), t.value = !t.value, v("dcat:catalog").value = o.id, a = o.name;
15
+ setup(N) {
16
+ const s = N, V = m(() => localStorage.getItem("dpi_duplicate")), g = m(() => h.getters["auth/getUserCatalogIds"]);
17
+ let l = c();
18
+ const h = R(), y = c(null), k = c();
19
+ c(!0), k.value = m(() => h.getters["auth/getIsEditMode"]);
20
+ let n = c([]), E = J(), o = c();
21
+ o = d("dcat:catalog").value, U(y, (t) => l.value = !1);
22
+ const b = async (t) => {
23
+ t.id ? (s.context.node.input(t.id), l.value = !l.value, d("dcat:catalog").value = t.id, o = t.name) : (s.context.node.input(t), l.value = !l.value, d("dcat:catalog").value = t, o = t);
24
24
  };
25
- let I = async () => {
26
- let o;
27
- await A.get(E.api.baseUrl + "search?filter=catalogue").then((e) => o = e).catch((e) => {
25
+ let O = async () => {
26
+ let t;
27
+ await A.get(E.api.baseUrl + "search?filter=catalogue&limit=1000").then((e) => t = e).catch((e) => {
28
28
  reject(e);
29
- }), o.data.result.results.forEach((e) => {
30
- L(e, "title") && !N(e.title) && L(e, "id") && !N(e.id) && i.value.push({ title: Object.values(e.title)[0], id: e.id });
31
- }), i.value = await i.value.filter((e) => f.value.includes(e.id)).map((e) => ({ id: e.id, name: e.title }));
32
- let r = JSON.parse(JSON.stringify(i.value));
33
- r.length === 1 && (a = r[0].id);
29
+ }), t.data.result.results.forEach((e) => {
30
+ L(e, "title") && !w(e.title) && L(e, "id") && !w(e.id) && n.value.push({ title: Object.values(e.title)[0], id: e.id });
31
+ }), n.value = await n.value.filter((e) => g.value.includes(e.id)).map((e) => ({ id: e.id, name: e.title }));
32
+ let r = JSON.parse(JSON.stringify(n.value));
33
+ r.length === 1 && (o = r[0].id);
34
34
  };
35
- return j(async () => {
36
- I();
37
- }), (o, r) => (s(), d("div", J, [
38
- u("h4", null, m(c.context.label), 1),
39
- p(),
40
- u("div", K, [
41
- y.value.value ? (s(), C(l(S), {
35
+ return q(async () => {
36
+ O();
37
+ }), (t, r) => (i(), u("div", K, [
38
+ p("h4", null, v(s.context.label), 1),
39
+ f(),
40
+ p("div", T, [
41
+ k.value.value && !V.value ? (i(), C(a(I), {
42
42
  key: 0,
43
43
  class: "autocompleteInputfield",
44
44
  type: "text",
45
45
  readonly: "",
46
- placeholder: l(v)("dcat:catalog").value,
47
- name: c.context.node.name
48
- }, null, 8, ["placeholder", "name"])) : (s(), C(l(S), {
46
+ placeholder: a(d)("dcat:catalog").value,
47
+ name: s.context.node.name
48
+ }, null, 8, ["placeholder", "name"])) : (i(), C(a(I), {
49
49
  key: 1,
50
50
  class: "autocompleteInputfield",
51
- modelValue: l(a),
52
- "onUpdate:modelValue": r[0] || (r[0] = (e) => x(a) ? a.value = e : a = e),
53
- placeholder: c.context.attrs.placeholder,
51
+ modelValue: a(o),
52
+ "onUpdate:modelValue": r[0] || (r[0] = (e) => x(o) ? o.value = e : o = e),
53
+ placeholder: s.context.attrs.placeholder,
54
54
  type: "text",
55
- onClick: r[1] || (r[1] = (e) => x(t) ? t.value = !l(t) : t = !l(t)),
55
+ onClick: r[1] || (r[1] = (e) => x(l) ? l.value = !a(l) : l = !a(l)),
56
56
  validation: "required",
57
57
  mandatory: "true",
58
58
  readonly: "",
59
59
  "validation-messages": {
60
60
  required: "The catalog is required"
61
61
  },
62
- name: c.context.node.name
62
+ name: s.context.node.name
63
63
  }, null, 8, ["modelValue", "placeholder", "name"])),
64
- p(),
65
- q(u("ul", {
64
+ f(),
65
+ B(p("ul", {
66
66
  ref_key: "dropdownList",
67
- ref: h,
68
- class: "autocompleteResultList selectListFK"
67
+ ref: y,
68
+ class: "autocompleteResultList selectListFK catSelectList"
69
69
  }, [
70
- (s(!0), d(_, null, w(l(i), (e) => (s(), d("li", {
70
+ (i(!0), u(_, null, S(a(n), (e) => (i(), u("li", {
71
71
  key: e,
72
- onClick: (O) => k(e),
72
+ onClick: (j) => b(e),
73
73
  class: "p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC"
74
- }, m(e.name), 9, T))), 128)),
75
- p(),
76
- l(i).length === 0 ? (s(!0), d(_, { key: 0 }, w(f.value, (e) => (s(), d("li", {
74
+ }, v(e.name), 9, $))), 128)),
75
+ f(),
76
+ a(n).length === 0 ? (i(!0), u(_, { key: 0 }, S(g.value, (e) => (i(), u("li", {
77
77
  key: e,
78
- onClick: (O) => k(e),
78
+ onClick: (j) => b(e),
79
79
  class: "p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC"
80
- }, m(e), 9, $))), 128)) : B("", !0)
80
+ }, v(e), 9, M))), 128)) : D("", !0)
81
81
  ], 512), [
82
- [F, l(t)]
82
+ [F, a(l)]
83
83
  ])
84
84
  ])
85
85
  ]));
86
86
  }
87
87
  };
88
88
  export {
89
- Z as default
89
+ ee as default
90
90
  };
91
91
  //# sourceMappingURL=SimpleSelect.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit v-if=\"isEditMode.value\" class=\"autocompleteInputfield\" type=\"text\" readonly\n :placeholder=\"getNode('dcat:catalog').value\" :name=\"props.context.node.name\" />\n <FormKit v-else class=\"autocompleteInputfield\" v-model=\"catVal\"\n :placeholder=\"props.context.attrs.placeholder\" type=\"text\" @click=\"showList = !showList\"\n validation=\"required\" mandatory=\"true\" readonly :validation-messages=\"{\n required: 'The catalog is required',\n }\" :name=\"props.context.node.name\" />\n\n <ul ref=\"dropdownList\" v-show=\"showList\" class=\"autocompleteResultList selectListFK\">\n\n <li v-for=\"match in filteredCatalogs\" :key=\"match\" @click=\"setvalue(match)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n match.name }}\n </li>\n <li v-if=\"filteredCatalogs.length === 0\" v-for=\"idMatch in userCats\" :key=\"idMatch\"\n @click=\"setvalue(idMatch)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n idMatch }}\n </li>\n </ul>\n </div>\n\n\n </div>\n\n</template>\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useStore } from 'vuex';\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport axios from 'axios'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport {\n has,\n isNil,\n} from 'lodash-es';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps({\n context: Object\n})\n\nconst userCats = computed(() => store.getters['auth/getUserCatalogIds']);\nlet showList = ref()\nconst store = useStore()\nconst dropdownList = ref(null)\nconst isEditMode = ref()\nlet validationTrigger = ref(true)\nisEditMode.value = computed(() => store.getters['auth/getIsEditMode']);\nlet filteredCatalogs = ref([])\nlet env = useRuntimeEnv()\nlet catVal = ref()\n\ncatVal = getNode('dcat:catalog').value\n\nonClickOutside(dropdownList, event => showList.value = false)\n\nconst setvalue = async (e) => {\n validationTrigger = false\n props.context.node.input(e.id)\n showList.value = !showList.value;\n getNode('dcat:catalog').value = e.id\n catVal = e.name\n}\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue')\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 = await filteredCatalogs.value\n .filter(item => userCats.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n\n // Check if theres only one catalog and set it directly\n\n let clone = JSON.parse(JSON.stringify(filteredCatalogs.value))\n if (clone.length === 1) {\n catVal = clone[0].id\n }\n}\n\n\nonMounted(async () => {\n filterCatList();\n});\n\n</script>\n<style>\n.selectListFK {\n max-height: 20rem;\n overflow: overlay;\n overflow-x: hidden;\n}\n</style>"],"names":["props","__props","userCats","computed","store","showList","ref","useStore","dropdownList","isEditMode","filteredCatalogs","env","useRuntimeEnv","catVal","getNode","onClickOutside","event","setvalue","e","filterCatList","cache","axios","response","err","has","isNil","item","clone","onMounted"],"mappings":";;;;;;;;;;;;;;;AA4CA,UAAMA,IAAQC,GAIRC,IAAWC,EAAS,MAAMC,EAAM,QAAQ,wBAAwB,CAAC;AACvE,QAAIC,IAAWC,EAAK;AACpB,UAAMF,IAAQG,EAAU,GAClBC,IAAeF,EAAI,IAAI,GACvBG,IAAaH,EAAK;AACA,IAAAA,EAAI,EAAI,GAChCG,EAAW,QAAQN,EAAS,MAAMC,EAAM,QAAQ,oBAAoB,CAAC;AACrE,QAAIM,IAAmBJ,EAAI,EAAE,GACzBK,IAAMC,EAAe,GACrBC,IAASP,EAAK;AAElB,IAAAO,IAASC,EAAQ,cAAc,EAAE,OAEjCC,EAAeP,GAAc,CAAAQ,MAASX,EAAS,QAAQ,EAAK;AAE5D,UAAMY,IAAW,OAAOC,MAAM;AAE1B,MAAAlB,EAAM,QAAQ,KAAK,MAAMkB,EAAE,EAAE,GAC7Bb,EAAS,QAAQ,CAACA,EAAS,OAC3BS,EAAQ,cAAc,EAAE,QAAQI,EAAE,IAClCL,IAASK,EAAE;AAAA,IACf;AACA,QAAIC,IAAgB,YAAY;AAC5B,UAAIC;AACJ,YAAMC,EACD,IAAIV,EAAI,IAAI,UAAU,yBAAyB,EAC/C,KAAK,CAAAW,MAAaF,IAAQE,CAAS,EACnC,MAAM,CAACC,MAAQ;AACZ,eAAOA,CAAG;AAAA,MACtB,CAAS,GAELH,EAAM,KAAK,OAAO,QAAQ,QAAQ,CAAC,MAAM;AACrC,QAAII,EAAI,GAAG,OAAO,KAAK,CAACC,EAAM,EAAE,KAAK,KAAKD,EAAI,GAAG,IAAI,KAAK,CAACC,EAAM,EAAE,EAAE,KAAGf,EAAiB,MAAM,KAAK,EAAE,OAAO,OAAO,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAE,CAAE;AAAA,MAC1J,CAAK,GAEDA,EAAiB,QAAQ,MAAMA,EAAiB,MAC3C,OAAO,CAAAgB,MAAQxB,EAAS,MAAM,SAASwB,EAAK,EAAE,CAAC,EAC/C,IAAI,CAAAA,OAAS,EAAE,IAAIA,EAAK,IAAI,MAAMA,EAAK,MAAO,EAAC;AAIpD,UAAIC,IAAQ,KAAK,MAAM,KAAK,UAAUjB,EAAiB,KAAK,CAAC;AAC7D,MAAIiB,EAAM,WAAW,MACjBd,IAASc,EAAM,CAAC,EAAE;AAAA,IAE1B;AAGA,WAAAC,EAAU,YAAY;AAClB,MAAAT;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit v-if=\"isEditMode.value && !isDuplicate\" class=\"autocompleteInputfield\" type=\"text\" readonly\n :placeholder=\"getNode('dcat:catalog').value\" :name=\"props.context.node.name\" />\n <FormKit v-else class=\"autocompleteInputfield\" v-model=\"catVal\"\n :placeholder=\"props.context.attrs.placeholder\" type=\"text\" @click=\"showList = !showList\"\n validation=\"required\" mandatory=\"true\" readonly :validation-messages=\"{\n required: 'The catalog is required',\n }\" :name=\"props.context.node.name\" />\n\n <ul ref=\"dropdownList\" v-show=\"showList\" class=\"autocompleteResultList selectListFK catSelectList\">\n\n <li v-for=\"match in filteredCatalogs\" :key=\"match\" @click=\"setvalue(match)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n match.name }}\n </li>\n <li v-if=\"filteredCatalogs.length === 0\" v-for=\"idMatch in userCats\" :key=\"idMatch\"\n @click=\"setvalue(idMatch)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n idMatch }}\n </li>\n </ul>\n </div>\n </div>\n\n</template>\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useStore } from 'vuex';\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport axios from 'axios'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport {\n has,\n isNil,\n} from 'lodash-es';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps({\n context: Object\n})\n\nconst isDuplicate = computed(()=> localStorage.getItem('dpi_duplicate'))\nconst userCats = computed(() => store.getters['auth/getUserCatalogIds']);\nlet showList = ref()\nconst store = useStore()\nconst dropdownList = ref(null)\nconst isEditMode = ref()\nlet validationTrigger = ref(true)\nisEditMode.value = computed(() => store.getters['auth/getIsEditMode']);\nlet filteredCatalogs = ref([])\nlet env = useRuntimeEnv()\nlet catVal = ref()\n\ncatVal = getNode('dcat:catalog').value\n\nonClickOutside(dropdownList, event => showList.value = false)\n\nconst setvalue = async (e) => {\n \n validationTrigger = false\n if (e.id) {\n props.context.node.input(e.id)\n showList.value = !showList.value;\n getNode('dcat:catalog').value = e.id\n catVal = e.name\n } else {\n props.context.node.input(e)\n showList.value = !showList.value;\n getNode('dcat:catalog').value = e\n catVal = e\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 \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 = await filteredCatalogs.value\n .filter(item => userCats.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n\n // Check if theres only one catalog and set it directly\n\n let clone = JSON.parse(JSON.stringify(filteredCatalogs.value))\n if (clone.length === 1) {\n catVal = clone[0].id\n }\n}\n\n\nonMounted(async () => {\n filterCatList();\n});\n\n</script>\n<style>\n.catSelectList {\n width: 97.3% !important;\n margin: 0 1rem;\n}\n\n.selectListFK {\n\n max-height: 20rem;\n overflow: overlay;\n overflow-x: hidden;\n}\n</style>"],"names":["props","__props","isDuplicate","computed","userCats","store","showList","ref","useStore","dropdownList","isEditMode","filteredCatalogs","env","useRuntimeEnv","catVal","getNode","onClickOutside","event","setvalue","e","filterCatList","cache","axios","response","err","has","isNil","item","clone","onMounted"],"mappings":";;;;;;;;;;;;;;;AAyCA,UAAMA,IAAQC,GAIRC,IAAcC,EAAS,MAAK,aAAa,QAAQ,eAAe,CAAC,GACjEC,IAAWD,EAAS,MAAME,EAAM,QAAQ,wBAAwB,CAAC;AACvE,QAAIC,IAAWC,EAAK;AACpB,UAAMF,IAAQG,EAAU,GAClBC,IAAeF,EAAI,IAAI,GACvBG,IAAaH,EAAK;AACA,IAAAA,EAAI,EAAI,GAChCG,EAAW,QAAQP,EAAS,MAAME,EAAM,QAAQ,oBAAoB,CAAC;AACrE,QAAIM,IAAmBJ,EAAI,EAAE,GACzBK,IAAMC,EAAe,GACrBC,IAASP,EAAK;AAElB,IAAAO,IAASC,EAAQ,cAAc,EAAE,OAEjCC,EAAeP,GAAc,CAAAQ,MAASX,EAAS,QAAQ,EAAK;AAE5D,UAAMY,IAAW,OAAOC,MAAM;AAG1B,MAAIA,EAAE,MACFnB,EAAM,QAAQ,KAAK,MAAMmB,EAAE,EAAE,GAC7Bb,EAAS,QAAQ,CAACA,EAAS,OAC3BS,EAAQ,cAAc,EAAE,QAAQI,EAAE,IAClCL,IAASK,EAAE,SAEXnB,EAAM,QAAQ,KAAK,MAAMmB,CAAC,GAC1Bb,EAAS,QAAQ,CAACA,EAAS,OAC3BS,EAAQ,cAAc,EAAE,QAAQI,GAChCL,IAASK;AAAA,IAGjB;AACA,QAAIC,IAAgB,YAAY;AAC5B,UAAIC;AACJ,YAAMC,EACD,IAAIV,EAAI,IAAI,UAAU,oCAAoC,EAC1D,KAAK,CAAAW,MAAaF,IAAQE,CAAS,EACnC,MAAM,CAACC,MAAQ;AACZ,eAAOA,CAAG;AAAA,MACtB,CAAS,GAGLH,EAAM,KAAK,OAAO,QAAQ,QAAQ,CAAC,MAAM;AACrC,QAAII,EAAI,GAAG,OAAO,KAAK,CAACC,EAAM,EAAE,KAAK,KAAKD,EAAI,GAAG,IAAI,KAAK,CAACC,EAAM,EAAE,EAAE,KAAGf,EAAiB,MAAM,KAAK,EAAE,OAAO,OAAO,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAE,CAAE;AAAA,MAC1J,CAAK,GAEDA,EAAiB,QAAQ,MAAMA,EAAiB,MAC3C,OAAO,CAAAgB,MAAQvB,EAAS,MAAM,SAASuB,EAAK,EAAE,CAAC,EAC/C,IAAI,CAAAA,OAAS,EAAE,IAAIA,EAAK,IAAI,MAAMA,EAAK,MAAO,EAAC;AAIpD,UAAIC,IAAQ,KAAK,MAAM,KAAK,UAAUjB,EAAiB,KAAK,CAAC;AAC7D,MAAIiB,EAAM,WAAW,MACjBd,IAASc,EAAM,CAAC,EAAE;AAAA,IAE1B;AAGA,WAAAC,EAAU,YAAY;AAClB,MAAAT;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -234,7 +234,7 @@ const z = { class: "d-flex flex-column w-100 spatialWrap" }, H = {
234
234
  ]))
235
235
  ]));
236
236
  }
237
- }), ge = /* @__PURE__ */ X(de, [["__scopeId", "data-v-163b320a"]]);
237
+ }), ge = /* @__PURE__ */ X(de, [["__scopeId", "data-v-87799d8f"]]);
238
238
  export {
239
239
  ge as default
240
240
  };
@@ -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 } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\n\nconst props = defineProps({\n context: Object,\n})\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push({ item: 'Municipality Key', active: false }, { item: 'Regional Key', active: false }, { item: 'Municipal Association Key', active: false }, { item: 'District Key', active: false }, { item: 'Government District Key', active: false }, { item: 'State Key', active: false })\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push({ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false })\n\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async () => {\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: '--- Type in anything for a live search of the vocabulary ---', 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});\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 let vocCache = voc.value\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 store.dispatch('dpiStore/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, 'en', []) + \" (\" + 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 store.dispatch('dpiStore/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, 'en', []) + \" (\" + 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// 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 \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div class=\"d-flex position-relative m-3 w-100\">\n <input id=\"I1\" type=\"text\"\n class=\"selectInputField formkit-inner\" readonly=\"readonly\" placeholder=\"Select input method\"\n @click=\"activeInput('showTable')\"/>\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 Manually submit information\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n Choose from 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\"> 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 <label class=\"w-100\"> Choose type of vocabulary\n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n placeholder=\"Search the 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\">\n {{ 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\"> Search the vocabulary <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"el.item\"\n @click=\"activeInput('showVocEntries'); inputText = ''\">\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=\"props.context.node.input(el); inputText = el.name; activeInput('showVocEntries'); showTable.third = false; saveToLocal(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\nexport default {\n data() {\n return {\n man: false,\n vocSearch: false,\n }\n },\n\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 }\n}\n</style>\n"],"names":["__default__","instance","getCurrentInstance","route","useRoute","props","__props","listOfVoc","ref","inputText","voc","matches","manURL","store","useStore","watch","getAutocompleteSuggestions","onMounted","nextTick","showTable","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","activeInput","manURLInput"],"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 } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\n\nconst props = defineProps({\n context: Object,\n})\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push({ item: 'Municipality Key', active: false }, { item: 'Regional Key', active: false }, { item: 'Municipal Association Key', active: false }, { item: 'District Key', active: false }, { item: 'Government District Key', active: false }, { item: 'State Key', active: false })\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push({ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false })\n\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async () => {\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: '--- Type in anything for a live search of the vocabulary ---', 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});\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 let vocCache = voc.value\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 store.dispatch('dpiStore/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, 'en', []) + \" (\" + 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 store.dispatch('dpiStore/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, 'en', []) + \" (\" + 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// 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 \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div class=\"d-flex position-relative m-3 w-100\">\n <input id=\"I1\" type=\"text\"\n class=\"selectInputField formkit-inner\" readonly=\"readonly\" placeholder=\"Select input method\"\n @click=\"activeInput('showTable')\"/>\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 Manually submit information\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n Choose from 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\"> 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 <label class=\"w-100\"> Choose type of vocabulary\n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n placeholder=\"Search the 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\">\n {{ 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\"> Search the vocabulary <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"el.item\"\n @click=\"activeInput('showVocEntries'); inputText = ''\">\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=\"props.context.node.input(el); inputText = el.name; activeInput('showVocEntries'); showTable.third = false; saveToLocal(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\nexport default {\n data() {\n return {\n man: false,\n vocSearch: false,\n }\n },\n\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":["__default__","instance","getCurrentInstance","route","useRoute","props","__props","listOfVoc","ref","inputText","voc","matches","manURL","store","useStore","watch","getAutocompleteSuggestions","onMounted","nextTick","showTable","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","activeInput","manURLInput"],"mappings":"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"}
@@ -1,54 +1,46 @@
1
- import { getCurrentInstance as f, ref as c, resolveComponent as v, openBlock as s, createElementBlock as h, createElementVNode as I, toDisplayString as D, createTextVNode as g, createBlock as o } from "vue";
1
+ import { getCurrentInstance as v, ref as d, resolveComponent as h, openBlock as s, createElementBlock as I, createElementVNode as g, toDisplayString as D, createTextVNode as _, createBlock as n } from "vue";
2
2
  import { isNil as y } from "lodash-es";
3
- import _ from "axios";
4
- import { useStore as $ } from "vuex";
5
- const b = { class: "formkitProperty DSid" }, q = {
3
+ import $ from "axios";
4
+ import { useStore as b } from "vuex";
5
+ const q = { class: "formkitProperty DSid" }, k = {
6
6
  props: ["context"]
7
- }, B = /* @__PURE__ */ Object.assign(q, {
7
+ }, B = /* @__PURE__ */ Object.assign(k, {
8
8
  __name: "UniqueIdentifierInput",
9
- setup(k) {
10
- let d = f().appContext.app.config.globalProperties.$env;
11
- const i = $(), l = c();
12
- l.value = i.getters["auth/getIsEditMode"];
13
- const n = {
9
+ setup(U) {
10
+ let r = v().appContext.app.config.globalProperties.$env;
11
+ const i = b(), l = d(), o = d();
12
+ o.value = localStorage.getItem("dpi_duplicate"), l.value = i.getters["auth/getIsEditMode"];
13
+ const u = {
14
14
  idformatvalid: "Dataset ID must only contain lower case letters, numbers and single dashes (-). Please choose a different ID.",
15
15
  idunique: "This ID is already in use, please choose a different one."
16
16
  };
17
- async function r(e) {
18
- let t = !0, a = d.api.hubUrl;
19
- const p = i.getters["auth/getUserDraftIds"];
17
+ async function p(e) {
18
+ let t = !0, a = r.api.hubUrl;
19
+ const m = i.getters["auth/getUserDraftIds"];
20
20
  return new Promise(() => {
21
21
  if (y(e.value) || e.value === "" || e.value === void 0)
22
22
  t = !0;
23
- else if (p.includes(e.value))
23
+ else if (m.includes(e.value))
24
24
  t = !1;
25
25
  else {
26
- const m = `${a}datasets/${e.value}?useNormalizedId=true`;
27
- _.head(m).then(() => {
26
+ const f = `${a}datasets/${e.value}?useNormalizedId=true`;
27
+ $.head(f).then(() => {
28
28
  t = !1;
29
- }).catch((U) => {
29
+ }).catch((C) => {
30
30
  t = !0;
31
31
  });
32
32
  }
33
33
  }), t;
34
34
  }
35
- function u(e) {
35
+ function c(e) {
36
36
  return /^[a-z0-9-]*$/.test(e.value);
37
37
  }
38
38
  return (e, t) => {
39
- const a = v("FormKit");
40
- return s(), h("div", b, [
41
- I("h4", null, D(e.$t("message.dataupload.datasets.datasetID.label")), 1),
42
- g(),
43
- l.value ? (s(), o(a, {
44
- key: 1,
45
- type: "text",
46
- name: "datasetID",
47
- id: "datasetID",
48
- disabled: !0,
49
- info: e.$t("message.dataupload.datasets.datasetID.info"),
50
- help: e.$t("message.dataupload.datasets.datasetID.help")
51
- }, null, 8, ["info", "help"])) : (s(), o(a, {
39
+ const a = h("FormKit");
40
+ return s(), I("div", q, [
41
+ g("h4", null, D(e.$t("message.dataupload.datasets.datasetID.label")), 1),
42
+ _(),
43
+ !l.value || o.value ? (s(), n(a, {
52
44
  key: 0,
53
45
  type: "text",
54
46
  name: "datasetID",
@@ -56,12 +48,20 @@ const b = { class: "formkitProperty DSid" }, q = {
56
48
  placeholder: e.$t("message.dataupload.datasets.datasetID.label"),
57
49
  info: e.$t("message.dataupload.datasets.datasetID.info"),
58
50
  help: e.$t("message.dataupload.datasets.datasetID.help"),
59
- "validation-rules": { idformatvalid: u, idunique: r },
51
+ "validation-rules": { idformatvalid: c, idunique: p },
60
52
  validation: "idformatvalid|idunique|required",
61
53
  "validation-visibility": "live",
62
- "validation-messages": n,
54
+ "validation-messages": u,
63
55
  "outer-class": "formkitCmpWrap p-3"
64
- }, null, 8, ["placeholder", "info", "help", "validation-rules"]))
56
+ }, null, 8, ["placeholder", "info", "help", "validation-rules"])) : (s(), n(a, {
57
+ key: 1,
58
+ type: "text",
59
+ name: "datasetID",
60
+ id: "datasetID",
61
+ disabled: !0,
62
+ info: e.$t("message.dataupload.datasets.datasetID.info"),
63
+ help: e.$t("message.dataupload.datasets.datasetID.help")
64
+ }, null, 8, ["info", "help"]))
65
65
  ]);
66
66
  };
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect } from 'vue'\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst isEditMode = ref();\nisEditMode.value = store.getters['auth/getIsEditMode'];\n\nconst validationMessages = {\n idformatvalid: \"Dataset ID must only contain lower case letters, numbers and single dashes (-). Please choose a different ID.\",\n idunique: \"This ID is already in use, please choose a different one.\"\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\n <FormKit v-if=\"!isEditMode\" 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","isEditMode","ref","validationMessages","idunique","node","isUniqueID","hubUrl","draftIDs","isNil","request","axios","e","idformatvalid"],"mappings":";;;;6CA+DAA,IAAe;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA1DA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAG;AACtB,IAAAD,EAAW,QAAQF,EAAM,QAAQ,oBAAoB;AAErD,UAAMI,IAAqB;AAAA,MACzB,eAAe;AAAA,MACf,UAAU;AAAA,IACZ;AAEA,mBAAeC,EAASC,GAAM;AAC5B,UAAIC,IAAa,IACbC,IAASV,EAAI,IAAI;AACrB,YAAMW,IAAWT,EAAM,QAAQ,sBAAsB;AAErD,iBAAI,QAAQ,MAAM;AAChB,YAAIU,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,QACJ;AAAA,MACL,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 } from 'vue'\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst isEditMode = ref();\nconst isDuplicate =ref();\nisDuplicate.value = localStorage.getItem('dpi_duplicate');\nisEditMode.value = store.getters['auth/getIsEditMode'];\n\nconst validationMessages = {\n idformatvalid: \"Dataset ID must only contain lower case letters, numbers and single dashes (-). Please choose a different ID.\",\n idunique: \"This ID is already in use, please choose a different one.\"\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","isEditMode","ref","isDuplicate","validationMessages","idunique","node","isUniqueID","hubUrl","draftIDs","isNil","request","axios","e","idformatvalid"],"mappings":";;;;6CAgEAA,IAAe;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA3DA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAG,GAChBC,IAAaD,EAAG;AACtB,IAAAC,EAAY,QAAQ,aAAa,QAAQ,eAAe,GACxDF,EAAW,QAAQF,EAAM,QAAQ,oBAAoB;AAErD,UAAMK,IAAqB;AAAA,MACzB,eAAe;AAAA,MACf,UAAU;AAAA,IACZ;AAEA,mBAAeC,EAASC,GAAM;AAC5B,UAAIC,IAAa,IACbC,IAASX,EAAI,IAAI;AACrB,YAAMY,IAAWV,EAAM,QAAQ,sBAAsB;AAErD,iBAAI,QAAQ,MAAM;AAChB,YAAIW,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,QACJ;AAAA,MACL,CAAG,GACMA;AAAA,IACT;AAEA,aAASO,EAAcR,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}