{"version":3,"file":"conversionStore.mjs","sources":["../../../../lib/data-provider-interface/store/modules/conversionStore.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable no-param-reassign, no-shadow, no-console */\nimport N3 from 'n3';\n\nimport { isEmpty, has } from 'lodash';\nimport datasetFactory from '@rdfjs/dataset';\n\nimport generalHelper from '../../utils/general-helper';\nimport toRDF from '../../utils/RDFconverter';\nimport toInput from '../../utils/inputConverter';\n\nconst state = {\n    datasets: {},\n    distributions: [],\n    catalogues: {},\n    deleteDistributionInline: false,\n};\n\nconst getters = {\n    /**\n     * Returns raw values for given property, page and distribution\n     * @param state \n     * @param0 Object containing property, page and distribution id\n     * @returns Object conatining form values for given property, distribution and page\n     */\n    getRawValues: (state) => ({ property }) => {\n        return state[property];\n    },\n    /**\n     * Provides property data\n     * @param state \n     * @param property Property of wanted data\n     * @returns Object containing all values of given property\n     */\n    getData: (state) => (property) => {\n\n        let data;\n        if (property === 'distributions') {\n            data = [];\n            for (let index = 0; index < state[property].length; index += 1) {\n                const currentDistributionData = generalHelper.mergeNestedObjects(state[property][index]);\n                data.push(currentDistributionData);\n            }\n\n        } else {\n            console.log(data);\n            \n            data = generalHelper.mergeNestedObjects(state[property])\n        }\n       \n        \n        return data;\n    },\n};\n\nconst actions = {\n    /**\n     * Saves values from input form to vuex store\n     * @param param0 \n     * @param param1 Object containing property, page, distrbution id and form values\n     */\n    saveFormValues({ commit }, { property, values }) {\n\n        commit('saveFormValuesToStore', { property, values });\n\n    },\n    /**\n     * Saving existing values from localStorage to vuex store\n     * @param {*} param0\n     * @param {*} param1 Object containing property (datasets/catalogues) and subpage (when curren tprofile is distributions)\n     */\n    saveLocalstorageValues({ commit }, property) {\n        commit('saveFromLocalstorage', property);\n    },\n    /**\n     * Fetches data, writes it to a dataset and calls method for actual conversion to input format\n     * @param param0 \n     * @param param1 Object containing endpoint and token for data fetching as well as property\n     */\n    async convertToInput({ commit, rootGetters }, { endpoint, token, property }) {\n        const specification = rootGetters['dpiStore/getSpecification'];\n        const fetchedData = await generalHelper.fetchLinkedData(endpoint, token).then((response) => {\n            return response;\n        });\n\n        const parser = new N3.Parser();\n        const data = datasetFactory.dataset();\n\n        // adding quads to dataset\n        await parser.parse(fetchedData, (error, quad, prefixes) => {\n            if (quad) data.add(quad);\n        })\n\n        commit('saveLinkedDataToStore', { property, data, specification });\n    },\n    /**\n     * Merges store data and converts the given input values into RDF format\n     * @param state \n     * @param property Object containing all values within nested objects for each page of the frontend\n     * @returns Data values in RDF format\n     */\n    convertToRDF({ state, rootGetters }, { property }) {\n        const specification = rootGetters['dpiStore/getSpecification'];\n\n        // merging objects with nested objects containing the values of each page into one main object containing all values for the given property\n        const data = {\n            datasets: generalHelper.mergeNestedObjects(state.datasets),\n            distributions: [],\n            catalogues: generalHelper.mergeNestedObjects(state.catalogues)\n        };\n\n        // console.log(data);\n        \n        // merging each distribution object within the overall array of distributions\n        if (has(state.datasets, 'Distributions') && has(state.datasets.Distributions, 'distributionList') && !isEmpty(state.datasets.Distributions.distributionList)) {\n            for (let index = 0; index < state.datasets.Distributions.distributionList.length; index++) {\n                data.distributions.push(generalHelper.mergeNestedObjects(state.datasets.Distributions.distributionList[index]))\n            }\n        }\n\n        const RDFdata = toRDF.convertToRDF(data, property, specification);\n\n        return RDFdata;\n    },\n    /**\n     * Calls mutation to clear values and store\n     * @param param0 \n     */\n    clearAll({ commit }) {\n        commit('resetStore');\n    },  \n};\n\nconst mutations = {\n    /**\n     * Saves input values from form into vuex as well as into localStorage of browser\n     * @param state \n     * @param param1 Object containing the property, page and values of input form\n     */\n    saveFormValuesToStore(state, { property, values }) {\n\n        state[property] = values;\n\n        // save to local storage\n        localStorage.setItem(`dpi_${property}`, JSON.stringify(state[property]));\n    },\n    /**\n    * Save input form values from localStorage into vuex store\n    * @param {*} state\n    * @param {String} property Property name the data should be saved to (datasets/distributions/catalogues)\n    */\n    saveFromLocalstorage(state, property) {\n        let valueName;\n\n        if (property === 'catalogues') {\n            valueName = 'dpi_catalogues';\n        } else {\n            valueName = 'dpi_datasets';\n        }\n\n        // extract catalogues or datasets data\n        if (Object.keys(localStorage).includes(valueName)) {\n            const localStorageData = JSON.parse(localStorage.getItem(valueName));\n            if (property === 'catalogues') state[property] = localStorageData;\n            else state.datasets = localStorageData;\n        }\n    },\n    /**\n     * Converts RDF data into input form data\n     * @param state \n     * @param param1 Object containing data and property and state\n     */\n    saveLinkedDataToStore(state, { property, data, specification }) {\n\n        const dpiConfig = specification;\n        toInput.convertToInput(state, property, data, dpiConfig );\n\n        localStorage.setItem(`dpi_${property}`, JSON.stringify(state[property]));\n    },\n    resetStore(state) {\n        // remove dpi values from local store\n        localStorage.removeItem('dpi_datasets');\n        localStorage.removeItem('dpi_catalogues');\n\n        // resetting all store data properties\n        state.datasets = {};\n        state.catalogues = {};\n\n        // edit and draft mode not within this store so resetting via local storage\n        localStorage.setItem('dpi_editmode', false);\n        localStorage.setItem('dpi_draftmode', false);\n    },\n};\n\nconst conversionModule = {\n    state,\n    getters,\n    actions,\n    mutations\n};\n\nexport default conversionModule;\n"],"names":["state","getters","property","data","index","currentDistributionData","generalHelper","actions","commit","values","rootGetters","endpoint","token","specification","fetchedData","response","parser","N3","datasetFactory","error","quad","prefixes","has","isEmpty","toRDF","mutations","valueName","localStorageData","dpiConfig","toInput","conversionModule"],"mappings":"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"}