@@ -67,7 +67,7 @@ return /******/ (function(modules) { // webpackBootstrap
67
67
exports . Store = __webpack_require__ ( 3 )
68
68
69
69
// export the immutable library
70
- exports . Immutable = __webpack_require__ ( 10 )
70
+ exports . Immutable = __webpack_require__ ( 11 )
71
71
72
72
/**
73
73
* @return {boolean }
@@ -89,7 +89,7 @@ return /******/ (function(modules) { // webpackBootstrap
89
89
/* 1 */
90
90
/***/ function ( module , exports , __webpack_require__ ) {
91
91
92
- var Immutable = __webpack_require__ ( 10 )
92
+ var Immutable = __webpack_require__ ( 11 )
93
93
var isObject = __webpack_require__ ( 6 ) . isObject
94
94
95
95
/**
@@ -148,12 +148,13 @@ return /******/ (function(modules) { // webpackBootstrap
148
148
/* 2 */
149
149
/***/ function ( module , exports , __webpack_require__ ) {
150
150
151
- var Immutable = __webpack_require__ ( 10 )
151
+ var Immutable = __webpack_require__ ( 11 )
152
152
var logging = __webpack_require__ ( 7 )
153
153
var ChangeObserver = __webpack_require__ ( 8 )
154
154
var Getter = __webpack_require__ ( 5 )
155
155
var KeyPath = __webpack_require__ ( 4 )
156
156
var Evaluator = __webpack_require__ ( 9 )
157
+ var createReactMixin = __webpack_require__ ( 10 )
157
158
158
159
// helper fns
159
160
var toJS = __webpack_require__ ( 1 ) . toJS
@@ -180,6 +181,7 @@ return /******/ (function(modules) { // webpackBootstrap
180
181
181
182
this . debug = ! ! config . debug
182
183
184
+ this . ReactMixin = createReactMixin ( this )
183
185
/**
184
186
* The state for the whole cluster
185
187
*/
@@ -354,7 +356,7 @@ return /******/ (function(modules) { // webpackBootstrap
354
356
/* 3 */
355
357
/***/ function ( module , exports , __webpack_require__ ) {
356
358
357
- var Map = __webpack_require__ ( 10 ) . Map
359
+ var Map = __webpack_require__ ( 11 ) . Map
358
360
var extend = __webpack_require__ ( 6 ) . extend
359
361
360
362
/**
@@ -458,7 +460,7 @@ return /******/ (function(modules) { // webpackBootstrap
458
460
/* 5 */
459
461
/***/ function ( module , exports , __webpack_require__ ) {
460
462
461
- var Immutable = __webpack_require__ ( 10 )
463
+ var Immutable = __webpack_require__ ( 11 )
462
464
var isFunction = __webpack_require__ ( 6 ) . isFunction
463
465
var isArray = __webpack_require__ ( 6 ) . isArray
464
466
var isKeyPath = __webpack_require__ ( 4 ) . isKeyPath
@@ -543,7 +545,7 @@ return /******/ (function(modules) { // webpackBootstrap
543
545
/* 6 */
544
546
/***/ function ( module , exports , __webpack_require__ ) {
545
547
546
- var _ = __webpack_require__ ( 13 ) ;
548
+ var _ = __webpack_require__ ( 14 ) ;
547
549
548
550
exports . clone = _ . clone
549
551
@@ -614,9 +616,9 @@ return /******/ (function(modules) { // webpackBootstrap
614
616
/* 8 */
615
617
/***/ function ( module , exports , __webpack_require__ ) {
616
618
617
- var Immutable = __webpack_require__ ( 10 )
618
- var hashCode = __webpack_require__ ( 11 )
619
- var isEqual = __webpack_require__ ( 12 )
619
+ var Immutable = __webpack_require__ ( 11 )
620
+ var hashCode = __webpack_require__ ( 12 )
621
+ var isEqual = __webpack_require__ ( 13 )
620
622
621
623
/**
622
624
* ChangeObserver is an object that contains a set of subscriptions
@@ -710,12 +712,12 @@ return /******/ (function(modules) { // webpackBootstrap
710
712
/* 9 */
711
713
/***/ function ( module , exports , __webpack_require__ ) {
712
714
713
- var Immutable = __webpack_require__ ( 10 )
715
+ var Immutable = __webpack_require__ ( 11 )
714
716
var helpers = __webpack_require__ ( 1 )
715
717
var isImmutable = helpers . isImmutable
716
718
var toImmutable = helpers . toImmutable
717
- var hashCode = __webpack_require__ ( 11 )
718
- var isEqual = __webpack_require__ ( 12 )
719
+ var hashCode = __webpack_require__ ( 12 )
720
+ var isEqual = __webpack_require__ ( 13 )
719
721
var getComputeFn = __webpack_require__ ( 5 ) . getComputeFn
720
722
var getDeps = __webpack_require__ ( 5 ) . getDeps
721
723
var isKeyPath = __webpack_require__ ( 4 ) . isKeyPath
@@ -882,6 +884,56 @@ return /******/ (function(modules) { // webpackBootstrap
882
884
883
885
/***/ } ,
884
886
/* 10 */
887
+ /***/ function ( module , exports , __webpack_require__ ) {
888
+
889
+ var each = __webpack_require__ ( 6 ) . each
890
+ /**
891
+ * @param {Reactor } reactor
892
+ */
893
+ module . exports = function ( reactor ) {
894
+ return {
895
+ getInitialState : function ( ) {
896
+ return getState ( reactor , this . getDataBindings ( ) )
897
+ } ,
898
+
899
+ componentDidMount : function ( ) {
900
+ var component = this
901
+ var dataBindings = this . getDataBindings ( )
902
+ component . __unwatchFns = [ ]
903
+ each ( this . getDataBindings ( ) , function ( getter , key ) {
904
+ var unwatchFn = reactor . observe ( getter , function ( val ) {
905
+ var newState = { } ;
906
+ newState [ key ] = val ;
907
+ component . setState ( newState )
908
+ } )
909
+
910
+ component . __unwatchFns . push ( unwatchFn )
911
+ } )
912
+ } ,
913
+
914
+ componentWillUnmount : function ( ) {
915
+ while ( this . __unwatchFns . length ) {
916
+ this . __unwatchFns . shift ( ) ( )
917
+ }
918
+ }
919
+ }
920
+ }
921
+
922
+ /**
923
+ * Returns a mapping of the getDataBinding keys to
924
+ * the reactor values
925
+ */
926
+ function getState ( reactor , data ) {
927
+ var state = { }
928
+ for ( var key in data ) {
929
+ state [ key ] = reactor . evaluate ( data [ key ] )
930
+ }
931
+ return state
932
+ }
933
+
934
+
935
+ /***/ } ,
936
+ /* 11 */
885
937
/***/ function ( module , exports , __webpack_require__ ) {
886
938
887
939
/**
@@ -4799,10 +4851,10 @@ return /******/ (function(modules) { // webpackBootstrap
4799
4851
4800
4852
4801
4853
/***/ } ,
4802
- /* 11 */
4854
+ /* 12 */
4803
4855
/***/ function ( module , exports , __webpack_require__ ) {
4804
4856
4805
- var Immutable = __webpack_require__ ( 10 )
4857
+ var Immutable = __webpack_require__ ( 11 )
4806
4858
var isGetter = __webpack_require__ ( 5 ) . isGetter
4807
4859
4808
4860
/**
@@ -4842,10 +4894,10 @@ return /******/ (function(modules) { // webpackBootstrap
4842
4894
4843
4895
4844
4896
/***/ } ,
4845
- /* 12 */
4897
+ /* 13 */
4846
4898
/***/ function ( module , exports , __webpack_require__ ) {
4847
4899
4848
- var Immutable = __webpack_require__ ( 10 )
4900
+ var Immutable = __webpack_require__ ( 11 )
4849
4901
/**
4850
4902
* Is equal by value check
4851
4903
*/
@@ -4855,7 +4907,7 @@ return /******/ (function(modules) { // webpackBootstrap
4855
4907
4856
4908
4857
4909
/***/ } ,
4858
- /* 13 */
4910
+ /* 14 */
4859
4911
/***/ function ( module , exports , __webpack_require__ ) {
4860
4912
4861
4913
var __WEBPACK_AMD_DEFINE_RESULT__ ; /* WEBPACK VAR INJECTION */ ( function ( module , global ) { /**
@@ -12016,10 +12068,10 @@ return /******/ (function(modules) { // webpackBootstrap
12016
12068
}
12017
12069
} . call ( this ) ) ;
12018
12070
12019
- /* WEBPACK VAR INJECTION */ } . call ( exports , __webpack_require__ ( 14 ) ( module ) , ( function ( ) { return this ; } ( ) ) ) )
12071
+ /* WEBPACK VAR INJECTION */ } . call ( exports , __webpack_require__ ( 15 ) ( module ) , ( function ( ) { return this ; } ( ) ) ) )
12020
12072
12021
12073
/***/ } ,
12022
- /* 14 */
12074
+ /* 15 */
12023
12075
/***/ function ( module , exports , __webpack_require__ ) {
12024
12076
12025
12077
module . exports = function ( module ) {
0 commit comments