/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/aurelia-store@2.0.1/dist/umd/aurelia-store.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs"),require("aurelia-dependency-injection"),require("aurelia-logging"),require("aurelia-pal"),require("rxjs/operators")):"function"==typeof define&&define.amd?define(["exports","rxjs","aurelia-dependency-injection","aurelia-logging","aurelia-pal","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).au=e.au||{},e.au.store={}),e.rxjs,e.au,e.au.LogManager,e.au,e.rxjs)}(this,(function(e,t,r,n,o,i){"use strict";Object.entries||(Object.entries=function(e){for(var t=Object.keys(e),r=t.length,n=new Array(r);r--;)n[r]=[t[r],e[t[r]]];return n});var a=function(e,t){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},a(e,t)};function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)};function u(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))}function l(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function p(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}function f(e,t){return d(e)?t>0?function(e,t){if(t<0||t>=e.future.length)return e;var r=e.past,n=e.future,o=e.present,i=p(p(p([],r,!0),[o],!1),n.slice(0,t),!0),a=n[t],s=n.slice(t+1);return{past:i,present:a,future:s}}(e,t-1):t<0?function(e,t){if(t<0||t>=e.past.length)return e;var r=e.past,n=e.future,o=e.present,i=r.slice(0,t),a=p(p(p([],r.slice(t+1),!0),[o],!1),n,!0),s=r[t];return{past:i,present:s,future:a}}(e,e.past.length+t):e:e}function h(e,t){return d(e)&&(e.past.length>t&&(e.past=e.past.slice(e.past.length-t)),e.future.length>t&&(e.future=e.future.slice(0,t))),e}function d(e){return void 0!==e.present&&void 0!==e.future&&void 0!==e.past&&Array.isArray(e.future)&&Array.isArray(e.past)}var g,y,v="aurelia-store-state";e.MiddlewarePlacement=void 0,(g=e.MiddlewarePlacement||(e.MiddlewarePlacement={})).Before="before",g.After="after",e.LogLevel=void 0,(y=e.LogLevel||(e.LogLevel={})).trace="trace",y.debug="debug",y.info="info",y.log="log",y.warn="warn",y.error="error";var m,b=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return s(t,e),t}(n.Logger);function w(t,r,n){return r&&t.logDefinitions&&t.logDefinitions.hasOwnProperty(r)&&t.logDefinitions[r]&&Object.values(e.LogLevel).includes(t.logDefinitions[r])?t.logDefinitions[r]:n}e.PerformanceMeasurement=void 0,(m=e.PerformanceMeasurement||(e.PerformanceMeasurement={})).StartEnd="startEnd",m.All="all";var T=function(e){function t(t){return e.call(this,"Tried to dispatch an unregistered action ".concat(t&&("string"==typeof t?t:t.name)))||this}return s(t,e),t}(Error),S=function(){function r(e,r){this.initialState=e,this.logger=n.getLogger("aurelia-store"),this.devToolsAvailable=!1,this.actions=new Map,this.middlewares=new Map,this._markNames=new Set,this._measureNames=new Set,this.dispatchQueue=[],this.options=r||{};var o=this.options.history&&!0===this.options.history.undoable;this._state=new t.BehaviorSubject(e),this.state=this._state.asObservable(),this.options.devToolsOptions&&!0===this.options.devToolsOptions.disable||this.setupDevTools(),o&&this.registerHistoryMethods()}return r.prototype.registerMiddleware=function(e,t,r){this.middlewares.set(e,{placement:t,settings:r})},r.prototype.unregisterMiddleware=function(e){this.middlewares.has(e)&&this.middlewares.delete(e)},r.prototype.isMiddlewareRegistered=function(e){return this.middlewares.has(e)},r.prototype.registerAction=function(e,t){if(0===t.length)throw new Error("The reducer is expected to have one or more parameters, where the first will be the present state");this.actions.set(t,{type:e})},r.prototype.unregisterAction=function(e){this.actions.has(e)&&this.actions.delete(e)},r.prototype.isActionRegistered=function(e){return"string"==typeof e?void 0!==Array.from(this.actions).find((function(t){return t[1].type===e})):this.actions.has(e)},r.prototype.resetToState=function(e){this._state.next(e)},r.prototype.dispatch=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var n=this.lookupAction(e);return n?this.queueDispatch([{reducer:n,params:t}]):Promise.reject(new T(e))},r.prototype.pipe=function(e){for(var t=this,r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var o=[],i={dispatch:function(){return t.queueDispatch(o)},pipe:function(r){for(var n=[],a=1;a<arguments.length;a++)n[a-1]=arguments[a];var s=t.lookupAction(r);if(!s)throw new T(e);return o.push({reducer:s,params:n}),i}};return i.pipe.apply(i,p([e],r,!1))},r.prototype.lookupAction=function(e){if("string"==typeof e){var t=Array.from(this.actions).find((function(t){return t[0],t[1].type===e}));if(t)return t[0]}else if(this.actions.has(e))return e},r.prototype.queueDispatch=function(e){var t=this;return new Promise((function(r,n){t.dispatchQueue.push({actions:e,resolve:r,reject:n}),1===t.dispatchQueue.length&&t.handleQueue()}))},r.prototype.handleQueue=function(){return u(this,void 0,void 0,(function(){var e,t;return l(this,(function(r){switch(r.label){case 0:if(!(this.dispatchQueue.length>0))return[3,5];e=this.dispatchQueue[0],r.label=1;case 1:return r.trys.push([1,3,,4]),[4,this.internalDispatch(e.actions)];case 2:return r.sent(),e.resolve(),[3,4];case 3:return t=r.sent(),e.reject(t),[3,4];case 4:this.dispatchQueue.shift(),this.handleQueue(),r.label=5;case 5:return[2]}}))}))},r.prototype.internalDispatch=function(t){return u(this,void 0,void 0,(function(){var r,n,i,a,s,c,u,f,g,y,v,m,b=this;return l(this,(function(l){switch(l.label){case 0:if(r=t.find((function(e){return!b.actions.has(e.reducer)})))throw new T(r.reducer);return this.mark("dispatch-start"),n=t.map((function(e){return{type:b.actions.get(e.reducer).type,params:e.params,reducer:e.reducer}})),i={name:n.map((function(e){return e.type})).join("->"),params:n.reduce((function(e,t){return e.concat(t.params)}),[]),pipedActions:n.map((function(e){return{name:e.type,params:e.params}}))},this.options.logDispatchedActions&&this.logger[w(this.options,"dispatchedActions",e.LogLevel.info)]("Dispatching: ".concat(i.name)),[4,this.executeMiddlewares(this._state.getValue(),e.MiddlewarePlacement.Before,i)];case 1:if(!1===(a=l.sent()))return this.clearMarks(),this.clearMeasures(),[2];s=a,c=0,u=n,l.label=2;case 2:return c<u.length?[4,(f=u[c]).reducer.apply(f,p([s],f.params,!1))]:[3,5];case 3:if(!1===(s=l.sent()))return this.clearMarks(),this.clearMeasures(),[2];if(this.mark("dispatch-after-reducer-"+f.type),!s&&"object"!=typeof s)throw new Error("The reducer has to return a new state");l.label=4;case 4:return c++,[3,2];case 5:return[4,this.executeMiddlewares(s,e.MiddlewarePlacement.After,i)];case 6:return!1===(g=l.sent())?(this.clearMarks(),this.clearMeasures(),[2]):(d(g)&&this.options.history&&this.options.history.limit&&(g=h(g,this.options.history.limit)),this._state.next(g),this.mark("dispatch-end"),this.options.measurePerformance===e.PerformanceMeasurement.StartEnd?(this.measure("startEndDispatchDuration","dispatch-start","dispatch-end"),y=o.PLATFORM.performance.getEntriesByName("startEndDispatchDuration","measure"),this.logger[w(this.options,"performanceLog",e.LogLevel.info)]("Total duration ".concat(y[0].duration," of dispatched action ").concat(i.name,":"),y)):this.options.measurePerformance===e.PerformanceMeasurement.All&&(v=o.PLATFORM.performance.getEntriesByType("mark"),m=v[v.length-1].startTime-v[0].startTime,this.logger[w(this.options,"performanceLog",e.LogLevel.info)]("Total duration ".concat(m," of dispatched action ").concat(i.name,":"),v)),this.clearMarks(),this.clearMeasures(),this.updateDevToolsState({type:i.name,params:i.params},g),[2])}}))}))},r.prototype.executeMiddlewares=function(e,t,r){var n=this;return Array.from(this.middlewares).filter((function(e){return e[1].placement===t})).reduce((function(e,o,i,a){return u(n,void 0,void 0,(function(){var n,i,a,s,c;return l(this,(function(u){switch(u.label){case 0:return u.trys.push([0,5,7,8]),a=(i=o)[0],[4,e];case 1:return[4,a.apply(i,[u.sent(),this._state.getValue(),o[1].settings,r])];case 2:return!1===(n=u.sent())?[2,!1]:(s=n)?[3,4]:[4,e];case 3:s=u.sent(),u.label=4;case 4:return[2,s];case 5:if(c=u.sent(),this.options.propagateError)throw c;return[4,e];case 6:return[2,u.sent()];case 7:return this.mark("dispatch-".concat(t,"-").concat(o[0].name)),[7];case 8:return[2]}}))}))}),e)},r.prototype.setupDevTools=function(){var t=this;o.PLATFORM.global.__REDUX_DEVTOOLS_EXTENSION__&&(this.logger[w(this.options,"devToolsStatus",e.LogLevel.debug)]("DevTools are available"),this.devToolsAvailable=!0,this.devTools=o.PLATFORM.global.__REDUX_DEVTOOLS_EXTENSION__.connect(this.options.devToolsOptions),this.devTools.init(this.initialState),this.devTools.subscribe((function(r){if(t.logger[w(t.options,"devToolsStatus",e.LogLevel.debug)]("DevTools sent change ".concat(r.type)),"ACTION"===r.type&&r.payload){var n=Array.from(t.actions).find((function(e){return e[0].name===r.payload.name})),o=t.lookupAction(r.payload.name)||n&&n[0];if(!o)throw new Error("Tried to remotely dispatch an unregistered action");if(!r.payload.args||r.payload.args.length<1)throw new Error("No action arguments provided");t.dispatch.apply(t,p([o],r.payload.args.slice(1).map((function(e){return JSON.parse(e)})),!1))}else if("DISPATCH"===r.type&&r.payload)switch(r.payload.type){case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return void t._state.next(JSON.parse(r.state));case"COMMIT":return void t.devTools.init(t._state.getValue());case"RESET":return t.devTools.init(t.initialState),void t.resetToState(t.initialState);case"ROLLBACK":var i=JSON.parse(r.state);return t.resetToState(i),void t.devTools.init(i)}})))},r.prototype.updateDevToolsState=function(e,t){this.devToolsAvailable&&this.devTools.send(e,t)},r.prototype.registerHistoryMethods=function(){this.registerAction("jump",f)},r.prototype.mark=function(e){this._markNames.add(e),o.PLATFORM.performance.mark(e)},r.prototype.clearMarks=function(){this._markNames.forEach((function(e){return o.PLATFORM.performance.clearMarks(e)})),this._markNames.clear()},r.prototype.measure=function(e,t,r){this._measureNames.add(e),o.PLATFORM.performance.measure(e,t,r)},r.prototype.clearMeasures=function(){this._measureNames.forEach((function(e){return o.PLATFORM.performance.clearMeasures(e)})),this._measureNames.clear()},r}();var A=function(e){return e.state};e.DEFAULT_LOCAL_STORAGE_KEY=v,e.LoggerIndexed=b,e.Store=S,e.UnregisteredActionError=T,e.applyLimits=h,e.configure=function(e,t){if(!t||!t.initialState)throw new Error("initialState must be provided via options");var r=t.initialState;t&&t.history&&t.history.undoable&&!d(t.initialState)&&(r={past:[],present:t.initialState,future:[]}),delete t.initialState,e.container.registerInstance(S,new S(r,t))},e.connectTo=function(e){var n,o=c({selector:"function"==typeof e?e:A},e);return function(i){var a=i.prototype.created,s="object"==typeof e&&e.setup?i.prototype[e.setup]:i.prototype.bind,u="object"==typeof e&&e.teardown?i.prototype[e.teardown]:i.prototype.unbind;"function"!=typeof a&&void 0!==a||(i.prototype.created=function(e,t){if(n=t.container.get(S),void 0!==a)return a.call(this,e,t)}),i.prototype["object"==typeof e&&e.setup?e.setup:"bind"]=function(){var i,a,u,l=this;if("object"==typeof e&&"string"==typeof e.onChanged&&!(e.onChanged in this))throw new Error("Provided onChanged handler does not exist on target VM");if(this._stateSubscriptions=(a="object"==typeof o.selector,(i={})[o.target||"state"]=o.selector||A,u=i,Object.entries(c({},a?o.selector:u)).map((function(e){var t,r=e[0],n=e[1];return{targets:o.target&&a?[o.target,r]:[r],selector:n,changeHandlers:(t={},t[o.onChanged||""]=1,t["".concat(o.target||r,"Changed")]=o.target?0:1,t.propertyChanged=0,t)}}))).map((function(e){return(o=e.selector,i=n||(n=r.Container.instance.get(S)),a=o(i),a instanceof t.Observable?a:i.state).subscribe((function(t){var r=e.targets.length-1,n=e.targets.reduce((function(e,t){return void 0===e&&(e={}),e[t]}),l);Object.entries(e.changeHandlers).forEach((function(o){var i=o[0],a=o[1];i in l&&l[i].apply(l,[e.targets[r],t,n].slice(a,3))})),e.targets.reduce((function(e,n,o){return e[n]=o===r?t:e[n]||{},e[n]}),l)}));var o,i,a})),s)return s.apply(this,arguments)},i.prototype["object"==typeof e&&e.teardown?e.teardown:"unbind"]=function(){if(this._stateSubscriptions&&Array.isArray(this._stateSubscriptions)&&this._stateSubscriptions.forEach((function(e){e instanceof t.Subscription&&!1===e.closed&&e.unsubscribe()})),u)return u.apply(this,arguments)}}},e.dispatchify=function(e){var t=r.Container.instance.get(S);return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return t.dispatch.apply(t,p([e],r,!1))}},e.executeSteps=function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];return u(this,void 0,void 0,(function(){var n,o,a;return l(this,(function(s){return n=function(e,r){return function(n){t&&(console.group("Step ".concat(r)),console.log(n),console.groupEnd()),e(n)}},o=function(e,t){return function(r){try{e(r)}catch(e){t(e)}}},a=function(e,t){return function(r){e(r),t()}},[2,new Promise((function(t,s){var c=0;r.slice(0,-1).forEach((function(t){e.state.pipe(i.skip(c),i.take(1),i.delay(0)).subscribe(o(n(t,c),s)),c++})),e.state.pipe(i.skip(c),i.take(1)).subscribe(a(o(n(r[r.length-1],c),s),t))}))]}))}))},e.getLogType=w,e.isStateHistory=d,e.jump=f,e.localStorageMiddleware=function(e,t,r){if(o.PLATFORM.global.localStorage){var n=r&&r.key||v;o.PLATFORM.global.localStorage.setItem(n,JSON.stringify(e))}},e.logMiddleware=function(e,t,r){var n=r&&r.logType&&console.hasOwnProperty(r.logType)?r.logType:"log";console[n]("New state: ",e)},e.nextStateHistory=function(e,t){return Object.assign({},e,{past:p(p([],e.past,!0),[e.present],!1),present:t,future:[]})},e.rehydrateFromLocalStorage=function(e,t){if(!o.PLATFORM.global.localStorage)return e;var r=o.PLATFORM.global.localStorage.getItem(t||v);if(!r)return e;try{return JSON.parse(r)}catch(e){}return e}}));
//# sourceMappingURL=/sm/72fa8cc12f5f884961cb39bbfcaf0b8b20a02033973710095980b23d1789334f.map