fluxxor-rails 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +27 -0
- data/lib/fluxxor-rails/version.rb +5 -0
- data/lib/fluxxor-rails.rb +8 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/config/application.rb +65 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +31 -0
- data/test/dummy/config/environments/production.rb +64 -0
- data/test/dummy/config/environments/test.rb +35 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +2 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/log/test.log +16 -0
- data/test/dummy/tmp/cache/assets/C4E/EE0/sprockets%2F68de70436326426a3329c3b58b59b106 +0 -0
- data/test/dummy/tmp/cache/assets/DC6/C40/sprockets%2F2617ffa3fab6631cdff29bbf623e2d12 +0 -0
- data/test/dummy/tmp/cache/assets/DCC/260/sprockets%2F7c5104b0d6ae29c2ec84168e5cacf8fb +0 -0
- data/test/fluxxor-rails_test.rb +7 -0
- data/test/integration/navigation_test.rb +13 -0
- data/test/test_helper.rb +15 -0
- data/vendor/assets/javascripts/fluxxor.js +4145 -0
- metadata +137 -0
@@ -0,0 +1,4145 @@
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
3
|
+
module.exports = factory();
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
5
|
+
define(factory);
|
6
|
+
else if(typeof exports === 'object')
|
7
|
+
exports["Fluxxor"] = factory();
|
8
|
+
else
|
9
|
+
root["Fluxxor"] = factory();
|
10
|
+
})(this, function() {
|
11
|
+
return /******/ (function(modules) { // webpackBootstrap
|
12
|
+
/******/
|
13
|
+
/******/ // The module cache
|
14
|
+
/******/ var installedModules = {};
|
15
|
+
/******/
|
16
|
+
/******/ // The require function
|
17
|
+
/******/ function __webpack_require__(moduleId) {
|
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
|
+
/******/
|
50
|
+
/******/ // Load entry module and return exports
|
51
|
+
/******/ return __webpack_require__(0);
|
52
|
+
/******/ })
|
53
|
+
/************************************************************************/
|
54
|
+
/******/ ([
|
55
|
+
/* 0 */
|
56
|
+
/***/ function(module, exports, __webpack_require__) {
|
57
|
+
|
58
|
+
var Dispatcher = __webpack_require__(2),
|
59
|
+
Flux = __webpack_require__(3),
|
60
|
+
FluxMixin = __webpack_require__(4),
|
61
|
+
FluxChildMixin = __webpack_require__(5),
|
62
|
+
StoreWatchMixin = __webpack_require__(6),
|
63
|
+
createStore = __webpack_require__(7);
|
64
|
+
|
65
|
+
var Fluxxor = {
|
66
|
+
Dispatcher: Dispatcher,
|
67
|
+
Flux: Flux,
|
68
|
+
FluxMixin: FluxMixin,
|
69
|
+
FluxChildMixin: FluxChildMixin,
|
70
|
+
StoreWatchMixin: StoreWatchMixin,
|
71
|
+
createStore: createStore,
|
72
|
+
version: __webpack_require__(1).version
|
73
|
+
};
|
74
|
+
|
75
|
+
module.exports = Fluxxor;
|
76
|
+
|
77
|
+
|
78
|
+
/***/ },
|
79
|
+
/* 1 */
|
80
|
+
/***/ function(module, exports, __webpack_require__) {
|
81
|
+
|
82
|
+
module.exports = {"name":"fluxxor","version":"1.1.2","description":"Flux architecture tools for React","repository":{"type":"git","url":"https://github.com/BinaryMuse/fluxxor.git"},"main":"index.js","scripts":{"test":"npm run jshint && mocha --recursive","jshint":"jsxhint lib/","build":"./script/build-fluxxor && ./script/build-examples","preview-site":"wintersmith preview -C site","build-site":"wintersmith build -C site"},"keywords":["react","flux"],"author":"Brandon Tilley <brandon@brandontilley.com>","license":"MIT","devDependencies":{"chai":"^1.9.1","css-loader":"^0.6.12","envify":"^1.2.1","jsdom":"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2","jsxhint":"^0.4.9","less":"^1.7.0","less-loader":"^0.7.3","mocha":"^1.18.2","react":"^0.10.0","sinon":"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3","webpack":"^1.1.11","webpack-dev-server":"^1.2.7","wintersmith":"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},"dependencies":{"lodash-node":"^2.4.1"}}
|
83
|
+
|
84
|
+
/***/ },
|
85
|
+
/* 2 */
|
86
|
+
/***/ function(module, exports, __webpack_require__) {
|
87
|
+
|
88
|
+
var _clone = __webpack_require__(10),
|
89
|
+
_mapValues = __webpack_require__(11),
|
90
|
+
_forOwn = __webpack_require__(12),
|
91
|
+
_intersection = __webpack_require__(15),
|
92
|
+
_keys = __webpack_require__(13),
|
93
|
+
_map = __webpack_require__(17),
|
94
|
+
_each = __webpack_require__(18),
|
95
|
+
_size = __webpack_require__(19),
|
96
|
+
_findKey = __webpack_require__(14),
|
97
|
+
_uniq = __webpack_require__(16);
|
98
|
+
|
99
|
+
var Dispatcher = function(stores) {
|
100
|
+
this.stores = stores;
|
101
|
+
this.currentDispatch = null;
|
102
|
+
this.waitingToDispatch = [];
|
103
|
+
|
104
|
+
for (var key in stores) {
|
105
|
+
stores[key].dispatcher = this;
|
106
|
+
}
|
107
|
+
};
|
108
|
+
|
109
|
+
Dispatcher.prototype.dispatch = function(action) {
|
110
|
+
if (this.currentDispatch) {
|
111
|
+
throw new Error("Cannot dispatch an action while another action is being dispatched");
|
112
|
+
}
|
113
|
+
|
114
|
+
this.waitingToDispatch = _clone(this.stores);
|
115
|
+
|
116
|
+
this.currentDispatch = _mapValues(this.stores, function() {
|
117
|
+
return { resolved: false, waitingOn: [], waitCallback: null };
|
118
|
+
});
|
119
|
+
|
120
|
+
this.doDispatchLoop(action);
|
121
|
+
|
122
|
+
setTimeout(function() {
|
123
|
+
this.currentDispatch = null;
|
124
|
+
}.bind(this));
|
125
|
+
};
|
126
|
+
|
127
|
+
Dispatcher.prototype.doDispatchLoop = function(action) {
|
128
|
+
var dispatch, canBeDispatchedTo,
|
129
|
+
removeFromDispatchQueue = [], dispatchedThisLoop = [];
|
130
|
+
|
131
|
+
_forOwn(this.waitingToDispatch, function(value, key) {
|
132
|
+
dispatch = this.currentDispatch[key];
|
133
|
+
canBeDispatchedTo = !dispatch.waitingOn.length ||
|
134
|
+
!_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;
|
135
|
+
if (canBeDispatchedTo) {
|
136
|
+
if (dispatch.waitCallback) {
|
137
|
+
var stores = _map(dispatch.waitingOn, function(key) {
|
138
|
+
return this.stores[key];
|
139
|
+
}, this);
|
140
|
+
var fn = dispatch.waitCallback;
|
141
|
+
dispatch.waitCallback = null;
|
142
|
+
dispatch.waitingOn = [];
|
143
|
+
dispatch.resolved = true;
|
144
|
+
fn.apply(null, stores);
|
145
|
+
} else {
|
146
|
+
dispatch.resolved = true;
|
147
|
+
this.stores[key].__handleAction__(action);
|
148
|
+
}
|
149
|
+
|
150
|
+
dispatchedThisLoop.push(key);
|
151
|
+
|
152
|
+
if (this.currentDispatch[key].resolved) {
|
153
|
+
removeFromDispatchQueue.push(key);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}, this);
|
157
|
+
|
158
|
+
if (!dispatchedThisLoop.length) {
|
159
|
+
var storesWithCircularWaits = _keys(this.waitingToDispatch).join(", ");
|
160
|
+
throw new Error("Indirect circular wait detected among: " + storesWithCircularWaits);
|
161
|
+
}
|
162
|
+
|
163
|
+
_each(removeFromDispatchQueue, function(key) {
|
164
|
+
delete this.waitingToDispatch[key];
|
165
|
+
}, this);
|
166
|
+
|
167
|
+
if (_size(this.waitingToDispatch)) {
|
168
|
+
this.doDispatchLoop(action);
|
169
|
+
}
|
170
|
+
};
|
171
|
+
|
172
|
+
Dispatcher.prototype.waitForStores = function(store, stores, fn) {
|
173
|
+
if (!this.currentDispatch) {
|
174
|
+
throw new Error("Cannot wait unless an action is being dispatched");
|
175
|
+
}
|
176
|
+
|
177
|
+
var waitingStoreName = _findKey(this.stores, function(val) {
|
178
|
+
return val === store;
|
179
|
+
});
|
180
|
+
|
181
|
+
if (stores.indexOf(waitingStoreName) > -1) {
|
182
|
+
throw new Error("A store cannot wait on itself");
|
183
|
+
}
|
184
|
+
|
185
|
+
var dispatch = this.currentDispatch[waitingStoreName];
|
186
|
+
|
187
|
+
if (dispatch.waitingOn.length) {
|
188
|
+
throw new Error(waitingStoreName + " already waiting on stores");
|
189
|
+
}
|
190
|
+
|
191
|
+
_each(stores, function(storeName) {
|
192
|
+
var storeDispatch = this.currentDispatch[storeName];
|
193
|
+
if (!this.stores[storeName]) {
|
194
|
+
throw new Error("Cannot wait for non-existant store " + storeName);
|
195
|
+
}
|
196
|
+
if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {
|
197
|
+
throw new Error("Circular wait detected between " + waitingStoreName + " and " + storeName);
|
198
|
+
}
|
199
|
+
}, this);
|
200
|
+
|
201
|
+
dispatch.resolved = false;
|
202
|
+
dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));
|
203
|
+
dispatch.waitCallback = fn;
|
204
|
+
};
|
205
|
+
|
206
|
+
module.exports = Dispatcher;
|
207
|
+
|
208
|
+
|
209
|
+
/***/ },
|
210
|
+
/* 3 */
|
211
|
+
/***/ function(module, exports, __webpack_require__) {
|
212
|
+
|
213
|
+
var Dispatcher = __webpack_require__(2);
|
214
|
+
|
215
|
+
var Flux = function(stores, actions) {
|
216
|
+
var dispatcher = new Dispatcher(stores),
|
217
|
+
dispatchBinder = {
|
218
|
+
dispatch: function(type, payload) {
|
219
|
+
dispatcher.dispatch({type: type, payload: payload});
|
220
|
+
}
|
221
|
+
};
|
222
|
+
|
223
|
+
this.dispatcher = dispatcher;
|
224
|
+
this.actions = {};
|
225
|
+
|
226
|
+
for (var key in actions) {
|
227
|
+
this.actions[key] = actions[key].bind(dispatchBinder);
|
228
|
+
}
|
229
|
+
|
230
|
+
for (key in stores) {
|
231
|
+
stores[key].flux = this;
|
232
|
+
}
|
233
|
+
};
|
234
|
+
|
235
|
+
Flux.prototype.store = function(name) {
|
236
|
+
return this.dispatcher.stores[name];
|
237
|
+
};
|
238
|
+
|
239
|
+
module.exports = Flux;
|
240
|
+
|
241
|
+
|
242
|
+
/***/ },
|
243
|
+
/* 4 */
|
244
|
+
/***/ function(module, exports, __webpack_require__) {
|
245
|
+
|
246
|
+
var FluxMixin = function(React) {
|
247
|
+
return {
|
248
|
+
propTypes: {
|
249
|
+
flux: React.PropTypes.object.isRequired
|
250
|
+
},
|
251
|
+
|
252
|
+
childContextTypes: {
|
253
|
+
flux: React.PropTypes.object
|
254
|
+
},
|
255
|
+
|
256
|
+
getChildContext: function() {
|
257
|
+
return {
|
258
|
+
flux: this.props.flux
|
259
|
+
};
|
260
|
+
},
|
261
|
+
|
262
|
+
getFlux: function() {
|
263
|
+
return this.props.flux;
|
264
|
+
}
|
265
|
+
};
|
266
|
+
};
|
267
|
+
|
268
|
+
FluxMixin.componentWillMount = function() {
|
269
|
+
throw new Error("Fluxxor.FluxMixin is a function that takes React as a " +
|
270
|
+
"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]");
|
271
|
+
};
|
272
|
+
|
273
|
+
module.exports = FluxMixin;
|
274
|
+
|
275
|
+
|
276
|
+
/***/ },
|
277
|
+
/* 5 */
|
278
|
+
/***/ function(module, exports, __webpack_require__) {
|
279
|
+
|
280
|
+
var FluxChildMixin = function(React) {
|
281
|
+
return {
|
282
|
+
contextTypes: {
|
283
|
+
flux: React.PropTypes.object
|
284
|
+
},
|
285
|
+
|
286
|
+
getFlux: function() {
|
287
|
+
return this.context.flux;
|
288
|
+
}
|
289
|
+
};
|
290
|
+
};
|
291
|
+
|
292
|
+
FluxChildMixin.componentWillMount = function() {
|
293
|
+
throw new Error("Fluxxor.FluxChildMixin is a function that takes React as a " +
|
294
|
+
"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]");
|
295
|
+
};
|
296
|
+
|
297
|
+
module.exports = FluxChildMixin;
|
298
|
+
|
299
|
+
|
300
|
+
/***/ },
|
301
|
+
/* 6 */
|
302
|
+
/***/ function(module, exports, __webpack_require__) {
|
303
|
+
|
304
|
+
var _each = __webpack_require__(18);
|
305
|
+
|
306
|
+
var StoreWatchMixin = function() {
|
307
|
+
var storeNames = Array.prototype.slice.call(arguments);
|
308
|
+
return {
|
309
|
+
componentWillMount: function() {
|
310
|
+
var flux = this.props.flux || this.context.flux;
|
311
|
+
_each(storeNames, function(store) {
|
312
|
+
flux.store(store).on("change", this._setStateFromFlux);
|
313
|
+
}, this);
|
314
|
+
},
|
315
|
+
|
316
|
+
componentWillUnmount: function() {
|
317
|
+
var flux = this.props.flux || this.context.flux;
|
318
|
+
_each(storeNames, function(store) {
|
319
|
+
flux.store(store).removeListener("change", this._setStateFromFlux);
|
320
|
+
}, this);
|
321
|
+
},
|
322
|
+
|
323
|
+
_setStateFromFlux: function() {
|
324
|
+
this.setState(this.getStateFromFlux());
|
325
|
+
},
|
326
|
+
|
327
|
+
getInitialState: function() {
|
328
|
+
return this.getStateFromFlux();
|
329
|
+
}
|
330
|
+
};
|
331
|
+
};
|
332
|
+
|
333
|
+
StoreWatchMixin.componentWillMount = function() {
|
334
|
+
throw new Error("Fluxxor.StoreWatchMixin is a function that takes one or more " +
|
335
|
+
"store names as parameters and returns the mixin, e.g.: " +
|
336
|
+
"mixins[Fluxxor.StoreWatchMixin(\"Store1\", \"Store2\")]");
|
337
|
+
};
|
338
|
+
|
339
|
+
module.exports = StoreWatchMixin;
|
340
|
+
|
341
|
+
|
342
|
+
/***/ },
|
343
|
+
/* 7 */
|
344
|
+
/***/ function(module, exports, __webpack_require__) {
|
345
|
+
|
346
|
+
var _each = __webpack_require__(18),
|
347
|
+
Store = __webpack_require__(8),
|
348
|
+
util = __webpack_require__(9);
|
349
|
+
|
350
|
+
var RESERVED_KEYS = ["flux", "waitFor"];
|
351
|
+
|
352
|
+
var createStore = function(spec) {
|
353
|
+
_each(RESERVED_KEYS, function(key) {
|
354
|
+
if (spec[key]) {
|
355
|
+
throw new Error("Reserved key '" + key + "' found in store definition");
|
356
|
+
}
|
357
|
+
});
|
358
|
+
|
359
|
+
var constructor = function(options) {
|
360
|
+
options = options || {};
|
361
|
+
Store.call(this);
|
362
|
+
|
363
|
+
for (var key in spec) {
|
364
|
+
if (key === "actions") {
|
365
|
+
this.__actions__ = spec[key];
|
366
|
+
} else if (key === "initialize") {
|
367
|
+
// do nothing
|
368
|
+
} else if (typeof spec[key] === "function") {
|
369
|
+
this[key] = spec[key].bind(this);
|
370
|
+
} else {
|
371
|
+
this[key] = spec[key];
|
372
|
+
}
|
373
|
+
}
|
374
|
+
|
375
|
+
if (spec.initialize) spec.initialize.call(this, options);
|
376
|
+
};
|
377
|
+
|
378
|
+
util.inherits(constructor, Store);
|
379
|
+
return constructor;
|
380
|
+
};
|
381
|
+
|
382
|
+
module.exports = createStore;
|
383
|
+
|
384
|
+
|
385
|
+
/***/ },
|
386
|
+
/* 8 */
|
387
|
+
/***/ function(module, exports, __webpack_require__) {
|
388
|
+
|
389
|
+
var EventEmitter = __webpack_require__(20).EventEmitter,
|
390
|
+
util = __webpack_require__(9);
|
391
|
+
|
392
|
+
function Store(dispatcher) {
|
393
|
+
this.dispatcher = dispatcher;
|
394
|
+
this.__actions__ = {};
|
395
|
+
EventEmitter.call(this);
|
396
|
+
}
|
397
|
+
|
398
|
+
util.inherits(Store, EventEmitter);
|
399
|
+
|
400
|
+
Store.prototype.__handleAction__ = function(action) {
|
401
|
+
var handler;
|
402
|
+
if (!!(handler = this.__actions__[action.type])) {
|
403
|
+
if (typeof handler === "function")
|
404
|
+
handler.call(this, action.payload, action.type);
|
405
|
+
else if (handler && typeof this[handler] === "function")
|
406
|
+
this[handler].call(this, action.payload, action.type);
|
407
|
+
}
|
408
|
+
};
|
409
|
+
|
410
|
+
Store.prototype.bindActions = function() {
|
411
|
+
var actions = Array.prototype.slice.call(arguments);
|
412
|
+
if (actions.length % 2 !== 0) {
|
413
|
+
throw new Error("bindActions must take an even number of arguments.");
|
414
|
+
}
|
415
|
+
|
416
|
+
for (var i = 0; i < actions.length; i += 2) {
|
417
|
+
var type = actions[i],
|
418
|
+
handler = actions[i+1];
|
419
|
+
|
420
|
+
this.__actions__[type] = handler;
|
421
|
+
}
|
422
|
+
};
|
423
|
+
|
424
|
+
Store.prototype.waitFor = function(stores, fn) {
|
425
|
+
this.dispatcher.waitForStores(this, stores, fn.bind(this));
|
426
|
+
};
|
427
|
+
|
428
|
+
module.exports = Store;
|
429
|
+
|
430
|
+
|
431
|
+
/***/ },
|
432
|
+
/* 9 */
|
433
|
+
/***/ function(module, exports, __webpack_require__) {
|
434
|
+
|
435
|
+
/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
|
436
|
+
//
|
437
|
+
// Permission is hereby granted, free of charge, to any person obtaining a
|
438
|
+
// copy of this software and associated documentation files (the
|
439
|
+
// "Software"), to deal in the Software without restriction, including
|
440
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
441
|
+
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
442
|
+
// persons to whom the Software is furnished to do so, subject to the
|
443
|
+
// following conditions:
|
444
|
+
//
|
445
|
+
// The above copyright notice and this permission notice shall be included
|
446
|
+
// in all copies or substantial portions of the Software.
|
447
|
+
//
|
448
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
449
|
+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
450
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
451
|
+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
452
|
+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
453
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
454
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
455
|
+
|
456
|
+
var formatRegExp = /%[sdj%]/g;
|
457
|
+
exports.format = function(f) {
|
458
|
+
if (!isString(f)) {
|
459
|
+
var objects = [];
|
460
|
+
for (var i = 0; i < arguments.length; i++) {
|
461
|
+
objects.push(inspect(arguments[i]));
|
462
|
+
}
|
463
|
+
return objects.join(' ');
|
464
|
+
}
|
465
|
+
|
466
|
+
var i = 1;
|
467
|
+
var args = arguments;
|
468
|
+
var len = args.length;
|
469
|
+
var str = String(f).replace(formatRegExp, function(x) {
|
470
|
+
if (x === '%%') return '%';
|
471
|
+
if (i >= len) return x;
|
472
|
+
switch (x) {
|
473
|
+
case '%s': return String(args[i++]);
|
474
|
+
case '%d': return Number(args[i++]);
|
475
|
+
case '%j':
|
476
|
+
try {
|
477
|
+
return JSON.stringify(args[i++]);
|
478
|
+
} catch (_) {
|
479
|
+
return '[Circular]';
|
480
|
+
}
|
481
|
+
default:
|
482
|
+
return x;
|
483
|
+
}
|
484
|
+
});
|
485
|
+
for (var x = args[i]; i < len; x = args[++i]) {
|
486
|
+
if (isNull(x) || !isObject(x)) {
|
487
|
+
str += ' ' + x;
|
488
|
+
} else {
|
489
|
+
str += ' ' + inspect(x);
|
490
|
+
}
|
491
|
+
}
|
492
|
+
return str;
|
493
|
+
};
|
494
|
+
|
495
|
+
|
496
|
+
// Mark that a method should not be used.
|
497
|
+
// Returns a modified function which warns once by default.
|
498
|
+
// If --no-deprecation is set, then it is a no-op.
|
499
|
+
exports.deprecate = function(fn, msg) {
|
500
|
+
// Allow for deprecating things in the process of starting up.
|
501
|
+
if (isUndefined(global.process)) {
|
502
|
+
return function() {
|
503
|
+
return exports.deprecate(fn, msg).apply(this, arguments);
|
504
|
+
};
|
505
|
+
}
|
506
|
+
|
507
|
+
if (process.noDeprecation === true) {
|
508
|
+
return fn;
|
509
|
+
}
|
510
|
+
|
511
|
+
var warned = false;
|
512
|
+
function deprecated() {
|
513
|
+
if (!warned) {
|
514
|
+
if (process.throwDeprecation) {
|
515
|
+
throw new Error(msg);
|
516
|
+
} else if (process.traceDeprecation) {
|
517
|
+
console.trace(msg);
|
518
|
+
} else {
|
519
|
+
console.error(msg);
|
520
|
+
}
|
521
|
+
warned = true;
|
522
|
+
}
|
523
|
+
return fn.apply(this, arguments);
|
524
|
+
}
|
525
|
+
|
526
|
+
return deprecated;
|
527
|
+
};
|
528
|
+
|
529
|
+
|
530
|
+
var debugs = {};
|
531
|
+
var debugEnviron;
|
532
|
+
exports.debuglog = function(set) {
|
533
|
+
if (isUndefined(debugEnviron))
|
534
|
+
debugEnviron = process.env.NODE_DEBUG || '';
|
535
|
+
set = set.toUpperCase();
|
536
|
+
if (!debugs[set]) {
|
537
|
+
if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
|
538
|
+
var pid = process.pid;
|
539
|
+
debugs[set] = function() {
|
540
|
+
var msg = exports.format.apply(exports, arguments);
|
541
|
+
console.error('%s %d: %s', set, pid, msg);
|
542
|
+
};
|
543
|
+
} else {
|
544
|
+
debugs[set] = function() {};
|
545
|
+
}
|
546
|
+
}
|
547
|
+
return debugs[set];
|
548
|
+
};
|
549
|
+
|
550
|
+
|
551
|
+
/**
|
552
|
+
* Echos the value of a value. Trys to print the value out
|
553
|
+
* in the best way possible given the different types.
|
554
|
+
*
|
555
|
+
* @param {Object} obj The object to print out.
|
556
|
+
* @param {Object} opts Optional options object that alters the output.
|
557
|
+
*/
|
558
|
+
/* legacy: obj, showHidden, depth, colors*/
|
559
|
+
function inspect(obj, opts) {
|
560
|
+
// default options
|
561
|
+
var ctx = {
|
562
|
+
seen: [],
|
563
|
+
stylize: stylizeNoColor
|
564
|
+
};
|
565
|
+
// legacy...
|
566
|
+
if (arguments.length >= 3) ctx.depth = arguments[2];
|
567
|
+
if (arguments.length >= 4) ctx.colors = arguments[3];
|
568
|
+
if (isBoolean(opts)) {
|
569
|
+
// legacy...
|
570
|
+
ctx.showHidden = opts;
|
571
|
+
} else if (opts) {
|
572
|
+
// got an "options" object
|
573
|
+
exports._extend(ctx, opts);
|
574
|
+
}
|
575
|
+
// set default options
|
576
|
+
if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
|
577
|
+
if (isUndefined(ctx.depth)) ctx.depth = 2;
|
578
|
+
if (isUndefined(ctx.colors)) ctx.colors = false;
|
579
|
+
if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
|
580
|
+
if (ctx.colors) ctx.stylize = stylizeWithColor;
|
581
|
+
return formatValue(ctx, obj, ctx.depth);
|
582
|
+
}
|
583
|
+
exports.inspect = inspect;
|
584
|
+
|
585
|
+
|
586
|
+
// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
|
587
|
+
inspect.colors = {
|
588
|
+
'bold' : [1, 22],
|
589
|
+
'italic' : [3, 23],
|
590
|
+
'underline' : [4, 24],
|
591
|
+
'inverse' : [7, 27],
|
592
|
+
'white' : [37, 39],
|
593
|
+
'grey' : [90, 39],
|
594
|
+
'black' : [30, 39],
|
595
|
+
'blue' : [34, 39],
|
596
|
+
'cyan' : [36, 39],
|
597
|
+
'green' : [32, 39],
|
598
|
+
'magenta' : [35, 39],
|
599
|
+
'red' : [31, 39],
|
600
|
+
'yellow' : [33, 39]
|
601
|
+
};
|
602
|
+
|
603
|
+
// Don't use 'blue' not visible on cmd.exe
|
604
|
+
inspect.styles = {
|
605
|
+
'special': 'cyan',
|
606
|
+
'number': 'yellow',
|
607
|
+
'boolean': 'yellow',
|
608
|
+
'undefined': 'grey',
|
609
|
+
'null': 'bold',
|
610
|
+
'string': 'green',
|
611
|
+
'date': 'magenta',
|
612
|
+
// "name": intentionally not styling
|
613
|
+
'regexp': 'red'
|
614
|
+
};
|
615
|
+
|
616
|
+
|
617
|
+
function stylizeWithColor(str, styleType) {
|
618
|
+
var style = inspect.styles[styleType];
|
619
|
+
|
620
|
+
if (style) {
|
621
|
+
return '\u001b[' + inspect.colors[style][0] + 'm' + str +
|
622
|
+
'\u001b[' + inspect.colors[style][1] + 'm';
|
623
|
+
} else {
|
624
|
+
return str;
|
625
|
+
}
|
626
|
+
}
|
627
|
+
|
628
|
+
|
629
|
+
function stylizeNoColor(str, styleType) {
|
630
|
+
return str;
|
631
|
+
}
|
632
|
+
|
633
|
+
|
634
|
+
function arrayToHash(array) {
|
635
|
+
var hash = {};
|
636
|
+
|
637
|
+
array.forEach(function(val, idx) {
|
638
|
+
hash[val] = true;
|
639
|
+
});
|
640
|
+
|
641
|
+
return hash;
|
642
|
+
}
|
643
|
+
|
644
|
+
|
645
|
+
function formatValue(ctx, value, recurseTimes) {
|
646
|
+
// Provide a hook for user-specified inspect functions.
|
647
|
+
// Check that value is an object with an inspect function on it
|
648
|
+
if (ctx.customInspect &&
|
649
|
+
value &&
|
650
|
+
isFunction(value.inspect) &&
|
651
|
+
// Filter out the util module, it's inspect function is special
|
652
|
+
value.inspect !== exports.inspect &&
|
653
|
+
// Also filter out any prototype objects using the circular check.
|
654
|
+
!(value.constructor && value.constructor.prototype === value)) {
|
655
|
+
var ret = value.inspect(recurseTimes, ctx);
|
656
|
+
if (!isString(ret)) {
|
657
|
+
ret = formatValue(ctx, ret, recurseTimes);
|
658
|
+
}
|
659
|
+
return ret;
|
660
|
+
}
|
661
|
+
|
662
|
+
// Primitive types cannot have properties
|
663
|
+
var primitive = formatPrimitive(ctx, value);
|
664
|
+
if (primitive) {
|
665
|
+
return primitive;
|
666
|
+
}
|
667
|
+
|
668
|
+
// Look up the keys of the object.
|
669
|
+
var keys = Object.keys(value);
|
670
|
+
var visibleKeys = arrayToHash(keys);
|
671
|
+
|
672
|
+
if (ctx.showHidden) {
|
673
|
+
keys = Object.getOwnPropertyNames(value);
|
674
|
+
}
|
675
|
+
|
676
|
+
// IE doesn't make error fields non-enumerable
|
677
|
+
// http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
|
678
|
+
if (isError(value)
|
679
|
+
&& (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
|
680
|
+
return formatError(value);
|
681
|
+
}
|
682
|
+
|
683
|
+
// Some type of object without properties can be shortcutted.
|
684
|
+
if (keys.length === 0) {
|
685
|
+
if (isFunction(value)) {
|
686
|
+
var name = value.name ? ': ' + value.name : '';
|
687
|
+
return ctx.stylize('[Function' + name + ']', 'special');
|
688
|
+
}
|
689
|
+
if (isRegExp(value)) {
|
690
|
+
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
691
|
+
}
|
692
|
+
if (isDate(value)) {
|
693
|
+
return ctx.stylize(Date.prototype.toString.call(value), 'date');
|
694
|
+
}
|
695
|
+
if (isError(value)) {
|
696
|
+
return formatError(value);
|
697
|
+
}
|
698
|
+
}
|
699
|
+
|
700
|
+
var base = '', array = false, braces = ['{', '}'];
|
701
|
+
|
702
|
+
// Make Array say that they are Array
|
703
|
+
if (isArray(value)) {
|
704
|
+
array = true;
|
705
|
+
braces = ['[', ']'];
|
706
|
+
}
|
707
|
+
|
708
|
+
// Make functions say that they are functions
|
709
|
+
if (isFunction(value)) {
|
710
|
+
var n = value.name ? ': ' + value.name : '';
|
711
|
+
base = ' [Function' + n + ']';
|
712
|
+
}
|
713
|
+
|
714
|
+
// Make RegExps say that they are RegExps
|
715
|
+
if (isRegExp(value)) {
|
716
|
+
base = ' ' + RegExp.prototype.toString.call(value);
|
717
|
+
}
|
718
|
+
|
719
|
+
// Make dates with properties first say the date
|
720
|
+
if (isDate(value)) {
|
721
|
+
base = ' ' + Date.prototype.toUTCString.call(value);
|
722
|
+
}
|
723
|
+
|
724
|
+
// Make error with message first say the error
|
725
|
+
if (isError(value)) {
|
726
|
+
base = ' ' + formatError(value);
|
727
|
+
}
|
728
|
+
|
729
|
+
if (keys.length === 0 && (!array || value.length == 0)) {
|
730
|
+
return braces[0] + base + braces[1];
|
731
|
+
}
|
732
|
+
|
733
|
+
if (recurseTimes < 0) {
|
734
|
+
if (isRegExp(value)) {
|
735
|
+
return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
|
736
|
+
} else {
|
737
|
+
return ctx.stylize('[Object]', 'special');
|
738
|
+
}
|
739
|
+
}
|
740
|
+
|
741
|
+
ctx.seen.push(value);
|
742
|
+
|
743
|
+
var output;
|
744
|
+
if (array) {
|
745
|
+
output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
|
746
|
+
} else {
|
747
|
+
output = keys.map(function(key) {
|
748
|
+
return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
|
749
|
+
});
|
750
|
+
}
|
751
|
+
|
752
|
+
ctx.seen.pop();
|
753
|
+
|
754
|
+
return reduceToSingleString(output, base, braces);
|
755
|
+
}
|
756
|
+
|
757
|
+
|
758
|
+
function formatPrimitive(ctx, value) {
|
759
|
+
if (isUndefined(value))
|
760
|
+
return ctx.stylize('undefined', 'undefined');
|
761
|
+
if (isString(value)) {
|
762
|
+
var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
|
763
|
+
.replace(/'/g, "\\'")
|
764
|
+
.replace(/\\"/g, '"') + '\'';
|
765
|
+
return ctx.stylize(simple, 'string');
|
766
|
+
}
|
767
|
+
if (isNumber(value))
|
768
|
+
return ctx.stylize('' + value, 'number');
|
769
|
+
if (isBoolean(value))
|
770
|
+
return ctx.stylize('' + value, 'boolean');
|
771
|
+
// For some reason typeof null is "object", so special case here.
|
772
|
+
if (isNull(value))
|
773
|
+
return ctx.stylize('null', 'null');
|
774
|
+
}
|
775
|
+
|
776
|
+
|
777
|
+
function formatError(value) {
|
778
|
+
return '[' + Error.prototype.toString.call(value) + ']';
|
779
|
+
}
|
780
|
+
|
781
|
+
|
782
|
+
function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
|
783
|
+
var output = [];
|
784
|
+
for (var i = 0, l = value.length; i < l; ++i) {
|
785
|
+
if (hasOwnProperty(value, String(i))) {
|
786
|
+
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
787
|
+
String(i), true));
|
788
|
+
} else {
|
789
|
+
output.push('');
|
790
|
+
}
|
791
|
+
}
|
792
|
+
keys.forEach(function(key) {
|
793
|
+
if (!key.match(/^\d+$/)) {
|
794
|
+
output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
|
795
|
+
key, true));
|
796
|
+
}
|
797
|
+
});
|
798
|
+
return output;
|
799
|
+
}
|
800
|
+
|
801
|
+
|
802
|
+
function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
|
803
|
+
var name, str, desc;
|
804
|
+
desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
|
805
|
+
if (desc.get) {
|
806
|
+
if (desc.set) {
|
807
|
+
str = ctx.stylize('[Getter/Setter]', 'special');
|
808
|
+
} else {
|
809
|
+
str = ctx.stylize('[Getter]', 'special');
|
810
|
+
}
|
811
|
+
} else {
|
812
|
+
if (desc.set) {
|
813
|
+
str = ctx.stylize('[Setter]', 'special');
|
814
|
+
}
|
815
|
+
}
|
816
|
+
if (!hasOwnProperty(visibleKeys, key)) {
|
817
|
+
name = '[' + key + ']';
|
818
|
+
}
|
819
|
+
if (!str) {
|
820
|
+
if (ctx.seen.indexOf(desc.value) < 0) {
|
821
|
+
if (isNull(recurseTimes)) {
|
822
|
+
str = formatValue(ctx, desc.value, null);
|
823
|
+
} else {
|
824
|
+
str = formatValue(ctx, desc.value, recurseTimes - 1);
|
825
|
+
}
|
826
|
+
if (str.indexOf('\n') > -1) {
|
827
|
+
if (array) {
|
828
|
+
str = str.split('\n').map(function(line) {
|
829
|
+
return ' ' + line;
|
830
|
+
}).join('\n').substr(2);
|
831
|
+
} else {
|
832
|
+
str = '\n' + str.split('\n').map(function(line) {
|
833
|
+
return ' ' + line;
|
834
|
+
}).join('\n');
|
835
|
+
}
|
836
|
+
}
|
837
|
+
} else {
|
838
|
+
str = ctx.stylize('[Circular]', 'special');
|
839
|
+
}
|
840
|
+
}
|
841
|
+
if (isUndefined(name)) {
|
842
|
+
if (array && key.match(/^\d+$/)) {
|
843
|
+
return str;
|
844
|
+
}
|
845
|
+
name = JSON.stringify('' + key);
|
846
|
+
if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
|
847
|
+
name = name.substr(1, name.length - 2);
|
848
|
+
name = ctx.stylize(name, 'name');
|
849
|
+
} else {
|
850
|
+
name = name.replace(/'/g, "\\'")
|
851
|
+
.replace(/\\"/g, '"')
|
852
|
+
.replace(/(^"|"$)/g, "'");
|
853
|
+
name = ctx.stylize(name, 'string');
|
854
|
+
}
|
855
|
+
}
|
856
|
+
|
857
|
+
return name + ': ' + str;
|
858
|
+
}
|
859
|
+
|
860
|
+
|
861
|
+
function reduceToSingleString(output, base, braces) {
|
862
|
+
var numLinesEst = 0;
|
863
|
+
var length = output.reduce(function(prev, cur) {
|
864
|
+
numLinesEst++;
|
865
|
+
if (cur.indexOf('\n') >= 0) numLinesEst++;
|
866
|
+
return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
|
867
|
+
}, 0);
|
868
|
+
|
869
|
+
if (length > 60) {
|
870
|
+
return braces[0] +
|
871
|
+
(base === '' ? '' : base + '\n ') +
|
872
|
+
' ' +
|
873
|
+
output.join(',\n ') +
|
874
|
+
' ' +
|
875
|
+
braces[1];
|
876
|
+
}
|
877
|
+
|
878
|
+
return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
|
879
|
+
}
|
880
|
+
|
881
|
+
|
882
|
+
// NOTE: These type checking functions intentionally don't use `instanceof`
|
883
|
+
// because it is fragile and can be easily faked with `Object.create()`.
|
884
|
+
function isArray(ar) {
|
885
|
+
return Array.isArray(ar);
|
886
|
+
}
|
887
|
+
exports.isArray = isArray;
|
888
|
+
|
889
|
+
function isBoolean(arg) {
|
890
|
+
return typeof arg === 'boolean';
|
891
|
+
}
|
892
|
+
exports.isBoolean = isBoolean;
|
893
|
+
|
894
|
+
function isNull(arg) {
|
895
|
+
return arg === null;
|
896
|
+
}
|
897
|
+
exports.isNull = isNull;
|
898
|
+
|
899
|
+
function isNullOrUndefined(arg) {
|
900
|
+
return arg == null;
|
901
|
+
}
|
902
|
+
exports.isNullOrUndefined = isNullOrUndefined;
|
903
|
+
|
904
|
+
function isNumber(arg) {
|
905
|
+
return typeof arg === 'number';
|
906
|
+
}
|
907
|
+
exports.isNumber = isNumber;
|
908
|
+
|
909
|
+
function isString(arg) {
|
910
|
+
return typeof arg === 'string';
|
911
|
+
}
|
912
|
+
exports.isString = isString;
|
913
|
+
|
914
|
+
function isSymbol(arg) {
|
915
|
+
return typeof arg === 'symbol';
|
916
|
+
}
|
917
|
+
exports.isSymbol = isSymbol;
|
918
|
+
|
919
|
+
function isUndefined(arg) {
|
920
|
+
return arg === void 0;
|
921
|
+
}
|
922
|
+
exports.isUndefined = isUndefined;
|
923
|
+
|
924
|
+
function isRegExp(re) {
|
925
|
+
return isObject(re) && objectToString(re) === '[object RegExp]';
|
926
|
+
}
|
927
|
+
exports.isRegExp = isRegExp;
|
928
|
+
|
929
|
+
function isObject(arg) {
|
930
|
+
return typeof arg === 'object' && arg !== null;
|
931
|
+
}
|
932
|
+
exports.isObject = isObject;
|
933
|
+
|
934
|
+
function isDate(d) {
|
935
|
+
return isObject(d) && objectToString(d) === '[object Date]';
|
936
|
+
}
|
937
|
+
exports.isDate = isDate;
|
938
|
+
|
939
|
+
function isError(e) {
|
940
|
+
return isObject(e) &&
|
941
|
+
(objectToString(e) === '[object Error]' || e instanceof Error);
|
942
|
+
}
|
943
|
+
exports.isError = isError;
|
944
|
+
|
945
|
+
function isFunction(arg) {
|
946
|
+
return typeof arg === 'function';
|
947
|
+
}
|
948
|
+
exports.isFunction = isFunction;
|
949
|
+
|
950
|
+
function isPrimitive(arg) {
|
951
|
+
return arg === null ||
|
952
|
+
typeof arg === 'boolean' ||
|
953
|
+
typeof arg === 'number' ||
|
954
|
+
typeof arg === 'string' ||
|
955
|
+
typeof arg === 'symbol' || // ES6 symbol
|
956
|
+
typeof arg === 'undefined';
|
957
|
+
}
|
958
|
+
exports.isPrimitive = isPrimitive;
|
959
|
+
|
960
|
+
exports.isBuffer = __webpack_require__(21);
|
961
|
+
|
962
|
+
function objectToString(o) {
|
963
|
+
return Object.prototype.toString.call(o);
|
964
|
+
}
|
965
|
+
|
966
|
+
|
967
|
+
function pad(n) {
|
968
|
+
return n < 10 ? '0' + n.toString(10) : n.toString(10);
|
969
|
+
}
|
970
|
+
|
971
|
+
|
972
|
+
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
|
973
|
+
'Oct', 'Nov', 'Dec'];
|
974
|
+
|
975
|
+
// 26 Feb 16:19:34
|
976
|
+
function timestamp() {
|
977
|
+
var d = new Date();
|
978
|
+
var time = [pad(d.getHours()),
|
979
|
+
pad(d.getMinutes()),
|
980
|
+
pad(d.getSeconds())].join(':');
|
981
|
+
return [d.getDate(), months[d.getMonth()], time].join(' ');
|
982
|
+
}
|
983
|
+
|
984
|
+
|
985
|
+
// log is just a thin wrapper to console.log that prepends a timestamp
|
986
|
+
exports.log = function() {
|
987
|
+
console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
|
988
|
+
};
|
989
|
+
|
990
|
+
|
991
|
+
/**
|
992
|
+
* Inherit the prototype methods from one constructor into another.
|
993
|
+
*
|
994
|
+
* The Function.prototype.inherits from lang.js rewritten as a standalone
|
995
|
+
* function (not on Function.prototype). NOTE: If this file is to be loaded
|
996
|
+
* during bootstrapping this function needs to be rewritten using some native
|
997
|
+
* functions as prototype setup using normal JavaScript does not work as
|
998
|
+
* expected during bootstrapping (see mirror.js in r114903).
|
999
|
+
*
|
1000
|
+
* @param {function} ctor Constructor function which needs to inherit the
|
1001
|
+
* prototype.
|
1002
|
+
* @param {function} superCtor Constructor function to inherit prototype from.
|
1003
|
+
*/
|
1004
|
+
exports.inherits = __webpack_require__(40);
|
1005
|
+
|
1006
|
+
exports._extend = function(origin, add) {
|
1007
|
+
// Don't do anything if add isn't an object
|
1008
|
+
if (!add || !isObject(add)) return origin;
|
1009
|
+
|
1010
|
+
var keys = Object.keys(add);
|
1011
|
+
var i = keys.length;
|
1012
|
+
while (i--) {
|
1013
|
+
origin[keys[i]] = add[keys[i]];
|
1014
|
+
}
|
1015
|
+
return origin;
|
1016
|
+
};
|
1017
|
+
|
1018
|
+
function hasOwnProperty(obj, prop) {
|
1019
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
1020
|
+
}
|
1021
|
+
|
1022
|
+
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(25)))
|
1023
|
+
|
1024
|
+
/***/ },
|
1025
|
+
/* 10 */
|
1026
|
+
/***/ function(module, exports, __webpack_require__) {
|
1027
|
+
|
1028
|
+
/**
|
1029
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1030
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1031
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1032
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1033
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1034
|
+
* Available under MIT license <http://lodash.com/license>
|
1035
|
+
*/
|
1036
|
+
var baseClone = __webpack_require__(26),
|
1037
|
+
baseCreateCallback = __webpack_require__(27);
|
1038
|
+
|
1039
|
+
/**
|
1040
|
+
* Creates a clone of `value`. If `isDeep` is `true` nested objects will also
|
1041
|
+
* be cloned, otherwise they will be assigned by reference. If a callback
|
1042
|
+
* is provided it will be executed to produce the cloned values. If the
|
1043
|
+
* callback returns `undefined` cloning will be handled by the method instead.
|
1044
|
+
* The callback is bound to `thisArg` and invoked with one argument; (value).
|
1045
|
+
*
|
1046
|
+
* @static
|
1047
|
+
* @memberOf _
|
1048
|
+
* @category Objects
|
1049
|
+
* @param {*} value The value to clone.
|
1050
|
+
* @param {boolean} [isDeep=false] Specify a deep clone.
|
1051
|
+
* @param {Function} [callback] The function to customize cloning values.
|
1052
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1053
|
+
* @returns {*} Returns the cloned value.
|
1054
|
+
* @example
|
1055
|
+
*
|
1056
|
+
* var characters = [
|
1057
|
+
* { 'name': 'barney', 'age': 36 },
|
1058
|
+
* { 'name': 'fred', 'age': 40 }
|
1059
|
+
* ];
|
1060
|
+
*
|
1061
|
+
* var shallow = _.clone(characters);
|
1062
|
+
* shallow[0] === characters[0];
|
1063
|
+
* // => true
|
1064
|
+
*
|
1065
|
+
* var deep = _.clone(characters, true);
|
1066
|
+
* deep[0] === characters[0];
|
1067
|
+
* // => false
|
1068
|
+
*
|
1069
|
+
* _.mixin({
|
1070
|
+
* 'clone': _.partialRight(_.clone, function(value) {
|
1071
|
+
* return _.isElement(value) ? value.cloneNode(false) : undefined;
|
1072
|
+
* })
|
1073
|
+
* });
|
1074
|
+
*
|
1075
|
+
* var clone = _.clone(document.body);
|
1076
|
+
* clone.childNodes.length;
|
1077
|
+
* // => 0
|
1078
|
+
*/
|
1079
|
+
function clone(value, isDeep, callback, thisArg) {
|
1080
|
+
// allows working with "Collections" methods without using their `index`
|
1081
|
+
// and `collection` arguments for `isDeep` and `callback`
|
1082
|
+
if (typeof isDeep != 'boolean' && isDeep != null) {
|
1083
|
+
thisArg = callback;
|
1084
|
+
callback = isDeep;
|
1085
|
+
isDeep = false;
|
1086
|
+
}
|
1087
|
+
return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));
|
1088
|
+
}
|
1089
|
+
|
1090
|
+
module.exports = clone;
|
1091
|
+
|
1092
|
+
|
1093
|
+
/***/ },
|
1094
|
+
/* 11 */
|
1095
|
+
/***/ function(module, exports, __webpack_require__) {
|
1096
|
+
|
1097
|
+
/**
|
1098
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1099
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1100
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1101
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1102
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1103
|
+
* Available under MIT license <http://lodash.com/license>
|
1104
|
+
*/
|
1105
|
+
var createCallback = __webpack_require__(39),
|
1106
|
+
forOwn = __webpack_require__(12);
|
1107
|
+
|
1108
|
+
/**
|
1109
|
+
* Creates an object with the same keys as `object` and values generated by
|
1110
|
+
* running each own enumerable property of `object` through the callback.
|
1111
|
+
* The callback is bound to `thisArg` and invoked with three arguments;
|
1112
|
+
* (value, key, object).
|
1113
|
+
*
|
1114
|
+
* If a property name is provided for `callback` the created "_.pluck" style
|
1115
|
+
* callback will return the property value of the given element.
|
1116
|
+
*
|
1117
|
+
* If an object is provided for `callback` the created "_.where" style callback
|
1118
|
+
* will return `true` for elements that have the properties of the given object,
|
1119
|
+
* else `false`.
|
1120
|
+
*
|
1121
|
+
* @static
|
1122
|
+
* @memberOf _
|
1123
|
+
* @category Objects
|
1124
|
+
* @param {Object} object The object to iterate over.
|
1125
|
+
* @param {Function|Object|string} [callback=identity] The function called
|
1126
|
+
* per iteration. If a property name or object is provided it will be used
|
1127
|
+
* to create a "_.pluck" or "_.where" style callback, respectively.
|
1128
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1129
|
+
* @returns {Array} Returns a new object with values of the results of each `callback` execution.
|
1130
|
+
* @example
|
1131
|
+
*
|
1132
|
+
* _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });
|
1133
|
+
* // => { 'a': 3, 'b': 6, 'c': 9 }
|
1134
|
+
*
|
1135
|
+
* var characters = {
|
1136
|
+
* 'fred': { 'name': 'fred', 'age': 40 },
|
1137
|
+
* 'pebbles': { 'name': 'pebbles', 'age': 1 }
|
1138
|
+
* };
|
1139
|
+
*
|
1140
|
+
* // using "_.pluck" callback shorthand
|
1141
|
+
* _.mapValues(characters, 'age');
|
1142
|
+
* // => { 'fred': 40, 'pebbles': 1 }
|
1143
|
+
*/
|
1144
|
+
function mapValues(object, callback, thisArg) {
|
1145
|
+
var result = {};
|
1146
|
+
callback = createCallback(callback, thisArg, 3);
|
1147
|
+
|
1148
|
+
forOwn(object, function(value, key, object) {
|
1149
|
+
result[key] = callback(value, key, object);
|
1150
|
+
});
|
1151
|
+
return result;
|
1152
|
+
}
|
1153
|
+
|
1154
|
+
module.exports = mapValues;
|
1155
|
+
|
1156
|
+
|
1157
|
+
/***/ },
|
1158
|
+
/* 12 */
|
1159
|
+
/***/ function(module, exports, __webpack_require__) {
|
1160
|
+
|
1161
|
+
/**
|
1162
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1163
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1164
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1165
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1166
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1167
|
+
* Available under MIT license <http://lodash.com/license>
|
1168
|
+
*/
|
1169
|
+
var baseCreateCallback = __webpack_require__(27),
|
1170
|
+
keys = __webpack_require__(13),
|
1171
|
+
objectTypes = __webpack_require__(28);
|
1172
|
+
|
1173
|
+
/**
|
1174
|
+
* Iterates over own enumerable properties of an object, executing the callback
|
1175
|
+
* for each property. The callback is bound to `thisArg` and invoked with three
|
1176
|
+
* arguments; (value, key, object). Callbacks may exit iteration early by
|
1177
|
+
* explicitly returning `false`.
|
1178
|
+
*
|
1179
|
+
* @static
|
1180
|
+
* @memberOf _
|
1181
|
+
* @type Function
|
1182
|
+
* @category Objects
|
1183
|
+
* @param {Object} object The object to iterate over.
|
1184
|
+
* @param {Function} [callback=identity] The function called per iteration.
|
1185
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1186
|
+
* @returns {Object} Returns `object`.
|
1187
|
+
* @example
|
1188
|
+
*
|
1189
|
+
* _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
|
1190
|
+
* console.log(key);
|
1191
|
+
* });
|
1192
|
+
* // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
|
1193
|
+
*/
|
1194
|
+
var forOwn = function(collection, callback, thisArg) {
|
1195
|
+
var index, iterable = collection, result = iterable;
|
1196
|
+
if (!iterable) return result;
|
1197
|
+
if (!objectTypes[typeof iterable]) return result;
|
1198
|
+
callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
|
1199
|
+
var ownIndex = -1,
|
1200
|
+
ownProps = objectTypes[typeof iterable] && keys(iterable),
|
1201
|
+
length = ownProps ? ownProps.length : 0;
|
1202
|
+
|
1203
|
+
while (++ownIndex < length) {
|
1204
|
+
index = ownProps[ownIndex];
|
1205
|
+
if (callback(iterable[index], index, collection) === false) return result;
|
1206
|
+
}
|
1207
|
+
return result
|
1208
|
+
};
|
1209
|
+
|
1210
|
+
module.exports = forOwn;
|
1211
|
+
|
1212
|
+
|
1213
|
+
/***/ },
|
1214
|
+
/* 13 */
|
1215
|
+
/***/ function(module, exports, __webpack_require__) {
|
1216
|
+
|
1217
|
+
/**
|
1218
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1219
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1220
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1221
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1222
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1223
|
+
* Available under MIT license <http://lodash.com/license>
|
1224
|
+
*/
|
1225
|
+
var isNative = __webpack_require__(29),
|
1226
|
+
isObject = __webpack_require__(22),
|
1227
|
+
shimKeys = __webpack_require__(30);
|
1228
|
+
|
1229
|
+
/* Native method shortcuts for methods with the same name as other `lodash` methods */
|
1230
|
+
var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;
|
1231
|
+
|
1232
|
+
/**
|
1233
|
+
* Creates an array composed of the own enumerable property names of an object.
|
1234
|
+
*
|
1235
|
+
* @static
|
1236
|
+
* @memberOf _
|
1237
|
+
* @category Objects
|
1238
|
+
* @param {Object} object The object to inspect.
|
1239
|
+
* @returns {Array} Returns an array of property names.
|
1240
|
+
* @example
|
1241
|
+
*
|
1242
|
+
* _.keys({ 'one': 1, 'two': 2, 'three': 3 });
|
1243
|
+
* // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
|
1244
|
+
*/
|
1245
|
+
var keys = !nativeKeys ? shimKeys : function(object) {
|
1246
|
+
if (!isObject(object)) {
|
1247
|
+
return [];
|
1248
|
+
}
|
1249
|
+
return nativeKeys(object);
|
1250
|
+
};
|
1251
|
+
|
1252
|
+
module.exports = keys;
|
1253
|
+
|
1254
|
+
|
1255
|
+
/***/ },
|
1256
|
+
/* 14 */
|
1257
|
+
/***/ function(module, exports, __webpack_require__) {
|
1258
|
+
|
1259
|
+
/**
|
1260
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1261
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1262
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1263
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1264
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1265
|
+
* Available under MIT license <http://lodash.com/license>
|
1266
|
+
*/
|
1267
|
+
var createCallback = __webpack_require__(39),
|
1268
|
+
forOwn = __webpack_require__(12);
|
1269
|
+
|
1270
|
+
/**
|
1271
|
+
* This method is like `_.findIndex` except that it returns the key of the
|
1272
|
+
* first element that passes the callback check, instead of the element itself.
|
1273
|
+
*
|
1274
|
+
* If a property name is provided for `callback` the created "_.pluck" style
|
1275
|
+
* callback will return the property value of the given element.
|
1276
|
+
*
|
1277
|
+
* If an object is provided for `callback` the created "_.where" style callback
|
1278
|
+
* will return `true` for elements that have the properties of the given object,
|
1279
|
+
* else `false`.
|
1280
|
+
*
|
1281
|
+
* @static
|
1282
|
+
* @memberOf _
|
1283
|
+
* @category Objects
|
1284
|
+
* @param {Object} object The object to search.
|
1285
|
+
* @param {Function|Object|string} [callback=identity] The function called per
|
1286
|
+
* iteration. If a property name or object is provided it will be used to
|
1287
|
+
* create a "_.pluck" or "_.where" style callback, respectively.
|
1288
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1289
|
+
* @returns {string|undefined} Returns the key of the found element, else `undefined`.
|
1290
|
+
* @example
|
1291
|
+
*
|
1292
|
+
* var characters = {
|
1293
|
+
* 'barney': { 'age': 36, 'blocked': false },
|
1294
|
+
* 'fred': { 'age': 40, 'blocked': true },
|
1295
|
+
* 'pebbles': { 'age': 1, 'blocked': false }
|
1296
|
+
* };
|
1297
|
+
*
|
1298
|
+
* _.findKey(characters, function(chr) {
|
1299
|
+
* return chr.age < 40;
|
1300
|
+
* });
|
1301
|
+
* // => 'barney' (property order is not guaranteed across environments)
|
1302
|
+
*
|
1303
|
+
* // using "_.where" callback shorthand
|
1304
|
+
* _.findKey(characters, { 'age': 1 });
|
1305
|
+
* // => 'pebbles'
|
1306
|
+
*
|
1307
|
+
* // using "_.pluck" callback shorthand
|
1308
|
+
* _.findKey(characters, 'blocked');
|
1309
|
+
* // => 'fred'
|
1310
|
+
*/
|
1311
|
+
function findKey(object, callback, thisArg) {
|
1312
|
+
var result;
|
1313
|
+
callback = createCallback(callback, thisArg, 3);
|
1314
|
+
forOwn(object, function(value, key, object) {
|
1315
|
+
if (callback(value, key, object)) {
|
1316
|
+
result = key;
|
1317
|
+
return false;
|
1318
|
+
}
|
1319
|
+
});
|
1320
|
+
return result;
|
1321
|
+
}
|
1322
|
+
|
1323
|
+
module.exports = findKey;
|
1324
|
+
|
1325
|
+
|
1326
|
+
/***/ },
|
1327
|
+
/* 15 */
|
1328
|
+
/***/ function(module, exports, __webpack_require__) {
|
1329
|
+
|
1330
|
+
/**
|
1331
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1332
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1333
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1334
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1335
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1336
|
+
* Available under MIT license <http://lodash.com/license>
|
1337
|
+
*/
|
1338
|
+
var baseIndexOf = __webpack_require__(31),
|
1339
|
+
cacheIndexOf = __webpack_require__(32),
|
1340
|
+
createCache = __webpack_require__(33),
|
1341
|
+
getArray = __webpack_require__(34),
|
1342
|
+
isArguments = __webpack_require__(23),
|
1343
|
+
isArray = __webpack_require__(24),
|
1344
|
+
largeArraySize = __webpack_require__(35),
|
1345
|
+
releaseArray = __webpack_require__(36),
|
1346
|
+
releaseObject = __webpack_require__(37);
|
1347
|
+
|
1348
|
+
/**
|
1349
|
+
* Creates an array of unique values present in all provided arrays using
|
1350
|
+
* strict equality for comparisons, i.e. `===`.
|
1351
|
+
*
|
1352
|
+
* @static
|
1353
|
+
* @memberOf _
|
1354
|
+
* @category Arrays
|
1355
|
+
* @param {...Array} [array] The arrays to inspect.
|
1356
|
+
* @returns {Array} Returns an array of shared values.
|
1357
|
+
* @example
|
1358
|
+
*
|
1359
|
+
* _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);
|
1360
|
+
* // => [1, 2]
|
1361
|
+
*/
|
1362
|
+
function intersection() {
|
1363
|
+
var args = [],
|
1364
|
+
argsIndex = -1,
|
1365
|
+
argsLength = arguments.length,
|
1366
|
+
caches = getArray(),
|
1367
|
+
indexOf = baseIndexOf,
|
1368
|
+
trustIndexOf = indexOf === baseIndexOf,
|
1369
|
+
seen = getArray();
|
1370
|
+
|
1371
|
+
while (++argsIndex < argsLength) {
|
1372
|
+
var value = arguments[argsIndex];
|
1373
|
+
if (isArray(value) || isArguments(value)) {
|
1374
|
+
args.push(value);
|
1375
|
+
caches.push(trustIndexOf && value.length >= largeArraySize &&
|
1376
|
+
createCache(argsIndex ? args[argsIndex] : seen));
|
1377
|
+
}
|
1378
|
+
}
|
1379
|
+
var array = args[0],
|
1380
|
+
index = -1,
|
1381
|
+
length = array ? array.length : 0,
|
1382
|
+
result = [];
|
1383
|
+
|
1384
|
+
outer:
|
1385
|
+
while (++index < length) {
|
1386
|
+
var cache = caches[0];
|
1387
|
+
value = array[index];
|
1388
|
+
|
1389
|
+
if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {
|
1390
|
+
argsIndex = argsLength;
|
1391
|
+
(cache || seen).push(value);
|
1392
|
+
while (--argsIndex) {
|
1393
|
+
cache = caches[argsIndex];
|
1394
|
+
if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {
|
1395
|
+
continue outer;
|
1396
|
+
}
|
1397
|
+
}
|
1398
|
+
result.push(value);
|
1399
|
+
}
|
1400
|
+
}
|
1401
|
+
while (argsLength--) {
|
1402
|
+
cache = caches[argsLength];
|
1403
|
+
if (cache) {
|
1404
|
+
releaseObject(cache);
|
1405
|
+
}
|
1406
|
+
}
|
1407
|
+
releaseArray(caches);
|
1408
|
+
releaseArray(seen);
|
1409
|
+
return result;
|
1410
|
+
}
|
1411
|
+
|
1412
|
+
module.exports = intersection;
|
1413
|
+
|
1414
|
+
|
1415
|
+
/***/ },
|
1416
|
+
/* 16 */
|
1417
|
+
/***/ function(module, exports, __webpack_require__) {
|
1418
|
+
|
1419
|
+
/**
|
1420
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1421
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1422
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1423
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1424
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1425
|
+
* Available under MIT license <http://lodash.com/license>
|
1426
|
+
*/
|
1427
|
+
var baseUniq = __webpack_require__(38),
|
1428
|
+
createCallback = __webpack_require__(39);
|
1429
|
+
|
1430
|
+
/**
|
1431
|
+
* Creates a duplicate-value-free version of an array using strict equality
|
1432
|
+
* for comparisons, i.e. `===`. If the array is sorted, providing
|
1433
|
+
* `true` for `isSorted` will use a faster algorithm. If a callback is provided
|
1434
|
+
* each element of `array` is passed through the callback before uniqueness
|
1435
|
+
* is computed. The callback is bound to `thisArg` and invoked with three
|
1436
|
+
* arguments; (value, index, array).
|
1437
|
+
*
|
1438
|
+
* If a property name is provided for `callback` the created "_.pluck" style
|
1439
|
+
* callback will return the property value of the given element.
|
1440
|
+
*
|
1441
|
+
* If an object is provided for `callback` the created "_.where" style callback
|
1442
|
+
* will return `true` for elements that have the properties of the given object,
|
1443
|
+
* else `false`.
|
1444
|
+
*
|
1445
|
+
* @static
|
1446
|
+
* @memberOf _
|
1447
|
+
* @alias unique
|
1448
|
+
* @category Arrays
|
1449
|
+
* @param {Array} array The array to process.
|
1450
|
+
* @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
|
1451
|
+
* @param {Function|Object|string} [callback=identity] The function called
|
1452
|
+
* per iteration. If a property name or object is provided it will be used
|
1453
|
+
* to create a "_.pluck" or "_.where" style callback, respectively.
|
1454
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1455
|
+
* @returns {Array} Returns a duplicate-value-free array.
|
1456
|
+
* @example
|
1457
|
+
*
|
1458
|
+
* _.uniq([1, 2, 1, 3, 1]);
|
1459
|
+
* // => [1, 2, 3]
|
1460
|
+
*
|
1461
|
+
* _.uniq([1, 1, 2, 2, 3], true);
|
1462
|
+
* // => [1, 2, 3]
|
1463
|
+
*
|
1464
|
+
* _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });
|
1465
|
+
* // => ['A', 'b', 'C']
|
1466
|
+
*
|
1467
|
+
* _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);
|
1468
|
+
* // => [1, 2.5, 3]
|
1469
|
+
*
|
1470
|
+
* // using "_.pluck" callback shorthand
|
1471
|
+
* _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
|
1472
|
+
* // => [{ 'x': 1 }, { 'x': 2 }]
|
1473
|
+
*/
|
1474
|
+
function uniq(array, isSorted, callback, thisArg) {
|
1475
|
+
// juggle arguments
|
1476
|
+
if (typeof isSorted != 'boolean' && isSorted != null) {
|
1477
|
+
thisArg = callback;
|
1478
|
+
callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;
|
1479
|
+
isSorted = false;
|
1480
|
+
}
|
1481
|
+
if (callback != null) {
|
1482
|
+
callback = createCallback(callback, thisArg, 3);
|
1483
|
+
}
|
1484
|
+
return baseUniq(array, isSorted, callback);
|
1485
|
+
}
|
1486
|
+
|
1487
|
+
module.exports = uniq;
|
1488
|
+
|
1489
|
+
|
1490
|
+
/***/ },
|
1491
|
+
/* 17 */
|
1492
|
+
/***/ function(module, exports, __webpack_require__) {
|
1493
|
+
|
1494
|
+
/**
|
1495
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1496
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1497
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1498
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1499
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1500
|
+
* Available under MIT license <http://lodash.com/license>
|
1501
|
+
*/
|
1502
|
+
var createCallback = __webpack_require__(39),
|
1503
|
+
forOwn = __webpack_require__(12);
|
1504
|
+
|
1505
|
+
/**
|
1506
|
+
* Creates an array of values by running each element in the collection
|
1507
|
+
* through the callback. The callback is bound to `thisArg` and invoked with
|
1508
|
+
* three arguments; (value, index|key, collection).
|
1509
|
+
*
|
1510
|
+
* If a property name is provided for `callback` the created "_.pluck" style
|
1511
|
+
* callback will return the property value of the given element.
|
1512
|
+
*
|
1513
|
+
* If an object is provided for `callback` the created "_.where" style callback
|
1514
|
+
* will return `true` for elements that have the properties of the given object,
|
1515
|
+
* else `false`.
|
1516
|
+
*
|
1517
|
+
* @static
|
1518
|
+
* @memberOf _
|
1519
|
+
* @alias collect
|
1520
|
+
* @category Collections
|
1521
|
+
* @param {Array|Object|string} collection The collection to iterate over.
|
1522
|
+
* @param {Function|Object|string} [callback=identity] The function called
|
1523
|
+
* per iteration. If a property name or object is provided it will be used
|
1524
|
+
* to create a "_.pluck" or "_.where" style callback, respectively.
|
1525
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1526
|
+
* @returns {Array} Returns a new array of the results of each `callback` execution.
|
1527
|
+
* @example
|
1528
|
+
*
|
1529
|
+
* _.map([1, 2, 3], function(num) { return num * 3; });
|
1530
|
+
* // => [3, 6, 9]
|
1531
|
+
*
|
1532
|
+
* _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
|
1533
|
+
* // => [3, 6, 9] (property order is not guaranteed across environments)
|
1534
|
+
*
|
1535
|
+
* var characters = [
|
1536
|
+
* { 'name': 'barney', 'age': 36 },
|
1537
|
+
* { 'name': 'fred', 'age': 40 }
|
1538
|
+
* ];
|
1539
|
+
*
|
1540
|
+
* // using "_.pluck" callback shorthand
|
1541
|
+
* _.map(characters, 'name');
|
1542
|
+
* // => ['barney', 'fred']
|
1543
|
+
*/
|
1544
|
+
function map(collection, callback, thisArg) {
|
1545
|
+
var index = -1,
|
1546
|
+
length = collection ? collection.length : 0;
|
1547
|
+
|
1548
|
+
callback = createCallback(callback, thisArg, 3);
|
1549
|
+
if (typeof length == 'number') {
|
1550
|
+
var result = Array(length);
|
1551
|
+
while (++index < length) {
|
1552
|
+
result[index] = callback(collection[index], index, collection);
|
1553
|
+
}
|
1554
|
+
} else {
|
1555
|
+
result = [];
|
1556
|
+
forOwn(collection, function(value, key, collection) {
|
1557
|
+
result[++index] = callback(value, key, collection);
|
1558
|
+
});
|
1559
|
+
}
|
1560
|
+
return result;
|
1561
|
+
}
|
1562
|
+
|
1563
|
+
module.exports = map;
|
1564
|
+
|
1565
|
+
|
1566
|
+
/***/ },
|
1567
|
+
/* 18 */
|
1568
|
+
/***/ function(module, exports, __webpack_require__) {
|
1569
|
+
|
1570
|
+
/**
|
1571
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1572
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1573
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1574
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1575
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1576
|
+
* Available under MIT license <http://lodash.com/license>
|
1577
|
+
*/
|
1578
|
+
var baseCreateCallback = __webpack_require__(27),
|
1579
|
+
forOwn = __webpack_require__(12);
|
1580
|
+
|
1581
|
+
/**
|
1582
|
+
* Iterates over elements of a collection, executing the callback for each
|
1583
|
+
* element. The callback is bound to `thisArg` and invoked with three arguments;
|
1584
|
+
* (value, index|key, collection). Callbacks may exit iteration early by
|
1585
|
+
* explicitly returning `false`.
|
1586
|
+
*
|
1587
|
+
* Note: As with other "Collections" methods, objects with a `length` property
|
1588
|
+
* are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
|
1589
|
+
* may be used for object iteration.
|
1590
|
+
*
|
1591
|
+
* @static
|
1592
|
+
* @memberOf _
|
1593
|
+
* @alias each
|
1594
|
+
* @category Collections
|
1595
|
+
* @param {Array|Object|string} collection The collection to iterate over.
|
1596
|
+
* @param {Function} [callback=identity] The function called per iteration.
|
1597
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
1598
|
+
* @returns {Array|Object|string} Returns `collection`.
|
1599
|
+
* @example
|
1600
|
+
*
|
1601
|
+
* _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
|
1602
|
+
* // => logs each number and returns '1,2,3'
|
1603
|
+
*
|
1604
|
+
* _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
|
1605
|
+
* // => logs each number and returns the object (property order is not guaranteed across environments)
|
1606
|
+
*/
|
1607
|
+
function forEach(collection, callback, thisArg) {
|
1608
|
+
var index = -1,
|
1609
|
+
length = collection ? collection.length : 0;
|
1610
|
+
|
1611
|
+
callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
|
1612
|
+
if (typeof length == 'number') {
|
1613
|
+
while (++index < length) {
|
1614
|
+
if (callback(collection[index], index, collection) === false) {
|
1615
|
+
break;
|
1616
|
+
}
|
1617
|
+
}
|
1618
|
+
} else {
|
1619
|
+
forOwn(collection, callback);
|
1620
|
+
}
|
1621
|
+
return collection;
|
1622
|
+
}
|
1623
|
+
|
1624
|
+
module.exports = forEach;
|
1625
|
+
|
1626
|
+
|
1627
|
+
/***/ },
|
1628
|
+
/* 19 */
|
1629
|
+
/***/ function(module, exports, __webpack_require__) {
|
1630
|
+
|
1631
|
+
/**
|
1632
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1633
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1634
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1635
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1636
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1637
|
+
* Available under MIT license <http://lodash.com/license>
|
1638
|
+
*/
|
1639
|
+
var keys = __webpack_require__(13);
|
1640
|
+
|
1641
|
+
/**
|
1642
|
+
* Gets the size of the `collection` by returning `collection.length` for arrays
|
1643
|
+
* and array-like objects or the number of own enumerable properties for objects.
|
1644
|
+
*
|
1645
|
+
* @static
|
1646
|
+
* @memberOf _
|
1647
|
+
* @category Collections
|
1648
|
+
* @param {Array|Object|string} collection The collection to inspect.
|
1649
|
+
* @returns {number} Returns `collection.length` or number of own enumerable properties.
|
1650
|
+
* @example
|
1651
|
+
*
|
1652
|
+
* _.size([1, 2]);
|
1653
|
+
* // => 2
|
1654
|
+
*
|
1655
|
+
* _.size({ 'one': 1, 'two': 2, 'three': 3 });
|
1656
|
+
* // => 3
|
1657
|
+
*
|
1658
|
+
* _.size('pebbles');
|
1659
|
+
* // => 7
|
1660
|
+
*/
|
1661
|
+
function size(collection) {
|
1662
|
+
var length = collection ? collection.length : 0;
|
1663
|
+
return typeof length == 'number' ? length : keys(collection).length;
|
1664
|
+
}
|
1665
|
+
|
1666
|
+
module.exports = size;
|
1667
|
+
|
1668
|
+
|
1669
|
+
/***/ },
|
1670
|
+
/* 20 */
|
1671
|
+
/***/ function(module, exports, __webpack_require__) {
|
1672
|
+
|
1673
|
+
// Copyright Joyent, Inc. and other Node contributors.
|
1674
|
+
//
|
1675
|
+
// Permission is hereby granted, free of charge, to any person obtaining a
|
1676
|
+
// copy of this software and associated documentation files (the
|
1677
|
+
// "Software"), to deal in the Software without restriction, including
|
1678
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
1679
|
+
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
1680
|
+
// persons to whom the Software is furnished to do so, subject to the
|
1681
|
+
// following conditions:
|
1682
|
+
//
|
1683
|
+
// The above copyright notice and this permission notice shall be included
|
1684
|
+
// in all copies or substantial portions of the Software.
|
1685
|
+
//
|
1686
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
1687
|
+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
1688
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
1689
|
+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
1690
|
+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
1691
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
1692
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
1693
|
+
|
1694
|
+
function EventEmitter() {
|
1695
|
+
this._events = this._events || {};
|
1696
|
+
this._maxListeners = this._maxListeners || undefined;
|
1697
|
+
}
|
1698
|
+
module.exports = EventEmitter;
|
1699
|
+
|
1700
|
+
// Backwards-compat with node 0.10.x
|
1701
|
+
EventEmitter.EventEmitter = EventEmitter;
|
1702
|
+
|
1703
|
+
EventEmitter.prototype._events = undefined;
|
1704
|
+
EventEmitter.prototype._maxListeners = undefined;
|
1705
|
+
|
1706
|
+
// By default EventEmitters will print a warning if more than 10 listeners are
|
1707
|
+
// added to it. This is a useful default which helps finding memory leaks.
|
1708
|
+
EventEmitter.defaultMaxListeners = 10;
|
1709
|
+
|
1710
|
+
// Obviously not all Emitters should be limited to 10. This function allows
|
1711
|
+
// that to be increased. Set to zero for unlimited.
|
1712
|
+
EventEmitter.prototype.setMaxListeners = function(n) {
|
1713
|
+
if (!isNumber(n) || n < 0 || isNaN(n))
|
1714
|
+
throw TypeError('n must be a positive number');
|
1715
|
+
this._maxListeners = n;
|
1716
|
+
return this;
|
1717
|
+
};
|
1718
|
+
|
1719
|
+
EventEmitter.prototype.emit = function(type) {
|
1720
|
+
var er, handler, len, args, i, listeners;
|
1721
|
+
|
1722
|
+
if (!this._events)
|
1723
|
+
this._events = {};
|
1724
|
+
|
1725
|
+
// If there is no 'error' event listener then throw.
|
1726
|
+
if (type === 'error') {
|
1727
|
+
if (!this._events.error ||
|
1728
|
+
(isObject(this._events.error) && !this._events.error.length)) {
|
1729
|
+
er = arguments[1];
|
1730
|
+
if (er instanceof Error) {
|
1731
|
+
throw er; // Unhandled 'error' event
|
1732
|
+
} else {
|
1733
|
+
throw TypeError('Uncaught, unspecified "error" event.');
|
1734
|
+
}
|
1735
|
+
return false;
|
1736
|
+
}
|
1737
|
+
}
|
1738
|
+
|
1739
|
+
handler = this._events[type];
|
1740
|
+
|
1741
|
+
if (isUndefined(handler))
|
1742
|
+
return false;
|
1743
|
+
|
1744
|
+
if (isFunction(handler)) {
|
1745
|
+
switch (arguments.length) {
|
1746
|
+
// fast cases
|
1747
|
+
case 1:
|
1748
|
+
handler.call(this);
|
1749
|
+
break;
|
1750
|
+
case 2:
|
1751
|
+
handler.call(this, arguments[1]);
|
1752
|
+
break;
|
1753
|
+
case 3:
|
1754
|
+
handler.call(this, arguments[1], arguments[2]);
|
1755
|
+
break;
|
1756
|
+
// slower
|
1757
|
+
default:
|
1758
|
+
len = arguments.length;
|
1759
|
+
args = new Array(len - 1);
|
1760
|
+
for (i = 1; i < len; i++)
|
1761
|
+
args[i - 1] = arguments[i];
|
1762
|
+
handler.apply(this, args);
|
1763
|
+
}
|
1764
|
+
} else if (isObject(handler)) {
|
1765
|
+
len = arguments.length;
|
1766
|
+
args = new Array(len - 1);
|
1767
|
+
for (i = 1; i < len; i++)
|
1768
|
+
args[i - 1] = arguments[i];
|
1769
|
+
|
1770
|
+
listeners = handler.slice();
|
1771
|
+
len = listeners.length;
|
1772
|
+
for (i = 0; i < len; i++)
|
1773
|
+
listeners[i].apply(this, args);
|
1774
|
+
}
|
1775
|
+
|
1776
|
+
return true;
|
1777
|
+
};
|
1778
|
+
|
1779
|
+
EventEmitter.prototype.addListener = function(type, listener) {
|
1780
|
+
var m;
|
1781
|
+
|
1782
|
+
if (!isFunction(listener))
|
1783
|
+
throw TypeError('listener must be a function');
|
1784
|
+
|
1785
|
+
if (!this._events)
|
1786
|
+
this._events = {};
|
1787
|
+
|
1788
|
+
// To avoid recursion in the case that type === "newListener"! Before
|
1789
|
+
// adding it to the listeners, first emit "newListener".
|
1790
|
+
if (this._events.newListener)
|
1791
|
+
this.emit('newListener', type,
|
1792
|
+
isFunction(listener.listener) ?
|
1793
|
+
listener.listener : listener);
|
1794
|
+
|
1795
|
+
if (!this._events[type])
|
1796
|
+
// Optimize the case of one listener. Don't need the extra array object.
|
1797
|
+
this._events[type] = listener;
|
1798
|
+
else if (isObject(this._events[type]))
|
1799
|
+
// If we've already got an array, just append.
|
1800
|
+
this._events[type].push(listener);
|
1801
|
+
else
|
1802
|
+
// Adding the second element, need to change to array.
|
1803
|
+
this._events[type] = [this._events[type], listener];
|
1804
|
+
|
1805
|
+
// Check for listener leak
|
1806
|
+
if (isObject(this._events[type]) && !this._events[type].warned) {
|
1807
|
+
var m;
|
1808
|
+
if (!isUndefined(this._maxListeners)) {
|
1809
|
+
m = this._maxListeners;
|
1810
|
+
} else {
|
1811
|
+
m = EventEmitter.defaultMaxListeners;
|
1812
|
+
}
|
1813
|
+
|
1814
|
+
if (m && m > 0 && this._events[type].length > m) {
|
1815
|
+
this._events[type].warned = true;
|
1816
|
+
console.error('(node) warning: possible EventEmitter memory ' +
|
1817
|
+
'leak detected. %d listeners added. ' +
|
1818
|
+
'Use emitter.setMaxListeners() to increase limit.',
|
1819
|
+
this._events[type].length);
|
1820
|
+
if (typeof console.trace === 'function') {
|
1821
|
+
// not supported in IE 10
|
1822
|
+
console.trace();
|
1823
|
+
}
|
1824
|
+
}
|
1825
|
+
}
|
1826
|
+
|
1827
|
+
return this;
|
1828
|
+
};
|
1829
|
+
|
1830
|
+
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
|
1831
|
+
|
1832
|
+
EventEmitter.prototype.once = function(type, listener) {
|
1833
|
+
if (!isFunction(listener))
|
1834
|
+
throw TypeError('listener must be a function');
|
1835
|
+
|
1836
|
+
var fired = false;
|
1837
|
+
|
1838
|
+
function g() {
|
1839
|
+
this.removeListener(type, g);
|
1840
|
+
|
1841
|
+
if (!fired) {
|
1842
|
+
fired = true;
|
1843
|
+
listener.apply(this, arguments);
|
1844
|
+
}
|
1845
|
+
}
|
1846
|
+
|
1847
|
+
g.listener = listener;
|
1848
|
+
this.on(type, g);
|
1849
|
+
|
1850
|
+
return this;
|
1851
|
+
};
|
1852
|
+
|
1853
|
+
// emits a 'removeListener' event iff the listener was removed
|
1854
|
+
EventEmitter.prototype.removeListener = function(type, listener) {
|
1855
|
+
var list, position, length, i;
|
1856
|
+
|
1857
|
+
if (!isFunction(listener))
|
1858
|
+
throw TypeError('listener must be a function');
|
1859
|
+
|
1860
|
+
if (!this._events || !this._events[type])
|
1861
|
+
return this;
|
1862
|
+
|
1863
|
+
list = this._events[type];
|
1864
|
+
length = list.length;
|
1865
|
+
position = -1;
|
1866
|
+
|
1867
|
+
if (list === listener ||
|
1868
|
+
(isFunction(list.listener) && list.listener === listener)) {
|
1869
|
+
delete this._events[type];
|
1870
|
+
if (this._events.removeListener)
|
1871
|
+
this.emit('removeListener', type, listener);
|
1872
|
+
|
1873
|
+
} else if (isObject(list)) {
|
1874
|
+
for (i = length; i-- > 0;) {
|
1875
|
+
if (list[i] === listener ||
|
1876
|
+
(list[i].listener && list[i].listener === listener)) {
|
1877
|
+
position = i;
|
1878
|
+
break;
|
1879
|
+
}
|
1880
|
+
}
|
1881
|
+
|
1882
|
+
if (position < 0)
|
1883
|
+
return this;
|
1884
|
+
|
1885
|
+
if (list.length === 1) {
|
1886
|
+
list.length = 0;
|
1887
|
+
delete this._events[type];
|
1888
|
+
} else {
|
1889
|
+
list.splice(position, 1);
|
1890
|
+
}
|
1891
|
+
|
1892
|
+
if (this._events.removeListener)
|
1893
|
+
this.emit('removeListener', type, listener);
|
1894
|
+
}
|
1895
|
+
|
1896
|
+
return this;
|
1897
|
+
};
|
1898
|
+
|
1899
|
+
EventEmitter.prototype.removeAllListeners = function(type) {
|
1900
|
+
var key, listeners;
|
1901
|
+
|
1902
|
+
if (!this._events)
|
1903
|
+
return this;
|
1904
|
+
|
1905
|
+
// not listening for removeListener, no need to emit
|
1906
|
+
if (!this._events.removeListener) {
|
1907
|
+
if (arguments.length === 0)
|
1908
|
+
this._events = {};
|
1909
|
+
else if (this._events[type])
|
1910
|
+
delete this._events[type];
|
1911
|
+
return this;
|
1912
|
+
}
|
1913
|
+
|
1914
|
+
// emit removeListener for all listeners on all events
|
1915
|
+
if (arguments.length === 0) {
|
1916
|
+
for (key in this._events) {
|
1917
|
+
if (key === 'removeListener') continue;
|
1918
|
+
this.removeAllListeners(key);
|
1919
|
+
}
|
1920
|
+
this.removeAllListeners('removeListener');
|
1921
|
+
this._events = {};
|
1922
|
+
return this;
|
1923
|
+
}
|
1924
|
+
|
1925
|
+
listeners = this._events[type];
|
1926
|
+
|
1927
|
+
if (isFunction(listeners)) {
|
1928
|
+
this.removeListener(type, listeners);
|
1929
|
+
} else {
|
1930
|
+
// LIFO order
|
1931
|
+
while (listeners.length)
|
1932
|
+
this.removeListener(type, listeners[listeners.length - 1]);
|
1933
|
+
}
|
1934
|
+
delete this._events[type];
|
1935
|
+
|
1936
|
+
return this;
|
1937
|
+
};
|
1938
|
+
|
1939
|
+
EventEmitter.prototype.listeners = function(type) {
|
1940
|
+
var ret;
|
1941
|
+
if (!this._events || !this._events[type])
|
1942
|
+
ret = [];
|
1943
|
+
else if (isFunction(this._events[type]))
|
1944
|
+
ret = [this._events[type]];
|
1945
|
+
else
|
1946
|
+
ret = this._events[type].slice();
|
1947
|
+
return ret;
|
1948
|
+
};
|
1949
|
+
|
1950
|
+
EventEmitter.listenerCount = function(emitter, type) {
|
1951
|
+
var ret;
|
1952
|
+
if (!emitter._events || !emitter._events[type])
|
1953
|
+
ret = 0;
|
1954
|
+
else if (isFunction(emitter._events[type]))
|
1955
|
+
ret = 1;
|
1956
|
+
else
|
1957
|
+
ret = emitter._events[type].length;
|
1958
|
+
return ret;
|
1959
|
+
};
|
1960
|
+
|
1961
|
+
function isFunction(arg) {
|
1962
|
+
return typeof arg === 'function';
|
1963
|
+
}
|
1964
|
+
|
1965
|
+
function isNumber(arg) {
|
1966
|
+
return typeof arg === 'number';
|
1967
|
+
}
|
1968
|
+
|
1969
|
+
function isObject(arg) {
|
1970
|
+
return typeof arg === 'object' && arg !== null;
|
1971
|
+
}
|
1972
|
+
|
1973
|
+
function isUndefined(arg) {
|
1974
|
+
return arg === void 0;
|
1975
|
+
}
|
1976
|
+
|
1977
|
+
|
1978
|
+
/***/ },
|
1979
|
+
/* 21 */
|
1980
|
+
/***/ function(module, exports, __webpack_require__) {
|
1981
|
+
|
1982
|
+
module.exports = function isBuffer(arg) {
|
1983
|
+
return arg && typeof arg === 'object'
|
1984
|
+
&& typeof arg.copy === 'function'
|
1985
|
+
&& typeof arg.fill === 'function'
|
1986
|
+
&& typeof arg.readUInt8 === 'function';
|
1987
|
+
}
|
1988
|
+
|
1989
|
+
/***/ },
|
1990
|
+
/* 22 */
|
1991
|
+
/***/ function(module, exports, __webpack_require__) {
|
1992
|
+
|
1993
|
+
/**
|
1994
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
1995
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
1996
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
1997
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
1998
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
1999
|
+
* Available under MIT license <http://lodash.com/license>
|
2000
|
+
*/
|
2001
|
+
var objectTypes = __webpack_require__(28);
|
2002
|
+
|
2003
|
+
/**
|
2004
|
+
* Checks if `value` is the language type of Object.
|
2005
|
+
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
|
2006
|
+
*
|
2007
|
+
* @static
|
2008
|
+
* @memberOf _
|
2009
|
+
* @category Objects
|
2010
|
+
* @param {*} value The value to check.
|
2011
|
+
* @returns {boolean} Returns `true` if the `value` is an object, else `false`.
|
2012
|
+
* @example
|
2013
|
+
*
|
2014
|
+
* _.isObject({});
|
2015
|
+
* // => true
|
2016
|
+
*
|
2017
|
+
* _.isObject([1, 2, 3]);
|
2018
|
+
* // => true
|
2019
|
+
*
|
2020
|
+
* _.isObject(1);
|
2021
|
+
* // => false
|
2022
|
+
*/
|
2023
|
+
function isObject(value) {
|
2024
|
+
// check if the value is the ECMAScript language type of Object
|
2025
|
+
// http://es5.github.io/#x8
|
2026
|
+
// and avoid a V8 bug
|
2027
|
+
// http://code.google.com/p/v8/issues/detail?id=2291
|
2028
|
+
return !!(value && objectTypes[typeof value]);
|
2029
|
+
}
|
2030
|
+
|
2031
|
+
module.exports = isObject;
|
2032
|
+
|
2033
|
+
|
2034
|
+
/***/ },
|
2035
|
+
/* 23 */
|
2036
|
+
/***/ function(module, exports, __webpack_require__) {
|
2037
|
+
|
2038
|
+
/**
|
2039
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2040
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2041
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2042
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2043
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2044
|
+
* Available under MIT license <http://lodash.com/license>
|
2045
|
+
*/
|
2046
|
+
|
2047
|
+
/** `Object#toString` result shortcuts */
|
2048
|
+
var argsClass = '[object Arguments]';
|
2049
|
+
|
2050
|
+
/** Used for native method references */
|
2051
|
+
var objectProto = Object.prototype;
|
2052
|
+
|
2053
|
+
/** Used to resolve the internal [[Class]] of values */
|
2054
|
+
var toString = objectProto.toString;
|
2055
|
+
|
2056
|
+
/**
|
2057
|
+
* Checks if `value` is an `arguments` object.
|
2058
|
+
*
|
2059
|
+
* @static
|
2060
|
+
* @memberOf _
|
2061
|
+
* @category Objects
|
2062
|
+
* @param {*} value The value to check.
|
2063
|
+
* @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.
|
2064
|
+
* @example
|
2065
|
+
*
|
2066
|
+
* (function() { return _.isArguments(arguments); })(1, 2, 3);
|
2067
|
+
* // => true
|
2068
|
+
*
|
2069
|
+
* _.isArguments([1, 2, 3]);
|
2070
|
+
* // => false
|
2071
|
+
*/
|
2072
|
+
function isArguments(value) {
|
2073
|
+
return value && typeof value == 'object' && typeof value.length == 'number' &&
|
2074
|
+
toString.call(value) == argsClass || false;
|
2075
|
+
}
|
2076
|
+
|
2077
|
+
module.exports = isArguments;
|
2078
|
+
|
2079
|
+
|
2080
|
+
/***/ },
|
2081
|
+
/* 24 */
|
2082
|
+
/***/ function(module, exports, __webpack_require__) {
|
2083
|
+
|
2084
|
+
/**
|
2085
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2086
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2087
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2088
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2089
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2090
|
+
* Available under MIT license <http://lodash.com/license>
|
2091
|
+
*/
|
2092
|
+
var isNative = __webpack_require__(29);
|
2093
|
+
|
2094
|
+
/** `Object#toString` result shortcuts */
|
2095
|
+
var arrayClass = '[object Array]';
|
2096
|
+
|
2097
|
+
/** Used for native method references */
|
2098
|
+
var objectProto = Object.prototype;
|
2099
|
+
|
2100
|
+
/** Used to resolve the internal [[Class]] of values */
|
2101
|
+
var toString = objectProto.toString;
|
2102
|
+
|
2103
|
+
/* Native method shortcuts for methods with the same name as other `lodash` methods */
|
2104
|
+
var nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;
|
2105
|
+
|
2106
|
+
/**
|
2107
|
+
* Checks if `value` is an array.
|
2108
|
+
*
|
2109
|
+
* @static
|
2110
|
+
* @memberOf _
|
2111
|
+
* @type Function
|
2112
|
+
* @category Objects
|
2113
|
+
* @param {*} value The value to check.
|
2114
|
+
* @returns {boolean} Returns `true` if the `value` is an array, else `false`.
|
2115
|
+
* @example
|
2116
|
+
*
|
2117
|
+
* (function() { return _.isArray(arguments); })();
|
2118
|
+
* // => false
|
2119
|
+
*
|
2120
|
+
* _.isArray([1, 2, 3]);
|
2121
|
+
* // => true
|
2122
|
+
*/
|
2123
|
+
var isArray = nativeIsArray || function(value) {
|
2124
|
+
return value && typeof value == 'object' && typeof value.length == 'number' &&
|
2125
|
+
toString.call(value) == arrayClass || false;
|
2126
|
+
};
|
2127
|
+
|
2128
|
+
module.exports = isArray;
|
2129
|
+
|
2130
|
+
|
2131
|
+
/***/ },
|
2132
|
+
/* 25 */
|
2133
|
+
/***/ function(module, exports, __webpack_require__) {
|
2134
|
+
|
2135
|
+
// shim for using process in browser
|
2136
|
+
|
2137
|
+
var process = module.exports = {};
|
2138
|
+
|
2139
|
+
process.nextTick = (function () {
|
2140
|
+
var canSetImmediate = typeof window !== 'undefined'
|
2141
|
+
&& window.setImmediate;
|
2142
|
+
var canPost = typeof window !== 'undefined'
|
2143
|
+
&& window.postMessage && window.addEventListener
|
2144
|
+
;
|
2145
|
+
|
2146
|
+
if (canSetImmediate) {
|
2147
|
+
return function (f) { return window.setImmediate(f) };
|
2148
|
+
}
|
2149
|
+
|
2150
|
+
if (canPost) {
|
2151
|
+
var queue = [];
|
2152
|
+
window.addEventListener('message', function (ev) {
|
2153
|
+
var source = ev.source;
|
2154
|
+
if ((source === window || source === null) && ev.data === 'process-tick') {
|
2155
|
+
ev.stopPropagation();
|
2156
|
+
if (queue.length > 0) {
|
2157
|
+
var fn = queue.shift();
|
2158
|
+
fn();
|
2159
|
+
}
|
2160
|
+
}
|
2161
|
+
}, true);
|
2162
|
+
|
2163
|
+
return function nextTick(fn) {
|
2164
|
+
queue.push(fn);
|
2165
|
+
window.postMessage('process-tick', '*');
|
2166
|
+
};
|
2167
|
+
}
|
2168
|
+
|
2169
|
+
return function nextTick(fn) {
|
2170
|
+
setTimeout(fn, 0);
|
2171
|
+
};
|
2172
|
+
})();
|
2173
|
+
|
2174
|
+
process.title = 'browser';
|
2175
|
+
process.browser = true;
|
2176
|
+
process.env = {};
|
2177
|
+
process.argv = [];
|
2178
|
+
|
2179
|
+
function noop() {}
|
2180
|
+
|
2181
|
+
process.on = noop;
|
2182
|
+
process.once = noop;
|
2183
|
+
process.off = noop;
|
2184
|
+
process.emit = noop;
|
2185
|
+
|
2186
|
+
process.binding = function (name) {
|
2187
|
+
throw new Error('process.binding is not supported');
|
2188
|
+
}
|
2189
|
+
|
2190
|
+
// TODO(shtylman)
|
2191
|
+
process.cwd = function () { return '/' };
|
2192
|
+
process.chdir = function (dir) {
|
2193
|
+
throw new Error('process.chdir is not supported');
|
2194
|
+
};
|
2195
|
+
|
2196
|
+
|
2197
|
+
/***/ },
|
2198
|
+
/* 26 */
|
2199
|
+
/***/ function(module, exports, __webpack_require__) {
|
2200
|
+
|
2201
|
+
/**
|
2202
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2203
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2204
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2205
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2206
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2207
|
+
* Available under MIT license <http://lodash.com/license>
|
2208
|
+
*/
|
2209
|
+
var assign = __webpack_require__(41),
|
2210
|
+
forEach = __webpack_require__(18),
|
2211
|
+
forOwn = __webpack_require__(12),
|
2212
|
+
getArray = __webpack_require__(34),
|
2213
|
+
isArray = __webpack_require__(24),
|
2214
|
+
isObject = __webpack_require__(22),
|
2215
|
+
releaseArray = __webpack_require__(36),
|
2216
|
+
slice = __webpack_require__(42);
|
2217
|
+
|
2218
|
+
/** Used to match regexp flags from their coerced string values */
|
2219
|
+
var reFlags = /\w*$/;
|
2220
|
+
|
2221
|
+
/** `Object#toString` result shortcuts */
|
2222
|
+
var argsClass = '[object Arguments]',
|
2223
|
+
arrayClass = '[object Array]',
|
2224
|
+
boolClass = '[object Boolean]',
|
2225
|
+
dateClass = '[object Date]',
|
2226
|
+
funcClass = '[object Function]',
|
2227
|
+
numberClass = '[object Number]',
|
2228
|
+
objectClass = '[object Object]',
|
2229
|
+
regexpClass = '[object RegExp]',
|
2230
|
+
stringClass = '[object String]';
|
2231
|
+
|
2232
|
+
/** Used to identify object classifications that `_.clone` supports */
|
2233
|
+
var cloneableClasses = {};
|
2234
|
+
cloneableClasses[funcClass] = false;
|
2235
|
+
cloneableClasses[argsClass] = cloneableClasses[arrayClass] =
|
2236
|
+
cloneableClasses[boolClass] = cloneableClasses[dateClass] =
|
2237
|
+
cloneableClasses[numberClass] = cloneableClasses[objectClass] =
|
2238
|
+
cloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;
|
2239
|
+
|
2240
|
+
/** Used for native method references */
|
2241
|
+
var objectProto = Object.prototype;
|
2242
|
+
|
2243
|
+
/** Used to resolve the internal [[Class]] of values */
|
2244
|
+
var toString = objectProto.toString;
|
2245
|
+
|
2246
|
+
/** Native method shortcuts */
|
2247
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
2248
|
+
|
2249
|
+
/** Used to lookup a built-in constructor by [[Class]] */
|
2250
|
+
var ctorByClass = {};
|
2251
|
+
ctorByClass[arrayClass] = Array;
|
2252
|
+
ctorByClass[boolClass] = Boolean;
|
2253
|
+
ctorByClass[dateClass] = Date;
|
2254
|
+
ctorByClass[funcClass] = Function;
|
2255
|
+
ctorByClass[objectClass] = Object;
|
2256
|
+
ctorByClass[numberClass] = Number;
|
2257
|
+
ctorByClass[regexpClass] = RegExp;
|
2258
|
+
ctorByClass[stringClass] = String;
|
2259
|
+
|
2260
|
+
/**
|
2261
|
+
* The base implementation of `_.clone` without argument juggling or support
|
2262
|
+
* for `thisArg` binding.
|
2263
|
+
*
|
2264
|
+
* @private
|
2265
|
+
* @param {*} value The value to clone.
|
2266
|
+
* @param {boolean} [isDeep=false] Specify a deep clone.
|
2267
|
+
* @param {Function} [callback] The function to customize cloning values.
|
2268
|
+
* @param {Array} [stackA=[]] Tracks traversed source objects.
|
2269
|
+
* @param {Array} [stackB=[]] Associates clones with source counterparts.
|
2270
|
+
* @returns {*} Returns the cloned value.
|
2271
|
+
*/
|
2272
|
+
function baseClone(value, isDeep, callback, stackA, stackB) {
|
2273
|
+
if (callback) {
|
2274
|
+
var result = callback(value);
|
2275
|
+
if (typeof result != 'undefined') {
|
2276
|
+
return result;
|
2277
|
+
}
|
2278
|
+
}
|
2279
|
+
// inspect [[Class]]
|
2280
|
+
var isObj = isObject(value);
|
2281
|
+
if (isObj) {
|
2282
|
+
var className = toString.call(value);
|
2283
|
+
if (!cloneableClasses[className]) {
|
2284
|
+
return value;
|
2285
|
+
}
|
2286
|
+
var ctor = ctorByClass[className];
|
2287
|
+
switch (className) {
|
2288
|
+
case boolClass:
|
2289
|
+
case dateClass:
|
2290
|
+
return new ctor(+value);
|
2291
|
+
|
2292
|
+
case numberClass:
|
2293
|
+
case stringClass:
|
2294
|
+
return new ctor(value);
|
2295
|
+
|
2296
|
+
case regexpClass:
|
2297
|
+
result = ctor(value.source, reFlags.exec(value));
|
2298
|
+
result.lastIndex = value.lastIndex;
|
2299
|
+
return result;
|
2300
|
+
}
|
2301
|
+
} else {
|
2302
|
+
return value;
|
2303
|
+
}
|
2304
|
+
var isArr = isArray(value);
|
2305
|
+
if (isDeep) {
|
2306
|
+
// check for circular references and return corresponding clone
|
2307
|
+
var initedStack = !stackA;
|
2308
|
+
stackA || (stackA = getArray());
|
2309
|
+
stackB || (stackB = getArray());
|
2310
|
+
|
2311
|
+
var length = stackA.length;
|
2312
|
+
while (length--) {
|
2313
|
+
if (stackA[length] == value) {
|
2314
|
+
return stackB[length];
|
2315
|
+
}
|
2316
|
+
}
|
2317
|
+
result = isArr ? ctor(value.length) : {};
|
2318
|
+
}
|
2319
|
+
else {
|
2320
|
+
result = isArr ? slice(value) : assign({}, value);
|
2321
|
+
}
|
2322
|
+
// add array properties assigned by `RegExp#exec`
|
2323
|
+
if (isArr) {
|
2324
|
+
if (hasOwnProperty.call(value, 'index')) {
|
2325
|
+
result.index = value.index;
|
2326
|
+
}
|
2327
|
+
if (hasOwnProperty.call(value, 'input')) {
|
2328
|
+
result.input = value.input;
|
2329
|
+
}
|
2330
|
+
}
|
2331
|
+
// exit for shallow clone
|
2332
|
+
if (!isDeep) {
|
2333
|
+
return result;
|
2334
|
+
}
|
2335
|
+
// add the source value to the stack of traversed objects
|
2336
|
+
// and associate it with its clone
|
2337
|
+
stackA.push(value);
|
2338
|
+
stackB.push(result);
|
2339
|
+
|
2340
|
+
// recursively populate clone (susceptible to call stack limits)
|
2341
|
+
(isArr ? forEach : forOwn)(value, function(objValue, key) {
|
2342
|
+
result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);
|
2343
|
+
});
|
2344
|
+
|
2345
|
+
if (initedStack) {
|
2346
|
+
releaseArray(stackA);
|
2347
|
+
releaseArray(stackB);
|
2348
|
+
}
|
2349
|
+
return result;
|
2350
|
+
}
|
2351
|
+
|
2352
|
+
module.exports = baseClone;
|
2353
|
+
|
2354
|
+
|
2355
|
+
/***/ },
|
2356
|
+
/* 27 */
|
2357
|
+
/***/ function(module, exports, __webpack_require__) {
|
2358
|
+
|
2359
|
+
/**
|
2360
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2361
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2362
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2363
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2364
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2365
|
+
* Available under MIT license <http://lodash.com/license>
|
2366
|
+
*/
|
2367
|
+
var bind = __webpack_require__(43),
|
2368
|
+
identity = __webpack_require__(53),
|
2369
|
+
setBindData = __webpack_require__(44),
|
2370
|
+
support = __webpack_require__(45);
|
2371
|
+
|
2372
|
+
/** Used to detected named functions */
|
2373
|
+
var reFuncName = /^\s*function[ \n\r\t]+\w/;
|
2374
|
+
|
2375
|
+
/** Used to detect functions containing a `this` reference */
|
2376
|
+
var reThis = /\bthis\b/;
|
2377
|
+
|
2378
|
+
/** Native method shortcuts */
|
2379
|
+
var fnToString = Function.prototype.toString;
|
2380
|
+
|
2381
|
+
/**
|
2382
|
+
* The base implementation of `_.createCallback` without support for creating
|
2383
|
+
* "_.pluck" or "_.where" style callbacks.
|
2384
|
+
*
|
2385
|
+
* @private
|
2386
|
+
* @param {*} [func=identity] The value to convert to a callback.
|
2387
|
+
* @param {*} [thisArg] The `this` binding of the created callback.
|
2388
|
+
* @param {number} [argCount] The number of arguments the callback accepts.
|
2389
|
+
* @returns {Function} Returns a callback function.
|
2390
|
+
*/
|
2391
|
+
function baseCreateCallback(func, thisArg, argCount) {
|
2392
|
+
if (typeof func != 'function') {
|
2393
|
+
return identity;
|
2394
|
+
}
|
2395
|
+
// exit early for no `thisArg` or already bound by `Function#bind`
|
2396
|
+
if (typeof thisArg == 'undefined' || !('prototype' in func)) {
|
2397
|
+
return func;
|
2398
|
+
}
|
2399
|
+
var bindData = func.__bindData__;
|
2400
|
+
if (typeof bindData == 'undefined') {
|
2401
|
+
if (support.funcNames) {
|
2402
|
+
bindData = !func.name;
|
2403
|
+
}
|
2404
|
+
bindData = bindData || !support.funcDecomp;
|
2405
|
+
if (!bindData) {
|
2406
|
+
var source = fnToString.call(func);
|
2407
|
+
if (!support.funcNames) {
|
2408
|
+
bindData = !reFuncName.test(source);
|
2409
|
+
}
|
2410
|
+
if (!bindData) {
|
2411
|
+
// checks if `func` references the `this` keyword and stores the result
|
2412
|
+
bindData = reThis.test(source);
|
2413
|
+
setBindData(func, bindData);
|
2414
|
+
}
|
2415
|
+
}
|
2416
|
+
}
|
2417
|
+
// exit early if there are no `this` references or `func` is bound
|
2418
|
+
if (bindData === false || (bindData !== true && bindData[1] & 1)) {
|
2419
|
+
return func;
|
2420
|
+
}
|
2421
|
+
switch (argCount) {
|
2422
|
+
case 1: return function(value) {
|
2423
|
+
return func.call(thisArg, value);
|
2424
|
+
};
|
2425
|
+
case 2: return function(a, b) {
|
2426
|
+
return func.call(thisArg, a, b);
|
2427
|
+
};
|
2428
|
+
case 3: return function(value, index, collection) {
|
2429
|
+
return func.call(thisArg, value, index, collection);
|
2430
|
+
};
|
2431
|
+
case 4: return function(accumulator, value, index, collection) {
|
2432
|
+
return func.call(thisArg, accumulator, value, index, collection);
|
2433
|
+
};
|
2434
|
+
}
|
2435
|
+
return bind(func, thisArg);
|
2436
|
+
}
|
2437
|
+
|
2438
|
+
module.exports = baseCreateCallback;
|
2439
|
+
|
2440
|
+
|
2441
|
+
/***/ },
|
2442
|
+
/* 28 */
|
2443
|
+
/***/ function(module, exports, __webpack_require__) {
|
2444
|
+
|
2445
|
+
/**
|
2446
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2447
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2448
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2449
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2450
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2451
|
+
* Available under MIT license <http://lodash.com/license>
|
2452
|
+
*/
|
2453
|
+
|
2454
|
+
/** Used to determine if values are of the language type Object */
|
2455
|
+
var objectTypes = {
|
2456
|
+
'boolean': false,
|
2457
|
+
'function': true,
|
2458
|
+
'object': true,
|
2459
|
+
'number': false,
|
2460
|
+
'string': false,
|
2461
|
+
'undefined': false
|
2462
|
+
};
|
2463
|
+
|
2464
|
+
module.exports = objectTypes;
|
2465
|
+
|
2466
|
+
|
2467
|
+
/***/ },
|
2468
|
+
/* 29 */
|
2469
|
+
/***/ function(module, exports, __webpack_require__) {
|
2470
|
+
|
2471
|
+
/**
|
2472
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2473
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2474
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2475
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2476
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2477
|
+
* Available under MIT license <http://lodash.com/license>
|
2478
|
+
*/
|
2479
|
+
|
2480
|
+
/** Used for native method references */
|
2481
|
+
var objectProto = Object.prototype;
|
2482
|
+
|
2483
|
+
/** Used to resolve the internal [[Class]] of values */
|
2484
|
+
var toString = objectProto.toString;
|
2485
|
+
|
2486
|
+
/** Used to detect if a method is native */
|
2487
|
+
var reNative = RegExp('^' +
|
2488
|
+
String(toString)
|
2489
|
+
.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
2490
|
+
.replace(/toString| for [^\]]+/g, '.*?') + '$'
|
2491
|
+
);
|
2492
|
+
|
2493
|
+
/**
|
2494
|
+
* Checks if `value` is a native function.
|
2495
|
+
*
|
2496
|
+
* @private
|
2497
|
+
* @param {*} value The value to check.
|
2498
|
+
* @returns {boolean} Returns `true` if the `value` is a native function, else `false`.
|
2499
|
+
*/
|
2500
|
+
function isNative(value) {
|
2501
|
+
return typeof value == 'function' && reNative.test(value);
|
2502
|
+
}
|
2503
|
+
|
2504
|
+
module.exports = isNative;
|
2505
|
+
|
2506
|
+
|
2507
|
+
/***/ },
|
2508
|
+
/* 30 */
|
2509
|
+
/***/ function(module, exports, __webpack_require__) {
|
2510
|
+
|
2511
|
+
/**
|
2512
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2513
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2514
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2515
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2516
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2517
|
+
* Available under MIT license <http://lodash.com/license>
|
2518
|
+
*/
|
2519
|
+
var objectTypes = __webpack_require__(28);
|
2520
|
+
|
2521
|
+
/** Used for native method references */
|
2522
|
+
var objectProto = Object.prototype;
|
2523
|
+
|
2524
|
+
/** Native method shortcuts */
|
2525
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
2526
|
+
|
2527
|
+
/**
|
2528
|
+
* A fallback implementation of `Object.keys` which produces an array of the
|
2529
|
+
* given object's own enumerable property names.
|
2530
|
+
*
|
2531
|
+
* @private
|
2532
|
+
* @type Function
|
2533
|
+
* @param {Object} object The object to inspect.
|
2534
|
+
* @returns {Array} Returns an array of property names.
|
2535
|
+
*/
|
2536
|
+
var shimKeys = function(object) {
|
2537
|
+
var index, iterable = object, result = [];
|
2538
|
+
if (!iterable) return result;
|
2539
|
+
if (!(objectTypes[typeof object])) return result;
|
2540
|
+
for (index in iterable) {
|
2541
|
+
if (hasOwnProperty.call(iterable, index)) {
|
2542
|
+
result.push(index);
|
2543
|
+
}
|
2544
|
+
}
|
2545
|
+
return result
|
2546
|
+
};
|
2547
|
+
|
2548
|
+
module.exports = shimKeys;
|
2549
|
+
|
2550
|
+
|
2551
|
+
/***/ },
|
2552
|
+
/* 31 */
|
2553
|
+
/***/ function(module, exports, __webpack_require__) {
|
2554
|
+
|
2555
|
+
/**
|
2556
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2557
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2558
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2559
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2560
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2561
|
+
* Available under MIT license <http://lodash.com/license>
|
2562
|
+
*/
|
2563
|
+
|
2564
|
+
/**
|
2565
|
+
* The base implementation of `_.indexOf` without support for binary searches
|
2566
|
+
* or `fromIndex` constraints.
|
2567
|
+
*
|
2568
|
+
* @private
|
2569
|
+
* @param {Array} array The array to search.
|
2570
|
+
* @param {*} value The value to search for.
|
2571
|
+
* @param {number} [fromIndex=0] The index to search from.
|
2572
|
+
* @returns {number} Returns the index of the matched value or `-1`.
|
2573
|
+
*/
|
2574
|
+
function baseIndexOf(array, value, fromIndex) {
|
2575
|
+
var index = (fromIndex || 0) - 1,
|
2576
|
+
length = array ? array.length : 0;
|
2577
|
+
|
2578
|
+
while (++index < length) {
|
2579
|
+
if (array[index] === value) {
|
2580
|
+
return index;
|
2581
|
+
}
|
2582
|
+
}
|
2583
|
+
return -1;
|
2584
|
+
}
|
2585
|
+
|
2586
|
+
module.exports = baseIndexOf;
|
2587
|
+
|
2588
|
+
|
2589
|
+
/***/ },
|
2590
|
+
/* 32 */
|
2591
|
+
/***/ function(module, exports, __webpack_require__) {
|
2592
|
+
|
2593
|
+
/**
|
2594
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2595
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2596
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2597
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2598
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2599
|
+
* Available under MIT license <http://lodash.com/license>
|
2600
|
+
*/
|
2601
|
+
var baseIndexOf = __webpack_require__(31),
|
2602
|
+
keyPrefix = __webpack_require__(46);
|
2603
|
+
|
2604
|
+
/**
|
2605
|
+
* An implementation of `_.contains` for cache objects that mimics the return
|
2606
|
+
* signature of `_.indexOf` by returning `0` if the value is found, else `-1`.
|
2607
|
+
*
|
2608
|
+
* @private
|
2609
|
+
* @param {Object} cache The cache object to inspect.
|
2610
|
+
* @param {*} value The value to search for.
|
2611
|
+
* @returns {number} Returns `0` if `value` is found, else `-1`.
|
2612
|
+
*/
|
2613
|
+
function cacheIndexOf(cache, value) {
|
2614
|
+
var type = typeof value;
|
2615
|
+
cache = cache.cache;
|
2616
|
+
|
2617
|
+
if (type == 'boolean' || value == null) {
|
2618
|
+
return cache[value] ? 0 : -1;
|
2619
|
+
}
|
2620
|
+
if (type != 'number' && type != 'string') {
|
2621
|
+
type = 'object';
|
2622
|
+
}
|
2623
|
+
var key = type == 'number' ? value : keyPrefix + value;
|
2624
|
+
cache = (cache = cache[type]) && cache[key];
|
2625
|
+
|
2626
|
+
return type == 'object'
|
2627
|
+
? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)
|
2628
|
+
: (cache ? 0 : -1);
|
2629
|
+
}
|
2630
|
+
|
2631
|
+
module.exports = cacheIndexOf;
|
2632
|
+
|
2633
|
+
|
2634
|
+
/***/ },
|
2635
|
+
/* 33 */
|
2636
|
+
/***/ function(module, exports, __webpack_require__) {
|
2637
|
+
|
2638
|
+
/**
|
2639
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2640
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2641
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2642
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2643
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2644
|
+
* Available under MIT license <http://lodash.com/license>
|
2645
|
+
*/
|
2646
|
+
var cachePush = __webpack_require__(47),
|
2647
|
+
getObject = __webpack_require__(48),
|
2648
|
+
releaseObject = __webpack_require__(37);
|
2649
|
+
|
2650
|
+
/**
|
2651
|
+
* Creates a cache object to optimize linear searches of large arrays.
|
2652
|
+
*
|
2653
|
+
* @private
|
2654
|
+
* @param {Array} [array=[]] The array to search.
|
2655
|
+
* @returns {null|Object} Returns the cache object or `null` if caching should not be used.
|
2656
|
+
*/
|
2657
|
+
function createCache(array) {
|
2658
|
+
var index = -1,
|
2659
|
+
length = array.length,
|
2660
|
+
first = array[0],
|
2661
|
+
mid = array[(length / 2) | 0],
|
2662
|
+
last = array[length - 1];
|
2663
|
+
|
2664
|
+
if (first && typeof first == 'object' &&
|
2665
|
+
mid && typeof mid == 'object' && last && typeof last == 'object') {
|
2666
|
+
return false;
|
2667
|
+
}
|
2668
|
+
var cache = getObject();
|
2669
|
+
cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;
|
2670
|
+
|
2671
|
+
var result = getObject();
|
2672
|
+
result.array = array;
|
2673
|
+
result.cache = cache;
|
2674
|
+
result.push = cachePush;
|
2675
|
+
|
2676
|
+
while (++index < length) {
|
2677
|
+
result.push(array[index]);
|
2678
|
+
}
|
2679
|
+
return result;
|
2680
|
+
}
|
2681
|
+
|
2682
|
+
module.exports = createCache;
|
2683
|
+
|
2684
|
+
|
2685
|
+
/***/ },
|
2686
|
+
/* 34 */
|
2687
|
+
/***/ function(module, exports, __webpack_require__) {
|
2688
|
+
|
2689
|
+
/**
|
2690
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2691
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2692
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2693
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2694
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2695
|
+
* Available under MIT license <http://lodash.com/license>
|
2696
|
+
*/
|
2697
|
+
var arrayPool = __webpack_require__(49);
|
2698
|
+
|
2699
|
+
/**
|
2700
|
+
* Gets an array from the array pool or creates a new one if the pool is empty.
|
2701
|
+
*
|
2702
|
+
* @private
|
2703
|
+
* @returns {Array} The array from the pool.
|
2704
|
+
*/
|
2705
|
+
function getArray() {
|
2706
|
+
return arrayPool.pop() || [];
|
2707
|
+
}
|
2708
|
+
|
2709
|
+
module.exports = getArray;
|
2710
|
+
|
2711
|
+
|
2712
|
+
/***/ },
|
2713
|
+
/* 35 */
|
2714
|
+
/***/ function(module, exports, __webpack_require__) {
|
2715
|
+
|
2716
|
+
/**
|
2717
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2718
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2719
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2720
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2721
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2722
|
+
* Available under MIT license <http://lodash.com/license>
|
2723
|
+
*/
|
2724
|
+
|
2725
|
+
/** Used as the size when optimizations are enabled for large arrays */
|
2726
|
+
var largeArraySize = 75;
|
2727
|
+
|
2728
|
+
module.exports = largeArraySize;
|
2729
|
+
|
2730
|
+
|
2731
|
+
/***/ },
|
2732
|
+
/* 36 */
|
2733
|
+
/***/ function(module, exports, __webpack_require__) {
|
2734
|
+
|
2735
|
+
/**
|
2736
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2737
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2738
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2739
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2740
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2741
|
+
* Available under MIT license <http://lodash.com/license>
|
2742
|
+
*/
|
2743
|
+
var arrayPool = __webpack_require__(49),
|
2744
|
+
maxPoolSize = __webpack_require__(50);
|
2745
|
+
|
2746
|
+
/**
|
2747
|
+
* Releases the given array back to the array pool.
|
2748
|
+
*
|
2749
|
+
* @private
|
2750
|
+
* @param {Array} [array] The array to release.
|
2751
|
+
*/
|
2752
|
+
function releaseArray(array) {
|
2753
|
+
array.length = 0;
|
2754
|
+
if (arrayPool.length < maxPoolSize) {
|
2755
|
+
arrayPool.push(array);
|
2756
|
+
}
|
2757
|
+
}
|
2758
|
+
|
2759
|
+
module.exports = releaseArray;
|
2760
|
+
|
2761
|
+
|
2762
|
+
/***/ },
|
2763
|
+
/* 37 */
|
2764
|
+
/***/ function(module, exports, __webpack_require__) {
|
2765
|
+
|
2766
|
+
/**
|
2767
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2768
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2769
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2770
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2771
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2772
|
+
* Available under MIT license <http://lodash.com/license>
|
2773
|
+
*/
|
2774
|
+
var maxPoolSize = __webpack_require__(50),
|
2775
|
+
objectPool = __webpack_require__(51);
|
2776
|
+
|
2777
|
+
/**
|
2778
|
+
* Releases the given object back to the object pool.
|
2779
|
+
*
|
2780
|
+
* @private
|
2781
|
+
* @param {Object} [object] The object to release.
|
2782
|
+
*/
|
2783
|
+
function releaseObject(object) {
|
2784
|
+
var cache = object.cache;
|
2785
|
+
if (cache) {
|
2786
|
+
releaseObject(cache);
|
2787
|
+
}
|
2788
|
+
object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;
|
2789
|
+
if (objectPool.length < maxPoolSize) {
|
2790
|
+
objectPool.push(object);
|
2791
|
+
}
|
2792
|
+
}
|
2793
|
+
|
2794
|
+
module.exports = releaseObject;
|
2795
|
+
|
2796
|
+
|
2797
|
+
/***/ },
|
2798
|
+
/* 38 */
|
2799
|
+
/***/ function(module, exports, __webpack_require__) {
|
2800
|
+
|
2801
|
+
/**
|
2802
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2803
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2804
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2805
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2806
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2807
|
+
* Available under MIT license <http://lodash.com/license>
|
2808
|
+
*/
|
2809
|
+
var baseIndexOf = __webpack_require__(31),
|
2810
|
+
cacheIndexOf = __webpack_require__(32),
|
2811
|
+
createCache = __webpack_require__(33),
|
2812
|
+
getArray = __webpack_require__(34),
|
2813
|
+
largeArraySize = __webpack_require__(35),
|
2814
|
+
releaseArray = __webpack_require__(36),
|
2815
|
+
releaseObject = __webpack_require__(37);
|
2816
|
+
|
2817
|
+
/**
|
2818
|
+
* The base implementation of `_.uniq` without support for callback shorthands
|
2819
|
+
* or `thisArg` binding.
|
2820
|
+
*
|
2821
|
+
* @private
|
2822
|
+
* @param {Array} array The array to process.
|
2823
|
+
* @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.
|
2824
|
+
* @param {Function} [callback] The function called per iteration.
|
2825
|
+
* @returns {Array} Returns a duplicate-value-free array.
|
2826
|
+
*/
|
2827
|
+
function baseUniq(array, isSorted, callback) {
|
2828
|
+
var index = -1,
|
2829
|
+
indexOf = baseIndexOf,
|
2830
|
+
length = array ? array.length : 0,
|
2831
|
+
result = [];
|
2832
|
+
|
2833
|
+
var isLarge = !isSorted && length >= largeArraySize,
|
2834
|
+
seen = (callback || isLarge) ? getArray() : result;
|
2835
|
+
|
2836
|
+
if (isLarge) {
|
2837
|
+
var cache = createCache(seen);
|
2838
|
+
indexOf = cacheIndexOf;
|
2839
|
+
seen = cache;
|
2840
|
+
}
|
2841
|
+
while (++index < length) {
|
2842
|
+
var value = array[index],
|
2843
|
+
computed = callback ? callback(value, index, array) : value;
|
2844
|
+
|
2845
|
+
if (isSorted
|
2846
|
+
? !index || seen[seen.length - 1] !== computed
|
2847
|
+
: indexOf(seen, computed) < 0
|
2848
|
+
) {
|
2849
|
+
if (callback || isLarge) {
|
2850
|
+
seen.push(computed);
|
2851
|
+
}
|
2852
|
+
result.push(value);
|
2853
|
+
}
|
2854
|
+
}
|
2855
|
+
if (isLarge) {
|
2856
|
+
releaseArray(seen.array);
|
2857
|
+
releaseObject(seen);
|
2858
|
+
} else if (callback) {
|
2859
|
+
releaseArray(seen);
|
2860
|
+
}
|
2861
|
+
return result;
|
2862
|
+
}
|
2863
|
+
|
2864
|
+
module.exports = baseUniq;
|
2865
|
+
|
2866
|
+
|
2867
|
+
/***/ },
|
2868
|
+
/* 39 */
|
2869
|
+
/***/ function(module, exports, __webpack_require__) {
|
2870
|
+
|
2871
|
+
/**
|
2872
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2873
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2874
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2875
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2876
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2877
|
+
* Available under MIT license <http://lodash.com/license>
|
2878
|
+
*/
|
2879
|
+
var baseCreateCallback = __webpack_require__(27),
|
2880
|
+
baseIsEqual = __webpack_require__(52),
|
2881
|
+
isObject = __webpack_require__(22),
|
2882
|
+
keys = __webpack_require__(13),
|
2883
|
+
property = __webpack_require__(54);
|
2884
|
+
|
2885
|
+
/**
|
2886
|
+
* Produces a callback bound to an optional `thisArg`. If `func` is a property
|
2887
|
+
* name the created callback will return the property value for a given element.
|
2888
|
+
* If `func` is an object the created callback will return `true` for elements
|
2889
|
+
* that contain the equivalent object properties, otherwise it will return `false`.
|
2890
|
+
*
|
2891
|
+
* @static
|
2892
|
+
* @memberOf _
|
2893
|
+
* @category Utilities
|
2894
|
+
* @param {*} [func=identity] The value to convert to a callback.
|
2895
|
+
* @param {*} [thisArg] The `this` binding of the created callback.
|
2896
|
+
* @param {number} [argCount] The number of arguments the callback accepts.
|
2897
|
+
* @returns {Function} Returns a callback function.
|
2898
|
+
* @example
|
2899
|
+
*
|
2900
|
+
* var characters = [
|
2901
|
+
* { 'name': 'barney', 'age': 36 },
|
2902
|
+
* { 'name': 'fred', 'age': 40 }
|
2903
|
+
* ];
|
2904
|
+
*
|
2905
|
+
* // wrap to create custom callback shorthands
|
2906
|
+
* _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {
|
2907
|
+
* var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);
|
2908
|
+
* return !match ? func(callback, thisArg) : function(object) {
|
2909
|
+
* return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];
|
2910
|
+
* };
|
2911
|
+
* });
|
2912
|
+
*
|
2913
|
+
* _.filter(characters, 'age__gt38');
|
2914
|
+
* // => [{ 'name': 'fred', 'age': 40 }]
|
2915
|
+
*/
|
2916
|
+
function createCallback(func, thisArg, argCount) {
|
2917
|
+
var type = typeof func;
|
2918
|
+
if (func == null || type == 'function') {
|
2919
|
+
return baseCreateCallback(func, thisArg, argCount);
|
2920
|
+
}
|
2921
|
+
// handle "_.pluck" style callback shorthands
|
2922
|
+
if (type != 'object') {
|
2923
|
+
return property(func);
|
2924
|
+
}
|
2925
|
+
var props = keys(func),
|
2926
|
+
key = props[0],
|
2927
|
+
a = func[key];
|
2928
|
+
|
2929
|
+
// handle "_.where" style callback shorthands
|
2930
|
+
if (props.length == 1 && a === a && !isObject(a)) {
|
2931
|
+
// fast path the common case of providing an object with a single
|
2932
|
+
// property containing a primitive value
|
2933
|
+
return function(object) {
|
2934
|
+
var b = object[key];
|
2935
|
+
return a === b && (a !== 0 || (1 / a == 1 / b));
|
2936
|
+
};
|
2937
|
+
}
|
2938
|
+
return function(object) {
|
2939
|
+
var length = props.length,
|
2940
|
+
result = false;
|
2941
|
+
|
2942
|
+
while (length--) {
|
2943
|
+
if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {
|
2944
|
+
break;
|
2945
|
+
}
|
2946
|
+
}
|
2947
|
+
return result;
|
2948
|
+
};
|
2949
|
+
}
|
2950
|
+
|
2951
|
+
module.exports = createCallback;
|
2952
|
+
|
2953
|
+
|
2954
|
+
/***/ },
|
2955
|
+
/* 40 */
|
2956
|
+
/***/ function(module, exports, __webpack_require__) {
|
2957
|
+
|
2958
|
+
if (typeof Object.create === 'function') {
|
2959
|
+
// implementation from standard node.js 'util' module
|
2960
|
+
module.exports = function inherits(ctor, superCtor) {
|
2961
|
+
ctor.super_ = superCtor
|
2962
|
+
ctor.prototype = Object.create(superCtor.prototype, {
|
2963
|
+
constructor: {
|
2964
|
+
value: ctor,
|
2965
|
+
enumerable: false,
|
2966
|
+
writable: true,
|
2967
|
+
configurable: true
|
2968
|
+
}
|
2969
|
+
});
|
2970
|
+
};
|
2971
|
+
} else {
|
2972
|
+
// old school shim for old browsers
|
2973
|
+
module.exports = function inherits(ctor, superCtor) {
|
2974
|
+
ctor.super_ = superCtor
|
2975
|
+
var TempCtor = function () {}
|
2976
|
+
TempCtor.prototype = superCtor.prototype
|
2977
|
+
ctor.prototype = new TempCtor()
|
2978
|
+
ctor.prototype.constructor = ctor
|
2979
|
+
}
|
2980
|
+
}
|
2981
|
+
|
2982
|
+
|
2983
|
+
/***/ },
|
2984
|
+
/* 41 */
|
2985
|
+
/***/ function(module, exports, __webpack_require__) {
|
2986
|
+
|
2987
|
+
/**
|
2988
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
2989
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
2990
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
2991
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
2992
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
2993
|
+
* Available under MIT license <http://lodash.com/license>
|
2994
|
+
*/
|
2995
|
+
var baseCreateCallback = __webpack_require__(27),
|
2996
|
+
keys = __webpack_require__(13),
|
2997
|
+
objectTypes = __webpack_require__(28);
|
2998
|
+
|
2999
|
+
/**
|
3000
|
+
* Assigns own enumerable properties of source object(s) to the destination
|
3001
|
+
* object. Subsequent sources will overwrite property assignments of previous
|
3002
|
+
* sources. If a callback is provided it will be executed to produce the
|
3003
|
+
* assigned values. The callback is bound to `thisArg` and invoked with two
|
3004
|
+
* arguments; (objectValue, sourceValue).
|
3005
|
+
*
|
3006
|
+
* @static
|
3007
|
+
* @memberOf _
|
3008
|
+
* @type Function
|
3009
|
+
* @alias extend
|
3010
|
+
* @category Objects
|
3011
|
+
* @param {Object} object The destination object.
|
3012
|
+
* @param {...Object} [source] The source objects.
|
3013
|
+
* @param {Function} [callback] The function to customize assigning values.
|
3014
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
3015
|
+
* @returns {Object} Returns the destination object.
|
3016
|
+
* @example
|
3017
|
+
*
|
3018
|
+
* _.assign({ 'name': 'fred' }, { 'employer': 'slate' });
|
3019
|
+
* // => { 'name': 'fred', 'employer': 'slate' }
|
3020
|
+
*
|
3021
|
+
* var defaults = _.partialRight(_.assign, function(a, b) {
|
3022
|
+
* return typeof a == 'undefined' ? b : a;
|
3023
|
+
* });
|
3024
|
+
*
|
3025
|
+
* var object = { 'name': 'barney' };
|
3026
|
+
* defaults(object, { 'name': 'fred', 'employer': 'slate' });
|
3027
|
+
* // => { 'name': 'barney', 'employer': 'slate' }
|
3028
|
+
*/
|
3029
|
+
var assign = function(object, source, guard) {
|
3030
|
+
var index, iterable = object, result = iterable;
|
3031
|
+
if (!iterable) return result;
|
3032
|
+
var args = arguments,
|
3033
|
+
argsIndex = 0,
|
3034
|
+
argsLength = typeof guard == 'number' ? 2 : args.length;
|
3035
|
+
if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {
|
3036
|
+
var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);
|
3037
|
+
} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {
|
3038
|
+
callback = args[--argsLength];
|
3039
|
+
}
|
3040
|
+
while (++argsIndex < argsLength) {
|
3041
|
+
iterable = args[argsIndex];
|
3042
|
+
if (iterable && objectTypes[typeof iterable]) {
|
3043
|
+
var ownIndex = -1,
|
3044
|
+
ownProps = objectTypes[typeof iterable] && keys(iterable),
|
3045
|
+
length = ownProps ? ownProps.length : 0;
|
3046
|
+
|
3047
|
+
while (++ownIndex < length) {
|
3048
|
+
index = ownProps[ownIndex];
|
3049
|
+
result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];
|
3050
|
+
}
|
3051
|
+
}
|
3052
|
+
}
|
3053
|
+
return result
|
3054
|
+
};
|
3055
|
+
|
3056
|
+
module.exports = assign;
|
3057
|
+
|
3058
|
+
|
3059
|
+
/***/ },
|
3060
|
+
/* 42 */
|
3061
|
+
/***/ function(module, exports, __webpack_require__) {
|
3062
|
+
|
3063
|
+
/**
|
3064
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3065
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3066
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3067
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3068
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3069
|
+
* Available under MIT license <http://lodash.com/license>
|
3070
|
+
*/
|
3071
|
+
|
3072
|
+
/**
|
3073
|
+
* Slices the `collection` from the `start` index up to, but not including,
|
3074
|
+
* the `end` index.
|
3075
|
+
*
|
3076
|
+
* Note: This function is used instead of `Array#slice` to support node lists
|
3077
|
+
* in IE < 9 and to ensure dense arrays are returned.
|
3078
|
+
*
|
3079
|
+
* @private
|
3080
|
+
* @param {Array|Object|string} collection The collection to slice.
|
3081
|
+
* @param {number} start The start index.
|
3082
|
+
* @param {number} end The end index.
|
3083
|
+
* @returns {Array} Returns the new array.
|
3084
|
+
*/
|
3085
|
+
function slice(array, start, end) {
|
3086
|
+
start || (start = 0);
|
3087
|
+
if (typeof end == 'undefined') {
|
3088
|
+
end = array ? array.length : 0;
|
3089
|
+
}
|
3090
|
+
var index = -1,
|
3091
|
+
length = end - start || 0,
|
3092
|
+
result = Array(length < 0 ? 0 : length);
|
3093
|
+
|
3094
|
+
while (++index < length) {
|
3095
|
+
result[index] = array[start + index];
|
3096
|
+
}
|
3097
|
+
return result;
|
3098
|
+
}
|
3099
|
+
|
3100
|
+
module.exports = slice;
|
3101
|
+
|
3102
|
+
|
3103
|
+
/***/ },
|
3104
|
+
/* 43 */
|
3105
|
+
/***/ function(module, exports, __webpack_require__) {
|
3106
|
+
|
3107
|
+
/**
|
3108
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3109
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3110
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3111
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3112
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3113
|
+
* Available under MIT license <http://lodash.com/license>
|
3114
|
+
*/
|
3115
|
+
var createWrapper = __webpack_require__(55),
|
3116
|
+
slice = __webpack_require__(42);
|
3117
|
+
|
3118
|
+
/**
|
3119
|
+
* Creates a function that, when called, invokes `func` with the `this`
|
3120
|
+
* binding of `thisArg` and prepends any additional `bind` arguments to those
|
3121
|
+
* provided to the bound function.
|
3122
|
+
*
|
3123
|
+
* @static
|
3124
|
+
* @memberOf _
|
3125
|
+
* @category Functions
|
3126
|
+
* @param {Function} func The function to bind.
|
3127
|
+
* @param {*} [thisArg] The `this` binding of `func`.
|
3128
|
+
* @param {...*} [arg] Arguments to be partially applied.
|
3129
|
+
* @returns {Function} Returns the new bound function.
|
3130
|
+
* @example
|
3131
|
+
*
|
3132
|
+
* var func = function(greeting) {
|
3133
|
+
* return greeting + ' ' + this.name;
|
3134
|
+
* };
|
3135
|
+
*
|
3136
|
+
* func = _.bind(func, { 'name': 'fred' }, 'hi');
|
3137
|
+
* func();
|
3138
|
+
* // => 'hi fred'
|
3139
|
+
*/
|
3140
|
+
function bind(func, thisArg) {
|
3141
|
+
return arguments.length > 2
|
3142
|
+
? createWrapper(func, 17, slice(arguments, 2), null, thisArg)
|
3143
|
+
: createWrapper(func, 1, null, null, thisArg);
|
3144
|
+
}
|
3145
|
+
|
3146
|
+
module.exports = bind;
|
3147
|
+
|
3148
|
+
|
3149
|
+
/***/ },
|
3150
|
+
/* 44 */
|
3151
|
+
/***/ function(module, exports, __webpack_require__) {
|
3152
|
+
|
3153
|
+
/**
|
3154
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3155
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3156
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3157
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3158
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3159
|
+
* Available under MIT license <http://lodash.com/license>
|
3160
|
+
*/
|
3161
|
+
var isNative = __webpack_require__(29),
|
3162
|
+
noop = __webpack_require__(56);
|
3163
|
+
|
3164
|
+
/** Used as the property descriptor for `__bindData__` */
|
3165
|
+
var descriptor = {
|
3166
|
+
'configurable': false,
|
3167
|
+
'enumerable': false,
|
3168
|
+
'value': null,
|
3169
|
+
'writable': false
|
3170
|
+
};
|
3171
|
+
|
3172
|
+
/** Used to set meta data on functions */
|
3173
|
+
var defineProperty = (function() {
|
3174
|
+
// IE 8 only accepts DOM elements
|
3175
|
+
try {
|
3176
|
+
var o = {},
|
3177
|
+
func = isNative(func = Object.defineProperty) && func,
|
3178
|
+
result = func(o, o, o) && func;
|
3179
|
+
} catch(e) { }
|
3180
|
+
return result;
|
3181
|
+
}());
|
3182
|
+
|
3183
|
+
/**
|
3184
|
+
* Sets `this` binding data on a given function.
|
3185
|
+
*
|
3186
|
+
* @private
|
3187
|
+
* @param {Function} func The function to set data on.
|
3188
|
+
* @param {Array} value The data array to set.
|
3189
|
+
*/
|
3190
|
+
var setBindData = !defineProperty ? noop : function(func, value) {
|
3191
|
+
descriptor.value = value;
|
3192
|
+
defineProperty(func, '__bindData__', descriptor);
|
3193
|
+
};
|
3194
|
+
|
3195
|
+
module.exports = setBindData;
|
3196
|
+
|
3197
|
+
|
3198
|
+
/***/ },
|
3199
|
+
/* 45 */
|
3200
|
+
/***/ function(module, exports, __webpack_require__) {
|
3201
|
+
|
3202
|
+
/* WEBPACK VAR INJECTION */(function(global) {/**
|
3203
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3204
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3205
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3206
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3207
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3208
|
+
* Available under MIT license <http://lodash.com/license>
|
3209
|
+
*/
|
3210
|
+
var isNative = __webpack_require__(29);
|
3211
|
+
|
3212
|
+
/** Used to detect functions containing a `this` reference */
|
3213
|
+
var reThis = /\bthis\b/;
|
3214
|
+
|
3215
|
+
/**
|
3216
|
+
* An object used to flag environments features.
|
3217
|
+
*
|
3218
|
+
* @static
|
3219
|
+
* @memberOf _
|
3220
|
+
* @type Object
|
3221
|
+
*/
|
3222
|
+
var support = {};
|
3223
|
+
|
3224
|
+
/**
|
3225
|
+
* Detect if functions can be decompiled by `Function#toString`
|
3226
|
+
* (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).
|
3227
|
+
*
|
3228
|
+
* @memberOf _.support
|
3229
|
+
* @type boolean
|
3230
|
+
*/
|
3231
|
+
support.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });
|
3232
|
+
|
3233
|
+
/**
|
3234
|
+
* Detect if `Function#name` is supported (all but IE).
|
3235
|
+
*
|
3236
|
+
* @memberOf _.support
|
3237
|
+
* @type boolean
|
3238
|
+
*/
|
3239
|
+
support.funcNames = typeof Function.name == 'string';
|
3240
|
+
|
3241
|
+
module.exports = support;
|
3242
|
+
|
3243
|
+
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
|
3244
|
+
|
3245
|
+
/***/ },
|
3246
|
+
/* 46 */
|
3247
|
+
/***/ function(module, exports, __webpack_require__) {
|
3248
|
+
|
3249
|
+
/**
|
3250
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3251
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3252
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3253
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3254
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3255
|
+
* Available under MIT license <http://lodash.com/license>
|
3256
|
+
*/
|
3257
|
+
|
3258
|
+
/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */
|
3259
|
+
var keyPrefix = +new Date + '';
|
3260
|
+
|
3261
|
+
module.exports = keyPrefix;
|
3262
|
+
|
3263
|
+
|
3264
|
+
/***/ },
|
3265
|
+
/* 47 */
|
3266
|
+
/***/ function(module, exports, __webpack_require__) {
|
3267
|
+
|
3268
|
+
/**
|
3269
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3270
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3271
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3272
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3273
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3274
|
+
* Available under MIT license <http://lodash.com/license>
|
3275
|
+
*/
|
3276
|
+
var keyPrefix = __webpack_require__(46);
|
3277
|
+
|
3278
|
+
/**
|
3279
|
+
* Adds a given value to the corresponding cache object.
|
3280
|
+
*
|
3281
|
+
* @private
|
3282
|
+
* @param {*} value The value to add to the cache.
|
3283
|
+
*/
|
3284
|
+
function cachePush(value) {
|
3285
|
+
var cache = this.cache,
|
3286
|
+
type = typeof value;
|
3287
|
+
|
3288
|
+
if (type == 'boolean' || value == null) {
|
3289
|
+
cache[value] = true;
|
3290
|
+
} else {
|
3291
|
+
if (type != 'number' && type != 'string') {
|
3292
|
+
type = 'object';
|
3293
|
+
}
|
3294
|
+
var key = type == 'number' ? value : keyPrefix + value,
|
3295
|
+
typeCache = cache[type] || (cache[type] = {});
|
3296
|
+
|
3297
|
+
if (type == 'object') {
|
3298
|
+
(typeCache[key] || (typeCache[key] = [])).push(value);
|
3299
|
+
} else {
|
3300
|
+
typeCache[key] = true;
|
3301
|
+
}
|
3302
|
+
}
|
3303
|
+
}
|
3304
|
+
|
3305
|
+
module.exports = cachePush;
|
3306
|
+
|
3307
|
+
|
3308
|
+
/***/ },
|
3309
|
+
/* 48 */
|
3310
|
+
/***/ function(module, exports, __webpack_require__) {
|
3311
|
+
|
3312
|
+
/**
|
3313
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3314
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3315
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3316
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3317
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3318
|
+
* Available under MIT license <http://lodash.com/license>
|
3319
|
+
*/
|
3320
|
+
var objectPool = __webpack_require__(51);
|
3321
|
+
|
3322
|
+
/**
|
3323
|
+
* Gets an object from the object pool or creates a new one if the pool is empty.
|
3324
|
+
*
|
3325
|
+
* @private
|
3326
|
+
* @returns {Object} The object from the pool.
|
3327
|
+
*/
|
3328
|
+
function getObject() {
|
3329
|
+
return objectPool.pop() || {
|
3330
|
+
'array': null,
|
3331
|
+
'cache': null,
|
3332
|
+
'criteria': null,
|
3333
|
+
'false': false,
|
3334
|
+
'index': 0,
|
3335
|
+
'null': false,
|
3336
|
+
'number': null,
|
3337
|
+
'object': null,
|
3338
|
+
'push': null,
|
3339
|
+
'string': null,
|
3340
|
+
'true': false,
|
3341
|
+
'undefined': false,
|
3342
|
+
'value': null
|
3343
|
+
};
|
3344
|
+
}
|
3345
|
+
|
3346
|
+
module.exports = getObject;
|
3347
|
+
|
3348
|
+
|
3349
|
+
/***/ },
|
3350
|
+
/* 49 */
|
3351
|
+
/***/ function(module, exports, __webpack_require__) {
|
3352
|
+
|
3353
|
+
/**
|
3354
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3355
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3356
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3357
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3358
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3359
|
+
* Available under MIT license <http://lodash.com/license>
|
3360
|
+
*/
|
3361
|
+
|
3362
|
+
/** Used to pool arrays and objects used internally */
|
3363
|
+
var arrayPool = [];
|
3364
|
+
|
3365
|
+
module.exports = arrayPool;
|
3366
|
+
|
3367
|
+
|
3368
|
+
/***/ },
|
3369
|
+
/* 50 */
|
3370
|
+
/***/ function(module, exports, __webpack_require__) {
|
3371
|
+
|
3372
|
+
/**
|
3373
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3374
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3375
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3376
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3377
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3378
|
+
* Available under MIT license <http://lodash.com/license>
|
3379
|
+
*/
|
3380
|
+
|
3381
|
+
/** Used as the max size of the `arrayPool` and `objectPool` */
|
3382
|
+
var maxPoolSize = 40;
|
3383
|
+
|
3384
|
+
module.exports = maxPoolSize;
|
3385
|
+
|
3386
|
+
|
3387
|
+
/***/ },
|
3388
|
+
/* 51 */
|
3389
|
+
/***/ function(module, exports, __webpack_require__) {
|
3390
|
+
|
3391
|
+
/**
|
3392
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3393
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3394
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3395
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3396
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3397
|
+
* Available under MIT license <http://lodash.com/license>
|
3398
|
+
*/
|
3399
|
+
|
3400
|
+
/** Used to pool arrays and objects used internally */
|
3401
|
+
var objectPool = [];
|
3402
|
+
|
3403
|
+
module.exports = objectPool;
|
3404
|
+
|
3405
|
+
|
3406
|
+
/***/ },
|
3407
|
+
/* 52 */
|
3408
|
+
/***/ function(module, exports, __webpack_require__) {
|
3409
|
+
|
3410
|
+
/**
|
3411
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3412
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3413
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3414
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3415
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3416
|
+
* Available under MIT license <http://lodash.com/license>
|
3417
|
+
*/
|
3418
|
+
var forIn = __webpack_require__(57),
|
3419
|
+
getArray = __webpack_require__(34),
|
3420
|
+
isFunction = __webpack_require__(58),
|
3421
|
+
objectTypes = __webpack_require__(28),
|
3422
|
+
releaseArray = __webpack_require__(36);
|
3423
|
+
|
3424
|
+
/** `Object#toString` result shortcuts */
|
3425
|
+
var argsClass = '[object Arguments]',
|
3426
|
+
arrayClass = '[object Array]',
|
3427
|
+
boolClass = '[object Boolean]',
|
3428
|
+
dateClass = '[object Date]',
|
3429
|
+
numberClass = '[object Number]',
|
3430
|
+
objectClass = '[object Object]',
|
3431
|
+
regexpClass = '[object RegExp]',
|
3432
|
+
stringClass = '[object String]';
|
3433
|
+
|
3434
|
+
/** Used for native method references */
|
3435
|
+
var objectProto = Object.prototype;
|
3436
|
+
|
3437
|
+
/** Used to resolve the internal [[Class]] of values */
|
3438
|
+
var toString = objectProto.toString;
|
3439
|
+
|
3440
|
+
/** Native method shortcuts */
|
3441
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
3442
|
+
|
3443
|
+
/**
|
3444
|
+
* The base implementation of `_.isEqual`, without support for `thisArg` binding,
|
3445
|
+
* that allows partial "_.where" style comparisons.
|
3446
|
+
*
|
3447
|
+
* @private
|
3448
|
+
* @param {*} a The value to compare.
|
3449
|
+
* @param {*} b The other value to compare.
|
3450
|
+
* @param {Function} [callback] The function to customize comparing values.
|
3451
|
+
* @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.
|
3452
|
+
* @param {Array} [stackA=[]] Tracks traversed `a` objects.
|
3453
|
+
* @param {Array} [stackB=[]] Tracks traversed `b` objects.
|
3454
|
+
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
3455
|
+
*/
|
3456
|
+
function baseIsEqual(a, b, callback, isWhere, stackA, stackB) {
|
3457
|
+
// used to indicate that when comparing objects, `a` has at least the properties of `b`
|
3458
|
+
if (callback) {
|
3459
|
+
var result = callback(a, b);
|
3460
|
+
if (typeof result != 'undefined') {
|
3461
|
+
return !!result;
|
3462
|
+
}
|
3463
|
+
}
|
3464
|
+
// exit early for identical values
|
3465
|
+
if (a === b) {
|
3466
|
+
// treat `+0` vs. `-0` as not equal
|
3467
|
+
return a !== 0 || (1 / a == 1 / b);
|
3468
|
+
}
|
3469
|
+
var type = typeof a,
|
3470
|
+
otherType = typeof b;
|
3471
|
+
|
3472
|
+
// exit early for unlike primitive values
|
3473
|
+
if (a === a &&
|
3474
|
+
!(a && objectTypes[type]) &&
|
3475
|
+
!(b && objectTypes[otherType])) {
|
3476
|
+
return false;
|
3477
|
+
}
|
3478
|
+
// exit early for `null` and `undefined` avoiding ES3's Function#call behavior
|
3479
|
+
// http://es5.github.io/#x15.3.4.4
|
3480
|
+
if (a == null || b == null) {
|
3481
|
+
return a === b;
|
3482
|
+
}
|
3483
|
+
// compare [[Class]] names
|
3484
|
+
var className = toString.call(a),
|
3485
|
+
otherClass = toString.call(b);
|
3486
|
+
|
3487
|
+
if (className == argsClass) {
|
3488
|
+
className = objectClass;
|
3489
|
+
}
|
3490
|
+
if (otherClass == argsClass) {
|
3491
|
+
otherClass = objectClass;
|
3492
|
+
}
|
3493
|
+
if (className != otherClass) {
|
3494
|
+
return false;
|
3495
|
+
}
|
3496
|
+
switch (className) {
|
3497
|
+
case boolClass:
|
3498
|
+
case dateClass:
|
3499
|
+
// coerce dates and booleans to numbers, dates to milliseconds and booleans
|
3500
|
+
// to `1` or `0` treating invalid dates coerced to `NaN` as not equal
|
3501
|
+
return +a == +b;
|
3502
|
+
|
3503
|
+
case numberClass:
|
3504
|
+
// treat `NaN` vs. `NaN` as equal
|
3505
|
+
return (a != +a)
|
3506
|
+
? b != +b
|
3507
|
+
// but treat `+0` vs. `-0` as not equal
|
3508
|
+
: (a == 0 ? (1 / a == 1 / b) : a == +b);
|
3509
|
+
|
3510
|
+
case regexpClass:
|
3511
|
+
case stringClass:
|
3512
|
+
// coerce regexes to strings (http://es5.github.io/#x15.10.6.4)
|
3513
|
+
// treat string primitives and their corresponding object instances as equal
|
3514
|
+
return a == String(b);
|
3515
|
+
}
|
3516
|
+
var isArr = className == arrayClass;
|
3517
|
+
if (!isArr) {
|
3518
|
+
// unwrap any `lodash` wrapped values
|
3519
|
+
var aWrapped = hasOwnProperty.call(a, '__wrapped__'),
|
3520
|
+
bWrapped = hasOwnProperty.call(b, '__wrapped__');
|
3521
|
+
|
3522
|
+
if (aWrapped || bWrapped) {
|
3523
|
+
return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);
|
3524
|
+
}
|
3525
|
+
// exit for functions and DOM nodes
|
3526
|
+
if (className != objectClass) {
|
3527
|
+
return false;
|
3528
|
+
}
|
3529
|
+
// in older versions of Opera, `arguments` objects have `Array` constructors
|
3530
|
+
var ctorA = a.constructor,
|
3531
|
+
ctorB = b.constructor;
|
3532
|
+
|
3533
|
+
// non `Object` object instances with different constructors are not equal
|
3534
|
+
if (ctorA != ctorB &&
|
3535
|
+
!(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&
|
3536
|
+
('constructor' in a && 'constructor' in b)
|
3537
|
+
) {
|
3538
|
+
return false;
|
3539
|
+
}
|
3540
|
+
}
|
3541
|
+
// assume cyclic structures are equal
|
3542
|
+
// the algorithm for detecting cyclic structures is adapted from ES 5.1
|
3543
|
+
// section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)
|
3544
|
+
var initedStack = !stackA;
|
3545
|
+
stackA || (stackA = getArray());
|
3546
|
+
stackB || (stackB = getArray());
|
3547
|
+
|
3548
|
+
var length = stackA.length;
|
3549
|
+
while (length--) {
|
3550
|
+
if (stackA[length] == a) {
|
3551
|
+
return stackB[length] == b;
|
3552
|
+
}
|
3553
|
+
}
|
3554
|
+
var size = 0;
|
3555
|
+
result = true;
|
3556
|
+
|
3557
|
+
// add `a` and `b` to the stack of traversed objects
|
3558
|
+
stackA.push(a);
|
3559
|
+
stackB.push(b);
|
3560
|
+
|
3561
|
+
// recursively compare objects and arrays (susceptible to call stack limits)
|
3562
|
+
if (isArr) {
|
3563
|
+
// compare lengths to determine if a deep comparison is necessary
|
3564
|
+
length = a.length;
|
3565
|
+
size = b.length;
|
3566
|
+
result = size == length;
|
3567
|
+
|
3568
|
+
if (result || isWhere) {
|
3569
|
+
// deep compare the contents, ignoring non-numeric properties
|
3570
|
+
while (size--) {
|
3571
|
+
var index = length,
|
3572
|
+
value = b[size];
|
3573
|
+
|
3574
|
+
if (isWhere) {
|
3575
|
+
while (index--) {
|
3576
|
+
if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {
|
3577
|
+
break;
|
3578
|
+
}
|
3579
|
+
}
|
3580
|
+
} else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {
|
3581
|
+
break;
|
3582
|
+
}
|
3583
|
+
}
|
3584
|
+
}
|
3585
|
+
}
|
3586
|
+
else {
|
3587
|
+
// deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`
|
3588
|
+
// which, in this case, is more costly
|
3589
|
+
forIn(b, function(value, key, b) {
|
3590
|
+
if (hasOwnProperty.call(b, key)) {
|
3591
|
+
// count the number of properties.
|
3592
|
+
size++;
|
3593
|
+
// deep compare each property value.
|
3594
|
+
return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));
|
3595
|
+
}
|
3596
|
+
});
|
3597
|
+
|
3598
|
+
if (result && !isWhere) {
|
3599
|
+
// ensure both objects have the same number of properties
|
3600
|
+
forIn(a, function(value, key, a) {
|
3601
|
+
if (hasOwnProperty.call(a, key)) {
|
3602
|
+
// `size` will be `-1` if `a` has more properties than `b`
|
3603
|
+
return (result = --size > -1);
|
3604
|
+
}
|
3605
|
+
});
|
3606
|
+
}
|
3607
|
+
}
|
3608
|
+
stackA.pop();
|
3609
|
+
stackB.pop();
|
3610
|
+
|
3611
|
+
if (initedStack) {
|
3612
|
+
releaseArray(stackA);
|
3613
|
+
releaseArray(stackB);
|
3614
|
+
}
|
3615
|
+
return result;
|
3616
|
+
}
|
3617
|
+
|
3618
|
+
module.exports = baseIsEqual;
|
3619
|
+
|
3620
|
+
|
3621
|
+
/***/ },
|
3622
|
+
/* 53 */
|
3623
|
+
/***/ function(module, exports, __webpack_require__) {
|
3624
|
+
|
3625
|
+
/**
|
3626
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3627
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3628
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3629
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3630
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3631
|
+
* Available under MIT license <http://lodash.com/license>
|
3632
|
+
*/
|
3633
|
+
|
3634
|
+
/**
|
3635
|
+
* This method returns the first argument provided to it.
|
3636
|
+
*
|
3637
|
+
* @static
|
3638
|
+
* @memberOf _
|
3639
|
+
* @category Utilities
|
3640
|
+
* @param {*} value Any value.
|
3641
|
+
* @returns {*} Returns `value`.
|
3642
|
+
* @example
|
3643
|
+
*
|
3644
|
+
* var object = { 'name': 'fred' };
|
3645
|
+
* _.identity(object) === object;
|
3646
|
+
* // => true
|
3647
|
+
*/
|
3648
|
+
function identity(value) {
|
3649
|
+
return value;
|
3650
|
+
}
|
3651
|
+
|
3652
|
+
module.exports = identity;
|
3653
|
+
|
3654
|
+
|
3655
|
+
/***/ },
|
3656
|
+
/* 54 */
|
3657
|
+
/***/ function(module, exports, __webpack_require__) {
|
3658
|
+
|
3659
|
+
/**
|
3660
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3661
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3662
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3663
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3664
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3665
|
+
* Available under MIT license <http://lodash.com/license>
|
3666
|
+
*/
|
3667
|
+
|
3668
|
+
/**
|
3669
|
+
* Creates a "_.pluck" style function, which returns the `key` value of a
|
3670
|
+
* given object.
|
3671
|
+
*
|
3672
|
+
* @static
|
3673
|
+
* @memberOf _
|
3674
|
+
* @category Utilities
|
3675
|
+
* @param {string} key The name of the property to retrieve.
|
3676
|
+
* @returns {Function} Returns the new function.
|
3677
|
+
* @example
|
3678
|
+
*
|
3679
|
+
* var characters = [
|
3680
|
+
* { 'name': 'fred', 'age': 40 },
|
3681
|
+
* { 'name': 'barney', 'age': 36 }
|
3682
|
+
* ];
|
3683
|
+
*
|
3684
|
+
* var getName = _.property('name');
|
3685
|
+
*
|
3686
|
+
* _.map(characters, getName);
|
3687
|
+
* // => ['barney', 'fred']
|
3688
|
+
*
|
3689
|
+
* _.sortBy(characters, getName);
|
3690
|
+
* // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]
|
3691
|
+
*/
|
3692
|
+
function property(key) {
|
3693
|
+
return function(object) {
|
3694
|
+
return object[key];
|
3695
|
+
};
|
3696
|
+
}
|
3697
|
+
|
3698
|
+
module.exports = property;
|
3699
|
+
|
3700
|
+
|
3701
|
+
/***/ },
|
3702
|
+
/* 55 */
|
3703
|
+
/***/ function(module, exports, __webpack_require__) {
|
3704
|
+
|
3705
|
+
/**
|
3706
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3707
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3708
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3709
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3710
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3711
|
+
* Available under MIT license <http://lodash.com/license>
|
3712
|
+
*/
|
3713
|
+
var baseBind = __webpack_require__(59),
|
3714
|
+
baseCreateWrapper = __webpack_require__(60),
|
3715
|
+
isFunction = __webpack_require__(58),
|
3716
|
+
slice = __webpack_require__(42);
|
3717
|
+
|
3718
|
+
/**
|
3719
|
+
* Used for `Array` method references.
|
3720
|
+
*
|
3721
|
+
* Normally `Array.prototype` would suffice, however, using an array literal
|
3722
|
+
* avoids issues in Narwhal.
|
3723
|
+
*/
|
3724
|
+
var arrayRef = [];
|
3725
|
+
|
3726
|
+
/** Native method shortcuts */
|
3727
|
+
var push = arrayRef.push,
|
3728
|
+
unshift = arrayRef.unshift;
|
3729
|
+
|
3730
|
+
/**
|
3731
|
+
* Creates a function that, when called, either curries or invokes `func`
|
3732
|
+
* with an optional `this` binding and partially applied arguments.
|
3733
|
+
*
|
3734
|
+
* @private
|
3735
|
+
* @param {Function|string} func The function or method name to reference.
|
3736
|
+
* @param {number} bitmask The bitmask of method flags to compose.
|
3737
|
+
* The bitmask may be composed of the following flags:
|
3738
|
+
* 1 - `_.bind`
|
3739
|
+
* 2 - `_.bindKey`
|
3740
|
+
* 4 - `_.curry`
|
3741
|
+
* 8 - `_.curry` (bound)
|
3742
|
+
* 16 - `_.partial`
|
3743
|
+
* 32 - `_.partialRight`
|
3744
|
+
* @param {Array} [partialArgs] An array of arguments to prepend to those
|
3745
|
+
* provided to the new function.
|
3746
|
+
* @param {Array} [partialRightArgs] An array of arguments to append to those
|
3747
|
+
* provided to the new function.
|
3748
|
+
* @param {*} [thisArg] The `this` binding of `func`.
|
3749
|
+
* @param {number} [arity] The arity of `func`.
|
3750
|
+
* @returns {Function} Returns the new function.
|
3751
|
+
*/
|
3752
|
+
function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {
|
3753
|
+
var isBind = bitmask & 1,
|
3754
|
+
isBindKey = bitmask & 2,
|
3755
|
+
isCurry = bitmask & 4,
|
3756
|
+
isCurryBound = bitmask & 8,
|
3757
|
+
isPartial = bitmask & 16,
|
3758
|
+
isPartialRight = bitmask & 32;
|
3759
|
+
|
3760
|
+
if (!isBindKey && !isFunction(func)) {
|
3761
|
+
throw new TypeError;
|
3762
|
+
}
|
3763
|
+
if (isPartial && !partialArgs.length) {
|
3764
|
+
bitmask &= ~16;
|
3765
|
+
isPartial = partialArgs = false;
|
3766
|
+
}
|
3767
|
+
if (isPartialRight && !partialRightArgs.length) {
|
3768
|
+
bitmask &= ~32;
|
3769
|
+
isPartialRight = partialRightArgs = false;
|
3770
|
+
}
|
3771
|
+
var bindData = func && func.__bindData__;
|
3772
|
+
if (bindData && bindData !== true) {
|
3773
|
+
// clone `bindData`
|
3774
|
+
bindData = slice(bindData);
|
3775
|
+
if (bindData[2]) {
|
3776
|
+
bindData[2] = slice(bindData[2]);
|
3777
|
+
}
|
3778
|
+
if (bindData[3]) {
|
3779
|
+
bindData[3] = slice(bindData[3]);
|
3780
|
+
}
|
3781
|
+
// set `thisBinding` is not previously bound
|
3782
|
+
if (isBind && !(bindData[1] & 1)) {
|
3783
|
+
bindData[4] = thisArg;
|
3784
|
+
}
|
3785
|
+
// set if previously bound but not currently (subsequent curried functions)
|
3786
|
+
if (!isBind && bindData[1] & 1) {
|
3787
|
+
bitmask |= 8;
|
3788
|
+
}
|
3789
|
+
// set curried arity if not yet set
|
3790
|
+
if (isCurry && !(bindData[1] & 4)) {
|
3791
|
+
bindData[5] = arity;
|
3792
|
+
}
|
3793
|
+
// append partial left arguments
|
3794
|
+
if (isPartial) {
|
3795
|
+
push.apply(bindData[2] || (bindData[2] = []), partialArgs);
|
3796
|
+
}
|
3797
|
+
// append partial right arguments
|
3798
|
+
if (isPartialRight) {
|
3799
|
+
unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);
|
3800
|
+
}
|
3801
|
+
// merge flags
|
3802
|
+
bindData[1] |= bitmask;
|
3803
|
+
return createWrapper.apply(null, bindData);
|
3804
|
+
}
|
3805
|
+
// fast path for `_.bind`
|
3806
|
+
var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;
|
3807
|
+
return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);
|
3808
|
+
}
|
3809
|
+
|
3810
|
+
module.exports = createWrapper;
|
3811
|
+
|
3812
|
+
|
3813
|
+
/***/ },
|
3814
|
+
/* 56 */
|
3815
|
+
/***/ function(module, exports, __webpack_require__) {
|
3816
|
+
|
3817
|
+
/**
|
3818
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3819
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3820
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3821
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3822
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3823
|
+
* Available under MIT license <http://lodash.com/license>
|
3824
|
+
*/
|
3825
|
+
|
3826
|
+
/**
|
3827
|
+
* A no-operation function.
|
3828
|
+
*
|
3829
|
+
* @static
|
3830
|
+
* @memberOf _
|
3831
|
+
* @category Utilities
|
3832
|
+
* @example
|
3833
|
+
*
|
3834
|
+
* var object = { 'name': 'fred' };
|
3835
|
+
* _.noop(object) === undefined;
|
3836
|
+
* // => true
|
3837
|
+
*/
|
3838
|
+
function noop() {
|
3839
|
+
// no operation performed
|
3840
|
+
}
|
3841
|
+
|
3842
|
+
module.exports = noop;
|
3843
|
+
|
3844
|
+
|
3845
|
+
/***/ },
|
3846
|
+
/* 57 */
|
3847
|
+
/***/ function(module, exports, __webpack_require__) {
|
3848
|
+
|
3849
|
+
/**
|
3850
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3851
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3852
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3853
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3854
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3855
|
+
* Available under MIT license <http://lodash.com/license>
|
3856
|
+
*/
|
3857
|
+
var baseCreateCallback = __webpack_require__(27),
|
3858
|
+
objectTypes = __webpack_require__(28);
|
3859
|
+
|
3860
|
+
/**
|
3861
|
+
* Iterates over own and inherited enumerable properties of an object,
|
3862
|
+
* executing the callback for each property. The callback is bound to `thisArg`
|
3863
|
+
* and invoked with three arguments; (value, key, object). Callbacks may exit
|
3864
|
+
* iteration early by explicitly returning `false`.
|
3865
|
+
*
|
3866
|
+
* @static
|
3867
|
+
* @memberOf _
|
3868
|
+
* @type Function
|
3869
|
+
* @category Objects
|
3870
|
+
* @param {Object} object The object to iterate over.
|
3871
|
+
* @param {Function} [callback=identity] The function called per iteration.
|
3872
|
+
* @param {*} [thisArg] The `this` binding of `callback`.
|
3873
|
+
* @returns {Object} Returns `object`.
|
3874
|
+
* @example
|
3875
|
+
*
|
3876
|
+
* function Shape() {
|
3877
|
+
* this.x = 0;
|
3878
|
+
* this.y = 0;
|
3879
|
+
* }
|
3880
|
+
*
|
3881
|
+
* Shape.prototype.move = function(x, y) {
|
3882
|
+
* this.x += x;
|
3883
|
+
* this.y += y;
|
3884
|
+
* };
|
3885
|
+
*
|
3886
|
+
* _.forIn(new Shape, function(value, key) {
|
3887
|
+
* console.log(key);
|
3888
|
+
* });
|
3889
|
+
* // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)
|
3890
|
+
*/
|
3891
|
+
var forIn = function(collection, callback, thisArg) {
|
3892
|
+
var index, iterable = collection, result = iterable;
|
3893
|
+
if (!iterable) return result;
|
3894
|
+
if (!objectTypes[typeof iterable]) return result;
|
3895
|
+
callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
|
3896
|
+
for (index in iterable) {
|
3897
|
+
if (callback(iterable[index], index, collection) === false) return result;
|
3898
|
+
}
|
3899
|
+
return result
|
3900
|
+
};
|
3901
|
+
|
3902
|
+
module.exports = forIn;
|
3903
|
+
|
3904
|
+
|
3905
|
+
/***/ },
|
3906
|
+
/* 58 */
|
3907
|
+
/***/ function(module, exports, __webpack_require__) {
|
3908
|
+
|
3909
|
+
/**
|
3910
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3911
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3912
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3913
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3914
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3915
|
+
* Available under MIT license <http://lodash.com/license>
|
3916
|
+
*/
|
3917
|
+
|
3918
|
+
/**
|
3919
|
+
* Checks if `value` is a function.
|
3920
|
+
*
|
3921
|
+
* @static
|
3922
|
+
* @memberOf _
|
3923
|
+
* @category Objects
|
3924
|
+
* @param {*} value The value to check.
|
3925
|
+
* @returns {boolean} Returns `true` if the `value` is a function, else `false`.
|
3926
|
+
* @example
|
3927
|
+
*
|
3928
|
+
* _.isFunction(_);
|
3929
|
+
* // => true
|
3930
|
+
*/
|
3931
|
+
function isFunction(value) {
|
3932
|
+
return typeof value == 'function';
|
3933
|
+
}
|
3934
|
+
|
3935
|
+
module.exports = isFunction;
|
3936
|
+
|
3937
|
+
|
3938
|
+
/***/ },
|
3939
|
+
/* 59 */
|
3940
|
+
/***/ function(module, exports, __webpack_require__) {
|
3941
|
+
|
3942
|
+
/**
|
3943
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
3944
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
3945
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
3946
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
3947
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
3948
|
+
* Available under MIT license <http://lodash.com/license>
|
3949
|
+
*/
|
3950
|
+
var baseCreate = __webpack_require__(61),
|
3951
|
+
isObject = __webpack_require__(22),
|
3952
|
+
setBindData = __webpack_require__(44),
|
3953
|
+
slice = __webpack_require__(42);
|
3954
|
+
|
3955
|
+
/**
|
3956
|
+
* Used for `Array` method references.
|
3957
|
+
*
|
3958
|
+
* Normally `Array.prototype` would suffice, however, using an array literal
|
3959
|
+
* avoids issues in Narwhal.
|
3960
|
+
*/
|
3961
|
+
var arrayRef = [];
|
3962
|
+
|
3963
|
+
/** Native method shortcuts */
|
3964
|
+
var push = arrayRef.push;
|
3965
|
+
|
3966
|
+
/**
|
3967
|
+
* The base implementation of `_.bind` that creates the bound function and
|
3968
|
+
* sets its meta data.
|
3969
|
+
*
|
3970
|
+
* @private
|
3971
|
+
* @param {Array} bindData The bind data array.
|
3972
|
+
* @returns {Function} Returns the new bound function.
|
3973
|
+
*/
|
3974
|
+
function baseBind(bindData) {
|
3975
|
+
var func = bindData[0],
|
3976
|
+
partialArgs = bindData[2],
|
3977
|
+
thisArg = bindData[4];
|
3978
|
+
|
3979
|
+
function bound() {
|
3980
|
+
// `Function#bind` spec
|
3981
|
+
// http://es5.github.io/#x15.3.4.5
|
3982
|
+
if (partialArgs) {
|
3983
|
+
// avoid `arguments` object deoptimizations by using `slice` instead
|
3984
|
+
// of `Array.prototype.slice.call` and not assigning `arguments` to a
|
3985
|
+
// variable as a ternary expression
|
3986
|
+
var args = slice(partialArgs);
|
3987
|
+
push.apply(args, arguments);
|
3988
|
+
}
|
3989
|
+
// mimic the constructor's `return` behavior
|
3990
|
+
// http://es5.github.io/#x13.2.2
|
3991
|
+
if (this instanceof bound) {
|
3992
|
+
// ensure `new bound` is an instance of `func`
|
3993
|
+
var thisBinding = baseCreate(func.prototype),
|
3994
|
+
result = func.apply(thisBinding, args || arguments);
|
3995
|
+
return isObject(result) ? result : thisBinding;
|
3996
|
+
}
|
3997
|
+
return func.apply(thisArg, args || arguments);
|
3998
|
+
}
|
3999
|
+
setBindData(bound, bindData);
|
4000
|
+
return bound;
|
4001
|
+
}
|
4002
|
+
|
4003
|
+
module.exports = baseBind;
|
4004
|
+
|
4005
|
+
|
4006
|
+
/***/ },
|
4007
|
+
/* 60 */
|
4008
|
+
/***/ function(module, exports, __webpack_require__) {
|
4009
|
+
|
4010
|
+
/**
|
4011
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
4012
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
4013
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
4014
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
4015
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
4016
|
+
* Available under MIT license <http://lodash.com/license>
|
4017
|
+
*/
|
4018
|
+
var baseCreate = __webpack_require__(61),
|
4019
|
+
isObject = __webpack_require__(22),
|
4020
|
+
setBindData = __webpack_require__(44),
|
4021
|
+
slice = __webpack_require__(42);
|
4022
|
+
|
4023
|
+
/**
|
4024
|
+
* Used for `Array` method references.
|
4025
|
+
*
|
4026
|
+
* Normally `Array.prototype` would suffice, however, using an array literal
|
4027
|
+
* avoids issues in Narwhal.
|
4028
|
+
*/
|
4029
|
+
var arrayRef = [];
|
4030
|
+
|
4031
|
+
/** Native method shortcuts */
|
4032
|
+
var push = arrayRef.push;
|
4033
|
+
|
4034
|
+
/**
|
4035
|
+
* The base implementation of `createWrapper` that creates the wrapper and
|
4036
|
+
* sets its meta data.
|
4037
|
+
*
|
4038
|
+
* @private
|
4039
|
+
* @param {Array} bindData The bind data array.
|
4040
|
+
* @returns {Function} Returns the new function.
|
4041
|
+
*/
|
4042
|
+
function baseCreateWrapper(bindData) {
|
4043
|
+
var func = bindData[0],
|
4044
|
+
bitmask = bindData[1],
|
4045
|
+
partialArgs = bindData[2],
|
4046
|
+
partialRightArgs = bindData[3],
|
4047
|
+
thisArg = bindData[4],
|
4048
|
+
arity = bindData[5];
|
4049
|
+
|
4050
|
+
var isBind = bitmask & 1,
|
4051
|
+
isBindKey = bitmask & 2,
|
4052
|
+
isCurry = bitmask & 4,
|
4053
|
+
isCurryBound = bitmask & 8,
|
4054
|
+
key = func;
|
4055
|
+
|
4056
|
+
function bound() {
|
4057
|
+
var thisBinding = isBind ? thisArg : this;
|
4058
|
+
if (partialArgs) {
|
4059
|
+
var args = slice(partialArgs);
|
4060
|
+
push.apply(args, arguments);
|
4061
|
+
}
|
4062
|
+
if (partialRightArgs || isCurry) {
|
4063
|
+
args || (args = slice(arguments));
|
4064
|
+
if (partialRightArgs) {
|
4065
|
+
push.apply(args, partialRightArgs);
|
4066
|
+
}
|
4067
|
+
if (isCurry && args.length < arity) {
|
4068
|
+
bitmask |= 16 & ~32;
|
4069
|
+
return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);
|
4070
|
+
}
|
4071
|
+
}
|
4072
|
+
args || (args = arguments);
|
4073
|
+
if (isBindKey) {
|
4074
|
+
func = thisBinding[key];
|
4075
|
+
}
|
4076
|
+
if (this instanceof bound) {
|
4077
|
+
thisBinding = baseCreate(func.prototype);
|
4078
|
+
var result = func.apply(thisBinding, args);
|
4079
|
+
return isObject(result) ? result : thisBinding;
|
4080
|
+
}
|
4081
|
+
return func.apply(thisBinding, args);
|
4082
|
+
}
|
4083
|
+
setBindData(bound, bindData);
|
4084
|
+
return bound;
|
4085
|
+
}
|
4086
|
+
|
4087
|
+
module.exports = baseCreateWrapper;
|
4088
|
+
|
4089
|
+
|
4090
|
+
/***/ },
|
4091
|
+
/* 61 */
|
4092
|
+
/***/ function(module, exports, __webpack_require__) {
|
4093
|
+
|
4094
|
+
/* WEBPACK VAR INJECTION */(function(global) {/**
|
4095
|
+
* Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>
|
4096
|
+
* Build: `lodash modularize modern exports="node" -o ./modern/`
|
4097
|
+
* Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
|
4098
|
+
* Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>
|
4099
|
+
* Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
4100
|
+
* Available under MIT license <http://lodash.com/license>
|
4101
|
+
*/
|
4102
|
+
var isNative = __webpack_require__(29),
|
4103
|
+
isObject = __webpack_require__(22),
|
4104
|
+
noop = __webpack_require__(56);
|
4105
|
+
|
4106
|
+
/* Native method shortcuts for methods with the same name as other `lodash` methods */
|
4107
|
+
var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;
|
4108
|
+
|
4109
|
+
/**
|
4110
|
+
* The base implementation of `_.create` without support for assigning
|
4111
|
+
* properties to the created object.
|
4112
|
+
*
|
4113
|
+
* @private
|
4114
|
+
* @param {Object} prototype The object to inherit from.
|
4115
|
+
* @returns {Object} Returns the new object.
|
4116
|
+
*/
|
4117
|
+
function baseCreate(prototype, properties) {
|
4118
|
+
return isObject(prototype) ? nativeCreate(prototype) : {};
|
4119
|
+
}
|
4120
|
+
// fallback for browsers without `Object.create`
|
4121
|
+
if (!nativeCreate) {
|
4122
|
+
baseCreate = (function() {
|
4123
|
+
function Object() {}
|
4124
|
+
return function(prototype) {
|
4125
|
+
if (isObject(prototype)) {
|
4126
|
+
Object.prototype = prototype;
|
4127
|
+
var result = new Object;
|
4128
|
+
Object.prototype = null;
|
4129
|
+
}
|
4130
|
+
return result || global.Object();
|
4131
|
+
};
|
4132
|
+
}());
|
4133
|
+
}
|
4134
|
+
|
4135
|
+
module.exports = baseCreate;
|
4136
|
+
|
4137
|
+
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
|
4138
|
+
|
4139
|
+
/***/ }
|
4140
|
+
/******/ ])
|
4141
|
+
})
|
4142
|
+
|
4143
|
+
/*
|
4144
|
+
//@ sourceMappingURL=fluxxor.js.map
|
4145
|
+
*/
|