diff options
-rwxr-xr-x | node_modules/montage/core/event/binding.js | 4 | ||||
-rwxr-xr-x | node_modules/montage/core/event/event-manager.js | 4 | ||||
-rwxr-xr-x | node_modules/montage/core/promise.js | 11 | ||||
-rwxr-xr-x | node_modules/montage/ui/component.js | 48 | ||||
-rw-r--r-- | node_modules/montage/ui/composer/composer.js | 14 | ||||
-rw-r--r-- | node_modules/montage/ui/composer/swipe-composer.js | 24 | ||||
-rwxr-xr-x | node_modules/montage/ui/slot.reel/slot.js | 5 |
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) { | |||
65 | var Creatable = Object.create(Object.prototype, { | 65 | var 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 | */ |
17 | var Montage = require("montage").Montage, | 16 | var 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 | |||