Comparing version
{ | ||
"name": "delorean.js", | ||
"version": "0.8.6", | ||
"version": "0.8.7", | ||
"homepage": "http://deloreanjs.com", | ||
@@ -5,0 +5,0 @@ "authors": [ |
@@ -1,2 +0,2 @@ | ||
/*! delorean - v0.8.5 - 2014-11-06 */ | ||
/*! delorean - v0.8.6 - 2014-11-29 */ | ||
(function (DeLorean) { | ||
@@ -240,2 +240,3 @@ 'use strict'; | ||
this.recalculate(changedProps); | ||
return this.store[arg1]; | ||
}; | ||
@@ -242,0 +243,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function(DeLorean){"use strict";function a(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function b(a){return"action:"+a}function c(a){return"original:"+a}function d(a){if(null==a)throw'No disaptcher found. The DeLoreanJS mixin requires a "dispatcher" property to be passed to a component, or one of it\'s ancestors.';return a.props.dispatcher?a.props.dispatcher:d(a._owner)}var Dispatcher,Store;if(Dispatcher=function(){function a(a){function b(){for(var b in a)a[b].listener.emit("__rollback")}for(var c in a)a[c].listener.on("rollback",b)}function Dispatcher(b){this.listener=new DeLorean.EventEmitter,this.stores=b,a(Object.keys(b).map(function(a){return b[a]}))}return Dispatcher.prototype.dispatch=function(a,b){var c,d,e=this;c=function(){var a,b=[];for(var c in e.stores){if(a=e.stores[c],!a instanceof Store)throw"Given store is not a store instance";b.push(a)}return b}(),d=this.waitFor(c,a);for(var f in e.stores)e.stores[f].dispatchAction(a,b);return d},Dispatcher.prototype.waitFor=function(a,b){var c,d=this;return c=function(){function c(a){return new DeLorean.Promise(function(b){a.listener.once("change",b)})}var d,e=[];for(var f in a)null!=a[f].store.actions[b]&&(d=c(a[f]),e.push(d));return e}(),DeLorean.Promise.all(c).then(function(){d.listener.emit("change:all")})},Dispatcher.prototype.registerAction=function(a,b){if("function"!=typeof b)throw"Action callback should be a function.";this[a]=b.bind(this.stores)},Dispatcher.prototype.getStore=function(a){if(!this.stores[a])throw"Store "+a+" does not exist.";return this.stores[a].store},Dispatcher.prototype.on=function(){return this.listener.on.apply(this.listener,arguments)},Dispatcher.prototype.off=function(){return this.listener.removeListener.apply(this.listener,arguments)},Dispatcher.prototype.emit=function(){return this.listener.emit.apply(this.listener,arguments)},Dispatcher}(),Store=function(){function Store(a,b){if("object"!=typeof a)throw"Stores should be defined by passing the definition to the constructor";this.listener=new DeLorean.EventEmitter,this.store=a,this.bindActions(),this.buildScheme(),"function"==typeof a.initialize&&a.initialize.apply(this.store,b)}return Store.prototype.set=function(a,b){var c=[];if("object"==typeof a)for(var d in a)c.push(d),this.setValue(d,a[d]);else c.push(a),this.setValue(a,b);this.recalculate(c)},Store.prototype.setValue=function(a,b){var d,e=this.store.scheme;return e&&this.store.scheme[a]?(d=e[a],this.store[a]=b||d.default,"function"==typeof d.calculate&&(this.store[c(a)]=b,this.store[a]=d.calculate.call(this.store,b))):null!=console&&console.warn("Scheme must include the key, "+a+", you are trying to set. "+a+" will NOT be set on the store."),this.store[a]},Store.prototype.formatScheme=function(a){var b,c,d,e={};for(var f in a)b=a[f],c=null,d=null,e[f]={"default":null},c=b&&"object"==typeof b?b.default:b,e[f].default=c,b&&"function"==typeof b.calculate?(d=b.calculate,e[f].deps=b.deps?b.deps:[]):"function"==typeof b&&(d=b),d&&(e[f].calculate=d);return e},Store.prototype.buildScheme=function(){var a,b,d,e,f,g,h=[];if("object"==typeof this.store.scheme){a=this.store.scheme=this.formatScheme(this.store.scheme),e=this.store.__dependencyMap={};for(b in a)d=a[b],this.store[b]=d.default;for(b in a)if(d=a[b],d.calculate){f=d.deps||[];for(var i=0;i<f.length;i++)g=f[i],null==e[g]&&(e[g]=[]),e[g].push(b);this.store[c(b)]=d.default,this.store[b]=d.calculate.call(this.store,d.default),h.push(b)}this.recalculate(h)}},Store.prototype.recalculate=function(a){for(var b,d,e,f=this.store.scheme,g=this.store.__dependencyMap,h=[],i=0;i<a.length;i++)if(d=g[a[i]],null!=d)for(var j=0;j<d.length;j++)e=d[j],-1===h.indexOf(e)&&(b=f[e],this.store[e]=b.calculate.call(this.store,this.store[c(e)]||b.default),h.push(e));h.length>0&&this.recalculate(h),this.listener.emit("change")},Store.prototype.bindActions=function(){var c;this.store.emit=this.listener.emit.bind(this.listener),this.store.emitChange=this.listener.emit.bind(this.listener,"change"),this.store.emitRollback=this.listener.emit.bind(this.listener,"rollback"),this.store.rollback=this.listener.on.bind(this.listener,"__rollback"),this.store.listenChanges=this.listenChanges.bind(this),this.store.set=this.set.bind(this);for(var d in this.store.actions)if(a(this.store.actions,d)){if(c=this.store.actions[d],"function"!=typeof this.store[c])throw"Callback '"+c+"' defined for action '"+d+"' should be a method defined on the store!";this.listener.on(b(d),this.store[c].bind(this.store))}},Store.prototype.dispatchAction=function(a,c){this.listener.emit(b(a),c)},Store.prototype.listenChanges=function(a){var b,c=this;return Object.observe?(b=Array.isArray(a)?Array.observe:Object.observe,void b(a,function(a){c.listener.emit("change",a)})):void console.error("Store#listenChanges method uses Object.observe, you should fire changes manually.")},Store.prototype.onChange=function(a){this.listener.on("change",a)},Store}(),DeLorean.Flux={createStore:function(a){return function(){return new Store(a,arguments)}},createDispatcher:function(b){var c,d,e,f,g;"function"==typeof b.getStores&&(c=b.getStores()),d=new Dispatcher(c||{});for(var h in b)a(b,h)&&"getStores"!==h&&"viewTriggers"!=h&&(e=b[h],d.registerAction(h,e.bind(d)));f=b.viewTriggers;for(var i in f)g=f[i],"function"==typeof d[g]?d.on(i,d[g]):null!=console&&console.warn(g+" should be a method defined on your dispatcher. The "+i+" trigger will not be bound to any method.");return d},define:function(a,b){DeLorean[a]=b}},DeLorean.Dispatcher=Dispatcher,DeLorean.Store=Store,DeLorean.Flux.mixins={storeListener:{trigger:function(){this.__dispatcher.emit.apply(this.__dispatcher,arguments)},componentDidMount:function(){function b(a,b){return function(){var a;e.isMounted()&&e.setState(e.getStoreStates()),e.storeDidChange&&(a=[b].concat(Array.prototype.slice.call(arguments,0)),e.storeDidChange.apply(e,a))}}var c,d,e=this;this.__changeHandlers={};for(d in this.__watchStores)a(this.stores,d)&&(c=this.stores[d],this.__changeHandlers[d]=b(c,d),c.onChange(this.__changeHandlers[d]))},componentWillUnmount:function(){for(var b in this.__changeHandlers)if(a(this.stores,b)){var c=this.stores[b];c.listener.removeListener("change",this.__changeHandlers[b])}},getInitialState:function(){var a,b=this;if(this.__dispatcher=d(this),this.storesDidChange&&this.__dispatcher.on("change:all",function(){b.storesDidChange()}),this.stores=this.__dispatcher.stores,this.__watchStores={},null!=this.watchStores)for(var c=0;c<this.watchStores.length;c++)a=this.watchStores[c],this.__watchStores[a]=this.stores[a];else this.__watchStores=this.stores,null!=console&&null!=Object.keys&&Object.keys(this.stores).length>4&&console.warn('Your component is watching changes on all stores, you may want to define a "watchStores" property in order to only watch stores relevant to this component.');return this.getStoreStates()},getStoreStates:function(){var b,c={stores:{}};for(var d in this.__watchStores)if(a(this.stores,d))if(c.stores[d]={},b=this.__watchStores[d].store,b&&b.getState)c.stores[d]=b.getState();else if("object"==typeof b.scheme){var e=b.scheme;for(var f in e)c.stores[d][f]=b[f]}return c},getStore:function(a){return this.state.stores[a]}}},"undefined"!=typeof module&&"undefined"!=typeof module.exports){var e=require("./requirements");for(var f in e)DeLorean.Flux.define(f,e[f]);module.exports=DeLorean}else"function"==typeof define&&define.amd?define([],function(){return DeLorean}):window.DeLorean=DeLorean}({}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./promise/promise").Promise,e=a("./promise/polyfill").polyfill;c.Promise=d,c.polyfill=e},{"./promise/polyfill":5,"./promise/promise":6}],2:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){e(a,b)}}function e(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&f(g.then)?g.then(d(j),c):e(j,g)})}var e=a("./utils").isArray,f=a("./utils").isFunction;c.all=d},{"./utils":10}],3:[function(a,b,c){(function(a,b){"use strict";function d(){return function(){a.nextTick(g)}}function e(){var a=0,b=new k(g),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function f(){return function(){l.setTimeout(g,1)}}function g(){for(var a=0;a<m.length;a++){var b=m[a],c=b[0],d=b[1];c(d)}m=[]}function h(a,b){var c=m.push([a,b]);1===c&&i()}var i,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof b?b:void 0===this?window:this,m=[];i="undefined"!=typeof a&&"[object process]"==={}.toString.call(a)?d():k?e():f(),c.asap=h}).call(this,a("JkpR2F"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{JkpR2F:12}],4:[function(a,b,c){"use strict";function d(a,b){return 2!==arguments.length?e[a]:void(e[a]=b)}var e={instrument:!1};c.config=e,c.configure=d},{}],5:[function(a,b,c){(function(b){"use strict";function d(){var a;a="undefined"!=typeof b?b:"undefined"!=typeof window&&window.document?window:self;var c="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();c||(a.Promise=e)}var e=a("./promise").Promise,f=a("./utils").isFunction;c.polyfill=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./promise":6,"./utils":10}],6:[function(a,b,c){"use strict";function d(a){if(!q(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof d))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],e(a,this)}function e(a,b){function c(a){j(b,a)}function d(a){l(b,a)}try{a(c,d)}catch(e){d(e)}}function f(a,b,c,d){var e,f,g,h,k=q(c);if(k)try{e=c(d),g=!0}catch(m){h=!0,f=m}else e=d,g=!0;i(b,e)||(k&&g?j(b,e):h?l(b,f):a===y?j(b,e):a===z&&l(b,e))}function g(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+y]=c,e[f+z]=d}function h(a,b){for(var c,d,e=a._subscribers,g=a._detail,h=0;h<e.length;h+=3)c=e[h],d=e[h+b],f(b,c,d,g);a._subscribers=null}function i(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(p(b)&&(d=b.then,q(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?j(a,d):k(a,d)))},function(b){return c?!0:(c=!0,void l(a,b))}),!0}catch(e){return c?!0:(l(a,e),!0)}return!1}function j(a,b){a===b?k(a,b):i(a,b)||k(a,b)}function k(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(m,a))}function l(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(n,a))}function m(a){h(a,a._state=y)}function n(a){h(a,a._state=z)}var o=a("./config").config,p=(a("./config").configure,a("./utils").objectOrFunction),q=a("./utils").isFunction,r=(a("./utils").now,a("./all").all),s=a("./race").race,t=a("./resolve").resolve,u=a("./reject").reject,v=a("./asap").asap;o.async=v;var w=void 0,x=0,y=1,z=2;d.prototype={constructor:d,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;o.async(function(){f(c._state,d,e[c._state-1],c._detail)})}else g(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},d.all=r,d.race=s,d.resolve=t,d.reject=u,c.Promise=d},{"./all":2,"./asap":3,"./config":4,"./race":7,"./reject":8,"./resolve":9,"./utils":10}],7:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var e=a("./utils").isArray;c.race=d},{"./utils":10}],8:[function(a,b,c){"use strict";function d(a){var b=this;return new b(function(b,c){c(a)})}c.reject=d},{}],9:[function(a,b,c){"use strict";function d(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}c.resolve=d},{}],10:[function(a,b,c){"use strict";function d(a){return e(a)||"object"==typeof a&&null!==a}function e(a){return"function"==typeof a}function f(a){return"[object Array]"===Object.prototype.toString.call(a)}var g=Date.now||function(){return(new Date).getTime()};c.objectOrFunction=d,c.isFunction=e,c.isArray=f,c.now=g},{}],11:[function(a,b){function c(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(a){return void 0===a}b.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0,c.defaultMaxListeners=10,c.prototype.setMaxListeners=function(a){if(!e(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},c.prototype.emit=function(a){var b,c,e,h,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||f(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],g(c))return!1;if(d(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(e=arguments.length,h=new Array(e-1),i=1;e>i;i++)h[i-1]=arguments[i];c.apply(this,h)}else if(f(c)){for(e=arguments.length,h=new Array(e-1),i=1;e>i;i++)h[i-1]=arguments[i];for(j=c.slice(),e=j.length,i=0;e>i;i++)j[i].apply(this,h)}return!0},c.prototype.addListener=function(a,b){var e;if(!d(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,d(b.listener)?b.listener:b),this._events[a]?f(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,f(this._events[a])&&!this._events[a].warned){var e;e=g(this._maxListeners)?c.defaultMaxListeners:this._maxListeners,e&&e>0&&this._events[a].length>e&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},c.prototype.on=c.prototype.addListener,c.prototype.once=function(a,b){function c(){this.removeListener(a,c),e||(e=!0,b.apply(this,arguments))}if(!d(b))throw TypeError("listener must be a function");var e=!1;return c.listener=b,this.on(a,c),this},c.prototype.removeListener=function(a,b){var c,e,g,h;if(!d(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],g=c.length,e=-1,c===b||d(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(f(c)){for(h=g;h-->0;)if(c[h]===b||c[h].listener&&c[h].listener===b){e=h;break}if(0>e)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(e,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},c.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],d(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},c.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?d(this._events[a])?[this._events[a]]:this._events[a].slice():[]},c.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?d(a._events[b])?1:a._events[b].length:0}},{}],12:[function(a,b){function c(){}var d=b.exports={};d.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),d.title="browser",d.browser=!0,d.env={},d.argv=[],d.on=c,d.addListener=c,d.once=c,d.off=c,d.removeListener=c,d.removeAllListeners=c,d.emit=c,d.binding=function(){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(){throw new Error("process.chdir is not supported")}},{}],13:[function(a,b){var c;if(b.exports=c={EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise},"undefined"!=typeof DeLorean)for(var d in c)DeLorean.Flux.define(d,c[d])},{"es6-promise":1,events:11}]},{},[13]); | ||
!function(DeLorean){"use strict";function a(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function b(a){return"action:"+a}function c(a){return"original:"+a}function d(a){if(null==a)throw'No disaptcher found. The DeLoreanJS mixin requires a "dispatcher" property to be passed to a component, or one of it\'s ancestors.';return a.props.dispatcher?a.props.dispatcher:d(a._owner)}var Dispatcher,Store;if(Dispatcher=function(){function a(a){function b(){for(var b in a)a[b].listener.emit("__rollback")}for(var c in a)a[c].listener.on("rollback",b)}function Dispatcher(b){this.listener=new DeLorean.EventEmitter,this.stores=b,a(Object.keys(b).map(function(a){return b[a]}))}return Dispatcher.prototype.dispatch=function(a,b){var c,d,e=this;c=function(){var a,b=[];for(var c in e.stores){if(a=e.stores[c],!a instanceof Store)throw"Given store is not a store instance";b.push(a)}return b}(),d=this.waitFor(c,a);for(var f in e.stores)e.stores[f].dispatchAction(a,b);return d},Dispatcher.prototype.waitFor=function(a,b){var c,d=this;return c=function(){function c(a){return new DeLorean.Promise(function(b){a.listener.once("change",b)})}var d,e=[];for(var f in a)null!=a[f].store.actions[b]&&(d=c(a[f]),e.push(d));return e}(),DeLorean.Promise.all(c).then(function(){d.listener.emit("change:all")})},Dispatcher.prototype.registerAction=function(a,b){if("function"!=typeof b)throw"Action callback should be a function.";this[a]=b.bind(this.stores)},Dispatcher.prototype.getStore=function(a){if(!this.stores[a])throw"Store "+a+" does not exist.";return this.stores[a].store},Dispatcher.prototype.on=function(){return this.listener.on.apply(this.listener,arguments)},Dispatcher.prototype.off=function(){return this.listener.removeListener.apply(this.listener,arguments)},Dispatcher.prototype.emit=function(){return this.listener.emit.apply(this.listener,arguments)},Dispatcher}(),Store=function(){function Store(a,b){if("object"!=typeof a)throw"Stores should be defined by passing the definition to the constructor";this.listener=new DeLorean.EventEmitter,this.store=a,this.bindActions(),this.buildScheme(),"function"==typeof a.initialize&&a.initialize.apply(this.store,b)}return Store.prototype.set=function(a,b){var c=[];if("object"==typeof a)for(var d in a)c.push(d),this.setValue(d,a[d]);else c.push(a),this.setValue(a,b);return this.recalculate(c),this.store[a]},Store.prototype.setValue=function(a,b){var d,e=this.store.scheme;return e&&this.store.scheme[a]?(d=e[a],this.store[a]=b||d.default,"function"==typeof d.calculate&&(this.store[c(a)]=b,this.store[a]=d.calculate.call(this.store,b))):null!=console&&console.warn("Scheme must include the key, "+a+", you are trying to set. "+a+" will NOT be set on the store."),this.store[a]},Store.prototype.formatScheme=function(a){var b,c,d,e={};for(var f in a)b=a[f],c=null,d=null,e[f]={"default":null},c=b&&"object"==typeof b?b.default:b,e[f].default=c,b&&"function"==typeof b.calculate?(d=b.calculate,e[f].deps=b.deps?b.deps:[]):"function"==typeof b&&(d=b),d&&(e[f].calculate=d);return e},Store.prototype.buildScheme=function(){var a,b,d,e,f,g,h=[];if("object"==typeof this.store.scheme){a=this.store.scheme=this.formatScheme(this.store.scheme),e=this.store.__dependencyMap={};for(b in a)d=a[b],this.store[b]=d.default;for(b in a)if(d=a[b],d.calculate){f=d.deps||[];for(var i=0;i<f.length;i++)g=f[i],null==e[g]&&(e[g]=[]),e[g].push(b);this.store[c(b)]=d.default,this.store[b]=d.calculate.call(this.store,d.default),h.push(b)}this.recalculate(h)}},Store.prototype.recalculate=function(a){for(var b,d,e,f=this.store.scheme,g=this.store.__dependencyMap,h=[],i=0;i<a.length;i++)if(d=g[a[i]],null!=d)for(var j=0;j<d.length;j++)e=d[j],-1===h.indexOf(e)&&(b=f[e],this.store[e]=b.calculate.call(this.store,this.store[c(e)]||b.default),h.push(e));h.length>0&&this.recalculate(h),this.listener.emit("change")},Store.prototype.bindActions=function(){var c;this.store.emit=this.listener.emit.bind(this.listener),this.store.emitChange=this.listener.emit.bind(this.listener,"change"),this.store.emitRollback=this.listener.emit.bind(this.listener,"rollback"),this.store.rollback=this.listener.on.bind(this.listener,"__rollback"),this.store.listenChanges=this.listenChanges.bind(this),this.store.set=this.set.bind(this);for(var d in this.store.actions)if(a(this.store.actions,d)){if(c=this.store.actions[d],"function"!=typeof this.store[c])throw"Callback '"+c+"' defined for action '"+d+"' should be a method defined on the store!";this.listener.on(b(d),this.store[c].bind(this.store))}},Store.prototype.dispatchAction=function(a,c){this.listener.emit(b(a),c)},Store.prototype.listenChanges=function(a){var b,c=this;return Object.observe?(b=Array.isArray(a)?Array.observe:Object.observe,void b(a,function(a){c.listener.emit("change",a)})):void console.error("Store#listenChanges method uses Object.observe, you should fire changes manually.")},Store.prototype.onChange=function(a){this.listener.on("change",a)},Store}(),DeLorean.Flux={createStore:function(a){return function(){return new Store(a,arguments)}},createDispatcher:function(b){var c,d,e,f,g;"function"==typeof b.getStores&&(c=b.getStores()),d=new Dispatcher(c||{});for(var h in b)a(b,h)&&"getStores"!==h&&"viewTriggers"!=h&&(e=b[h],d.registerAction(h,e.bind(d)));f=b.viewTriggers;for(var i in f)g=f[i],"function"==typeof d[g]?d.on(i,d[g]):null!=console&&console.warn(g+" should be a method defined on your dispatcher. The "+i+" trigger will not be bound to any method.");return d},define:function(a,b){DeLorean[a]=b}},DeLorean.Dispatcher=Dispatcher,DeLorean.Store=Store,DeLorean.Flux.mixins={storeListener:{trigger:function(){this.__dispatcher.emit.apply(this.__dispatcher,arguments)},componentDidMount:function(){function b(a,b){return function(){var a;e.isMounted()&&e.setState(e.getStoreStates()),e.storeDidChange&&(a=[b].concat(Array.prototype.slice.call(arguments,0)),e.storeDidChange.apply(e,a))}}var c,d,e=this;this.__changeHandlers={};for(d in this.__watchStores)a(this.stores,d)&&(c=this.stores[d],this.__changeHandlers[d]=b(c,d),c.onChange(this.__changeHandlers[d]))},componentWillUnmount:function(){for(var b in this.__changeHandlers)if(a(this.stores,b)){var c=this.stores[b];c.listener.removeListener("change",this.__changeHandlers[b])}},getInitialState:function(){var a,b=this;if(this.__dispatcher=d(this),this.storesDidChange&&this.__dispatcher.on("change:all",function(){b.storesDidChange()}),this.stores=this.__dispatcher.stores,this.__watchStores={},null!=this.watchStores)for(var c=0;c<this.watchStores.length;c++)a=this.watchStores[c],this.__watchStores[a]=this.stores[a];else this.__watchStores=this.stores,null!=console&&null!=Object.keys&&Object.keys(this.stores).length>4&&console.warn('Your component is watching changes on all stores, you may want to define a "watchStores" property in order to only watch stores relevant to this component.');return this.getStoreStates()},getStoreStates:function(){var b,c={stores:{}};for(var d in this.__watchStores)if(a(this.stores,d))if(c.stores[d]={},b=this.__watchStores[d].store,b&&b.getState)c.stores[d]=b.getState();else if("object"==typeof b.scheme){var e=b.scheme;for(var f in e)c.stores[d][f]=b[f]}return c},getStore:function(a){return this.state.stores[a]}}},"undefined"!=typeof module&&"undefined"!=typeof module.exports){var e=require("./requirements");for(var f in e)DeLorean.Flux.define(f,e[f]);module.exports=DeLorean}else"function"==typeof define&&define.amd?define([],function(){return DeLorean}):window.DeLorean=DeLorean}({}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./promise/promise").Promise,e=a("./promise/polyfill").polyfill;c.Promise=d,c.polyfill=e},{"./promise/polyfill":5,"./promise/promise":6}],2:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){e(a,b)}}function e(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j<a.length;j++)g=a[j],g&&f(g.then)?g.then(d(j),c):e(j,g)})}var e=a("./utils").isArray,f=a("./utils").isFunction;c.all=d},{"./utils":10}],3:[function(a,b,c){(function(a,b){"use strict";function d(){return function(){a.nextTick(g)}}function e(){var a=0,b=new k(g),c=document.createTextNode("");return b.observe(c,{characterData:!0}),function(){c.data=a=++a%2}}function f(){return function(){l.setTimeout(g,1)}}function g(){for(var a=0;a<m.length;a++){var b=m[a],c=b[0],d=b[1];c(d)}m=[]}function h(a,b){var c=m.push([a,b]);1===c&&i()}var i,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof b?b:void 0===this?window:this,m=[];i="undefined"!=typeof a&&"[object process]"==={}.toString.call(a)?d():k?e():f(),c.asap=h}).call(this,a("JkpR2F"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{JkpR2F:12}],4:[function(a,b,c){"use strict";function d(a,b){return 2!==arguments.length?e[a]:void(e[a]=b)}var e={instrument:!1};c.config=e,c.configure=d},{}],5:[function(a,b,c){(function(b){"use strict";function d(){var a;a="undefined"!=typeof b?b:"undefined"!=typeof window&&window.document?window:self;var c="Promise"in a&&"resolve"in a.Promise&&"reject"in a.Promise&&"all"in a.Promise&&"race"in a.Promise&&function(){var b;return new a.Promise(function(a){b=a}),f(b)}();c||(a.Promise=e)}var e=a("./promise").Promise,f=a("./utils").isFunction;c.polyfill=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./promise":6,"./utils":10}],6:[function(a,b,c){"use strict";function d(a){if(!q(a))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof d))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._subscribers=[],e(a,this)}function e(a,b){function c(a){j(b,a)}function d(a){l(b,a)}try{a(c,d)}catch(e){d(e)}}function f(a,b,c,d){var e,f,g,h,k=q(c);if(k)try{e=c(d),g=!0}catch(m){h=!0,f=m}else e=d,g=!0;i(b,e)||(k&&g?j(b,e):h?l(b,f):a===y?j(b,e):a===z&&l(b,e))}function g(a,b,c,d){var e=a._subscribers,f=e.length;e[f]=b,e[f+y]=c,e[f+z]=d}function h(a,b){for(var c,d,e=a._subscribers,g=a._detail,h=0;h<e.length;h+=3)c=e[h],d=e[h+b],f(b,c,d,g);a._subscribers=null}function i(a,b){var c,d=null;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(p(b)&&(d=b.then,q(d)))return d.call(b,function(d){return c?!0:(c=!0,void(b!==d?j(a,d):k(a,d)))},function(b){return c?!0:(c=!0,void l(a,b))}),!0}catch(e){return c?!0:(l(a,e),!0)}return!1}function j(a,b){a===b?k(a,b):i(a,b)||k(a,b)}function k(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(m,a))}function l(a,b){a._state===w&&(a._state=x,a._detail=b,o.async(n,a))}function m(a){h(a,a._state=y)}function n(a){h(a,a._state=z)}var o=a("./config").config,p=(a("./config").configure,a("./utils").objectOrFunction),q=a("./utils").isFunction,r=(a("./utils").now,a("./all").all),s=a("./race").race,t=a("./resolve").resolve,u=a("./reject").reject,v=a("./asap").asap;o.async=v;var w=void 0,x=0,y=1,z=2;d.prototype={constructor:d,_state:void 0,_detail:void 0,_subscribers:void 0,then:function(a,b){var c=this,d=new this.constructor(function(){});if(this._state){var e=arguments;o.async(function(){f(c._state,d,e[c._state-1],c._detail)})}else g(this,d,a,b);return d},"catch":function(a){return this.then(null,a)}},d.all=r,d.race=s,d.resolve=t,d.reject=u,c.Promise=d},{"./all":2,"./asap":3,"./config":4,"./race":7,"./reject":8,"./resolve":9,"./utils":10}],7:[function(a,b,c){"use strict";function d(a){var b=this;if(!e(a))throw new TypeError("You must pass an array to race.");return new b(function(b,c){for(var d,e=0;e<a.length;e++)d=a[e],d&&"function"==typeof d.then?d.then(b,c):b(d)})}var e=a("./utils").isArray;c.race=d},{"./utils":10}],8:[function(a,b,c){"use strict";function d(a){var b=this;return new b(function(b,c){c(a)})}c.reject=d},{}],9:[function(a,b,c){"use strict";function d(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=this;return new b(function(b){b(a)})}c.resolve=d},{}],10:[function(a,b,c){"use strict";function d(a){return e(a)||"object"==typeof a&&null!==a}function e(a){return"function"==typeof a}function f(a){return"[object Array]"===Object.prototype.toString.call(a)}var g=Date.now||function(){return(new Date).getTime()};c.objectOrFunction=d,c.isFunction=e,c.isArray=f,c.now=g},{}],11:[function(a,b){function c(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(a){return void 0===a}b.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0,c.defaultMaxListeners=10,c.prototype.setMaxListeners=function(a){if(!e(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},c.prototype.emit=function(a){var b,c,e,h,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||f(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],g(c))return!1;if(d(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(e=arguments.length,h=new Array(e-1),i=1;e>i;i++)h[i-1]=arguments[i];c.apply(this,h)}else if(f(c)){for(e=arguments.length,h=new Array(e-1),i=1;e>i;i++)h[i-1]=arguments[i];for(j=c.slice(),e=j.length,i=0;e>i;i++)j[i].apply(this,h)}return!0},c.prototype.addListener=function(a,b){var e;if(!d(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,d(b.listener)?b.listener:b),this._events[a]?f(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,f(this._events[a])&&!this._events[a].warned){var e;e=g(this._maxListeners)?c.defaultMaxListeners:this._maxListeners,e&&e>0&&this._events[a].length>e&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},c.prototype.on=c.prototype.addListener,c.prototype.once=function(a,b){function c(){this.removeListener(a,c),e||(e=!0,b.apply(this,arguments))}if(!d(b))throw TypeError("listener must be a function");var e=!1;return c.listener=b,this.on(a,c),this},c.prototype.removeListener=function(a,b){var c,e,g,h;if(!d(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],g=c.length,e=-1,c===b||d(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(f(c)){for(h=g;h-->0;)if(c[h]===b||c[h].listener&&c[h].listener===b){e=h;break}if(0>e)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(e,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},c.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],d(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},c.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?d(this._events[a])?[this._events[a]]:this._events[a].slice():[]},c.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?d(a._events[b])?1:a._events[b].length:0}},{}],12:[function(a,b){function c(){}var d=b.exports={};d.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),d.title="browser",d.browser=!0,d.env={},d.argv=[],d.on=c,d.addListener=c,d.once=c,d.off=c,d.removeListener=c,d.removeAllListeners=c,d.emit=c,d.binding=function(){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(){throw new Error("process.chdir is not supported")}},{}],13:[function(a,b){var c;if(b.exports=c={EventEmitter:a("events").EventEmitter,Promise:a("es6-promise").Promise},"undefined"!=typeof DeLorean)for(var d in c)DeLorean.Flux.define(d,c[d])},{"es6-promise":1,events:11}]},{},[13]); | ||
//# sourceMappingURL=delorean.min.js.map |
@@ -15,3 +15,3 @@ # Dispatchers | ||
`state` of the dispatcher's stores. Small apps generally only require a single | ||
dispatcher, but it may be desirable to use multiple dispathcers in a larger app, | ||
dispatcher, but it may be desirable to use multiple dispatchers in a larger app, | ||
each responsible for data flows in a different section or module. | ||
@@ -18,0 +18,0 @@ |
@@ -47,3 +47,3 @@ # Views (or Components) | ||
that the **`Flux.mixins.storeListener`** will automatically update your component's `state` and force | ||
a render, so it is not required that you define these methods to peform routine re-renders. | ||
a render, so it is not required that you define these methods to perform routine re-renders. | ||
@@ -74,3 +74,3 @@ ```js | ||
In larger applicaitons, it may become inefficient to watch all stores for changes. The `watchStores` property | ||
In larger applications, it may become inefficient to watch all stores for changes. The `watchStores` property | ||
is an array, defined on your component, containing the names of stores you want the component to watch for changes. | ||
@@ -77,0 +77,0 @@ This property is optional, and when omitted, all stores associated with the passed `dispatcher` will be watched. |
@@ -17,2 +17,3 @@ /** @jsx React.DOM */ | ||
default: 'woot', | ||
deps: ['firstname', 'surname'], | ||
calculate: function (value) { | ||
@@ -222,6 +223,6 @@ return value.toUpperCase() + ' ' + this.firstname; | ||
return React.DOM.div(null, | ||
React.DOM.span(null, this.dispatcher.getStore('todoStore').fullname), | ||
React.DOM.span(null, this.getStore('todoStore').fullname), | ||
TodoListView(null), | ||
TodoFormView(null), | ||
React.DOM.span(null, "There are ", this.dispatcher.getStore('todoStore').todos.length, " todos.") | ||
React.DOM.span(null, "There are ", this.getStore('todoStore').todos.length, " todos.") | ||
) | ||
@@ -228,0 +229,0 @@ } |
@@ -17,2 +17,3 @@ /** @jsx React.DOM */ | ||
default: 'woot', | ||
deps: ['firstname', 'surname'], | ||
calculate: function (value) { | ||
@@ -222,6 +223,6 @@ return value.toUpperCase() + ' ' + this.firstname; | ||
return <div> | ||
<span>{this.dispatcher.getStore('todoStore').fullname}</span> | ||
<span>{this.getStore('todoStore').fullname}</span> | ||
<TodoListView /> | ||
<TodoFormView /> | ||
<span>There are {this.dispatcher.getStore('todoStore').todos.length} todos.</span> | ||
<span>There are {this.getStore('todoStore').todos.length} todos.</span> | ||
</div> | ||
@@ -228,0 +229,0 @@ } |
{ | ||
"name": "delorean", | ||
"version": "0.8.6", | ||
"version": "0.8.7", | ||
"description": "Flux Library", | ||
@@ -10,2 +10,7 @@ "main": "src/delorean.js", | ||
"author": "Fatih Kadir Akin", | ||
"homepage": "http://deloreanjs.com", | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/deloreanjs/delorean.git" | ||
}, | ||
"license": "MIT", | ||
@@ -12,0 +17,0 @@ "devDependencies": { |
@@ -180,1 +180,6 @@ # DeLorean.js | ||
The **flux capacitor** was the core component of Doctor Emmett Brown's **DeLorean time machine** | ||
## Links about DeLorean.js | ||
- [http://dailyjs.com/2014/08/19/delorean-cash/](http://dailyjs.com/2014/08/19/delorean-cash/) | ||
- [https://reactjsnews.com/the-state-of-flux/](https://reactjsnews.com/the-state-of-flux/) |
@@ -239,2 +239,3 @@ (function (DeLorean) { | ||
this.recalculate(changedProps); | ||
return this.store[arg1]; | ||
}; | ||
@@ -241,0 +242,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
2288223
0.74%39283
0.3%2
-33.33%185
2.78%0
-100%188
1.08%