{"version":3,"file":"store_config_element.min.js","sources":["https:\/\/moodle.sonsbeekmedia.nl\/caie_39\/mod\/teachingtools\/amd\/src\/names\/store_config_element.js"],"sourcesContent":["\/\/ This file is part of Moodle - http:\/\/moodle.org\/\n\/\/\n\/\/ Moodle is free software: you can redistribute it and\/or modify\n\/\/ it under the terms of the GNU General Public License as published by\n\/\/ the Free Software Foundation, either version 3 of the License, or\n\/\/ (at your option) any later version.\n\/\/\n\/\/ Moodle is distributed in the hope that it will be useful,\n\/\/ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\/\/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\/\/ GNU General Public License for more details.\n\/\/\n\/\/ You should have received a copy of the GNU General Public License\n\/\/ along with Moodle. If not, see .\n\n\/**\n * The simple drag and drop app.\n *\n * @module mod_teachingtools\/names\/store_config_element\n * @class StoreConfigElement\n * @copyright 2023 Sonsbeekmedia\n * @author Bas Brands \n * @license http:\/\/www.gnu.org\/copyleft\/gpl.html GNU GPL v3 or later\n *\/\n\nimport ToolData from 'mod_teachingtools\/tooldata';\nimport Notification from 'core\/notification';\nexport default class StoreConfigElement {\n async = true;\n rootElement;\n names;\n\n \/**\n * Constructor.\n * @param {Names} names\n * @param {HTMLElement} rootElement\n *\/\n constructor(names, rootElement) {\n this.names = names;\n this.rootElement = rootElement;\n this.prefix = 'cam-';\n const data = this.getDataSet();\n this.appname = data.region;\n this.appname = this.appname.replace('-' + data.cmid, '');\n this.storageName = this.prefix + data.region;\n if (data.toolswitcher == 1) {\n this.appname = 'teachingtool';\n this.storageName = this.prefix + 'teachingtool';\n }\n }\n\n \/**\n * Get the stored names.\n * @returns {Promise<*>}\n *\/\n getStoredNames = async() => {\n const data = this.getDataSet();\n if (data.shared == 1) {\n this.getLocalStorage();\n if (this.names.names && this.names.names.length == 0) {\n return await this.getServerStorage();\n }\n }\n return this.getLocalStorage();\n };\n\n getServerStorage = async() => {\n const cmid = this.rootElement.dataset.cmid;\n\n return ToolData.getData(cmid, this.appname, 'names').then((result) => {\n if (result.data) {\n const storedNames = JSON.parse(result.data);\n this.names.add(storedNames);\n }\n return false;\n }).catch(Notification.exception);\n };\n\n getLocalStorage = () => {\n const storedNames = localStorage.getItem(this.storageName);\n if (storedNames) {\n const storedActivities = JSON.parse(storedNames);\n this.names.add(storedActivities);\n }\n };\n\n getDataSet() {\n const region = this.rootElement.dataset.region;\n const reselectRoot = document.querySelector(`[data-region=\"${region}\"]`);\n return reselectRoot.dataset;\n }\n\n update() {\n if (this.rootElement.dataset.gameready == \"true\") {\n this.storeData();\n }\n }\n\n storeData() {\n const data = this.getDataSet();\n if (data.shared == 1 && data.teacher == 1) {\n ToolData.storeData(data.cmid, this.appname, 'names', JSON.stringify(this.names.names));\n if (data.background) {\n ToolData.storeData(data.cmid, this.appname, 'backgroundimage', this.rootElement.dataset.background);\n }\n } else {\n localStorage.setItem(this.storageName, JSON.stringify(this.names.names));\n }\n }\n\n async setCustomData(identifier, dataset) {\n const data = this.getDataSet();\n if (dataset !== null) {\n dataset = JSON.stringify(dataset);\n }\n if (data.shared == 1 && data.teacher == 1) {\n await ToolData.storeData(data.cmid, this.appname, identifier, dataset);\n } else {\n const storagename = this.prefix + data.cmid + '-' + this.appname + '-' + identifier;\n if (dataset === null) {\n localStorage.removeItem(storagename);\n return;\n }\n try {\n localStorage.setItem(storagename, dataset);\n } catch (e) {\n window.console.log(e);\n }\n }\n }\n\n async getCustomData(identifier) {\n const data = this.getDataSet();\n const storagename = this.prefix + data.cmid + '-' + this.appname + '-' + identifier;\n const dataset = localStorage.getItem(storagename);\n if (data.shared == 1) {\n if (dataset && dataset !== 'undefined') {\n return JSON.parse(dataset);\n } else {\n return ToolData.getData(data.cmid, this.appname, identifier).then((result) => {\n if (result.data) {\n return JSON.parse(result.data);\n }\n return false;\n }).catch(Notification.exception);\n }\n } else {\n if (dataset) {\n return JSON.parse(dataset);\n }\n return false;\n }\n }\n}"],"names":["constructor","names","rootElement","async","this","getDataSet","shared","getLocalStorage","length","getServerStorage","cmid","dataset","ToolData","getData","appname","then","result","data","storedNames","JSON","parse","add","catch","Notification","exception","localStorage","getItem","storageName","storedActivities","prefix","region","replace","toolswitcher","document","querySelector","update","gameready","storeData","teacher","stringify","background","setItem","identifier","storagename","removeItem","e","window","console","log"],"mappings":"mmBAqCIA,YAAYC,MAAOC,2CATX,0HA2BSC,SAEM,GADNC,KAAKC,aACTC,cACAC,kBACDH,KAAKH,MAAMA,OAAoC,GAA3BG,KAAKH,MAAMA,MAAMO,cACxBJ,KAAKK,mBAGnBL,KAAKG,6DAGGJ,gBACTO,KAAON,KAAKF,YAAYS,QAAQD,YAE\/BE,kBAASC,QAAQH,KAAMN,KAAKU,QAAS,SAASC,MAAMC,YACnDA,OAAOC,KAAM,OACPC,YAAcC,KAAKC,MAAMJ,OAAOC,WACjChB,MAAMoB,IAAIH,oBAEZ,KACRI,MAAMC,sBAAaC,sDAGR,WACRN,YAAcO,aAAaC,QAAQtB,KAAKuB,gBAC1CT,YAAa,OACPU,iBAAmBT,KAAKC,MAAMF,kBAC\/BjB,MAAMoB,IAAIO,2BA5Cd3B,MAAQA,WACRC,YAAcA,iBACd2B,OAAS,aACRZ,MAAOb,KAAKC,kBACbS,QAAUG,MAAKa,YACfhB,QAAUV,KAAKU,QAAQiB,QAAQ,IAAMd,MAAKP,KAAM,SAChDiB,YAAcvB,KAAKyB,OAASZ,MAAKa,OACb,GAArBb,MAAKe,oBACAlB,QAAU,oBACVa,YAAcvB,KAAKyB,OAAS,gBAuCzCxB,mBACUyB,OAAS1B,KAAKF,YAAYS,QAAQmB,cACnBG,SAASC,sCAA+BJ,cACzCnB,QAGxBwB,SAC8C,QAAtC\/B,KAAKF,YAAYS,QAAQyB,gBACpBC,YAIbA,kBACUpB,KAAOb,KAAKC,aACC,GAAfY,KAAKX,QAA+B,GAAhBW,KAAKqB,2BAChBD,UAAUpB,KAAKP,KAAMN,KAAKU,QAAS,QAASK,KAAKoB,UAAUnC,KAAKH,MAAMA,QAC3EgB,KAAKuB,8BACIH,UAAUpB,KAAKP,KAAMN,KAAKU,QAAS,kBAAmBV,KAAKF,YAAYS,QAAQ6B,aAG5Ff,aAAagB,QAAQrC,KAAKuB,YAAaR,KAAKoB,UAAUnC,KAAKH,MAAMA,4BAIrDyC,WAAY\/B,eACtBM,KAAOb,KAAKC,gBACF,OAAZM,UACAA,QAAUQ,KAAKoB,UAAU5B,UAEV,GAAfM,KAAKX,QAA+B,GAAhBW,KAAKqB,cACnB1B,kBAASyB,UAAUpB,KAAKP,KAAMN,KAAKU,QAAS4B,WAAY\/B,aAC3D,OACGgC,YAAcvC,KAAKyB,OAASZ,KAAKP,KAAO,IAAMN,KAAKU,QAAU,IAAM4B,cACzD,OAAZ\/B,oBACAc,aAAamB,WAAWD,iBAIxBlB,aAAagB,QAAQE,YAAahC,SACpC,MAAOkC,GACLC,OAAOC,QAAQC,IAAIH,yBAKXH,kBACVzB,KAAOb,KAAKC,aACZsC,YAAcvC,KAAKyB,OAASZ,KAAKP,KAAO,IAAMN,KAAKU,QAAU,IAAM4B,WACnE\/B,QAAUc,aAAaC,QAAQiB,oBAClB,GAAf1B,KAAKX,OACDK,SAAuB,cAAZA,QACJQ,KAAKC,MAAMT,SAEXC,kBAASC,QAAQI,KAAKP,KAAMN,KAAKU,QAAS4B,YAAY3B,MAAMC,UAC3DA,OAAOC,MACAE,KAAKC,MAAMJ,OAAOC,QAG9BK,MAAMC,sBAAaC,aAGtBb,SACOQ,KAAKC,MAAMT"}