{"ast":null,"code":"\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nvar _construct = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/reflect/construct\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/classCallCheck\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/assertThisInitialized\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/createClass\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/getPrototypeOf\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/toConsumableArray\"));\n\nvar _set = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/set\"));\n\nvar _defineProperty = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/define-property\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = (0, _construct[\"default\"])(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !_construct[\"default\"]) return false; if (_construct[\"default\"].sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call((0, _construct[\"default\"])(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n(0, _defineProperty[\"default\"])(exports, \"__esModule\", {\n  value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar isServer = false;\n\nexports[\"default\"] = function () {\n  var mountedInstances = new _set[\"default\"]();\n  var state;\n\n  function emitChange(component) {\n    state = component.props.reduceComponentsToState((0, _toConsumableArray2[\"default\"])(mountedInstances), component.props);\n\n    if (component.props.handleStateChange) {\n      component.props.handleStateChange(state);\n    }\n  }\n\n  return /*#__PURE__*/function (_react_1$Component) {\n    (0, _inherits2[\"default\"])(_class, _react_1$Component);\n\n    var _super = _createSuper(_class);\n\n    (0, _createClass2[\"default\"])(_class, null, [{\n      key: \"rewind\",\n      // Used when server rendering\n      value: function rewind() {\n        var recordedState = state;\n        state = undefined;\n        mountedInstances.clear();\n        return recordedState;\n      }\n    }]);\n\n    function _class(props) {\n      var _this;\n\n      (0, _classCallCheck2[\"default\"])(this, _class);\n      _this = _super.call(this, props);\n\n      if (isServer) {\n        mountedInstances.add((0, _assertThisInitialized2[\"default\"])(_this));\n        emitChange((0, _assertThisInitialized2[\"default\"])(_this));\n      }\n\n      return _this;\n    }\n\n    (0, _createClass2[\"default\"])(_class, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        mountedInstances.add(this);\n        emitChange(this);\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate() {\n        emitChange(this);\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        mountedInstances[\"delete\"](this);\n        emitChange(this);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return null;\n      }\n    }]);\n    return _class;\n  }(react_1.Component);\n};","map":{"version":3,"sources":["/Users/captainsafia/github.com/nteract/commuter/node_modules/next/dist/next-server/lib/side-effect.js"],"names":["exports","value","react_1","require","isServer","mountedInstances","state","emitChange","component","props","reduceComponentsToState","handleStateChange","recordedState","undefined","clear","add","Component"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gCAAsBA,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,IAAMC,OAAO,GAAGC,OAAO,CAAC,OAAD,CAAvB;;AACA,IAAMC,QAAQ,QAAd;;AACAJ,OAAO,WAAP,GAAkB,YAAM;AACpB,MAAMK,gBAAgB,GAAG,qBAAzB;AACA,MAAIC,KAAJ;;AACA,WAASC,UAAT,CAAoBC,SAApB,EAA+B;AAC3BF,IAAAA,KAAK,GAAGE,SAAS,CAACC,KAAV,CAAgBC,uBAAhB,qCAA4CL,gBAA5C,GAA+DG,SAAS,CAACC,KAAzE,CAAR;;AACA,QAAID,SAAS,CAACC,KAAV,CAAgBE,iBAApB,EAAuC;AACnCH,MAAAA,SAAS,CAACC,KAAV,CAAgBE,iBAAhB,CAAkCL,KAAlC;AACH;AACJ;;AACD;AAAA;;AAAA;;AAAA;AAAA;AACI;AADJ,+BAEoB;AACZ,YAAMM,aAAa,GAAGN,KAAtB;AACAA,QAAAA,KAAK,GAAGO,SAAR;AACAR,QAAAA,gBAAgB,CAACS,KAAjB;AACA,eAAOF,aAAP;AACH;AAPL;;AAQI,oBAAYH,KAAZ,EAAmB;AAAA;;AAAA;AACf,gCAAMA,KAAN;;AACA,UAAIL,QAAJ,EAAc;AACVC,QAAAA,gBAAgB,CAACU,GAAjB;AACAR,QAAAA,UAAU,gDAAV;AACH;;AALc;AAMlB;;AAdL;AAAA;AAAA,0CAewB;AAChBF,QAAAA,gBAAgB,CAACU,GAAjB,CAAqB,IAArB;AACAR,QAAAA,UAAU,CAAC,IAAD,CAAV;AACH;AAlBL;AAAA;AAAA,2CAmByB;AACjBA,QAAAA,UAAU,CAAC,IAAD,CAAV;AACH;AArBL;AAAA;AAAA,6CAsB2B;AACnBF,QAAAA,gBAAgB,UAAhB,CAAwB,IAAxB;AACAE,QAAAA,UAAU,CAAC,IAAD,CAAV;AACH;AAzBL;AAAA;AAAA,+BA0Ba;AACL,eAAO,IAAP;AACH;AA5BL;AAAA;AAAA,IAAqBL,OAAO,CAACc,SAA7B;AA8BH,CAvCD","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = require(\"react\");\nconst isServer = typeof window === 'undefined';\nexports.default = () => {\n    const mountedInstances = new Set();\n    let state;\n    function emitChange(component) {\n        state = component.props.reduceComponentsToState([...mountedInstances], component.props);\n        if (component.props.handleStateChange) {\n            component.props.handleStateChange(state);\n        }\n    }\n    return class extends react_1.Component {\n        // Used when server rendering\n        static rewind() {\n            const recordedState = state;\n            state = undefined;\n            mountedInstances.clear();\n            return recordedState;\n        }\n        constructor(props) {\n            super(props);\n            if (isServer) {\n                mountedInstances.add(this);\n                emitChange(this);\n            }\n        }\n        componentDidMount() {\n            mountedInstances.add(this);\n            emitChange(this);\n        }\n        componentDidUpdate() {\n            emitChange(this);\n        }\n        componentWillUnmount() {\n            mountedInstances.delete(this);\n            emitChange(this);\n        }\n        render() {\n            return null;\n        }\n    };\n};\n"]},"metadata":{},"sourceType":"script"}