{"ast":null,"code":"function ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(source, true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(source).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n  @TODO add validation / handling for:\n  - persisting a reducer which has nested _persist\n  - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!config) throw new Error('config is required for persistReducer');\n    if (!config.key) throw new Error('key is required in persistor config');\n    if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n  }\n\n  var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n  var debug = config.debug || false;\n  var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n  var getStoredState = config.getStoredState || defaultGetStoredState;\n  var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n  var _persistoid = null;\n  var _purge = false;\n  var _paused = true;\n\n  var conditionalUpdate = function conditionalUpdate(state) {\n    // update the persistoid only if we are rehydrated and not paused\n    state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n    return state;\n  };\n\n  return function (state, action) {\n    var _ref = state || {},\n        _persist = _ref._persist,\n        rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n    var restState = rest;\n\n    if (action.type === PERSIST) {\n      var _sealed = false;\n\n      var _rehydrate = function _rehydrate(payload, err) {\n        // dev warning if we are already sealed\n        if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n        if (!_sealed) {\n          action.rehydrate(config.key, payload, err);\n          _sealed = true;\n        }\n      };\n\n      timeout && setTimeout(function () {\n        !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n      }, timeout); // @NOTE PERSIST resumes if paused.\n\n      _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n      if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n      if (_persist) {\n        // We still need to call the base reducer because there might be nested\n        // uses of persistReducer which need to be aware of the PERSIST action\n        return _objectSpread({}, baseReducer(restState, action), {\n          _persist: _persist\n        });\n      }\n\n      if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n      action.register(config.key);\n      getStoredState(config).then(function (restoredState) {\n        var migrate = config.migrate || function (s, v) {\n          return Promise.resolve(s);\n        };\n\n        migrate(restoredState, version).then(function (migratedState) {\n          _rehydrate(migratedState);\n        }, function (migrateErr) {\n          if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n          _rehydrate(undefined, migrateErr);\n        });\n      }, function (err) {\n        _rehydrate(undefined, err);\n      });\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: {\n          version: version,\n          rehydrated: false\n        }\n      });\n    } else if (action.type === PURGE) {\n      _purge = true;\n      action.result(purgeStoredState(config));\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === FLUSH) {\n      action.result(_persistoid && _persistoid.flush());\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === PAUSE) {\n      _paused = true;\n    } else if (action.type === REHYDRATE) {\n      // noop on restState if purging\n      if (_purge) return _objectSpread({}, restState, {\n        _persist: _objectSpread({}, _persist, {\n          rehydrated: true\n        }) // @NOTE if key does not match, will continue to default else below\n\n      });\n\n      if (action.key === config.key) {\n        var reducedState = baseReducer(restState, action);\n        var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n        var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n        var _newState = _objectSpread({}, reconciledRest, {\n          _persist: _objectSpread({}, _persist, {\n            rehydrated: true\n          })\n        });\n\n        return conditionalUpdate(_newState);\n      }\n    } // if we have not already handled PERSIST, straight passthrough\n\n\n    if (!_persist) return baseReducer(state, action); // run base reducer:\n    // is state modified ? return original : return updated\n\n    var newState = baseReducer(restState, action);\n    if (newState === restState) return state;\n    return conditionalUpdate(_objectSpread({}, newState, {\n      _persist: _persist\n    }));\n  };\n}","map":{"version":3,"sources":["C:/laragon/www/itokin/DriverOPCDA/frontend/node_modules/redux-persist/es/persistReducer.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","FLUSH","PAUSE","PERSIST","PURGE","REHYDRATE","DEFAULT_VERSION","autoMergeLevel1","createPersistoid","defaultGetStoredState","purgeStoredState","DEFAULT_TIMEOUT","persistReducer","config","baseReducer","process","env","NODE_ENV","Error","storage","version","undefined","debug","stateReconciler","getStoredState","timeout","_persistoid","_purge","_paused","conditionalUpdate","state","_persist","rehydrated","update","action","_ref","rest","restState","type","_sealed","_rehydrate","payload","err","console","error","concat","rehydrate","setTimeout","register","then","restoredState","migrate","s","v","Promise","resolve","migratedState","migrateErr","result","flush","reducedState","inboundState","reconciledRest","_newState","newState"],"mappings":"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","sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n  @TODO add validation / handling for:\n  - persisting a reducer which has nested _persist\n  - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!config) throw new Error('config is required for persistReducer');\n    if (!config.key) throw new Error('key is required in persistor config');\n    if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n  }\n\n  var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n  var debug = config.debug || false;\n  var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n  var getStoredState = config.getStoredState || defaultGetStoredState;\n  var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n  var _persistoid = null;\n  var _purge = false;\n  var _paused = true;\n\n  var conditionalUpdate = function conditionalUpdate(state) {\n    // update the persistoid only if we are rehydrated and not paused\n    state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n    return state;\n  };\n\n  return function (state, action) {\n    var _ref = state || {},\n        _persist = _ref._persist,\n        rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n    var restState = rest;\n\n    if (action.type === PERSIST) {\n      var _sealed = false;\n\n      var _rehydrate = function _rehydrate(payload, err) {\n        // dev warning if we are already sealed\n        if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n        if (!_sealed) {\n          action.rehydrate(config.key, payload, err);\n          _sealed = true;\n        }\n      };\n\n      timeout && setTimeout(function () {\n        !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n      }, timeout); // @NOTE PERSIST resumes if paused.\n\n      _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n      if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n      if (_persist) {\n        // We still need to call the base reducer because there might be nested\n        // uses of persistReducer which need to be aware of the PERSIST action\n        return _objectSpread({}, baseReducer(restState, action), {\n          _persist: _persist\n        });\n      }\n\n      if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n      action.register(config.key);\n      getStoredState(config).then(function (restoredState) {\n        var migrate = config.migrate || function (s, v) {\n          return Promise.resolve(s);\n        };\n\n        migrate(restoredState, version).then(function (migratedState) {\n          _rehydrate(migratedState);\n        }, function (migrateErr) {\n          if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n          _rehydrate(undefined, migrateErr);\n        });\n      }, function (err) {\n        _rehydrate(undefined, err);\n      });\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: {\n          version: version,\n          rehydrated: false\n        }\n      });\n    } else if (action.type === PURGE) {\n      _purge = true;\n      action.result(purgeStoredState(config));\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === FLUSH) {\n      action.result(_persistoid && _persistoid.flush());\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === PAUSE) {\n      _paused = true;\n    } else if (action.type === REHYDRATE) {\n      // noop on restState if purging\n      if (_purge) return _objectSpread({}, restState, {\n        _persist: _objectSpread({}, _persist, {\n          rehydrated: true\n        }) // @NOTE if key does not match, will continue to default else below\n\n      });\n\n      if (action.key === config.key) {\n        var reducedState = baseReducer(restState, action);\n        var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n        var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n        var _newState = _objectSpread({}, reconciledRest, {\n          _persist: _objectSpread({}, _persist, {\n            rehydrated: true\n          })\n        });\n\n        return conditionalUpdate(_newState);\n      }\n    } // if we have not already handled PERSIST, straight passthrough\n\n\n    if (!_persist) return baseReducer(state, action); // run base reducer:\n    // is state modified ? return original : return updated\n\n    var newState = baseReducer(restState, action);\n    if (newState === restState) return state;\n    return conditionalUpdate(_objectSpread({}, newState, {\n      _persist: _persist\n    }));\n  };\n}"]},"metadata":{},"sourceType":"module"}