aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage')
-rwxr-xr-xnode_modules/montage/core/event/binding.js4
-rwxr-xr-xnode_modules/montage/core/event/event-manager.js4
-rwxr-xr-xnode_modules/montage/core/promise.js11
-rwxr-xr-xnode_modules/montage/ui/component.js48
-rw-r--r--node_modules/montage/ui/composer/composer.js14
-rw-r--r--node_modules/montage/ui/composer/swipe-composer.js24
-rwxr-xr-xnode_modules/montage/ui/slot.reel/slot.js5
7 files changed, 82 insertions, 28 deletions
diff --git a/node_modules/montage/core/event/binding.js b/node_modules/montage/core/event/binding.js
index 7a15e5b9..f061e89a 100755
--- a/node_modules/montage/core/event/binding.js
+++ b/node_modules/montage/core/event/binding.js
@@ -505,8 +505,6 @@ var PropertyChangeBindingListener = exports.PropertyChangeBindingListener = Obje
505 localPrevValue = event.minus, 505 localPrevValue = event.minus,
506 localTarget = event.target, 506 localTarget = event.target,
507 type = event.type, 507 type = event.type,
508 changeType = event.propertyChange,
509 localPropertyName = event.propertyName,
510 boundObjectValue, 508 boundObjectValue,
511 sourceObjectValue, 509 sourceObjectValue,
512 dotIndex, 510 dotIndex,
@@ -676,8 +674,6 @@ var PropertyChangeBindingListener = exports.PropertyChangeBindingListener = Obje
676 localPrevValue = null; 674 localPrevValue = null;
677 localTarget = null; 675 localTarget = null;
678 type = null; 676 type = null;
679 changeType = null;
680 localPropertyName = null;
681 dotIndex = null; 677 dotIndex = null;
682 nextPathComponent = null; 678 nextPathComponent = null;
683 atSignIndex = null; 679 atSignIndex = null;
diff --git a/node_modules/montage/core/event/event-manager.js b/node_modules/montage/core/event/event-manager.js
index 4adc3926..b3e97dbe 100755
--- a/node_modules/montage/core/event/event-manager.js
+++ b/node_modules/montage/core/event/event-manager.js
@@ -1874,9 +1874,9 @@ var EventManager = exports.EventManager = Montage.create(Montage,/** @lends modu
1874 if (target) { 1874 if (target) {
1875 associatedComponent = this.eventHandlerForElement(target); 1875 associatedComponent = this.eventHandlerForElement(target);
1876 if (associatedComponent) { 1876 if (associatedComponent) {
1877 if (!associatedComponent._preparedForActivationEvents && typeof associatedComponent.prepareForActivationEvents === "function") { 1877 if (!associatedComponent._preparedForActivationEvents) {
1878 1878
1879 associatedComponent.prepareForActivationEvents(); 1879 associatedComponent._prepareForActivationEvents();
1880 associatedComponent._preparedForActivationEvents = true; 1880 associatedComponent._preparedForActivationEvents = true;
1881 1881
1882 } else if (associatedComponent._preparedForActivationEvents) { 1882 } else if (associatedComponent._preparedForActivationEvents) {
diff --git a/node_modules/montage/core/promise.js b/node_modules/montage/core/promise.js
index aabe113d..df063846 100755
--- a/node_modules/montage/core/promise.js
+++ b/node_modules/montage/core/promise.js
@@ -65,8 +65,17 @@ function toPromise(value) {
65var Creatable = Object.create(Object.prototype, { 65var Creatable = Object.create(Object.prototype, {
66 create: { 66 create: {
67 value: function (descriptor) { 67 value: function (descriptor) {
68 for (var name in descriptor) {
69 var property = descriptor[name];
70 if (!property.set && !property.get) {
71 property.writable = true
72 }
73 property.configurable = true;
74 }
68 return Object.create(this, descriptor); 75 return Object.create(this, descriptor);
69 } 76 },
77 writable: true,
78 configurable: true
70 }, 79 },
71}); 80});
72 81
diff --git a/node_modules/montage/ui/component.js b/node_modules/montage/ui/component.js
index 90612f83..e41a1958 100755
--- a/node_modules/montage/ui/component.js
+++ b/node_modules/montage/ui/component.js
@@ -7,7 +7,6 @@
7 @module montage/ui/component 7 @module montage/ui/component
8 @requires montage/core/core 8 @requires montage/core/core
9 @requires montage/core/event/mutable-event 9 @requires montage/core/event/mutable-event
10 @requires montage/core/bitfield
11 @requires montage/ui/reel 10 @requires montage/ui/reel
12 @requires montage/core/gate 11 @requires montage/core/gate
13 @requires montage/core/logger | component 12 @requires montage/core/logger | component
@@ -16,7 +15,6 @@
16*/ 15*/
17var Montage = require("montage").Montage, 16var Montage = require("montage").Montage,
18 MutableEvent = require("core/event/mutable-event").MutableEvent, 17 MutableEvent = require("core/event/mutable-event").MutableEvent,
19 BitField = require("core/bitfield").BitField,
20 Template = require("ui/template").Template, 18 Template = require("ui/template").Template,
21 Gate = require("core/gate").Gate, 19 Gate = require("core/gate").Gate,
22 logger = require("core/logger").logger("component"), 20 logger = require("core/logger").logger("component"),
@@ -525,7 +523,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
525 523
526 content: { 524 content: {
527 get: function() { 525 get: function() {
528 return Array.prototype.slice.call(this._element.childNodes, 0); 526 if (this._element) {
527 return Array.prototype.slice.call(this._element.childNodes, 0);
528 } else {
529 return null;
530 }
529 }, 531 },
530 set: function(value) { 532 set: function(value) {
531 var components = [], 533 var components = [],
@@ -891,11 +893,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
891 Template.templateWithModuleId(info.require, templateModuleId, onTemplateLoad); 893 Template.templateWithModuleId(info.require, templateModuleId, onTemplateLoad);
892 }}, 894 }},
893 /** 895 /**
894 Callback for the <code>_canDrawBitField</code>.<br> 896 Callback for the <code>_canDrawGate</code>.<br>
895 Propagates to the parent and adds the component to the draw list. 897 Propagates to the parent and adds the component to the draw list.
896 @function 898 @function
897 @param {Property} gate 899 @param {Property} gate
898 @see _canDrawBitField 900 @see _canDrawGate
899 */ 901 */
900 gateDidBecomeTrue: { 902 gateDidBecomeTrue: {
901 value: function(gate) { 903 value: function(gate) {
@@ -1047,6 +1049,27 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
1047 enumerable: false, 1049 enumerable: false,
1048 value: null 1050 value: null
1049 }, 1051 },
1052
1053 /**
1054 * Called to add event listeners on demand
1055 * @type function
1056 * @private
1057 */
1058 _prepareForActivationEvents: {
1059 value: function() {
1060 var i = this.composerList.length, composer;
1061 for (i = 0; i < this.composerList.length; i++) {
1062 composer = this.composerList[i];
1063 if (composer.lazyLoad) {
1064 composer._load();
1065 }
1066 }
1067 if (typeof this.prepareForActivationEvents === "function") {
1068 this.prepareForActivationEvents();
1069 }
1070 }
1071 },
1072
1050/** 1073/**
1051 Description TODO 1074 Description TODO
1052 @private 1075 @private
@@ -1297,7 +1320,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
1297 this.composerList.push(composer); 1320 this.composerList.push(composer);
1298 1321
1299 if (!this._firstDraw) { // prepareForDraw has already happened so do the loading here 1322 if (!this._firstDraw) { // prepareForDraw has already happened so do the loading here
1300 composer._load(); 1323 if (!composer.lazyLoad) {
1324 composer._load();
1325 } else if (this._preparedForActivationEvents) { // even though it's lazyLoad prepareForActivationEvents has already happened
1326 composer._load();
1327 }
1301 } 1328 }
1302 } 1329 }
1303 }, 1330 },
@@ -1671,7 +1698,7 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo
1671 */ 1698 */
1672 addToDrawCycle: { 1699 addToDrawCycle: {
1673 value: function(component) { 1700 value: function(component) {
1674 var needsDrawListIndex = this._readyToDrawListIndex, length; 1701 var needsDrawListIndex = this._readyToDrawListIndex, length, composer;
1675 1702
1676 if (needsDrawListIndex.hasOwnProperty(component.uuid)) { 1703 if (needsDrawListIndex.hasOwnProperty(component.uuid)) {
1677 // Requesting a draw of a component that has already been drawn in the current cycle 1704 // Requesting a draw of a component that has already been drawn in the current cycle
@@ -1694,10 +1721,13 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo
1694 component.prepareForDraw(); 1721 component.prepareForDraw();
1695 } 1722 }
1696 1723
1697 // Load any composers that have been added 1724 // Load any non lazyLoad composers that have been added
1698 length = component.composerList.length; 1725 length = component.composerList.length;
1699 for (i = 0; i < length; i++) { 1726 for (i = 0; i < length; i++) {
1700 component.composerList[i]._load(); 1727 composer = component.composerList[i];
1728 if (!composer.lazyLoad) {
1729 composer._load();
1730 }
1701 } 1731 }
1702 1732
1703 // Will we expose a different property, firstDraw, for components to check 1733 // Will we expose a different property, firstDraw, for components to check
diff --git a/node_modules/montage/ui/composer/composer.js b/node_modules/montage/ui/composer/composer.js
index 2f91bb22..eee7be67 100644
--- a/node_modules/montage/ui/composer/composer.js
+++ b/node_modules/montage/ui/composer/composer.js
@@ -40,6 +40,20 @@ exports.Composer = Montage.create(Montage, /** @lends module:montage/ui/composer
40 } 40 }
41 }, 41 },
42 42
43
44 /**
45 * This property controls when a composer's load method is called. If `false`
46 * the composer's load method is called immediately as part of the next draw
47 * cycle after addComposer has been called on its associated component. If
48 * `true` loading of the composer is delayed until its associated component
49 * has prepareForActivationEvents called.
50 * @property
51 * @default false
52 */
53 lazyLoad: {
54 value: false
55 },
56