marionette-rails 2.4.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 784f3ed30d496806b0e0eef14a7cf643152dbd24
4
- data.tar.gz: 90e2455a564f630445b624cc51081fb35b143e07
3
+ metadata.gz: 3e467ea7eb673f9ed8cd85cf2d21716c4cd52b61
4
+ data.tar.gz: 73fa91c96286e13bd5f2e44e34fce0e3fd376a48
5
5
  SHA512:
6
- metadata.gz: f6104cdf3edb687da3d167ea067fabe02a0bcdb67c9faff9ca917b8bc32b62311047d66db12e6b992dfa3cfa4bbaa2a3e7a40f4181c316c1fdb334bd957866db
7
- data.tar.gz: 229f8eead03011880e83ccacd692c0be10da7df8265b92c78582af0aab09d819d0e31382bc53da8d0b38339f53333a4d401343958e12c51789bec7001c51b354
6
+ metadata.gz: 1dfadc846e869b02e0a5eb86fd014088cbad39a1299261abeff4ee52169b9d6054b63fcd7da5e3c3442ed586042f769958632dae01cce64af48fb423162849bc
7
+ data.tar.gz: 862ed224542a95be732baa1c393b46478e7037fe48162f0510fb4f151f88261c71ce33a918b8703bcef3c908fe36a1c0f4421c08438122861e4d954ffa377f4e
@@ -1,5 +1,5 @@
1
1
  module Marionette
2
2
  module Rails
3
- VERSION = '2.4.0'
3
+ VERSION = '2.4.1'
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  // MarionetteJS (Backbone.Marionette)
2
2
  // ----------------------------------
3
- // v2.4.0
3
+ // v2.4.1
4
4
  //
5
5
  // Copyright (c)2015 Derick Bailey, Muted Solutions, LLC.
6
6
  // Distributed under MIT license
@@ -494,7 +494,7 @@
494
494
 
495
495
  var Marionette = Backbone.Marionette = {};
496
496
 
497
- Marionette.VERSION = '2.4.0';
497
+ Marionette.VERSION = '2.4.1';
498
498
 
