1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | 'use strict';
|
10 |
|
11 | var _prodInvariant = require('./reactProdInvariant');
|
12 |
|
13 | var ReactChildren = require('./ReactChildren');
|
14 | var ReactElement = require('./ReactElement');
|
15 |
|
16 | var emptyFunction = require('fbjs/lib/emptyFunction');
|
17 | var invariant = require('fbjs/lib/invariant');
|
18 | var warning = require('fbjs/lib/warning');
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | var numericPropertyRegex = /^\d+$/;
|
29 |
|
30 | var warnedAboutNumeric = false;
|
31 |
|
32 | var ReactFragment = {
|
33 | |
34 |
|
35 |
|
36 |
|
37 |
|
38 | create: function (object) {
|
39 | if (typeof object !== 'object' || !object || Array.isArray(object)) {
|
40 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment only accepts a single object. Got: %s', object) : void 0;
|
41 | return object;
|
42 | }
|
43 | if (ReactElement.isValidElement(object)) {
|
44 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment does not accept a ReactElement ' + 'without a wrapper object.') : void 0;
|
45 | return object;
|
46 | }
|
47 |
|
48 | !(object.nodeType !== 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.') : _prodInvariant('0') : void 0;
|
49 |
|
50 | var result = [];
|
51 |
|
52 | for (var key in object) {
|
53 | if (process.env.NODE_ENV !== 'production') {
|
54 | if (!warnedAboutNumeric && numericPropertyRegex.test(key)) {
|
55 | process.env.NODE_ENV !== 'production' ? warning(false, 'React.addons.createFragment(...): Child objects should have ' + 'non-numeric keys so ordering is preserved.') : void 0;
|
56 | warnedAboutNumeric = true;
|
57 | }
|
58 | }
|
59 | ReactChildren.mapIntoWithKeyPrefixInternal(object[key], result, key, emptyFunction.thatReturnsArgument);
|
60 | }
|
61 |
|
62 | return result;
|
63 | }
|
64 | };
|
65 |
|
66 | module.exports = ReactFragment; |
\ | No newline at end of file |