zreact-redux-rails 3.6.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f0b3b0f6e324b4e8f0de10e229c164d0177e571f
4
+ data.tar.gz: d7ca5d9214859127633bbd68b1cd85c70c1aad29
5
+ SHA512:
6
+ metadata.gz: 6473e1d451caa6bdf697e38a25fff6de8f4775b5af6e1a1c7ac76933269be32087066365cff67cde1b3eceece8ccac48ab38fcfc50f62b39520a7385f65671fb
7
+ data.tar.gz: 64d69d3b3efa08fae46368df88a2904d8bdea73f200858a5b64b1bbe1aec6f15605c07fdaef2e59ebdfa784db23098eaf4ea03c376e59d020c6426eca372117c
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Thuong Nguyen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,47 @@
1
+ # zreact-redux-rails
2
+
3
+ I firstly created this gem for my own usage. However, when I pushed this gem, another gem with the same name, but seemed quite old appeared. I decided to make another gem for up-to-date components.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'zreact-redux-rails'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install zreact-redux-rails
20
+
21
+ ## Usage
22
+
23
+ Simply add below lines to your `application.js` on your behalf:
24
+
25
+ ```ruby
26
+ //= require react-redux
27
+ ```
28
+
29
+ Or if you are using CoffeeScript, it's your `application.js.coffee`:
30
+
31
+ ```ruby
32
+ #= require react-redux
33
+ ```
34
+
35
+ ## Versioning
36
+
37
+ First 3 number of `zreact-redux-rails` version is the version of `redux`.
38
+
39
+ ## Contributing
40
+
41
+ Bug reports and pull requests are welcome on GitHub at https://github.com/zelic91/zreact-redux-rails. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
42
+
43
+
44
+ ## License
45
+
46
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
47
+
@@ -0,0 +1,10 @@
1
+ require "zreact-redux-rails/version"
2
+
3
+ module Zreact
4
+ module Redux
5
+ module Rails
6
+ class Engine < ::Rails::Engine
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ module Zreact
2
+ module Redux
3
+ module Rails
4
+ VERSION = "3.6.0.4"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,897 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("react"), require("redux"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define(["react", "redux"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["ReactRedux"] = factory(require("react"), require("redux"));
8
+ else
9
+ root["ReactRedux"] = factory(root["React"], root["Redux"]);
10
+ })(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_13__) {
11
+ return /******/ (function(modules) { // webpackBootstrap
12
+ /******/ // The module cache
13
+ /******/ var installedModules = {};
14
+
15
+ /******/ // The require function
16
+ /******/ function __webpack_require__(moduleId) {
17
+
18
+ /******/ // Check if module is in cache
19
+ /******/ if(installedModules[moduleId])
20
+ /******/ return installedModules[moduleId].exports;
21
+
22
+ /******/ // Create a new module (and put it into the cache)
23
+ /******/ var module = installedModules[moduleId] = {
24
+ /******/ exports: {},
25
+ /******/ id: moduleId,
26
+ /******/ loaded: false
27
+ /******/ };
28
+
29
+ /******/ // Execute the module function
30
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
+
32
+ /******/ // Flag the module as loaded
33
+ /******/ module.loaded = true;
34
+
35
+ /******/ // Return the exports of the module
36
+ /******/ return module.exports;
37
+ /******/ }
38
+
39
+
40
+ /******/ // expose the modules object (__webpack_modules__)
41
+ /******/ __webpack_require__.m = modules;
42
+
43
+ /******/ // expose the module cache
44
+ /******/ __webpack_require__.c = installedModules;
45
+
46
+ /******/ // __webpack_public_path__
47
+ /******/ __webpack_require__.p = "";
48
+
49
+ /******/ // Load entry module and return exports
50
+ /******/ return __webpack_require__(0);
51
+ /******/ })
52
+ /************************************************************************/
53
+ /******/ ([
54
+ /* 0 */
55
+ /***/ function(module, exports, __webpack_require__) {
56
+
57
+ 'use strict';
58
+
59
+ exports.__esModule = true;
60
+ exports.connect = exports.Provider = undefined;
61
+
62
+ var _Provider = __webpack_require__(4);
63
+
64
+ var _Provider2 = _interopRequireDefault(_Provider);
65
+
66
+ var _connect = __webpack_require__(5);
67
+
68
+ var _connect2 = _interopRequireDefault(_connect);
69
+
70
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
71
+
72
+ exports.Provider = _Provider2["default"];
73
+ exports.connect = _connect2["default"];
74
+
75
+ /***/ },
76
+ /* 1 */
77
+ /***/ function(module, exports) {
78
+
79
+ module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
80
+
81
+ /***/ },
82
+ /* 2 */
83
+ /***/ function(module, exports, __webpack_require__) {
84
+
85
+ 'use strict';
86
+
87
+ exports.__esModule = true;
88
+
89
+ var _react = __webpack_require__(1);
90
+
91
+ exports["default"] = _react.PropTypes.shape({
92
+ subscribe: _react.PropTypes.func.isRequired,
93
+ dispatch: _react.PropTypes.func.isRequired,
94
+ getState: _react.PropTypes.func.isRequired
95
+ });
96
+
97
+ /***/ },
98
+ /* 3 */
99
+ /***/ function(module, exports) {
100
+
101
+ 'use strict';
102
+
103
+ exports.__esModule = true;
104
+ exports["default"] = warning;
105
+ /**
106
+ * Prints a warning in the console if it exists.
107
+ *
108
+ * @param {String} message The warning message.
109
+ * @returns {void}
110
+ */
111
+ function warning(message) {
112
+ /* eslint-disable no-console */
113
+ if (typeof console !== 'undefined' && typeof console.error === 'function') {
114
+ console.error(message);
115
+ }
116
+ /* eslint-enable no-console */
117
+ try {
118
+ // This error was thrown as a convenience so that you can use this stack
119
+ // to find the callsite that caused this warning to fire.
120
+ throw new Error(message);
121
+ /* eslint-disable no-empty */
122
+ } catch (e) {}
123
+ /* eslint-enable no-empty */
124
+ }
125
+
126
+ /***/ },
127
+ /* 4 */
128
+ /***/ function(module, exports, __webpack_require__) {
129
+
130
+ 'use strict';
131
+
132
+ exports.__esModule = true;
133
+ exports["default"] = undefined;
134
+
135
+ var _react = __webpack_require__(1);
136
+
137
+ var _storeShape = __webpack_require__(2);
138
+
139
+ var _storeShape2 = _interopRequireDefault(_storeShape);
140
+
141
+ var _warning = __webpack_require__(3);
142
+
143
+ var _warning2 = _interopRequireDefault(_warning);
144
+
145
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
146
+
147
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
148
+
149
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
150
+
151
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
152
+
153
+ var didWarnAboutReceivingStore = false;
154
+ function warnAboutReceivingStore() {
155
+ if (didWarnAboutReceivingStore) {
156
+ return;
157
+ }
158
+ didWarnAboutReceivingStore = true;
159
+
160
+ (0, _warning2["default"])('<Provider> does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');
161
+ }
162
+
163
+ var Provider = function (_Component) {
164
+ _inherits(Provider, _Component);
165
+
166
+ Provider.prototype.getChildContext = function getChildContext() {
167
+ return { store: this.store };
168
+ };
169
+
170
+ function Provider(props, context) {
171
+ _classCallCheck(this, Provider);
172
+
173
+ var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
174
+
175
+ _this.store = props.store;
176
+ return _this;
177
+ }
178
+
179
+ Provider.prototype.render = function render() {
180
+ var children = this.props.children;
181
+
182
+ return _react.Children.only(children);
183
+ };
184
+
185
+ return Provider;
186
+ }(_react.Component);
187
+
188
+ exports["default"] = Provider;
189
+
190
+ if (true) {
191
+ Provider.prototype.componentWillReceiveProps = function (nextProps) {
192
+ var store = this.store;
193
+ var nextStore = nextProps.store;
194
+
195
+ if (store !== nextStore) {
196
+ warnAboutReceivingStore();
197
+ }
198
+ };
199
+ }
200
+
201
+ Provider.propTypes = {
202
+ store: _storeShape2["default"].isRequired,
203
+ children: _react.PropTypes.element.isRequired
204
+ };
205
+ Provider.childContextTypes = {
206
+ store: _storeShape2["default"].isRequired
207
+ };
208
+
209
+ /***/ },
210
+ /* 5 */
211
+ /***/ function(module, exports, __webpack_require__) {
212
+
213
+ 'use strict';
214
+
215
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
216
+
217
+ exports.__esModule = true;
218
+ exports["default"] = connect;
219
+
220
+ var _react = __webpack_require__(1);
221
+
222
+ var _storeShape = __webpack_require__(2);
223
+
224
+ var _storeShape2 = _interopRequireDefault(_storeShape);
225
+
226
+ var _shallowEqual = __webpack_require__(6);
227
+
228
+ var _shallowEqual2 = _interopRequireDefault(_shallowEqual);
229
+
230
+ var _wrapActionCreators = __webpack_require__(7);
231
+
232
+ var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);
233
+
234
+ var _warning = __webpack_require__(3);
235
+
236
+ var _warning2 = _interopRequireDefault(_warning);
237
+
238
+ var _isPlainObject = __webpack_require__(12);
239
+
240
+ var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
241
+
242
+ var _hoistNonReactStatics = __webpack_require__(8);
243
+
244
+ var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
245
+
246
+ var _invariant = __webpack_require__(9);
247
+
248
+ var _invariant2 = _interopRequireDefault(_invariant);
249
+
250
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
251
+
252
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
253
+
254
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
255
+
256
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
257
+
258
+ var defaultMapStateToProps = function defaultMapStateToProps(state) {
259
+ return {};
260
+ }; // eslint-disable-line no-unused-vars
261
+ var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {
262
+ return { dispatch: dispatch };
263
+ };
264
+ var defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {
265
+ return _extends({}, parentProps, stateProps, dispatchProps);
266
+ };
267
+
268
+ function getDisplayName(WrappedComponent) {
269
+ return WrappedComponent.displayName || WrappedComponent.name || 'Component';
270
+ }
271
+
272
+ var errorObject = { value: null };
273
+ function tryCatch(fn, ctx) {
274
+ try {
275
+ return fn.apply(ctx);
276
+ } catch (e) {
277
+ errorObject.value = e;
278
+ return errorObject;
279
+ }
280
+ }
281
+
282
+ // Helps track hot reloading.
283
+ var nextVersion = 0;
284
+
285
+ function connect(mapStateToProps, mapDispatchToProps, mergeProps) {
286
+ var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
287
+
288
+ var shouldSubscribe = Boolean(mapStateToProps);
289
+ var mapState = mapStateToProps || defaultMapStateToProps;
290
+
291
+ var mapDispatch = undefined;
292
+ if (typeof mapDispatchToProps === 'function') {
293
+ mapDispatch = mapDispatchToProps;
294
+ } else if (!mapDispatchToProps) {
295
+ mapDispatch = defaultMapDispatchToProps;
296
+ } else {
297
+ mapDispatch = (0, _wrapActionCreators2["default"])(mapDispatchToProps);
298
+ }
299
+
300
+ var finalMergeProps = mergeProps || defaultMergeProps;
301
+ var _options$pure = options.pure;
302
+ var pure = _options$pure === undefined ? true : _options$pure;
303
+ var _options$withRef = options.withRef;
304
+ var withRef = _options$withRef === undefined ? false : _options$withRef;
305
+
306
+ var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;
307
+
308
+ // Helps track hot reloading.
309
+ var version = nextVersion++;
310
+
311
+ return function wrapWithConnect(WrappedComponent) {
312
+ var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';
313
+
314
+ function checkStateShape(props, methodName) {
315
+ if (!(0, _isPlainObject2["default"])(props)) {
316
+ (0, _warning2["default"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));
317
+ }
318
+ }
319
+
320
+ function computeMergedProps(stateProps, dispatchProps, parentProps) {
321
+ var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);
322
+ if (true) {
323
+ checkStateShape(mergedProps, 'mergeProps');
324
+ }
325
+ return mergedProps;
326
+ }
327
+
328
+ var Connect = function (_Component) {
329
+ _inherits(Connect, _Component);
330
+
331
+ Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {
332
+ return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;
333
+ };
334
+
335
+ function Connect(props, context) {
336
+ _classCallCheck(this, Connect);
337
+
338
+ var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
339
+
340
+ _this.version = version;
341
+ _this.store = props.store || context.store;
342
+
343
+ (0, _invariant2["default"])(_this.store, 'Could not find "store" in either the context or ' + ('props of "' + connectDisplayName + '". ') + 'Either wrap the root component in a <Provider>, ' + ('or explicitly pass "store" as a prop to "' + connectDisplayName + '".'));
344
+
345
+ var storeState = _this.store.getState();
346
+ _this.state = { storeState: storeState };
347
+ _this.clearCache();
348
+ return _this;
349
+ }
350
+
351
+ Connect.prototype.computeStateProps = function computeStateProps(store, props) {
352
+ if (!this.finalMapStateToProps) {
353
+ return this.configureFinalMapState(store, props);
354
+ }
355
+
356
+ var state = store.getState();
357
+ var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);
358
+
359
+ if (true) {
360
+ checkStateShape(stateProps, 'mapStateToProps');
361
+ }
362
+ return stateProps;
363
+ };
364
+
365
+ Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {
366
+ var mappedState = mapState(store.getState(), props);
367
+ var isFactory = typeof mappedState === 'function';
368
+
369
+ this.finalMapStateToProps = isFactory ? mappedState : mapState;
370
+ this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;
371
+
372
+ if (isFactory) {
373
+ return this.computeStateProps(store, props);
374
+ }
375
+
376
+ if (true) {
377
+ checkStateShape(mappedState, 'mapStateToProps');
378
+ }
379
+ return mappedState;
380
+ };
381
+
382
+ Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {
383
+ if (!this.finalMapDispatchToProps) {
384
+ return this.configureFinalMapDispatch(store, props);
385
+ }
386
+
387
+ var dispatch = store.dispatch;
388
+
389
+ var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);
390
+
391
+ if (true) {
392
+ checkStateShape(dispatchProps, 'mapDispatchToProps');
393
+ }
394
+ return dispatchProps;
395
+ };
396
+
397
+ Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {
398
+ var mappedDispatch = mapDispatch(store.dispatch, props);
399
+ var isFactory = typeof mappedDispatch === 'function';
400
+
401
+ this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;
402
+ this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;
403
+
404
+ if (isFactory) {
405
+ return this.computeDispatchProps(store, props);
406
+ }
407
+
408
+ if (true) {
409
+ checkStateShape(mappedDispatch, 'mapDispatchToProps');
410
+ }
411
+ return mappedDispatch;
412
+ };
413
+
414
+ Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {
415
+ var nextStateProps = this.computeStateProps(this.store, this.props);
416
+ if (this.stateProps && (0, _shallowEqual2["default"])(nextStateProps, this.stateProps)) {
417
+ return false;
418
+ }
419
+
420
+ this.stateProps = nextStateProps;
421
+ return true;
422
+ };
423
+
424
+ Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {
425
+ var nextDispatchProps = this.computeDispatchProps(this.store, this.props);
426
+ if (this.dispatchProps && (0, _shallowEqual2["default"])(nextDispatchProps, this.dispatchProps)) {
427
+ return false;
428
+ }
429
+
430
+ this.dispatchProps = nextDispatchProps;
431
+ return true;
432
+ };
433
+
434
+ Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {
435
+ var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);
436
+ if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2["default"])(nextMergedProps, this.mergedProps)) {
437
+ return false;
438
+ }
439
+
440
+ this.mergedProps = nextMergedProps;
441
+ return true;
442
+ };
443
+
444
+ Connect.prototype.isSubscribed = function isSubscribed() {
445
+ return typeof this.unsubscribe === 'function';
446
+ };
447
+
448
+ Connect.prototype.trySubscribe = function trySubscribe() {
449
+ if (shouldSubscribe && !this.unsubscribe) {
450
+ this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));
451
+ this.handleChange();
452
+ }
453
+ };
454
+
455
+ Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {
456
+ if (this.unsubscribe) {
457
+ this.unsubscribe();
458
+ this.unsubscribe = null;
459
+ }
460
+ };
461
+
462
+ Connect.prototype.componentDidMount = function componentDidMount() {
463
+ this.trySubscribe();
464
+ };
465
+
466
+ Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
467
+ if (!pure || !(0, _shallowEqual2["default"])(nextProps, this.props)) {
468
+ this.haveOwnPropsChanged = true;
469
+ }
470
+ };
471
+
472
+ Connect.prototype.componentWillUnmount = function componentWillUnmount() {
473
+ this.tryUnsubscribe();
474
+ this.clearCache();
475
+ };
476
+
477
+ Connect.prototype.clearCache = function clearCache() {
478
+ this.dispatchProps = null;
479
+ this.stateProps = null;
480
+ this.mergedProps = null;
481
+ this.haveOwnPropsChanged = true;
482
+ this.hasStoreStateChanged = true;
483
+ this.haveStatePropsBeenPrecalculated = false;
484
+ this.statePropsPrecalculationError = null;
485
+ this.renderedElement = null;
486
+ this.finalMapDispatchToProps = null;
487
+ this.finalMapStateToProps = null;
488
+ };
489
+
490
+ Connect.prototype.handleChange = function handleChange() {
491
+ if (!this.unsubscribe) {
492
+ return;
493
+ }
494
+
495
+ var storeState = this.store.getState();
496
+ var prevStoreState = this.state.storeState;
497
+ if (pure && prevStoreState === storeState) {
498
+ return;
499
+ }
500
+
501
+ if (pure && !this.doStatePropsDependOnOwnProps) {
502
+ var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);
503
+ if (!haveStatePropsChanged) {
504
+ return;
505
+ }
506
+ if (haveStatePropsChanged === errorObject) {
507
+ this.statePropsPrecalculationError = errorObject.value;
508
+ }
509
+ this.haveStatePropsBeenPrecalculated = true;
510
+ }
511
+
512
+ this.hasStoreStateChanged = true;
513
+ this.setState({ storeState: storeState });
514
+ };
515
+
516
+ Connect.prototype.getWrappedInstance = function getWrappedInstance() {
517
+ (0, _invariant2["default"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');
518
+
519
+ return this.refs.wrappedInstance;
520
+ };
521
+
522
+ Connect.prototype.render = function render() {
523
+ var haveOwnPropsChanged = this.haveOwnPropsChanged;
524
+ var hasStoreStateChanged = this.hasStoreStateChanged;
525
+ var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;
526
+ var statePropsPrecalculationError = this.statePropsPrecalculationError;
527
+ var renderedElement = this.renderedElement;
528
+
529
+ this.haveOwnPropsChanged = false;
530
+ this.hasStoreStateChanged = false;
531
+ this.haveStatePropsBeenPrecalculated = false;
532
+ this.statePropsPrecalculationError = null;
533
+
534
+ if (statePropsPrecalculationError) {
535
+ throw statePropsPrecalculationError;
536
+ }
537
+
538
+ var shouldUpdateStateProps = true;
539
+ var shouldUpdateDispatchProps = true;
540
+ if (pure && renderedElement) {
541
+ shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;
542
+ shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;
543
+ }
544
+
545
+ var haveStatePropsChanged = false;
546
+ var haveDispatchPropsChanged = false;
547
+ if (haveStatePropsBeenPrecalculated) {
548
+ haveStatePropsChanged = true;
549
+ } else if (shouldUpdateStateProps) {
550
+ haveStatePropsChanged = this.updateStatePropsIfNeeded();
551
+ }
552
+ if (shouldUpdateDispatchProps) {
553
+ haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();
554
+ }
555
+
556
+ var haveMergedPropsChanged = true;
557
+ if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {
558
+ haveMergedPropsChanged = this.updateMergedPropsIfNeeded();
559
+ } else {
560
+ haveMergedPropsChanged = false;
561
+ }
562
+
563
+ if (!haveMergedPropsChanged && renderedElement) {
564
+ return renderedElement;
565
+ }
566
+
567
+ if (withRef) {
568
+ this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {
569
+ ref: 'wrappedInstance'
570
+ }));
571
+ } else {
572
+ this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);
573
+ }
574
+
575
+ return this.renderedElement;
576
+ };
577
+
578
+ return Connect;
579
+ }(_react.Component);
580
+
581
+ Connect.displayName = connectDisplayName;
582
+ Connect.WrappedComponent = WrappedComponent;
583
+ Connect.contextTypes = {
584
+ store: _storeShape2["default"]
585
+ };
586
+ Connect.propTypes = {
587
+ store: _storeShape2["default"]
588
+ };
589
+
590
+ if (true) {
591
+ Connect.prototype.componentWillUpdate = function componentWillUpdate() {
592
+ if (this.version === version) {
593
+ return;
594
+ }
595
+
596
+ // We are hot reloading!
597
+ this.version = version;
598
+ this.trySubscribe();
599
+ this.clearCache();
600
+ };
601
+ }
602
+
603
+ return (0, _hoistNonReactStatics2["default"])(Connect, WrappedComponent);
604
+ };
605
+ }
606
+
607
+ /***/ },
608
+ /* 6 */
609
+ /***/ function(module, exports) {
610
+
611
+ "use strict";
612
+
613
+ exports.__esModule = true;
614
+ exports["default"] = shallowEqual;
615
+ function shallowEqual(objA, objB) {
616
+ if (objA === objB) {
617
+ return true;
618
+ }
619
+
620
+ var keysA = Object.keys(objA);
621
+ var keysB = Object.keys(objB);
622
+
623
+ if (keysA.length !== keysB.length) {
624
+ return false;
625
+ }
626
+
627
+ // Test for A's keys different from B.
628
+ var hasOwn = Object.prototype.hasOwnProperty;
629
+ for (var i = 0; i < keysA.length; i++) {
630
+ if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
631
+ return false;
632
+ }
633
+ }
634
+
635
+ return true;
636
+ }
637
+
638
+ /***/ },
639
+ /* 7 */
640
+ /***/ function(module, exports, __webpack_require__) {
641
+
642
+ 'use strict';
643
+
644
+ exports.__esModule = true;
645
+ exports["default"] = wrapActionCreators;
646
+
647
+ var _redux = __webpack_require__(13);
648
+
649
+ function wrapActionCreators(actionCreators) {
650
+ return function (dispatch) {
651
+ return (0, _redux.bindActionCreators)(actionCreators, dispatch);
652
+ };
653
+ }
654
+
655
+ /***/ },
656
+ /* 8 */
657
+ /***/ function(module, exports) {
658
+
659
+ /**
660
+ * Copyright 2015, Yahoo! Inc.
661
+ * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
662
+ */
663
+ 'use strict';
664
+
665
+ var REACT_STATICS = {
666
+ childContextTypes: true,
667
+ contextTypes: true,
668
+ defaultProps: true,
669
+ displayName: true,
670
+ getDefaultProps: true,
671
+ mixins: true,
672
+ propTypes: true,
673
+ type: true
674
+ };
675
+
676
+ var KNOWN_STATICS = {
677
+ name: true,
678
+ length: true,
679
+ prototype: true,
680
+ caller: true,
681
+ arguments: true,
682
+ arity: true
683
+ };
684
+
685
+ module.exports = function hoistNonReactStatics(targetComponent, sourceComponent) {
686
+ var keys = Object.getOwnPropertyNames(sourceComponent);
687
+ for (var i=0; i<keys.length; ++i) {
688
+ if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]]) {
689
+ targetComponent[keys[i]] = sourceComponent[keys[i]];
690
+ }
691
+ }
692
+
693
+ return targetComponent;
694
+ };
695
+
696
+
697
+ /***/ },
698
+ /* 9 */
699
+ /***/ function(module, exports, __webpack_require__) {
700
+
701
+ /**
702
+ * Copyright 2013-2015, Facebook, Inc.
703
+ * All rights reserved.
704
+ *
705
+ * This source code is licensed under the BSD-style license found in the
706
+ * LICENSE file in the root directory of this source tree. An additional grant
707
+ * of patent rights can be found in the PATENTS file in the same directory.
708
+ */
709
+
710
+ 'use strict';
711
+
712
+ /**
713
+ * Use invariant() to assert state which your program assumes to be true.
714
+ *
715
+ * Provide sprintf-style format (only %s is supported) and arguments
716
+ * to provide information about what broke and what you were
717
+ * expecting.
718
+ *
719
+ * The invariant message will be stripped in production, but the invariant
720
+ * will remain to ensure logic does not differ in production.
721
+ */
722
+
723
+ var invariant = function(condition, format, a, b, c, d, e, f) {
724
+ if (true) {
725
+ if (format === undefined) {
726
+ throw new Error('invariant requires an error message argument');
727
+ }
728
+ }
729
+
730
+ if (!condition) {
731
+ var error;
732
+ if (format === undefined) {
733
+ error = new Error(
734
+ 'Minified exception occurred; use the non-minified dev environment ' +
735
+ 'for the full error message and additional helpful warnings.'
736
+ );
737
+ } else {
738
+ var args = [a, b, c, d, e, f];
739
+ var argIndex = 0;
740
+ error = new Error(
741
+ format.replace(/%s/g, function() { return args[argIndex++]; })
742
+ );
743
+ error.name = 'Invariant Violation';
744
+ }
745
+
746
+ error.framesToPop = 1; // we don't care about invariant's own frame
747
+ throw error;
748
+ }
749
+ };
750
+
751
+ module.exports = invariant;
752
+
753
+
754
+ /***/ },
755
+ /* 10 */
756
+ /***/ function(module, exports) {
757
+
758
+ /**
759
+ * Checks if `value` is a host object in IE < 9.
760
+ *
761
+ * @private
762
+ * @param {*} value The value to check.
763
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
764
+ */
765
+ function isHostObject(value) {
766
+ // Many host objects are `Object` objects that can coerce to strings
767
+ // despite having improperly defined `toString` methods.
768
+ var result = false;
769
+ if (value != null && typeof value.toString != 'function') {
770
+ try {
771
+ result = !!(value + '');
772
+ } catch (e) {}
773
+ }
774
+ return result;
775
+ }
776
+
777
+ module.exports = isHostObject;
778
+
779
+
780
+ /***/ },
781
+ /* 11 */
782
+ /***/ function(module, exports) {
783
+
784
+ /**
785
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
786
+ * and has a `typeof` result of "object".
787
+ *
788
+ * @static
789
+ * @memberOf _
790
+ * @category Lang
791
+ * @param {*} value The value to check.
792
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
793
+ * @example
794
+ *
795
+ * _.isObjectLike({});
796
+ * // => true
797
+ *
798
+ * _.isObjectLike([1, 2, 3]);
799
+ * // => true
800
+ *
801
+ * _.isObjectLike(_.noop);
802
+ * // => false
803
+ *
804
+ * _.isObjectLike(null);
805
+ * // => false
806
+ */
807
+ function isObjectLike(value) {
808
+ return !!value && typeof value == 'object';
809
+ }
810
+
811
+ module.exports = isObjectLike;
812
+
813
+
814
+ /***/ },
815
+ /* 12 */
816
+ /***/ function(module, exports, __webpack_require__) {
817
+
818
+ var isHostObject = __webpack_require__(10),
819
+ isObjectLike = __webpack_require__(11);
820
+
821
+ /** `Object#toString` result references. */
822
+ var objectTag = '[object Object]';
823
+
824
+ /** Used for built-in method references. */
825
+ var objectProto = Object.prototype;
826
+
827
+ /** Used to resolve the decompiled source of functions. */
828
+ var funcToString = Function.prototype.toString;
829
+
830
+ /** Used to infer the `Object` constructor. */
831
+ var objectCtorString = funcToString.call(Object);
832
+
833
+ /**
834
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
835
+ * of values.
836
+ */
837
+ var objectToString = objectProto.toString;
838
+
839
+ /** Built-in value references. */
840
+ var getPrototypeOf = Object.getPrototypeOf;
841
+
842
+ /**
843
+ * Checks if `value` is a plain object, that is, an object created by the
844
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
845
+ *
846
+ * @static
847
+ * @memberOf _
848
+ * @category Lang
849
+ * @param {*} value The value to check.
850
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
851
+ * @example
852
+ *
853
+ * function Foo() {
854
+ * this.a = 1;
855
+ * }
856
+ *
857
+ * _.isPlainObject(new Foo);
858
+ * // => false
859
+ *
860
+ * _.isPlainObject([1, 2, 3]);
861
+ * // => false
862
+ *
863
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
864
+ * // => true
865
+ *
866
+ * _.isPlainObject(Object.create(null));
867
+ * // => true
868
+ */
869
+ function isPlainObject(value) {
870
+ if (!isObjectLike(value) || objectToString.call(value) != objectTag || isHostObject(value)) {
871
+ return false;
872
+ }
873
+ var proto = objectProto;
874
+ if (typeof value.constructor == 'function') {
875
+ proto = getPrototypeOf(value);
876
+ }
877
+ if (proto === null) {
878
+ return true;
879
+ }
880
+ var Ctor = proto.constructor;
881
+ return (typeof Ctor == 'function' &&
882
+ Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
883
+ }
884
+
885
+ module.exports = isPlainObject;
886
+
887
+
888
+ /***/ },
889
+ /* 13 */
890
+ /***/ function(module, exports) {
891
+
892
+ module.exports = __WEBPACK_EXTERNAL_MODULE_13__;
893
+
894
+ /***/ }
895
+ /******/ ])
896
+ });
897
+ ;