@piveau/piveau-hub-ui-modules 4.0.26 → 4.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-provider-interface/DPIMenu.vue.mjs +2 -2
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +103 -103
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs +47 -45
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue2.mjs +5 -0
- package/dist/data-provider-interface/components/ConditionalInput.vue2.mjs.map +1 -0
- package/dist/data-provider-interface/config/dcatap/vocab-prefixes.mjs +1 -1
- package/dist/data-provider-interface/config/dcatap/vocab-prefixes.mjs.map +1 -1
- package/dist/data-provider-interface/store/modules/autocompleteStore.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/scss/_dpi-style.scss +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<script setup>\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\n\nimport qs from 'qs';\nimport axios from 'axios';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\nlet matches = ref({\n value: { name: '--- Type in anything for a live search of the vocabulary ---' }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\n\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await store.dispatch('dpiStore/requestResourceName', { voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, 'en', []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, 'en', []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n for (let i = 0; i < response.data.results.length; i++) {\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n\n\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: voc, text: innerText, 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 if (results.length === 0) {\n matches.value = { value: { name: '--- No match found ---' } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>\n\n<template>\n\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"formkitCmpWrap\">\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\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=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <input class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList \"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ props.context.label }} Suggestions</h3>\n <span>You can generate suggestions based on the description you provided</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">Try it</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n <div class=\"formkit-wrapper\">\n <div class=\"formkit-help\">{{ props.context.help }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>"],"names":["instance","getCurrentInstance","props","__props","store","useStore","listOfValues","computed","selection","voc","matches","ref","activeList","dropdownList","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","removeProperty","removeMultipleProperty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,QAAIA,IAAWC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAE3E,UAAMC,IAAQC,GAGRC,IAAQC,GAAQ;AAEtB,QAAIC,IAAeC,EAAS,MACnBL,EAAM,QAAQ,KACtB,GAEGM,GACAC,IAAMP,EAAM,QAAQ,MAAM,KAC1BQ,IAAUC,EAAI;AAAA,MAChB,OAAO,EAAE,MAAM,+DAAgE;AAAA,IACjF,CAAC,GACGC,IAAaD,EAAK,GAClBE,IAAeF,EAAI,IAAI,GACvBG,IAAYH,EAAI,EAAE,GAClBI,IAAY,CAAA,GACZC,IAAY,CAAA,GACZC,IAAeN,EAAI;AAAA,MACrB,OAAO;AAAA,IACT,CAAC;AACmB,IAAAA,EAAM;AAC1B,QAAIO,IAAqBP,EAAI,EAAE;AAE/B,IAAAQ,EAAU,YAAY;AACpB,MAAAL,EAAU,QAAQ;AAAA,IACpB,CAAC,GAEDM,EAAMV,GAAS,YAAY;AAAA,KAAG,GAC9BU,EAAMF,GAAoB,YAAY;AAAA,KAAG;AAEzC,UAAMG,IAAiB,OAAOC,MAAQ;AAEpC,UAAIA,KAAO,MAAW;AACpB,YAAIC,IACFd,MAAQ,sBACRA,MAAQ,2BAENe;AAEJ,qBAAMpB,EAAM,SAAS,gCAAgC,EAAE,KAAKK,GAAK,KAAKa,GAAK,MAAMtB,EAAQ,CAAE,EAAE;AAAA,UAC3F,CAACyB,MAAa;AACZ,YAAIvB,EAAM,QAAQ,MAAM,aAAa,iCAC/BuB,KAAY,SAMdD,IALaD,IACTE,EAAS,KAAK,OAAO,QACpB,OAAO,CAACC,MAAYA,EAAQ,aAAaJ,CAAG,EAC5C,IAAI,CAACI,MAAYA,EAAQ,SAAS,EAAE,CAAC,EAAE,KACxCC,EAAkBF,EAAS,KAAK,OAAO,WAAW,MAAM,CAAA,CAAE,KAK5DA,KAAY,SAMdD,IALaD,IACTE,EAAS,KAAK,OAAO,QACpB,OAAO,CAACC,MAAYA,EAAQ,aAAaJ,CAAG,EAC5C,IAAI,CAACI,MAAYA,EAAQ,UAAU,EAAE,CAAC,EAAE,KACzCC,EAAkBF,EAAS,KAAK,OAAO,YAAY,MAAM,CAAA,CAAE;AAAA,UAKpE;AAAA,QACP,GACWD;AAAA,MACR;AAAA,IAEH;AAEA,IAAAI,EAAY,YAAY;AACtB,YAAMC,IAASvB,EAAa;AAG5B,UAAIuB,EAAO,eAAe,MAAM,KAC1BA,EAAO,SAASA,EAAO,UAAU;AACnC,YAAIC;AACJ,QAAK5B,EAAM,QAAQ,MAAM,aACvB4B,IAAUT,EAAeQ,EAAO,QAAQ,GACxC3B,EAAM,QAAQ,KAAK,MAAM,EAAE,MAAM,MAAM4B,GAAS,UAAUD,EAAO,UAAU;AAAA,MAG9E;AAGH,UAAIA,EAAO,UAAU,GAAG;AACtB,YAAIE,IAAc,CAAA;AAClB,iBAASC,IAAQ,GAAGA,IAAQH,EAAO,QAAQG;AACzC,UAAIH,EAAOG,CAAK,EAAE,SAASH,EAAOG,CAAK,EAAE,aACvCD,EAAY,KAAK,EAAE,MAAM,MAAMV,EAAeQ,EAAOG,CAAK,EAAE,QAAQ,GAAG,UAAUH,EAAOG,CAAK,EAAE,SAAQ,CAAE,GACzG9B,EAAM,QAAQ,KAAK,MAAM6B,CAAW;AAAA,MAGzC;AAAA,IACH,CAAC;AACD,aAASE,EAAqBC,GAAS;AAErC,UAAIC,IAAY,EAAE,MAAM,IAAI,MAAMjC,EAAM,QAAQ,KAAK,KAAM,GACvDkC,IAAqB,KAAK,MAAM,aAAa,QAAQ,cAAc,CAAC;AAExE,eAASJ,IAAQ,GAAGA,IAAQ,OAAO,KAAKI,CAAkB,EAAE,QAAQJ;AAClE,iBAASK,IAAa,GAAGA,IAAa,OAAO,KAAKD,CAAkB,EAAEJ,CAAK,EAAE,QAAQK,KAAc;AACjG,cAAIC,IAAO,OAAO,QAASF,CAAoB;AAC/C,cAAI;AACF,mBAAO,KAAKE,EAAKN,CAAK,EAAEK,CAAU,CAAC,EAAE,OAAO,CAAAE,MAAK;AAC/C,cAAIA,MAAMrC,EAAM,QAAQ,KAAK,SAC3BiC,EAAU,OAAOG,EAAKN,CAAK,EAAE,CAAC,GAE1BE,MAAY,YAEd1B,IAAY,CAAE,GACd4B,EAAmBD,EAAU,IAAI,EAAEA,EAAU,IAAI,IAAI3B,IAIrD4B,EAAmBD,EAAU,IAAI,EAAEA,EAAU,IAAI,IAAI3B,GAGvD,aAAa,QAAQ,gBAAgB,KAAK,UAAU4B,CAAkB,CAAC;AAAA,YAEnF,CAAS;AAAA,UACF,QAAe;AAAA,UACf;AAAA,QACF;AAGH,aAAO,oBAAoB,SAASI,CAAc;AAAA,IACpD;AACA,IAAAA,EAAe3B,GAAc,CAAA4B,MAAS7B,EAAW,QAAQ,EAAK;AAC9D,QAAI8B,IAAoB,OAAOC,GAAOC,MAAU;AAE9C,UAAIC,IAAa;AACjB,MAAID,KAAS,SACXC,IAAaA,IAAa;AAG5B,UAAIC,IAAQC,GAAG,UAAU;AAAA,QACvB,MAAQJ;AAAA,QACR,OAASE;AAAA,MACb,CAAG;AAGD,UAAIG,IAAS;AAAA,QACX,QAAQ;AAAA,QACR,KAAKvC,KAAO,YACRT,EAAS,QAAQ,sBAAsB,mBACvCA,EAAS,QAAQ,sBAAsB;AAAA,QAC3C,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,QAAU;AAAA,QACX;AAAA,QACD,MAAM8C;AAAA,MACV;AAIE,MAAAG,GAAMD,CAAM,EACT,KAAK,OAAOvB,MAAa;AACxB,iBAASyB,IAAI,GAAGA,IAAIzB,EAAS,KAAK,QAAQ,QAAQyB;AAChD,UAAAlC,EAAUkC,CAAC,IAAI,EAAE,MAAQzB,EAAS,KAAK,QAAQyB,CAAC,EAAE,OAAO,UAAYzB,EAAS,KAAK,QAAQyB,CAAC,EAAE,KAAK,aAAe,GAAO;AAE3H,YAAIC,IAAiB,CAAE;AACvB,QAAI7C,EAAa,MAAM,SAAS,KAC9BA,EAAa,MAAM,QAAQ,CAAA8C,MAAW;AACpC,UAAAD,EAAe,KAAK,EAAE,MAAQC,EAAQ,MAAM,UAAYA,EAAQ,UAAU,aAAe,GAAI,CAAE;AAAA,QACzG,CAAS,GAEC3B,EAAS,KAAK,QAAQ,SAAS,MACjCT,EAAUA,EAAU,SAAS,CAAC,IAAI,EAAE,MAAQ,OAAO,UAAY,WAAW,aAAe,GAAO,IAGlGE,EAAmB,QAAQmC,EAAgBF,GAAgBnC,CAAS;AAAA,MAE1E,CAAK,EACA,MAAM,SAAUsC,GAAO;AACtB,gBAAQ,IAAIA,CAAK;AAAA,MACvB,CAAK;AAAA,IACL;AACA,mBAAeC,EAAqBC,GAAM;AAExC,MAAIA,EAAK,aAAa,YACpBC,EAAqB,CAAC,KAGtBC,EAAS,EAAE,MAAMF,EAAK,MAAM,UAAUA,EAAK,UAAU,GACrDC,EAAsB;AAAA,IAI1B;AACA,aAASJ,EAAgBM,GAAQC,GAAQ;AAEvC,UAAIC,IAAcF,EAAO,OAAOC,CAAM,GAClCE,IAAgB,CAAA,GAChBC,IAAc,oBAAI;AAEtB,aAAAF,EAAY,QAAQ,CAAAG,MAAO;AACzB,QAAKD,EAAY,IAAIC,EAAI,QAAQ,MAC/BD,EAAY,IAAIC,EAAI,QAAQ,GACvBA,EAAI,eACPF,EAAc,KAAKE,CAAG;AAAA,MAG9B,CAAG,GAGMF;AAAA,IACT;AACA,UAAML,IAAuB,OAAOQ,MAAgB;AAElD,UAAIC,IAAMC,GAAQ,WAAW,EAAE,MAAM,iBAAiB;AACtD,eAASjB,IAAI,GAAGA,IAAIgB,EAAI,QAAQhB;AAC9B,QAAIgB,EAAIhB,CAAC,EAAE,WAAW,MAAM,SACtBe,KAAe,OACjB,MAAMvB,EAAkBwB,EAAIhB,CAAC,EAAE,QAAQ,GAAG,CAAC,IAExC,MAAMR,EAAkBwB,EAAIhB,CAAC,EAAE,QAAQ,CAAC;AAAA,IAInD;AAGA,IAAAhD,EAAM,QAAQ,QAAQ,SAAS,wBAAwBA,EAAM,QAAQ,MAAM;AAE3E,UAAMwD,IAAW,OAAOnB,MAAM;AAC5B,UAAI,OAAO,KAAKA,CAAC,EAAE,WAAW,GAS9B;AAAA,YANIjC,EAAa,MAAM,SAAS,MAE9BS,IAAYT,EAAa,QAIvBJ,EAAM,QAAQ,MAAM;AAEtB,cAAIa,EAAU,UAAU,GAAG;AACzB,gBAAIqD,IAAmB,EAAE,MAAM7B,EAAE,MAAM,UAAUA,EAAE,YAC/C8B,IAAetD,EAAU,OAAO,CAACqC,MAAYA,EAAQ,QAAQb,EAAE,IAAI;AACvE,YAAA8B,EAAa,KAAKD,CAAgB,GAClC5D,IAAY6D,GACZ,MAAMnE,EAAM,QAAQ,KAAK,MAAMM,CAAS;AAAA,UAEzC;AAEC,YAAAO,EAAU,KAAK,EAAE,MAAMwB,EAAE,MAAM,UAAUA,EAAE,UAAU,GACrD/B,IAAYO,GACZ,MAAMb,EAAM,QAAQ,KAAK,MAAMM,CAAS;AAAA,aAIvC;AAAA,cAAI+B,EAAE,aAAa;AAAW;AAC9B,UAAIA,MAAM,WAAW,MAAMrC,EAAM,QAAQ,KAAK,MAAM,CAAA,CAAE,GAAG+B,EAAqBM,CAAC,MAElF/B,IAAY,EAAE,MAAM+B,EAAE,MAAM,UAAUA,EAAE,YACxC,MAAMrC,EAAM,QAAQ,KAAK,MAAMM,CAAS;AAAA;AAE1C,QAAAyB;;IACF,GAEMqC,IAA6B,OAAO/B,MAAM;AAC9C,UAAIgC,IAAYhC,EAAE,OAAO;AAEzB,YAAMnC,EAAM,SAAS,2CAA2C,EAAE,KAAKK,GAAK,MAAM8D,GAAW,MAAMvE,EAAS,IAAI,QAAS,CAAA,EAAE,KAAK,CAACyB,MAAa;AAC5I,cAAM+C,IAAU/C,EAAS,KAAK,OAAO,QAAQ,IAAI,CAAC,OAAO;AAAA,UACvD,MAAME,EAAkB,EAAE,YAAY,MAAM,CAAE,CAAA,IAAI,OAAO,EAAE,KAAK;AAAA,UAChE,UAAU,EAAE;AAAA,QACb,EAAC;AACF,QAAI6C,EAAQ,WAAW,IACrB9D,EAAQ,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAwB,EAAI,IAE1DA,EAAQ,QAAQ8D;AAAA,MACzB,CAAG;AAAA,IACH;AAEA,aAASC,EAAelC,GAAG;AACzB,MAAArC,EAAM,QAAQ,KAAK,MAAM,CAAA,CAAE,GAC3BwD,EAAS,OAAO;AAAA,IAClB;AACA,aAASgB,EAAuBnC,GAAG;AAEjC,MAAIvC,EAAS,QAAQ,sBAAsB,oBACzCyD,EAAsB,GAEpBnD,EAAa,MAAM,SAAS,MAC9BS,IAAYT,EAAa,QAG3BS,EAAU,OAAOA,EAAU,UAAU,CAACqC,MAAYA,EAAQ,QAAQb,EAAE,IAAI,GAAG,CAAC,GAC5E/B,IAAYO,GACZb,EAAM,QAAQ,KAAK,MAAMM,CAAS,GAClCyB;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <!-- need to make a condition for the licence property of the distribution - otherwise the dropdown doesnt work-->\n\n <h4 v-if=\"props.context.attrs.identifier != 'licence'\">{{ props.context.label }}</h4>\n <div class=\"formkitCmpWrap\">\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\n\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=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <input class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ props.context.label }} Suggestions</h3>\n <span>You can generate suggestions based on the description you provided</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">Try it</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n <div class=\"formkit-wrapper\">\n <div class=\"formkit-help\">{{ props.context.help }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script setup>\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\n\nimport qs from 'qs';\nimport axios from 'axios';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\nlet matches = ref({\n value: { name: '--- Type in anything for a live search of the vocabulary ---' }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\n\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await store.dispatch('dpiStore/requestResourceName', { voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, 'en', []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, 'en', []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n for (let i = 0; i < response.data.results.length; i++) {\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n\n\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: voc, text: innerText, 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 if (results.length === 0) {\n matches.value = { value: { name: '--- No match found ---' } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>"],"names":["instance","getCurrentInstance","props","__props","store","useStore","listOfValues","computed","selection","voc","matches","ref","activeList","dropdownList","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","r","removeProperty","removeMultipleProperty"],"mappings":"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"}
|
|
@@ -1,71 +1,73 @@
|
|
|
1
|
-
import { ref as m, resolveComponent as
|
|
2
|
-
import
|
|
3
|
-
import { onClickOutside as
|
|
4
|
-
|
|
1
|
+
import { ref as m, resolveComponent as M, openBlock as o, createElementBlock as a, createElementVNode as s, toDisplayString as y, createTextVNode as v, withDirectives as V, isRef as O, vModelText as j, unref as c, Fragment as _, renderList as x, createCommentVNode as p, createBlock as S, createVNode as I } from "vue";
|
|
2
|
+
import L from "./AutocompleteInput.vue.mjs";
|
|
3
|
+
import { onClickOutside as N } from "../../external/@vueuse/core/index";
|
|
4
|
+
import "./ConditionalInput.vue2.mjs";
|
|
5
|
+
const T = { class: "formkitProperty" }, w = { class: "formkitCmpWrap simpleConditional" }, B = { class: "m-3" }, D = { class: "conditionalSelectDiv" }, F = { key: 0 }, E = { class: "selectListConditional" }, H = { class: "conditionalManual" }, K = {
|
|
5
6
|
key: 0,
|
|
6
7
|
class: "d-flex"
|
|
7
8
|
}, P = {
|
|
8
9
|
key: 0,
|
|
9
10
|
class: "conditionalVocabulary"
|
|
10
|
-
},
|
|
11
|
+
}, q = {
|
|
11
12
|
__name: "ConditionalInput",
|
|
12
13
|
props: {
|
|
13
14
|
context: Object
|
|
14
15
|
},
|
|
15
|
-
setup(
|
|
16
|
-
const e =
|
|
17
|
-
let
|
|
18
|
-
const f = m(null),
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
|
|
16
|
+
setup(k) {
|
|
17
|
+
const e = k;
|
|
18
|
+
let l = m(), t = m(!1), u = m(!1);
|
|
19
|
+
const f = m(null), b = (r) => {
|
|
20
|
+
u.value = !u.value;
|
|
21
|
+
}, h = (r) => {
|
|
22
|
+
l.value = r.target.innerHTML, r.target.innerHTML === "Manually" ? t.value = "manually" : t.value = "vocabulary", e.context.node.reset(), console.log(t.value);
|
|
22
23
|
};
|
|
23
|
-
return
|
|
24
|
-
const C =
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
return N(f, (r) => u.value = !1), Object.keys(e.context.value)[0] === "dct:title" && (l.value = "Manually", t.value = "manually"), Object.keys(e.context.value)[0] === "name" && (l.value = "Vocabulary", t.value = "vocabulary"), (r, i) => {
|
|
25
|
+
const C = M("FormKit");
|
|
26
|
+
return o(), a("div", T, [
|
|
27
|
+
s("h4", null, y(e.context.attrs.identifier), 1),
|
|
28
|
+
v(),
|
|
29
|
+
s("div", w, [
|
|
30
|
+
s("div", B, [
|
|
31
|
+
s("div", D, [
|
|
32
|
+
V(s("input", {
|
|
32
33
|
ref_key: "I1",
|
|
33
34
|
ref: f,
|
|
34
35
|
type: "text",
|
|
35
36
|
class: "conditionalSelect formkit-input formkit-inner",
|
|
36
|
-
onClick:
|
|
37
|
+
onClick: i[0] || (i[0] = (n) => b()),
|
|
37
38
|
placeholder: "Choose input method",
|
|
38
|
-
"onUpdate:modelValue":
|
|
39
|
+
"onUpdate:modelValue": i[1] || (i[1] = (n) => O(l) ? l.value = n : l = n)
|
|
39
40
|
}, null, 512), [
|
|
40
|
-
[
|
|
41
|
+
[j, c(l)]
|
|
41
42
|
]),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(
|
|
43
|
+
v(),
|
|
44
|
+
c(u) ? (o(), a("div", F, [
|
|
45
|
+
s("ul", E, [
|
|
46
|
+
(o(!0), a(_, null, x(e.context.attrs.selection, (n, d) => (o(), a("li", {
|
|
46
47
|
class: "p-2 border-b border-gray-200",
|
|
47
|
-
onClick:
|
|
48
|
-
},
|
|
48
|
+
onClick: i[2] || (i[2] = (g) => h(g))
|
|
49
|
+
}, y(n), 1))), 256))
|
|
49
50
|
])
|
|
50
|
-
])) :
|
|
51
|
+
])) : p("", !0)
|
|
51
52
|
]),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(
|
|
56
|
-
type:
|
|
57
|
-
placeholder:
|
|
58
|
-
name:
|
|
59
|
-
validation:
|
|
53
|
+
v(),
|
|
54
|
+
s("div", H, [
|
|
55
|
+
c(t) === "manually" || Object.keys(e.context.value).length > 0 && e.context.value["foaf:name"] && c(t) != "vocabulary" ? (o(), a("div", K, [
|
|
56
|
+
(o(!0), a(_, null, x(e.context.attrs.options, (n, d) => (o(), S(C, {
|
|
57
|
+
type: d,
|
|
58
|
+
placeholder: d,
|
|
59
|
+
name: n,
|
|
60
|
+
validation: d,
|
|
61
|
+
class: "w-100"
|
|
60
62
|
}, null, 8, ["type", "placeholder", "name", "validation"]))), 256))
|
|
61
|
-
])) :
|
|
63
|
+
])) : p("", !0)
|
|
62
64
|
]),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
v(),
|
|
66
|
+
c(t) === "vocabulary" || Object.keys(e.context.value).length > 0 && e.context.value.name && c(t) != "manually" ? (o(), a("div", P, [
|
|
67
|
+
I(L, {
|
|
66
68
|
context: e.context
|
|
67
69
|
}, null, 8, ["context"])
|
|
68
|
-
])) :
|
|
70
|
+
])) : p("", !0)
|
|
69
71
|
])
|
|
70
72
|
])
|
|
71
73
|
]);
|
|
@@ -73,6 +75,6 @@ const j = { class: "formkitProperty" }, B = { class: "formkitCmpWrap simpleCondi
|
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
77
|
export {
|
|
76
|
-
|
|
78
|
+
q as default
|
|
77
79
|
};
|
|
78
80
|
//# sourceMappingURL=ConditionalInput.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/ConditionalInput.vue"],"sourcesContent":["<
|
|
1
|
+
{"version":3,"file":"ConditionalInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/ConditionalInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.attrs.identifier }}</h4>\n <div class=\"formkitCmpWrap simpleConditional\">\n <div class=\"m-3\">\n <div class=\"conditionalSelectDiv\">\n <input ref=\"I1\" type=\"text\" class=\"conditionalSelect formkit-input formkit-inner\" @click=\"openSelect($event)\"\n placeholder=\"Choose input method\" v-model=\"selectModeVal\">\n <div v-if=\"showSelect\">\n <ul class=\"selectListConditional\">\n <li v-for=\"el, index in props.context.attrs.selection\" class=\"p-2 border-b border-gray-200 \"\n @click=\"selectMode($event)\">{{ el }}</li>\n </ul>\n </div>\n </div>\n <div class=\"conditionalManual\">\n <div class=\"d-flex\" v-if=\"selectedItem === 'manually' ||\n Object.keys(props.context.value).length > 0 && props.context.value['foaf:name']\n && selectedItem != 'vocabulary'\">\n <FormKit v-for=\"el, key in props.context.attrs.options\" :type=\"key\" :placeholder=\"key\" :name=\"el\"\n :validation=\"key\" class=\"w-100\"></FormKit>\n </div>\n </div>\n <div v-if=\"selectedItem === 'vocabulary' || Object.keys(props.context.value).length > 0\n && props.context.value.name && selectedItem != 'manually'\" class=\"conditionalVocabulary\">\n <AutocompleteInput :context=\"props.context\"></AutocompleteInput>\n </div>\n \n \n </div>\n\n </div>\n </div>\n\n</template>\n<script setup>\nimport { ref } from 'vue';\nimport AutocompleteInput from './AutocompleteInput.vue';\nimport { onClickOutside } from '@vueuse/core'\n\nconst props = defineProps({\n context: Object,\n})\nlet selectModeVal = ref()\nlet selectedItem = ref(false)\nlet showSelect = ref(false)\nconst I1 = ref(null)\n\nconst openSelect = (e) => {\n\n showSelect.value = !showSelect.value\n\n}\nconst selectMode = (e) => {\n selectModeVal.value = e.target.innerHTML\n if (e.target.innerHTML === 'Manually') {\n selectedItem.value = \"manually\"\n }\n else selectedItem.value = \"vocabulary\"\n props.context.node.reset()\n console.log(selectedItem.value);\n}\nonClickOutside(I1, event => showSelect.value = false)\n// determine which property is already there\nif (Object.keys(props.context.value)[0] === 'dct:title') {\n selectModeVal.value = 'Manually'\n selectedItem.value = 'manually'\n}\nif (Object.keys(props.context.value)[0] === 'name') {\n selectModeVal.value = 'Vocabulary'\n selectedItem.value = 'vocabulary'\n}\n\n</script>\n<style>\n.conditionalManual{\n .formkit-outer{\n width: 100%;\n }\n}\n</style>"],"names":["props","__props","selectModeVal","ref","selectedItem","showSelect","I1","openSelect","e","selectMode","onClickOutside","event"],"mappings":";;;;;;;;;;;;;;;;AAwCA,UAAMA,IAAQC;AAGd,QAAIC,IAAgBC,EAAK,GACrBC,IAAeD,EAAI,EAAK,GACxBE,IAAaF,EAAI,EAAK;AAC1B,UAAMG,IAAKH,EAAI,IAAI,GAEbI,IAAa,CAACC,MAAM;AAExB,MAAAH,EAAW,QAAQ,CAACA,EAAW;AAAA,IAEjC,GACMI,IAAa,CAACD,MAAM;AACxB,MAAAN,EAAc,QAAQM,EAAE,OAAO,WAC3BA,EAAE,OAAO,cAAc,aACzBJ,EAAa,QAAQ,aAElBA,EAAa,QAAQ,cAC1BJ,EAAM,QAAQ,KAAK,MAAO,GAC1B,QAAQ,IAAII,EAAa,KAAK;AAAA,IAChC;AACA,WAAAM,EAAeJ,GAAI,CAAAK,MAASN,EAAW,QAAQ,EAAK,GAEhD,OAAO,KAAKL,EAAM,QAAQ,KAAK,EAAE,CAAC,MAAM,gBAC1CE,EAAc,QAAQ,YACtBE,EAAa,QAAQ,aAEnB,OAAO,KAAKJ,EAAM,QAAQ,KAAK,EAAE,CAAC,MAAM,WAC1CE,EAAc,QAAQ,cACtBE,EAAa,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalInput.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const t = {
|
|
2
|
-
licence: "http://
|
|
2
|
+
licence: "http://publications.europa.eu/resource/authority/licence/",
|
|
3
3
|
// no unified URI!!
|
|
4
4
|
"planned-availability": "http://publications.europa.eu/resource/authority/planned-availability/",
|
|
5
5
|
"dataset-type": "http://publications.europa.eu/resource/authority/dataset-type/",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocab-prefixes.mjs","sources":["../../../../lib/data-provider-interface/config/dcatap/vocab-prefixes.js"],"sourcesContent":["const vocabPrefixes = {\n \"licence\": \"http://
|
|
1
|
+
{"version":3,"file":"vocab-prefixes.mjs","sources":["../../../../lib/data-provider-interface/config/dcatap/vocab-prefixes.js"],"sourcesContent":["const vocabPrefixes = {\n \"licence\": \"http://publications.europa.eu/resource/authority/licence/\", // no unified URI!!\n \"planned-availability\": \"http://publications.europa.eu/resource/authority/planned-availability/\",\n \"dataset-type\": \"http://publications.europa.eu/resource/authority/dataset-type/\",\n \"eurovoc\": \"http://eurovoc.europa.eu/\",\n \"corporate-body\": \"http://publications.europa.eu/resource/authority/corporate-body/\",\n \"continent\": \"http://publications.europa.eu/resource/authority/continent/\",\n \"country\": \"http://publications.europa.eu/resource/authority/country/\",\n \"place\": \"http://publications.europa.eu/resource/authority/place/\",\n \"data-theme\": \"http://publications.europa.eu/resource/authority/data-theme/\",\n \"access-right\": \"http://publications.europa.eu/resource/authority/access-right/\",\n \"file-type\": \"http://publications.europa.eu/resource/authority/file-type/\",\n \"frequency\": \"http://publications.europa.eu/resource/authority/frequency/\",\n \"language\": \"http://publications.europa.eu/resource/authority/language/\",\n \"notation-type\": \"http://publications.europa.eu/resource/authority/notation-type/\",\n \"iana-media-types\": \"https://www.iana.org/assignments/media-types/\",\n \"spdx-checksum-algorithm\": \"http://spdx.org/rdf/terms#\",\n \"distribution-type\": \"http://publications.europa.eu/resource/authority/distribution-type/\",\n \"dataset-status\": \"http://publications.europa.eu/resource/authority/dataset-status/\",\n};\n\nexport default vocabPrefixes;\n"],"names":["vocabPrefixes"],"mappings":"AAAK,MAACA,IAAgB;AAAA,EAClB,SAAW;AAAA;AAAA,EACX,wBAAwB;AAAA,EACxB,gBAAgB;AAAA,EAChB,SAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,WAAa;AAAA,EACb,SAAW;AAAA,EACX,OAAS;AAAA,EACT,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,WAAa;AAAA,EACb,UAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,kBAAkB;AACtB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocompleteStore.mjs","sources":["../../../../lib/data-provider-interface/store/modules/autocompleteStore.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable no-param-reassign, no-shadow, no-console */\nimport axios from 'axios';\nimport generalDpiConfig from '../../config/dpi-spec-config.js';\n\nconst state = {};\nconst getters = {};\n\nconst actions = {\n requestFirstEntrySuggestions({ commit }, voc, base) {\n return new Promise((resolve, reject) => {\n const req = `${base}search?filter=vocabulary&vocabulary=${voc}`;\n axios.get(req)\n .then((res) => {\n resolve(res);\n })\n .catch((err) => {\n reject(err);\n });\n });\n },\n requestAutocompleteSuggestions({ commit }, { voc, text, base }) {\n // console.log(voc,text,base); \n return new Promise((resolve, reject) => {\n const req = `${base}search?filter=vocabulary&vocabulary=${voc}&q=${text}`;\n axios.get(req)\n .then((res) => {\n // console.log(res);\n\n resolve(res);\n })\n .catch((err) => {\n reject(err);\n });\n });\n },\n async requestResourceName({ commit }, { voc, uri, envs }) {\n try {\n const specification = envs.content.dataProviderInterface.specification;\n\n // Catching invalid URI's\n if (voc === undefined) return\n if (voc === \"application\") return\n\n let req;\n\n // vocabularies for spdx checksum and inana-media-types are structured differently in the backend then other vocabularies\n if (voc === 'iana-media-types' || voc === 'spdx-checksum-algorithm')
|
|
1
|
+
{"version":3,"file":"autocompleteStore.mjs","sources":["../../../../lib/data-provider-interface/store/modules/autocompleteStore.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable no-param-reassign, no-shadow, no-console */\nimport axios from 'axios';\nimport generalDpiConfig from '../../config/dpi-spec-config.js';\n\nconst state = {};\nconst getters = {};\n\nconst actions = {\n requestFirstEntrySuggestions({ commit }, voc, base) {\n return new Promise((resolve, reject) => {\n const req = `${base}search?filter=vocabulary&vocabulary=${voc}`;\n axios.get(req)\n .then((res) => {\n resolve(res);\n })\n .catch((err) => {\n reject(err);\n });\n });\n },\n requestAutocompleteSuggestions({ commit }, { voc, text, base }) {\n // console.log(voc,text,base); \n return new Promise((resolve, reject) => {\n const req = `${base}search?filter=vocabulary&vocabulary=${voc}&q=${text}`;\n axios.get(req)\n .then((res) => {\n // console.log(res);\n\n resolve(res);\n })\n .catch((err) => {\n reject(err);\n });\n });\n },\n async requestResourceName({ commit }, { voc, uri, envs }) {\n try {\n \n \n const specification = envs.content.dataProviderInterface.specification;\n\n // Catching invalid URI's\n if (voc === undefined) return\n if (voc === \"application\") return\n\n let req;\n\n // vocabularies for spdx checksum and inana-media-types are structured differently in the backend then other vocabularies\n if (voc === 'iana-media-types' || voc === 'spdx-checksum-algorithm') {\n req = `${envs.api.baseUrl}vocabularies/${voc}`;\n\n } else {\n const value = encodeURIComponent(uri.replace(generalDpiConfig[specification].vocabPrefixes[voc], \"\"));\n \n \n req = `${envs.api.baseUrl}vocabularies/${voc}/${value}`;\n\n }\n return new Promise((resolve, reject) => {\n axios.get(req)\n .then((res) => {\n resolve(res);\n })\n .catch((err) => {\n reject(err);\n\n });\n });\n } catch (error) {\n // console.log(error);\n\n }\n\n },\n};\n\nconst mutations = {};\n\nconst autocompleteModule = {\n state,\n getters,\n actions,\n mutations\n};\n\nexport default autocompleteModule;"],"names":["state","getters","actions","commit","voc","base","resolve","reject","req","axios","res","err","text","uri","envs","specification","value","generalDpiConfig","mutations","autocompleteModule"],"mappings":";;AAKA,MAAMA,IAAQ,CAAA,GACRC,IAAU,CAAA,GAEVC,IAAU;AAAA,EACZ,6BAA6B,EAAE,QAAAC,KAAUC,GAAKC,GAAM;AAChD,WAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACpC,YAAMC,IAAM,GAAGH,CAAI,uCAAuCD,CAAG;AAC7D,MAAAK,EAAM,IAAID,CAAG,EACR,KAAK,CAACE,MAAQ;AACX,QAAAJ,EAAQI,CAAG;AAAA,MAAA,CACd,EACA,MAAM,CAACC,MAAQ;AACZ,QAAAJ,EAAOI,CAAG;AAAA,MAAA,CACb;AAAA,IAAA,CACR;AAAA,EACL;AAAA,EACA,+BAA+B,EAAE,QAAAR,EAAO,GAAG,EAAE,KAAAC,GAAK,MAAAQ,GAAM,MAAAP,KAAQ;AAE5D,WAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACpC,YAAMC,IAAM,GAAGH,CAAI,uCAAuCD,CAAG,MAAMQ,CAAI;AACvE,MAAAH,EAAM,IAAID,CAAG,EACR,KAAK,CAACE,MAAQ;AAGX,QAAAJ,EAAQI,CAAG;AAAA,MAAA,CACd,EACA,MAAM,CAACC,MAAQ;AACZ,QAAAJ,EAAOI,CAAG;AAAA,MAAA,CACb;AAAA,IAAA,CACR;AAAA,EACL;AAAA,EACA,MAAM,oBAAoB,EAAE,QAAAR,KAAU,EAAE,KAAAC,GAAK,KAAAS,GAAK,MAAAC,KAAQ;AAClD,QAAA;AAGM,YAAAC,IAAgBD,EAAK,QAAQ,sBAAsB;AAIzD,UADIV,MAAQ,UACRA,MAAQ;AAAe;AAEvB,UAAAI;AAGA,UAAAJ,MAAQ,sBAAsBA,MAAQ;AACtC,QAAAI,IAAM,GAAGM,EAAK,IAAI,OAAO,gBAAgBV,CAAG;AAAA,WAEzC;AACG,cAAAY,IAAQ,mBAAmBH,EAAI,QAAQI,EAAiBF,CAAa,EAAE,cAAcX,CAAG,GAAG,EAAE,CAAC;AAGpG,QAAAI,IAAM,GAAGM,EAAK,IAAI,OAAO,gBAAgBV,CAAG,IAAIY,CAAK;AAAA,MAEzD;AACA,aAAO,IAAI,QAAQ,CAACV,GAASC,MAAW;AACpC,QAAAE,EAAM,IAAID,CAAG,EACR,KAAK,CAACE,MAAQ;AACX,UAAAJ,EAAQI,CAAG;AAAA,QAAA,CACd,EACA,MAAM,CAACC,MAAQ;AACZ,UAAAJ,EAAOI,CAAG;AAAA,QAAA,CAEb;AAAA,MAAA,CACR;AAAA,YACW;AAAA,IAGhB;AAAA,EAEJ;AACJ,GAEMO,IAAY,CAAA,GAEZC,IAAqB;AAAA,EACvB,OAAAnB;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAgB;AACJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/InputPage.vue"],"sourcesContent":["<template>\n <div class=\"form-container \">\n <div ref=\"fkInputContainer\" class=\"inputContainer\" v-if=\"isInput\">\n <div class=\"formContainer formkit position-relative\">\n\n <!-- <details>{{ formValues }}</details> -->\n <FormKit type=\"form\" v-model=\"formValues\" :actions=\"false\" :plugins=\"[stepPlugin]\" id=\"dpiForm\"\n @change=\"saveFormValues({ property: property, page: page, distid: id, values: formValues })\"\n @click=\"saveFormValues({ property: property, page: page, distid: id, values: formValues })\" @submit.prevent=\"\"\n class=\"d-flex\">\n\n <div class=\"d-flex\">\n <ul class=\"steps\">\n <li v-for=\"(step, stepName, index) in steps\" :key=\"step\" class=\"step\"\n :data-step-active=\"activeStep === stepName\" :data-step-valid=\"step.valid && step.errorCount === 0\"\n :class=\"{ activeItem: activeStep === stepName, inactiveStep: stepName != activeStep, 'has-errors': checkStepValidity(stepName) }\"\n @click=\"activeStep = stepName; update(); scrollToTop()\">\n\n <div class=\"stepBubbleWrap\">\n <div class=\"circle stepCircle\">{{ index + 1 }}</div>\n <span v-if=\"checkStepValidity(stepName)\" class=\"step--errors\"\n v-text=\"step.errorCount + step.blockingCount\" />{{ camel2title(stepName) }}\n </div>\n <div v-if=\"index != Object.keys(steps).length\" class=\"seperatorHorizontalStepper\"></div>\n </li>\n <li class=\"step inactiveStep\" v-if=\"activeStep === 'Overview'\">\n <div class=\"circle stepCircle\"></div>\n </li>\n\n </ul>\n\n <div class=\"d-flex flex-column w-100\">\n <div v-for=\"(stepName, index) in getNavSteps($env.content.dataProviderInterface.specification)[property]\"\n :key=\"index\">\n <InputPageStep :name=\"stepName\">\n <div v-if=\"stepName !== 'Distributions' && stepName !== 'Overview'\"\n class=\"w-100 d-flex justify-content-between\">\n <h1 style=\"min-width:80%\">{{ stepName }} fields</h1>\n <a class=\"standardButtonDPI\" @click=\"dropdownCLick(); expandall = !expandall\"><span\n v-if=\"expandall\">Expand all</span>\n <span v-else>Hide all</span></a>\n </div>\n <hr v-if=\"stepName !== 'Distributions'\">\n <FormKitSchema v-if=\"stepName !== 'Distributions'\" :schema=\"getSchema(property)[stepName]\"\n :library=\"library\" />\n <DistributionInputPage v-if=\"stepName === 'Distributions'\" :schema=\"getSchema('distributions')\"\n :values=\"formValues\" />\n <p class=\"p-1\" v-if=\"stepName === 'Mandatory'\"> <b>*</b> mandatory</p>\n </InputPageStep>\n </div>\n </div>\n </div>\n\n <Navigation :steps=\"steps\" :nextStep=\"nextStep\" :previousStep=\"previousStep\" :goToNextStep=\"goToNextStep\"\n :goToPreviousStep=\"goToPreviousStep\"></Navigation>\n\n </FormKit>\n\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable no-alert,arrow-parens,no-param-reassign,no-lonely-if */\nimport { defineComponent, markRaw } from 'vue';\nimport { mapActions, mapGetters } from 'vuex';\nimport $ from 'jquery';\nimport PropertyChooser from './PropertyChooser.vue'\nimport { has, isNil, isEmpty } from 'lodash';\nimport DistributionInputPage from './DistributionInputPage.vue';\nimport OverviewPage from './OverviewPage.vue';\nimport InputPageStep from '../components/InputPageStep.vue';\nimport Navigation from '../components/Navigation.vue';\nimport { useDpiStepper } from '../composables/useDpiStepper';\nimport { useWindowScroll } from '@vueuse/core'\n\n\nexport default defineComponent({\n props: {\n property: {\n required: true,\n type: String,\n },\n id: {\n type: String,\n },\n },\n data() {\n return {\n heightActiveSec: \"10vh\",\n formValues: {},\n offsetTopStepper: \"60px\",\n info: {},\n catalogues: [],\n byte: true,\n expandall: true,\n // steps:{},\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n };\n },\n components: {\n InputPageStep,\n DistributionInputPage,\n PropertyChooser,\n Navigation\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getUserCatalogIds',\n ]),\n ...mapGetters('dpiStore', [\n 'getSchema',\n 'getNavSteps',\n 'getDeleteDistributionInline',\n ]),\n getTitleStep() {\n return Object.keys(this.formValues).filter(key => has(this.formValues[key], 'dct:title'))[0];\n },\n createIDFromTitle() {\n\n const title = this.formValues[this.getTitleStep]['dct:title'][0]['@value'];\n\n if (title != undefined) {\n return title\n .toLowerCase()\n .replace(/ /g, '-');\n }\n else return;\n },\n getFirstTitleFromForm() {\n const allValues = this.formValues[this.getTitleStep];\n\n return has(allValues, 'dct:title')\n && allValues['dct:title'].length > 0\n && has(allValues['dct:title'][0], '@value')\n && !isNil(allValues['dct:title'][0], '@value')\n ? allValues['dct:title'][0]['@value']\n : '';\n },\n isInput() {\n return this.$route.params.page !== 'overview' && this.$route.params.page !== 'distoverview';\n },\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('dpiStore', [\n 'createSchema',\n 'translateSchema',\n 'saveFormValues',\n 'saveLocalstorageValues',\n 'addCatalogOptions',\n 'clearAll',\n ]),\n update() {\n this.$forceUpdate();\n },\n dropdownCLick() {\n\n const h4Elements = document.querySelectorAll('.formkitProperty h4');\n \n if (this.expandall) {\n h4Elements.forEach((h4Element, index) => {\n h4Element.classList.add('dpiChevUp')\n h4Element.nextElementSibling.classList.remove('d-none')\n })\n }\n if (!this.expandall) {\n h4Elements.forEach((h4Element, index) => {\n h4Element.classList.remove('dpiChevUp')\n h4Element.nextElementSibling.classList.add('d-none')\n })\n\n }\n \n },\n clearForm() {\n this.$formkit.reset('dpi')\n },\n scrollToTop() {\n window.scrollTo(0, 0);\n },\n initInputPage() {\n\n\n\n // adding validation of modified and issued based on edit mode\n // no validation in edit mode\n\n // get step name where issued and modified are included\n const initialSchema = this.getSchema(this.property);\n const stepWithDates = Object.keys(initialSchema).find(\n key => initialSchema[key].map(el => el.name).includes('dct:issued') || initialSchema[key].map(el => el.name).includes('dct:modified')\n );\n\n if (localStorage.getItem('dpi_editmode') === 'true') {\n initialSchema[stepWithDates].forEach((el) => {\n if (el['identifier'] === 'issued' || el['identifier'] === 'modified') {\n el['children'][1]['props']['else']['validation'] = ''\n el['children'][1]['props']['else']['validation-visibility'] = ''\n\n el['children'][1]['props']['then']['validation'] = ''\n el['children'][1]['props']['then']['validation-visibility'] = ''\n el['children'][1]['props']['then']['validation'] = ''\n el['children'][1]['props']['then']['validation-visibility'] = ''\n }\n }\n );\n }\n\n if (localStorage.getItem('dpi_editmode') === 'false') {\n this.setIsDraft(false)\n this.setIsEditMode(false)\n }\n\n this.saveLocalstorageValues(this.property); // saves values from localStorage to vuex store\n const existingValues = this.$store.getters['dpiStore/getRawValues']({ property: this.property });\n\n // only overwrite empty object if there are values\n if (!isEmpty(existingValues)) this.formValues = existingValues;\n\n this.$nextTick(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n setTimeout(() => {\n const h4Elements = document.querySelectorAll('.formkitProperty h4');\n h4Elements.forEach((h4Element, index) => {\n // Added the clickeffect to the headers of the individual properties\n if (!h4Element.parentElement.parentElement.classList.contains('formkitWrapRepeatable')) {\n if (index != 0 && index != 1 && index != 2 && index != 3) {\n h4Element.nextElementSibling.classList.toggle('d-none')\n }\n h4Element.addEventListener('click', () => {\n h4Element.classList.toggle('dpiChevUp')\n h4Element.nextElementSibling.classList.toggle('d-none')\n });\n }\n })\n // Observe the validity of the individual properties\n const elements = document.querySelectorAll('.formkitProperty');\n const attributeChangedCallback = (mutationsList) => {\n for (const mutation of mutationsList) {\n\n if (mutation.type === 'attributes') {\n if (mutation.target.getAttribute('data-invalid') === 'true') {\n try {\n if (mutation.target.parentNode.parentNode.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.parentNode.parentNode.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.previousElementSibling.tagName === 'H4') {\n mutation.target.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n }\n if (mutation.target.getAttribute('data-invalid') === null || mutation.target.getAttribute('data-invalid') === 'false') {\n try {\n if (mutation.target.parentNode.parentNode.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.parentNode.parentNode.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.previousElementSibling.tagName === 'H4') {\n mutation.target.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n }\n }\n }\n };\n // MutationObserver \n const observer = new MutationObserver(attributeChangedCallback);\n const config = { attributes: true };\n let allMatchingElements = [];\n\n elements.forEach((element, index) => {\n const matchingChildren = element.querySelectorAll('.formkit-outer');\n allMatchingElements = allMatchingElements.concat(Array.from(matchingChildren));\n observer.observe(allMatchingElements[index], config);\n });\n });\n });\n },\n createDatasetID() {\n const valueObject = this.formValues[this.getTitleStep];\n if (!has(valueObject, 'datasetID') || isNil(valueObject['datasetID'])) {\n // console.log('in if');\n this.formValues[this.getTitleStep].datasetID = this.createIDFromTitle;\n }\n else {\n\n if (this.createIDFromTitle.startsWith(valueObject.datasetID) || valueObject.datasetID.startsWith(this.createIDFromTitle)) {\n // console.log('in else');\n this.formValues[this.getTitleStep].datasetID = this.createIDFromTitle;\n }\n }\n },\n generateandTranslateSchema(property) {\n for (let index = 0; index < this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property].length; index++) {\n this.createSchema({ property: property, page: this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property][index], specification: this.$env.content.dataProviderInterface.specification });\n this.translateSchema({ property: property, page: this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property][index] });\n }\n },\n\n },\n created() {\n\n\n\n // Needs to be reworked\n if (this.$route.query.edit === 'false') {\n this.clearAll();\n // localStorage.clear();\n }\n\n // create schema for datasets or catalogues\n this.generateandTranslateSchema(this.property);\n\n // for datasets also create schema for distributions\n if (this.property === 'datasets') {\n this.generateandTranslateSchema('distributions');\n }\n },\n mounted() {\n this.initInputPage();\n },\n watch: {\n activeStep: {\n handler() {\n this.scrollToTop();\n },\n },\n getFirstTitleFromForm: {\n handler() {\n if (localStorage.getItem('dpi_editmode') === 'false') {\n this.setIsDraft(false)\n this.setIsEditMode(false)\n }\n // only create id from title if the user is not editing an existing dataset with an existing datasetID\n if (!this.getIsEditMode) {\n this.createDatasetID();\n }\n },\n },\n // the schema is a computed value which gets computed only once so on language change this value must be re-computed\n '$i18n.locale': {\n handler() {\n this.generateandTranslateSchema(this.property);\n if (this.property === 'datasets') this.generateandTranslateSchema('distributions');\n }\n },\n },\n beforeRouteEnter(to, from, next) {\n // Always clear storage when entering DPI\n next(vm => {\n if (from.name && !from.name.startsWith('DataProviderInterface')) {\n vm.clearAll();\n }\n });\n },\n setup() {\n const {\n steps,\n activeStep,\n visitedSteps,\n previousStep,\n nextStep,\n stepPlugin,\n goToNextStep,\n goToPreviousStep,\n } = useDpiStepper();\n\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n }\n\n const checkStepValidity = (stepName) => {\n return (steps[stepName].errorCount > 0 || steps[stepName].blockingCount > 0) && visitedSteps.value.includes(stepName)\n }\n\n const library = markRaw({ OverviewPage })\n\n return {\n steps,\n visitedSteps,\n activeStep,\n previousStep,\n nextStep,\n stepPlugin,\n checkStepValidity,\n goToNextStep,\n goToPreviousStep,\n scrollToTop,\n library,\n }\n }\n});\n</script>\n\n<style lang=\"scss\">\n.standardButtonDPI {\n background-color: #fff;\n color: #000;\n border-radius: 0.3em;\n font-size: 16px;\n padding: 0.75em;\n display: inline-flex;\n align-items: center;\n height: 50px;\n border: 1px solid lightgray;\n transition: all 100ms ease-in-out;\n cursor: pointer;\n\n &:hover {\n transform: scale(98%);\n background-color: #F4F4F4;\n border-color: gray;\n text-decoration: none;\n }\n}\n\n:root {\n --gray: #ccccd7;\n --gray-l: #eeeef4;\n}\n\n.formkit-form {\n max-width: 500px;\n flex-shrink: 0;\n margin-top: 1em;\n margin-bottom: 1em;\n background: #fff;\n color: #000;\n border: 1px solid var(--gray);\n border-radius: 0.5em;\n box-shadow: 0.25em 0.25em 1em 0 rgba(0, 0, 0, 0.1);\n}\n\n#app .source-content {\n padding: 2em;\n background: transparent;\n}\n\n.steps {\n list-style-type: none;\n margin: 0;\n display: flex;\n padding-left: 0;\n background: var(--gray-l);\n border-radius: 0.4em 0.4em 0 0;\n overflow: hidden;\n border-bottom: 1px solid var(--gray);\n}\n\n.step {\n font-size: 14px;\n display: flex;\n align-items: center;\n padding: 16px 20px;\n background: var(--gray-l);\n border-right: 1px solid var(--gray);\n color: gray;\n flex-grow: 0;\n flex-shrink: 0;\n position: relative;\n}\n\n.step:last-child {\n box-shadow: 0.1em -0.1 0.1em 0 rgba(0, 0, 0, 0.33)\n}\n\n.step:hover {\n cursor: pointer;\n}\n\n[data-step-active=\"true\"] {\n color: black;\n background: white !important;\n border-bottom: none;\n position: relative;\n}\n\n.step--errors,\n[data-step-valid=\"true\"]:after {\n content: '✓';\n background-color: #54A085;\n position: absolute;\n top: 4px;\n right: 4px;\n height: 18px;\n width: 18px;\n border-radius: 50%;\n z-index: 10;\n display: flex;\n font-size: 10px;\n flex-direction: column;\n justify-content: center;\n text-align: center;\n color: white;\n}\n\n.step--errors {\n background-color: #ff4949;\n color: #fff;\n z-index: 100;\n}\n\n.step-nav {\n display: flex;\n margin-top: 2em;\n margin-bottom: 1em;\n justify-content: space-between;\n}\n\n.form-body {\n padding: 2em;\n}\n\n.next {\n margin-left: auto;\n}\n\n.formkit-outer[data-type=\"submit\"] .formkit-wrapper {\n padding: 0 2em 1em 2em;\n display: flex;\n}\n\n.formkit-outer[data-type=\"submit\"] .formkit-input {\n margin-left: auto;\n margin-right: 0;\n}\n\ndetails {\n border: 1px solid var(--gray);\n background: var(--gray-l);\n border-radius: .15em;\n padding: 1em;\n}\n\n.formkit-form>.formkit-messages {\n padding: 0 2em 0em 2em;\n}\n\n.formkit-form>.formkit-messages:last-child {\n padding: 0 2em 2em 2em;\n}\n\n[data-errors=\"true\"] .formkit-label {\n color: #ff4949;\n}\n\n.formkit-wrapper {\n max-width: 100%;\n}\n\nbutton:hover,\nsummary {\n cursor: pointer\n}\n\n\n@media (max-width: 438px) {\n h1 {\n font-size: 1.15em;\n }\n\n #app .source-content {\n padding: 0.5em;\n }\n\n .steps {\n flex-direction: column;\n }\n\n .step {\n border-bottom: 1px solid var(--gray);\n border-right: none;\n }\n\n .step:last-child {\n border-bottom: none;\n }\n\n .form-body {\n padding: 1em;\n }\n\n .formkit-outer[data-type=\"submit\"] .formkit-wrapper {\n padding: 0 1em 1em 1em;\n display: flex;\n }\n\n .formkit-form>.formkit-messages {\n padding: 0 1em 0em 1em;\n }\n\n .formkit-form>.formkit-messages:last-child {\n padding: 0 1em 1em 1em;\n }\n}\n\n.repeatableWrap,\n.formkitCmpWrap {\n margin: 2rem 0 !important\n}\n\n.isInvalidProperty {\n background-color: #FFD9D9 !important;\n}\n\n.activeItem {\n flex-grow: 1;\n\n .seperatorHorizontalStepper {\n height: 100%;\n }\n}\n\nselect {\n\n line-height: unset !important;\n}\n\n.form-container {\n padding-top: 20px;\n margin-top: 30px;\n border: solid 1px #d5d5d5;\n border-radius: 3px;\n margin-bottom: 20px;\n}\n\n.inputContainer {\n display: flex;\n}\n\n.formContainer {\n width: 100% !important;\n}\n\n.distributionPage0 {\n display: block;\n}\n\n.distributionPage1 {\n display: none;\n}\n\n.distributionPage2 {\n display: none;\n}\n\n.grid2r2c {\n .formkit-input-group-repeatable {\n display: grid;\n grid-template-columns: 70% 28%;\n grid-template-rows: auto auto;\n grid-gap: 10px;\n background-color: transparent;\n }\n}\n\n.grid1r2c {\n .formkit-input-group-repeatable {\n display: grid;\n grid-template-columns: 70% 28%;\n grid-template-rows: auto;\n grid-gap: 10px;\n background-color: transparent;\n }\n}\n\n.row1 {\n grid-row-start: 1;\n grid-row-end: 2;\n}\n\n.row2 {\n grid-row-start: 2;\n grid-row-end: 3;\n}\n\n.grow3 {\n grid-row-start: 3;\n grid-row-end: 4;\n}\n\n.column1 {\n grid-column-start: 1;\n grid-column-end: 2;\n}\n\n.column2 {\n grid-column-start: 2;\n grid-column-end: 3;\n}\n\n.columnboth {\n grid-column-start: 1;\n grid-column-end: 3;\n}\n\n.display-none {\n display: none;\n}\n\n.activeSection {\n >.formkitProperty {\n >div {}\n }\n}\n\n.formkitCmpWrap {\n border-left: 1px solid lightgray;\n\n\n}\n\n.formkitProperty {\n\n >h4 {\n background-color: #f5f5f5;\n padding: 1rem;\n cursor: pointer;\n position: relative;\n transition: all ease-in-out 200ms;\n\n &:hover {\n\n background-color: lightgray;\n\n &:before {\n\n rotate: -45deg;\n }\n\n &:after {\n\n rotate: 45deg;\n }\n }\n\n &:before {\n transition: all ease-in-out 200ms;\n content: \"\";\n width: 15px;\n height: 1.5px;\n background-color: black;\n position: absolute;\n top: 30px;\n right: 15px;\n rotate: 45deg;\n }\n\n &:after {\n transition: all ease-in-out 200ms;\n content: \"\";\n width: 15px;\n height: 1.5px;\n background-color: black;\n position: absolute;\n top: 30px;\n right: 25px;\n rotate: -45deg;\n }\n }\n\n .formkitProperty {\n h4 {\n padding: 0;\n background-color: unset !important;\n\n &::before {\n display: none !important;\n }\n\n &:after {\n display: none !important;\n }\n }\n }\n}\n\n.dpiChevUp {\n\n &:before {\n\n rotate: -45deg !important;\n }\n\n &:after {\n\n rotate: 45deg !important;\n }\n\n\n\n}\n</style>\n"],"names":["_sfc_main","defineComponent","str","match","InputPageStep","DistributionInputPage","PropertyChooser","Navigation","mapGetters","key","has","title","allValues","isNil","mapActions","h4Elements","h4Element","index","initialSchema","stepWithDates","el","existingValues","isEmpty","$","elements","attributeChangedCallback","mutationsList","mutation","observer","config","allMatchingElements","element","matchingChildren","valueObject","property","to","from","next","vm","steps","activeStep","visitedSteps","previousStep","nextStep","stepPlugin","goToNextStep","goToPreviousStep","useDpiStepper","scrollToTop","x","y","useWindowScroll","checkStepValidity","stepName","library","markRaw","OverviewPage","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_createElementVNode","_hoisted_12","_hoisted_14","_hoisted_16","_hoisted_21","_openBlock","_createElementBlock","_ctx","_hoisted_2","_createVNode","_component_FormKit","_cache","$event","_withModifiers","_withCtx","_Fragment","_renderList","step","_normalizeClass","_toDisplayString","_createTextVNode","_createCommentVNode","_hoisted_10","_hoisted_11","_hoisted_13","_component_InputPageStep","_hoisted_15","_hoisted_17","_hoisted_18","_hoisted_19","_createBlock","_component_FormKitSchema","_component_DistributionInputPage","_hoisted_20","_component_Navigation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/InputPage.vue"],"sourcesContent":["<template>\n <div class=\"form-container \">\n <div ref=\"fkInputContainer\" class=\"inputContainer\" v-if=\"isInput\">\n <div class=\"formContainer formkit position-relative\">\n\n <!-- <details>{{ formValues }}</details> -->\n <FormKit type=\"form\" v-model=\"formValues\" :actions=\"false\" :plugins=\"[stepPlugin]\" id=\"dpiForm\"\n @change=\"saveFormValues({ property: property, page: page, distid: id, values: formValues })\"\n @click=\"saveFormValues({ property: property, page: page, distid: id, values: formValues })\" @submit.prevent=\"\"\n class=\"d-flex\">\n\n <div class=\"d-flex\">\n <ul class=\"steps\">\n <li v-for=\"(step, stepName, index) in steps\" :key=\"step\" class=\"step\"\n :data-step-active=\"activeStep === stepName\" :data-step-valid=\"step.valid && step.errorCount === 0\"\n :class=\"{ activeItem: activeStep === stepName, inactiveStep: stepName != activeStep, 'has-errors': checkStepValidity(stepName) }\"\n @click=\"activeStep = stepName; update(); scrollToTop()\">\n\n <div class=\"stepBubbleWrap\">\n <div class=\"circle stepCircle\">{{ index + 1 }}</div>\n <span v-if=\"checkStepValidity(stepName)\" class=\"step--errors\"\n v-text=\"step.errorCount + step.blockingCount\" />{{ camel2title(stepName) }}\n </div>\n <div v-if=\"index != Object.keys(steps).length\" class=\"seperatorHorizontalStepper\"></div>\n </li>\n <li class=\"step inactiveStep\" v-if=\"activeStep === 'Overview'\">\n <div class=\"circle stepCircle\"></div>\n </li>\n\n </ul>\n\n <div class=\"d-flex flex-column w-100\">\n <div v-for=\"(stepName, index) in getNavSteps($env.content.dataProviderInterface.specification)[property]\"\n :key=\"index\">\n <InputPageStep :name=\"stepName\">\n <div v-if=\"stepName !== 'Distributions' && stepName !== 'Overview'\"\n class=\"w-100 d-flex justify-content-between\">\n <h1 style=\"min-width:80%\">{{ stepName }} fields</h1>\n <a class=\"standardButtonDPI\" @click=\"dropdownCLick(); expandall = !expandall\"><span\n v-if=\"expandall\">Expand all</span>\n <span v-else>Hide all</span></a>\n </div>\n <hr v-if=\"stepName !== 'Distributions'\">\n <FormKitSchema v-if=\"stepName !== 'Distributions'\" :schema=\"getSchema(property)[stepName]\"\n :library=\"library\" />\n <DistributionInputPage v-if=\"stepName === 'Distributions'\" :schema=\"getSchema('distributions')\"\n :values=\"formValues\" />\n <p class=\"p-1\" v-if=\"stepName === 'Mandatory'\"> <b>*</b> mandatory</p>\n </InputPageStep>\n </div>\n </div>\n </div>\n\n <Navigation :steps=\"steps\" :nextStep=\"nextStep\" :previousStep=\"previousStep\" :goToNextStep=\"goToNextStep\"\n :goToPreviousStep=\"goToPreviousStep\"></Navigation>\n\n </FormKit>\n\n </div>\n </div>\n </div>\n</template>\n\n<script>\n/* eslint-disable no-alert,arrow-parens,no-param-reassign,no-lonely-if */\nimport { defineComponent, markRaw } from 'vue';\nimport { mapActions, mapGetters } from 'vuex';\nimport $ from 'jquery';\nimport PropertyChooser from './PropertyChooser.vue'\nimport { has, isNil, isEmpty } from 'lodash';\nimport DistributionInputPage from './DistributionInputPage.vue';\nimport OverviewPage from './OverviewPage.vue';\nimport InputPageStep from '../components/InputPageStep.vue';\nimport Navigation from '../components/Navigation.vue';\nimport { useDpiStepper } from '../composables/useDpiStepper';\nimport { useWindowScroll } from '@vueuse/core'\n\n\nexport default defineComponent({\n props: {\n property: {\n required: true,\n type: String,\n },\n id: {\n type: String,\n },\n },\n data() {\n return {\n heightActiveSec: \"10vh\",\n formValues: {},\n offsetTopStepper: \"60px\",\n info: {},\n catalogues: [],\n byte: true,\n expandall: true,\n // steps:{},\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n };\n },\n components: {\n InputPageStep,\n DistributionInputPage,\n PropertyChooser,\n Navigation\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getUserCatalogIds',\n ]),\n ...mapGetters('dpiStore', [\n 'getSchema',\n 'getNavSteps',\n 'getDeleteDistributionInline',\n ]),\n getTitleStep() {\n return Object.keys(this.formValues).filter(key => has(this.formValues[key], 'dct:title'))[0];\n },\n createIDFromTitle() {\n\n const title = this.formValues[this.getTitleStep]['dct:title'][0]['@value'];\n\n if (title != undefined) {\n return title\n .toLowerCase()\n .replace(/ /g, '-');\n }\n else return;\n },\n getFirstTitleFromForm() {\n const allValues = this.formValues[this.getTitleStep];\n\n return has(allValues, 'dct:title')\n && allValues['dct:title'].length > 0\n && has(allValues['dct:title'][0], '@value')\n && !isNil(allValues['dct:title'][0], '@value')\n ? allValues['dct:title'][0]['@value']\n : '';\n },\n isInput() {\n return this.$route.params.page !== 'overview' && this.$route.params.page !== 'distoverview';\n },\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('dpiStore', [\n 'createSchema',\n 'translateSchema',\n 'saveFormValues',\n 'saveLocalstorageValues',\n 'addCatalogOptions',\n 'clearAll',\n ]),\n update() {\n this.$forceUpdate();\n },\n dropdownCLick() {\n\n const h4Elements = document.querySelectorAll('.formkitProperty h4');\n \n if (this.expandall) {\n h4Elements.forEach((h4Element, index) => {\n h4Element.classList.add('dpiChevUp')\n h4Element.nextElementSibling.classList.remove('d-none')\n })\n }\n if (!this.expandall) {\n h4Elements.forEach((h4Element, index) => {\n h4Element.classList.remove('dpiChevUp')\n h4Element.nextElementSibling.classList.add('d-none')\n })\n\n }\n \n },\n clearForm() {\n this.$formkit.reset('dpi')\n },\n scrollToTop() {\n window.scrollTo(0, 0);\n },\n initInputPage() {\n\n\n\n // adding validation of modified and issued based on edit mode\n // no validation in edit mode\n\n // get step name where issued and modified are included\n const initialSchema = this.getSchema(this.property);\n const stepWithDates = Object.keys(initialSchema).find(\n key => initialSchema[key].map(el => el.name).includes('dct:issued') || initialSchema[key].map(el => el.name).includes('dct:modified')\n );\n\n if (localStorage.getItem('dpi_editmode') === 'true') {\n initialSchema[stepWithDates].forEach((el) => {\n if (el['identifier'] === 'issued' || el['identifier'] === 'modified') {\n el['children'][1]['props']['else']['validation'] = ''\n el['children'][1]['props']['else']['validation-visibility'] = ''\n\n el['children'][1]['props']['then']['validation'] = ''\n el['children'][1]['props']['then']['validation-visibility'] = ''\n el['children'][1]['props']['then']['validation'] = ''\n el['children'][1]['props']['then']['validation-visibility'] = ''\n }\n }\n );\n }\n\n if (localStorage.getItem('dpi_editmode') === 'false') {\n this.setIsDraft(false)\n this.setIsEditMode(false)\n }\n\n this.saveLocalstorageValues(this.property); // saves values from localStorage to vuex store\n const existingValues = this.$store.getters['dpiStore/getRawValues']({ property: this.property });\n\n // only overwrite empty object if there are values\n if (!isEmpty(existingValues)) this.formValues = existingValues;\n\n this.$nextTick(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n setTimeout(() => {\n const h4Elements = document.querySelectorAll('.formkitProperty h4');\n h4Elements.forEach((h4Element, index) => {\n // Added the clickeffect to the headers of the individual properties\n\n if (!h4Element.parentElement.parentElement.classList.contains('formkitWrapRepeatable')) {\n if (index != 0 && index != 1 && index != 2 && index != 3) {\n h4Element.nextElementSibling.classList.toggle('d-none')\n }\n h4Element.addEventListener('click', () => {\n h4Element.classList.toggle('dpiChevUp')\n h4Element.nextElementSibling.classList.toggle('d-none')\n });\n }\n })\n // Observe the validity of the individual properties\n const elements = document.querySelectorAll('.formkitProperty');\n const attributeChangedCallback = (mutationsList) => {\n for (const mutation of mutationsList) {\n\n if (mutation.type === 'attributes') {\n if (mutation.target.getAttribute('data-invalid') === 'true') {\n try {\n if (mutation.target.parentNode.parentNode.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.parentNode.parentNode.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.previousElementSibling.tagName === 'H4') {\n mutation.target.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.previousElementSibling.classList.add('isInvalidProperty')\n }\n } catch (error) { }\n }\n if (mutation.target.getAttribute('data-invalid') === null || mutation.target.getAttribute('data-invalid') === 'false') {\n try {\n if (mutation.target.parentNode.parentNode.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.parentNode.parentNode.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.previousElementSibling.tagName === 'H4') {\n mutation.target.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n try {\n if (mutation.target.parentNode.previousElementSibling.tagName === 'H4') {\n mutation.target.parentNode.previousElementSibling.classList.remove('isInvalidProperty')\n }\n } catch (error) { }\n }\n }\n }\n };\n // MutationObserver \n const observer = new MutationObserver(attributeChangedCallback);\n const config = { attributes: true };\n let allMatchingElements = [];\n\n elements.forEach((element, index) => {\n const matchingChildren = element.querySelectorAll('.formkit-outer');\n allMatchingElements = allMatchingElements.concat(Array.from(matchingChildren));\n observer.observe(allMatchingElements[index], config);\n });\n });\n });\n },\n createDatasetID() {\n const valueObject = this.formValues[this.getTitleStep];\n if (!has(valueObject, 'datasetID') || isNil(valueObject['datasetID'])) {\n // console.log('in if');\n this.formValues[this.getTitleStep].datasetID = this.createIDFromTitle;\n }\n else {\n\n if (this.createIDFromTitle.startsWith(valueObject.datasetID) || valueObject.datasetID.startsWith(this.createIDFromTitle)) {\n // console.log('in else');\n this.formValues[this.getTitleStep].datasetID = this.createIDFromTitle;\n }\n }\n },\n generateandTranslateSchema(property) {\n for (let index = 0; index < this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property].length; index++) {\n this.createSchema({ property: property, page: this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property][index], specification: this.$env.content.dataProviderInterface.specification });\n this.translateSchema({ property: property, page: this.getNavSteps(this.$env.content.dataProviderInterface.specification)[property][index] });\n }\n },\n\n },\n created() {\n\n\n\n // Needs to be reworked\n if (this.$route.query.edit === 'false') {\n this.clearAll();\n // localStorage.clear();\n }\n\n // create schema for datasets or catalogues\n this.generateandTranslateSchema(this.property);\n\n // for datasets also create schema for distributions\n if (this.property === 'datasets') {\n this.generateandTranslateSchema('distributions');\n }\n },\n mounted() {\n this.initInputPage();\n },\n watch: {\n activeStep: {\n handler() {\n this.scrollToTop();\n },\n },\n getFirstTitleFromForm: {\n handler() {\n if (localStorage.getItem('dpi_editmode') === 'false') {\n this.setIsDraft(false)\n this.setIsEditMode(false)\n }\n // only create id from title if the user is not editing an existing dataset with an existing datasetID\n if (!this.getIsEditMode) {\n this.createDatasetID();\n }\n },\n },\n // the schema is a computed value which gets computed only once so on language change this value must be re-computed\n '$i18n.locale': {\n handler() {\n this.generateandTranslateSchema(this.property);\n if (this.property === 'datasets') this.generateandTranslateSchema('distributions');\n }\n },\n },\n beforeRouteEnter(to, from, next) {\n // Always clear storage when entering DPI\n next(vm => {\n if (from.name && !from.name.startsWith('DataProviderInterface')) {\n vm.clearAll();\n }\n });\n },\n setup() {\n const {\n steps,\n activeStep,\n visitedSteps,\n previousStep,\n nextStep,\n stepPlugin,\n goToNextStep,\n goToPreviousStep,\n } = useDpiStepper();\n\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n }\n\n const checkStepValidity = (stepName) => {\n return (steps[stepName].errorCount > 0 || steps[stepName].blockingCount > 0) && visitedSteps.value.includes(stepName)\n }\n\n const library = markRaw({ OverviewPage })\n\n return {\n steps,\n visitedSteps,\n activeStep,\n previousStep,\n nextStep,\n stepPlugin,\n checkStepValidity,\n goToNextStep,\n goToPreviousStep,\n scrollToTop,\n library,\n }\n }\n});\n</script>\n\n<style lang=\"scss\">\n.standardButtonDPI {\n background-color: #fff;\n color: #000;\n border-radius: 0.3em;\n font-size: 16px;\n padding: 0.75em;\n display: inline-flex;\n align-items: center;\n height: 50px;\n border: 1px solid lightgray;\n transition: all 100ms ease-in-out;\n cursor: pointer;\n\n &:hover {\n transform: scale(98%);\n background-color: #F4F4F4;\n border-color: gray;\n text-decoration: none;\n }\n}\n\n:root {\n --gray: #ccccd7;\n --gray-l: #eeeef4;\n}\n\n.formkit-form {\n max-width: 500px;\n flex-shrink: 0;\n margin-top: 1em;\n margin-bottom: 1em;\n background: #fff;\n color: #000;\n border: 1px solid var(--gray);\n border-radius: 0.5em;\n box-shadow: 0.25em 0.25em 1em 0 rgba(0, 0, 0, 0.1);\n}\n\n#app .source-content {\n padding: 2em;\n background: transparent;\n}\n\n.steps {\n list-style-type: none;\n margin: 0;\n display: flex;\n padding-left: 0;\n background: var(--gray-l);\n border-radius: 0.4em 0.4em 0 0;\n overflow: hidden;\n border-bottom: 1px solid var(--gray);\n}\n\n.step {\n font-size: 14px;\n display: flex;\n align-items: center;\n padding: 16px 20px;\n background: var(--gray-l);\n border-right: 1px solid var(--gray);\n color: gray;\n flex-grow: 0;\n flex-shrink: 0;\n position: relative;\n}\n\n.step:last-child {\n box-shadow: 0.1em -0.1 0.1em 0 rgba(0, 0, 0, 0.33)\n}\n\n.step:hover {\n cursor: pointer;\n}\n\n[data-step-active=\"true\"] {\n color: black;\n background: white !important;\n border-bottom: none;\n position: relative;\n}\n\n.step--errors,\n[data-step-valid=\"true\"]:after {\n content: '✓';\n background-color: #54A085;\n position: absolute;\n top: 4px;\n right: 4px;\n height: 18px;\n width: 18px;\n border-radius: 50%;\n z-index: 10;\n display: flex;\n font-size: 10px;\n flex-direction: column;\n justify-content: center;\n text-align: center;\n color: white;\n}\n\n.step--errors {\n background-color: #ff4949;\n color: #fff;\n z-index: 100;\n}\n\n.step-nav {\n display: flex;\n margin-top: 2em;\n margin-bottom: 1em;\n justify-content: space-between;\n}\n\n.form-body {\n padding: 2em;\n}\n\n.next {\n margin-left: auto;\n}\n\n.formkit-outer[data-type=\"submit\"] .formkit-wrapper {\n padding: 0 2em 1em 2em;\n display: flex;\n}\n\n.formkit-outer[data-type=\"submit\"] .formkit-input {\n margin-left: auto;\n margin-right: 0;\n}\n\ndetails {\n border: 1px solid var(--gray);\n background: var(--gray-l);\n border-radius: .15em;\n padding: 1em;\n}\n\n.formkit-form>.formkit-messages {\n padding: 0 2em 0em 2em;\n}\n\n.formkit-form>.formkit-messages:last-child {\n padding: 0 2em 2em 2em;\n}\n\n[data-errors=\"true\"] .formkit-label {\n color: #ff4949;\n}\n\n.formkit-wrapper {\n max-width: 100%;\n}\n\nbutton:hover,\nsummary {\n cursor: pointer\n}\n\n\n@media (max-width: 438px) {\n h1 {\n font-size: 1.15em;\n }\n\n #app .source-content {\n padding: 0.5em;\n }\n\n .steps {\n flex-direction: column;\n }\n\n .step {\n border-bottom: 1px solid var(--gray);\n border-right: none;\n }\n\n .step:last-child {\n border-bottom: none;\n }\n\n .form-body {\n padding: 1em;\n }\n\n .formkit-outer[data-type=\"submit\"] .formkit-wrapper {\n padding: 0 1em 1em 1em;\n display: flex;\n }\n\n .formkit-form>.formkit-messages {\n padding: 0 1em 0em 1em;\n }\n\n .formkit-form>.formkit-messages:last-child {\n padding: 0 1em 1em 1em;\n }\n}\n\n.repeatableWrap,\n.formkitCmpWrap {\n margin: 2rem 0 !important\n}\n\n.isInvalidProperty {\n background-color: #FFD9D9 !important;\n}\n\n.activeItem {\n flex-grow: 1;\n\n .seperatorHorizontalStepper {\n height: 100%;\n }\n}\n\nselect {\n\n line-height: unset !important;\n}\n\n.form-container {\n padding-top: 20px;\n margin-top: 30px;\n border: solid 1px #d5d5d5;\n border-radius: 3px;\n margin-bottom: 20px;\n}\n\n.inputContainer {\n display: flex;\n}\n\n.formContainer {\n width: 100% !important;\n}\n\n.distributionPage0 {\n display: block;\n}\n\n.distributionPage1 {\n display: none;\n}\n\n.distributionPage2 {\n display: none;\n}\n\n.grid2r2c {\n .formkit-input-group-repeatable {\n display: grid;\n grid-template-columns: 70% 28%;\n grid-template-rows: auto auto;\n grid-gap: 10px;\n background-color: transparent;\n }\n}\n\n.grid1r2c {\n .formkit-input-group-repeatable {\n display: grid;\n grid-template-columns: 70% 28%;\n grid-template-rows: auto;\n grid-gap: 10px;\n background-color: transparent;\n }\n}\n\n.row1 {\n grid-row-start: 1;\n grid-row-end: 2;\n}\n\n.row2 {\n grid-row-start: 2;\n grid-row-end: 3;\n}\n\n.grow3 {\n grid-row-start: 3;\n grid-row-end: 4;\n}\n\n.column1 {\n grid-column-start: 1;\n grid-column-end: 2;\n}\n\n.column2 {\n grid-column-start: 2;\n grid-column-end: 3;\n}\n\n.columnboth {\n grid-column-start: 1;\n grid-column-end: 3;\n}\n\n.display-none {\n display: none;\n}\n\n.activeSection {\n >.formkitProperty {\n >div {}\n }\n}\n\n.formkitCmpWrap {\n border-left: 1px solid lightgray;\n\n\n}\n\n.formkitProperty {\n\n >h4 {\n background-color: #f5f5f5;\n padding: 1rem;\n cursor: pointer;\n position: relative;\n transition: all ease-in-out 200ms;\n\n &:hover {\n\n background-color: lightgray;\n\n &:before {\n\n rotate: -45deg;\n }\n\n &:after {\n\n rotate: 45deg;\n }\n }\n\n &:before {\n transition: all ease-in-out 200ms;\n content: \"\";\n width: 15px;\n height: 1.5px;\n background-color: black;\n position: absolute;\n top: 30px;\n right: 15px;\n rotate: 45deg;\n }\n\n &:after {\n transition: all ease-in-out 200ms;\n content: \"\";\n width: 15px;\n height: 1.5px;\n background-color: black;\n position: absolute;\n top: 30px;\n right: 25px;\n rotate: -45deg;\n }\n }\n\n .formkitProperty {\n h4 {\n padding: 0;\n background-color: unset !important;\n\n &::before {\n display: none !important;\n }\n\n &:after {\n display: none !important;\n }\n }\n }\n}\n\n.dpiChevUp {\n\n &:before {\n\n rotate: -45deg !important;\n }\n\n &:after {\n\n rotate: 45deg !important;\n }\n\n\n\n}\n</style>\n"],"names":["_sfc_main","defineComponent","str","match","InputPageStep","DistributionInputPage","PropertyChooser","Navigation","mapGetters","key","has","title","allValues","isNil","mapActions","h4Elements","h4Element","index","initialSchema","stepWithDates","el","existingValues","isEmpty","$","elements","attributeChangedCallback","mutationsList","mutation","observer","config","allMatchingElements","element","matchingChildren","valueObject","property","to","from","next","vm","steps","activeStep","visitedSteps","previousStep","nextStep","stepPlugin","goToNextStep","goToPreviousStep","useDpiStepper","scrollToTop","x","y","useWindowScroll","checkStepValidity","stepName","library","markRaw","OverviewPage","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_createElementVNode","_hoisted_12","_hoisted_14","_hoisted_16","_hoisted_21","_openBlock","_createElementBlock","_ctx","_hoisted_2","_createVNode","_component_FormKit","_cache","$event","_withModifiers","_withCtx","_Fragment","_renderList","step","_normalizeClass","_toDisplayString","_createTextVNode","_createCommentVNode","_hoisted_10","_hoisted_11","_hoisted_13","_component_InputPageStep","_hoisted_15","_hoisted_17","_hoisted_18","_hoisted_19","_createBlock","_component_FormKitSchema","_component_DistributionInputPage","_hoisted_20","_component_Navigation"],"mappings":"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"}
|