yano-backbone-rails 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1 @@
1
- !function(a,b){if("function"==typeof define&&define.amd)define(["backbone","underscore","backbone.wreqr","backbone.babysitter"],function(c,d){return a.Marionette=a.Mn=b(a,c,d)});else if("undefined"!=typeof exports){var c=require("backbone"),d=require("underscore");require("backbone.wreqr"),require("backbone.babysitter");module.exports=b(a,c,d)}else a.Marionette=a.Mn=b(a,a.Backbone,a._)}(this,function(a,b,c){"use strict";var d=a.Marionette,e=a.Mn,f=b.Marionette={};f.VERSION="2.4.7",f.noConflict=function(){return a.Marionette=d,a.Mn=e,this},f.Deferred=b.$.Deferred,f.FEATURES={},f.isEnabled=function(a){return!!f.FEATURES[a]},f.extend=b.Model.extend,f.isNodeAttached=function(a){return b.$.contains(document.documentElement,a)},f.mergeOptions=function(a,b){a&&c.extend(this,c.pick(a,b))},f.getOption=function(a,b){return a&&b?a.options&&void 0!==a.options[b]?a.options[b]:a[b]:void 0},f.proxyGetOption=function(a){return f.getOption(this,a)},f._getValue=function(a,b,d){return c.isFunction(a)&&(a=d?a.apply(b,d):a.call(b)),a},f.normalizeMethods=function(a){return c.reduce(a,function(a,b,d){return c.isFunction(b)||(b=this[b]),b&&(a[d]=b),a},{},this)},f.normalizeUIString=function(a,b){return a.replace(/@ui\.[a-zA-Z-_$0-9]*/g,function(a){return b[a.slice(4)]})},f.normalizeUIKeys=function(a,b){return c.reduce(a,function(a,c,d){var e=f.normalizeUIString(d,b);return a[e]=c,a},{})},f.normalizeUIValues=function(a,b,d){return c.each(a,function(e,g){c.isString(e)?a[g]=f.normalizeUIString(e,b):c.isObject(e)&&c.isArray(d)&&(c.extend(e,f.normalizeUIValues(c.pick(e,d),b)),c.each(d,function(a){var d=e[a];c.isString(d)&&(e[a]=f.normalizeUIString(d,b))}))}),a},f.actAsCollection=function(a,b){var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];c.each(d,function(d){a[d]=function(){var a=c.values(c.result(this,b)),e=[a].concat(c.toArray(arguments));return c[d].apply(c,e)}})};var g=f.deprecate=function(a,b){c.isObject(a)&&(a=a.prev+" is going to be removed in the future. Please use "+a.next+" instead."+(a.url?" See: "+a.url:"")),void 0!==b&&b||g._cache[a]||(g._warn("Deprecation warning: "+a),g._cache[a]=!0)};g._console="undefined"!=typeof console?console:{},g._warn=function(){var a=g._console.warn||g._console.log||function(){};return a.apply(g._console,arguments)},g._cache={},f._triggerMethod=function(){function a(a,b,c){return c.toUpperCase()}var b=/(^|:)(\w)/gi;return function(d,e,f){var g=arguments.length<3;g&&(f=e,e=f[0]);var h,i="on"+e.replace(b,a),j=d[i];return c.isFunction(j)&&(h=j.apply(d,g?c.rest(f):f)),c.isFunction(d.trigger)&&(g+f.length>1?d.trigger.apply(d,g?f:[e].concat(c.drop(f,0))):d.trigger(e)),h}}(),f.triggerMethod=function(a){return f._triggerMethod(this,arguments)},f.triggerMethodOn=function(a){var b=c.isFunction(a.triggerMethod)?a.triggerMethod:f.triggerMethod;return b.apply(a,c.rest(arguments))},f.MonitorDOMRefresh=function(a){function b(){a._isShown=!0,d()}function c(){a._isRendered=!0,d()}function d(){a._isShown&&a._isRendered&&f.isNodeAttached(a.el)&&f.triggerMethodOn(a,"dom:refresh",a)}a._isDomRefreshMonitored||(a._isDomRefreshMonitored=!0,a.on({show:b,render:c}))},function(a){function b(b,d,e,f){var g=f.split(/\s+/);c.each(g,function(c){var f=b[c];if(!f)throw new a.Error('Method "'+c+'" was configured as an event handler, but does not exist.');b.listenTo(d,e,f)})}function d(a,b,c,d){a.listenTo(b,c,d)}function e(a,b,d,e){var f=e.split(/\s+/);c.each(f,function(c){var e=a[c];a.stopListening(b,d,e)})}function f(a,b,c,d){a.stopListening(b,c,d)}function g(b,d,e,f,g){if(d&&e){if(!c.isObject(e))throw new a.Error({message:"Bindings must be an object or function.",url:"marionette.functions.html#marionettebindentityevents"});e=a._getValue(e,b),c.each(e,function(a,e){c.isFunction(a)?f(b,d,e,a):g(b,d,e,a)})}}a.bindEntityEvents=function(a,c,e){g(a,c,e,d,b)},a.unbindEntityEvents=function(a,b,c){g(a,b,c,f,e)},a.proxyBindEntityEvents=function(b,c){return a.bindEntityEvents(this,b,c)},a.proxyUnbindEntityEvents=function(b,c){return a.unbindEntityEvents(this,b,c)}}(f);var h=["description","fileName","lineNumber","name","message","number"];return f.Error=f.extend.call(Error,{urlRoot:"http://marionettejs.com/docs/v"+f.VERSION+"/",constructor:function(a,b){c.isObject(a)?(b=a,a=b.message):b||(b={});var d=Error.call(this,a);c.extend(this,c.pick(d,h),c.pick(b,h)),this.captureStackTrace(),b.url&&(this.url=this.urlRoot+b.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,f.Error)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}}),f.Error.extend=f.extend,f.Callbacks=function(){this._deferred=f.Deferred(),this._callbacks=[]},c.extend(f.Callbacks.prototype,{add:function(a,b){var d=c.result(this._deferred,"promise");this._callbacks.push({cb:a,ctx:b}),d.then(function(c){b&&(c.context=b),a.call(c.context,c.options)})},run:function(a,b){this._deferred.resolve({options:a,context:b})},reset:function(){var a=this._callbacks;this._deferred=f.Deferred(),this._callbacks=[],c.each(a,function(a){this.add(a.cb,a.ctx)},this)}}),f.Controller=function(a){this.options=a||{},c.isFunction(this.initialize)&&this.initialize(this.options)},f.Controller.extend=f.extend,c.extend(f.Controller.prototype,b.Events,{destroy:function(){return f._triggerMethod(this,"before:destroy",arguments),f._triggerMethod(this,"destroy",arguments),this.stopListening(),this.off(),this},triggerMethod:f.triggerMethod,mergeOptions:f.mergeOptions,getOption:f.proxyGetOption}),f.Object=function(a){this.options=c.extend({},c.result(this,"options"),a),this.initialize.apply(this,arguments)},f.Object.extend=f.extend,c.extend(f.Object.prototype,b.Events,{initialize:function(){},destroy:function(a){return a=a||{},this.triggerMethod("before:destroy",a),this.triggerMethod("destroy",a),this.stopListening(),this},triggerMethod:f.triggerMethod,mergeOptions:f.mergeOptions,getOption:f.proxyGetOption,bindEntityEvents:f.proxyBindEntityEvents,unbindEntityEvents:f.proxyUnbindEntityEvents}),f.Region=f.Object.extend({constructor:function(a){if(this.options=a||{},this.el=this.getOption("el"),this.el=this.el instanceof b.$?this.el[0]:this.el,!this.el)throw new f.Error({name:"NoElError",message:'An "el" must be specified for a region.'});this.$el=this.getEl(this.el),f.Object.call(this,a)},show:function(a,b){if(this._ensureElement()){this._ensureViewIsIntact(a),f.MonitorDOMRefresh(a);var d=b||{},e=a!==this.currentView,g=!!d.preventDestroy,h=!!d.forceShow,i=!!this.currentView,j=e&&!g,k=e||h;if(i&&this.triggerMethod("before:swapOut",this.currentView,this,b),this.currentView&&e&&delete this.currentView._parent,j?this.empty():i&&k&&this.currentView.off("destroy",this.empty,this),k){a.once("destroy",this.empty,this),a._parent=this,this._renderView(a),i&&this.triggerMethod("before:swap",a,this,b),this.triggerMethod("before:show",a,this,b),f.triggerMethodOn(a,"before:show",a,this,b),i&&this.triggerMethod("swapOut",this.currentView,this,b);var l=f.isNodeAttached(this.el),m=[],n=c.extend({triggerBeforeAttach:this.triggerBeforeAttach,triggerAttach:this.triggerAttach},d);return l&&n.triggerBeforeAttach&&(m=this._displayedViews(a),this._triggerAttach(m,"before:")),this.attachHtml(a),this.currentView=a,l&&n.triggerAttach&&(m=this._displayedViews(a),this._triggerAttach(m)),i&&this.triggerMethod("swap",a,this,b),this.triggerMethod("show",a,this,b),f.triggerMethodOn(a,"show",a,this,b),this}return this}},triggerBeforeAttach:!0,triggerAttach:!0,_triggerAttach:function(a,b){var d=(b||"")+"attach";c.each(a,function(a){f.triggerMethodOn(a,d,a,this)},this)},_displayedViews:function(a){return c.union([a],c.result(a,"_getNestedViews")||[])},_renderView:function(a){a.supportsRenderLifecycle||f.triggerMethodOn(a,"before:render",a),a.render(),a.supportsRenderLifecycle||f.triggerMethodOn(a,"render",a)},_ensureElement:function(){if(c.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),!this.$el||0===this.$el.length){if(this.getOption("allowMissingEl"))return!1;throw new f.Error('An "el" '+this.$el.selector+" must exist in DOM")}return!0},_ensureViewIsIntact:function(a){if(!a)throw new f.Error({name:"ViewNotValid",message:"The view passed is undefined and therefore invalid. You must pass a view instance to show."});if(a.isDestroyed)throw new f.Error({name:"ViewDestroyedError",message:'View (cid: "'+a.cid+'") has already been destroyed and cannot be used.'})},getEl:function(a){return b.$(a,f._getValue(this.options.parentEl,this))},attachHtml:function(a){this.$el.contents().detach(),this.el.appendChild(a.el)},empty:function(a){var b=this.currentView,c=a||{},d=!!c.preventDestroy;return b?(b.off("destroy",this.empty,this),this.triggerMethod("before:empty",b),d||this._destroyView(),this.triggerMethod("empty",b),delete this.currentView,d&&this.$el.contents().detach(),this):this},_destroyView:function(){var a=this.currentView;a.isDestroyed||(a.supportsDestroyLifecycle||f.triggerMethodOn(a,"before:destroy",a),a.destroy?a.destroy():(a.remove(),a.isDestroyed=!0),a.supportsDestroyLifecycle||f.triggerMethodOn(a,"destroy",a))},attachView:function(a){return this.currentView&&delete this.currentView._parent,a._parent=this,this.currentView=a,this},hasView:function(){return!!this.currentView},reset:function(){return this.empty(),this.$el&&(this.el=this.$el.selector),delete this.$el,this}},{buildRegion:function(a,b){if(c.isString(a))return this._buildRegionFromSelector(a,b);if(a.selector||a.el||a.regionClass)return this._buildRegionFromObject(a,b);if(c.isFunction(a))return this._buildRegionFromRegionClass(a);throw new f.Error({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromSelector:function(a,b){return new b({el:a})},_buildRegionFromObject:function(a,b){var d=a.regionClass||b,e=c.omit(a,"selector","regionClass");return a.selector&&!e.el&&(e.el=a.selector),new d(e)},_buildRegionFromRegionClass:function(a){return new a}}),f.RegionManager=f.Controller.extend({constructor:function(a){this._regions={},this.length=0,f.Controller.call(this,a),this.addRegions(this.getOption("regions"))},addRegions:function(a,b){return a=f._getValue(a,this,arguments),c.reduce(a,function(a,d,e){return c.isString(d)&&(d={selector:d}),d.selector&&(d=c.defaults({},d,b)),a[e]=this.addRegion(e,d),a},{},this)},addRegion:function(a,b){var c;return c=b instanceof f.Region?b:f.Region.buildRegion(b,f.Region),this.triggerMethod("before:add:region",a,c),c._parent=this,this._store(a,c),this.triggerMethod("add:region",a,c),c},get:function(a){return this._regions[a]},getRegions:function(){return c.clone(this._regions)},removeRegion:function(a){var b=this._regions[a];return this._remove(a,b),b},removeRegions:function(){var a=this.getRegions();return c.each(this._regions,function(a,b){this._remove(b,a)},this),a},emptyRegions:function(){var a=this.getRegions();return c.invoke(a,"empty"),a},destroy:function(){return this.removeRegions(),f.Controller.prototype.destroy.apply(this,arguments)},_store:function(a,b){this._regions[a]||this.length++,this._regions[a]=b},_remove:function(a,b){this.triggerMethod("before:remove:region",a,b),b.empty(),b.stopListening(),delete b._parent,delete this._regions[a],this.length--,this.triggerMethod("remove:region",a,b)}}),f.actAsCollection(f.RegionManager.prototype,"_regions"),f.TemplateCache=function(a){this.templateId=a},c.extend(f.TemplateCache,{templateCaches:{},get:function(a,b){var c=this.templateCaches[a];return c||(c=new f.TemplateCache(a),this.templateCaches[a]=c),c.load(b)},clear:function(){var a,b=c.toArray(arguments),d=b.length;if(d>0)for(a=0;d>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(f.TemplateCache.prototype,{load:function(a){if(this.compiledTemplate)return this.compiledTemplate;var b=this.loadTemplate(this.templateId,a);return this.compiledTemplate=this.compileTemplate(b,a),this.compiledTemplate},loadTemplate:function(a,c){var d=b.$(a);if(!d.length)throw new f.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return d.html()},compileTemplate:function(a,b){return c.template(a,b)}}),f.Renderer={render:function(a,b){if(!a)throw new f.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var d=c.isFunction(a)?a:f.TemplateCache.get(a);return d(b)}},f.View=b.View.extend({isDestroyed:!1,supportsRenderLifecycle:!0,supportsDestroyLifecycle:!0,constructor:function(a){this.render=c.bind(this.render,this),a=f._getValue(a,this),this.options=c.extend({},c.result(this,"options"),a),this._behaviors=f.Behaviors(this),b.View.call(this,this.options),f.MonitorDOMRefresh(this)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,c.rest(arguments))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return b=f._getValue(b,this),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"_uiBindings");return f.normalizeUIKeys(a,b||c.result(this,"ui"))},normalizeUIValues:function(a,b){var d=c.result(this,"ui"),e=c.result(this,"_uiBindings");return f.normalizeUIValues(a,e||d,b)},configureTriggers:function(){if(this.triggers){var a=this.normalizeUIKeys(c.result(this,"triggers"));return c.reduce(a,function(a,b,c){return a[c]=this._buildViewTrigger(b),a},{},this)}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.bindEntityEvents(this.model,a.getOption("modelEvents")),a.bindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(a){var d=f._getValue(a||this.events,this);d=this.normalizeUIKeys(d),c.isUndefined(a)&&(this.events=d);var e={},g=c.result(this,"behaviorEvents")||{},h=this.configureTriggers(),i=c.result(this,"behaviorTriggers")||{};c.extend(e,g,d,h,i),b.View.prototype.delegateEvents.call(this,e)},undelegateEvents:function(){return b.View.prototype.undelegateEvents.apply(this,arguments),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.unbindEntityEvents(this.model,a.getOption("modelEvents")),a.unbindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new f.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(this.isDestroyed)return this;var a=c.toArray(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.isRendered=!1,this.remove(),c.invoke(this._behaviors,"destroy",a),this},bindUIElements:function(){this._bindUIElements(),c.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(a,function(a,b){this.ui[b]=this.$(a)},this)}},unbindUIElements:function(){this._unbindUIElements(),c.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(a){var b=c.defaults({},a,{preventDefault:!0,stopPropagation:!0}),d=c.isObject(a)?b.event:a;return function(a){a&&(a.preventDefault&&b.preventDefault&&a.preventDefault(),a.stopPropagation&&b.stopPropagation&&a.stopPropagation());var c={view:this,model:this.model,collection:this.collection};this.triggerMethod(d,c)}},setElement:function(){var a=b.View.prototype.setElement.apply(this,arguments);return c.invoke(this._behaviors,"proxyViewProperties",this),a},triggerMethod:function(){var a=f._triggerMethod(this,arguments);return this._triggerEventOnBehaviors(arguments),this._triggerEventOnParentLayout(arguments[0],c.rest(arguments)),a},_triggerEventOnBehaviors:function(a){for(var b=f._triggerMethod,c=this._behaviors,d=0,e=c&&c.length;e>d;d++)b(c[d],a)},_triggerEventOnParentLayout:function(a,b){var d=this._parentLayoutView();if(d){var e=f.getOption(d,"childViewEventPrefix"),g=e+":"+a,h=[this].concat(b);f._triggerMethod(d,g,h);var i=f.getOption(d,"childEvents");i=f._getValue(i,d);var j=d.normalizeMethods(i);j&&c.isFunction(j[a])&&j[a].apply(d,h)}},_getImmediateChildren:function(){return[]},_getNestedViews:function(){var a=this._getImmediateChildren();return a.length?c.reduce(a,function(a,b){return b._getNestedViews?a.concat(b._getNestedViews()):a},a):a},_parentLayoutView:function(){for(var a=this._parent;a;){if(a instanceof f.LayoutView)return a;a=a._parent}},normalizeMethods:f.normalizeMethods,mergeOptions:f.mergeOptions,getOption:f.proxyGetOption,bindEntityEvents:f.proxyBindEntityEvents,unbindEntityEvents:f.proxyUnbindEntityEvents}),f.ItemView=f.View.extend({constructor:function(){f.View.apply(this,arguments)},serializeData:function(){if(!this.model&&!this.collection)return{};var a=[this.model||this.collection];return arguments.length&&a.push.apply(a,arguments),this.model?this.serializeModel.apply(this,a):{items:this.serializeCollection.apply(this,a)}},serializeCollection:function(a){return a.toJSON.apply(a,c.rest(arguments))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.isRendered=!0,this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){if(!a)throw new f.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var b=this.mixinTemplateHelpers(this.serializeData()),c=f.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this}}),f.CollectionView=f.View.extend({childViewEventPrefix:"childview",sort:!0,constructor:function(a){this.once("render",this._initialEvents),this._initChildViewStorage(),f.View.apply(this,arguments),this.on({"before:show":this._onBeforeShowCalled,show:this._onShowCalled,"before:attach":this._onBeforeAttachCalled,attach:this._onAttachCalled}),this.initRenderBuffer()},initRenderBuffer:function(){this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){var a,b=this._isShown&&f.isNodeAttached(this.el);this.isBuffering=!1,this._isShown&&this._triggerMethodMany(this._bufferedChildren,this,"before:show"),b&&this._triggerBeforeAttach&&(a=this._getNestedViews(),this._triggerMethodMany(a,this,"before:attach")),this.attachBuffer(this,this._createBuffer()),b&&this._triggerAttach&&(a=this._getNestedViews(),this._triggerMethodMany(a,this,"attach")),this._isShown&&this._triggerMethodMany(this._bufferedChildren,this,"show"),this.initRenderBuffer()},_triggerMethodMany:function(a,b,d){var e=c.drop(arguments,3);c.each(a,function(a){f.triggerMethodOn.apply(a,[a,d,a,b].concat(e))})},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.getOption("sort")&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a,b,d){var e=void 0!==d.at&&(d.index||b.indexOf(a));if((this.getOption("filter")||e===!1)&&(e=c.indexOf(this._filteredSortedModels(e),a)),this._shouldAddChild(a,e)){this.destroyEmptyView();var f=this.getChildView(a);this.addChild(a,f,e)}},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},_onBeforeShowCalled:function(){this._triggerBeforeAttach=this._triggerAttach=!1,this.children.each(function(a){f.triggerMethodOn(a,"before:show",a)})},_onShowCalled:function(){this.children.each(function(a){f.triggerMethodOn(a,"show",a)})},_onBeforeAttachCalled:function(){this._triggerBeforeAttach=!0},_onAttachCalled:function(){this._triggerAttach=!0},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.isRendered=!0,this.triggerMethod("render",this),this},reorder:function(){var a=this.children,b=this._filteredSortedModels();if(!b.length&&this._showingEmptyView)return this;var d=c.some(b,function(b){return!a.findByModel(b)});if(d)this.render();else{var e=c.map(b,function(b,c){var d=a.findByModel(b);return d._index=c,d.el}),f=a.filter(function(a){return!c.contains(e,a.el)});this.triggerMethod("before:reorder"),this._appendReorderedChildren(e),c.each(f,this.removeChildView,this),this.checkEmpty(),this.triggerMethod("reorder")}},resortView:function(){f.getOption(this,"reorderOnSort")?this.reorder():this.render()},_sortViews:function(){var a=this._filteredSortedModels(),b=c.find(a,function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);b&&this.resortView()},_emptyViewIndex:-1,_appendReorderedChildren:function(a){this.$el.append(a)},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren({checkEmpty:!1}),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this),this.children.isEmpty()&&this.getOption("filter")&&this.showEmptyView())},showCollection:function(){var a,b=this._filteredSortedModels();c.each(b,function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},_filteredSortedModels:function(a){var b=this.getViewComparator(),d=this.collection.models;if(a=Math.min(Math.max(a,0),d.length-1),b){var e;a&&(e=d[a],d=d.slice(0,a).concat(d.slice(a+1))),d=this._sortModelsBy(d,b),e&&d.splice(a,0,e)}return this.getOption("filter")&&(d=c.filter(d,function(a,b){return this._shouldAddChild(a,b)},this)),d},_sortModelsBy:function(a,b){return"string"==typeof b?c.sortBy(a,function(a){return a.get(b)},this):1===b.length?c.sortBy(a,b,this):a.sort(c.bind(b,this))},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d,e=this._isShown&&!this.isBuffering&&f.isNodeAttached(this.el),g=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(g)&&(g=g.call(this,a,this._emptyViewIndex));var h=this.buildChildView(a,b,g);h._parent=this,this.proxyChildEvents(h),h.once("render",function(){this._isShown&&f.triggerMethodOn(h,"before:show",h),e&&this._triggerBeforeAttach&&(d=this._getViewAndNested(h),this._triggerMethodMany(d,this,"before:attach"))},this),this.children.add(h),this.renderChildView(h,this._emptyViewIndex),e&&this._triggerAttach&&(d=this._getViewAndNested(h),this._triggerMethodMany(d,this,"attach")),this._isShown&&f.triggerMethodOn(h,"show",h)},getChildView:function(a){var b=this.getOption("childView");if(!b)throw new f.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return b},addChild:function(a,b,c){var d=this.getOption("childViewOptions");d=f._getValue(d,this,[a,c]);var e=this.buildChildView(a,b,d);return this._updateIndices(e,!0,c),this.triggerMethod("before:add:child",e),this._addChildView(e,c),this.triggerMethod("add:child",e),e._parent=this,e},_updateIndices:function(a,b,c){this.getOption("sort")&&(b&&(a._index=c),this.children.each(function(c){c._index>=a._index&&(c._index+=b?1:-1)}))},_addChildView:function(a,b){var c,d=this._isShown&&!this.isBuffering&&f.isNodeAttached(this.el);this.proxyChildEvents(a),a.once("render",function(){this._isShown&&!this.isBuffering&&f.triggerMethodOn(a,"before:show",a),d&&this._triggerBeforeAttach&&(c=this._getViewAndNested(a),this._triggerMethodMany(c,this,"before:attach"))},this),this.children.add(a),this.renderChildView(a,b),d&&this._triggerAttach&&(c=this._getViewAndNested(a),this._triggerMethodMany(c,this,"attach")),this._isShown&&!this.isBuffering&&f.triggerMethodOn(a,"show",a)},renderChildView:function(a,b){return a.supportsRenderLifecycle||f.triggerMethodOn(a,"before:render",a),a.render(),a.supportsRenderLifecycle||f.triggerMethodOn(a,"render",a),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d),g=new b(e);return f.MonitorDOMRefresh(g),g},removeChildView:function(a){return a?(this.triggerMethod("before:remove:child",a),a.supportsDestroyLifecycle||f.triggerMethodOn(a,"before:destroy",a),a.destroy?a.destroy():a.remove(),a.supportsDestroyLifecycle||f.triggerMethodOn(a,"destroy",a),delete a._parent,this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1),a):a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},_createBuffer:function(){var a=document.createDocumentFragment();return c.each(this._bufferedChildren,function(b){a.appendChild(b.el)}),a},attachHtml:function(a,b,c){a.isBuffering?a._bufferedChildren.splice(c,0,b):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.getOption("sort")&&b<this.children.length-1;return d&&(c=this.children.find(function(a){return a._index===b+1})),c?(c.$el.before(a.el),!0):!1},_insertAfter:function(a){this.$el.append(a.el)},_initChildViewStorage:function(){this.children=new b.ChildViewContainer},destroy:function(){return this.isDestroyed?this:(this.triggerMethod("before:destroy:collection"),this.destroyChildren({checkEmpty:!1}),this.triggerMethod("destroy:collection"),f.View.prototype.destroy.apply(this,arguments))},destroyChildren:function(a){var b=a||{},d=!0,e=this.children.map(c.identity);return c.isUndefined(b.checkEmpty)||(d=b.checkEmpty),this.children.each(this.removeChildView,this),d&&this.checkEmpty(),e},_shouldAddChild:function(a,b){var d=this.getOption("filter");return!c.isFunction(d)||d.call(this,a,b,this.collection)},proxyChildEvents:function(a){var b=this.getOption("childViewEventPrefix");this.listenTo(a,"all",function(){var d=c.toArray(arguments),e=d[0],f=this.normalizeMethods(c.result(this,"childEvents"));d[0]=b+":"+e,d.splice(1,0,a),"undefined"!=typeof f&&c.isFunction(f[e])&&f[e].apply(this,d.slice(1)),this.triggerMethod.apply(this,d)})},_getImmediateChildren:function(){return c.values(this.children._views)},_getViewAndNested:function(a){return[a].concat(c.result(a,"_getNestedViews")||[])},getViewComparator:function(){return this.getOption("viewComparator")}}),f.CompositeView=f.CollectionView.extend({constructor:function(){f.CollectionView.apply(this,arguments)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this._renderChildren),this.getOption("sort")&&this.listenTo(this.collection,"sort",this._sortViews))},getChildView:function(a){var b=this.getOption("childView")||this.constructor;return b},serializeData:function(){var a={};return this.model&&(a=c.partial(this.serializeModel,this.model).apply(this,arguments)),a},render:function(){return this._ensureViewIsIntact(),this._isRendering=!0,this.resetChildViewContainer(),this.triggerMethod("before:render",this),this._renderTemplate(),this._renderChildren(),this._isRendering=!1,this.isRendered=!0,this.triggerMethod("render",this),this},_renderChildren:function(){(this.isRendered||this._isRendering)&&f.CollectionView.prototype._renderChildren.call(this)},_renderTemplate:function(){var a={};a=this.serializeData(),a=this.mixinTemplateHelpers(a),this.triggerMethod("before:render:template");var b=this.getTemplate(),c=f.Renderer.render(b,a,this);this.attachElContent(c),this.bindUIElements(),this.triggerMethod("render:template")},attachElContent:function(a){return this.$el.html(a),this},attachBuffer:function(a,b){var c=this.getChildViewContainer(a);c.append(b)},_insertAfter:function(a){var b=this.getChildViewContainer(this,a);b.append(a.el)},_appendReorderedChildren:function(a){var b=this.getChildViewContainer(this);b.append(a)},getChildViewContainer:function(a,b){if(a.$childViewContainer)return a.$childViewContainer;var c,d=f.getOption(a,"childViewContainer");if(d){var e=f._getValue(d,a);if(c="@"===e.charAt(0)&&a.ui?a.ui[e.substr(4)]:a.$(e),c.length<=0)throw new f.Error({name:"ChildViewContainerMissingError",message:'The specified "childViewContainer" was not found: '+a.childViewContainer})}else c=a.$el;return a.$childViewContainer=c,c},resetChildViewContainer:function(){this.$childViewContainer&&(this.$childViewContainer=void 0)}}),f.LayoutView=f.ItemView.extend({regionClass:f.Region,options:{destroyImmediate:!1},childViewEventPrefix:"childview",constructor:function(a){a=a||{},this._firstRender=!0,this._initializeRegions(a),f.ItemView.call(this,a)},render:function(){return this._ensureViewIsIntact(),this._firstRender?this._firstRender=!1:this._reInitializeRegions(),f.ItemView.prototype.render.apply(this,arguments)},destroy:function(){return this.isDestroyed?this:(this.getOption("destroyImmediate")===!0&&this.$el.remove(),this.regionManager.destroy(),f.ItemView.prototype.destroy.apply(this,arguments))},showChildView:function(a,b,d){var e=this.getRegion(a);return e.show.apply(e,c.rest(arguments))},getChildView:function(a){return this.getRegion(a).currentView},addRegion:function(a,b){var c={};return c[a]=b,this._buildRegions(c)[a]},addRegions:function(a){return this.regions=c.extend({},this.regions,a),this._buildRegions(a)},removeRegion:function(a){return delete this.regions[a],this.regionManager.removeRegion(a)},getRegion:function(a){return this.regionManager.get(a)},getRegions:function(){return this.regionManager.getRegions()},_buildRegions:function(a){var b={regionClass:this.getOption("regionClass"),parentEl:c.partial(c.result,this,"el")};return this.regionManager.addRegions(a,b)},_initializeRegions:function(a){var b;this._initRegionManager(),b=f._getValue(this.regions,this,[a])||{};var d=this.getOption.call(a,"regions");d=f._getValue(d,this,[a]),c.extend(b,d),b=this.normalizeUIValues(b,["selector","el"]),this.addRegions(b)},_reInitializeRegions:function(){this.regionManager.invoke("reset")},getRegionManager:function(){return new f.RegionManager},_initRegionManager:function(){this.regionManager=this.getRegionManager(),this.regionManager._parent=this,this.listenTo(this.regionManager,"before:add:region",function(a){this.triggerMethod("before:add:region",a)}),this.listenTo(this.regionManager,"add:region",function(a,b){this[a]=b,this.triggerMethod("add:region",a,b)}),this.listenTo(this.regionManager,"before:remove:region",function(a){this.triggerMethod("before:remove:region",a)}),this.listenTo(this.regionManager,"remove:region",function(a,b){delete this[a],this.triggerMethod("remove:region",a,b)})},_getImmediateChildren:function(){return c.chain(this.regionManager.getRegions()).pluck("currentView").compact().value()}}),f.Behavior=f.Object.extend({constructor:function(a,b){this.view=b,this.defaults=c.result(this,"defaults")||{},this.options=c.extend({},this.defaults,a),this.ui=c.extend({},c.result(b,"ui"),c.result(this,"ui")),f.Object.apply(this,arguments)},$:function(){return this.view.$.apply(this.view,arguments)},destroy:function(){return this.stopListening(),this},proxyViewProperties:function(a){this.$el=a.$el,this.el=a.el}}),f.Behaviors=function(a,b){
2
- function c(a,d){return b.isObject(a.behaviors)?(d=c.parseBehaviors(a,d||b.result(a,"behaviors")),c.wrap(a,d,b.keys(g)),d):{}}function d(a,b){this._view=a,this._behaviors=b,this._triggers={}}function e(a){return a._uiBindings||a.ui}var f=/^(\S+)\s*(.*)$/,g={behaviorTriggers:function(a,b){var c=new d(this,b);return c.buildBehaviorTriggers()},behaviorEvents:function(c,d){var g={};return b.each(d,function(c,d){var h={},i=b.clone(b.result(c,"events"))||{};i=a.normalizeUIKeys(i,e(c));var j=0;b.each(i,function(a,e){var g=e.match(f),i=g[1]+"."+[this.cid,d,j++," "].join(""),k=g[2],l=i+k,m=b.isFunction(a)?a:c[a];m&&(h[l]=b.bind(m,c))},this),g=b.extend(g,h)},this),g}};return b.extend(c,{behaviorsLookup:function(){throw new a.Error({message:"You must define where your behaviors are stored.",url:"marionette.behaviors.html#behaviorslookup"})},getBehaviorClass:function(b,d){return b.behaviorClass?b.behaviorClass:a._getValue(c.behaviorsLookup,this,[b,d])[d]},parseBehaviors:function(a,d){return b.chain(d).map(function(d,e){var f=c.getBehaviorClass(d,e),g=new f(d,a),h=c.parseBehaviors(a,b.result(g,"behaviors"));return[g].concat(h)}).flatten().value()},wrap:function(a,c,d){b.each(d,function(d){a[d]=b.partial(g[d],a[d],c)})}}),b.extend(d.prototype,{buildBehaviorTriggers:function(){return b.each(this._behaviors,this._buildTriggerHandlersForBehavior,this),this._triggers},_buildTriggerHandlersForBehavior:function(c,d){var f=b.clone(b.result(c,"triggers"))||{};f=a.normalizeUIKeys(f,e(c)),b.each(f,b.bind(this._setHandlerForBehavior,this,c,d))},_setHandlerForBehavior:function(a,b,c,d){var e=d.replace(/^\S+/,function(a){return a+".behaviortriggers"+b});this._triggers[e]=this._view._buildViewTrigger(c)}}),c}(f,c),f.AppRouter=b.Router.extend({constructor:function(a){this.options=a||{},b.Router.apply(this,arguments);var c=this.getOption("appRoutes"),d=this._getController();this.processAppRoutes(d,c),this.on("route",this._processOnRoute,this)},appRoute:function(a,b){var c=this._getController();this._addAppRoute(c,a,b)},_processOnRoute:function(a,b){if(c.isFunction(this.onRoute)){var d=c.invert(this.getOption("appRoutes"))[a];this.onRoute(a,d,b)}},processAppRoutes:function(a,b){if(b){var d=c.keys(b).reverse();c.each(d,function(c){this._addAppRoute(a,c,b[c])},this)}},_getController:function(){return this.getOption("controller")},_addAppRoute:function(a,b,d){var e=a[d];if(!e)throw new f.Error('Method "'+d+'" was not found on the controller');this.route(b,d,c.bind(e,a))},mergeOptions:f.mergeOptions,getOption:f.proxyGetOption,triggerMethod:f.triggerMethod,bindEntityEvents:f.proxyBindEntityEvents,unbindEntityEvents:f.proxyUnbindEntityEvents}),f.Application=f.Object.extend({constructor:function(a){this._initializeRegions(a),this._initCallbacks=new f.Callbacks,this.submodules={},c.extend(this,a),this._initChannel(),f.Object.apply(this,arguments)},execute:function(){this.commands.execute.apply(this.commands,arguments)},request:function(){return this.reqres.request.apply(this.reqres,arguments)},addInitializer:function(a){this._initCallbacks.add(a)},start:function(a){this.triggerMethod("before:start",a),this._initCallbacks.run(a,this),this.triggerMethod("start",a)},addRegions:function(a){return this._regionManager.addRegions(a)},emptyRegions:function(){return this._regionManager.emptyRegions()},removeRegion:function(a){return this._regionManager.removeRegion(a)},getRegion:function(a){return this._regionManager.get(a)},getRegions:function(){return this._regionManager.getRegions()},module:function(a,b){var d=f.Module.getClass(b),e=c.toArray(arguments);return e.unshift(this),d.create.apply(d,e)},getRegionManager:function(){return new f.RegionManager},_initializeRegions:function(a){var b=c.isFunction(this.regions)?this.regions(a):this.regions||{};this._initRegionManager();var d=f.getOption(a,"regions");return c.isFunction(d)&&(d=d.call(this,a)),c.extend(b,d),this.addRegions(b),this},_initRegionManager:function(){this._regionManager=this.getRegionManager(),this._regionManager._parent=this,this.listenTo(this._regionManager,"before:add:region",function(){f._triggerMethod(this,"before:add:region",arguments)}),this.listenTo(this._regionManager,"add:region",function(a,b){this[a]=b,f._triggerMethod(this,"add:region",arguments)}),this.listenTo(this._regionManager,"before:remove:region",function(){f._triggerMethod(this,"before:remove:region",arguments)}),this.listenTo(this._regionManager,"remove:region",function(a){delete this[a],f._triggerMethod(this,"remove:region",arguments)})},_initChannel:function(){this.channelName=c.result(this,"channelName")||"global",this.channel=c.result(this,"channel")||b.Wreqr.radio.channel(this.channelName),this.vent=c.result(this,"vent")||this.channel.vent,this.commands=c.result(this,"commands")||this.channel.commands,this.reqres=c.result(this,"reqres")||this.channel.reqres}}),f.Module=function(a,b,d){this.moduleName=a,this.options=c.extend({},this.options,d),this.initialize=d.initialize||this.initialize,this.submodules={},this._setupInitializersAndFinalizers(),this.app=b,c.isFunction(this.initialize)&&this.initialize(a,b,this.options)},f.Module.extend=f.extend,c.extend(f.Module.prototype,b.Events,{startWithParent:!0,initialize:function(){},addInitializer:function(a){this._initializerCallbacks.add(a)},addFinalizer:function(a){this._finalizerCallbacks.add(a)},start:function(a){this._isInitialized||(c.each(this.submodules,function(b){b.startWithParent&&b.start(a)}),this.triggerMethod("before:start",a),this._initializerCallbacks.run(a,this),this._isInitialized=!0,this.triggerMethod("start",a))},stop:function(){this._isInitialized&&(this._isInitialized=!1,this.triggerMethod("before:stop"),c.invoke(this.submodules,"stop"),this._finalizerCallbacks.run(void 0,this),this._initializerCallbacks.reset(),this._finalizerCallbacks.reset(),this.triggerMethod("stop"))},addDefinition:function(a,b){this._runModuleDefinition(a,b)},_runModuleDefinition:function(a,d){if(a){var e=c.flatten([this,this.app,b,f,b.$,c,d]);a.apply(this,e)}},_setupInitializersAndFinalizers:function(){this._initializerCallbacks=new f.Callbacks,this._finalizerCallbacks=new f.Callbacks},triggerMethod:f.triggerMethod}),c.extend(f.Module,{create:function(a,b,d){var e=a,f=c.drop(arguments,3);b=b.split(".");var g=b.length,h=[];return h[g-1]=d,c.each(b,function(b,c){var g=e;e=this._getModule(g,b,a,d),this._addModuleDefinition(g,e,h[c],f)},this),e},_getModule:function(a,b,d,e,f){var g=c.extend({},e),h=this.getClass(e),i=a[b];return i||(i=new h(b,d,g),a[b]=i,a.submodules[b]=i),i},getClass:function(a){var b=f.Module;return a?a.prototype instanceof b?a:a.moduleClass||b:b},_addModuleDefinition:function(a,b,c,d){var e=this._getDefine(c),f=this._getStartWithParent(c,b);e&&b.addDefinition(e,d),this._addStartWithParent(a,b,f)},_getStartWithParent:function(a,b){var d;return c.isFunction(a)&&a.prototype instanceof f.Module?(d=b.constructor.prototype.startWithParent,c.isUndefined(d)?!0:d):c.isObject(a)?(d=a.startWithParent,c.isUndefined(d)?!0:d):!0},_getDefine:function(a){return!c.isFunction(a)||a.prototype instanceof f.Module?c.isObject(a)?a.define:null:a},_addStartWithParent:function(a,b,c){b.startWithParent=b.startWithParent&&c,b.startWithParent&&!b.startWithParentIsConfigured&&(b.startWithParentIsConfigured=!0,a.addInitializer(function(a){b.startWithParent&&b.start(a)}))}}),f});
3
- //# sourceMappingURL=<%= asset_path 'backbone.marionette.min.js.map' %>
1
+ 404: Not Found
@@ -1,4 +1,4 @@
1
- // Backbone.Radio v1.0.4
1
+ // Backbone.Radio v2.0.0
2
2
 
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('underscore'), require('backbone')) :
@@ -9,19 +9,17 @@
9
9
  _ = 'default' in _ ? _['default'] : _;
