UNPKG

48.5 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId])
11/******/ return installedModules[moduleId].exports;
12/******/
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ exports: {},
16/******/ id: moduleId,
17/******/ loaded: false
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.loaded = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // __webpack_public_path__
38/******/ __webpack_require__.p = "";
39/******/
40/******/ // Load entry module and return exports
41/******/ return __webpack_require__(0);
42/******/ })
43/************************************************************************/
44/******/ ([
45/* 0 */
46/***/ function(module, exports, __webpack_require__) {
47
48 module.exports = __webpack_require__(1);
49
50
51/***/ },
52/* 1 */
53/***/ function(module, exports, __webpack_require__) {
54
55 'use strict';
56
57 Object.defineProperty(exports, '__esModule', {
58 value: true
59 });
60
61 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
62
63 var _Highlighter = __webpack_require__(2);
64
65 var _Highlighter2 = _interopRequireDefault(_Highlighter);
66
67 exports['default'] = _Highlighter2['default'];
68 module.exports = exports['default'];
69
70/***/ },
71/* 2 */
72/***/ function(module, exports, __webpack_require__) {
73
74 'use strict';
75
76 Object.defineProperty(exports, '__esModule', {
77 value: true
78 });
79 exports['default'] = Highlighter;
80
81 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
82
83 var _highlightWordsCore = __webpack_require__(3);
84
85 var _propTypes = __webpack_require__(4);
86
87 var _propTypes2 = _interopRequireDefault(_propTypes);
88
89 var _react = __webpack_require__(13);
90
91 var _react2 = _interopRequireDefault(_react);
92
93 Highlighter.propTypes = {
94 activeClassName: _propTypes2['default'].string,
95 activeIndex: _propTypes2['default'].number,
96 autoEscape: _propTypes2['default'].bool,
97 className: _propTypes2['default'].string,
98 highlightClassName: _propTypes2['default'].string,
99 highlightStyle: _propTypes2['default'].object,
100 highlightTag: _propTypes2['default'].string,
101 sanitize: _propTypes2['default'].func,
102 searchWords: _propTypes2['default'].arrayOf(_propTypes2['default'].string).isRequired,
103 textToHighlight: _propTypes2['default'].string.isRequired,
104 unhighlightClassName: _propTypes2['default'].string,
105 unhighlightStyle: _propTypes2['default'].object
106 };
107
108 /**
109 * Highlights all occurrences of search terms (searchText) within a string (textToHighlight).
110 * This function returns an array of strings and <span>s (wrapping highlighted words).
111 */
112
113 function Highlighter(_ref) {
114 var _ref$activeClassName = _ref.activeClassName;
115 var activeClassName = _ref$activeClassName === undefined ? '' : _ref$activeClassName;
116 var _ref$activeIndex = _ref.activeIndex;
117 var activeIndex = _ref$activeIndex === undefined ? -1 : _ref$activeIndex;
118 var autoEscape = _ref.autoEscape;
119 var className = _ref.className;
120 var _ref$highlightClassName = _ref.highlightClassName;
121 var highlightClassName = _ref$highlightClassName === undefined ? '' : _ref$highlightClassName;
122 var _ref$highlightStyle = _ref.highlightStyle;
123 var highlightStyle = _ref$highlightStyle === undefined ? {} : _ref$highlightStyle;
124 var _ref$highlightTag = _ref.highlightTag;
125 var highlightTag = _ref$highlightTag === undefined ? 'mark' : _ref$highlightTag;
126 var sanitize = _ref.sanitize;
127 var searchWords = _ref.searchWords;
128 var textToHighlight = _ref.textToHighlight;
129 var _ref$unhighlightClassName = _ref.unhighlightClassName;
130 var unhighlightClassName = _ref$unhighlightClassName === undefined ? '' : _ref$unhighlightClassName;
131 var unhighlightStyle = _ref.unhighlightStyle;
132
133 var chunks = (0, _highlightWordsCore.findAll)({
134 autoEscape: autoEscape,
135 sanitize: sanitize,
136 searchWords: searchWords,
137 textToHighlight: textToHighlight
138 });
139 var HighlightTag = highlightTag;
140 var highlightCount = -1;
141 var highlightClassNames = '';
142
143 return _react2['default'].createElement(
144 'span',
145 { className: className },
146 chunks.map(function (chunk, index) {
147 var text = textToHighlight.substr(chunk.start, chunk.end - chunk.start);
148
149 if (chunk.highlight) {
150 highlightCount++;
151 highlightClassNames = highlightClassName + ' ' + (highlightCount === +activeIndex ? activeClassName : '');
152
153 return _react2['default'].createElement(
154 HighlightTag,
155 {
156 className: highlightClassNames,
157 key: index,
158 style: highlightStyle
159 },
160 text
161 );
162 } else {
163 return _react2['default'].createElement(
164 'span',
165 {
166 className: unhighlightClassName,
167 key: index,
168 style: unhighlightStyle
169 },
170 text
171 );
172 }
173 })
174 );
175 }
176
177 module.exports = exports['default'];
178
179/***/ },
180/* 3 */
181/***/ function(module, exports) {
182
183 module.exports =
184 /******/ (function(modules) { // webpackBootstrap
185 /******/ // The module cache
186 /******/ var installedModules = {};
187 /******/
188 /******/ // The require function
189 /******/ function __webpack_require__(moduleId) {
190 /******/
191 /******/ // Check if module is in cache
192 /******/ if(installedModules[moduleId])
193 /******/ return installedModules[moduleId].exports;
194 /******/
195 /******/ // Create a new module (and put it into the cache)
196 /******/ var module = installedModules[moduleId] = {
197 /******/ exports: {},
198 /******/ id: moduleId,
199 /******/ loaded: false
200 /******/ };
201 /******/
202 /******/ // Execute the module function
203 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
204 /******/
205 /******/ // Flag the module as loaded
206 /******/ module.loaded = true;
207 /******/
208 /******/ // Return the exports of the module
209 /******/ return module.exports;
210 /******/ }
211 /******/
212 /******/
213 /******/ // expose the modules object (__webpack_modules__)
214 /******/ __webpack_require__.m = modules;
215 /******/
216 /******/ // expose the module cache
217 /******/ __webpack_require__.c = installedModules;
218 /******/
219 /******/ // __webpack_public_path__
220 /******/ __webpack_require__.p = "";
221 /******/
222 /******/ // Load entry module and return exports
223 /******/ return __webpack_require__(0);
224 /******/ })
225 /************************************************************************/
226 /******/ ([
227 /* 0 */
228 /***/ function(module, exports, __webpack_require__) {
229
230 module.exports = __webpack_require__(1);
231
232
233 /***/ },
234 /* 1 */
235 /***/ function(module, exports, __webpack_require__) {
236
237 'use strict';
238
239 Object.defineProperty(exports, "__esModule", {
240 value: true
241 });
242
243 var _utils = __webpack_require__(2);
244
245 Object.defineProperty(exports, 'combineChunks', {
246 enumerable: true,
247 get: function get() {
248 return _utils.combineChunks;
249 }
250 });
251 Object.defineProperty(exports, 'fillInChunks', {
252 enumerable: true,
253 get: function get() {
254 return _utils.fillInChunks;
255 }
256 });
257 Object.defineProperty(exports, 'findAll', {
258 enumerable: true,
259 get: function get() {
260 return _utils.findAll;
261 }
262 });
263 Object.defineProperty(exports, 'findChunks', {
264 enumerable: true,
265 get: function get() {
266 return _utils.findChunks;
267 }
268 });
269
270 /***/ },
271 /* 2 */
272 /***/ function(module, exports) {
273
274 'use strict';
275
276 Object.defineProperty(exports, "__esModule", {
277 value: true
278 });
279 /**
280 * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.
281 * @return Array of "chunks" (where a Chunk is { start:number, end:number, highlight:boolean })
282 */
283 var findAll = exports.findAll = function findAll(_ref) {
284 var autoEscape = _ref.autoEscape;
285 var sanitize = _ref.sanitize;
286 var searchWords = _ref.searchWords;
287 var textToHighlight = _ref.textToHighlight;
288 return fillInChunks({
289 chunksToHighlight: combineChunks({
290 chunks: findChunks({
291 autoEscape: autoEscape,
292 sanitize: sanitize,
293 searchWords: searchWords,
294 textToHighlight: textToHighlight
295 })
296 }),
297 totalLength: textToHighlight.length
298 });
299 };
300
301 /**
302 * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.
303 * @return {start:number, end:number}[]
304 */
305 var combineChunks = exports.combineChunks = function combineChunks(_ref2) {
306 var chunks = _ref2.chunks;
307
308 chunks = chunks.sort(function (first, second) {
309 return first.start - second.start;
310 }).reduce(function (processedChunks, nextChunk) {
311 // First chunk just goes straight in the array...
312 if (processedChunks.length === 0) {
313 return [nextChunk];
314 } else {
315 // ... subsequent chunks get checked to see if they overlap...
316 var prevChunk = processedChunks.pop();
317 if (nextChunk.start <= prevChunk.end) {
318 // It may be the case that prevChunk completely surrounds nextChunk, so take the
319 // largest of the end indeces.
320 var endIndex = Math.max(prevChunk.end, nextChunk.end);
321 processedChunks.push({ start: prevChunk.start, end: endIndex });
322 } else {
323 processedChunks.push(prevChunk, nextChunk);
324 }
325 return processedChunks;
326 }
327 }, []);
328
329 return chunks;
330 };
331
332 /**
333 * Examine text for any matches.
334 * If we find matches, add them to the returned array as a "chunk" object ({start:number, end:number}).
335 * @return {start:number, end:number}[]
336 */
337 var findChunks = exports.findChunks = function findChunks(_ref3) {
338 var autoEscape = _ref3.autoEscape;
339 var _ref3$sanitize = _ref3.sanitize;
340 var sanitize = _ref3$sanitize === undefined ? identity : _ref3$sanitize;
341 var searchWords = _ref3.searchWords;
342 var textToHighlight = _ref3.textToHighlight;
343
344 textToHighlight = sanitize(textToHighlight);
345
346 return searchWords.filter(function (searchWord) {
347 return searchWord;
348 }) // Remove empty words
349 .reduce(function (chunks, searchWord) {
350 searchWord = sanitize(searchWord);
351
352 if (autoEscape) {
353 searchWord = escapeRegExpFn(searchWord);
354 }
355
356 var regex = new RegExp(searchWord, 'gi');
357
358 var match = void 0;
359 while (match = regex.exec(textToHighlight)) {
360 chunks.push({
361 start: match.index,
362 end: regex.lastIndex
363 });
364 }
365
366 return chunks;
367 }, []);
368 };
369
370 /**
371 * Given a set of chunks to highlight, create an additional set of chunks
372 * to represent the bits of text between the highlighted text.
373 * @param chunksToHighlight {start:number, end:number}[]
374 * @param totalLength number
375 * @return {start:number, end:number, highlight:boolean}[]
376 */
377 var fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {
378 var chunksToHighlight = _ref4.chunksToHighlight;
379 var totalLength = _ref4.totalLength;
380
381 var allChunks = [];
382 var append = function append(start, end, highlight) {
383 if (end - start > 0) {
384 allChunks.push({
385 start: start,
386 end: end,
387 highlight: highlight
388 });
389 }
390 };
391
392 if (chunksToHighlight.length === 0) {
393 append(0, totalLength, false);
394 } else {
395 (function () {
396 var lastIndex = 0;
397 chunksToHighlight.forEach(function (chunk) {
398 append(lastIndex, chunk.start, false);
399 append(chunk.start, chunk.end, true);
400 lastIndex = chunk.end;
401 });
402 append(lastIndex, totalLength, false);
403 })();
404 }
405 return allChunks;
406 };
407
408 function identity(value) {
409 return value;
410 }
411
412 function escapeRegExpFn(str) {
413 return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
414 }
415
416 /***/ }
417 /******/ ]);
418 //# sourceMappingURL=index.js.map
419
420/***/ },
421/* 4 */
422/***/ function(module, exports, __webpack_require__) {
423
424 /* WEBPACK VAR INJECTION */(function(process) {/**
425 * Copyright 2013-present, Facebook, Inc.
426 * All rights reserved.
427 *
428 * This source code is licensed under the BSD-style license found in the
429 * LICENSE file in the root directory of this source tree. An additional grant
430 * of patent rights can be found in the PATENTS file in the same directory.
431 */
432
433 if (process.env.NODE_ENV !== 'production') {
434 var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
435 Symbol.for &&
436 Symbol.for('react.element')) ||
437 0xeac7;
438
439 var isValidElement = function(object) {
440 return typeof object === 'object' &&
441 object !== null &&
442 object.$$typeof === REACT_ELEMENT_TYPE;
443 };
444
445 // By explicitly using `prop-types` you are opting into new development behavior.
446 // http://fb.me/prop-types-in-prod
447 var throwOnDirectAccess = true;
448 module.exports = __webpack_require__(6)(isValidElement, throwOnDirectAccess);
449 } else {
450 // By explicitly using `prop-types` you are opting into new production behavior.
451 // http://fb.me/prop-types-in-prod
452 module.exports = __webpack_require__(12)();
453 }
454
455 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
456
457/***/ },
458/* 5 */
459/***/ function(module, exports) {
460
461 // shim for using process in browser
462 var process = module.exports = {};
463
464 // cached from whatever global is present so that test runners that stub it
465 // don't break things. But we need to wrap it in a try catch in case it is
466 // wrapped in strict mode code which doesn't define any globals. It's inside a
467 // function because try/catches deoptimize in certain engines.
468
469 var cachedSetTimeout;
470 var cachedClearTimeout;
471
472 function defaultSetTimout() {
473 throw new Error('setTimeout has not been defined');
474 }
475 function defaultClearTimeout () {
476 throw new Error('clearTimeout has not been defined');
477 }
478 (function () {
479 try {
480 if (typeof setTimeout === 'function') {
481 cachedSetTimeout = setTimeout;
482 } else {
483 cachedSetTimeout = defaultSetTimout;
484 }
485 } catch (e) {
486 cachedSetTimeout = defaultSetTimout;
487 }
488 try {
489 if (typeof clearTimeout === 'function') {
490 cachedClearTimeout = clearTimeout;
491 } else {
492 cachedClearTimeout = defaultClearTimeout;
493 }
494 } catch (e) {
495 cachedClearTimeout = defaultClearTimeout;
496 }
497 } ())
498 function runTimeout(fun) {
499 if (cachedSetTimeout === setTimeout) {
500 //normal enviroments in sane situations
501 return setTimeout(fun, 0);
502 }
503 // if setTimeout wasn't available but was latter defined
504 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
505 cachedSetTimeout = setTimeout;
506 return setTimeout(fun, 0);
507 }
508 try {
509 // when when somebody has screwed with setTimeout but no I.E. maddness
510 return cachedSetTimeout(fun, 0);
511 } catch(e){
512 try {
513 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
514 return cachedSetTimeout.call(null, fun, 0);
515 } catch(e){
516 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
517 return cachedSetTimeout.call(this, fun, 0);
518 }
519 }
520
521
522 }
523 function runClearTimeout(marker) {
524 if (cachedClearTimeout === clearTimeout) {
525 //normal enviroments in sane situations
526 return clearTimeout(marker);
527 }
528 // if clearTimeout wasn't available but was latter defined
529 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
530 cachedClearTimeout = clearTimeout;
531 return clearTimeout(marker);
532 }
533 try {
534 // when when somebody has screwed with setTimeout but no I.E. maddness
535 return cachedClearTimeout(marker);
536 } catch (e){
537 try {
538 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
539 return cachedClearTimeout.call(null, marker);
540 } catch (e){
541 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
542 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
543 return cachedClearTimeout.call(this, marker);
544 }
545 }
546
547
548
549 }
550 var queue = [];
551 var draining = false;
552 var currentQueue;
553 var queueIndex = -1;
554
555 function cleanUpNextTick() {
556 if (!draining || !currentQueue) {
557 return;
558 }
559 draining = false;
560 if (currentQueue.length) {
561 queue = currentQueue.concat(queue);
562 } else {
563 queueIndex = -1;
564 }
565 if (queue.length) {
566 drainQueue();
567 }
568 }
569
570 function drainQueue() {
571 if (draining) {
572 return;
573 }
574 var timeout = runTimeout(cleanUpNextTick);
575 draining = true;
576
577 var len = queue.length;
578 while(len) {
579 currentQueue = queue;
580 queue = [];
581 while (++queueIndex < len) {
582 if (currentQueue) {
583 currentQueue[queueIndex].run();
584 }
585 }
586 queueIndex = -1;
587 len = queue.length;
588 }
589 currentQueue = null;
590 draining = false;
591 runClearTimeout(timeout);
592 }
593
594 process.nextTick = function (fun) {
595 var args = new Array(arguments.length - 1);
596 if (arguments.length > 1) {
597 for (var i = 1; i < arguments.length; i++) {
598 args[i - 1] = arguments[i];
599 }
600 }
601 queue.push(new Item(fun, args));
602 if (queue.length === 1 && !draining) {
603 runTimeout(drainQueue);
604 }
605 };
606
607 // v8 likes predictible objects
608 function Item(fun, array) {
609 this.fun = fun;
610 this.array = array;
611 }
612 Item.prototype.run = function () {
613 this.fun.apply(null, this.array);
614 };
615 process.title = 'browser';
616 process.browser = true;
617 process.env = {};
618 process.argv = [];
619 process.version = ''; // empty string to avoid regexp issues
620 process.versions = {};
621
622 function noop() {}
623
624 process.on = noop;
625 process.addListener = noop;
626 process.once = noop;
627 process.off = noop;
628 process.removeListener = noop;
629 process.removeAllListeners = noop;
630 process.emit = noop;
631
632 process.binding = function (name) {
633 throw new Error('process.binding is not supported');
634 };
635
636 process.cwd = function () { return '/' };
637 process.chdir = function (dir) {
638 throw new Error('process.chdir is not supported');
639 };
640 process.umask = function() { return 0; };
641
642
643/***/ },
644/* 6 */
645/***/ function(module, exports, __webpack_require__) {
646
647 /* WEBPACK VAR INJECTION */(function(process) {/**
648 * Copyright 2013-present, Facebook, Inc.
649 * All rights reserved.
650 *
651 * This source code is licensed under the BSD-style license found in the
652 * LICENSE file in the root directory of this source tree. An additional grant
653 * of patent rights can be found in the PATENTS file in the same directory.
654 */
655
656 'use strict';
657
658 var emptyFunction = __webpack_require__(7);
659 var invariant = __webpack_require__(8);
660 var warning = __webpack_require__(9);
661
662 var ReactPropTypesSecret = __webpack_require__(10);
663 var checkPropTypes = __webpack_require__(11);
664
665 module.exports = function(isValidElement, throwOnDirectAccess) {
666 /* global Symbol */
667 var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
668 var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
669
670 /**
671 * Returns the iterator method function contained on the iterable object.
672 *
673 * Be sure to invoke the function with the iterable as context:
674 *
675 * var iteratorFn = getIteratorFn(myIterable);
676 * if (iteratorFn) {
677 * var iterator = iteratorFn.call(myIterable);
678 * ...
679 * }
680 *
681 * @param {?object} maybeIterable
682 * @return {?function}
683 */
684 function getIteratorFn(maybeIterable) {
685 var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
686 if (typeof iteratorFn === 'function') {
687 return iteratorFn;
688 }
689 }
690
691 /**
692 * Collection of methods that allow declaration and validation of props that are
693 * supplied to React components. Example usage:
694 *
695 * var Props = require('ReactPropTypes');
696 * var MyArticle = React.createClass({
697 * propTypes: {
698 * // An optional string prop named "description".
699 * description: Props.string,
700 *
701 * // A required enum prop named "category".
702 * category: Props.oneOf(['News','Photos']).isRequired,
703 *
704 * // A prop named "dialog" that requires an instance of Dialog.
705 * dialog: Props.instanceOf(Dialog).isRequired
706 * },
707 * render: function() { ... }
708 * });
709 *
710 * A more formal specification of how these methods are used:
711 *
712 * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
713 * decl := ReactPropTypes.{type}(.isRequired)?
714 *
715 * Each and every declaration produces a function with the same signature. This
716 * allows the creation of custom validation functions. For example:
717 *
718 * var MyLink = React.createClass({
719 * propTypes: {
720 * // An optional string or URI prop named "href".
721 * href: function(props, propName, componentName) {
722 * var propValue = props[propName];
723 * if (propValue != null && typeof propValue !== 'string' &&
724 * !(propValue instanceof URI)) {
725 * return new Error(
726 * 'Expected a string or an URI for ' + propName + ' in ' +
727 * componentName
728 * );
729 * }
730 * }
731 * },
732 * render: function() {...}
733 * });
734 *
735 * @internal
736 */
737
738 var ANONYMOUS = '<<anonymous>>';
739
740 // Important!
741 // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
742 var ReactPropTypes = {
743 array: createPrimitiveTypeChecker('array'),
744 bool: createPrimitiveTypeChecker('boolean'),
745 func: createPrimitiveTypeChecker('function'),
746 number: createPrimitiveTypeChecker('number'),
747 object: createPrimitiveTypeChecker('object'),
748 string: createPrimitiveTypeChecker('string'),
749 symbol: createPrimitiveTypeChecker('symbol'),
750
751 any: createAnyTypeChecker(),
752 arrayOf: createArrayOfTypeChecker,
753 element: createElementTypeChecker(),
754 instanceOf: createInstanceTypeChecker,
755 node: createNodeChecker(),
756 objectOf: createObjectOfTypeChecker,
757 oneOf: createEnumTypeChecker,
758 oneOfType: createUnionTypeChecker,
759 shape: createShapeTypeChecker
760 };
761
762 /**
763 * inlined Object.is polyfill to avoid requiring consumers ship their own
764 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
765 */
766 /*eslint-disable no-self-compare*/
767 function is(x, y) {
768 // SameValue algorithm
769 if (x === y) {
770 // Steps 1-5, 7-10
771 // Steps 6.b-6.e: +0 != -0
772 return x !== 0 || 1 / x === 1 / y;
773 } else {
774 // Step 6.a: NaN == NaN
775 return x !== x && y !== y;
776 }
777 }
778 /*eslint-enable no-self-compare*/
779
780 /**
781 * We use an Error-like object for backward compatibility as people may call
782 * PropTypes directly and inspect their output. However, we don't use real
783 * Errors anymore. We don't inspect their stack anyway, and creating them
784 * is prohibitively expensive if they are created too often, such as what
785 * happens in oneOfType() for any type before the one that matched.
786 */
787 function PropTypeError(message) {
788 this.message = message;
789 this.stack = '';
790 }
791 // Make `instanceof Error` still work for returned errors.
792 PropTypeError.prototype = Error.prototype;
793
794 function createChainableTypeChecker(validate) {
795 if (process.env.NODE_ENV !== 'production') {
796 var manualPropTypeCallCache = {};
797 var manualPropTypeWarningCount = 0;
798 }
799 function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
800 componentName = componentName || ANONYMOUS;
801 propFullName = propFullName || propName;
802
803 if (secret !== ReactPropTypesSecret) {
804 if (throwOnDirectAccess) {
805 // New behavior only for users of `prop-types` package
806 invariant(
807 false,
808 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
809 'Use `PropTypes.checkPropTypes()` to call them. ' +
810 'Read more at http://fb.me/use-check-prop-types'
811 );
812 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
813 // Old behavior for people using React.PropTypes
814 var cacheKey = componentName + ':' + propName;
815 if (
816 !manualPropTypeCallCache[cacheKey] &&
817 // Avoid spamming the console because they are often not actionable except for lib authors
818 manualPropTypeWarningCount < 3
819 ) {
820 warning(
821 false,
822 'You are manually calling a React.PropTypes validation ' +
823 'function for the `%s` prop on `%s`. This is deprecated ' +
824 'and will throw in the standalone `prop-types` package. ' +
825 'You may be seeing this warning due to a third-party PropTypes ' +
826 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
827 propFullName,
828 componentName
829 );
830 manualPropTypeCallCache[cacheKey] = true;
831 manualPropTypeWarningCount++;
832 }
833 }
834 }
835 if (props[propName] == null) {
836 if (isRequired) {
837 if (props[propName] === null) {
838 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
839 }
840 return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
841 }
842 return null;
843 } else {
844 return validate(props, propName, componentName, location, propFullName);
845 }
846 }
847
848 var chainedCheckType = checkType.bind(null, false);
849 chainedCheckType.isRequired = checkType.bind(null, true);
850
851 return chainedCheckType;
852 }
853
854 function createPrimitiveTypeChecker(expectedType) {
855 function validate(props, propName, componentName, location, propFullName, secret) {
856 var propValue = props[propName];
857 var propType = getPropType(propValue);
858 if (propType !== expectedType) {
859 // `propValue` being instance of, say, date/regexp, pass the 'object'
860 // check, but we can offer a more precise error message here rather than
861 // 'of type `object`'.
862 var preciseType = getPreciseType(propValue);
863
864 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
865 }
866 return null;
867 }
868 return createChainableTypeChecker(validate);
869 }
870
871 function createAnyTypeChecker() {
872 return createChainableTypeChecker(emptyFunction.thatReturnsNull);
873 }
874
875 function createArrayOfTypeChecker(typeChecker) {
876 function validate(props, propName, componentName, location, propFullName) {
877 if (typeof typeChecker !== 'function') {
878 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
879 }
880 var propValue = props[propName];
881 if (!Array.isArray(propValue)) {
882 var propType = getPropType(propValue);
883 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
884 }
885 for (var i = 0; i < propValue.length; i++) {
886 var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
887 if (error instanceof Error) {
888 return error;
889 }
890 }
891 return null;
892 }
893 return createChainableTypeChecker(validate);
894 }
895
896 function createElementTypeChecker() {
897 function validate(props, propName, componentName, location, propFullName) {
898 var propValue = props[propName];
899 if (!isValidElement(propValue)) {
900 var propType = getPropType(propValue);
901 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
902 }
903 return null;
904 }
905 return createChainableTypeChecker(validate);
906 }
907
908 function createInstanceTypeChecker(expectedClass) {
909 function validate(props, propName, componentName, location, propFullName) {
910 if (!(props[propName] instanceof expectedClass)) {
911 var expectedClassName = expectedClass.name || ANONYMOUS;
912 var actualClassName = getClassName(props[propName]);
913 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
914 }
915 return null;
916 }
917 return createChainableTypeChecker(validate);
918 }
919
920 function createEnumTypeChecker(expectedValues) {
921 if (!Array.isArray(expectedValues)) {
922 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
923 return emptyFunction.thatReturnsNull;
924 }
925
926 function validate(props, propName, componentName, location, propFullName) {
927 var propValue = props[propName];
928 for (var i = 0; i < expectedValues.length; i++) {
929 if (is(propValue, expectedValues[i])) {
930 return null;
931 }
932 }
933
934 var valuesString = JSON.stringify(expectedValues);
935 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
936 }
937 return createChainableTypeChecker(validate);
938 }
939
940 function createObjectOfTypeChecker(typeChecker) {
941 function validate(props, propName, componentName, location, propFullName) {
942 if (typeof typeChecker !== 'function') {
943 return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
944 }
945 var propValue = props[propName];
946 var propType = getPropType(propValue);
947 if (propType !== 'object') {
948 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
949 }
950 for (var key in propValue) {
951 if (propValue.hasOwnProperty(key)) {
952 var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
953 if (error instanceof Error) {
954 return error;
955 }
956 }
957 }
958 return null;
959 }
960 return createChainableTypeChecker(validate);
961 }
962
963 function createUnionTypeChecker(arrayOfTypeCheckers) {
964 if (!Array.isArray(arrayOfTypeCheckers)) {
965 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
966 return emptyFunction.thatReturnsNull;
967 }
968
969 function validate(props, propName, componentName, location, propFullName) {
970 for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
971 var checker = arrayOfTypeCheckers[i];
972 if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
973 return null;
974 }
975 }
976
977 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
978 }
979 return createChainableTypeChecker(validate);
980 }
981
982 function createNodeChecker() {
983 function validate(props, propName, componentName, location, propFullName) {
984 if (!isNode(props[propName])) {
985 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
986 }
987 return null;
988 }
989 return createChainableTypeChecker(validate);
990 }
991
992 function createShapeTypeChecker(shapeTypes) {
993 function validate(props, propName, componentName, location, propFullName) {
994 var propValue = props[propName];
995 var propType = getPropType(propValue);
996 if (propType !== 'object') {
997 return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
998 }
999 for (var key in shapeTypes) {
1000 var checker = shapeTypes[key];
1001 if (!checker) {
1002 continue;
1003 }
1004 var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
1005 if (error) {
1006 return error;
1007 }
1008 }
1009 return null;
1010 }
1011 return createChainableTypeChecker(validate);
1012 }
1013
1014 function isNode(propValue) {
1015 switch (typeof propValue) {
1016 case 'number':
1017 case 'string':
1018 case 'undefined':
1019 return true;
1020 case 'boolean':
1021 return !propValue;
1022 case 'object':
1023 if (Array.isArray(propValue)) {
1024 return propValue.every(isNode);
1025 }
1026 if (propValue === null || isValidElement(propValue)) {
1027 return true;
1028 }
1029
1030 var iteratorFn = getIteratorFn(propValue);
1031 if (iteratorFn) {
1032 var iterator = iteratorFn.call(propValue);
1033 var step;
1034 if (iteratorFn !== propValue.entries) {
1035 while (!(step = iterator.next()).done) {
1036 if (!isNode(step.value)) {
1037 return false;
1038 }
1039 }
1040 } else {
1041 // Iterator will provide entry [k,v] tuples rather than values.
1042 while (!(step = iterator.next()).done) {
1043 var entry = step.value;
1044 if (entry) {
1045 if (!isNode(entry[1])) {
1046 return false;
1047 }
1048 }
1049 }
1050 }
1051 } else {
1052 return false;
1053 }
1054
1055 return true;
1056 default:
1057 return false;
1058 }
1059 }
1060
1061 function isSymbol(propType, propValue) {
1062 // Native Symbol.
1063 if (propType === 'symbol') {
1064 return true;
1065 }
1066
1067 // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
1068 if (propValue['@@toStringTag'] === 'Symbol') {
1069 return true;
1070 }
1071
1072 // Fallback for non-spec compliant Symbols which are polyfilled.
1073 if (typeof Symbol === 'function' && propValue instanceof Symbol) {
1074 return true;
1075 }
1076
1077 return false;
1078 }
1079
1080 // Equivalent of `typeof` but with special handling for array and regexp.
1081 function getPropType(propValue) {
1082 var propType = typeof propValue;
1083 if (Array.isArray(propValue)) {
1084 return 'array';
1085 }
1086 if (propValue instanceof RegExp) {
1087 // Old webkits (at least until Android 4.0) return 'function' rather than
1088 // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
1089 // passes PropTypes.object.
1090 return 'object';
1091 }
1092 if (isSymbol(propType, propValue)) {
1093 return 'symbol';
1094 }
1095 return propType;
1096 }
1097
1098 // This handles more types than `getPropType`. Only used for error messages.
1099 // See `createPrimitiveTypeChecker`.
1100 function getPreciseType(propValue) {
1101 var propType = getPropType(propValue);
1102 if (propType === 'object') {
1103 if (propValue instanceof Date) {
1104 return 'date';
1105 } else if (propValue instanceof RegExp) {
1106 return 'regexp';
1107 }
1108 }
1109 return propType;
1110 }
1111
1112 // Returns class name of the object, if any.
1113 function getClassName(propValue) {
1114 if (!propValue.constructor || !propValue.constructor.name) {
1115 return ANONYMOUS;
1116 }
1117 return propValue.constructor.name;
1118 }
1119
1120 ReactPropTypes.checkPropTypes = checkPropTypes;
1121 ReactPropTypes.PropTypes = ReactPropTypes;
1122
1123 return ReactPropTypes;
1124 };
1125
1126 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
1127
1128/***/ },
1129/* 7 */
1130/***/ function(module, exports) {
1131
1132 "use strict";
1133
1134 /**
1135 * Copyright (c) 2013-present, Facebook, Inc.
1136 * All rights reserved.
1137 *
1138 * This source code is licensed under the BSD-style license found in the
1139 * LICENSE file in the root directory of this source tree. An additional grant
1140 * of patent rights can be found in the PATENTS file in the same directory.
1141 *
1142 *
1143 */
1144
1145 function makeEmptyFunction(arg) {
1146 return function () {
1147 return arg;
1148 };
1149 }
1150
1151 /**
1152 * This function accepts and discards inputs; it has no side effects. This is
1153 * primarily useful idiomatically for overridable function endpoints which
1154 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
1155 */
1156 var emptyFunction = function emptyFunction() {};
1157
1158 emptyFunction.thatReturns = makeEmptyFunction;
1159 emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
1160 emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
1161 emptyFunction.thatReturnsNull = makeEmptyFunction(null);
1162 emptyFunction.thatReturnsThis = function () {
1163 return this;
1164 };
1165 emptyFunction.thatReturnsArgument = function (arg) {
1166 return arg;
1167 };
1168
1169 module.exports = emptyFunction;
1170
1171/***/ },
1172/* 8 */
1173/***/ function(module, exports, __webpack_require__) {
1174
1175 /* WEBPACK VAR INJECTION */(function(process) {/**
1176 * Copyright (c) 2013-present, Facebook, Inc.
1177 * All rights reserved.
1178 *
1179 * This source code is licensed under the BSD-style license found in the
1180 * LICENSE file in the root directory of this source tree. An additional grant
1181 * of patent rights can be found in the PATENTS file in the same directory.
1182 *
1183 */
1184
1185 'use strict';
1186
1187 /**
1188 * Use invariant() to assert state which your program assumes to be true.
1189 *
1190 * Provide sprintf-style format (only %s is supported) and arguments
1191 * to provide information about what broke and what you were
1192 * expecting.
1193 *
1194 * The invariant message will be stripped in production, but the invariant
1195 * will remain to ensure logic does not differ in production.
1196 */
1197
1198 var validateFormat = function validateFormat(format) {};
1199
1200 if (process.env.NODE_ENV !== 'production') {
1201 validateFormat = function validateFormat(format) {
1202 if (format === undefined) {
1203 throw new Error('invariant requires an error message argument');
1204 }
1205 };
1206 }
1207
1208 function invariant(condition, format, a, b, c, d, e, f) {
1209 validateFormat(format);
1210
1211 if (!condition) {
1212 var error;
1213 if (format === undefined) {
1214 error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
1215 } else {
1216 var args = [a, b, c, d, e, f];
1217 var argIndex = 0;
1218 error = new Error(format.replace(/%s/g, function () {
1219 return args[argIndex++];
1220 }));
1221 error.name = 'Invariant Violation';
1222 }
1223
1224 error.framesToPop = 1; // we don't care about invariant's own frame
1225 throw error;
1226 }
1227 }
1228
1229 module.exports = invariant;
1230 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
1231
1232/***/ },
1233/* 9 */
1234/***/ function(module, exports, __webpack_require__) {
1235
1236 /* WEBPACK VAR INJECTION */(function(process) {/**
1237 * Copyright 2014-2015, Facebook, Inc.
1238 * All rights reserved.
1239 *
1240 * This source code is licensed under the BSD-style license found in the
1241 * LICENSE file in the root directory of this source tree. An additional grant
1242 * of patent rights can be found in the PATENTS file in the same directory.
1243 *
1244 */
1245
1246 'use strict';
1247
1248 var emptyFunction = __webpack_require__(7);
1249
1250 /**
1251 * Similar to invariant but only logs a warning if the condition is not met.
1252 * This can be used to log issues in development environments in critical
1253 * paths. Removing the logging code for production environments will keep the
1254 * same logic and follow the same code paths.
1255 */
1256
1257 var warning = emptyFunction;
1258
1259 if (process.env.NODE_ENV !== 'production') {
1260 (function () {
1261 var printWarning = function printWarning(format) {
1262 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1263 args[_key - 1] = arguments[_key];
1264 }
1265
1266 var argIndex = 0;
1267 var message = 'Warning: ' + format.replace(/%s/g, function () {
1268 return args[argIndex++];
1269 });
1270 if (typeof console !== 'undefined') {
1271 console.error(message);
1272 }
1273 try {
1274 // --- Welcome to debugging React ---
1275 // This error was thrown as a convenience so that you can use this stack
1276 // to find the callsite that caused this warning to fire.
1277 throw new Error(message);
1278 } catch (x) {}
1279 };
1280
1281 warning = function warning(condition, format) {
1282 if (format === undefined) {
1283 throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
1284 }
1285
1286 if (format.indexOf('Failed Composite propType: ') === 0) {
1287 return; // Ignore CompositeComponent proptype check.
1288 }
1289
1290 if (!condition) {
1291 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
1292 args[_key2 - 2] = arguments[_key2];
1293 }
1294
1295 printWarning.apply(undefined, [format].concat(args));
1296 }
1297 };
1298 })();
1299 }
1300
1301 module.exports = warning;
1302 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
1303
1304/***/ },
1305/* 10 */
1306/***/ function(module, exports) {
1307
1308 /**
1309 * Copyright 2013-present, Facebook, Inc.
1310 * All rights reserved.
1311 *
1312 * This source code is licensed under the BSD-style license found in the
1313 * LICENSE file in the root directory of this source tree. An additional grant
1314 * of patent rights can be found in the PATENTS file in the same directory.
1315 */
1316
1317 'use strict';
1318
1319 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
1320
1321 module.exports = ReactPropTypesSecret;
1322
1323
1324/***/ },
1325/* 11 */
1326/***/ function(module, exports, __webpack_require__) {
1327
1328 /* WEBPACK VAR INJECTION */(function(process) {/**
1329 * Copyright 2013-present, Facebook, Inc.
1330 * All rights reserved.
1331 *
1332 * This source code is licensed under the BSD-style license found in the
1333 * LICENSE file in the root directory of this source tree. An additional grant
1334 * of patent rights can be found in the PATENTS file in the same directory.
1335 */
1336
1337 'use strict';
1338
1339 if (process.env.NODE_ENV !== 'production') {
1340 var invariant = __webpack_require__(8);
1341 var warning = __webpack_require__(9);
1342 var ReactPropTypesSecret = __webpack_require__(10);
1343 var loggedTypeFailures = {};
1344 }
1345
1346 /**
1347 * Assert that the values match with the type specs.
1348 * Error messages are memorized and will only be shown once.
1349 *
1350 * @param {object} typeSpecs Map of name to a ReactPropType
1351 * @param {object} values Runtime values that need to be type-checked
1352 * @param {string} location e.g. "prop", "context", "child context"
1353 * @param {string} componentName Name of the component for error messages.
1354 * @param {?Function} getStack Returns the component stack.
1355 * @private
1356 */
1357 function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
1358 if (process.env.NODE_ENV !== 'production') {
1359 for (var typeSpecName in typeSpecs) {
1360 if (typeSpecs.hasOwnProperty(typeSpecName)) {
1361 var error;
1362 // Prop type validation may throw. In case they do, we don't want to
1363 // fail the render phase where it didn't fail before. So we log it.
1364 // After these have been cleaned up, we'll let them throw.
1365 try {
1366 // This is intentionally an invariant that gets caught. It's the same
1367 // behavior as without this statement except with a better message.
1368 invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);
1369 error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
1370 } catch (ex) {
1371 error = ex;
1372 }
1373 warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);
1374 if (error instanceof Error && !(error.message in loggedTypeFailures)) {
1375 // Only monitor this failure once because there tends to be a lot of the
1376 // same error.
1377 loggedTypeFailures[error.message] = true;
1378
1379 var stack = getStack ? getStack() : '';
1380
1381 warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
1382 }
1383 }
1384 }
1385 }
1386 }
1387
1388 module.exports = checkPropTypes;
1389
1390 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))
1391
1392/***/ },
1393/* 12 */
1394/***/ function(module, exports, __webpack_require__) {
1395
1396 /**
1397 * Copyright 2013-present, Facebook, Inc.
1398 * All rights reserved.
1399 *
1400 * This source code is licensed under the BSD-style license found in the
1401 * LICENSE file in the root directory of this source tree. An additional grant
1402 * of patent rights can be found in the PATENTS file in the same directory.
1403 */
1404
1405 'use strict';
1406
1407 var emptyFunction = __webpack_require__(7);
1408 var invariant = __webpack_require__(8);
1409
1410 module.exports = function() {
1411 // Important!
1412 // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
1413 function shim() {
1414 invariant(
1415 false,
1416 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
1417 'Use PropTypes.checkPropTypes() to call them. ' +
1418 'Read more at http://fb.me/use-check-prop-types'
1419 );
1420 };
1421 shim.isRequired = shim;
1422 function getShim() {
1423 return shim;
1424 };
1425 var ReactPropTypes = {
1426 array: shim,
1427 bool: shim,
1428 func: shim,
1429 number: shim,
1430 object: shim,
1431 string: shim,
1432 symbol: shim,
1433
1434 any: shim,
1435 arrayOf: getShim,
1436 element: shim,
1437 instanceOf: getShim,
1438 node: shim,
1439 objectOf: getShim,
1440 oneOf: getShim,
1441 oneOfType: getShim,
1442 shape: getShim
1443 };
1444
1445 ReactPropTypes.checkPropTypes = emptyFunction;
1446 ReactPropTypes.PropTypes = ReactPropTypes;
1447
1448 return ReactPropTypes;
1449 };
1450
1451
1452/***/ },
1453/* 13 */
1454/***/ function(module, exports) {
1455
1456 module.exports = require("react");
1457
1458/***/ }
1459/******/ ]);
1460//# sourceMappingURL=main.js.map
\No newline at end of file