499
499
  Marionette.noConflict = function() {
500
500
  root.Marionette = previousMarionette;
@@ -606,8 +606,7 @@
606
606
  _.each(hash, function(val, key) {
607
607
  if (_.isString(val)) {
608
608
  hash[key] = Marionette.normalizeUIString(val, ui);
609
- }
610
- else if (_.isObject(val) && _.isArray(properties)) {
609
+ } else if (_.isObject(val) && _.isArray(properties)) {
611
610
  _.extend(val, Marionette.normalizeUIValues(_.pick(val, properties), ui));
612
611
  /* Value is an object, and we got an array of embedded property names to normalize. */
613
612
  _.each(properties, function(property) {
@@ -663,7 +662,6 @@
663
662
  // Trigger Method
664
663
  // --------------
665
664
 
666
-
667
665
  Marionette._triggerMethod = (function() {
668
666
  // split the event name on the ":"
669
667
  var splitter = /(^|:)(\w)/gi;
@@ -823,7 +821,6 @@
823
821
  target.stopListening(entity, evt, method);
824
822
  }
825
823
 
826
-
827
824
  // generic looping function
828
825
  function iterateEvents(target, entity, bindings, functionCallback, stringCallback) {
829
826
  if (!entity || !bindings) { return; }
@@ -935,7 +932,7 @@
935
932
  this._callbacks.push({cb: callback, ctx: contextOverride});
936
933
 
937
934
  promise.then(function(args) {
938
- if (contextOverride){ args.context = contextOverride; }
935
+ if (contextOverride) { args.context = contextOverride; }
939
936
  callback.call(args.context, args.options);
940
937
  });
941
938
  },
@@ -1061,7 +1058,7 @@
1061
1058
  // http://lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions-and-region-managers/
1062
1059
 
1063
1060
  Marionette.Region = Marionette.Object.extend({
1064
- constructor: function (options) {
1061
+ constructor: function(options) {
1065
1062
 
1066
1063
  // set options temporarily so that we can get `el`.
1067
1064
  // options will be overriden by Object.constructor
@@ -1091,7 +1088,7 @@
1091
1088
  // the old view being destroyed on show.
1092
1089
  // The `forceShow` option can be used to force a view to be
1093
1090
  // re-rendered if it's already shown in the region.
1094
- show: function(view, options){
1091
+ show: function(view, options) {
1095
1092
  if (!this._ensureElement()) {
1096
1093
  return;
1097
1094
  }
@@ -1207,7 +1204,7 @@
1207
1204
  return _.union([view], _.result(view, '_getNestedViews') || []);
1208
1205
  },
1209
1206
 
1210
- _ensureElement: function(){
1207
+ _ensureElement: function() {
1211
1208
  if (!_.isObject(this.el)) {
1212
1209
  this.$el = this.getEl(this.el);
1213
1210
  this.el = this.$el[0];
@@ -1369,7 +1366,7 @@
1369
1366
 
1370
1367
  // Build the region from a string selector like '#foo-region'
1371
1368
  _buildRegionFromSelector: function(selector, DefaultRegionClass) {
1372
- return new DefaultRegionClass({ el: selector });
1369
+ return new DefaultRegionClass({el: selector});
1373
1370
  },
1374
1371
 
1375
1372
  // Build the region from a configuration object
@@ -1454,7 +1451,7 @@
1454
1451
 
1455
1452
  // Gets all the regions contained within
1456
1453
  // the `regionManager` instance.
1457
- getRegions: function(){
1454
+ getRegions: function() {
1458
1455
  return _.clone(this._regions);
1459
1456
  },
1460
1457
 
@@ -1676,7 +1673,7 @@
1676
1673
 
1677
1674
  // Serialize a model by returning its attributes. Clones
1678
1675
  // the attributes to allow modification.
1679
- serializeModel: function(model){
1676
+ serializeModel: function(model) {
1680
1677
  return model.toJSON.apply(model, _.rest(arguments));
1681
1678
  },
1682
1679
 
@@ -1744,7 +1741,7 @@
1744
1741
 
1745
1742
  // normalize ui keys
1746
1743
  events = this.normalizeUIKeys(events);
1747
- if(_.isUndefined(eventsArg)) {this.events = events;}
1744
+ if (_.isUndefined(eventsArg)) {this.events = events;}
1748
1745
 
1749
1746
  var combinedEvents = {};
1750
1747
 
@@ -2029,7 +2026,7 @@
2029
2026
  // the resulting data. If both are found, defaults to the model.
2030
2027
  // You can override the `serializeData` method in your own view definition,
2031
2028
  // to provide custom serialization for your view's data.
2032
- serializeData: function(){
2029
+ serializeData: function() {
2033
2030
  if (!this.model && !this.collection) {
2034
2031
  return {};
2035
2032
  }
@@ -2049,7 +2046,7 @@
2049
2046
  },
2050
2047
 
2051
2048
  // Serialize a collection by serializing each of its models.
2052
- serializeCollection: function(collection){
2049
+ serializeCollection: function(collection) {
2053
2050
  return collection.toJSON.apply(collection, _.rest(arguments));
2054
2051
  },
2055
2052
 
@@ -2143,7 +2140,7 @@
2143
2140
  //
2144
2141
  // option to pass `{comparator: compFunction()}` to allow the `CollectionView`
2145
2142
  // to use a custom sort order for the collection.
2146
- constructor: function(options){
2143
+ constructor: function(options) {
2147
2144
 
2148
2145
  this.once('render', this._initialEvents);
2149
2146
  this._initChildViewStorage();
@@ -2254,10 +2251,10 @@
2254
2251
  // do not use their index, you can pass reorderOnSort: true
2255
2252
  // to only reorder the DOM after a sort instead of rendering
2256
2253
  // all the collectionView
2257
- reorder: function () {
2254
+ reorder: function() {
2258
2255
  var children = this.children;
2259
2256
  var models = this._filteredSortedModels();
2260
- var modelsChanged = _.find(models, function (model) {
2257
+ var modelsChanged = _.find(models, function(model) {
2261
2258
  return !children.findByModel(model);
2262
2259
  });
2263
2260
 
@@ -2268,14 +2265,14 @@
2268
2265
  this.render();
2269
2266
  } else {
2270
2267
  // get the DOM nodes in the same order as the models
2271
- var els = _.map(models, function (model) {
2268
+ var els = _.map(models, function(model) {
2272
2269
  return children.findByModel(model).el;
2273
2270
  });
2274
2271
 
2275
2272
  // since append moves elements that are already in the DOM,
2276
2273
  // appending the elements will effectively reorder them
2277
2274
  this.triggerMethod('before:reorder');
2278
- this.$el.append(els);
2275
+ this._appendReorderedChildren(els);
2279
2276
  this.triggerMethod('reorder');
2280
2277
  }
2281
2278
  },
@@ -2298,7 +2295,7 @@
2298
2295
  var models = this._filteredSortedModels();
2299
2296
 
2300
2297
  // check for any changes in sort order of views
2301
- var orderChanged = _.find(models, function(item, index){
2298
+ var orderChanged = _.find(models, function(item, index) {
2302
2299
  var view = this.children.findByModel(item);
2303
2300
  return !view || view._index !== index;
2304
2301
  }, this);
@@ -2311,6 +2308,12 @@
2311
2308
  // Internal reference to what index a `emptyView` is.
2312
2309
  _emptyViewIndex: -1,
2313
2310
 
2311
+ // Internal method. Separated so that CompositeView can append to the childViewContainer
2312
+ // if necessary
2313
+ _appendReorderedChildren: function(children) {
2314
+ this.$el.append(children);
2315
+ },
2316
+
2314
2317
  // Internal method. Separated so that CompositeView can have
2315
2318
  // more control over events being triggered, around the rendering
2316
2319
  // process
@@ -2363,7 +2366,7 @@
2363
2366
 
2364
2367
  // Filter after sorting in case the filter uses the index
2365
2368
  if (this.getOption('filter')) {
2366
- models = _.filter(models, function (model, index) {
2369
+ models = _.filter(models, function(model, index) {
2367
2370
  return this._shouldAddChild(model, index);
2368
2371
  }, this);
2369
2372
  }
@@ -2415,7 +2418,7 @@
2415
2418
  var emptyViewOptions = this.getOption('emptyViewOptions') ||
2416
2419
  this.getOption('childViewOptions');
2417
2420
 
2418
- if (_.isFunction(emptyViewOptions)){
2421
+ if (_.isFunction(emptyViewOptions)) {
2419
2422
  emptyViewOptions = emptyViewOptions.call(this, child, this._emptyViewIndex);
2420
2423
  }
2421
2424
 
@@ -2499,14 +2502,13 @@
2499
2502
  }
2500
2503
 
2501
2504
  // update the indexes of views after this one
2502
- this.children.each(function (laterView) {
2505
+ this.children.each(function(laterView) {
2503
2506
  if (laterView._index >= view._index) {
2504
2507
  laterView._index += increment ? 1 : -1;
2505
2508
  }
2506
2509
  });
2507
2510
  },
2508
2511
 
2509
-
2510
2512
  // Internal Method. Add the view to children and render it at
2511
2513
  // the given index.
2512
2514
  _addChildView: function(view, index) {
@@ -2554,9 +2556,13 @@
2554
2556
 
2555
2557
  if (view) {
2556
2558
  this.triggerMethod('before:remove:child', view);
2559
+
2557
2560
  // call 'destroy' or 'remove', depending on which is found
2558
- if (view.destroy) { view.destroy(); }
2559
- else if (view.remove) { view.remove(); }
2561
+ if (view.destroy) {
2562
+ view.destroy();
2563
+ } else if (view.remove) {
2564
+ view.remove();
2565
+ }
2560
2566
 
2561
2567
  delete view._parent;
2562
2568
  this.stopListening(view);
@@ -2605,12 +2611,11 @@
2605
2611
  // in order to reduce the number of inserts into the
2606
2612
  // document, which are expensive.
2607
2613
  collectionView._bufferedChildren.splice(index, 0, childView);
2608
- }
2609
- else {
2614
+ } else {
2610
2615
  // If we've already rendered the main collection, append
2611
2616
  // the new child into the correct order if we need to. Otherwise
2612
2617
  // append to the end.
2613
- if (!collectionView._insertBefore(childView, index)){
2618
+ if (!collectionView._insertBefore(childView, index)) {
2614
2619
  collectionView._insertAfter(childView);
2615
2620
  }
2616
2621
  }
@@ -2623,7 +2628,7 @@
2623
2628
  var findPosition = this.getOption('sort') && (index < this.children.length - 1);
2624
2629
  if (findPosition) {
2625
2630
  // Find the view after this one
2626
- currentView = this.children.find(function (view) {
2631
+ currentView = this.children.find(function(view) {
2627
2632
  return view._index === index + 1;
2628
2633
  });
2629
2634
  }
@@ -2674,7 +2679,7 @@
2674
2679
  // 'child' is the given model
2675
2680
  // 'index' is the index of that model in the collection
2676
2681
  // 'collection' is the collection referenced by this CollectionView
2677
- _shouldAddChild: function (child, index) {
2682
+ _shouldAddChild: function(child, index) {
2678
2683
  var filter = this.getOption('filter');
2679
2684
  return !_.isFunction(filter) || filter.call(this, child, index, this.collection);
2680
2685
  },
@@ -2766,7 +2771,7 @@
2766
2771
  serializeData: function() {
2767
2772
  var data = {};
2768
2773
 
2769
- if (this.model){
2774
+ if (this.model) {
2770
2775
  data = _.partial(this.serializeModel, this.model).apply(this, arguments);
2771
2776
  }
2772
2777
 
@@ -2843,11 +2848,19 @@
2843
2848
  // Internal method. Append a view to the end of the $el.
2844
2849
  // Overidden from CollectionView to ensure view is appended to
2845
2850
  // childViewContainer
2846
- _insertAfter: function (childView) {
2851
+ _insertAfter: function(childView) {
2847
2852
  var $container = this.getChildViewContainer(this, childView);
2848
2853
  $container.append(childView.el);
2849
2854
  },
2850
2855
 
2856
+ // Internal method. Append reordered childView'.
2857
+ // Overidden from CollectionView to ensure reordered views
2858
+ // are appended to childViewContainer
2859
+ _appendReorderedChildren: function(children) {
2860
+ var $container = this.getChildViewContainer(this);
2861
+ $container.append(children);
2862
+ },
2863
+
2851
2864
  // Internal method to ensure an `$childViewContainer` exists, for the
2852
2865
  // `attachHtml` method to use.
2853
2866
  getChildViewContainer: function(containerView, childView) {
@@ -2946,7 +2959,7 @@
2946
2959
  if (this.isDestroyed) { return this; }
2947
2960
  // #2134: remove parent element before destroying the child views, so
2948
2961
  // removing the child views doesn't retrigger repaints
2949
- if(this.getOption('destroyImmediate') === true) {
2962
+ if (this.getOption('destroyImmediate') === true) {
2950
2963
  this.$el.remove();
2951
2964
  }
2952
2965
  this.regionManager.destroy();
@@ -2988,7 +3001,7 @@
2988
3001
  },
2989
3002
 
2990
3003
  // Get all regions
2991
- getRegions: function(){
3004
+ getRegions: function() {
2992
3005
  return this.regionManager.getRegions();
2993
3006
  },
2994
3007
 
@@ -3114,7 +3127,7 @@
3114
3127
  return this;
3115
3128
  },
3116
3129
 
3117
- proxyViewProperties: function (view) {
3130
+ proxyViewProperties: function(view) {
3118
3131
  this.$el = view.$el;
3119
3132
  this.el = view.el;
3120
3133
  }
@@ -3164,7 +3177,6 @@
3164
3177
  var _events = {};
3165
3178
  var behaviorEvents = _.clone(_.result(b, 'events')) || {};
3166
3179
 
3167
-
3168
3180
  // Normalize behavior events hash to allow
3169
3181
  // a user to use the @ui. syntax.
3170
3182
  behaviorEvents = Marionette.normalizeUIKeys(behaviorEvents, getBehaviorsUI(b));
@@ -3177,8 +3189,8 @@
3177
3189
  // the behavior index, and the behavior event index
3178
3190
  // to generate a non colliding event namespace
3179
3191
  // http://api.jquery.com/event.namespace/
3180
- var eventName = match[1] + '.' + [this.cid, i, j++, ' '].join(''),
3181
- selector = match[2];
3192
+ var eventName = match[1] + '.' + [this.cid, i, j++, ' '].join('');
3193
+ var selector = match[2];
3182
3194
 
3183
3195
  var eventKey = eventName + selector;
3184
3196
  var handler = _.isFunction(behaviour) ? behaviour : b[behaviour];
@@ -3453,7 +3465,7 @@
3453
3465
  },
3454
3466
 
3455
3467
  // Get all the regions from the region manager
3456
- getRegions: function(){
3468
+ getRegions: function() {
3457
3469
  return this._regionManager.getRegions();
3458
3470
  },
3459
3471
 
@@ -1 +1 @@
1
- {"version":3,"sources":["?"],"names":["root","factory","define","amd","Backbone","_","Marionette","Mn","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","previousWreqr","Wreqr","Handlers","options","_wreqrHandlers","initialize","Model","Events","setHandlers","handlers","handler","name","context","isObject","callback","setHandler","config","trigger","hasHandler","getHandler","Array","slice","removeHandler","removeAllHandlers","CommandStorage","_commands","getCommands","commandName","commands","command","instances","addCommand","push","clearCommands","Commands","storageType","constructor","_initializeStorage","on","_executeCommands","execute","storage","StorageType","RequestResponse","request","EventAggregator","EA","Channel","channelName","vent","reqres","reset","off","stopListening","connectEvents","hash","_connect","connectCommands","connectRequests","type","fn","eventName","bind","radio","Radio","_channels","_proxyMethods","channel","Error","_getChannel","system","messageSystems","proxyMethod","messageSystem","previousMarionette","previousMn","Deferred","$","isNodeAttached","el","contains","document","documentElement","mergeOptions","keys","pick","getOption","target","optionName","undefined","proxyGetOption","_getValue","value","params","normalizeMethods","reduce","normalizedHash","normalizeUIString","uiString","ui","replace","r","normalizeUIKeys","memo","val","normalizedKey","normalizeUIValues","properties","isString","isArray","property","propertyVal","actAsCollection","object","listProperty","list","result","deprecate","message","test","prev","next","url","_cache","_warn","console","warn","log","_triggerMethod","getEventName","match","prefix","toUpperCase","splitter","event","noEventArg","methodName","rest","drop","triggerMethod","triggerMethodOn","fnc","MonitorDOMRefresh","handleShow","_isShown","triggerDOMRefresh","handleRender","_isRendered","show","render","bindFromStrings","entity","evt","methodNames","split","listenTo","bindToFunction","unbindFromStrings","unbindToFunction","iterateEvents","bindings","functionCallback","stringCallback","bindEntityEvents","unbindEntityEvents","proxyBindEntityEvents","proxyUnbindEntityEvents","errorProps","urlRoot","error","captureStackTrace","toString","Callbacks","_deferred","_callbacks","contextOverride","promise","cb","ctx","then","run","resolve","callbacks","Controller","destroy","Object","Region","$el","getEl","_ensureElement","_ensureViewIsIntact","showOptions","isDifferentView","currentView","preventDestroy","forceShow","isChangingView","_shouldDestroyView","_shouldShowView","_parent","empty","once","attachedRegion","displayedViews","triggerBeforeAttach","triggerAttach","_displayedViews","_triggerAttach","attachHtml","union","selector","isDestroyed","parentEl","contents","detach","appendChild","_destroyView","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","html","rawTemplate","Renderer","data","templateFunc","View","bindAll","_behaviors","Behaviors","getTemplate","serializeModel","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","hasOptions","preventDefault","stopPropagation","e","setElement","ret","_triggerEventOnBehaviors","_triggerEventOnParentLayout","behaviors","layoutView","_parentLayoutView","eventPrefix","prefixedEventName","childEvents","normalizedChildEvents","_getImmediateChildren","_getNestedViews","children","_getAncestors","ancestors","parent","find","LayoutView","ItemView","serializeData","items","serializeCollection","_renderTemplate","attachElContent","CollectionView","childViewEventPrefix","sort","_initialEvents","_initChildViewStorage","_onShowCalled","initRenderBuffer","_bufferedChildren","startBuffering","isBuffering","endBuffering","_triggerBeforeShowBufferedChildren","attachBuffer","_triggerShowBufferedChildren","partial","_triggerMethodOnChild","childView","_onCollectionAdd","_onCollectionRemove","_sortViews","child","opts","at","indexOf","_filteredSortedModels","_shouldAddChild","destroyEmptyView","ChildView","getChildView","addChild","removeChildView","checkEmpty","_renderChildren","reorder","models","modelsChanged","els","map","append","resortView","orderChanged","item","_index","_emptyViewIndex","destroyChildren","isEmpty","showEmptyView","showCollection","viewComparator","getViewComparator","sortBy","filter","EmptyView","getEmptyView","_showingEmptyView","addEmptyView","emptyViewOptions","buildChildView","proxyChildEvents","renderChildView","childViewOptions","_updateIndices","_addChildView","increment","laterView","ChildViewClass","collectionView","_createBuffer","elBuffer","createDocumentFragment","b","splice","_insertBefore","_insertAfter","findPosition","before","childViews","identity","rootEvent","CompositeView","_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","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","addInitializer","initializer","start","_regionManager","moduleNames","moduleDefinition","ModuleClass","Module","getClass","unshift","create","optionRegions","moduleName","app","_setupInitializersAndFinalizers","startWithParent","_initializerCallbacks","addFinalizer","_finalizerCallbacks","_isInitialized","mod","stop","addDefinition","customArgs","_runModuleDefinition","moduleDefinitions","parentModule","_getModule","_addModuleDefinition","def","moduleClass","_getDefine","_getStartWithParent","_addStartWithParent","swp","startWithParentIsConfigured"],"mappings":"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","file":"lib/backbone.marionette.min.js"}
1
+ Not Found
@@ -1,6 +1,6 @@
1
1
  // MarionetteJS (Backbone.Marionette)
2
2
  // ----------------------------------
3
- // v2.4.0
3
+ // v2.4.1
4
4
  //
5
5
  // Copyright (c)2015 Derick Bailey, Muted Solutions, LLC.
6
6
  // Distributed under MIT license
@@ -17,6 +17,7 @@
17
17
  */
18
18
 
19
19
 
20
- (function(e,t){if("function"==typeof define&&define.amd)define(["backbone","underscore"],function(i,n){return e.Marionette=e.Mn=t(e,i,n)});else if("undefined"!=typeof exports){var i=require("backbone"),n=require("underscore");module.exports=t(e,i,n)}else e.Marionette=e.Mn=t(e,e.Backbone,e._)})(this,function(e,t,i){"use strict";(function(e,t){var i=e.ChildViewContainer;return e.ChildViewContainer=function(e,t){var i=function(e){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),t.each(e,this.add,this)};t.extend(i.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){return e===i?(delete this._indexByCustom[t],!0):void 0},this),delete this._views[i],this._updateLength(),this},call:function(e){this.apply(e,t.tail(arguments))},apply:function(e,i){t.each(this._views,function(n){t.isFunction(n[e])&&n[e].apply(n,i||[])})},_updateLength:function(){this.length=t.size(this._views)}});var n=["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 t.each(n,function(e){i.prototype[e]=function(){var i=t.values(this._views),n=[i].concat(t.toArray(arguments));return t[e].apply(t,n)}}),i}(e,t),e.ChildViewContainer.VERSION="0.1.6",e.ChildViewContainer.noConflict=function(){return e.ChildViewContainer=i,this},e.ChildViewContainer})(t,i),function(e,t){var i=e.Wreqr,n=e.Wreqr={};return e.Wreqr.VERSION="1.3.1",e.Wreqr.noConflict=function(){return e.Wreqr=i,this},n.Handlers=function(e,t){var i=function(e){this.options=e,this._wreqrHandlers={},t.isFunction(this.initialize)&&this.initialize(e)};return i.extend=e.Model.extend,t.extend(i.prototype,e.Events,{setHandlers:function(e){t.each(e,function(e,i){var n=null;t.isObject(e)&&!t.isFunction(e)&&(n=e.context,e=e.callback),this.setHandler(i,e,n)},this)},setHandler:function(e,t,i){var n={callback:t,context:i};this._wreqrHandlers[e]=n,this.trigger("handler:add",e,t,i)},hasHandler:function(e){return!!this._wreqrHandlers[e]},getHandler:function(e){var t=this._wreqrHandlers[e];if(t)return function(){var e=Array.prototype.slice.apply(arguments);return t.callback.apply(t.context,e)}},removeHandler:function(e){delete this._wreqrHandlers[e]},removeAllHandlers:function(){this._wreqrHandlers={}}}),i}(e,t),n.CommandStorage=function(){var i=function(e){this.options=e,this._commands={},t.isFunction(this.initialize)&&this.initialize(e)};return t.extend(i.prototype,e.Events,{getCommands:function(e){var t=this._commands[e];return t||(t={command:e,instances:[]},this._commands[e]=t),t},addCommand:function(e,t){var i=this.getCommands(e);i.instances.push(t)},clearCommands:function(e){var t=this.getCommands(e);t.instances=[]}}),i}(),n.Commands=function(e){return e.Handlers.extend({storageType:e.CommandStorage,constructor:function(t){this.options=t||{},this._initializeStorage(this.options),this.on("handler:add",this._executeCommands,this);var i=Array.prototype.slice.call(arguments);e.Handlers.prototype.constructor.apply(this,i)},execute:function(e,t){e=arguments[0],t=Array.prototype.slice.call(arguments,1),this.hasHandler(e)?this.getHandler(e).apply(this,t):this.storage.addCommand(e,t)},_executeCommands:function(e,i,n){var r=this.storage.getCommands(e);t.each(r.instances,function(e){i.apply(n,e)}),this.storage.clearCommands(e)},_initializeStorage:function(e){var i,n=e.storageType||this.storageType;i=t.isFunction(n)?new n:n,this.storage=i}})}(n),n.RequestResponse=function(e){return e.Handlers.extend({request:function(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return this.hasHandler(e)?this.getHandler(e).apply(this,t):void 0}})}(n),n.EventAggregator=function(e,t){var i=function(){};return i.extend=e.Model.extend,t.extend(i.prototype,e.Events),i}(e,t),n.Channel=function(){var i=function(t){this.vent=new e.Wreqr.EventAggregator,this.reqres=new e.Wreqr.RequestResponse,this.commands=new e.Wreqr.Commands,this.channelName=t};return t.extend(i.prototype,{reset:function(){return this.vent.off(),this.vent.stopListening(),this.reqres.removeAllHandlers(),this.commands.removeAllHandlers(),this},connectEvents:function(e,t){return this._connect("vent",e,t),this},connectCommands:function(e,t){return this._connect("commands",e,t),this},connectRequests:function(e,t){return this._connect("reqres",e,t),this},_connect:function(e,i,n){if(i){n=n||this;var r="vent"===e?"on":"setHandler";t.each(i,function(i,s){this[e][r](s,t.bind(i,n))},this)}}}),i}(n),n.radio=function(e){var i=function(){this._channels={},this.vent={},this.commands={},this.reqres={},this._proxyMethods()};t.extend(i.prototype,{channel:function(e){if(!e)throw Error("Channel must receive a name");return this._getChannel(e)},_getChannel:function(t){var i=this._channels[t];return i||(i=new e.Channel(t),this._channels[t]=i),i},_proxyMethods:function(){t.each(["vent","commands","reqres"],function(e){t.each(n[e],function(t){this[e][t]=r(this,e,t)},this)},this)}});var n={vent:["on","off","trigger","once","stopListening","listenTo","listenToOnce"],commands:["execute","setHandler","setHandlers","removeHandler","removeAllHandlers"],reqres:["request","setHandler","setHandlers","removeHandler","removeAllHandlers"]},r=function(e,t,i){return function(n){var r=e._getChannel(n)[t],s=Array.prototype.slice.call(arguments,1);return r[i].apply(r,s)}};return new i}(n),e.Wreqr}(t,i);var n=e.Marionette,r=e.Mn,s=t.Marionette={};s.VERSION="2.4.0",s.noConflict=function(){return e.Marionette=n,e.Mn=r,this},t.Marionette=s,s.Deferred=t.$.Deferred,s.extend=t.Model.extend,s.isNodeAttached=function(e){return t.$.contains(document.documentElement,e)},s.mergeOptions=function(e,t){e&&i.extend(this,i.pick(e,t))},s.getOption=function(e,t){return e&&t?e.options&&void 0!==e.options[t]?e.options[t]:e[t]:void 0},s.proxyGetOption=function(e){return s.getOption(this,e)},s._getValue=function(e,t,n){return i.isFunction(e)&&(e=n?e.apply(t,n):e.call(t)),e},s.normalizeMethods=function(e){return i.reduce(e,function(e,t,n){return i.isFunction(t)||(t=this[t]),t&&(e[n]=t),e},{},this)},s.normalizeUIString=function(e,t){return e.replace(/@ui\.[a-zA-Z_$0-9]*/g,function(e){return t[e.slice(4)]})},s.normalizeUIKeys=function(e,t){return i.reduce(e,function(e,i,n){var r=s.normalizeUIString(n,t);return e[r]=i,e},{})},s.normalizeUIValues=function(e,t,n){return i.each(e,function(r,o){i.isString(r)?e[o]=s.normalizeUIString(r,t):i.isObject(r)&&i.isArray(n)&&(i.extend(r,s.normalizeUIValues(i.pick(r,n),t)),i.each(n,function(e){var n=r[e];i.isString(n)&&(r[e]=s.normalizeUIString(n,t))}))}),e},s.actAsCollection=function(e,t){var n=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];i.each(n,function(n){e[n]=function(){var e=i.values(i.result(this,t)),r=[e].concat(i.toArray(arguments));return i[n].apply(i,r)}})};var o=s.deprecate=function(e,t){i.isObject(e)&&(e=e.prev+" is going to be removed in the future. "+"Please use "+e.next+" instead."+(e.url?" See: "+e.url:"")),void 0!==t&&t||o._cache[e]||(o._warn("Deprecation warning: "+e),o._cache[e]=!0)};o._warn="undefined"!=typeof console&&(console.warn||console.log)||function(){},o._cache={},s._triggerMethod=function(){function e(e,t,i){return i.toUpperCase()}var t=/(^|:)(\w)/gi;return function(n,r,s){var o=3>arguments.length;o&&(s=r,r=s[0]);var h,a="on"+r.replace(t,e),l=n[a];return i.isFunction(l)&&(h=l.apply(n,o?i.rest(s):s)),i.isFunction(n.trigger)&&(o+s.length>1?n.trigger.apply(n,o?s:[r].concat(i.drop(s,0))):n.trigger(r)),h}}(),s.triggerMethod=function(){return s._triggerMethod(this,arguments)},s.triggerMethodOn=function(e){var t=i.isFunction(e.triggerMethod)?e.triggerMethod:s.triggerMethod;return t.apply(e,i.rest(arguments))},s.MonitorDOMRefresh=function(e){function t(){e._isShown=!0,r()}function n(){e._isRendered=!0,r()}function r(){e._isShown&&e._isRendered&&s.isNodeAttached(e.el)&&i.isFunction(e.triggerMethod)&&e.triggerMethod("dom:refresh")}e.on({show:t,render:n})},function(e){function t(t,n,r,s){var o=s.split(/\s+/);i.each(o,function(i){var s=t[i];if(!s)throw new e.Error('Method "'+i+'" was configured as an event handler, but does not exist.');t.listenTo(n,r,s)})}function n(e,t,i,n){e.listenTo(t,i,n)}function r(e,t,n,r){var s=r.split(/\s+/);i.each(s,function(i){var r=e[i];e.stopListening(t,n,r)})}function s(e,t,i,n){e.stopListening(t,i,n)}function o(t,n,r,s,o){if(n&&r){if(!i.isObject(r))throw new e.Error({message:"Bindings must be an object or function.",url:"marionette.functions.html#marionettebindentityevents"});r=e._getValue(r,t),i.each(r,function(e,r){i.isFunction(e)?s(t,n,r,e):o(t,n,r,e)})}}e.bindEntityEvents=function(e,i,r){o(e,i,r,n,t)},e.unbindEntityEvents=function(e,t,i){o(e,t,i,s,r)},e.proxyBindEntityEvents=function(t,i){return e.bindEntityEvents(this,t,i)},e.proxyUnbindEntityEvents=function(t,i){return e.unbindEntityEvents(this,t,i)}}(s);var h=["description","fileName","lineNumber","name","message","number"];return s.Error=s.extend.call(Error,{urlRoot:"http://marionettejs.com/docs/v"+s.VERSION+"/",constructor:function(e,t){i.isObject(e)?(t=e,e=t.message):t||(t={});var n=Error.call(this,e);i.extend(this,i.pick(n,h),i.pick(t,h)),this.captureStackTrace(),t.url&&(this.url=this.urlRoot+t.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,s.Error)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}}),s.Error.extend=s.extend,s.Callbacks=function(){this._deferred=s.Deferred(),this._callbacks=[]},i.extend(s.Callbacks.prototype,{add:function(e,t){var n=i.result(this._deferred,"promise");this._callbacks.push({cb:e,ctx:t}),n.then(function(i){t&&(i.context=t),e.call(i.context,i.options)})},run:function(e,t){this._deferred.resolve({options:e,context:t})},reset:function(){var e=this._callbacks;this._deferred=s.Deferred(),this._callbacks=[],i.each(e,function(e){this.add(e.cb,e.ctx)},this)}}),s.Controller=function(e){this.options=e||{},i.isFunction(this.initialize)&&this.initialize(this.options)},s.Controller.extend=s.extend,i.extend(s.Controller.prototype,t.Events,{destroy:function(){return s._triggerMethod(this,"before:destroy",arguments),s._triggerMethod(this,"destroy",arguments),this.stopListening(),this.off(),this},triggerMethod:s.triggerMethod,mergeOptions:s.mergeOptions,getOption:s.proxyGetOption}),s.Object=function(e){this.options=i.extend({},i.result(this,"options"),e),this.initialize.apply(this,arguments)},s.Object.extend=s.extend,i.extend(s.Object.prototype,t.Events,{initialize:function(){},destroy:function(){return this.triggerMethod("before:destroy"),this.triggerMethod("destroy"),this.stopListening(),this},triggerMethod:s.triggerMethod,mergeOptions:s.mergeOptions,getOption:s.proxyGetOption,bindEntityEvents:s.proxyBindEntityEvents,unbindEntityEvents:s.proxyUnbindEntityEvents}),s.Region=s.Object.extend({constructor:function(e){if(this.options=e||{},this.el=this.getOption("el"),this.el=this.el instanceof t.$?this.el[0]:this.el,!this.el)throw new s.Error({name:"NoElError",message:'An "el" must be specified for a region.'});this.$el=this.getEl(this.el),s.Object.call(this,e)},show:function(e,t){if(this._ensureElement()){this._ensureViewIsIntact(e);var i=t||{},n=e!==this.currentView,r=!!i.preventDestroy,o=!!i.forceShow,h=!!this.currentView,a=n&&!r,l=n||o;if(h&&this.triggerMethod("before:swapOut",this.currentView,this,t),this.currentView&&delete this.currentView._parent,a?this.empty():h&&l&&this.currentView.off("destroy",this.empty,this),l){e.once("destroy",this.empty,this),e.render(),e._parent=this,h&&this.triggerMethod("before:swap",e,this,t),this.triggerMethod("before:show",e,this,t),s.triggerMethodOn(e,"before:show",e,this,t),h&&this.triggerMethod("swapOut",this.currentView,this,t);var d=s.isNodeAttached(this.el),u=[],c=i.triggerBeforeAttach||this.triggerBeforeAttach,g=i.triggerAttach||this.triggerAttach;return d&&c&&(u=this._displayedViews(e),this._triggerAttach(u,"before:")),this.attachHtml(e),this.currentView=e,d&&g&&(u=this._displayedViews(e),this._triggerAttach(u)),h&&this.triggerMethod("swap",e,this,t),this.triggerMethod("show",e,this,t),s.triggerMethodOn(e,"show",e,this,t),this}return this}},triggerBeforeAttach:!0,triggerAttach:!0,_triggerAttach:function(e,t){var n=(t||"")+"attach";i.each(e,function(e){s.triggerMethodOn(e,n,e,this)},this)},_displayedViews:function(e){return i.union([e],i.result(e,"_getNestedViews")||[])},_ensureElement:function(){if(i.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 s.Error('An "el" '+this.$el.selector+" must exist in DOM")}return!0},_ensureViewIsIntact:function(e){if(!e)throw new s.Error({name:"ViewNotValid",message:"The view passed is undefined and therefore invalid. You must pass a view instance to show."});if(e.isDestroyed)throw new s.Error({name:"ViewDestroyedError",message:'View (cid: "'+e.cid+'") has already been destroyed and cannot be used.'})},getEl:function(e){return t.$(e,s._getValue(this.options.parentEl,this))},attachHtml:function(e){this.$el.contents().detach(),this.el.appendChild(e.el)},empty:function(e){var t=this.currentView,i=s._getValue(e,"preventDestroy",this);return t?(t.off("destroy",this.empty,this),this.triggerMethod("before:empty",t),i||this._destroyView(),this.triggerMethod("empty",t),delete this.currentView,i&&this.$el.contents().detach(),this):void 0},_destroyView:function(){var e=this.currentView;e.destroy&&!e.isDestroyed?e.destroy():e.remove&&(e.remove(),e.isDestroyed=!0)},attachView:function(e){return this.currentView=e,this},hasView:function(){return!!this.currentView},reset:function(){return this.empty(),this.$el&&(this.el=this.$el.selector),delete this.$el,this}},{buildRegion:function(e,t){if(i.isString(e))return this._buildRegionFromSelector(e,t);if(e.selector||e.el||e.regionClass)return this._buildRegionFromObject(e,t);if(i.isFunction(e))return this._buildRegionFromRegionClass(e);throw new s.Error({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromSelector:function(e,t){return new t({el:e})},_buildRegionFromObject:function(e,t){var n=e.regionClass||t,r=i.omit(e,"selector","regionClass");return e.selector&&!r.el&&(r.el=e.selector),new n(r)},_buildRegionFromRegionClass:function(e){return new e}}),s.RegionManager=s.Controller.extend({constructor:function(e){this._regions={},this.length=0,s.Controller.call(this,e),this.addRegions(this.getOption("regions"))},addRegions:function(e,t){return e=s._getValue(e,this,arguments),i.reduce(e,function(e,n,r){return i.isString(n)&&(n={selector:n}),n.selector&&(n=i.defaults({},n,t)),e[r]=this.addRegion(r,n),e},{},this)},addRegion:function(e,t){var i;return i=t instanceof s.Region?t:s.Region.buildRegion(t,s.Region),this.triggerMethod("before:add:region",e,i),i._parent=this,this._store(e,i),this.triggerMethod("add:region",e,i),i},get:function(e){return this._regions[e]},getRegions:function(){return i.clone(this._regions)},removeRegion:function(e){var t=this._regions[e];return this._remove(e,t),t},removeRegions:function(){var e=this.getRegions();return i.each(this._regions,function(e,t){this._remove(t,e)},this),e},emptyRegions:function(){var e=this.getRegions();return i.invoke(e,"empty"),e},destroy:function(){return this.removeRegions(),s.Controller.prototype.destroy.apply(this,arguments)},_store:function(e,t){this._regions[e]||this.length++,this._regions[e]=t},_remove:function(e,t){this.triggerMethod("before:remove:region",e,t),t.empty(),t.stopListening(),delete t._parent,delete this._regions[e],this.length--,this.triggerMethod("remove:region",e,t)}}),s.actAsCollection(s.RegionManager.prototype,"_regions"),s.TemplateCache=function(e){this.templateId=e},i.extend(s.TemplateCache,{templateCaches:{},get:function(e,t){var i=this.templateCaches[e];return i||(i=new s.TemplateCache(e),this.templateCaches[e]=i),i.load(t)},clear:function(){var e,t=i.toArray(arguments),n=t.length;if(n>0)for(e=0;n>e;e++)delete this.templateCaches[t[e]];else this.templateCaches={}}}),i.extend(s.TemplateCache.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(e){var i=t.$(e).html();if(!i||0===i.length)throw new s.Error({name:"NoTemplateError",message:'Could not find template: "'+e+'"'});return i},compileTemplate:function(e,t){return i.template(e,t)}}),s.Renderer={render:function(e,t){if(!e)throw new s.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var n=i.isFunction(e)?e:s.TemplateCache.get(e);return n(t)}},s.View=t.View.extend({isDestroyed:!1,constructor:function(e){i.bindAll(this,"render"),e=s._getValue(e,this),this.options=i.extend({},i.result(this,"options"),e),this._behaviors=s.Behaviors(this),t.View.call(this,this.options),s.MonitorDOMRefresh(this)},getTemplate:function(){return this.getOption("template")},serializeModel:function(e){return e.toJSON.apply(e,i.rest(arguments))},mixinTemplateHelpers:function(e){e=e||{};var t=this.getOption("templateHelpers");return t=s._getValue(t,this),i.extend(e,t)},normalizeUIKeys:function(e){var t=i.result(this,"_uiBindings");return s.normalizeUIKeys(e,t||i.result(this,"ui"))},normalizeUIValues:function(e,t){var n=i.result(this,"ui"),r=i.result(this,"_uiBindings");return s.normalizeUIValues(e,r||n,t)},configureTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(i.result(this,"triggers"));return i.reduce(e,function(e,t,i){return e[i]=this._buildViewTrigger(t),e},{},this)}},delegateEvents:function(e){return this._delegateDOMEvents(e),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),i.each(this._behaviors,function(e){e.bindEntityEvents(this.model,e.getOption("modelEvents")),e.bindEntityEvents(this.collection,e.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(e){var n=s._getValue(e||this.events,this);n=this.normalizeUIKeys(n),i.isUndefined(e)&&(this.events=n);var r={},o=i.result(this,"behaviorEvents")||{},h=this.configureTriggers(),a=i.result(this,"behaviorTriggers")||{};i.extend(r,o,n,h,a),t.View.prototype.delegateEvents.call(this,r)},undelegateEvents:function(){return t.View.prototype.undelegateEvents.apply(this,arguments),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),i.each(this._behaviors,function(e){e.unbindEntityEvents(this.model,e.getOption("modelEvents")),e.unbindEntityEvents(this.collection,e.getOption("collectionEvents"))},this),this},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new s.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(this.isDestroyed)return this;var e=i.toArray(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(e)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(e)),this.unbindUIElements(),this.isRendered=!1,this.remove(),i.invoke(this._behaviors,"destroy",e),this},bindUIElements:function(){this._bindUIElements(),i.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var e=i.result(this,"_uiBindings");this.ui={},i.each(e,function(e,t){this.ui[t]=this.$(e)},this)}},unbindUIElements:function(){this._unbindUIElements(),i.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(i.each(this.ui,function(e,t){delete this.ui[t]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(e){var t=i.isObject(e),n=i.defaults({},t?e:{},{preventDefault:!0,stopPropagation:!0}),r=t?n.event:e;return function(e){e&&(e.preventDefault&&n.preventDefault&&e.preventDefault(),e.stopPropagation&&n.stopPropagation&&e.stopPropagation());var t={view:this,model:this.model,collection:this.collection};this.triggerMethod(r,t)}},setElement:function(){var e=t.View.prototype.setElement.apply(this,arguments);return i.invoke(this._behaviors,"proxyViewProperties",this),e},triggerMethod:function(){var e=s._triggerMethod(this,arguments);return this._triggerEventOnBehaviors(arguments),this._triggerEventOnParentLayout(arguments[0],i.rest(arguments)),e},_triggerEventOnBehaviors:function(e){for(var t=s._triggerMethod,i=this._behaviors,n=0,r=i&&i.length;r>n;n++)t(i[n],e)},_triggerEventOnParentLayout:function(e,t){var n=this._parentLayoutView();if(n){var r=s.getOption(n,"childViewEventPrefix"),o=r+":"+e;s._triggerMethod(n,[o,this].concat(t));var h=s.getOption(n,"childEvents"),a=n.normalizeMethods(h);a&&i.isFunction(a[e])&&a[e].apply(n,[this].concat(t))}},_getImmediateChildren:function(){return[]},_getNestedViews:function(){var e=this._getImmediateChildren();return e.length?i.reduce(e,function(e,t){return t._getNestedViews?e.concat(t._getNestedViews()):e},e):e},_getAncestors:function(){for(var e=[],t=this._parent;t;)e.push(t),t=t._parent;return e},_parentLayoutView:function(){var e=this._getAncestors();return i.find(e,function(e){return e instanceof s.LayoutView})},normalizeMethods:s.normalizeMethods,mergeOptions:s.mergeOptions,getOption:s.proxyGetOption,bindEntityEvents:s.proxyBindEntityEvents,unbindEntityEvents:s.proxyUnbindEntityEvents}),s.ItemView=s.View.extend({constructor:function(){s.View.apply(this,arguments)},serializeData:function(){if(!this.model&&!this.collection)return{};var e=[this.model||this.collection];return arguments.length&&e.push.apply(e,arguments),this.model?this.serializeModel.apply(this,e):{items:this.serializeCollection.apply(this,e)}},serializeCollection:function(e){return e.toJSON.apply(e,i.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 e=this.getTemplate();if(e!==!1){if(!e)throw new s.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var t=this.mixinTemplateHelpers(this.serializeData()),i=s.Renderer.render(e,t,this);return this.attachElContent(i),this}},attachElContent:function(e){return this.$el.html(e),this}}),s.CollectionView=s.View.extend({childViewEventPrefix:"childview",sort:!0,constructor:function(){this.once("render",this._initialEvents),this._initChildViewStorage(),s.View.apply(this,arguments),this.on("show",this._onShowCalled),this.initRenderBuffer()},initRenderBuffer:function(){this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&i.each(this._bufferedChildren,i.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(i.each(this._bufferedChildren,i.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(e,t){s.triggerMethodOn(t,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(e,t,n){var r;if(r=void 0!==n.at?n.at:i.indexOf(this._filteredSortedModels(),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()},_onShowCalled:function(){this.children.each(i.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.isRendered=!0,this.triggerMethod("render",this),this},reorder:function(){var e=this.children,t=this._filteredSortedModels(),n=i.find(t,function(t){return!e.findByModel(t)});if(n)this.render();else{var r=i.map(t,function(t){return e.findByModel(t).el});this.triggerMethod("before:reorder"),this.$el.append(r),this.triggerMethod("reorder")}},resortView:function(){s.getOption(this,"reorderOnSort")?this.reorder():this.render()},_sortViews:function(){var e=this._filteredSortedModels(),t=i.find(e,function(e,t){var i=this.children.findByModel(e);return!i||i._index!==t},this);t&&this.resortView()},_emptyViewIndex:-1,_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),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.showEmptyView())},showCollection:function(){var e,t=this._filteredSortedModels();i.each(t,function(t,i){e=this.getChildView(t),this.addChild(t,e,i)},this)},_filteredSortedModels:function(){var e,t=this.getViewComparator();return e=t?i.isString(t)||1===t.length?this.collection.sortBy(t,this):i.clone(this.collection.models).sort(i.bind(t,this)):this.collection.models,this.getOption("filter")&&(e=i.filter(e,function(e,t){return this._shouldAddChild(e,t)},this)),e},showEmptyView:function(){var e=this.getEmptyView();if(e&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var i=new t.Model;this.addEmptyView(i,e),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(e,t){var n=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");i.isFunction(n)&&(n=n.call(this,e,this._emptyViewIndex));var r=this.buildChildView(e,t,n);r._parent=this,this.proxyChildEvents(r),this._isShown&&s.triggerMethodOn(r,"before:show"),this.children.add(r),this.renderChildView(r,this._emptyViewIndex),this._isShown&&s.triggerMethodOn(r,"show")},getChildView:function(){var e=this.getOption("childView");if(!e)throw new s.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return e},addChild:function(e,t,i){var n=this.getOption("childViewOptions");n=s._getValue(n,this,[e,i]);var r=this.buildChildView(e,t,n);return this._updateIndices(r,!0,i),this._addChildView(r,i),r._parent=this,r},_updateIndices:function(e,t,i){this.getOption("sort")&&(t&&(e._index=i),this.children.each(function(i){i._index>=e._index&&(i._index+=t?1:-1)}))},_addChildView:function(e,t){this.proxyChildEvents(e),this.triggerMethod("before:add:child",e),this._isShown&&!this.isBuffering&&s.triggerMethodOn(e,"before:show"),this.children.add(e),this.renderChildView(e,t),this._isShown&&!this.isBuffering&&s.triggerMethodOn(e,"show"),this.triggerMethod("add:child",e)},renderChildView:function(e,t){return e.render(),this.attachHtml(this,e,t),e},buildChildView:function(e,t,n){var r=i.extend({model:e},n);return new t(r)},removeChildView:function(e){return e&&(this.triggerMethod("before:remove:child",e),e.destroy?e.destroy():e.remove&&e.remove(),delete e._parent,this.stopListening(e),this.children.remove(e),this.triggerMethod("remove:child",e),this._updateIndices(e,!1)),e},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(e){e.$el.append(this._createBuffer(e))},_createBuffer:function(e){var t=document.createDocumentFragment();return i.each(e._bufferedChildren,function(e){t.appendChild(e.el)}),t},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,n=this.getOption("sort")&&this.children.length-1>t;return n&&(i=this.children.find(function(e){return e._index===t+1})),i?(i.$el.before(e.el),!0):!1},_insertAfter:function(e){this.$el.append(e.el)},_initChildViewStorage:function(){this.children=new t.ChildViewContainer},destroy:function(){return this.isDestroyed?this:(this.triggerMethod("before:destroy:collection"),this.destroyChildren(),this.triggerMethod("destroy:collection"),s.View.prototype.destroy.apply(this,arguments))},destroyChildren:function(){var e=this.children.map(i.identity);return this.children.each(this.removeChildView,this),this.checkEmpty(),e},_shouldAddChild:function(e,t){var n=this.getOption("filter");return!i.isFunction(n)||n.call(this,e,t,this.collection)},proxyChildEvents:function(e){var t=this.getOption("childViewEventPrefix");this.listenTo(e,"all",function(){var n=i.toArray(arguments),r=n[0],s=this.normalizeMethods(i.result(this,"childEvents"));n[0]=t+":"+r,n.splice(1,0,e),s!==void 0&&i.isFunction(s[r])&&s[r].apply(this,n.slice(1)),this.triggerMethod.apply(this,n)})},_getImmediateChildren:function(){return i.values(this.children._views)},getViewComparator:function(){return this.getOption("viewComparator")}}),s.CompositeView=s.CollectionView.extend({constructor:function(){s.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(){var e=this.getOption("childView")||this.constructor;return e},serializeData:function(){var e={};return this.model&&(e=i.partial(this.serializeModel,this.model).apply(this,arguments)),e},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)&&s.CollectionView.prototype._renderChildren.call(this)},_renderTemplate:function(){var e={};e=this.serializeData(),e=this.mixinTemplateHelpers(e),this.triggerMethod("before:render:template");var t=this.getTemplate(),i=s.Renderer.render(t,e,this);this.attachElContent(i),this.bindUIElements(),this.triggerMethod("render:template")},attachElContent:function(e){return this.$el.html(e),this},attachBuffer:function(e){var t=this.getChildViewContainer(e);t.append(this._createBuffer(e))},_insertAfter:function(e){var t=this.getChildViewContainer(this,e);t.append(e.el)},getChildViewContainer:function(e){if("$childViewContainer"in e)return e.$childViewContainer;var t,i=s.getOption(e,"childViewContainer");if(i){var n=s._getValue(i,e);if(t="@"===n.charAt(0)&&e.ui?e.ui[n.substr(4)]:e.$(n),0>=t.length)throw new s.Error({name:"ChildViewContainerMissingError",message:'The specified "childViewContainer" was not found: '+e.childViewContainer})}else t=e.$el;return e.$childViewContainer=t,t
21
- },resetChildViewContainer:function(){this.$childViewContainer&&delete this.$childViewContainer}}),s.LayoutView=s.ItemView.extend({regionClass:s.Region,options:{destroyImmediate:!1},childViewEventPrefix:"childview",constructor:function(e){e=e||{},this._firstRender=!0,this._initializeRegions(e),s.ItemView.call(this,e)},render:function(){return this._ensureViewIsIntact(),this._firstRender?this._firstRender=!1:this._reInitializeRegions(),s.ItemView.prototype.render.apply(this,arguments)},destroy:function(){return this.isDestroyed?this:(this.getOption("destroyImmediate")===!0&&this.$el.remove(),this.regionManager.destroy(),s.ItemView.prototype.destroy.apply(this,arguments))},showChildView:function(e,t){return this.getRegion(e).show(t)},getChildView:function(e){return this.getRegion(e).currentView},addRegion:function(e,t){var i={};return i[e]=t,this._buildRegions(i)[e]},addRegions:function(e){return this.regions=i.extend({},this.regions,e),this._buildRegions(e)},removeRegion:function(e){return delete this.regions[e],this.regionManager.removeRegion(e)},getRegion:function(e){return this.regionManager.get(e)},getRegions:function(){return this.regionManager.getRegions()},_buildRegions:function(e){var t={regionClass:this.getOption("regionClass"),parentEl:i.partial(i.result,this,"el")};return this.regionManager.addRegions(e,t)},_initializeRegions:function(e){var t;this._initRegionManager(),t=s._getValue(this.regions,this,[e])||{};var n=this.getOption.call(e,"regions");n=s._getValue(n,this,[e]),i.extend(t,n),t=this.normalizeUIValues(t,["selector","el"]),this.addRegions(t)},_reInitializeRegions:function(){this.regionManager.invoke("reset")},getRegionManager:function(){return new s.RegionManager},_initRegionManager:function(){this.regionManager=this.getRegionManager(),this.regionManager._parent=this,this.listenTo(this.regionManager,"before:add:region",function(e){this.triggerMethod("before:add:region",e)}),this.listenTo(this.regionManager,"add:region",function(e,t){this[e]=t,this.triggerMethod("add:region",e,t)}),this.listenTo(this.regionManager,"before:remove:region",function(e){this.triggerMethod("before:remove:region",e)}),this.listenTo(this.regionManager,"remove:region",function(e,t){delete this[e],this.triggerMethod("remove:region",e,t)})},_getImmediateChildren:function(){return i.chain(this.regionManager.getRegions()).pluck("currentView").compact().value()}}),s.Behavior=s.Object.extend({constructor:function(e,t){this.view=t,this.defaults=i.result(this,"defaults")||{},this.options=i.extend({},this.defaults,e),this.ui=i.extend({},i.result(t,"ui"),i.result(this,"ui")),s.Object.apply(this,arguments)},$:function(){return this.view.$.apply(this.view,arguments)},destroy:function(){return this.stopListening(),this},proxyViewProperties:function(e){this.$el=e.$el,this.el=e.el}}),s.Behaviors=function(e,t){function i(e,n){return t.isObject(e.behaviors)?(n=i.parseBehaviors(e,n||t.result(e,"behaviors")),i.wrap(e,n,t.keys(o)),n):{}}function n(e,t){this._view=e,this._behaviors=t,this._triggers={}}function r(e){return e._uiBindings||e.ui}var s=/^(\S+)\s*(.*)$/,o={behaviorTriggers:function(e,t){var i=new n(this,t);return i.buildBehaviorTriggers()},behaviorEvents:function(i,n){var o={};return t.each(n,function(i,n){var h={},a=t.clone(t.result(i,"events"))||{};a=e.normalizeUIKeys(a,r(i));var l=0;t.each(a,function(e,r){var o=r.match(s),a=o[1]+"."+[this.cid,n,l++," "].join(""),d=o[2],u=a+d,c=t.isFunction(e)?e:i[e];h[u]=t.bind(c,i)},this),o=t.extend(o,h)},this),o}};return t.extend(i,{behaviorsLookup:function(){throw new e.Error({message:"You must define where your behaviors are stored.",url:"marionette.behaviors.html#behaviorslookup"})},getBehaviorClass:function(t,n){return t.behaviorClass?t.behaviorClass:e._getValue(i.behaviorsLookup,this,[t,n])[n]},parseBehaviors:function(e,n){return t.chain(n).map(function(n,r){var s=i.getBehaviorClass(n,r),o=new s(n,e),h=i.parseBehaviors(e,t.result(o,"behaviors"));return[o].concat(h)}).flatten().value()},wrap:function(e,i,n){t.each(n,function(n){e[n]=t.partial(o[n],e[n],i)})}}),t.extend(n.prototype,{buildBehaviorTriggers:function(){return t.each(this._behaviors,this._buildTriggerHandlersForBehavior,this),this._triggers},_buildTriggerHandlersForBehavior:function(i,n){var s=t.clone(t.result(i,"triggers"))||{};s=e.normalizeUIKeys(s,r(i)),t.each(s,t.bind(this._setHandlerForBehavior,this,i,n))},_setHandlerForBehavior:function(e,t,i,n){var r=n.replace(/^\S+/,function(e){return e+"."+"behaviortriggers"+t});this._triggers[r]=this._view._buildViewTrigger(i)}}),i}(s,i),s.AppRouter=t.Router.extend({constructor:function(e){this.options=e||{},t.Router.apply(this,arguments);var i=this.getOption("appRoutes"),n=this._getController();this.processAppRoutes(n,i),this.on("route",this._processOnRoute,this)},appRoute:function(e,t){var i=this._getController();this._addAppRoute(i,e,t)},_processOnRoute:function(e,t){if(i.isFunction(this.onRoute)){var n=i.invert(this.getOption("appRoutes"))[e];this.onRoute(e,n,t)}},processAppRoutes:function(e,t){if(t){var n=i.keys(t).reverse();i.each(n,function(i){this._addAppRoute(e,i,t[i])},this)}},_getController:function(){return this.getOption("controller")},_addAppRoute:function(e,t,n){var r=e[n];if(!r)throw new s.Error('Method "'+n+'" was not found on the controller');this.route(t,n,i.bind(r,e))},mergeOptions:s.mergeOptions,getOption:s.proxyGetOption,triggerMethod:s.triggerMethod,bindEntityEvents:s.proxyBindEntityEvents,unbindEntityEvents:s.proxyUnbindEntityEvents}),s.Application=s.Object.extend({constructor:function(e){this._initializeRegions(e),this._initCallbacks=new s.Callbacks,this.submodules={},i.extend(this,e),this._initChannel(),s.Object.call(this,e)},execute:function(){this.commands.execute.apply(this.commands,arguments)},request:function(){return this.reqres.request.apply(this.reqres,arguments)},addInitializer:function(e){this._initCallbacks.add(e)},start:function(e){this.triggerMethod("before:start",e),this._initCallbacks.run(e,this),this.triggerMethod("start",e)},addRegions:function(e){return this._regionManager.addRegions(e)},emptyRegions:function(){return this._regionManager.emptyRegions()},removeRegion:function(e){return this._regionManager.removeRegion(e)},getRegion:function(e){return this._regionManager.get(e)},getRegions:function(){return this._regionManager.getRegions()},module:function(e,t){var n=s.Module.getClass(t),r=i.toArray(arguments);return r.unshift(this),n.create.apply(n,r)},getRegionManager:function(){return new s.RegionManager},_initializeRegions:function(e){var t=i.isFunction(this.regions)?this.regions(e):this.regions||{};this._initRegionManager();var n=s.getOption(e,"regions");return i.isFunction(n)&&(n=n.call(this,e)),i.extend(t,n),this.addRegions(t),this},_initRegionManager:function(){this._regionManager=this.getRegionManager(),this._regionManager._parent=this,this.listenTo(this._regionManager,"before:add:region",function(){s._triggerMethod(this,"before:add:region",arguments)}),this.listenTo(this._regionManager,"add:region",function(e,t){this[e]=t,s._triggerMethod(this,"add:region",arguments)}),this.listenTo(this._regionManager,"before:remove:region",function(){s._triggerMethod(this,"before:remove:region",arguments)}),this.listenTo(this._regionManager,"remove:region",function(e){delete this[e],s._triggerMethod(this,"remove:region",arguments)})},_initChannel:function(){this.channelName=i.result(this,"channelName")||"global",this.channel=i.result(this,"channel")||t.Wreqr.radio.channel(this.channelName),this.vent=i.result(this,"vent")||this.channel.vent,this.commands=i.result(this,"commands")||this.channel.commands,this.reqres=i.result(this,"reqres")||this.channel.reqres}}),s.Module=function(e,t,n){this.moduleName=e,this.options=i.extend({},this.options,n),this.initialize=n.initialize||this.initialize,this.submodules={},this._setupInitializersAndFinalizers(),this.app=t,i.isFunction(this.initialize)&&this.initialize(e,t,this.options)},s.Module.extend=s.extend,i.extend(s.Module.prototype,t.Events,{startWithParent:!0,initialize:function(){},addInitializer:function(e){this._initializerCallbacks.add(e)},addFinalizer:function(e){this._finalizerCallbacks.add(e)},start:function(e){this._isInitialized||(i.each(this.submodules,function(t){t.startWithParent&&t.start(e)}),this.triggerMethod("before:start",e),this._initializerCallbacks.run(e,this),this._isInitialized=!0,this.triggerMethod("start",e))},stop:function(){this._isInitialized&&(this._isInitialized=!1,this.triggerMethod("before:stop"),i.invoke(this.submodules,"stop"),this._finalizerCallbacks.run(void 0,this),this._initializerCallbacks.reset(),this._finalizerCallbacks.reset(),this.triggerMethod("stop"))},addDefinition:function(e,t){this._runModuleDefinition(e,t)},_runModuleDefinition:function(e,n){if(e){var r=i.flatten([this,this.app,t,s,t.$,i,n]);e.apply(this,r)}},_setupInitializersAndFinalizers:function(){this._initializerCallbacks=new s.Callbacks,this._finalizerCallbacks=new s.Callbacks},triggerMethod:s.triggerMethod}),i.extend(s.Module,{create:function(e,t,n){var r=e,s=i.drop(arguments,3);t=t.split(".");var o=t.length,h=[];return h[o-1]=n,i.each(t,function(t,i){var o=r;r=this._getModule(o,t,e,n),this._addModuleDefinition(o,r,h[i],s)},this),r},_getModule:function(e,t,n,r){var s=i.extend({},r),o=this.getClass(r),h=e[t];return h||(h=new o(t,n,s),e[t]=h,e.submodules[t]=h),h},getClass:function(e){var t=s.Module;return e?e.prototype instanceof t?e:e.moduleClass||t:t},_addModuleDefinition:function(e,t,i,n){var r=this._getDefine(i),s=this._getStartWithParent(i,t);r&&t.addDefinition(r,n),this._addStartWithParent(e,t,s)},_getStartWithParent:function(e,t){var n;return i.isFunction(e)&&e.prototype instanceof s.Module?(n=t.constructor.prototype.startWithParent,i.isUndefined(n)?!0:n):i.isObject(e)?(n=e.startWithParent,i.isUndefined(n)?!0:n):!0},_getDefine:function(e){return!i.isFunction(e)||e.prototype instanceof s.Module?i.isObject(e)?e.define:null:e},_addStartWithParent:function(e,t,i){t.startWithParent=t.startWithParent&&i,t.startWithParent&&!t.startWithParentIsConfigured&&(t.startWithParentIsConfigured=!0,e.addInitializer(function(e){t.startWithParent&&t.start(e)}))}}),s});
22
- //@ sourceMappingURL=backbone.marionette.map
20
+
21
+ !function(a,b){if("function"==typeof define&&define.amd)define(["backbone","underscore"],function(c,d){return a.Marionette=a.Mn=b(a,c,d)});else if("undefined"!=typeof exports){var c=require("backbone"),d=require("underscore");module.exports=b(a,c,d)}else a.Marionette=a.Mn=b(a,a.Backbone,a._)}(this,function(a,b,c){"use strict";!function(a,b){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.6",a.ChildViewContainer.noConflict=function(){return a.ChildViewContainer=c,this},a.ChildViewContainer}(b,c),function(a,b){var c=a.Wreqr,d=a.Wreqr={};return a.Wreqr.VERSION="1.3.1",a.Wreqr.noConflict=function(){return a.Wreqr=c,this},d.Handlers=function(a,b){var c=function(a){this.options=a,this._wreqrHandlers={},b.isFunction(this.initialize)&&this.initialize(a)};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events,{setHandlers:function(a){b.each(a,function(a,c){var d=null;b.isObject(a)&&!b.isFunction(a)&&(d=a.context,a=a.callback),this.setHandler(c,a,d)},this)},setHandler:function(a,b,c){var d={callback:b,context:c};this._wreqrHandlers[a]=d,this.trigger("handler:add",a,b,c)},hasHandler:function(a){return!!this._wreqrHandlers[a]},getHandler:function(a){var b=this._wreqrHandlers[a];if(b)return function(){var a=Array.prototype.slice.apply(arguments);return b.callback.apply(b.context,a)}},removeHandler:function(a){delete this._wreqrHandlers[a]},removeAllHandlers:function(){this._wreqrHandlers={}}}),c}(a,b),d.CommandStorage=function(){var c=function(a){this.options=a,this._commands={},b.isFunction(this.initialize)&&this.initialize(a)};return b.extend(c.prototype,a.Events,{getCommands:function(a){var b=this._commands[a];return b||(b={command:a,instances:[]},this._commands[a]=b),b},addCommand:function(a,b){var c=this.getCommands(a);c.instances.push(b)},clearCommands:function(a){var b=this.getCommands(a);b.instances=[]}}),c}(),d.Commands=function(a){return a.Handlers.extend({storageType:a.CommandStorage,constructor:function(b){this.options=b||{},this._initializeStorage(this.options),this.on("handler:add",this._executeCommands,this);var c=Array.prototype.slice.call(arguments);a.Handlers.prototype.constructor.apply(this,c)},execute:function(a,b){a=arguments[0],b=Array.prototype.slice.call(arguments,1),this.hasHandler(a)?this.getHandler(a).apply(this,b):this.storage.addCommand(a,b)},_executeCommands:function(a,c,d){var e=this.storage.getCommands(a);b.each(e.instances,function(a){c.apply(d,a)}),this.storage.clearCommands(a)},_initializeStorage:function(a){var c,d=a.storageType||this.storageType;c=b.isFunction(d)?new d:d,this.storage=c}})}(d),d.RequestResponse=function(a){return a.Handlers.extend({request:function(){var a=arguments[0],b=Array.prototype.slice.call(arguments,1);return this.hasHandler(a)?this.getHandler(a).apply(this,b):void 0}})}(d),d.EventAggregator=function(a,b){var c=function(){};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events),c}(a,b),d.Channel=function(){var c=function(b){this.vent=new a.Wreqr.EventAggregator,this.reqres=new a.Wreqr.RequestResponse,this.commands=new a.Wreqr.Commands,this.channelName=b};return b.extend(c.prototype,{reset:function(){return this.vent.off(),this.vent.stopListening(),this.reqres.removeAllHandlers(),this.commands.removeAllHandlers(),this},connectEvents:function(a,b){return this._connect("vent",a,b),this},connectCommands:function(a,b){return this._connect("commands",a,b),this},connectRequests:function(a,b){return this._connect("reqres",a,b),this},_connect:function(a,c,d){if(c){d=d||this;var e="vent"===a?"on":"setHandler";b.each(c,function(c,f){this[a][e](f,b.bind(c,d))},this)}}}),c}(d),d.radio=function(a){var c=function(){this._channels={},this.vent={},this.commands={},this.reqres={},this._proxyMethods()};b.extend(c.prototype,{channel:function(a){if(!a)throw new Error("Channel must receive a name");return this._getChannel(a)},_getChannel:function(b){var c=this._channels[b];return c||(c=new a.Channel(b),this._channels[b]=c),c},_proxyMethods:function(){b.each(["vent","commands","reqres"],function(a){b.each(d[a],function(b){this[a][b]=e(this,a,b)},this)},this)}});var d={vent:["on","off","trigger","once","stopListening","listenTo","listenToOnce"],commands:["execute","setHandler","setHandlers","removeHandler","removeAllHandlers"],reqres:["request","setHandler","setHandlers","removeHandler","removeAllHandlers"]},e=function(a,b,c){return function(d){var e=a._getChannel(d)[b],f=Array.prototype.slice.call(arguments,1);return e[c].apply(e,f)}};return new c}(d),a.Wreqr}(b,c);var d=a.Marionette,e=a.Mn,f=b.Marionette={};f.VERSION="2.4.1",f.noConflict=function(){return a.Marionette=d,a.Mn=e,this},b.Marionette=f,f.Deferred=b.$.Deferred,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._warn="undefined"!=typeof console&&(console.warn||console.log)||function(){},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(){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,e()}function d(){a._isRendered=!0,e()}function e(){a._isShown&&a._isRendered&&f.isNodeAttached(a.el)&&c.isFunction(a.triggerMethod)&&a.triggerMethod("dom:refresh")}a.on({show:b,render:d})},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(){return this.triggerMethod("before:destroy"),this.triggerMethod("destroy"),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);var c=b||{},d=a!==this.currentView,e=!!c.preventDestroy,g=!!c.forceShow,h=!!this.currentView,i=d&&!e,j=d||g;if(h&&this.triggerMethod("before:swapOut",this.currentView,this,b),this.currentView&&delete this.currentView._parent,i?this.empty():h&&j&&this.currentView.off("destroy",this.empty,this),j){a.once("destroy",this.empty,this),a.render(),a._parent=this,h&&this.triggerMethod("before:swap",a,this,b),this.triggerMethod("before:show",a,this,b),f.triggerMethodOn(a,"before:show",a,this,b),h&&this.triggerMethod("swapOut",this.currentView,this,b);var k=f.isNodeAttached(this.el),l=[],m=c.triggerBeforeAttach||this.triggerBeforeAttach,n=c.triggerAttach||this.triggerAttach;return k&&m&&(l=this._displayedViews(a),this._triggerAttach(l,"before:")),this.attachHtml(a),this.currentView=a,k&&n&&(l=this._displayedViews(a),this._triggerAttach(l)),h&&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")||[])},_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=f._getValue(a,"preventDestroy",this);return b?(b.off("destroy",this.empty,this),this.triggerMethod("before:empty",b),c||this._destroyView(),this.triggerMethod("empty",b),delete this.currentView,c&&this.$el.contents().detach(),this):void 0},_destroyView:function(){var a=this.currentView;a.destroy&&!a.isDestroyed?a.destroy():a.remove&&(a.remove(),a.isDestroyed=!0)},attachView:function(a){return 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){var c=b.$(a).html();if(!c||0===c.length)throw new f.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return c},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,constructor:function(a){c.bindAll(this,"render"),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.isObject(a),d=c.defaults({},b?a:{},{preventDefault:!0,stopPropagation:!0}),e=b?d.event:a;return function(a){a&&(a.preventDefault&&d.preventDefault&&a.preventDefault(),a.stopPropagation&&d.stopPropagation&&a.stopPropagation());var b={view:this,model:this.model,collection:this.collection};this.triggerMethod(e,b)}},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;f._triggerMethod(d,[g,this].concat(b));var h=f.getOption(d,"childEvents"),i=d.normalizeMethods(h);i&&c.isFunction(i[a])&&i[a].apply(d,[this].concat(b))}},_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},_getAncestors:function(){for(var a=[],b=this._parent;b;)a.push(b),b=b._parent;return a},_parentLayoutView:function(){var a=this._getAncestors();return c.find(a,function(a){return a instanceof f.LayoutView})},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(){this.once("render",this._initialEvents),this._initChildViewStorage(),f.View.apply(this,arguments),this.on("show",this._onShowCalled),this.initRenderBuffer()},initRenderBuffer:function(){this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(a,b){f.triggerMethodOn(b,a)},_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;if(e=void 0!==d.at?d.at:c.indexOf(this._filteredSortedModels(),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()},_onShowCalled:function(){this.children.each(c.partial(this._triggerMethodOnChild,"show"))},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(),d=c.find(b,function(b){return!a.findByModel(b)});if(d)this.render();else{var e=c.map(b,function(b){return a.findByModel(b).el});this.triggerMethod("before:reorder"),this._appendReorderedChildren(e),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(),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.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(){var a,b=this.getViewComparator();return a=b?c.isString(b)||1===b.length?this.collection.sortBy(b,this):c.clone(this.collection.models).sort(c.bind(b,this)):this.collection.models,this.getOption("filter")&&(a=c.filter(a,function(a,b){return this._shouldAddChild(a,b)},this)),a},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=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this,a,this._emptyViewIndex));var e=this.buildChildView(a,b,d);e._parent=this,this.proxyChildEvents(e),this._isShown&&f.triggerMethodOn(e,"before:show"),this.children.add(e),this.renderChildView(e,this._emptyViewIndex),this._isShown&&f.triggerMethodOn(e,"show")},getChildView:function(){var a=this.getOption("childView");if(!a)throw new f.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return a},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._addChildView(e,c),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){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this._isShown&&!this.isBuffering&&f.triggerMethodOn(a,"before:show"),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&f.triggerMethodOn(a,"show"),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),delete a._parent,this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a){a.$el.append(this._createBuffer(a))},_createBuffer:function(a){var b=document.createDocumentFragment();return c.each(a._bufferedChildren,function(a){b.appendChild(a.el)}),b},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(),this.triggerMethod("destroy:collection"),f.View.prototype.destroy.apply(this,arguments))},destroyChildren:function(){var a=this.children.map(c.identity);return this.children.each(this.removeChildView,this),this.checkEmpty(),a},_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)},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(){var a=this.getOption("childView")||this.constructor;return a},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){var b=this.getChildViewContainer(a);b.append(this._createBuffer(a))},_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){if("$childViewContainer"in a)return a.$childViewContainer;var b,c=f.getOption(a,"childViewContainer");if(c){var d=f._getValue(c,a);if(b="@"===d.charAt(0)&&a.ui?a.ui[d.substr(4)]:a.$(d),b.length<=0)throw new f.Error({name:"ChildViewContainerMissingError",message:'The specified "childViewContainer" was not found: '+a.childViewContainer})
22
+ }else b=a.$el;return a.$childViewContainer=b,b},resetChildViewContainer:function(){this.$childViewContainer&&delete this.$childViewContainer}}),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){return this.getRegion(a).show(b)},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){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];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.call(this,a)},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){var f=c.extend({},e),g=this.getClass(e),h=a[b];return h||(h=new g(b,d,f),a[b]=h,a.submodules[b]=h),h},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});
23
+ //# sourceMappingURL=backbone.marionette.min.js.map
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marionette-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Godfrey Chan