{"version":3,"file":"C1_EP24K.js","sources":["../../../../stores/airtable_relations.js"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { useContentStore } from '~/composables/stores/useContentStore.js'\nimport { default as _has } from 'lodash/has'\nimport clonedeep from 'clone-deep'\n\nexport const useAirtableRelationsStore = defineStore('airtable_relations', () => {\n const contentStore = useContentStore()\n const allLoaded = ref({})\n const loadAllRequest = ref({})\n const abortControllers = ref({})\n const loadingItems = ref({})\n const cursor = ref({})\n // this.extraRecordsFetched = true\n\n const initForInput = (inputId) => {\n if (!contentStore.getByKey(inputId)) {\n contentStore.save({ id: inputId, relations: [] })\n }\n\n if (!_has(allLoaded.value, inputId)) {\n allLoaded.value[inputId] = false\n }\n\n if (!_has(loadAllRequest.value, inputId)) {\n loadAllRequest.value[inputId] = null\n }\n\n if (!_has(cursor.value, inputId)) {\n cursor.value[inputId] = null\n }\n\n if (!_has(abortControllers.value, inputId)) {\n abortControllers.value[inputId] = null\n }\n\n if (!_has(loadingItems.value, inputId)) {\n loadingItems.value[inputId] = false\n }\n\n }\n\n const loadAll = async (inputId, relationsFetchUrl, options) => {\n if (loadAllRequest.value[inputId]) {\n return loadAllRequest.value[inputId]\n }\n\n loadingItems.value[inputId] = true\n // eslint-disable-next-line\n loadAllRequest.value[inputId] = new Promise(async (resolve, reject) => {\n try {\n const data = await airtableFormsFetch(relationsFetchUrl, options)\n const oldData = clonedeep(contentStore.getByKey(inputId)?.relations ?? [])\n if (oldData.length) {\n // Mix old relations and new ones\n data.forEach((item) => {\n if (!oldData.find((oldItem) => oldItem.id === item.id)) {\n oldData.push(item)\n }\n })\n contentStore.save({ id: inputId, relations: oldData })\n } else {\n contentStore.save({ id: inputId, relations: data })\n }\n loadingItems.value[inputId] = false\n loadAllRequest.value[inputId] = null\n allLoaded.value[inputId] = true\n resolve()\n } catch (err) {\n loadingItems.value[inputId] = false\n loadAllRequest.value[inputId] = null\n reject(err)\n }\n })\n }\n\n const createRelationItem = (inputId, item) => {\n const oldData = clonedeep(contentStore.getByKey(inputId)?.relations ?? [])\n oldData.push(item)\n contentStore.save({ id: inputId, relations: oldData })\n }\n return {\n ...contentStore,\n initForInput,\n loadAll,\n loadingItems,\n createRelationItem,\n allLoaded\n }\n})\n"],"names":["useAirtableRelationsStore","defineStore","contentStore","useContentStore","allLoaded","ref","loadAllRequest","abortControllers","loadingItems","cursor","inputId","_has","relationsFetchUrl","options","resolve","reject","data","airtableFormsFetch","oldData","clonedeep","_a","item","oldItem","err"],"mappings":"gYAKY,MAACA,EAA4BC,EAAY,qBAAsB,IAAM,CAC/E,MAAMC,EAAeC,EAAiB,EAChCC,EAAYC,EAAI,EAAE,EAClBC,EAAiBD,EAAI,EAAE,EACvBE,EAAmBF,EAAI,EAAE,EACzBG,EAAeH,EAAI,EAAE,EACrBI,EAASJ,EAAI,EAAE,EAqErB,MAAO,CACL,GAAGH,EACH,aApEoBQ,GAAY,CAC3BR,EAAa,SAASQ,CAAO,GAChCR,EAAa,KAAK,CAAE,GAAIQ,EAAS,UAAW,CAAA,EAAI,EAG7CC,EAAKP,EAAU,MAAOM,CAAO,IAChCN,EAAU,MAAMM,CAAO,EAAI,IAGxBC,EAAKL,EAAe,MAAOI,CAAO,IACrCJ,EAAe,MAAMI,CAAO,EAAI,MAG7BC,EAAKF,EAAO,MAAOC,CAAO,IAC7BD,EAAO,MAAMC,CAAO,EAAI,MAGrBC,EAAKJ,EAAiB,MAAOG,CAAO,IACvCH,EAAiB,MAAMG,CAAO,EAAI,MAG/BC,EAAKH,EAAa,MAAOE,CAAO,IACnCF,EAAa,MAAME,CAAO,EAAI,GAGjC,EA4CC,QA1Cc,MAAOA,EAASE,EAAmBC,IAAY,CAC7D,GAAIP,EAAe,MAAMI,CAAO,EAC9B,OAAOJ,EAAe,MAAMI,CAAO,EAGrCF,EAAa,MAAME,CAAO,EAAI,GAE9BJ,EAAe,MAAMI,CAAO,EAAI,IAAI,QAAQ,MAAOI,EAASC,IAAW,OACrE,GAAI,CACF,MAAMC,EAAO,MAAMC,EAAmBL,EAAmBC,CAAO,EAC1DK,EAAUC,IAAUC,EAAAlB,EAAa,SAASQ,CAAO,IAA7B,YAAAU,EAAgC,YAAa,EAAE,EACrEF,EAAQ,QAEVF,EAAK,QAASK,GAAS,CAChBH,EAAQ,KAAMI,GAAYA,EAAQ,KAAOD,EAAK,EAAE,GACnDH,EAAQ,KAAKG,CAAI,CAE/B,CAAW,EACDnB,EAAa,KAAK,CAAE,GAAIQ,EAAS,UAAWQ,EAAS,GAErDhB,EAAa,KAAK,CAAE,GAAIQ,EAAS,UAAWM,EAAM,EAEpDR,EAAa,MAAME,CAAO,EAAI,GAC9BJ,EAAe,MAAMI,CAAO,EAAI,KAChCN,EAAU,MAAMM,CAAO,EAAI,GAC3BI,EAAS,CACV,OAAQS,EAAK,CACZf,EAAa,MAAME,CAAO,EAAI,GAC9BJ,EAAe,MAAMI,CAAO,EAAI,KAChCK,EAAOQ,CAAG,CACX,CACP,CAAK,CACF,EAWC,aAAAf,EACA,mBAVyB,CAACE,EAASW,IAAS,OAC5C,MAAMH,EAAUC,IAAUC,EAAAlB,EAAa,SAASQ,CAAO,IAA7B,YAAAU,EAAgC,YAAa,EAAE,EACzEF,EAAQ,KAAKG,CAAI,EACjBnB,EAAa,KAAK,CAAE,GAAIQ,EAAS,UAAWQ,EAAS,CACtD,EAOC,UAAAd,CACD,CACH,CAAC"}