10
10
  Backbone = 'default' in Backbone ? Backbone['default'] : Backbone;
11
11
 
12
- var babelHelpers = {};
13
- babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
12
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
14
13
  return typeof obj;
15
14
  } : function (obj) {
16
15
  return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
17
16
  };
18
- babelHelpers;
19
17
 
20
18
  var previousRadio = Backbone.Radio;
21
19
 
22
20
  var Radio = Backbone.Radio = {};
23
21
 
24
- Radio.VERSION = '1.0.4';
22
+ Radio.VERSION = '2.0.0';
25
23
 
26
24
  // This allows you to run multiple instances of Radio on the same
27
25
  // webapp. After loading the new version, call `noConflict()` to
@@ -65,7 +63,7 @@
65
63
  var results = {};
66
64
 
67
65
  // Handle event maps.
68
- if ((typeof name === 'undefined' ? 'undefined' : babelHelpers.typeof(name)) === 'object') {
66
+ if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
69
67
  for (var key in name) {
70
68
  var result = obj[action].apply(obj, [key, name[key]].concat(rest));
71
69
  eventSplitter.test(key) ? _.extend(results, result) : results[key] = result;
@@ -1,3 +1,3 @@
1
- // Backbone.Radio v1.0.4
2
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("underscore"),require("backbone")):"function"==typeof define&&define.amd?define(["underscore","backbone"],n):(e.Backbone=e.Backbone||{},e.Backbone.Radio=n(e._,e.Backbone))}(this,function(e,n){"use strict";function t(e,n,t,r){var o=e[n];return t&&t!==o.callback&&t!==o.callback._callback||r&&r!==o.context?void 0:(delete e[n],!0)}function r(n,r,o,i){n||(n={});for(var s=r?[r]:e.keys(n),u=!1,a=0,c=s.length;c>a;a++)r=s[a],n[r]&&t(n,r,o,i)&&(u=!0);return u}function o(n){return l[n]||(l[n]=e.bind(a.log,a,n))}function i(n){return e.isFunction(n)?n:function(){return n}}e="default"in e?e["default"]:e,n="default"in n?n["default"]:n;var s={};s["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var u=n.Radio,a=n.Radio={};a.VERSION="1.0.4",a.noConflict=function(){return n.Radio=u,this},a.DEBUG=!1,a._debugText=function(e,n,t){return e+(t?" on the "+t+" channel":"")+': "'+n+'"'},a.debugLog=function(e,n,t){a.DEBUG&&console&&console.warn&&console.warn(a._debugText(e,n,t))};var c=/\s+/;a._eventsApi=function(n,t,r,o){if(!r)return!1;var i={};if("object"===("undefined"==typeof r?"undefined":s["typeof"](r))){for(var u in r){var a=n[t].apply(n,[u,r[u]].concat(o));c.test(u)?e.extend(i,a):i[u]=a}return i}if(c.test(r)){for(var l=r.split(c),f=0,h=l.length;h>f;f++)i[l[f]]=n[t].apply(n,[l[f]].concat(o));return i}return!1},a._callHandler=function(e,n,t){var r=t[0],o=t[1],i=t[2];switch(t.length){case 0:return e.call(n);case 1:return e.call(n,r);case 2:return e.call(n,r,o);case 3:return e.call(n,r,o,i);default:return e.apply(n,t)}};var l={};e.extend(a,{log:function(n,t){if("undefined"!=typeof console){var r=e.toArray(arguments).slice(2);console.log("["+n+'] "'+t+'"',r)}},tuneIn:function(e){var n=a.channel(e);return n._tunedIn=!0,n.on("all",o(e)),this},tuneOut:function(e){var n=a.channel(e);return n._tunedIn=!1,n.off("all",o(e)),delete l[e],this}}),a.Requests={request:function(n){var t=e.toArray(arguments).slice(1),r=a._eventsApi(this,"request",n,t);if(r)return r;var o=this.channelName,i=this._requests;if(o&&this._tunedIn&&a.log.apply(this,[o,n].concat(t)),i&&(i[n]||i["default"])){var s=i[n]||i["default"];return t=i[n]?t:arguments,a._callHandler(s.callback,s.context,t)}a.debugLog("An unhandled request was fired",n,o)},reply:function(e,n,t){return a._eventsApi(this,"reply",e,[n,t])?this:(this._requests||(this._requests={}),this._requests[e]&&a.debugLog("A request was overwritten",e,this.channelName),this._requests[e]={callback:i(n),context:t||this},this)},replyOnce:function(n,t,r){if(a._eventsApi(this,"replyOnce",n,[t,r]))return this;var o=this,s=e.once(function(){return o.stopReplying(n),i(t).apply(this,arguments)});return this.reply(n,s,r)},stopReplying:function(e,n,t){return a._eventsApi(this,"stopReplying",e)?this:(e||n||t?r(this._requests,e,n,t)||a.debugLog("Attempted to remove the unregistered request",e,this.channelName):delete this._requests,this)}},a._channels={},a.channel=function(e){if(!e)throw new Error("You must provide a name for the channel.");return a._channels[e]?a._channels[e]:a._channels[e]=new a.Channel(e)},a.Channel=function(e){this.channelName=e},e.extend(a.Channel.prototype,n.Events,a.Requests,{reset:function(){return this.off(),this.stopListening(),this.stopReplying(),this}});var f,h,d=[n.Events,a.Requests];return e.each(d,function(n){e.each(n,function(n,t){a[t]=function(n){return h=e.toArray(arguments).slice(1),f=this.channel(n),f[t].apply(f,h)}})}),a.reset=function(n){var t=n?[this._channels[n]]:this._channels;e.each(t,function(e){e.reset()})},a});
1
+ // Backbone.Radio v2.0.0
2
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("underscore"),require("backbone")):"function"==typeof define&&define.amd?define(["underscore","backbone"],n):(e.Backbone=e.Backbone||{},e.Backbone.Radio=n(e._,e.Backbone))}(this,function(e,n){"use strict";function t(e,n,t,r){var o=e[n];if(!(t&&t!==o.callback&&t!==o.callback._callback||r&&r!==o.context))return delete e[n],!0}function r(n,r,o,i){n||(n={});for(var s=r?[r]:e.keys(n),u=!1,c=0,a=s.length;c<a;c++)r=s[c],n[r]&&t(n,r,o,i)&&(u=!0);return u}function o(n){return l[n]||(l[n]=e.bind(c.log,c,n))}function i(n){return e.isFunction(n)?n:function(){return n}}e="default"in e?e["default"]:e,n="default"in n?n["default"]:n;var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=n.Radio,c=n.Radio={};c.VERSION="2.0.0",c.noConflict=function(){return n.Radio=u,this},c.DEBUG=!1,c._debugText=function(e,n,t){return e+(t?" on the "+t+" channel":"")+': "'+n+'"'},c.debugLog=function(e,n,t){c.DEBUG&&console&&console.warn&&console.warn(c._debugText(e,n,t))};var a=/\s+/;c._eventsApi=function(n,t,r,o){if(!r)return!1;var i={};if("object"===("undefined"==typeof r?"undefined":s(r))){for(var u in r){var c=n[t].apply(n,[u,r[u]].concat(o));a.test(u)?e.extend(i,c):i[u]=c}return i}if(a.test(r)){for(var l=r.split(a),f=0,h=l.length;f<h;f++)i[l[f]]=n[t].apply(n,[l[f]].concat(o));return i}return!1},c._callHandler=function(e,n,t){var r=t[0],o=t[1],i=t[2];switch(t.length){case 0:return e.call(n);case 1:return e.call(n,r);case 2:return e.call(n,r,o);case 3:return e.call(n,r,o,i);default:return e.apply(n,t)}};var l={};e.extend(c,{log:function(n,t){if("undefined"!=typeof console){var r=e.toArray(arguments).slice(2);console.log("["+n+'] "'+t+'"',r)}},tuneIn:function(e){var n=c.channel(e);return n._tunedIn=!0,n.on("all",o(e)),this},tuneOut:function(e){var n=c.channel(e);return n._tunedIn=!1,n.off("all",o(e)),delete l[e],this}}),c.Requests={request:function(n){var t=e.toArray(arguments).slice(1),r=c._eventsApi(this,"request",n,t);if(r)return r;var o=this.channelName,i=this._requests;if(o&&this._tunedIn&&c.log.apply(this,[o,n].concat(t)),i&&(i[n]||i["default"])){var s=i[n]||i["default"];return t=i[n]?t:arguments,c._callHandler(s.callback,s.context,t)}c.debugLog("An unhandled request was fired",n,o)},reply:function(e,n,t){return c._eventsApi(this,"reply",e,[n,t])?this:(this._requests||(this._requests={}),this._requests[e]&&c.debugLog("A request was overwritten",e,this.channelName),this._requests[e]={callback:i(n),context:t||this},this)},replyOnce:function(n,t,r){if(c._eventsApi(this,"replyOnce",n,[t,r]))return this;var o=this,s=e.once(function(){return o.stopReplying(n),i(t).apply(this,arguments)});return this.reply(n,s,r)},stopReplying:function(e,n,t){return c._eventsApi(this,"stopReplying",e)?this:(e||n||t?r(this._requests,e,n,t)||c.debugLog("Attempted to remove the unregistered request",e,this.channelName):delete this._requests,this)}},c._channels={},c.channel=function(e){if(!e)throw new Error("You must provide a name for the channel.");return c._channels[e]?c._channels[e]:c._channels[e]=new c.Channel(e)},c.Channel=function(e){this.channelName=e},e.extend(c.Channel.prototype,n.Events,c.Requests,{reset:function(){return this.off(),this.stopListening(),this.stopReplying(),this}});var f,h,d=[n.Events,c.Requests];return e.each(d,function(n){e.each(n,function(n,t){c[t]=function(n){return h=e.toArray(arguments).slice(1),f=this.channel(n),f[t].apply(f,h)}})}),c.reset=function(n){var t=n?[this._channels[n]]:this._channels;e.each(t,function(e){e.reset()})},c});
3
3
  //# sourceMappingURL=<%= asset_path 'backbone.radio.min.js.map' %>
@@ -1 +1 @@
1
- {"version":3,"sources":["backbone.marionette.js"],"names":["root","factory","define","amd","Backbone","_","Marionette","Mn","exports","require","module","this","previousMarionette","previousMn","VERSION","noConflict","Deferred","$","FEATURES","isEnabled","name","extend","Model","isNodeAttached","el","contains","document","documentElement","mergeOptions","options","keys","pick","getOption","target","optionName","undefined","proxyGetOption","_getValue","value","context","params","isFunction","apply","call","normalizeMethods","hash","reduce","normalizedHash","method","normalizeUIString","uiString","ui","replace","r","slice","normalizeUIKeys","memo","val","key","normalizedKey","normalizeUIValues","properties","each","isString","isObject","isArray","property","propertyVal","actAsCollection","object","listProperty","methods","list","values","result","args","concat","toArray","arguments","deprecate","message","test","prev","next","url","_cache","_warn","_console","console","warn","log","_triggerMethod","getEventName","match","prefix","eventName","toUpperCase","splitter","event","noEventArg","length","methodName","rest","trigger","drop","triggerMethod","triggerMethodOn","fnc","MonitorDOMRefresh","view","handleShow","_isShown","triggerDOMRefresh","handleRender","_isRendered","_isDomRefreshMonitored","on","show","render","bindFromStrings","entity","evt","methodNames","split","Error","listenTo","bindToFunction","unbindFromStrings","stopListening","unbindToFunction","iterateEvents","bindings","functionCallback","stringCallback","bindEntityEvents","unbindEntityEvents","proxyBindEntityEvents","proxyUnbindEntityEvents","errorProps","urlRoot","constructor","error","captureStackTrace","toString","Callbacks","_deferred","_callbacks","prototype","add","callback","contextOverride","promise","push","cb","ctx","then","run","resolve","reset","callbacks","Controller","initialize","Events","destroy","off","Object","Region","$el","getEl","_ensureElement","_ensureViewIsIntact","showOptions","isDifferentView","currentView","preventDestroy","forceShow","isChangingView","_shouldDestroyView","_shouldShowView","_parent","empty","once","_renderView","attachedRegion","displayedViews","attachOptions","triggerBeforeAttach","triggerAttach","_displayedViews","_triggerAttach","attachHtml","views","union","supportsRenderLifecycle","selector","isDestroyed","cid","parentEl","contents","detach","appendChild","emptyOptions","_destroyView","supportsDestroyLifecycle","remove","attachView","hasView","buildRegion","regionConfig","DefaultRegionClass","_buildRegionFromSelector","regionClass","_buildRegionFromObject","_buildRegionFromRegionClass","RegionClass","omit","RegionManager","_regions","addRegions","regionDefinitions","defaults","regions","definition","addRegion","region","_store","get","getRegions","clone","removeRegion","_remove","removeRegions","emptyRegions","invoke","TemplateCache","templateId","templateCaches","cachedTemplate","load","clear","i","compiledTemplate","template","loadTemplate","compileTemplate","$template","html","rawTemplate","Renderer","data","templateFunc","View","bind","_behaviors","Behaviors","getTemplate","serializeModel","model","toJSON","mixinTemplateHelpers","templateHelpers","uiBindings","configureTriggers","triggers","events","_buildViewTrigger","delegateEvents","_delegateDOMEvents","collection","behavior","eventsArg","isUndefined","combinedEvents","behaviorEvents","behaviorTriggers","undelegateEvents","unbindUIElements","isRendered","bindUIElements","_bindUIElements","_uiBindings","_unbindUIElements","triggerDef","preventDefault","stopPropagation","e","setElement","ret","_triggerEventOnBehaviors","_triggerEventOnParentLayout","behaviors","layoutView","_parentLayoutView","eventPrefix","prefixedEventName","callArgs","childEvents","normalizedChildEvents","_getImmediateChildren","_getNestedViews","children","parent","LayoutView","ItemView","serializeData","items","serializeCollection","_renderTemplate","attachElContent","CollectionView","childViewEventPrefix","sort","_initialEvents","_initChildViewStorage","before:show","_onBeforeShowCalled","_onShowCalled","before:attach","_onBeforeAttachCalled","attach","_onAttachCalled","initRenderBuffer","_bufferedChildren","startBuffering","isBuffering","endBuffering","nestedViews","canTriggerAttach","_triggerMethodMany","_triggerBeforeAttach","attachBuffer","_createBuffer","targets","source","_onCollectionAdd","_onCollectionRemove","_sortViews","child","opts","index","at","indexOf","_filteredSortedModels","_shouldAddChild","destroyEmptyView","ChildView","getChildView","addChild","findByModel","removeChildView","checkEmpty","childView","_renderChildren","reorder","models","_showingEmptyView","anyModelsAdded","some","elsToReorder","map","_index","filteredOutViews","filter","_appendReorderedChildren","resortView","orderChanged","find","item","_emptyViewIndex","append","destroyChildren","isEmpty","showEmptyView","showCollection","addedAt","viewComparator","getViewComparator","Math","min","max","addedModel","_sortModelsBy","splice","comparator","sortBy","EmptyView","getEmptyView","addEmptyView","emptyViewOptions","buildChildView","proxyChildEvents","_getViewAndNested","renderChildView","childViewOptions","_updateIndices","_addChildView","increment","laterView","ChildViewClass","collectionView","buffer","elBuffer","createDocumentFragment","b","_insertBefore","_insertAfter","findPosition","before","ChildViewContainer","destroyOptions","shouldCheckEmpty","childViews","identity","rootEvent","_views","CompositeView","partial","_isRendering","resetChildViewContainer","compositeView","$container","getChildViewContainer","containerView","$childViewContainer","container","childViewContainer","charAt","substr","destroyImmediate","_firstRender","_initializeRegions","_reInitializeRegions","regionManager","showChildView","regionName","getRegion","_buildRegions","_initRegionManager","regionOptions","getRegionManager","chain","pluck","compact","Behavior","proxyViewProperties","parseBehaviors","wrap","BehaviorTriggersBuilder","_view","_triggers","getBehaviorsUI","delegateEventSplitter","triggerBuilder","buildBehaviorTriggers","_behaviorsEvents","_events","j","behaviour","join","eventKey","handler","behaviorsLookup","getBehaviorClass","behaviorClass","BehaviorClass","nestedBehaviors","flatten","_buildTriggerHandlersForBehavior","triggersHash","_setHandlerForBehavior","triggerKey","triggerName","AppRouter","Router","appRoutes","controller","_getController","processAppRoutes","_processOnRoute","appRoute","route","_addAppRoute","routeName","routeArgs","onRoute","routePath","invert","routeNames","reverse","Application","_initCallbacks","submodules","_initChannel","execute","commands","request","reqres","addInitializer","initializer","start","_regionManager","moduleNames","moduleDefinition","ModuleClass","Module","getClass","unshift","create","optionRegions","channelName","channel","Wreqr","radio","vent","moduleName","app","_setupInitializersAndFinalizers","startWithParent","_initializerCallbacks","addFinalizer","_finalizerCallbacks","_isInitialized","mod","stop","addDefinition","customArgs","_runModuleDefinition","moduleDefinitions","parentModule","_getModule","_addModuleDefinition","def","moduleClass","fn","_getDefine","_getStartWithParent","_addStartWithParent","swp","startWithParentIsConfigured"],"mappings":"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","file":"backbone.marionette.min.js"}
1
+ 404: Not Found
@@ -1 +1 @@
1
- {"version":3,"names":[],"mappings":"","sources":["backbone.radio.js"],"sourcesContent":["// Backbone.Radio v1.0.4\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('underscore'), require('backbone')) :\n typeof define === 'function' && define.amd ? define(['underscore', 'backbone'], factory) :\n (global.Backbone = global.Backbone || {}, global.Backbone.Radio = factory(global._,global.Backbone));\n}(this, function (_,Backbone) { 'use strict';\n\n _ = 'default' in _ ? _['default'] : _;\n Backbone = 'default' in Backbone ? Backbone['default'] : Backbone;\n\n var babelHelpers = {};\n babelHelpers.typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n babelHelpers;\n\n var previousRadio = Backbone.Radio;\n\n var Radio = Backbone.Radio = {};\n\n Radio.VERSION = '1.0.4';\n\n // This allows you to run multiple instances of Radio on the same\n // webapp. After loading the new version, call `noConflict()` to\n // get a reference to it. At the same time the old version will be\n // returned to Backbone.Radio.\n Radio.noConflict = function () {\n Backbone.Radio = previousRadio;\n return this;\n };\n\n // Whether or not we're in DEBUG mode or not. DEBUG mode helps you\n // get around the issues of lack of warnings when events are mis-typed.\n Radio.DEBUG = false;\n\n // Format debug text.\n Radio._debugText = function (warning, eventName, channelName) {\n return warning + (channelName ? ' on the ' + channelName + ' channel' : '') + ': \"' + eventName + '\"';\n };\n\n // This is the method that's called when an unregistered event was called.\n // By default, it logs warning to the console. By overriding this you could\n // make it throw an Error, for instance. This would make firing a nonexistent event\n // have the same consequence as firing a nonexistent method on an Object.\n Radio.debugLog = function (warning, eventName, channelName) {\n if (Radio.DEBUG && console && console.warn) {\n console.warn(Radio._debugText(warning, eventName, channelName));\n }\n };\n\n var eventSplitter = /\\s+/;\n\n // An internal method used to handle Radio's method overloading for Requests.\n // It's borrowed from Backbone.Events. It differs from Backbone's overload\n // API (which is used in Backbone.Events) in that it doesn't support space-separated\n // event names.\n Radio._eventsApi = function (obj, action, name, rest) {\n if (!name) {\n return false;\n }\n\n var results = {};\n\n // Handle event maps.\n if ((typeof name === 'undefined' ? 'undefined' : babelHelpers.typeof(name)) === 'object') {\n for (var key in name) {\n var result = obj[action].apply(obj, [key, name[key]].concat(rest));\n eventSplitter.test(key) ? _.extend(results, result) : results[key] = result;\n }\n return results;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n results[names[i]] = obj[action].apply(obj, [names[i]].concat(rest));\n }\n return results;\n }\n\n return false;\n };\n\n // An optimized way to execute callbacks.\n Radio._callHandler = function (callback, context, args) {\n var a1 = args[0],\n a2 = args[1],\n a3 = args[2];\n switch (args.length) {\n case 0:\n return callback.call(context);\n case 1:\n return callback.call(context, a1);\n case 2:\n return callback.call(context, a1, a2);\n case 3:\n return callback.call(context, a1, a2, a3);\n default:\n return callback.apply(context, args);\n }\n };\n\n // A helper used by `off` methods to the handler from the store\n function removeHandler(store, name, callback, context) {\n var event = store[name];\n if ((!callback || callback === event.callback || callback === event.callback._callback) && (!context || context === event.context)) {\n delete store[name];\n return true;\n }\n }\n\n function removeHandlers(store, name, callback, context) {\n store || (store = {});\n var names = name ? [name] : _.keys(store);\n var matched = false;\n\n for (var i = 0, length = names.length; i < length; i++) {\n name = names[i];\n\n // If there's no event by this name, log it and continue\n // with the loop\n if (!store[name]) {\n continue;\n }\n\n if (removeHandler(store, name, callback, context)) {\n matched = true;\n }\n }\n\n return matched;\n }\n\n /*\n * tune-in\n * -------\n * Get console logs of a channel's activity\n *\n */\n\n var _logs = {};\n\n // This is to produce an identical function in both tuneIn and tuneOut,\n // so that Backbone.Events unregisters it.\n function _partial(channelName) {\n return _logs[channelName] || (_logs[channelName] = _.bind(Radio.log, Radio, channelName));\n }\n\n _.extend(Radio, {\n\n // Log information about the channel and event\n log: function log(channelName, eventName) {\n if (typeof console === 'undefined') {\n return;\n }\n var args = _.toArray(arguments).slice(2);\n console.log('[' + channelName + '] \"' + eventName + '\"', args);\n },\n\n // Logs all events on this channel to the console. It sets an\n // internal value on the channel telling it we're listening,\n // then sets a listener on the Backbone.Events\n tuneIn: function tuneIn(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = true;\n channel.on('all', _partial(channelName));\n return this;\n },\n\n // Stop logging all of the activities on this channel to the console\n tuneOut: function tuneOut(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = false;\n channel.off('all', _partial(channelName));\n delete _logs[channelName];\n return this;\n }\n });\n\n /*\n * Backbone.Radio.Requests\n * -----------------------\n * A messaging system for requesting data.\n *\n */\n\n function makeCallback(callback) {\n return _.isFunction(callback) ? callback : function () {\n return callback;\n };\n }\n\n Radio.Requests = {\n\n // Make a request\n request: function request(name) {\n var args = _.toArray(arguments).slice(1);\n var results = Radio._eventsApi(this, 'request', name, args);\n if (results) {\n return results;\n }\n var channelName = this.channelName;\n var requests = this._requests;\n\n // Check if we should log the request, and if so, do it\n if (channelName && this._tunedIn) {\n Radio.log.apply(this, [channelName, name].concat(args));\n }\n\n // If the request isn't handled, log it in DEBUG mode and exit\n if (requests && (requests[name] || requests['default'])) {\n var handler = requests[name] || requests['default'];\n args = requests[name] ? args : arguments;\n return Radio._callHandler(handler.callback, handler.context, args);\n } else {\n Radio.debugLog('An unhandled request was fired', name, channelName);\n }\n },\n\n // Set up a handler for a request\n reply: function reply(name, callback, context) {\n if (Radio._eventsApi(this, 'reply', name, [callback, context])) {\n return this;\n }\n\n this._requests || (this._requests = {});\n\n if (this._requests[name]) {\n Radio.debugLog('A request was overwritten', name, this.channelName);\n }\n\n this._requests[name] = {\n callback: makeCallback(callback),\n context: context || this\n };\n\n return this;\n },\n\n // Set up a handler that can only be requested once\n replyOnce: function replyOnce(name, callback, context) {\n if (Radio._eventsApi(this, 'replyOnce', name, [callback, context])) {\n return this;\n }\n\n var self = this;\n\n var once = _.once(function () {\n self.stopReplying(name);\n return makeCallback(callback).apply(this, arguments);\n });\n\n return this.reply(name, once, context);\n },\n\n // Remove handler(s)\n stopReplying: function stopReplying(name, callback, context) {\n if (Radio._eventsApi(this, 'stopReplying', name)) {\n return this;\n }\n\n // Remove everything if there are no arguments passed\n if (!name && !callback && !context) {\n delete this._requests;\n } else if (!removeHandlers(this._requests, name, callback, context)) {\n Radio.debugLog('Attempted to remove the unregistered request', name, this.channelName);\n }\n\n return this;\n }\n };\n\n /*\n * Backbone.Radio.channel\n * ----------------------\n * Get a reference to a channel by name.\n *\n */\n\n Radio._channels = {};\n\n Radio.channel = function (channelName) {\n if (!channelName) {\n throw new Error('You must provide a name for the channel.');\n }\n\n if (Radio._channels[channelName]) {\n return Radio._channels[channelName];\n } else {\n return Radio._channels[channelName] = new Radio.Channel(channelName);\n }\n };\n\n /*\n * Backbone.Radio.Channel\n * ----------------------\n * A Channel is an object that extends from Backbone.Events,\n * and Radio.Requests.\n *\n */\n\n Radio.Channel = function (channelName) {\n this.channelName = channelName;\n };\n\n _.extend(Radio.Channel.prototype, Backbone.Events, Radio.Requests, {\n\n // Remove all handlers from the messaging systems of this channel\n reset: function reset() {\n this.off();\n this.stopListening();\n this.stopReplying();\n return this;\n }\n });\n\n /*\n * Top-level API\n * -------------\n * Supplies the 'top-level API' for working with Channels directly\n * from Backbone.Radio.\n *\n */\n\n var channel;\n var args;\n var systems = [Backbone.Events, Radio.Requests];\n _.each(systems, function (system) {\n _.each(system, function (method, methodName) {\n Radio[methodName] = function (channelName) {\n args = _.toArray(arguments).slice(1);\n channel = this.channel(channelName);\n return channel[methodName].apply(channel, args);\n };\n });\n });\n\n Radio.reset = function (channelName) {\n var channels = !channelName ? this._channels : [this._channels[channelName]];\n _.each(channels, function (channel) {\n channel.reset();\n });\n };\n\n return Radio;\n\n}));\n"],"file":"backbone.radio.js","sourceRoot":"/source/"}
1
+ {"version":3,"names":[],"mappings":"","sources":["backbone.radio.js"],"sourcesContent":["// Backbone.Radio v2.0.0\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('underscore'), require('backbone')) :\n typeof define === 'function' && define.amd ? define(['underscore', 'backbone'], factory) :\n (global.Backbone = global.Backbone || {}, global.Backbone.Radio = factory(global._,global.Backbone));\n}(this, function (_,Backbone) { 'use strict';\n\n _ = 'default' in _ ? _['default'] : _;\n Backbone = 'default' in Backbone ? Backbone['default'] : Backbone;\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n var previousRadio = Backbone.Radio;\n\n var Radio = Backbone.Radio = {};\n\n Radio.VERSION = '2.0.0';\n\n // This allows you to run multiple instances of Radio on the same\n // webapp. After loading the new version, call `noConflict()` to\n // get a reference to it. At the same time the old version will be\n // returned to Backbone.Radio.\n Radio.noConflict = function () {\n Backbone.Radio = previousRadio;\n return this;\n };\n\n // Whether or not we're in DEBUG mode or not. DEBUG mode helps you\n // get around the issues of lack of warnings when events are mis-typed.\n Radio.DEBUG = false;\n\n // Format debug text.\n Radio._debugText = function (warning, eventName, channelName) {\n return warning + (channelName ? ' on the ' + channelName + ' channel' : '') + ': \"' + eventName + '\"';\n };\n\n // This is the method that's called when an unregistered event was called.\n // By default, it logs warning to the console. By overriding this you could\n // make it throw an Error, for instance. This would make firing a nonexistent event\n // have the same consequence as firing a nonexistent method on an Object.\n Radio.debugLog = function (warning, eventName, channelName) {\n if (Radio.DEBUG && console && console.warn) {\n console.warn(Radio._debugText(warning, eventName, channelName));\n }\n };\n\n var eventSplitter = /\\s+/;\n\n // An internal method used to handle Radio's method overloading for Requests.\n // It's borrowed from Backbone.Events. It differs from Backbone's overload\n // API (which is used in Backbone.Events) in that it doesn't support space-separated\n // event names.\n Radio._eventsApi = function (obj, action, name, rest) {\n if (!name) {\n return false;\n }\n\n var results = {};\n\n // Handle event maps.\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n for (var key in name) {\n var result = obj[action].apply(obj, [key, name[key]].concat(rest));\n eventSplitter.test(key) ? _.extend(results, result) : results[key] = result;\n }\n return results;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n results[names[i]] = obj[action].apply(obj, [names[i]].concat(rest));\n }\n return results;\n }\n\n return false;\n };\n\n // An optimized way to execute callbacks.\n Radio._callHandler = function (callback, context, args) {\n var a1 = args[0],\n a2 = args[1],\n a3 = args[2];\n switch (args.length) {\n case 0:\n return callback.call(context);\n case 1:\n return callback.call(context, a1);\n case 2:\n return callback.call(context, a1, a2);\n case 3:\n return callback.call(context, a1, a2, a3);\n default:\n return callback.apply(context, args);\n }\n };\n\n // A helper used by `off` methods to the handler from the store\n function removeHandler(store, name, callback, context) {\n var event = store[name];\n if ((!callback || callback === event.callback || callback === event.callback._callback) && (!context || context === event.context)) {\n delete store[name];\n return true;\n }\n }\n\n function removeHandlers(store, name, callback, context) {\n store || (store = {});\n var names = name ? [name] : _.keys(store);\n var matched = false;\n\n for (var i = 0, length = names.length; i < length; i++) {\n name = names[i];\n\n // If there's no event by this name, log it and continue\n // with the loop\n if (!store[name]) {\n continue;\n }\n\n if (removeHandler(store, name, callback, context)) {\n matched = true;\n }\n }\n\n return matched;\n }\n\n /*\n * tune-in\n * -------\n * Get console logs of a channel's activity\n *\n */\n\n var _logs = {};\n\n // This is to produce an identical function in both tuneIn and tuneOut,\n // so that Backbone.Events unregisters it.\n function _partial(channelName) {\n return _logs[channelName] || (_logs[channelName] = _.bind(Radio.log, Radio, channelName));\n }\n\n _.extend(Radio, {\n\n // Log information about the channel and event\n log: function log(channelName, eventName) {\n if (typeof console === 'undefined') {\n return;\n }\n var args = _.toArray(arguments).slice(2);\n console.log('[' + channelName + '] \"' + eventName + '\"', args);\n },\n\n // Logs all events on this channel to the console. It sets an\n // internal value on the channel telling it we're listening,\n // then sets a listener on the Backbone.Events\n tuneIn: function tuneIn(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = true;\n channel.on('all', _partial(channelName));\n return this;\n },\n\n // Stop logging all of the activities on this channel to the console\n tuneOut: function tuneOut(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = false;\n channel.off('all', _partial(channelName));\n delete _logs[channelName];\n return this;\n }\n });\n\n /*\n * Backbone.Radio.Requests\n * -----------------------\n * A messaging system for requesting data.\n *\n */\n\n function makeCallback(callback) {\n return _.isFunction(callback) ? callback : function () {\n return callback;\n };\n }\n\n Radio.Requests = {\n\n // Make a request\n request: function request(name) {\n var args = _.toArray(arguments).slice(1);\n var results = Radio._eventsApi(this, 'request', name, args);\n if (results) {\n return results;\n }\n var channelName = this.channelName;\n var requests = this._requests;\n\n // Check if we should log the request, and if so, do it\n if (channelName && this._tunedIn) {\n Radio.log.apply(this, [channelName, name].concat(args));\n }\n\n // If the request isn't handled, log it in DEBUG mode and exit\n if (requests && (requests[name] || requests['default'])) {\n var handler = requests[name] || requests['default'];\n args = requests[name] ? args : arguments;\n return Radio._callHandler(handler.callback, handler.context, args);\n } else {\n Radio.debugLog('An unhandled request was fired', name, channelName);\n }\n },\n\n // Set up a handler for a request\n reply: function reply(name, callback, context) {\n if (Radio._eventsApi(this, 'reply', name, [callback, context])) {\n return this;\n }\n\n this._requests || (this._requests = {});\n\n if (this._requests[name]) {\n Radio.debugLog('A request was overwritten', name, this.channelName);\n }\n\n this._requests[name] = {\n callback: makeCallback(callback),\n context: context || this\n };\n\n return this;\n },\n\n // Set up a handler that can only be requested once\n replyOnce: function replyOnce(name, callback, context) {\n if (Radio._eventsApi(this, 'replyOnce', name, [callback, context])) {\n return this;\n }\n\n var self = this;\n\n var once = _.once(function () {\n self.stopReplying(name);\n return makeCallback(callback).apply(this, arguments);\n });\n\n return this.reply(name, once, context);\n },\n\n // Remove handler(s)\n stopReplying: function stopReplying(name, callback, context) {\n if (Radio._eventsApi(this, 'stopReplying', name)) {\n return this;\n }\n\n // Remove everything if there are no arguments passed\n if (!name && !callback && !context) {\n delete this._requests;\n } else if (!removeHandlers(this._requests, name, callback, context)) {\n Radio.debugLog('Attempted to remove the unregistered request', name, this.channelName);\n }\n\n return this;\n }\n };\n\n /*\n * Backbone.Radio.channel\n * ----------------------\n * Get a reference to a channel by name.\n *\n */\n\n Radio._channels = {};\n\n Radio.channel = function (channelName) {\n if (!channelName) {\n throw new Error('You must provide a name for the channel.');\n }\n\n if (Radio._channels[channelName]) {\n return Radio._channels[channelName];\n } else {\n return Radio._channels[channelName] = new Radio.Channel(channelName);\n }\n };\n\n /*\n * Backbone.Radio.Channel\n * ----------------------\n * A Channel is an object that extends from Backbone.Events,\n * and Radio.Requests.\n *\n */\n\n Radio.Channel = function (channelName) {\n this.channelName = channelName;\n };\n\n _.extend(Radio.Channel.prototype, Backbone.Events, Radio.Requests, {\n\n // Remove all handlers from the messaging systems of this channel\n reset: function reset() {\n this.off();\n this.stopListening();\n this.stopReplying();\n return this;\n }\n });\n\n /*\n * Top-level API\n * -------------\n * Supplies the 'top-level API' for working with Channels directly\n * from Backbone.Radio.\n *\n */\n\n var channel;\n var args;\n var systems = [Backbone.Events, Radio.Requests];\n _.each(systems, function (system) {\n _.each(system, function (method, methodName) {\n Radio[methodName] = function (channelName) {\n args = _.toArray(arguments).slice(1);\n channel = this.channel(channelName);\n return channel[methodName].apply(channel, args);\n };\n });\n });\n\n Radio.reset = function (channelName) {\n var channels = !channelName ? this._channels : [this._channels[channelName]];\n _.each(channels, function (channel) {\n channel.reset();\n });\n };\n\n return Radio;\n\n}));\n"],"file":"backbone.radio.js","sourceRoot":"/source/"}
@@ -1,2 +1 @@
1
- // Backbone.Radio v1.0.4
2
- {"version":3,"sources":["backbone.radio.min.js"],"names":["global","factory","exports","module","require","define","amd","Backbone","Radio","_","this","removeHandler","store","name","callback","context","event","_callback","removeHandlers","names","keys","matched","i","length","_partial","channelName","_logs","bind","log","makeCallback","isFunction","babelHelpers","Symbol","iterator","obj","constructor","previousRadio","VERSION","noConflict","DEBUG","_debugText","warning","eventName","debugLog","console","warn","eventSplitter","_eventsApi","action","rest","results","key","result","apply","concat","test","extend","split","l","_callHandler","args","a1","a2","a3","call","toArray","arguments","slice","tuneIn","channel","_tunedIn","on","tuneOut","off","Requests","request","requests","_requests","handler","reply","replyOnce","self","once","stopReplying","_channels","Error","Channel","prototype","Events","reset","stopListening","systems","each","system","method","methodName","channels"],"mappings":"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","file":"backbone.radio.min.js","sourcesContent":["// Backbone.Radio v1.0.4\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('underscore'), require('backbone')) :\n typeof define === 'function' && define.amd ? define(['underscore', 'backbone'], factory) :\n (global.Backbone = global.Backbone || {}, global.Backbone.Radio = factory(global._,global.Backbone));\n}(this, function (_,Backbone) { 'use strict';\n\n _ = 'default' in _ ? _['default'] : _;\n Backbone = 'default' in Backbone ? Backbone['default'] : Backbone;\n\n var babelHelpers = {};\n babelHelpers.typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n babelHelpers;\n\n var previousRadio = Backbone.Radio;\n\n var Radio = Backbone.Radio = {};\n\n Radio.VERSION = '1.0.4';\n\n // This allows you to run multiple instances of Radio on the same\n // webapp. After loading the new version, call `noConflict()` to\n // get a reference to it. At the same time the old version will be\n // returned to Backbone.Radio.\n Radio.noConflict = function () {\n Backbone.Radio = previousRadio;\n return this;\n };\n\n // Whether or not we're in DEBUG mode or not. DEBUG mode helps you\n // get around the issues of lack of warnings when events are mis-typed.\n Radio.DEBUG = false;\n\n // Format debug text.\n Radio._debugText = function (warning, eventName, channelName) {\n return warning + (channelName ? ' on the ' + channelName + ' channel' : '') + ': \"' + eventName + '\"';\n };\n\n // This is the method that's called when an unregistered event was called.\n // By default, it logs warning to the console. By overriding this you could\n // make it throw an Error, for instance. This would make firing a nonexistent event\n // have the same consequence as firing a nonexistent method on an Object.\n Radio.debugLog = function (warning, eventName, channelName) {\n if (Radio.DEBUG && console && console.warn) {\n console.warn(Radio._debugText(warning, eventName, channelName));\n }\n };\n\n var eventSplitter = /\\s+/;\n\n // An internal method used to handle Radio's method overloading for Requests.\n // It's borrowed from Backbone.Events. It differs from Backbone's overload\n // API (which is used in Backbone.Events) in that it doesn't support space-separated\n // event names.\n Radio._eventsApi = function (obj, action, name, rest) {\n if (!name) {\n return false;\n }\n\n var results = {};\n\n // Handle event maps.\n if ((typeof name === 'undefined' ? 'undefined' : babelHelpers.typeof(name)) === 'object') {\n for (var key in name) {\n var result = obj[action].apply(obj, [key, name[key]].concat(rest));\n eventSplitter.test(key) ? _.extend(results, result) : results[key] = result;\n }\n return results;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n results[names[i]] = obj[action].apply(obj, [names[i]].concat(rest));\n }\n return results;\n }\n\n return false;\n };\n\n // An optimized way to execute callbacks.\n Radio._callHandler = function (callback, context, args) {\n var a1 = args[0],\n a2 = args[1],\n a3 = args[2];\n switch (args.length) {\n case 0:\n return callback.call(context);\n case 1:\n return callback.call(context, a1);\n case 2:\n return callback.call(context, a1, a2);\n case 3:\n return callback.call(context, a1, a2, a3);\n default:\n return callback.apply(context, args);\n }\n };\n\n // A helper used by `off` methods to the handler from the store\n function removeHandler(store, name, callback, context) {\n var event = store[name];\n if ((!callback || callback === event.callback || callback === event.callback._callback) && (!context || context === event.context)) {\n delete store[name];\n return true;\n }\n }\n\n function removeHandlers(store, name, callback, context) {\n store || (store = {});\n var names = name ? [name] : _.keys(store);\n var matched = false;\n\n for (var i = 0, length = names.length; i < length; i++) {\n name = names[i];\n\n // If there's no event by this name, log it and continue\n // with the loop\n if (!store[name]) {\n continue;\n }\n\n if (removeHandler(store, name, callback, context)) {\n matched = true;\n }\n }\n\n return matched;\n }\n\n /*\n * tune-in\n * -------\n * Get console logs of a channel's activity\n *\n */\n\n var _logs = {};\n\n // This is to produce an identical function in both tuneIn and tuneOut,\n // so that Backbone.Events unregisters it.\n function _partial(channelName) {\n return _logs[channelName] || (_logs[channelName] = _.bind(Radio.log, Radio, channelName));\n }\n\n _.extend(Radio, {\n\n // Log information about the channel and event\n log: function log(channelName, eventName) {\n if (typeof console === 'undefined') {\n return;\n }\n var args = _.toArray(arguments).slice(2);\n console.log('[' + channelName + '] \"' + eventName + '\"', args);\n },\n\n // Logs all events on this channel to the console. It sets an\n // internal value on the channel telling it we're listening,\n // then sets a listener on the Backbone.Events\n tuneIn: function tuneIn(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = true;\n channel.on('all', _partial(channelName));\n return this;\n },\n\n // Stop logging all of the activities on this channel to the console\n tuneOut: function tuneOut(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = false;\n channel.off('all', _partial(channelName));\n delete _logs[channelName];\n return this;\n }\n });\n\n /*\n * Backbone.Radio.Requests\n * -----------------------\n * A messaging system for requesting data.\n *\n */\n\n function makeCallback(callback) {\n return _.isFunction(callback) ? callback : function () {\n return callback;\n };\n }\n\n Radio.Requests = {\n\n // Make a request\n request: function request(name) {\n var args = _.toArray(arguments).slice(1);\n var results = Radio._eventsApi(this, 'request', name, args);\n if (results) {\n return results;\n }\n var channelName = this.channelName;\n var requests = this._requests;\n\n // Check if we should log the request, and if so, do it\n if (channelName && this._tunedIn) {\n Radio.log.apply(this, [channelName, name].concat(args));\n }\n\n // If the request isn't handled, log it in DEBUG mode and exit\n if (requests && (requests[name] || requests['default'])) {\n var handler = requests[name] || requests['default'];\n args = requests[name] ? args : arguments;\n return Radio._callHandler(handler.callback, handler.context, args);\n } else {\n Radio.debugLog('An unhandled request was fired', name, channelName);\n }\n },\n\n // Set up a handler for a request\n reply: function reply(name, callback, context) {\n if (Radio._eventsApi(this, 'reply', name, [callback, context])) {\n return this;\n }\n\n this._requests || (this._requests = {});\n\n if (this._requests[name]) {\n Radio.debugLog('A request was overwritten', name, this.channelName);\n }\n\n this._requests[name] = {\n callback: makeCallback(callback),\n context: context || this\n };\n\n return this;\n },\n\n // Set up a handler that can only be requested once\n replyOnce: function replyOnce(name, callback, context) {\n if (Radio._eventsApi(this, 'replyOnce', name, [callback, context])) {\n return this;\n }\n\n var self = this;\n\n var once = _.once(function () {\n self.stopReplying(name);\n return makeCallback(callback).apply(this, arguments);\n });\n\n return this.reply(name, once, context);\n },\n\n // Remove handler(s)\n stopReplying: function stopReplying(name, callback, context) {\n if (Radio._eventsApi(this, 'stopReplying', name)) {\n return this;\n }\n\n // Remove everything if there are no arguments passed\n if (!name && !callback && !context) {\n delete this._requests;\n } else if (!removeHandlers(this._requests, name, callback, context)) {\n Radio.debugLog('Attempted to remove the unregistered request', name, this.channelName);\n }\n\n return this;\n }\n };\n\n /*\n * Backbone.Radio.channel\n * ----------------------\n * Get a reference to a channel by name.\n *\n */\n\n Radio._channels = {};\n\n Radio.channel = function (channelName) {\n if (!channelName) {\n throw new Error('You must provide a name for the channel.');\n }\n\n if (Radio._channels[channelName]) {\n return Radio._channels[channelName];\n } else {\n return Radio._channels[channelName] = new Radio.Channel(channelName);\n }\n };\n\n /*\n * Backbone.Radio.Channel\n * ----------------------\n * A Channel is an object that extends from Backbone.Events,\n * and Radio.Requests.\n *\n */\n\n Radio.Channel = function (channelName) {\n this.channelName = channelName;\n };\n\n _.extend(Radio.Channel.prototype, Backbone.Events, Radio.Requests, {\n\n // Remove all handlers from the messaging systems of this channel\n reset: function reset() {\n this.off();\n this.stopListening();\n this.stopReplying();\n return this;\n }\n });\n\n /*\n * Top-level API\n * -------------\n * Supplies the 'top-level API' for working with Channels directly\n * from Backbone.Radio.\n *\n */\n\n var channel;\n var args;\n var systems = [Backbone.Events, Radio.Requests];\n _.each(systems, function (system) {\n _.each(system, function (method, methodName) {\n Radio[methodName] = function (channelName) {\n args = _.toArray(arguments).slice(1);\n channel = this.channel(channelName);\n return channel[methodName].apply(channel, args);\n };\n });\n });\n\n Radio.reset = function (channelName) {\n var channels = !channelName ? this._channels : [this._channels[channelName]];\n _.each(channels, function (channel) {\n channel.reset();\n });\n };\n\n return Radio;\n\n}));\n//# sourceMappingURL=./backbone.radio.js.map"],"sourceRoot":"/source/"}
1
+ {"version":3,"sources":["backbone.radio.min.js"],"names":["global","factory","exports","module","require","define","amd","Backbone","Radio","_","this","removeHandler","store","name","callback","context","event","_callback","removeHandlers","names","keys","matched","i","length","_partial","channelName","_logs","bind","log","makeCallback","isFunction","_typeof","Symbol","iterator","obj","constructor","previousRadio","VERSION","noConflict","DEBUG","_debugText","warning","eventName","debugLog","console","warn","eventSplitter","_eventsApi","action","rest","results","key","result","apply","concat","test","extend","split","l","_callHandler","args","a1","a2","a3","call","toArray","arguments","slice","tuneIn","channel","_tunedIn","on","tuneOut","off","Requests","request","requests","_requests","handler","reply","replyOnce","self","once","stopReplying","_channels","Error","Channel","prototype","Events","reset","stopListening","systems","each","system","method","methodName","channels"],"mappings":"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","file":"backbone.radio.min.js","sourcesContent":["// Backbone.Radio v2.0.0\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('underscore'), require('backbone')) :\n typeof define === 'function' && define.amd ? define(['underscore', 'backbone'], factory) :\n (global.Backbone = global.Backbone || {}, global.Backbone.Radio = factory(global._,global.Backbone));\n}(this, function (_,Backbone) { 'use strict';\n\n _ = 'default' in _ ? _['default'] : _;\n Backbone = 'default' in Backbone ? Backbone['default'] : Backbone;\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n };\n\n var previousRadio = Backbone.Radio;\n\n var Radio = Backbone.Radio = {};\n\n Radio.VERSION = '2.0.0';\n\n // This allows you to run multiple instances of Radio on the same\n // webapp. After loading the new version, call `noConflict()` to\n // get a reference to it. At the same time the old version will be\n // returned to Backbone.Radio.\n Radio.noConflict = function () {\n Backbone.Radio = previousRadio;\n return this;\n };\n\n // Whether or not we're in DEBUG mode or not. DEBUG mode helps you\n // get around the issues of lack of warnings when events are mis-typed.\n Radio.DEBUG = false;\n\n // Format debug text.\n Radio._debugText = function (warning, eventName, channelName) {\n return warning + (channelName ? ' on the ' + channelName + ' channel' : '') + ': \"' + eventName + '\"';\n };\n\n // This is the method that's called when an unregistered event was called.\n // By default, it logs warning to the console. By overriding this you could\n // make it throw an Error, for instance. This would make firing a nonexistent event\n // have the same consequence as firing a nonexistent method on an Object.\n Radio.debugLog = function (warning, eventName, channelName) {\n if (Radio.DEBUG && console && console.warn) {\n console.warn(Radio._debugText(warning, eventName, channelName));\n }\n };\n\n var eventSplitter = /\\s+/;\n\n // An internal method used to handle Radio's method overloading for Requests.\n // It's borrowed from Backbone.Events. It differs from Backbone's overload\n // API (which is used in Backbone.Events) in that it doesn't support space-separated\n // event names.\n Radio._eventsApi = function (obj, action, name, rest) {\n if (!name) {\n return false;\n }\n\n var results = {};\n\n // Handle event maps.\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n for (var key in name) {\n var result = obj[action].apply(obj, [key, name[key]].concat(rest));\n eventSplitter.test(key) ? _.extend(results, result) : results[key] = result;\n }\n return results;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n results[names[i]] = obj[action].apply(obj, [names[i]].concat(rest));\n }\n return results;\n }\n\n return false;\n };\n\n // An optimized way to execute callbacks.\n Radio._callHandler = function (callback, context, args) {\n var a1 = args[0],\n a2 = args[1],\n a3 = args[2];\n switch (args.length) {\n case 0:\n return callback.call(context);\n case 1:\n return callback.call(context, a1);\n case 2:\n return callback.call(context, a1, a2);\n case 3:\n return callback.call(context, a1, a2, a3);\n default:\n return callback.apply(context, args);\n }\n };\n\n // A helper used by `off` methods to the handler from the store\n function removeHandler(store, name, callback, context) {\n var event = store[name];\n if ((!callback || callback === event.callback || callback === event.callback._callback) && (!context || context === event.context)) {\n delete store[name];\n return true;\n }\n }\n\n function removeHandlers(store, name, callback, context) {\n store || (store = {});\n var names = name ? [name] : _.keys(store);\n var matched = false;\n\n for (var i = 0, length = names.length; i < length; i++) {\n name = names[i];\n\n // If there's no event by this name, log it and continue\n // with the loop\n if (!store[name]) {\n continue;\n }\n\n if (removeHandler(store, name, callback, context)) {\n matched = true;\n }\n }\n\n return matched;\n }\n\n /*\n * tune-in\n * -------\n * Get console logs of a channel's activity\n *\n */\n\n var _logs = {};\n\n // This is to produce an identical function in both tuneIn and tuneOut,\n // so that Backbone.Events unregisters it.\n function _partial(channelName) {\n return _logs[channelName] || (_logs[channelName] = _.bind(Radio.log, Radio, channelName));\n }\n\n _.extend(Radio, {\n\n // Log information about the channel and event\n log: function log(channelName, eventName) {\n if (typeof console === 'undefined') {\n return;\n }\n var args = _.toArray(arguments).slice(2);\n console.log('[' + channelName + '] \"' + eventName + '\"', args);\n },\n\n // Logs all events on this channel to the console. It sets an\n // internal value on the channel telling it we're listening,\n // then sets a listener on the Backbone.Events\n tuneIn: function tuneIn(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = true;\n channel.on('all', _partial(channelName));\n return this;\n },\n\n // Stop logging all of the activities on this channel to the console\n tuneOut: function tuneOut(channelName) {\n var channel = Radio.channel(channelName);\n channel._tunedIn = false;\n channel.off('all', _partial(channelName));\n delete _logs[channelName];\n return this;\n }\n });\n\n /*\n * Backbone.Radio.Requests\n * -----------------------\n * A messaging system for requesting data.\n *\n */\n\n function makeCallback(callback) {\n return _.isFunction(callback) ? callback : function () {\n return callback;\n };\n }\n\n Radio.Requests = {\n\n // Make a request\n request: function request(name) {\n var args = _.toArray(arguments).slice(1);\n var results = Radio._eventsApi(this, 'request', name, args);\n if (results) {\n return results;\n }\n var channelName = this.channelName;\n var requests = this._requests;\n\n // Check if we should log the request, and if so, do it\n if (channelName && this._tunedIn) {\n Radio.log.apply(this, [channelName, name].concat(args));\n }\n\n // If the request isn't handled, log it in DEBUG mode and exit\n if (requests && (requests[name] || requests['default'])) {\n var handler = requests[name] || requests['default'];\n args = requests[name] ? args : arguments;\n return Radio._callHandler(handler.callback, handler.context, args);\n } else {\n Radio.debugLog('An unhandled request was fired', name, channelName);\n }\n },\n\n // Set up a handler for a request\n reply: function reply(name, callback, context) {\n if (Radio._eventsApi(this, 'reply', name, [callback, context])) {\n return this;\n }\n\n this._requests || (this._requests = {});\n\n if (this._requests[name]) {\n Radio.debugLog('A request was overwritten', name, this.channelName);\n }\n\n this._requests[name] = {\n callback: makeCallback(callback),\n context: context || this\n };\n\n return this;\n },\n\n // Set up a handler that can only be requested once\n replyOnce: function replyOnce(name, callback, context) {\n if (Radio._eventsApi(this, 'replyOnce', name, [callback, context])) {\n return this;\n }\n\n var self = this;\n\n var once = _.once(function () {\n self.stopReplying(name);\n return makeCallback(callback).apply(this, arguments);\n });\n\n return this.reply(name, once, context);\n },\n\n // Remove handler(s)\n stopReplying: function stopReplying(name, callback, context) {\n if (Radio._eventsApi(this, 'stopReplying', name)) {\n return this;\n }\n\n // Remove everything if there are no arguments passed\n if (!name && !callback && !context) {\n delete this._requests;\n } else if (!removeHandlers(this._requests, name, callback, context)) {\n Radio.debugLog('Attempted to remove the unregistered request', name, this.channelName);\n }\n\n return this;\n }\n };\n\n /*\n * Backbone.Radio.channel\n * ----------------------\n * Get a reference to a channel by name.\n *\n */\n\n Radio._channels = {};\n\n Radio.channel = function (channelName) {\n if (!channelName) {\n throw new Error('You must provide a name for the channel.');\n }\n\n if (Radio._channels[channelName]) {\n return Radio._channels[channelName];\n } else {\n return Radio._channels[channelName] = new Radio.Channel(channelName);\n }\n };\n\n /*\n * Backbone.Radio.Channel\n * ----------------------\n * A Channel is an object that extends from Backbone.Events,\n * and Radio.Requests.\n *\n */\n\n Radio.Channel = function (channelName) {\n this.channelName = channelName;\n };\n\n _.extend(Radio.Channel.prototype, Backbone.Events, Radio.Requests, {\n\n // Remove all handlers from the messaging systems of this channel\n reset: function reset() {\n this.off();\n this.stopListening();\n this.stopReplying();\n return this;\n }\n });\n\n /*\n * Top-level API\n * -------------\n * Supplies the 'top-level API' for working with Channels directly\n * from Backbone.Radio.\n *\n */\n\n var channel;\n var args;\n var systems = [Backbone.Events, Radio.Requests];\n _.each(systems, function (system) {\n _.each(system, function (method, methodName) {\n Radio[methodName] = function (channelName) {\n args = _.toArray(arguments).slice(1);\n channel = this.channel(channelName);\n return channel[methodName].apply(channel, args);\n };\n });\n });\n\n Radio.reset = function (channelName) {\n var channels = !channelName ? this._channels : [this._channels[channelName]];\n _.each(channels, function (channel) {\n channel.reset();\n });\n };\n\n return Radio;\n\n}));\n//# sourceMappingURL=./backbone.radio.js.map"],"sourceRoot":"/source/"}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yano-backbone-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan C. Calixto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-16 00:00:00.000000000 Z
11
+ date: 2016-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -122,18 +122,15 @@ files:
122
122
  - vendor/assets/javascripts/backbone.js
123
123
  - vendor/assets/javascripts/backbone/backbone.js
124
124
  - vendor/assets/javascripts/backbone/backbone.min.js.erb
125
- - vendor/assets/javascripts/marionette/backbone.babysitter.js
126
- - vendor/assets/javascripts/marionette/backbone.babysitter.min.js.erb
125
+ - vendor/assets/javascripts/marionette/.keep
127
126
  - vendor/assets/javascripts/marionette/backbone.handlebars.adapter.js
128
127
  - vendor/assets/javascripts/marionette/backbone.marionette.js
129
128
  - vendor/assets/javascripts/marionette/backbone.marionette.min.js.erb
130
- - vendor/assets/javascripts/marionette/backbone.radio.adapter.js
131
129
  - vendor/assets/javascripts/marionette/backbone.radio.js.erb
132
130
  - vendor/assets/javascripts/marionette/backbone.radio.min.js.erb
133
131
  - vendor/assets/javascripts/underscore/underscore.js
134
132
  - vendor/assets/javascripts/underscore/underscore.min.js.erb
135
133
  - vendor/assets/source_maps/.keep
136
- - vendor/assets/source_maps/backbone.babysitter.min.js.map
137
134
  - vendor/assets/source_maps/backbone.marionette.min.js.map
138
135
  - vendor/assets/source_maps/backbone.min.map
139
136
  - vendor/assets/source_maps/backbone.radio.js.map
@@ -160,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
157
  version: 1.3.6
161
158
  requirements: []
162
159
  rubyforge_project:
163
- rubygems_version: 2.6.4
160
+ rubygems_version: 2.6.6
164
161
  signing_key:
165
162
  specification_version: 4
166
163
  summary: Use BackboneJS with Rails 4+
@@ -1,190 +0,0 @@
1
- // Backbone.BabySitter
2
- // -------------------
3
- // v0.1.11
4
- //
5
- // Copyright (c)2016 Derick Bailey, Muted Solutions, LLC.
6
- // Distributed under MIT license
7
- //
8
- // http://github.com/marionettejs/backbone.babysitter
9
-
10
- (function(root, factory) {
11
-
12
- if (typeof define === 'function' && define.amd) {
13
- define(['backbone', 'underscore'], function(Backbone, _) {
14
- return factory(Backbone, _);
15
- });
16
- } else if (typeof exports !== 'undefined') {
17
- var Backbone = require('backbone');
18
- var _ = require('underscore');
19
- module.exports = factory(Backbone, _);
20
- } else {
21
- factory(root.Backbone, root._);
22
- }
23
-
24
- }(this, function(Backbone, _) {
25
- 'use strict';
26
-
27
- var previousChildViewContainer = Backbone.ChildViewContainer;
28
-
29
- // BabySitter.ChildViewContainer
30
- // -----------------------------
31
- //
32
- // Provide a container to store, retrieve and
33
- // shut down child views.
34
-
35
- Backbone.ChildViewContainer = (function (Backbone, _) {
36
-
37
- // Container Constructor
38
- // ---------------------
39
-
40
- var Container = function(views){
41
- this._views = {};
42
- this._indexByModel = {};
43
- this._indexByCustom = {};
44
- this._updateLength();
45
-
46
- _.each(views, this.add, this);
47
- };
48
-
49
- // Container Methods
50
- // -----------------
51
-
52
- _.extend(Container.prototype, {
53
-
54
- // Add a view to this container. Stores the view
55
- // by `cid` and makes it searchable by the model
56
- // cid (and model itself). Optionally specify
57
- // a custom key to store an retrieve the view.
58
- add: function(view, customIndex){
59
- var viewCid = view.cid;
60
-
61
- // store the view
62
- this._views[viewCid] = view;
63
-
64
- // index it by model
65
- if (view.model){
66
- this._indexByModel[view.model.cid] = viewCid;
67
- }
68
-
69
- // index by custom
70
- if (customIndex){
71
- this._indexByCustom[customIndex] = viewCid;
72
- }
73
-
74
- this._updateLength();
75
- return this;
76
- },
77
-
78
- // Find a view by the model that was attached to
79
- // it. Uses the model's `cid` to find it.
80
- findByModel: function(model){
81
- return this.findByModelCid(model.cid);
82
- },
83
-
84
- // Find a view by the `cid` of the model that was attached to
85
- // it. Uses the model's `cid` to find the view `cid` and
86
- // retrieve the view using it.
87
- findByModelCid: function(modelCid){
88
- var viewCid = this._indexByModel[modelCid];
89
- return this.findByCid(viewCid);
90
- },
91
-
92
- // Find a view by a custom indexer.
93
- findByCustom: function(index){
94
- var viewCid = this._indexByCustom[index];
95
- return this.findByCid(viewCid);
96
- },
97
-
98
- // Find by index. This is not guaranteed to be a
99
- // stable index.
100
- findByIndex: function(index){
101
- return _.values(this._views)[index];
102
- },
103
-
104
- // retrieve a view by its `cid` directly
105
- findByCid: function(cid){
106
- return this._views[cid];
107
- },
108
-
109
- // Remove a view
110
- remove: function(view){
111
- var viewCid = view.cid;
112
-
113
- // delete model index
114
- if (view.model){
115
- delete this._indexByModel[view.model.cid];
116
- }
117
-
118
- // delete custom index
119
- _.any(this._indexByCustom, function(cid, key) {
120
- if (cid === viewCid) {
121
- delete this._indexByCustom[key];
122
- return true;
123
- }
124
- }, this);
125
-
126
- // remove the view from the container
127
- delete this._views[viewCid];
128
-
129
- // update the length
130
- this._updateLength();
131
- return this;
132
- },
133
-
134
- // Call a method on every view in the container,
135
- // passing parameters to the call method one at a
136
- // time, like `function.call`.
137
- call: function(method){
138
- this.apply(method, _.tail(arguments));
139
- },
140
-
141
- // Apply a method on every view in the container,
142
- // passing parameters to the call method one at a
143
- // time, like `function.apply`.
144
- apply: function(method, args){
145
- _.each(this._views, function(view){
146
- if (_.isFunction(view[method])){
147
- view[method].apply(view, args || []);
148
- }
149
- });
150
- },
151
-
152
- // Update the `.length` attribute on this container
153
- _updateLength: function(){
154
- this.length = _.size(this._views);
155
- }
156
- });
157
-
158
- // Borrowing this code from Backbone.Collection:
159
- // http://backbonejs.org/docs/backbone.html#section-106
160
- //
161
- // Mix in methods from Underscore, for iteration, and other
162
- // collection related features.
163
- var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
164
- 'select', 'reject', 'every', 'all', 'some', 'any', 'include',
165
- 'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
166
- 'last', 'without', 'isEmpty', 'pluck', 'reduce'];
167
-
168
- _.each(methods, function(method) {
169
- Container.prototype[method] = function() {
170
- var views = _.values(this._views);
171
- var args = [views].concat(_.toArray(arguments));
172
- return _[method].apply(_, args);
173
- };
174
- });
175
-
176
- // return the public API
177
- return Container;
178
- })(Backbone, _);
179
-
180
-
181
- Backbone.ChildViewContainer.VERSION = '0.1.11';
182
-
183
- Backbone.ChildViewContainer.noConflict = function () {
184
- Backbone.ChildViewContainer = previousChildViewContainer;
185
- return this;
186
- };
187
-
188
- return Backbone.ChildViewContainer;
189
-
190
- }));
@@ -1,12 +0,0 @@
1
- // Backbone.BabySitter
2
- // -------------------
3
- // v0.1.11
4
- //
5
- // Copyright (c)2016 Derick Bailey, Muted Solutions, LLC.
6
- // Distributed under MIT license
7
- //
8
- // http://github.com/marionettejs/backbone.babysitter
9
-
10
-
11
- !function(a,b){if("function"==typeof define&&define.amd)define(["backbone","underscore"],function(a,c){return b(a,c)});else if("undefined"!=typeof exports){var c=require("backbone"),d=require("underscore");module.exports=b(c,d)}else b(a.Backbone,a._)}(this,function(a,b){"use strict";var c=a.ChildViewContainer;return a.ChildViewContainer=function(a,b){var c=function(a){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),b.each(a,this.add,this)};b.extend(c.prototype,{add:function(a,b){var c=a.cid;return this._views[c]=a,a.model&&(this._indexByModel[a.model.cid]=c),b&&(this._indexByCustom[b]=c),this._updateLength(),this},findByModel:function(a){return this.findByModelCid(a.cid)},findByModelCid:function(a){var b=this._indexByModel[a];return this.findByCid(b)},findByCustom:function(a){var b=this._indexByCustom[a];return this.findByCid(b)},findByIndex:function(a){return b.values(this._views)[a]},findByCid:function(a){return this._views[a]},remove:function(a){var c=a.cid;return a.model&&delete this._indexByModel[a.model.cid],b.any(this._indexByCustom,function(a,b){return a===c?(delete this._indexByCustom[b],!0):void 0},this),delete this._views[c],this._updateLength(),this},call:function(a){this.apply(a,b.tail(arguments))},apply:function(a,c){b.each(this._views,function(d){b.isFunction(d[a])&&d[a].apply(d,c||[])})},_updateLength:function(){this.length=b.size(this._views)}});var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck","reduce"];return b.each(d,function(a){c.prototype[a]=function(){var c=b.values(this._views),d=[c].concat(b.toArray(arguments));return b[a].apply(b,d)}}),c}(a,b),a.ChildViewContainer.VERSION="0.1.11",a.ChildViewContainer.noConflict=function(){return a.ChildViewContainer=c,this},a.ChildViewContainer});
12
- //# sourceMappingURL=<%= asset_path 'backbone.babysitter.min.js.map' %>
@@ -1,23 +0,0 @@
1
- (function(root, factory) {
2
- if (typeof define === 'function' && define.amd) {
3
- define(['backbone.marionette', 'backbone.radio', 'underscore'], function(Marionette, Radio, _) {
4
- return factory(Marionette, Radio, _);
5
- });
6
- }
7
- else if (typeof exports !== 'undefined') {
8
- var Marionette = require('backbone.marionette');
9
- var Radio = require('backbone.radio');
10
- var _ = require('underscore');
11
- module.exports = factory(Marionette, Radio, _);
12
- }
13
- else {
14
- factory(root.Backbone.Marionette, root.Backbone.Radio, root._);
15
- }
16
- }(this, function(Marionette, Radio, _) {
17
- 'use strict';
18
-
19
- Marionette.Application.prototype._initChannel = function () {
20
- this.channelName = _.result(this, 'channelName') || 'global';
21
- this.channel = _.result(this, 'channel') || Radio.channel(this.channelName);
22
- }
23
- }));
@@ -1 +0,0 @@
1
- {"version":3,"sources":["backbone.babysitter.js"],"names":["root","factory","define","amd","Backbone","_","exports","require","module","this","previousChildViewContainer","ChildViewContainer","Container","views","_views","_indexByModel","_indexByCustom","_updateLength","each","add","extend","prototype","view","customIndex","viewCid","cid","model","findByModel","findByModelCid","modelCid","findByCid","findByCustom","index","findByIndex","values","remove","any","key","call","method","apply","tail","arguments","args","isFunction","length","size","methods","concat","toArray","VERSION","noConflict"],"mappings":";;;;;;;;;;CASC,SAASA,EAAMC,GAEd,GAAsB,kBAAXC,SAAyBA,OAAOC,IACzCD,QAAQ,WAAY,cAAe,SAASE,EAAUC,GACpD,MAAOJ,GAAQG,EAAUC,SAEtB,IAAuB,mBAAZC,SAAyB,CACzC,GAAIF,GAAWG,QAAQ,YACnBF,EAAIE,QAAQ,aAChBC,QAAOF,QAAUL,EAAQG,EAAUC,OAEnCJ,GAAQD,EAAKI,SAAUJ,EAAKK,IAG9BI,KAAM,SAASL,EAAUC,GACzB,YAEA,IAAIK,GAA6BN,EAASO,kBAiK1C,OAzJAP,GAASO,mBAAqB,SAAWP,EAAUC,GAKjD,GAAIO,GAAY,SAASC,GACvBJ,KAAKK,UACLL,KAAKM,iBACLN,KAAKO,kBACLP,KAAKQ,gBAELZ,EAAEa,KAAKL,EAAOJ,KAAKU,IAAKV,MAM1BJ,GAAEe,OAAOR,EAAUS,WAMjBF,IAAK,SAASG,EAAMC,GAClB,GAAIC,GAAUF,EAAKG,GAgBnB,OAbAhB,MAAKK,OAAOU,GAAWF,EAGnBA,EAAKI,QACPjB,KAAKM,cAAcO,EAAKI,MAAMD,KAAOD,GAInCD,IACFd,KAAKO,eAAeO,GAAeC,GAGrCf,KAAKQ,gBACER,MAKTkB,YAAa,SAASD,GACpB,MAAOjB,MAAKmB,eAAeF,EAAMD,MAMnCG,eAAgB,SAASC,GACvB,GAAIL,GAAUf,KAAKM,cAAcc,EACjC,OAAOpB,MAAKqB,UAAUN,IAIxBO,aAAc,SAASC,GACrB,GAAIR,GAAUf,KAAKO,eAAegB,EAClC,OAAOvB,MAAKqB,UAAUN,IAKxBS,YAAa,SAASD,GACpB,MAAO3B,GAAE6B,OAAOzB,KAAKK,QAAQkB,IAI/BF,UAAW,SAASL,GAClB,MAAOhB,MAAKK,OAAOW,IAIrBU,OAAQ,SAASb,GACf,GAAIE,GAAUF,EAAKG,GAoBnB,OAjBIH,GAAKI,aACAjB,MAAKM,cAAcO,EAAKI,MAAMD,KAIvCpB,EAAE+B,IAAI3B,KAAKO,eAAgB,SAASS,EAAKY,GACvC,MAAIZ,KAAQD,SACHf,MAAKO,eAAeqB,IACpB,GAFT,QAIC5B,YAGIA,MAAKK,OAAOU,GAGnBf,KAAKQ,gBACER,MAMT6B,KAAM,SAASC,GACb9B,KAAK+B,MAAMD,EAAQlC,EAAEoC,KAAKC,aAM5BF,MAAO,SAASD,EAAQI,GACtBtC,EAAEa,KAAKT,KAAKK,OAAQ,SAASQ,GACvBjB,EAAEuC,WAAWtB,EAAKiB,KACpBjB,EAAKiB,GAAQC,MAAMlB,EAAMqB,UAM/B1B,cAAe,WACbR,KAAKoC,OAASxC,EAAEyC,KAAKrC,KAAKK,UAS9B,IAAIiC,IAAW,UAAW,OAAQ,MAAO,OAAQ,SAAU,SACzD,SAAU,SAAU,QAAS,MAAO,OAAQ,MAAO,UACnD,WAAY,SAAU,UAAW,QAAS,UAAW,OACrD,OAAQ,UAAW,UAAW,QAAS,SAWzC,OATA1C,GAAEa,KAAK6B,EAAS,SAASR,GACvB3B,EAAUS,UAAUkB,GAAU,WAC5B,GAAI1B,GAAQR,EAAE6B,OAAOzB,KAAKK,QACtB6B,GAAQ9B,GAAOmC,OAAO3C,EAAE4C,QAAQP,WACpC,OAAOrC,GAAEkC,GAAQC,MAAMnC,EAAGsC,MAKvB/B,GACNR,EAAUC,GAGbD,EAASO,mBAAmBuC,QAAU,SAEtC9C,EAASO,mBAAmBwC,WAAa,WAEvC,MADA/C,GAASO,mBAAqBD,EACvBD,MAGFL,EAASO","file":"backbone.babysitter.min.js"}