monarc
Version:
MONARC's Obviously Not A Redux Clone
3 lines (2 loc) • 5.64 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tiny-invariant"),t=require("react"),n=require("@redux-devtools/serialize"),r=require("jsan");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(e),i=u(t),a=u(r);function c(){return c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function d(e){var n=e;return void 0!==e.reducer?[e.reducer,e.Provider]:"function"==typeof e?[e,t.Fragment]:(Array.isArray(n)||o.default(!1),0===n.length&&o.default(!1),1===n.length?[n[0],t.Fragment]:[function(e,t){return n.reduce((function(e,n){return n(e,t)}),e)},t.Fragment])}function f(e,n,r){return"function"==typeof n?function(e,n,r){var u=t.createContext(null);return[function(t,o){var a=d(t),f=a[0],l=a[1],s={},v=c({},r,o);return{reducer:e(f,s,v),Provider:function(e){var t=e.children,r=n(s,v);return i.default.createElement(u.Provider,{value:r},i.default.createElement(l,null,t))}}},function(){return t.useContext(u)},u]}(e,n,r):function(e,t){return[function(n,r){var u=d(n),o=u[0],i=u[1],a=c({},t,r);return{reducer:e(o,{},a),Provider:i}}]}(e,n)}var l=t.createContext({dispatch:function(){},state:{}});function s(){var e=t.useContext(l).dispatch;return t.useCallback((function(t){"function"==typeof t.then?t.then(e):e(t)}),[e])}function v(){return t.useContext(l).state}var p="undefined"!=typeof window?t.useLayoutEffect:t.useEffect;function m(e,t,n){var r=t.pop();return void 0!==r&&n.push(e),r}function y(e){return e}function S(e,t,n){var r=n.getState===y,u=n.setState===y,i=!1===r&&!1===u,a=!0===r&&!0===u;"autoSave"===e.name&&o.default(!1),"function"!=typeof n.getState&&o.default(!1),"function"!=typeof n.setState&&o.default(!1),a||i||o.default(!1),n.undoAction||o.default(!1),n.redoAction||o.default(!1),n.maxUndo>=0||o.default(!1),t.prev=null,t.undo=[],t.redo=[];var c=t,d=n.maxUndo,f=n.setState,l=n.getState,s=n.undoAction,v=n.redoAction;return function(t,n){var r,u,o,i=!0===n.undoStream&&n.type===c.prev,a=!0===n.undoReset,p=!0===n.undoSkip;switch(n.type){case s:return 0===c.undo.length?t:(c.prev=null,void 0!==(r=m(o=l(t),c.undo,c.redo))?f(r,t):t);case v:return 0===c.redo.length?t:(c.prev=null,void 0!==(r=m(o=l(t),c.redo,c.undo))?f(r,t):t);default:u=e(t,n),!1===p&&!1===a&&!1===i&&(r=l(u),(o=l(t))!==r&&(d&&d===c.undo.length&&c.undo.shift(),c.undo.push(o),c.redo=[])),!0===a&&(c.undo=[],c.redo=[]),c.prev=n.type}return u}}function h(e){var n=0!==e.undo.length,r=0!==e.redo.length;return t.useMemo((function(){return{canUndo:n,canRedo:r}}),[n,r])}var _=f(S,h,{setState:y,getState:y,undoAction:"UNDO",redoAction:"REDO",maxUndo:50}),E=_[0],x=_[1],O=_[2];function T(e,t,n){null!==e.timer&&(clearTimeout(e.timer),e.timer=null),null!==e.state&&(2!==t.length?(t(e.state),!0!==n&&e.render()):t(e.state,(function(){e.render()})))}function g(e,t,n){"function"!=typeof n.onSave&&o.default(!1),n.delay>=0||o.default(!1),t.render=function(){},t.state=null,t.timer=null;var r=t,u=n.delay,i=n.onUpdate,a=n.onBeforeUpdate,c=T.bind(null,r,n.onSave);return"undefined"!=typeof window&&window.addEventListener("beforeunload",(function(){null!==r.timer&&c(!0)})),function(t,n){var o=e(t,n),d=!1,f=!1;return"function"==typeof a&&(f=a(t,o,n,null!==r.timer)),null===r.timer&&!1===f&&(d=i(t,o,n)),!0===d&&(r.timer=setTimeout(c,u)),!0===f&&(r.state=t,c(!0)),r.state=o,o}}function w(e,n){var r=t.useState(0),u=r[0],o=r[1],i=e,a=null===i.timer;return t.useEffect((function(){i.render=function(){return o(u+1)}}),[u]),t.useEffect((function(){var e=n.onSave;return function(){i.render=function(){},i.timer&&T(i,e,!0)}}),[]),t.useMemo((function(){return{isSaved:a}}),[a])}var C=f(g,w,{onUpdate:function(){return!0},delay:5e3}),b=C[0],A=C[1],U=C[2],D={serialize:!0};function P(e,t){return t.send=function(){},t.init=function(){},t.initial=null,function(n,r){var u,o=r,i=t;if("__REDUX_DEVTOOLS_DISPATCH__"!==o.type)return u=e(n,r),i.send(r,u),u;switch(o.payload.type){case"COMMIT":u=e(n,r),i.init(u);break;case"ROLLBACK":i.init(u=o.state);break;case"RESET":i.init(u=t.initial);break;case"JUMP_TO_ACTION":case"JUMP_TO_STATE":u=o.state;break;default:u=n}return u}}function R(e,r){var u=s(),o=v();t.useEffect((function(){if(!1===("undefined"!=typeof window&&Boolean(window.__REDUX_DEVTOOLS_EXTENSION__)))return function(){return null};var t,i=r.serialize,d=window.__REDUX_DEVTOOLS_EXTENSION__,f=d.connect(c({},D,r));if(i.immutable){var l=n.immutable(i.immutable,i.refs);t=l.parse}else t=a.default.parse;var s=f.subscribe((function(e){if("DISPATCH"===e.type){var n=t(e.state);u({type:"__REDUX_DEVTOOLS_DISPATCH__",payload:e.payload,state:n})}}));return e.send=f.send,e.init=f.init,e.initial=o,f.init(o),function(){s(),d.disconnect()}}),[])}var L=f(P,R)[0];exports.createContainer=function(e,n,r){var u=d(n),o=u[0],a=u[1];return function(n){var u=n.children,c=t.useReducer(o,n.initialState),d=c[0],f=c[1],s=t.useMemo((function(){return{state:d,dispatch:f}}),[d]);return p((function(){void 0!==r&&(r.dispatch=function(e){!function(e){return"function"==typeof e.then}(e)?f(e):e.then(f)})}),[]),i.default.createElement(l.Provider,{value:s},i.default.createElement(a,null,i.default.createElement(l.Consumer,null,(function(t){return i.default.createElement(e,{store:t.state},u)}))))}},exports.createPlugin=f,exports.saveContext=U,exports.storeContext=l,exports.undoContext=O,exports.useAutoSave=A,exports.useDispatch=s,exports.useStore=v,exports.useUndoRedo=x,exports.withAutoSave=b,exports.withDevTools=L,exports.withUndoRedo=E;
//# sourceMappingURL=monarc.cjs.production.min.js.map