class PersistedDataFactory { static createDefault() { return { hasPermission: false, lastUsedCameraId: null }; } } export class PersistedDataManager { constructor() { this.data = PersistedDataFactory.createDefault(); let data = localStorage.getItem(PersistedDataManager.LOCAL_STORAGE_KEY); if (!data) { this.reset(); } else { this.data = JSON.parse(data); } } hasCameraPermissions() { return this.data.hasPermission; } getLastUsedCameraId() { return this.data.lastUsedCameraId; } setHasPermission(hasPermission) { this.data.hasPermission = hasPermission; this.flush(); } setLastUsedCameraId(lastUsedCameraId) { this.data.lastUsedCameraId = lastUsedCameraId; this.flush(); } resetLastUsedCameraId() { this.data.lastUsedCameraId = null; this.flush(); } reset() { this.data = PersistedDataFactory.createDefault(); this.flush(); } flush() { localStorage.setItem(PersistedDataManager.LOCAL_STORAGE_KEY, JSON.stringify(this.data)); } } PersistedDataManager.LOCAL_STORAGE_KEY = "HTML5_QRCODE_DATA"; //# sourceMappingURL=storage.js.map