{"version":3,"sources":["storage.js"],"names":["window","undefined","_window$acpv","acpv","Map","Error","Storage","_classCallCheck","this","_createClass","key","value","Cookies","getJSON","set","SessionStorage","enabled","sessionStorage","removeItem","exception","getItem","JSON","parse","setItem","stringify","CompareVehicles","_Map","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","get","on","toObject","_inherits","SavedVehicles","_Map2","_this2","put"],"mappings":"63BAAA,SAAWA,EAAQC,GAAW,GAAAC,GAEDF,EAApBG,IAFqBD,OAA9B,KAA8BA,KAAAA,CAAA,IAEdE,GAFcF,EAEdE,GAEd,QAJF,KAIMA,EACF,KAAM,IAAIC,OAAJ,uFALoB,IAAAC,GAAA,WAAA,QAAAA,KAAAC,gBAAAC,KAAAF,GAAA,MAAAG,cAAAH,IAAAI,IAAA,MAAAC,MAAA,SAEdP,GAYV,MAAOQ,SAAQC,QAAQH,MAdCA,IAAA,MAAAC,MAAA,SAK1BD,EAAMC,GAcJ,MAVHC,SAAAE,IAAAJ,EAAAC,GAUUA,MAnBiBL,KAAAS,EAAA,WAAA,QAAAA,KAAAR,gBAAAC,KAAAO,GAAAP,KAwB1BQ,SAAU,CAxBgB,KAcxBC,eAAeJ,QAAQH,OAAvB,MACDO,eAAAC,WAAA,QAfyB,MAAAC,GAAAX,KAAAQ,SAAA,GAAA,MAAAP,cAAAM,IAAAL,IAAA,MAAAC,MAAA,SAoBzBD,GApByB,GAAAF,KAAAQ,QAAA,CAwCxB,GAAML,GAAQM,eAAeG,QAAQV,EAdvC,IAAA,OAAAC,EAoBE,MAAOU,MAAKC,MAAMX,OA9CMD,IAAA,MAAAC,MAAA,SA6BtBM,EAAAA,GAyBF,MAxBET,MAAOW,SACPF,eAAeM,QAAfb,EAAAW,KAAAG,UAAAb,IAuBKA,MAtDiBI,KAoCxBU,EApCwB,SAAAC,GAsCvB,QAAAD,GAAAnB,GAAAC,gBAAAC,KAAAiB,EAAA,IAAAE,GAAAC,2BAAApB,MAAAiB,EAAAI,WAAAC,OAAAC,eAAAN,IAAAO,KAAAxB,KAuBKF,EAAQ2B,IAAI,mCAvBjB,OAyBDN,GAAKO,GAAG,SAAU,WArBlB5B,EAAIK,IAAAA,iCAAgBgB,EAAAQ,cAJnBR,EAtCuB,MAAAS,WAAAX,EAAAC,GAAAD,GAoCLrB,GAWpBiC,EA/CyB,SAAAC,GAAA,QAAAD,GAAA/B,GAAAC,gBAAAC,KAAA6B,EAAA,IAAAE,GAAAX,2BAAApB,MAAA6B,EAAAR,WAAAC,OAAAC,eAAAM,IAAAL,KAAAxB,KAAAF,EAAA2B,IAAA,iCAAA,OAmDtBhB,GAAAA,GAAAA,SAAAA,WACDX,EAAAkC,IAAA,+BAAAD,EAAAJ,cApDuBI,EAAA,MAAAH,WAAAC,EAAAC,GAAAD,GA+CzBjC,EAiCHJ,GAAOG,KAAKG,QAAU,GAAIA,GAhFEN,EAAAG,KAAAY,eAAA,GAAAA,GAAAf,EAAAG,KAAAkC,cAAA,GAAAA,GAAArC,EAAAG,KAAAG,SAmF5BN,EAAOG,KAAKsB,gBAAkB,GAAIA,GAAgBzB,EAAOG,KAAKY,iBAnFlCf","file":"storage.min.js","sourcesContent":["(function (window, undefined) {\r\n\r\n const {acpv: {Map} = {}} = window;\r\n \r\n if (Map === undefined) {\r\n throw new Error(`\r\n Missing dependency Map.\r\n Please include map.js before this file.\r\n `);\r\n }\r\n\r\n class Storage {\r\n \r\n get(key) {\r\n return Cookies.getJSON(key);\r\n }\r\n \r\n put(key, value) {\r\n Cookies.set(key, value);\r\n return value;\r\n }\r\n }\r\n\r\n class SessionStorage {\r\n enabled = true;\r\n\r\n constructor() {\r\n try {\r\n sessionStorage.setItem('test', null);\r\n sessionStorage.removeItem('test');\r\n } catch (exception) {\r\n this.enabled = false;\r\n }\r\n }\r\n\r\n get(key) {\r\n if (!this.enabled) {\r\n return undefined;\r\n }\r\n\r\n const value = sessionStorage.getItem(key);\r\n\r\n if (value === null) {\r\n return undefined; // to be consistent with Cookies client\r\n }\r\n\r\n return JSON.parse(value);\r\n }\r\n \r\n put(key, value) {\r\n if (this.enabled) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n class CompareVehicles extends Map {\r\n \r\n constructor(Storage) {\r\n super(Storage.get('acpv.inventory.compareVehicles'));\r\n \r\n this.on('change', () => {\r\n Storage.put('acpv.inventory.compareVehicles', this.toObject());\r\n });\r\n }\r\n }\r\n \r\n class SavedVehicles extends Map {\r\n \r\n constructor(Storage) {\r\n super(Storage.get('acpv.inventory.savedVehicles'));\r\n \r\n this.on('change', () => {\r\n Storage.put('acpv.inventory.savedVehicles', this.toObject());\r\n });\r\n }\r\n }\r\n\r\n window.acpv.Storage = new Storage();\r\n window.acpv.SessionStorage = new SessionStorage();\r\n window.acpv.SavedVehicles = new SavedVehicles(window.acpv.Storage);\r\n window.acpv.CompareVehicles = new CompareVehicles(window.acpv.SessionStorage);\r\n\r\n})(window)\r\n"]}