yano-backbone-rails 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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"}