{"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect, computed } from 'vue'\nimport { useRoute } from 'vue-router';\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst dpiContext = useDpiContext();\nconst isDuplicate = ref(localStorage.getItem('dpi_duplicate') || false);\nconst isEditMode = computed(() => !!dpiContext.value.edit?.enabled)\n\nconst { t, locale } = useI18n({ useScope: 'global' });\n\nconst validationMessages = ref({\n  idformatvalid: \"\",\n  idunique: \"\",\n  required: \"\"\n\n});\n\nonMounted(() => {\n  // This is kind of buggy, its taking the strings from the wrong json (de and en is switched)\n  validationMessages.value.idformatvalid = t('message.dataupload.datasets.datasetID.invalidFormat');\n  validationMessages.value.idunique = t('message.dataupload.datasets.datasetID.duplicate');\n  validationMessages.value.required = t('message.dataupload.datasets.datasetID.required');\n});\n\nconst draftIDs = store.getters['auth/getUserDraftIds'];\nconst hubUrl = env.api.hubUrl;\nfunction idunique(node) {\n  const id = node?.value;\n\n  return new Promise(async (resolve) => {\n    // resolve(true) -> datasetId is unique\n    // resolve(false) -> datasetId is not unique\n\n    if (isNil(id) || id === '' || id === undefined) resolve(true)\n\n    const existIdInUserDrafts = draftIDs?.includes(id)\n    if (existIdInUserDrafts) resolve(false)\n\n    const request = `${hubUrl}datasets/${id}?useNormalizedId=true`;\n    try {\n      const res = await axios.head(request);\n      // if 2xx -> datsetId is not unique -> validation error\n      const isNotUnique = !(res.status >= 200 && res.status < 300);\n      if (isNotUnique) resolve(false)\n    } catch (error) {\n      // if 404 -> datasetId is unique\n      resolve(true);\n    }\n\n    resolve(false)\n  });\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=\"required|idformatvalid|(900)idunique\"\n      validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n    </FormKit>\n    <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n      :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n    </FormKit>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","dpiContext","useDpiContext","isDuplicate","ref","isEditMode","computed","_a","t","locale","useI18n","validationMessages","onMounted","draftIDs","hubUrl","idunique","node","id","resolve","isNil","request","res","axios","idformatvalid","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","$t","_createBlock","_component_FormKit"],"mappings":";;;;;;;;;;;;;;;;;;;6CAmFeA,IAAA;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA5EA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAa,GAC1BC,IAAcC,EAAI,aAAa,QAAQ,eAAe,KAAK,EAAK,GAChEC,IAAaC,EAAS;;AAAM,cAAC,GAACC,IAAAN,EAAW,MAAM,SAAjB,QAAAM,EAAuB;AAAA,KAAO,GAE5D,EAAE,GAAAC,GAAG,QAAAC,MAAWC,EAAQ,EAAE,UAAU,SAAQ,CAAE,GAE9CC,IAAqBP,EAAI;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IAEZ,CAAC;AAED,IAAAQ,EAAU,MAAM;AAEd,MAAAD,EAAmB,MAAM,gBAAgBH,EAAE,qDAAqD,GAChGG,EAAmB,MAAM,WAAWH,EAAE,iDAAiD,GACvFG,EAAmB,MAAM,WAAWH,EAAE,gDAAgD;AAAA,IACxF,CAAC;AAED,UAAMK,IAAWd,EAAM,QAAQ,sBAAsB,GAC/Ce,IAASjB,EAAI,IAAI;AACvB,aAASkB,EAASC,GAAM;AACtB,YAAMC,IAAKD,KAAA,gBAAAA,EAAM;AAEjB,aAAO,IAAI,QAAQ,OAAOE,MAAY;AAIpC,SAAIC,EAAMF,CAAE,KAAKA,MAAO,MAAMA,MAAO,WAAWC,EAAQ,EAAI,IAEhCL,KAAA,gBAAAA,EAAU,SAASI,OACtBC,EAAQ,EAAK;AAEtC,cAAME,IAAU,GAAGN,CAAM,YAAYG,CAAE;AACvC,YAAI;AACF,gBAAMI,IAAM,MAAMC,EAAM,KAAKF,CAAO;AAGpC,UADoB,EAAEC,EAAI,UAAU,OAAOA,EAAI,SAAS,QACvCH,EAAQ,EAAK;AAAA,QAC/B,QAAe;AAEd,UAAAA,EAAQ,EAAI;AAAA,QACd;AAEA,QAAAA,EAAQ,EAAK;AAAA,MACjB,CAAG;AAAA,IACH;AAEA,aAASK,EAAcP,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;AAKE,aAAAQ,EAAA,GAAAC,EAWM,OAXNC,GAWM;AAAA,QAVJC,EAAgE,cAAzDC,EAAE,GAAA,6CAAA,CAAA,GAAA,CAAA;AAAA;QACO,CAAAvB,EAAA,SAAcF,EAAW,cAAzC0B,EAKUC,GAAA;AAAA;UALiC,MAAK;AAAA,UAAO,MAAK;AAAA,UAAY,IAAG;AAAA,UACxE,aAAaF,EAAE,GAAA,6CAAA;AAAA,UACf,MAAMA,EAAE,GAAA,4CAAA;AAAA,UAAiD,MAAMA,EAAE,GAAA,4CAAA;AAAA,UACjE,oBAAgB,EAAA,eAAIL,GAAa,UAAER,EAAQ;AAAA,UAAI,YAAW;AAAA,UAC3D,yBAAsB;AAAA,UAAQ,uBAAqBJ,EAAkB;AAAA,UAAE,eAAY;AAAA,yGAErFkB,EAEUC,GAAA;AAAA;UAFM,MAAK;AAAA,UAAO,MAAK;AAAA,UAAY,IAAG;AAAA,UAAa,UAAU;AAAA,UACpE,MAAMF,EAAE,GAAA,4CAAA;AAAA,UAAiD,MAAMA,EAAE,GAAA,4CAAA;AAAA;;;;;"}