New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

backbone.marionette

Package Overview
Dependencies
Maintainers
4
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

backbone.marionette - npm Package Compare versions

Comparing version 3.0.0-pre.5 to 3.0.0

ISSUE_TEMPLATE.md

6

lib/backbone.marionette.min.js
// MarionetteJS (Backbone.Marionette)
// ----------------------------------
// v3.0.0-pre.5
// v3.0.0
//

@@ -9,4 +9,4 @@ // Copyright (c)2016 Derick Bailey, Muted Solutions, LLC.

// http://marionettejs.com
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("backbone"),require("underscore"),require("backbone.radio")):"function"==typeof define&&define.amd?define(["backbone","underscore","backbone.radio"],t):e.Marionette=e.Mn=t(e.Backbone,e._,e.Backbone.Radio)}(this,function(e,t,i){"use strict";function n(e,t,i){return i.toUpperCase()}function r(e){for(var i="on"+e.replace(k,n),r=D.call(this,i),s=void 0,o=arguments.length,h=Array(o>1?o-1:0),d=1;d<o;d++)h[d-1]=arguments[d];return t.isFunction(r)&&(s=r.apply(this,h)),this.trigger.apply(this,[e].concat(h)),s}function s(e){for(var i=t.isFunction(e.triggerMethod)?e.triggerMethod:r,n=arguments.length,s=Array(n>1?n-1:0),o=1;o<n;o++)s[o-1]=arguments[o];return i.apply(e,s)}function o(e,i,n){e._getImmediateChildren&&t.each(e._getImmediateChildren(),function(e){n(e)&&s(e,i,e)})}function h(e){return!e._isAttached}function d(e){return!!h(e)&&(e._isAttached=!0,!0)}function a(e){return e._isAttached}function l(e){return!!a(e)&&(e._isAttached=!1,!0)}function c(e){function t(){o(e,"before:attach",h)}function i(){o(e,"attach",d),u()}function n(){o(e,"before:detach",a)}function r(){o(e,"detach",l)}function c(){u()}function u(){e._isAttached&&e._isRendered&&s(e,"dom:refresh",e)}e._areViewEventsMonitored||(e._areViewEventsMonitored=!0,e.on({"before:attach":t,attach:i,"before:detach":n,detach:r,render:c}))}function u(e,i,n,r,s){var o=r.split(/\s+/);t.each(o,function(t){var r=e[t];if(!r)throw new F('Method "'+t+'" was configured as an event handler, but does not exist.');e[s](i,n,r)})}function f(e,i,n,r){if(i&&n){if(!t.isObject(n))throw new F({message:"Bindings must be an object.",url:"marionette.functions.html#marionettebindevents"});t.each(n,function(n,s){return t.isString(n)?void u(e,i,s,n,r):void e[r](i,s,n)})}}function g(e,t){return f(this,e,t,"listenTo"),this}function p(e,t){return f(this,e,t,"stopListening"),this}function v(e,i,n,r){if(i&&n){if(!t.isObject(n))throw new F({message:"Bindings must be an object.",url:"marionette.functions.html#marionettebindrequests"});var s=U.call(e,n);i[r](s,e)}}function _(e,t){return v(this,e,t,"reply"),this}function m(e,t){return v(this,e,t,"stopReplying"),this}function y(e,i){return e.behaviorClass?e.behaviorClass:t.isFunction(e)?e:t.isFunction(Ce.Behaviors.behaviorsLookup)?Ce.Behaviors.behaviorsLookup(e,i)[i]:Ce.Behaviors.behaviorsLookup[i]}function w(e,i){return t.chain(i).map(function(i,n){var r=y(i,n),s=i===r?{}:i,o=new r(s,e),h=w(e,t.result(o,"behaviors"));return[o].concat(h)}).flatten().value()}function E(e,i){return[e+t.uniqueId(".evt"),i].join(" ")}function V(e,i){t.isString(i)&&(i={event:i});var n=i.event,r=i.preventDefault!==!1,s=i.stopPropagation!==!1;return function(t){r&&t.preventDefault(),s&&t.stopPropagation(),e.triggerMethod(n,e)}}function b(e){e.supportsDestroyLifecycle||s(e,"before:destroy",e);var t=!!e._isAttached;t&&s(e,"before:detach",e),e.remove(),t&&(e._isAttached=!1,s(e,"detach",e)),e._isDestroyed=!0,e.supportsDestroyLifecycle||s(e,"destroy",e)}function C(){throw new F({message:"You must define where your behaviors are stored.",url:"marionette.behaviors.md#behaviorslookup"})}function R(e){return!!Ve[e]}function M(e,t){return Ve[e]=t}e="default"in e?e.default:e,t="default"in t?t.default:t,i="default"in i?i.default:i;var x="3.0.0-pre.5",B=function(e){return function(t){for(var i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.apply(t,n)}},I=e.Model.extend,A=function e(i,n){t.isObject(i)&&(i=i.prev+" is going to be removed in the future. Please use "+i.next+" instead."+(i.url?" See: "+i.url:"")),Ce.DEV_MODE&&(void 0!==n&&n||e._cache[i]||(e._warn("Deprecation warning: "+i),e._cache[i]=!0))};A._console="undefined"!=typeof console?console:{},A._warn=function(){var e=A._console.warn||A._console.log||t.noop;return e.apply(A._console,arguments)},A._cache={};var O=function(t){return e.$.contains(document.documentElement,t)},T=function(e,i){e&&t.extend(this,t.pick(e,i))},D=function(e){if(e)return this.options&&void 0!==this.options[e]?this.options[e]:this[e]},U=function(e){var i=this;return t.reduce(e,function(e,n,r){return t.isFunction(n)||(n=i[n]),n&&(e[r]=n),e},{})},k=/(^|:)(\w)/gi,$=["description","fileName","lineNumber","name","message","number"],F=I.call(Error,{urlRoot:"http://marionettejs.com/docs/v"+x+"/",constructor:function(e,i){t.isObject(e)?(i=e,e=i.message):i||(i={});var n=Error.call(this,e);t.extend(this,t.pick(n,$),t.pick(i,$)),this.captureStackTrace(),i.url&&(this.url=this.urlRoot+i.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,F)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}});F.extend=I;var S=function(){for(var e=arguments.length,i=Array(e),n=0;n<e;n++)i[n]=arguments[n];this.options=t.extend.apply(t,[{},t.result(this,"options")].concat(i))},z={normalizeMethods:U,_setOptions:S,mergeOptions:T,getOption:D,bindEvents:g,unbindEvents:p},L={_initRadio:function(){var e=t.result(this,"channelName");if(e){if(!i)throw new F({name:"BackboneRadioMissing",message:'The dependency "backbone.radio" is missing.'});var n=this._channel=i.channel(e),r=t.result(this,"radioEvents");this.bindEvents(n,r);var s=t.result(this,"radioRequests");this.bindRequests(n,s),this.on("destroy",this._destroyRadio)}},_destroyRadio:function(){this._channel.stopReplying(null,null,this)},getChannel:function(){return this._channel},bindEvents:g,unbindEvents:p,bindRequests:_,unbindRequests:m},P=["channelName","radioEvents","radioRequests"],j=function(e){this._setOptions(e),this.mergeOptions(e,P),this.cid=t.uniqueId(this.cidPrefix),this._initRadio(),this.initialize.apply(this,arguments)};j.extend=I,t.extend(j.prototype,e.Events,z,L,{cidPrefix:"mno",_isDestroyed:!1,isDestroyed:function(){return this._isDestroyed},initialize:function(){},destroy:function(){if(this._isDestroyed)return this;for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return this.triggerMethod.apply(this,["before:destroy",this].concat(t)),this._isDestroyed=!0,this.triggerMethod.apply(this,["destroy",this].concat(t)),this.stopListening(),this},triggerMethod:r});var q=function(e){this.templateId=e};t.extend(q,{templateCaches:{},get:function(e,t){var i=this.templateCaches[e];return i||(i=new q(e),this.templateCaches[e]=i),i.load(t)},clear:function(){for(var e=void 0,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];var r=i.length;if(r>0)for(e=0;e<r;e++)delete this.templateCaches[i[e]];else this.templateCaches={}}}),t.extend(q.prototype,{load:function(e){if(this.compiledTemplate)return this.compiledTemplate;var t=this.loadTemplate(this.templateId,e);return this.compiledTemplate=this.compileTemplate(t,e),this.compiledTemplate},loadTemplate:function(t,i){var n=e.$(t);if(!n.length)throw new F({name:"NoTemplateError",message:'Could not find template: "'+t+'"'});return n.html()},compileTemplate:function(e,i){return t.template(e,i)}});var N=t.invokeMap||t.invoke,H=function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)},K={_initBehaviors:function(){var e=t.result(this,"behaviors");this._behaviors=t.isObject(e)?w(this,e):{}},_getBehaviorTriggers:function(){var e=N(this._behaviors,"getTriggers");return t.extend.apply(t,[{}].concat(H(e)))},_getBehaviorEvents:function(){var e=N(this._behaviors,"getEvents");return t.extend.apply(t,[{}].concat(H(e)))},_proxyBehaviorViewProperties:function(){N(this._behaviors,"proxyViewProperties")},_delegateBehaviorEntityEvents:function(){N(this._behaviors,"delegateEntityEvents")},_undelegateBehaviorEntityEvents:function(){N(this._behaviors,"undelegateEntityEvents")},_destroyBehaviors:function(e){N.apply(void 0,[this._behaviors,"destroy"].concat(H(e)))},_bindBehaviorUIElements:function(){N(this._behaviors,"bindUIElements")},_unbindBehaviorUIElements:function(){N(this._behaviors,"unbindUIElements")},_triggerEventOnBehaviors:function(){for(var e=this._behaviors,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];for(var s=0,o=e&&e.length;s<o;s++)r.apply(e[s],i)}},Y={_delegateEntityEvents:function(e,i){this._undelegateEntityEvents(e,i);var n=t.result(this,"modelEvents");g.call(this,e,n);var r=t.result(this,"collectionEvents");g.call(this,i,r)},_undelegateEntityEvents:function(e,i){var n=t.result(this,"modelEvents");p.call(this,e,n);var r=t.result(this,"collectionEvents");p.call(this,i,r)}},Z=/^(\S+)\s*(.*)$/,G=function(e){var t=e.match(Z);return E(t[1],t[2])},J={_getViewTriggers:function(e,i){return t.reduce(i,function(t,i,n){return n=G(n),t[n]=V(e,i),t},{})}},Q=function(e,i){return t.reduce(e,function(e,t,n){var r=W(n,i);return e[r]=t,e},{})},W=function(e,t){return e.replace(/@ui\.[a-zA-Z-_$0-9]*/g,function(e){return t[e.slice(4)]})},X=function e(i,n,r){return t.each(i,function(s,o){t.isString(s)?i[o]=W(s,n):t.isObject(s)&&t.isArray(r)&&(t.extend(s,e(t.pick(s,r),n)),t.each(r,function(e){var i=s[e];t.isString(i)&&(s[e]=W(i,n))}))}),i},ee={normalizeUIKeys:function(e){var t=this._getUIBindings();return Q(e,t)},normalizeUIValues:function(e,t){var i=this._getUIBindings();return X(e,i,t)},_getUIBindings:function(){var e=t.result(this,"_uiBindings"),i=t.result(this,"ui");return e||i},_bindUIElements:function(){var e=this;if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var i=t.result(this,"_uiBindings");this._ui={},t.each(i,function(t,i){e._ui[i]=e.$(t)}),this.ui=this._ui}},_unbindUIElements:function(){var e=this;this.ui&&this._uiBindings&&(t.each(this.ui,function(t,i){delete e.ui[i]}),this.ui=this._uiBindings,delete this._uiBindings,delete this._ui)},_getUI:function(e){return this._ui[e]}},te={supportsRenderLifecycle:!0,supportsDestroyLifecycle:!0,_isDestroyed:!1,isDestroyed:function(){return!!this._isDestroyed},_isRendered:!1,isRendered:function(){return!!this._isRendered},_isAttached:!1,isAttached:function(){return!!this._isAttached},setElement:function(){var t=!!this.el;return e.View.prototype.setElement.apply(this,arguments),t&&(this._isRendered=!!this.$el.length,this._isAttached=O(this.el)),this},delegateEvents:function(i){this._proxyBehaviorViewProperties(),this._buildEventProxies();var n=this._getEvents(i);"undefined"==typeof i&&(this.events=n);var r=t.extend({},this._getBehaviorEvents(),n,this._getBehaviorTriggers(),this.getTriggers());return e.View.prototype.delegateEvents.call(this,r),this},_getEvents:function(e){var i=e||this.events;return t.isFunction(i)?this.normalizeUIKeys(i()):this.normalizeUIKeys(i)},getTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(t.result(this,"triggers"));return this._getViewTriggers(this,e)}},delegateEntityEvents:function(){return this._delegateEntityEvents(this.model,this.collection),this._delegateBehaviorEntityEvents(),this},undelegateEntityEvents:function(){return this._undelegateEntityEvents(this.model,this.collection),this._undelegateBehaviorEntityEvents(),this},_ensureViewIsIntact:function(){if(this._isDestroyed)throw new F({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(this._isDestroyed)return this;for(var e=!!this._isAttached,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];return this.triggerMethod.apply(this,["before:destroy",this].concat(i)),e&&this.triggerMethod("before:detach",this),this.unbindUIElements(),this._removeElement(),e&&(this._isAttached=!1,this.triggerMethod("detach",this)),this._removeChildren(),this._destroyBehaviors(i),this._isDestroyed=!0,this._isRendered=!1,this.triggerMethod.apply(this,["destroy",this].concat(i)),this.stopListening(),this},bindUIElements:function(){return this._bindUIElements(),this._bindBehaviorUIElements(),this},unbindUIElements:function(){return this._unbindUIElements(),this._unbindBehaviorUIElements(),this},getUI:function(e){return this._ensureViewIsIntact(),this._getUI(e)},childViewEventPrefix:"childview",triggerMethod:function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=r.apply(this,t);return this._triggerEventOnBehaviors.apply(this,t),this._triggerEventOnParentLayout.apply(this,t),n},_buildEventProxies:function(){this._childViewEvents=t.result(this,"childViewEvents"),this._childViewTriggers=t.result(this,"childViewTriggers")},_triggerEventOnParentLayout:function(e){var i=this._parentView();if(i){for(var n=t.result(i,"childViewEventPrefix"),r=n+":"+e,s=arguments.length,o=Array(s>1?s-1:0),h=1;h<s;h++)o[h-1]=arguments[h];i.triggerMethod.apply(i,[r].concat(o));var d=i.normalizeMethods(i._childViewEvents);d&&t.isFunction(d[e])&&d[e].apply(i,o);var a=i._childViewTriggers;a&&t.isString(a[e])&&i.triggerMethod.apply(i,[a[e]].concat(o))}},_parentView:function(){for(var e=this._parent;e;){if(e instanceof he)return e;e=e._parent}}};t.extend(te,K,z,Y,J,ee);var ie=["allowMissingEl","parentEl","replaceElement"],ne=j.extend({cidPrefix:"mnr",replaceElement:!1,_isReplaced:!1,constructor:function(t){if(this._setOptions(t),this.mergeOptions(t,ie),this._initEl=this.el=this.getOption("el"),this.el=this.el instanceof e.$?this.el[0]:this.el,!this.el)throw new F({name:"NoElError",message:'An "el" must be specified for a region.'});this.$el=this.getEl(this.el),j.call(this,t)},show:function(e,t){if(this._ensureElement(t))return this._ensureView(e),e===this.currentView?this:(this.triggerMethod("before:show",this,e,t),c(e),this.empty(t),e.on("destroy",this.empty,this),e._parent=this,this._renderView(e),this._attachView(e,t),this.triggerMethod("show",this,e,t),this)},_renderView:function(e){e._isRendered||(e.supportsRenderLifecycle||s(e,"before:render",e),e.render(),e.supportsRenderLifecycle||(e._isRendered=!0,s(e,"render",e)))},_attachView:function(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=!e._isAttached&&O(this.el),r="undefined"==typeof i.replaceElement?!!t.result(this,"replaceElement"):!!i.replaceElement;n&&s(e,"before:attach",e),this.attachHtml(e,r),n&&(e._isAttached=!0,s(e,"attach",e)),this.currentView=e},_ensureElement:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(t.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),!this.$el||0===this.$el.length){var i="undefined"==typeof e.allowMissingEl?!!t.result(this,"allowMissingEl"):!!e.allowMissingEl;if(i)return!1;throw new F('An "el" must exist in DOM for this region '+this.cid)}return!0},_ensureView:function(e){if(!e)throw new F({name:"ViewNotValid",message:"The view passed is undefined and therefore invalid. You must pass a view instance to show."});if(e._isDestroyed)throw new F({name:"ViewDestroyedError",message:'View (cid: "'+e.cid+'") has already been destroyed and cannot be used.'})},getEl:function(i){return e.$(i,t.result(this,"parentEl"))},_replaceEl:function(e){this._restoreEl();var t=this.el.parentNode;t.replaceChild(e.el,this.el),this._isReplaced=!0},_restoreEl:function(){if(this._isReplaced){var e=this.currentView;if(e){var t=e.el.parentNode;t&&(t.replaceChild(this.el,e.el),this._isReplaced=!1)}}},isReplaced:function(){return!!this._isReplaced},attachHtml:function(e,t){t?this._replaceEl(e):this.el.appendChild(e.el)},empty:function(){var e=arguments.length<=0||void 0===arguments[0]?{allowMissingEl:!0}:arguments[0],t=this.currentView;return t?(t.off("destroy",this.empty,this),this.triggerMethod("before:empty",this,t),this._restoreEl(),delete this.currentView,t._isDestroyed||(this._removeView(t,e),delete t._parent),this.triggerMethod("empty",this,t),this):(this._ensureElement(e)&&this.detachHtml(),this)},_removeView:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.preventDestroy,n=!!i;return n?void this._detachView(e):void(e.destroy?e.destroy():b(e))},_detachView:function(e){var t=!!e._isAttached;t&&s(e,"before:detach",e),this.detachHtml(),t&&(e._isAttached=!1,s(e,"detach",e))},detachHtml:function(){this.$el.contents().detach()},hasView:function(){return!!this.currentView},reset:function(e){return this.empty(e),this.$el&&(this.el=this._initEl),delete this.$el,this},destroy:function(e){return this.reset(e),j.prototype.destroy.apply(this,arguments)}}),re={regionClass:ne,_initRegions:function(){this.regions=this.regions||{},this._regions={},this.addRegions(t.result(this,"regions"))},_reInitRegions:function(){N(this._regions,"reset")},addRegion:function(e,t){var i={};return i[e]=t,this.addRegions(i)[e]},addRegions:function(e){if(!t.isEmpty(e))return e=this.normalizeUIValues(e,["selector","el"]),this.regions=t.extend({},this.regions,e),this._addRegions(e)},_addRegions:function(e){var i=this;return t.reduce(e,function(e,t,n){return e[n]=i._buildRegion(t),i._addRegion(e[n],n),e},{})},_buildRegion:function(e){return e instanceof ne?e:this._buildRegionFromDefinition(e)},_buildRegionFromDefinition:function(e){if(t.isString(e))return this._buildRegionFromObject({el:e});if(t.isFunction(e))return this._buildRegionFromRegionClass(e);if(t.isObject(e))return this._buildRegionFromObject(e);throw new F({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromObject:function(e){var i=e.regionClass||this.regionClass,n=t.omit(e,"regionClass");return t.defaults(n,{el:e.selector,parentEl:t.partial(t.result,this,"el")}),new i(n)},_buildRegionFromRegionClass:function(e){return new e({parentEl:t.partial(t.result,this,"el")})},_addRegion:function(e,t){this.triggerMethod("before:add:region",this,t,e),e._parent=this,this._regions[t]=e,this.triggerMethod("add:region",this,t,e)},removeRegion:function(e){var t=this._regions[e];return this._removeRegion(t,e),t},removeRegions:function(){var e=this.getRegions();return t.each(this._regions,t.bind(this._removeRegion,this)),e},_removeRegion:function(e,t){this.triggerMethod("before:remove:region",this,t,e),e.empty(),e.stopListening(),delete this.regions[t],delete this._regions[t],this.triggerMethod("remove:region",this,t,e)},emptyRegions:function(){var e=this.getRegions();return N(e,"empty"),e},hasRegion:function(e){return!!this.getRegion(e)},getRegion:function(e){return this._regions[e]},getRegions:function(){return t.clone(this._regions)},showChildView:function(e,t){for(var i=this.getRegion(e),n=arguments.length,r=Array(n>2?n-2:0),s=2;s<n;s++)r[s-2]=arguments[s];return i.show.apply(i,[t].concat(r))},getChildView:function(e){return this.getRegion(e).currentView}},se={render:function(e,i){if(!e)throw new F({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var n=t.isFunction(e)?e:q.get(e);return n(i)}},oe=["behaviors","childViewEventPrefix","childViewEvents","childViewTriggers","collectionEvents","events","modelEvents","regionClass","regions","template","templateContext","triggers","ui"],he=e.View.extend({constructor:function(i){this.render=t.bind(this.render,this),this._setOptions(i),this.mergeOptions(i,oe),c(this),this._initBehaviors(),this._initRegions();var n=Array.prototype.slice.call(arguments);n[0]=this.options,e.View.prototype.constructor.apply(this,n),this.delegateEntityEvents()},serializeData:function(){return this.model||this.collection?this.model?this.serializeModel():{items:this.serializeCollection()}:{}},serializeModel:function(){return this.model?t.clone(this.model.attributes):{}},serializeCollection:function(){return this.collection?this.collection.map(function(e){return t.clone(e.attributes)}):{}},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._isRendered&&this._reInitRegions(),this._renderTemplate(),this.bindUIElements(),this._isRendered=!0,this.triggerMethod("render",this),this},_renderTemplate:function(){var e=this.getTemplate();if(e!==!1){var t=this.mixinTemplateContext(this.serializeData()),i=se.render(e,t,this);this.attachElContent(i)}},getTemplate:function(){return this.template},mixinTemplateContext:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=t.result(this,"templateContext");return t.extend(e,i)},attachElContent:function(e){return this.$el.html(e),this},_removeChildren:function(){this.removeRegions()},_getImmediateChildren:function(){return t.chain(this.getRegions()).map("currentView").compact().value()}});t.extend(he.prototype,te,re);var de=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck","reduce"],ae=function(e,i){t.each(de,function(n){e[n]=function(){var e=t.values(t.result(this,i)),r=[e].concat(t.toArray(arguments));return t[n].apply(t,r)}})},le=function(e){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),t.each(e,t.bind(this.add,this))};ae(le.prototype,"_views"),t.extend(le.prototype,{add:function(e,t){var i=e.cid;return this._views[i]=e,e.model&&(this._indexByModel[e.model.cid]=i),t&&(this._indexByCustom[t]=i),this._updateLength(),this},findByModel:function(e){return this.findByModelCid(e.cid)},findByModelCid:function(e){var t=this._indexByModel[e];return this.findByCid(t)},findByCustom:function(e){var t=this._indexByCustom[e];return this.findByCid(t)},findByIndex:function(e){return t.values(this._views)[e]},findByCid:function(e){return this._views[e]},remove:function(e){var i=e.cid;return e.model&&delete this._indexByModel[e.model.cid],t.any(this._indexByCustom,function(e,t){if(e===i)return delete this._indexByCustom[t],!0},this),delete this._views[i],this._updateLength(),this},_updateLength:function(){this.length=t.size(this._views)}});var ce=["behaviors","childView","childViewEventPrefix","childViewEvents","childViewOptions","childViewTriggers","collectionEvents","events","filter","emptyView","emptyViewOptions","modelEvents","reorderOnSort","sort","triggers","ui","viewComparator"],ue=e.View.extend({sort:!0,constructor:function(i){this.render=t.bind(this.render,this),this._setOptions(i),this.mergeOptions(i,ce),c(this),this._initBehaviors(),this.once("render",this._initialEvents),this._initChildViewStorage(),this._bufferedChildren=[];var n=Array.prototype.slice.call(arguments);n[0]=this.options,e.View.prototype.constructor.apply(this,n),this.delegateEntityEvents()},_startBuffering:function(){this._isBuffering=!0},_endBuffering:function(){var e=!!this._isAttached,i=e?this._getImmediateChildren():[];this._isBuffering=!1,t.each(i,function(e){s(e,"before:attach",e)}),this.attachBuffer(this,this._createBuffer()),t.each(i,function(e){e._isAttached=!0,s(e,"attach",e)}),this._bufferedChildren=[]},_getImmediateChildren:function(){return t.values(this.children._views)},_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.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(e,i,n){var r=void 0!==n.at&&(n.index||i.indexOf(e));if((this.filter||r===!1)&&(r=t.indexOf(this._filteredSortedModels(r),e)),this._shouldAddChild(e,r)){this._destroyEmptyView();var s=this._getChildView(e);this._addChild(e,s,r)}},_onCollectionRemove:function(e){var t=this.children.findByModel(e);this.removeChildView(t),this._checkEmpty()},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this._isRendered=!0,this.triggerMethod("render",this),this},setFilter:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.preventRender,n=this._isRendered&&!this._isDestroyed,r=this.filter!==e,s=n&&r&&!i;if(s){var o=this._filteredSortedModels();this.filter=e;var h=this._filteredSortedModels();this._applyModelDeltas(h,o)}else this.filter=e;return this},removeFilter:function(e){return this.setFilter(null,e)},_applyModelDeltas:function(e,i){var n=this,r={};t.each(e,function(e,t){var i=!n.children.findByModel(e);i&&n._onCollectionAdd(e,n.collection,{at:t}),r[e.cid]=!0}),t.each(i,function(e){var t=!r[e.cid]&&n.children.findByModel(e);t&&n._onCollectionRemove(e)})},reorder:function(){var e=this,i=this.children,n=this._filteredSortedModels();if(!n.length&&this._showingEmptyView)return this;var r=t.some(n,function(e){return!i.findByModel(e)});return r?this.render():!function(){var r=t.map(n,function(e,t){var n=i.findByModel(e);return n._index=t,n.el}),s=i.filter(function(e){return!t.contains(r,e.el)});e.triggerMethod("before:reorder",e),e._appendReorderedChildren(r),t.each(s,t.bind(e.removeChildView,e)),e._checkEmpty(),e.triggerMethod("reorder",e)}(),this},resortView:function(){return this.reorderOnSort?this.reorder():this._renderChildren(),this},_sortViews:function(){var e=this,i=this._filteredSortedModels(),n=t.find(i,function(t,i){var n=e.children.findByModel(t);return!n||n._index!==i});n&&this.resortView()},_emptyViewIndex:-1,_appendReorderedChildren:function(e){this.$el.append(e)},_renderChildren:function(){this._isRendered&&(this._destroyEmptyView(),this._destroyChildren({checkEmpty:!1}));var e=this._filteredSortedModels();this.isEmpty({processedModels:e})?this._showEmptyView():(this.triggerMethod("before:render:children",this),this._startBuffering(),this._showCollection(e),this._endBuffering(),this.triggerMethod("render:children",this))},_showCollection:function(e){var i=this;t.each(e,function(e,t){var n=i._getChildView(e);i._addChild(e,n,t)})},_filteredSortedModels:function(e){if(!this.collection||!this.collection.length)return[];var t=this.getViewComparator(),i=this.collection.models;if(e=Math.min(Math.max(e,0),i.length-1),t){var n=void 0;e&&(n=i[e],i=i.slice(0,e).concat(i.slice(e+1))),i=this._sortModelsBy(i,t),n&&i.splice(e,0,n)}return i=this._filterModels(i)},getViewComparator:function(){return this.viewComparator},_filterModels:function(e){var i=this;return this.filter&&(e=t.filter(e,function(e,t){return i._shouldAddChild(e,t)})),e},_sortModelsBy:function(e,i){return"string"==typeof i?t.sortBy(e,function(e){return e.get(i)}):1===i.length?t.sortBy(e,t.bind(i,this)):e.sort(t.bind(i,this))},_showEmptyView:function(){var i=this._getEmptyView();if(i&&!this._showingEmptyView){this._showingEmptyView=!0;var n=new e.Model,r=this.emptyViewOptions||this.childViewOptions;t.isFunction(r)&&(r=r.call(this,n,this._emptyViewIndex));var s=this.buildChildView(n,i,r);this.triggerMethod("before:render:empty",this,s),this._addChildView(s,0),this.triggerMethod("render:empty",this,s),s._parent=this}},_destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty",this),this._destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty",this))},_getEmptyView:function(){var e=this.emptyView;if(e)return this._getView(e)},_getChildView:function(e){var t=this.childView;if(!t)throw new F({name:"NoChildViewError",message:'A "childView" must be specified'});if(t=this._getView(t,e),!t)throw new F({name:"InvalidChildViewError",message:'"childView" must be a view class or a function that returns a view class'});return t},_getView:function(i,n){return i.prototype instanceof e.View||i===e.View?i:t.isFunction(i)?i.call(this,n):void 0},_addChild:function(e,t,i){var n=this._getChildViewOptions(e,i),r=this.buildChildView(e,t,n);return this.addChildView(r,i),r},_getChildViewOptions:function(e,i){return t.isFunction(this.childViewOptions)?this.childViewOptions(e,i):this.childViewOptions},addChildView:function(e,t){return this.triggerMethod("before:add:child",this,e),this._updateIndices(e,!0,t),e._parent=this,this._addChildView(e,t),this.triggerMethod("add:child",this,e),e},_updateIndices:function(e,t,i){this.sort&&(t&&(e._index=i),this.children.each(function(i){i._index>=e._index&&(i._index+=t?1:-1)}))},_addChildView:function(e,t){var i=!this._isBuffering&&this._isAttached;c(e),this._proxyChildEvents(e),this.children.add(e),e.supportsRenderLifecycle||s(e,"before:render",e),e.render(),e.supportsRenderLifecycle||(e._isRendered=!0,s(e,"render",e)),i&&s(e,"before:attach",e),this.attachHtml(this,e,t),i&&(e._isAttached=!0,s(e,"attach",e))},buildChildView:function(e,i,n){var r=t.extend({model:e},n);return new i(r)},removeChildView:function(e){return!e||e._isDestroyed?e:(this.triggerMethod("before:remove:child",this,e),e.destroy?e.destroy():b(e),delete e._parent,this.stopListening(e),this.children.remove(e),this.triggerMethod("remove:child",this,e),this._updateIndices(e,!1),e)},isEmpty:function(e){var i=void 0;return t.result(e,"processedModels")?i=e.processedModels:(i=this.collection?this.collection.models:[],i=this._filterModels(i)),0===i.length},_checkEmpty:function(){this.isEmpty()&&this._showEmptyView()},attachBuffer:function(e,t){e.$el.append(t)},_createBuffer:function(){var e=document.createDocumentFragment();return t.each(this._bufferedChildren,function(t){e.appendChild(t.el)}),e},attachHtml:function(e,t,i){e._isBuffering?e._bufferedChildren.splice(i,0,t):e._insertBefore(t,i)||e._insertAfter(t)},_insertBefore:function(e,t){var i=void 0,n=this.sort&&t<this.children.length-1;return n&&(i=this.children.find(function(e){return e._index===t+1})),!!i&&(i.$el.before(e.el),!0)},_insertAfter:function(e){this.$el.append(e.el)},_initChildViewStorage:function(){this.children=new le},_removeChildren:function(){this._destroyChildren({checkEmpty:!1})},_destroyChildren:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=e.checkEmpty;this.triggerMethod("before:destroy:children",this);var n=i!==!1,r=this.children.map(t.identity);return this.children.each(t.bind(this.removeChildView,this)),n&&this._checkEmpty(),this.triggerMethod("destroy:children",this),r},_shouldAddChild:function(e,i){var n=this.filter;return!t.isFunction(n)||n.call(this,e,i,this.collection)},_proxyChildEvents:function(e){var i=this,n=t.result(this,"childViewEventPrefix");this.listenTo(e,"all",function(e){for(var r=arguments.length,s=Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];var h=n+":"+e,d=i.normalizeMethods(i._childViewEvents);"undefined"!=typeof d&&t.isFunction(d[e])&&d[e].apply(i,s);var a=i._childViewTriggers;a&&t.isString(a[e])&&i.triggerMethod.apply(i,[a[e]].concat(s)),i.triggerMethod.apply(i,[h].concat(s))})}});t.extend(ue.prototype,te);var fe=["childViewContainer","template","templateContext"],ge=ue.extend({constructor:function(e){A("CompositeView is deprecated. Convert to View at your earliest convenience"),this.mergeOptions(e,fe),ue.prototype.constructor.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.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_getChildView:function(e){var t=this.childView;if(!t)return this.constructor;if(t=this._getView(t,e),!t)throw new F({name:"InvalidChildViewError",message:'"childView" must be a view class or a function that returns a view class'});return t},serializeData:function(){return this.serializeModel()},render:function(){return this._ensureViewIsIntact(),this._isRendering=!0,this.resetChildViewContainer(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.renderChildren(),this._isRendering=!1,this._isRendered=!0,this.triggerMethod("render",this),this},renderChildren:function(){(this._isRendered||this._isRendering)&&ue.prototype._renderChildren.call(this)},attachBuffer:function(e,t){var i=this.getChildViewContainer(e);i.append(t)},_insertAfter:function(e){var t=this.getChildViewContainer(this,e);t.append(e.el)},_appendReorderedChildren:function(e){var t=this.getChildViewContainer(this);t.append(e)},getChildViewContainer:function(e,i){if(e.$childViewContainer)return e.$childViewContainer;var n=void 0,r=e.childViewContainer;if(r){var s=t.result(e,"childViewContainer");if(n="@"===s.charAt(0)&&e.ui?e.ui[s.substr(4)]:e.$(s),n.length<=0)throw new F({name:"ChildViewContainerMissingError",message:'The specified "childViewContainer" was not found: '+e.childViewContainer})}else n=e.$el;
return e.$childViewContainer=n,n},resetChildViewContainer:function(){this.$childViewContainer&&(this.$childViewContainer=void 0)}}),pe=t.pick(he.prototype,"serializeModel","getTemplate","_renderTemplate","mixinTemplateContext","attachElContent");t.extend(ge.prototype,pe);var ve=["collectionEvents","events","modelEvents","triggers","ui"],_e=j.extend({cidPrefix:"mnb",constructor:function(e,i){this.view=i,this.defaults=t.clone(t.result(this,"defaults",{})),this._setOptions(this.defaults,e),this.mergeOptions(this.options,ve),this.ui=t.extend({},t.result(this,"ui"),t.result(i,"ui")),j.apply(this,arguments)},$:function(){return this.view.$.apply(this.view,arguments)},destroy:function(){return this.stopListening(),this},proxyViewProperties:function(){return this.$el=this.view.$el,this.el=this.view.el,this},bindUIElements:function(){return this._bindUIElements(),this},unbindUIElements:function(){return this._unbindUIElements(),this},getUI:function(e){return this.view._ensureViewIsIntact(),this._getUI(e)},delegateEntityEvents:function(){return this._delegateEntityEvents(this.view.model,this.view.collection),this},undelegateEntityEvents:function(){return this._undelegateEntityEvents(this.view.model,this.view.collection),this},getEvents:function(){var e=this.normalizeUIKeys(t.result(this,"events"));return t.reduce(e,function(e,i,n){if(t.isFunction(i)||(i=this[i]),i)return n=G(n),e[n]=t.bind(i,this),e},{},this)},getTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(t.result(this,"triggers"));return this._getViewTriggers(this.view,e)}}});t.extend(_e.prototype,Y,J,ee);var me=["region","regionClass"],ye=j.extend({cidPrefix:"mna",constructor:function(e){this._setOptions(e),this.mergeOptions(e,me),this._initRegion(),j.prototype.constructor.apply(this,arguments)},regionClass:ne,_initRegion:function(e){var i=this.region,n=this.regionClass;return t.isString(i)?void(this._region=new n({el:i})):void(this._region=i)},getRegion:function(){return this._region},showView:function(e){for(var t=this.getRegion(),i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return t.show.apply(t,[e].concat(n))},getView:function(){return this.getRegion().currentView},start:function(e){return this.triggerMethod("before:start",this,e),this.triggerMethod("start",this,e),this}}),we=["appRoutes","controller"],Ee=e.Router.extend({constructor:function(t){this._setOptions(t),this.mergeOptions(t,we),e.Router.apply(this,arguments);var i=this.appRoutes,n=this._getController();this.processAppRoutes(n,i),this.on("route",this._processOnRoute,this)},appRoute:function(e,t){var i=this._getController();return this._addAppRoute(i,e,t),this},_processOnRoute:function(e,i){if(t.isFunction(this.onRoute)){var n=t.invert(this.appRoutes)[e];this.onRoute(e,n,i)}},processAppRoutes:function(e,i){var n=this;if(!i)return this;var r=t.keys(i).reverse();return t.each(r,function(t){n._addAppRoute(e,t,i[t])}),this},_getController:function(){return this.controller},_addAppRoute:function(e,i,n){var r=e[n];if(!r)throw new F('Method "'+n+'" was not found on the controller');this.route(i,n,t.bind(r,e))},triggerMethod:r});t.extend(Ee.prototype,z);var Ve={},be=e.Marionette,Ce=e.Marionette={};return Ce.noConflict=function(){return e.Marionette=be,this},Ce.bindEvents=B(g),Ce.unbindEvents=B(p),Ce.bindRequests=B(_),Ce.unbindRequests=B(m),Ce.mergeOptions=B(T),Ce.getOption=B(D),Ce.normalizeMethods=B(U),Ce.extend=I,Ce.isNodeAttached=O,Ce.deprecate=A,Ce.triggerMethod=B(r),Ce.triggerMethodOn=s,Ce.isEnabled=R,Ce.setEnabled=M,Ce.monitorViewEvents=c,Ce.Behaviors={},Ce.Behaviors.behaviorsLookup=C,Ce.Application=ye,Ce.AppRouter=Ee,Ce.Renderer=se,Ce.TemplateCache=q,Ce.View=he,Ce.ChildViewContainer=le,Ce.CollectionView=ue,Ce.CompositeView=ge,Ce.Behavior=_e,Ce.Region=ne,Ce.Error=F,Ce.Object=j,Ce.DEV_MODE=!1,Ce.FEATURES=Ve,Ce.VERSION=x,Ce});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("backbone"),require("underscore"),require("backbone.radio")):"function"==typeof define&&define.amd?define(["backbone","underscore","backbone.radio"],t):e.Marionette=e.Mn=t(e.Backbone,e._,e.Backbone.Radio)}(this,function(e,t,i){"use strict";function n(e,t,i){return i.toUpperCase()}function r(e){for(var i="on"+e.replace(k,n),r=D.call(this,i),s=void 0,o=arguments.length,h=Array(o>1?o-1:0),d=1;d<o;d++)h[d-1]=arguments[d];return t.isFunction(r)&&(s=r.apply(this,h)),this.trigger.apply(this,[e].concat(h)),s}function s(e){for(var i=t.isFunction(e.triggerMethod)?e.triggerMethod:r,n=arguments.length,s=Array(n>1?n-1:0),o=1;o<n;o++)s[o-1]=arguments[o];return i.apply(e,s)}function o(e,i,n){e._getImmediateChildren&&t.each(e._getImmediateChildren(),function(e){n(e)&&s(e,i,e)})}function h(e){return!e._isAttached}function d(e){return!!h(e)&&(e._isAttached=!0,!0)}function a(e){return e._isAttached}function l(e){return!!a(e)&&(e._isAttached=!1,!0)}function c(e){function t(){o(e,"before:attach",h)}function i(){o(e,"attach",d),u()}function n(){o(e,"before:detach",a)}function r(){o(e,"detach",l)}function c(){u()}function u(){e._isAttached&&e._isRendered&&s(e,"dom:refresh",e)}e._areViewEventsMonitored||(e._areViewEventsMonitored=!0,e.on({"before:attach":t,attach:i,"before:detach":n,detach:r,render:c}))}function u(e,i,n,r,s){var o=r.split(/\s+/);t.each(o,function(t){var r=e[t];if(!r)throw new F('Method "'+t+'" was configured as an event handler, but does not exist.');e[s](i,n,r)})}function f(e,i,n,r){if(i&&n){if(!t.isObject(n))throw new F({message:"Bindings must be an object.",url:"marionette.functions.html#marionettebindevents"});t.each(n,function(n,s){return t.isString(n)?void u(e,i,s,n,r):void e[r](i,s,n)})}}function g(e,t){return f(this,e,t,"listenTo"),this}function p(e,t){return f(this,e,t,"stopListening"),this}function v(e,i,n,r){if(i&&n){if(!t.isObject(n))throw new F({message:"Bindings must be an object.",url:"marionette.functions.html#marionettebindrequests"});var s=U.call(e,n);i[r](s,e)}}function _(e,t){return v(this,e,t,"reply"),this}function m(e,t){return v(this,e,t,"stopReplying"),this}function y(e,i){return e.behaviorClass?e.behaviorClass:t.isFunction(e)?e:t.isFunction(Ce.Behaviors.behaviorsLookup)?Ce.Behaviors.behaviorsLookup(e,i)[i]:Ce.Behaviors.behaviorsLookup[i]}function w(e,i){return t.chain(i).map(function(i,n){var r=y(i,n),s=i===r?{}:i,o=new r(s,e),h=w(e,t.result(o,"behaviors"));return[o].concat(h)}).flatten().value()}function E(e,i){return[e+t.uniqueId(".evt"),i].join(" ")}function b(e,i){t.isString(i)&&(i={event:i});var n=i.event,r=i.preventDefault!==!1,s=i.stopPropagation!==!1;return function(t){r&&t.preventDefault(),s&&t.stopPropagation(),e.triggerMethod(n,e)}}function V(e){e.supportsDestroyLifecycle||s(e,"before:destroy",e);var t=!!e._isAttached;t&&s(e,"before:detach",e),e.remove(),t&&(e._isAttached=!1,s(e,"detach",e)),e._isDestroyed=!0,e.supportsDestroyLifecycle||s(e,"destroy",e)}function C(){throw new F({message:"You must define where your behaviors are stored.",url:"marionette.behaviors.md#behaviorslookup"})}function R(e){return!!be[e]}function M(e,t){return be[e]=t}e="default"in e?e.default:e,t="default"in t?t.default:t,i="default"in i?i.default:i;var x="3.0.0",B=function(e){return function(t){for(var i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.apply(t,n)}},I=e.Model.extend,A=function e(i,n){t.isObject(i)&&(i=i.prev+" is going to be removed in the future. Please use "+i.next+" instead."+(i.url?" See: "+i.url:"")),Ce.DEV_MODE&&(void 0!==n&&n||e._cache[i]||(e._warn("Deprecation warning: "+i),e._cache[i]=!0))};A._console="undefined"!=typeof console?console:{},A._warn=function(){var e=A._console.warn||A._console.log||t.noop;return e.apply(A._console,arguments)},A._cache={};var O=function(t){return e.$.contains(document.documentElement,t)},T=function(e,i){e&&t.extend(this,t.pick(e,i))},D=function(e){if(e)return this.options&&void 0!==this.options[e]?this.options[e]:this[e]},U=function(e){var i=this;return t.reduce(e,function(e,n,r){return t.isFunction(n)||(n=i[n]),n&&(e[r]=n),e},{})},k=/(^|:)(\w)/gi,$=["description","fileName","lineNumber","name","message","number"],F=I.call(Error,{urlRoot:"http://marionettejs.com/docs/v"+x+"/",constructor:function(e,i){t.isObject(e)?(i=e,e=i.message):i||(i={});var n=Error.call(this,e);t.extend(this,t.pick(n,$),t.pick(i,$)),this.captureStackTrace(),i.url&&(this.url=this.urlRoot+i.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,F)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}});F.extend=I;var S=function(){for(var e=arguments.length,i=Array(e),n=0;n<e;n++)i[n]=arguments[n];this.options=t.extend.apply(t,[{},t.result(this,"options")].concat(i))},z={normalizeMethods:U,_setOptions:S,mergeOptions:T,getOption:D,bindEvents:g,unbindEvents:p},L={_initRadio:function(){var e=t.result(this,"channelName");if(e){if(!i)throw new F({name:"BackboneRadioMissing",message:'The dependency "backbone.radio" is missing.'});var n=this._channel=i.channel(e),r=t.result(this,"radioEvents");this.bindEvents(n,r);var s=t.result(this,"radioRequests");this.bindRequests(n,s),this.on("destroy",this._destroyRadio)}},_destroyRadio:function(){this._channel.stopReplying(null,null,this)},getChannel:function(){return this._channel},bindEvents:g,unbindEvents:p,bindRequests:_,unbindRequests:m},P=["channelName","radioEvents","radioRequests"],j=function(e){this._setOptions(e),this.mergeOptions(e,P),this.cid=t.uniqueId(this.cidPrefix),this._initRadio(),this.initialize.apply(this,arguments)};j.extend=I,t.extend(j.prototype,e.Events,z,L,{cidPrefix:"mno",_isDestroyed:!1,isDestroyed:function(){return this._isDestroyed},initialize:function(){},destroy:function(){if(this._isDestroyed)return this;for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return this.triggerMethod.apply(this,["before:destroy",this].concat(t)),this._isDestroyed=!0,this.triggerMethod.apply(this,["destroy",this].concat(t)),this.stopListening(),this},triggerMethod:r});var q=function(e){this.templateId=e};t.extend(q,{templateCaches:{},get:function(e,t){var i=this.templateCaches[e];return i||(i=new q(e),this.templateCaches[e]=i),i.load(t)},clear:function(){for(var e=void 0,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];var r=i.length;if(r>0)for(e=0;e<r;e++)delete this.templateCaches[i[e]];else this.templateCaches={}}}),t.extend(q.prototype,{load:function(e){if(this.compiledTemplate)return this.compiledTemplate;var t=this.loadTemplate(this.templateId,e);return this.compiledTemplate=this.compileTemplate(t,e),this.compiledTemplate},loadTemplate:function(t,i){var n=e.$(t);if(!n.length)throw new F({name:"NoTemplateError",message:'Could not find template: "'+t+'"'});return n.html()},compileTemplate:function(e,i){return t.template(e,i)}});var N=t.invokeMap||t.invoke,H=function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)},K={_initBehaviors:function(){var e=t.result(this,"behaviors");this._behaviors=t.isObject(e)?w(this,e):{}},_getBehaviorTriggers:function(){var e=N(this._behaviors,"getTriggers");return t.extend.apply(t,[{}].concat(H(e)))},_getBehaviorEvents:function(){var e=N(this._behaviors,"getEvents");return t.extend.apply(t,[{}].concat(H(e)))},_proxyBehaviorViewProperties:function(){N(this._behaviors,"proxyViewProperties")},_delegateBehaviorEntityEvents:function(){N(this._behaviors,"delegateEntityEvents")},_undelegateBehaviorEntityEvents:function(){N(this._behaviors,"undelegateEntityEvents")},_destroyBehaviors:function(e){N.apply(void 0,[this._behaviors,"destroy"].concat(H(e)))},_bindBehaviorUIElements:function(){N(this._behaviors,"bindUIElements")},_unbindBehaviorUIElements:function(){N(this._behaviors,"unbindUIElements")},_triggerEventOnBehaviors:function(){for(var e=this._behaviors,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];for(var s=0,o=e&&e.length;s<o;s++)r.apply(e[s],i)}},Y={_delegateEntityEvents:function(e,i){this._undelegateEntityEvents(e,i);var n=t.result(this,"modelEvents");g.call(this,e,n);var r=t.result(this,"collectionEvents");g.call(this,i,r)},_undelegateEntityEvents:function(e,i){var n=t.result(this,"modelEvents");p.call(this,e,n);var r=t.result(this,"collectionEvents");p.call(this,i,r)}},Z=/^(\S+)\s*(.*)$/,G=function(e){var t=e.match(Z);return E(t[1],t[2])},J={_getViewTriggers:function(e,i){return t.reduce(i,function(t,i,n){return n=G(n),t[n]=b(e,i),t},{})}},Q=function(e,i){return t.reduce(e,function(e,t,n){var r=W(n,i);return e[r]=t,e},{})},W=function(e,t){return e.replace(/@ui\.[a-zA-Z-_$0-9]*/g,function(e){return t[e.slice(4)]})},X=function e(i,n,r){return t.each(i,function(s,o){t.isString(s)?i[o]=W(s,n):t.isObject(s)&&t.isArray(r)&&(t.extend(s,e(t.pick(s,r),n)),t.each(r,function(e){var i=s[e];t.isString(i)&&(s[e]=W(i,n))}))}),i},ee={normalizeUIKeys:function(e){var t=this._getUIBindings();return Q(e,t)},normalizeUIValues:function(e,t){var i=this._getUIBindings();return X(e,i,t)},_getUIBindings:function(){var e=t.result(this,"_uiBindings"),i=t.result(this,"ui");return e||i},_bindUIElements:function(){var e=this;if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var i=t.result(this,"_uiBindings");this._ui={},t.each(i,function(t,i){e._ui[i]=e.$(t)}),this.ui=this._ui}},_unbindUIElements:function(){var e=this;this.ui&&this._uiBindings&&(t.each(this.ui,function(t,i){delete e.ui[i]}),this.ui=this._uiBindings,delete this._uiBindings,delete this._ui)},_getUI:function(e){return this._ui[e]}},te={supportsRenderLifecycle:!0,supportsDestroyLifecycle:!0,_isDestroyed:!1,isDestroyed:function(){return!!this._isDestroyed},_isRendered:!1,isRendered:function(){return!!this._isRendered},_isAttached:!1,isAttached:function(){return!!this._isAttached},setElement:function(){var t=!!this.el;return e.View.prototype.setElement.apply(this,arguments),t&&(this._isRendered=!!this.$el.length,this._isAttached=O(this.el)),this},delegateEvents:function(i){this._proxyBehaviorViewProperties(),this._buildEventProxies();var n=this._getEvents(i);"undefined"==typeof i&&(this.events=n);var r=t.extend({},this._getBehaviorEvents(),n,this._getBehaviorTriggers(),this.getTriggers());return e.View.prototype.delegateEvents.call(this,r),this},_getEvents:function(e){var i=e||this.events;return t.isFunction(i)?this.normalizeUIKeys(i.call(this)):this.normalizeUIKeys(i)},getTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(t.result(this,"triggers"));return this._getViewTriggers(this,e)}},delegateEntityEvents:function(){return this._delegateEntityEvents(this.model,this.collection),this._delegateBehaviorEntityEvents(),this},undelegateEntityEvents:function(){return this._undelegateEntityEvents(this.model,this.collection),this._undelegateBehaviorEntityEvents(),this},_ensureViewIsIntact:function(){if(this._isDestroyed)throw new F({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(this._isDestroyed)return this;for(var e=!!this._isAttached,t=arguments.length,i=Array(t),n=0;n<t;n++)i[n]=arguments[n];return this.triggerMethod.apply(this,["before:destroy",this].concat(i)),e&&this.triggerMethod("before:detach",this),this.unbindUIElements(),this._removeElement(),e&&(this._isAttached=!1,this.triggerMethod("detach",this)),this._removeChildren(),this._destroyBehaviors(i),this._isDestroyed=!0,this._isRendered=!1,this.triggerMethod.apply(this,["destroy",this].concat(i)),this.stopListening(),this},bindUIElements:function(){return this._bindUIElements(),this._bindBehaviorUIElements(),this},unbindUIElements:function(){return this._unbindUIElements(),this._unbindBehaviorUIElements(),this},getUI:function(e){return this._ensureViewIsIntact(),this._getUI(e)},childViewEventPrefix:"childview",triggerMethod:function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=r.apply(this,t);return this._triggerEventOnBehaviors.apply(this,t),this._triggerEventOnParentLayout.apply(this,t),n},_buildEventProxies:function(){this._childViewEvents=t.result(this,"childViewEvents"),this._childViewTriggers=t.result(this,"childViewTriggers")},_triggerEventOnParentLayout:function(e){var i=this._parentView();if(i){for(var n=t.result(i,"childViewEventPrefix"),r=n+":"+e,s=arguments.length,o=Array(s>1?s-1:0),h=1;h<s;h++)o[h-1]=arguments[h];i.triggerMethod.apply(i,[r].concat(o));var d=i.normalizeMethods(i._childViewEvents);d&&t.isFunction(d[e])&&d[e].apply(i,o);var a=i._childViewTriggers;a&&t.isString(a[e])&&i.triggerMethod.apply(i,[a[e]].concat(o))}},_parentView:function(){for(var e=this._parent;e;){if(e instanceof he)return e;e=e._parent}}};t.extend(te,K,z,Y,J,ee);var ie=["allowMissingEl","parentEl","replaceElement"],ne=j.extend({cidPrefix:"mnr",replaceElement:!1,_isReplaced:!1,constructor:function(t){if(this._setOptions(t),this.mergeOptions(t,ie),this._initEl=this.el=this.getOption("el"),this.el=this.el instanceof e.$?this.el[0]:this.el,!this.el)throw new F({name:"NoElError",message:'An "el" must be specified for a region.'});this.$el=this.getEl(this.el),j.call(this,t)},show:function(e,t){if(this._ensureElement(t))return this._ensureView(e),e===this.currentView?this:(this.triggerMethod("before:show",this,e,t),c(e),this.empty(t),e.on("destroy",this.empty,this),e._parent=this,this._renderView(e),this._attachView(e,t),this.triggerMethod("show",this,e,t),this)},_renderView:function(e){e._isRendered||(e.supportsRenderLifecycle||s(e,"before:render",e),e.render(),e.supportsRenderLifecycle||(e._isRendered=!0,s(e,"render",e)))},_attachView:function(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=!e._isAttached&&O(this.el),r="undefined"==typeof i.replaceElement?!!t.result(this,"replaceElement"):!!i.replaceElement;n&&s(e,"before:attach",e),this.attachHtml(e,r),n&&(e._isAttached=!0,s(e,"attach",e)),this.currentView=e},_ensureElement:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(t.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),!this.$el||0===this.$el.length){var i="undefined"==typeof e.allowMissingEl?!!t.result(this,"allowMissingEl"):!!e.allowMissingEl;if(i)return!1;throw new F('An "el" must exist in DOM for this region '+this.cid)}return!0},_ensureView:function(e){if(!e)throw new F({name:"ViewNotValid",message:"The view passed is undefined and therefore invalid. You must pass a view instance to show."});if(e._isDestroyed)throw new F({name:"ViewDestroyedError",message:'View (cid: "'+e.cid+'") has already been destroyed and cannot be used.'})},getEl:function(i){return e.$(i,t.result(this,"parentEl"))},_replaceEl:function(e){this._restoreEl();var t=this.el.parentNode;t.replaceChild(e.el,this.el),this._isReplaced=!0},_restoreEl:function(){if(this._isReplaced){var e=this.currentView;if(e){var t=e.el.parentNode;t&&(t.replaceChild(this.el,e.el),this._isReplaced=!1)}}},isReplaced:function(){return!!this._isReplaced},attachHtml:function(e,t){t?this._replaceEl(e):this.el.appendChild(e.el)},empty:function(){var e=arguments.length<=0||void 0===arguments[0]?{allowMissingEl:!0}:arguments[0],t=this.currentView;return t?(t.off("destroy",this.empty,this),this.triggerMethod("before:empty",this,t),this._restoreEl(),delete this.currentView,t._isDestroyed||(this._removeView(t,e),delete t._parent),this.triggerMethod("empty",this,t),this):(this._ensureElement(e)&&this.detachHtml(),this)},_removeView:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.preventDestroy,n=!!i;return n?void this._detachView(e):void(e.destroy?e.destroy():V(e))},_detachView:function(e){var t=!!e._isAttached;t&&s(e,"before:detach",e),this.detachHtml(),t&&(e._isAttached=!1,s(e,"detach",e))},detachHtml:function(){this.$el.contents().detach()},hasView:function(){return!!this.currentView},reset:function(e){return this.empty(e),this.$el&&(this.el=this._initEl),delete this.$el,this},destroy:function(e){return this.reset(e),j.prototype.destroy.apply(this,arguments)}}),re={regionClass:ne,_initRegions:function(){this.regions=this.regions||{},this._regions={},this.addRegions(t.result(this,"regions"))},_reInitRegions:function(){N(this._regions,"reset")},addRegion:function(e,t){var i={};return i[e]=t,this.addRegions(i)[e]},addRegions:function(e){if(!t.isEmpty(e))return e=this.normalizeUIValues(e,["selector","el"]),this.regions=t.extend({},this.regions,e),this._addRegions(e)},_addRegions:function(e){var i=this;return t.reduce(e,function(e,t,n){return e[n]=i._buildRegion(t),i._addRegion(e[n],n),e},{})},_buildRegion:function(e){return e instanceof ne?e:this._buildRegionFromDefinition(e)},_buildRegionFromDefinition:function(e){if(t.isString(e))return this._buildRegionFromObject({el:e});if(t.isFunction(e))return this._buildRegionFromRegionClass(e);if(t.isObject(e))return this._buildRegionFromObject(e);throw new F({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromObject:function(e){var i=e.regionClass||this.regionClass,n=t.omit(e,"regionClass");return t.defaults(n,{el:e.selector,parentEl:t.partial(t.result,this,"el")}),new i(n)},_buildRegionFromRegionClass:function(e){return new e({parentEl:t.partial(t.result,this,"el")})},_addRegion:function(e,t){this.triggerMethod("before:add:region",this,t,e),e._parent=this,this._regions[t]=e,this.triggerMethod("add:region",this,t,e)},removeRegion:function(e){var t=this._regions[e];return this._removeRegion(t,e),t},removeRegions:function(){var e=this.getRegions();return t.each(this._regions,t.bind(this._removeRegion,this)),e},_removeRegion:function(e,t){this.triggerMethod("before:remove:region",this,t,e),e.empty(),e.stopListening(),delete this.regions[t],delete this._regions[t],this.triggerMethod("remove:region",this,t,e)},emptyRegions:function(){var e=this.getRegions();return N(e,"empty"),e},hasRegion:function(e){return!!this.getRegion(e)},getRegion:function(e){return this._regions[e]},getRegions:function(){return t.clone(this._regions)},showChildView:function(e,t){for(var i=this.getRegion(e),n=arguments.length,r=Array(n>2?n-2:0),s=2;s<n;s++)r[s-2]=arguments[s];return i.show.apply(i,[t].concat(r))},getChildView:function(e){return this.getRegion(e).currentView}},se={render:function(e,i){if(!e)throw new F({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var n=t.isFunction(e)?e:q.get(e);return n(i)}},oe=["behaviors","childViewEventPrefix","childViewEvents","childViewTriggers","collectionEvents","events","modelEvents","regionClass","regions","template","templateContext","triggers","ui"],he=e.View.extend({constructor:function(i){this.render=t.bind(this.render,this),this._setOptions(i),this.mergeOptions(i,oe),c(this),this._initBehaviors(),this._initRegions();var n=Array.prototype.slice.call(arguments);n[0]=this.options,e.View.prototype.constructor.apply(this,n),this.delegateEntityEvents()},serializeData:function(){return this.model||this.collection?this.model?this.serializeModel():{items:this.serializeCollection()}:{}},serializeModel:function(){return this.model?t.clone(this.model.attributes):{}},serializeCollection:function(){return this.collection?this.collection.map(function(e){return t.clone(e.attributes)}):{}},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._isRendered&&this._reInitRegions(),this._renderTemplate(),this.bindUIElements(),this._isRendered=!0,this.triggerMethod("render",this),this},_renderTemplate:function(){var e=this.getTemplate();if(e!==!1){var t=this.mixinTemplateContext(this.serializeData()),i=se.render(e,t,this);this.attachElContent(i)}},getTemplate:function(){return this.template},mixinTemplateContext:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=t.result(this,"templateContext");return t.extend(e,i)},attachElContent:function(e){return this.$el.html(e),this},_removeChildren:function(){this.removeRegions()},_getImmediateChildren:function(){return t.chain(this.getRegions()).map("currentView").compact().value()}});t.extend(he.prototype,te,re);var de=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck","reduce"],ae=function(e,i){t.each(de,function(n){e[n]=function(){var e=t.values(t.result(this,i)),r=[e].concat(t.toArray(arguments));return t[n].apply(t,r)}})},le=function(e){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),t.each(e,t.bind(this.add,this))};ae(le.prototype,"_views"),t.extend(le.prototype,{add:function(e,t){return this._add(e,t)._updateLength()},_add:function(e,t){var i=e.cid;return this._views[i]=e,e.model&&(this._indexByModel[e.model.cid]=i),t&&(this._indexByCustom[t]=i),this},findByModel:function(e){return this.findByModelCid(e.cid)},findByModelCid:function(e){var t=this._indexByModel[e];return this.findByCid(t)},findByCustom:function(e){var t=this._indexByCustom[e];return this.findByCid(t)},findByIndex:function(e){return t.values(this._views)[e]},findByCid:function(e){return this._views[e]},remove:function(e){return this._remove(e)._updateLength()},_remove:function(e){var i=e.cid;return e.model&&delete this._indexByModel[e.model.cid],t.some(this._indexByCustom,t.bind(function(e,t){if(e===i)return delete this._indexByCustom[t],!0},this)),delete this._views[i],this},_updateLength:function(){return this.length=t.size(this._views),this}});var ce=["behaviors","childView","childViewEventPrefix","childViewEvents","childViewOptions","childViewTriggers","collectionEvents","events","filter","emptyView","emptyViewOptions","modelEvents","reorderOnSort","sort","triggers","ui","viewComparator"],ue=e.View.extend({sort:!0,constructor:function(i){this.render=t.bind(this.render,this),this._setOptions(i),this.mergeOptions(i,ce),c(this),this._initBehaviors(),this.once("render",this._initialEvents),this._initChildViewStorage(),this._bufferedChildren=[];var n=Array.prototype.slice.call(arguments);n[0]=this.options,e.View.prototype.constructor.apply(this,n),this.delegateEntityEvents()},_startBuffering:function(){this._isBuffering=!0},_endBuffering:function(){var e=!!this._isAttached,i=e?this._getImmediateChildren():[];this._isBuffering=!1,t.each(i,function(e){s(e,"before:attach",e)}),this.attachBuffer(this,this._createBuffer()),t.each(i,function(e){e._isAttached=!0,s(e,"attach",e)}),this._bufferedChildren=[]},_getImmediateChildren:function(){return t.values(this.children._views)},_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.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(e,i,n){var r=void 0!==n.at&&(n.index||i.indexOf(e));if((this.filter||r===!1)&&(r=t.indexOf(this._filteredSortedModels(r),e)),this._shouldAddChild(e,r)){this._destroyEmptyView();var s=this._getChildView(e);this._addChild(e,s,r)}},_onCollectionRemove:function(e){var t=this.children.findByModel(e);this.removeChildView(t),this._checkEmpty()},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this._isRendered=!0,this.triggerMethod("render",this),this},setFilter:function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=t.preventRender,n=this._isRendered&&!this._isDestroyed,r=this.filter!==e,s=n&&r&&!i;if(s){var o=this._filteredSortedModels();this.filter=e;var h=this._filteredSortedModels();this._applyModelDeltas(h,o)}else this.filter=e;return this},removeFilter:function(e){return this.setFilter(null,e)},_applyModelDeltas:function(e,i){var n=this,r={};t.each(e,function(e,t){var i=!n.children.findByModel(e);i&&n._onCollectionAdd(e,n.collection,{at:t}),r[e.cid]=!0}),t.each(i,function(e){var t=!r[e.cid]&&n.children.findByModel(e);t&&n._onCollectionRemove(e)})},reorder:function(){var e=this,i=this.children,n=this._filteredSortedModels();if(!n.length&&this._showingEmptyView)return this;var r=t.some(n,function(e){return!i.findByModel(e)});return r?this.render():!function(){var r=t.map(n,function(e,t){var n=i.findByModel(e);return n._index=t,n.el}),s=i.filter(function(e){return!t.contains(r,e.el)});e.triggerMethod("before:reorder",e),e._appendReorderedChildren(r),t.each(s,t.bind(e.removeChildView,e)),e._checkEmpty(),e.triggerMethod("reorder",e)}(),this},resortView:function(){return this.reorderOnSort?this.reorder():this._renderChildren(),this},_sortViews:function(){var e=this,i=this._filteredSortedModels(),n=t.find(i,function(t,i){var n=e.children.findByModel(t);return!n||n._index!==i});n&&this.resortView()},_emptyViewIndex:-1,_appendReorderedChildren:function(e){this.$el.append(e)},_renderChildren:function(){this._isRendered&&(this._destroyEmptyView(),this._destroyChildren({checkEmpty:!1}));var e=this._filteredSortedModels();this.isEmpty({processedModels:e})?this._showEmptyView():(this.triggerMethod("before:render:children",this),this._startBuffering(),this._showCollection(e),this._endBuffering(),this.triggerMethod("render:children",this))},_showCollection:function(e){var i=this;t.each(e,function(e,t){var n=i._getChildView(e);i._addChild(e,n,t)})},_filteredSortedModels:function(e){if(!this.collection||!this.collection.length)return[];var t=this.getViewComparator(),i=this.collection.models;if(e=Math.min(Math.max(e,0),i.length-1),t){var n=void 0;e&&(n=i[e],i=i.slice(0,e).concat(i.slice(e+1))),i=this._sortModelsBy(i,t),n&&i.splice(e,0,n)}return i=this._filterModels(i)},getViewComparator:function(){return this.viewComparator},_filterModels:function(e){var i=this;return this.filter&&(e=t.filter(e,function(e,t){return i._shouldAddChild(e,t)})),e},_sortModelsBy:function(e,i){return"string"==typeof i?t.sortBy(e,function(e){return e.get(i)}):1===i.length?t.sortBy(e,t.bind(i,this)):e.sort(t.bind(i,this))},_showEmptyView:function(){var i=this._getEmptyView();if(i&&!this._showingEmptyView){this._showingEmptyView=!0;var n=new e.Model,r=this.emptyViewOptions||this.childViewOptions;t.isFunction(r)&&(r=r.call(this,n,this._emptyViewIndex));var s=this.buildChildView(n,i,r);this.triggerMethod("before:render:empty",this,s),this._addChildView(s,0),this.triggerMethod("render:empty",this,s),s._parent=this}},_destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty",this),this._destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty",this))},_getEmptyView:function(){var e=this.emptyView;if(e)return this._getView(e)},_getChildView:function(e){var t=this.childView;if(!t)throw new F({name:"NoChildViewError",message:'A "childView" must be specified'});if(t=this._getView(t,e),!t)throw new F({name:"InvalidChildViewError",message:'"childView" must be a view class or a function that returns a view class'});return t},_getView:function(i,n){return i.prototype instanceof e.View||i===e.View?i:t.isFunction(i)?i.call(this,n):void 0},_addChild:function(e,t,i){var n=this._getChildViewOptions(e,i),r=this.buildChildView(e,t,n);return this.addChildView(r,i),r},_getChildViewOptions:function(e,i){return t.isFunction(this.childViewOptions)?this.childViewOptions(e,i):this.childViewOptions},addChildView:function(e,t){return this.triggerMethod("before:add:child",this,e),this._updateIndices(e,!0,t),e._parent=this,this._addChildView(e,t),this.triggerMethod("add:child",this,e),e},_updateIndices:function(e,t,i){this.sort&&(t&&(e._index=i),this.children.each(function(i){i._index>=e._index&&(i._index+=t?1:-1)}))},_addChildView:function(e,t){var i=!this._isBuffering&&this._isAttached;c(e),this._proxyChildEvents(e),this.children.add(e),e.supportsRenderLifecycle||s(e,"before:render",e),e.render(),e.supportsRenderLifecycle||(e._isRendered=!0,s(e,"render",e)),i&&s(e,"before:attach",e),this.attachHtml(this,e,t),i&&(e._isAttached=!0,s(e,"attach",e))},buildChildView:function(e,i,n){var r=t.extend({model:e},n);return new i(r)},removeChildView:function(e){return!e||e._isDestroyed?e:(this.triggerMethod("before:remove:child",this,e),e.destroy?e.destroy():V(e),delete e._parent,this.stopListening(e),this.children.remove(e),this.triggerMethod("remove:child",this,e),this._updateIndices(e,!1),e)},isEmpty:function(e){var i=void 0;return t.result(e,"processedModels")?i=e.processedModels:(i=this.collection?this.collection.models:[],i=this._filterModels(i)),0===i.length},_checkEmpty:function(){this.isEmpty()&&this._showEmptyView()},attachBuffer:function(e,t){e.$el.append(t)},_createBuffer:function(){var e=document.createDocumentFragment();return t.each(this._bufferedChildren,function(t){e.appendChild(t.el)}),e},attachHtml:function(e,t,i){e._isBuffering?e._bufferedChildren.splice(i,0,t):e._insertBefore(t,i)||e._insertAfter(t)},_insertBefore:function(e,t){var i=void 0,n=this.sort&&t<this.children.length-1;return n&&(i=this.children.find(function(e){return e._index===t+1})),!!i&&(i.$el.before(e.el),!0)},_insertAfter:function(e){this.$el.append(e.el)},_initChildViewStorage:function(){this.children=new le},_removeChildren:function(){this._destroyChildren({checkEmpty:!1})},_destroyChildren:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],i=e.checkEmpty;this.triggerMethod("before:destroy:children",this);var n=i!==!1,r=this.children.map(t.identity);return this.children.each(t.bind(this.removeChildView,this)),n&&this._checkEmpty(),this.triggerMethod("destroy:children",this),r},_shouldAddChild:function(e,i){var n=this.filter;return!t.isFunction(n)||n.call(this,e,i,this.collection)},_proxyChildEvents:function(e){var i=this,n=t.result(this,"childViewEventPrefix");this.listenTo(e,"all",function(e){for(var r=arguments.length,s=Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];var h=n+":"+e,d=i.normalizeMethods(i._childViewEvents);"undefined"!=typeof d&&t.isFunction(d[e])&&d[e].apply(i,s);var a=i._childViewTriggers;a&&t.isString(a[e])&&i.triggerMethod.apply(i,[a[e]].concat(s)),i.triggerMethod.apply(i,[h].concat(s))})}});t.extend(ue.prototype,te);var fe=["childViewContainer","template","templateContext"],ge=ue.extend({constructor:function(e){A("CompositeView is deprecated. Convert to View at your earliest convenience"),this.mergeOptions(e,fe),ue.prototype.constructor.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.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_getChildView:function(e){var t=this.childView;if(!t)return this.constructor;if(t=this._getView(t,e),!t)throw new F({name:"InvalidChildViewError",message:'"childView" must be a view class or a function that returns a view class'});return t},serializeData:function(){return this.serializeModel()},render:function(){return this._ensureViewIsIntact(),this._isRendering=!0,this.resetChildViewContainer(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.renderChildren(),this._isRendering=!1,this._isRendered=!0,this.triggerMethod("render",this),this},renderChildren:function(){(this._isRendered||this._isRendering)&&ue.prototype._renderChildren.call(this)},attachBuffer:function(e,t){var i=this.getChildViewContainer(e);i.append(t)},_insertAfter:function(e){var t=this.getChildViewContainer(this,e);t.append(e.el)},_appendReorderedChildren:function(e){var t=this.getChildViewContainer(this);t.append(e)},getChildViewContainer:function(e,i){if(e.$childViewContainer)return e.$childViewContainer;var n=void 0,r=e.childViewContainer;if(r){var s=t.result(e,"childViewContainer");if(n="@"===s.charAt(0)&&e.ui?e.ui[s.substr(4)]:e.$(s),n.length<=0)throw new F({name:"ChildViewContainerMissingError",
message:'The specified "childViewContainer" was not found: '+e.childViewContainer})}else n=e.$el;return e.$childViewContainer=n,n},resetChildViewContainer:function(){this.$childViewContainer&&(this.$childViewContainer=void 0)}}),pe=t.pick(he.prototype,"serializeModel","getTemplate","_renderTemplate","mixinTemplateContext","attachElContent");t.extend(ge.prototype,pe);var ve=["collectionEvents","events","modelEvents","triggers","ui"],_e=j.extend({cidPrefix:"mnb",constructor:function(e,i){this.view=i,this.defaults=t.clone(t.result(this,"defaults",{})),this._setOptions(this.defaults,e),this.mergeOptions(this.options,ve),this.ui=t.extend({},t.result(this,"ui"),t.result(i,"ui")),j.apply(this,arguments)},$:function(){return this.view.$.apply(this.view,arguments)},destroy:function(){return this.stopListening(),this},proxyViewProperties:function(){return this.$el=this.view.$el,this.el=this.view.el,this},bindUIElements:function(){return this._bindUIElements(),this},unbindUIElements:function(){return this._unbindUIElements(),this},getUI:function(e){return this.view._ensureViewIsIntact(),this._getUI(e)},delegateEntityEvents:function(){return this._delegateEntityEvents(this.view.model,this.view.collection),this},undelegateEntityEvents:function(){return this._undelegateEntityEvents(this.view.model,this.view.collection),this},getEvents:function(){var e=this.normalizeUIKeys(t.result(this,"events"));return t.reduce(e,function(e,i,n){if(t.isFunction(i)||(i=this[i]),i)return n=G(n),e[n]=t.bind(i,this),e},{},this)},getTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(t.result(this,"triggers"));return this._getViewTriggers(this.view,e)}}});t.extend(_e.prototype,Y,J,ee);var me=["region","regionClass"],ye=j.extend({cidPrefix:"mna",constructor:function(e){this._setOptions(e),this.mergeOptions(e,me),this._initRegion(),j.prototype.constructor.apply(this,arguments)},regionClass:ne,_initRegion:function(e){var i=this.region,n=this.regionClass;return t.isString(i)?void(this._region=new n({el:i})):void(this._region=i)},getRegion:function(){return this._region},showView:function(e){for(var t=this.getRegion(),i=arguments.length,n=Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return t.show.apply(t,[e].concat(n))},getView:function(){return this.getRegion().currentView},start:function(e){return this.triggerMethod("before:start",this,e),this.triggerMethod("start",this,e),this}}),we=["appRoutes","controller"],Ee=e.Router.extend({constructor:function(t){this._setOptions(t),this.mergeOptions(t,we),e.Router.apply(this,arguments);var i=this.appRoutes,n=this._getController();this.processAppRoutes(n,i),this.on("route",this._processOnRoute,this)},appRoute:function(e,t){var i=this._getController();return this._addAppRoute(i,e,t),this},_processOnRoute:function(e,i){if(t.isFunction(this.onRoute)){var n=t.invert(this.appRoutes)[e];this.onRoute(e,n,i)}},processAppRoutes:function(e,i){var n=this;if(!i)return this;var r=t.keys(i).reverse();return t.each(r,function(t){n._addAppRoute(e,t,i[t])}),this},_getController:function(){return this.controller},_addAppRoute:function(e,i,n){var r=e[n];if(!r)throw new F('Method "'+n+'" was not found on the controller');this.route(i,n,t.bind(r,e))},triggerMethod:r});t.extend(Ee.prototype,z);var be={},Ve=e.Marionette,Ce=e.Marionette={};return Ce.noConflict=function(){return e.Marionette=Ve,this},Ce.bindEvents=B(g),Ce.unbindEvents=B(p),Ce.bindRequests=B(_),Ce.unbindRequests=B(m),Ce.mergeOptions=B(T),Ce.getOption=B(D),Ce.normalizeMethods=B(U),Ce.extend=I,Ce.isNodeAttached=O,Ce.deprecate=A,Ce.triggerMethod=B(r),Ce.triggerMethodOn=s,Ce.isEnabled=R,Ce.setEnabled=M,Ce.monitorViewEvents=c,Ce.Behaviors={},Ce.Behaviors.behaviorsLookup=C,Ce.Application=ye,Ce.AppRouter=Ee,Ce.Renderer=se,Ce.TemplateCache=q,Ce.View=he,Ce.CollectionView=ue,Ce.CompositeView=ge,Ce.Behavior=_e,Ce.Region=ne,Ce.Error=F,Ce.Object=j,Ce.DEV_MODE=!1,Ce.FEATURES=be,Ce.VERSION=x,Ce});
//# sourceMappingURL=backbone.marionette.min.js.map
{
"name": "backbone.marionette",
"description": "The Backbone Framework",
"version": "3.0.0-pre.5",
"version": "3.0.0",
"homepage": "https://github.com/marionettejs/backbone.marionette",

@@ -41,3 +41,3 @@ "main": "lib/backbone.marionette.js",

"dependencies": {
"backbone.radio": "2.0.0-pre.2"
"backbone.radio": "^2.0.0"
},

@@ -49,32 +49,32 @@ "peerDependencies": {

"devDependencies": {
"babel-core": "^6.7.0",
"babel-eslint": "^6.0.4",
"babel-polyfill": "^6.6.1",
"babel-preset-es2015": "^6.3.13",
"babel-preset-es2015-rollup": "^1.1.1",
"babel-register": "^6.4.3",
"babel-core": "6.7.0",
"babel-eslint": "6.0.4",
"babel-polyfill": "6.6.1",
"babel-preset-es2015": "6.3.13",
"babel-preset-es2015-rollup": "1.1.1",
"babel-register": "6.4.3",
"backbone": "1.2.1 - 1.3.x",
"chai": "^3.4.0",
"chai": "3.4.0",
"chai-jq": "0.0.9",
"eslint": "3.2.2",
"gulp": "^3.9.0",
"gulp-coveralls": "^0.1.4",
"gulp-eslint": "^3.0.1",
"gulp-file": "^0.3.0",
"gulp-istanbul": "^1.0.0",
"gulp-filter": "^3.0.1",
"gulp-lintspaces": "^0.4.1",
"gulp-livereload": "^3.8.1",
"gulp-mocha": "^3.0.0",
"gulp-plumber": "^1.0.1",
"gulp-rename": "^1.2.2",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.7",
"isparta": "^4.0.0",
"jquery": "^2.1.4",
"jsdom": "^9.4.1",
"mocha": "^3.0.0",
"opn": "^4.0.2",
"rollup": "^0.34.3",
"gulp": "3.9.0",
"gulp-coveralls": "0.1.4",
"gulp-eslint": "3.0.1",
"gulp-file": "0.3.0",
"gulp-filter": "3.0.1",
"gulp-istanbul": "1.0.0",
"gulp-lintspaces": "0.4.1",
"gulp-livereload": "3.8.1",
"gulp-mocha": "3.0.0",
"gulp-plumber": "1.0.1",
"gulp-rename": "1.2.2",
"gulp-sourcemaps": "1.6.0",
"gulp-uglify": "2.0.0",
"gulp-util": "3.0.7",
"isparta": "4.0.0",
"jquery": "^3.1.0",
"jsdom": "9.4.1",
"mocha": "3.0.0",
"opn": "4.0.2",
"rollup": "0.34.3",
"rollup-plugin-babel": "2.6.1",

@@ -86,7 +86,7 @@ "rollup-plugin-commonjs": "3.3.1",

"rollup-plugin-node-resolve": "2.0.0",
"run-sequence": "^1.1.5",
"sinon": "^1.17.2",
"sinon-chai": "^2.8.0",
"run-sequence": "1.1.5",
"sinon": "1.17.2",
"sinon-chai": "2.8.0",
"underscore": "1.8 - 1.8.3"
}
}

@@ -18,6 +18,9 @@ <h1 align="center">Marionette.js</h1>

## Release Candidate v3.0.0-rc1
## Marionette v3
This is a "family and friends" release. The documentation is still mostly for 2.4.4.
Please let us know if you run into any issues. Also, [please help us finish v3](https://github.com/marionettejs/backbone.marionette/milestones/v3.0.0)!
Marionette 3 is now available! See our
[upgrade notes](http://marionettejs.com/docs/v3.0.0) for the differences between
v2 and v3. Please let us know if you encounter any issues so we can resolve
them and
[help us continue work on Marionette!](https://github.com/marionettejs/backbone.marionette/milestones/v3.x)

@@ -60,3 +63,4 @@ ## About Marionette

Find us [on gitter](https://gitter.im/marionettejs/backbone.marionette) or on IRC in the FreeNode.net [#marionette channel](http://freenode.net).
Find us [on gitter](https://gitter.im/marionettejs/backbone.marionette) or on
IRC in the FreeNode.net [#marionette channel](http://freenode.net).

@@ -68,44 +72,34 @@ We're happy to discuss design patterns and learn how you're using Marionette.

* Scalable: applications are built in modules, and with event-driven architecture
* Scalable: applications built in modules with event-driven architecture
* Sensible defaults: Underscore templates are used for view rendering
* Easily modifiable: make it work with your application's specific needs
* Reduce boilerplate for views, with specialized view types
* Build on a modular architecture with an `Application` and modules that attach to it
* Compose your application's visuals at runtime, with the `Region` and `LayoutView` objects
* Nested views and layouts within visual regions
* Built-in memory management and zombie-killing in views, regions and layoutViews
* Event-driven architecture with `Backbone.Radio`
* Flexible, "as-needed" architecture allowing you to pick and choose what you need
* Easily modifiable: works with the specific needs of your application
* Reduce boilerplate: for all views, including specialized types
* Create: application visuals at runtime with `Region` and `View` objects
* Nested: `View`s and `CollectionView`s within visual regions
* Built-in: memory management and zombie-killing for `View`s, `CollectionViews`a and `Region`s
* Event-driven architecture: utilizing `Backbone.Radio`
* Flexible: "as-needed" architecture allowing you to pick and choose what you need
* And much, much more
## Marionette Inspector
<a href="https://github.com/marionettejs/marionette.inspector"><img src="http://i.imgur.com/B1q9QXH.jpg" align="center" /></a>
+ **Visualize** the view hierarchy with the UI tree
+ **Visualize** application activity with a full history of actions
+ **Inspect** view ui, events, listeners, properties
+ **Inspect** model attributes, listeners, properties
+ **Explore** Radio channel events, requests, commands
+ **Explore** application with an inspector magnifying glass
+ **Jump** between the inspector elements and source panel with intelligent links
Download at [Chrome Web Store](https://chrome.google.com/webstore/detail/marionette-inspector/fbgfjlockdhidoaempmjcddibjklhpka)
Explore code at [Github](https://github.com/marionettejs/marionette.inspector)
## Source Code and Downloads
You can download the latest builds directly from the "lib" folder above.
For more information about the files in this folder, or to obtain an archive
containing all Marionette dependencies (including Underscore, Backbone, etc.),
please visit [the downloads section on the website](http://marionettejs.com#download).
You can
[download the latest builds directly](https://github.com/marionettejs/backbone.marionette/tree/v3.0.0/lib)
or visit the [downloads section on the Marionette website](http://marionettejs.com#download)
for more downloading options.
#### [MarionetteJS.com](http://marionettejs.com#download)
### Available Packages
### NPM and Bower
Marionette is available via bower and npm. There are other channels that are maintained by the community.
Marionette is available via bower and npm:
```bash
# NPM
npm install backbone.marionette
# Bower
bower install marionette
```
## Release Notes And Upgrade Guide

@@ -123,3 +117,3 @@

The source code for Marionette is heavily documented.
You can read the annotations for all the details of how Marionette works, and advice on which methods to override.
You can read the annotations for all the details of how Marionette works and advice on which methods to override.

@@ -133,6 +127,5 @@ ##### [View the annotated source code](http://marionettejs.com/annotated-src/backbone.marionette)

* [jQuery](http://jquery.com) v1.8+
* [Underscore](http://underscorejs.org) v1.4.4 - 1.6.0
* [Backbone](http://backbonejs.org) v1.0.0 - 1.1.2 are preferred.
* [Backbone.Radio](https://github.com/marionettejs/backbone.radio) Comes automatically with the bundled build.
* [Backbone.BabySitter](https://github.com/marionettejs/backbone.babysitter) Comes automatically with the bundled build.
* [Underscore](http://underscorejs.org) v1.8.3
* [Backbone](http://backbonejs.org) v1.3.3
* [Backbone.Radio](https://github.com/marionettejs/backbone.radio) v2.0.0+

@@ -143,3 +136,2 @@ Marionette has not been tested against any other versions of these

## How to Contribute

@@ -152,3 +144,3 @@

### [Github Issues](//github.com/marionettejs/backbone.marionette/issues)
### [Github Issues](https://github.com/marionettejs/backbone.marionette/issues)

@@ -155,0 +147,0 @@ Report issues with Marionette, submit pull requests to fix problems, or to

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc