react 0.7.1 → 0.10.0-rc1
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.
- package/README.md +10 -231
- package/addons.js +1 -0
- package/lib/AutoFocusMixin.js +32 -0
- package/lib/CSSCore.js +115 -0
- package/lib/CSSProperty.js +121 -0
- package/lib/CSSPropertyOperations.js +97 -0
- package/lib/ChangeEventPlugin.js +387 -0
- package/lib/ClientReactRootIndex.js +30 -0
- package/lib/CompositionEventPlugin.js +260 -0
- package/lib/DOMChildrenOperations.js +171 -0
- package/lib/DOMProperty.js +270 -0
- package/lib/DOMPropertyOperations.js +181 -0
- package/lib/Danger.js +187 -0
- package/lib/DefaultDOMPropertyConfig.js +196 -0
- package/lib/DefaultEventPluginOrder.js +44 -0
- package/lib/EnterLeaveEventPlugin.js +145 -0
- package/lib/EventConstants.js +76 -0
- package/lib/EventListener.js +69 -0
- package/lib/EventPluginHub.js +295 -0
- package/lib/EventPluginRegistry.js +281 -0
- package/lib/EventPluginUtils.js +214 -0
- package/lib/EventPropagators.js +143 -0
- package/lib/ExecutionEnvironment.js +44 -0
- package/lib/LinkedStateMixin.js +46 -0
- package/lib/LinkedValueUtils.js +160 -0
- package/lib/MobileSafariClickEventPlugin.js +63 -0
- package/lib/PooledClass.js +119 -0
- package/lib/React.js +97 -0
- package/lib/ReactBrowserComponentMixin.js +42 -0
- package/lib/ReactCSSTransitionGroup.js +65 -0
- package/lib/ReactCSSTransitionGroupChild.js +138 -0
- package/lib/ReactChildren.js +132 -0
- package/lib/ReactComponent.js +595 -0
- package/lib/ReactComponentBrowserEnvironment.js +124 -0
- package/lib/ReactCompositeComponent.js +1587 -0
- package/lib/ReactContext.js +67 -0
- package/lib/ReactCurrentOwner.js +39 -0
- package/lib/ReactDOM.js +207 -0
- package/lib/ReactDOMButton.js +69 -0
- package/lib/ReactDOMComponent.js +416 -0
- package/lib/ReactDOMForm.js +62 -0
- package/lib/ReactDOMIDOperations.js +218 -0
- package/lib/ReactDOMImg.js +61 -0
- package/lib/ReactDOMInput.js +182 -0
- package/lib/ReactDOMOption.js +55 -0
- package/lib/ReactDOMSelect.js +180 -0
- package/lib/ReactDOMSelection.js +189 -0
- package/lib/ReactDOMTextarea.js +144 -0
- package/lib/ReactDefaultBatchingStrategy.js +75 -0
- package/lib/ReactDefaultInjection.js +125 -0
- package/lib/ReactDefaultPerf.js +244 -0
- package/lib/ReactDefaultPerfAnalysis.js +199 -0
- package/lib/ReactErrorUtils.js +37 -0
- package/lib/ReactEventEmitter.js +339 -0
- package/lib/ReactEventEmitterMixin.js +57 -0
- package/lib/ReactEventTopLevelCallback.js +149 -0
- package/lib/ReactInjection.js +43 -0
- package/lib/ReactInputSelection.js +141 -0
- package/lib/ReactInstanceHandles.js +338 -0
- package/lib/ReactLink.js +54 -0
- package/lib/ReactMarkupChecksum.js +53 -0
- package/lib/ReactMount.js +649 -0
- package/lib/ReactMountReady.js +95 -0
- package/lib/ReactMultiChild.js +432 -0
- package/lib/ReactMultiChildUpdateTypes.js +38 -0
- package/lib/ReactOwner.js +159 -0
- package/lib/ReactPerf.js +85 -0
- package/lib/ReactPropTransferer.js +147 -0
- package/lib/ReactPropTypeLocationNames.js +31 -0
- package/lib/ReactPropTypeLocations.js +29 -0
- package/lib/ReactPropTypes.js +359 -0
- package/lib/ReactPutListenerQueue.js +61 -0
- package/lib/ReactReconcileTransaction.js +182 -0
- package/lib/ReactRootIndex.js +36 -0
- package/lib/ReactServerRendering.js +89 -0
- package/lib/ReactServerRenderingTransaction.js +116 -0
- package/lib/ReactStateSetters.js +111 -0
- package/lib/ReactTestUtils.js +394 -0
- package/lib/ReactTextComponent.js +121 -0
- package/lib/ReactTransitionChildMapping.js +106 -0
- package/lib/ReactTransitionEvents.js +97 -0
- package/lib/ReactTransitionGroup.js +187 -0
- package/lib/ReactUpdates.js +148 -0
- package/lib/ReactWithAddons.js +53 -0
- package/lib/SelectEventPlugin.js +200 -0
- package/lib/ServerReactRootIndex.js +36 -0
- package/lib/SimpleEventPlugin.js +413 -0
- package/lib/SyntheticClipboardEvent.js +51 -0
- package/lib/SyntheticCompositionEvent.js +51 -0
- package/lib/SyntheticDragEvent.js +44 -0
- package/lib/SyntheticEvent.js +164 -0
- package/lib/SyntheticFocusEvent.js +44 -0
- package/lib/SyntheticKeyboardEvent.js +58 -0
- package/lib/SyntheticMouseEvent.js +85 -0
- package/lib/SyntheticTouchEvent.js +50 -0
- package/lib/SyntheticUIEvent.js +45 -0
- package/lib/SyntheticWheelEvent.js +66 -0
- package/lib/Transaction.js +276 -0
- package/lib/ViewportMetrics.js +37 -0
- package/lib/accumulate.js +54 -0
- package/lib/adler32.js +39 -0
- package/lib/cloneWithProps.js +59 -0
- package/lib/containsNode.js +49 -0
- package/lib/copyProperties.js +54 -0
- package/lib/createArrayFrom.js +91 -0
- package/lib/createFullPageComponent.js +63 -0
- package/lib/createNodesFromMarkup.js +93 -0
- package/lib/createObjectFrom.js +61 -0
- package/lib/cx.js +44 -0
- package/lib/dangerousStyleValue.js +57 -0
- package/lib/emptyFunction.js +43 -0
- package/lib/emptyObject.js +27 -0
- package/lib/escapeTextForBrowser.js +47 -0
- package/lib/flattenChildren.js +57 -0
- package/lib/focusNode.js +33 -0
- package/lib/forEachAccumulated.js +36 -0
- package/lib/getActiveElement.js +34 -0
- package/lib/getEventKey.js +85 -0
- package/lib/getEventTarget.js +36 -0
- package/lib/getMarkupWrap.js +118 -0
- package/lib/getNodeForCharacterOffset.js +80 -0
- package/lib/getReactRootElementInContainer.js +40 -0
- package/lib/getTextContentAccessor.js +42 -0
- package/lib/getUnboundedScrollPosition.js +45 -0
- package/lib/hyphenate.js +35 -0
- package/lib/instantiateReactComponent.js +70 -0
- package/lib/invariant.js +62 -0
- package/lib/isEventSupported.js +70 -0
- package/lib/isNode.js +33 -0
- package/lib/isTextInputElement.js +49 -0
- package/lib/isTextNode.js +30 -0
- package/lib/joinClasses.js +44 -0
- package/lib/keyMirror.js +58 -0
- package/lib/keyOf.js +41 -0
- package/lib/memoizeStringOnly.js +39 -0
- package/lib/merge.js +37 -0
- package/lib/mergeHelpers.js +136 -0
- package/lib/mergeInto.js +45 -0
- package/lib/mixInto.js +34 -0
- package/lib/monitorCodeUse.js +37 -0
- package/lib/objMap.js +47 -0
- package/lib/objMapKeyVal.js +47 -0
- package/lib/onlyChild.js +43 -0
- package/lib/performanceNow.js +42 -0
- package/lib/shallowEqual.js +49 -0
- package/lib/shouldUpdateReactComponent.js +61 -0
- package/lib/toArray.js +75 -0
- package/lib/traverseAllChildren.js +190 -0
- package/lib/update.js +159 -0
- package/lib/warning.js +48 -0
- package/package.json +33 -31
- package/react.js +1 -0
- package/.npmignore +0 -7
- package/.travis.yml +0 -7
- package/Jakefile.js +0 -39
- package/LICENSE +0 -19
- package/browser-test/dist.html +0 -90
- package/browser-test/index.html +0 -86
- package/browser-test/min.html +0 -90
- package/dist/react.js +0 -3141
- package/dist/react.min.js +0 -22
- package/doc/advanced.md +0 -175
- package/doc/color-def.graffle +0 -938
- package/doc/color-def.png +0 -0
- package/doc/simple.dot +0 -25
- package/doc/simple.png +0 -0
- package/examples/longer-example.js +0 -41
- package/examples/simple.js +0 -45
- package/examples/using-ast-directly.js +0 -30
- package/examples/using-events1.js +0 -79
- package/examples/using-log-events.js +0 -43
- package/lib/base-task.js +0 -120
- package/lib/cb-task.js +0 -84
- package/lib/core.js +0 -138
- package/lib/dsl.js +0 -138
- package/lib/error.js +0 -55
- package/lib/event-collector.js +0 -81
- package/lib/event-manager.js +0 -89
- package/lib/eventemitter.js +0 -20
- package/lib/finalcb-first-task.js +0 -68
- package/lib/finalcb-task.js +0 -65
- package/lib/id.js +0 -22
- package/lib/input-parser.js +0 -56
- package/lib/log-events.js +0 -101
- package/lib/parse.js +0 -41
- package/lib/promise-resolve.js +0 -50
- package/lib/promise-task.js +0 -93
- package/lib/react.js +0 -59
- package/lib/ret-task.js +0 -71
- package/lib/sprintf.js +0 -18
- package/lib/status.js +0 -14
- package/lib/task.js +0 -251
- package/lib/track-tasks.js +0 -74
- package/lib/validate.js +0 -159
- package/lib/vcon.js +0 -113
- package/lib/when-task.js +0 -84
- package/src/dist.build.requirejs +0 -20
- package/test/ast.mocha.js +0 -136
- package/test/cb-task.mocha.js +0 -220
- package/test/core-deferred.mocha.js +0 -143
- package/test/core-when.mocha.js +0 -96
- package/test/core.mocha.js +0 -589
- package/test/dsl.mocha.js +0 -352
- package/test/event-manager.mocha.js +0 -119
- package/test/exec-options.mocha.js +0 -48
- package/test/finalcb-task.mocha.js +0 -58
- package/test/input-parser.mocha.js +0 -86
- package/test/log-events.mocha.js +0 -88
- package/test/mocha.opts +0 -2
- package/test/module-use.mocha.js +0 -164
- package/test/promise-auto-resolve.mocha.js +0 -68
- package/test/ret-task.mocha.js +0 -220
- package/test/task.mocha.js +0 -42
- package/test/validate-cb-task.mocha.js +0 -100
- package/test/validate-ret-task.mocha.js +0 -110
- package/test/validate.mocha.js +0 -324
- package/test/vcon.mocha.js +0 -193
- package/vendor/chai/chai.js +0 -4251
- package/vendor/jquery/jquery-1.7.1.js +0 -9266
- package/vendor/jquery/jquery-1.7.1.min.js +0 -4
- package/vendor/node/util.js +0 -531
- package/vendor/requirejs/require.js +0 -2045
- package/vendor/requirejs/require.min.js +0 -36
package/lib/hyphenate.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule hyphenate
|
|
17
|
+
* @typechecks
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var _uppercasePattern = /([A-Z])/g;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Hyphenates a camelcased string, for example:
|
|
24
|
+
*
|
|
25
|
+
* > hyphenate('backgroundColor')
|
|
26
|
+
* < "background-color"
|
|
27
|
+
*
|
|
28
|
+
* @param {string} string
|
|
29
|
+
* @return {string}
|
|
30
|
+
*/
|
|
31
|
+
function hyphenate(string) {
|
|
32
|
+
return string.replace(_uppercasePattern, '-$1').toLowerCase();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
module.exports = hyphenate;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule instantiateReactComponent
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
var warning = require("./warning");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Validate a `componentDescriptor`. This should be exposed publicly in a follow
|
|
26
|
+
* up diff.
|
|
27
|
+
*
|
|
28
|
+
* @param {object} descriptor
|
|
29
|
+
* @return {boolean} Returns true if this is a valid descriptor of a Component.
|
|
30
|
+
*/
|
|
31
|
+
function isValidComponentDescriptor(descriptor) {
|
|
32
|
+
return (
|
|
33
|
+
typeof descriptor.constructor === 'function' &&
|
|
34
|
+
typeof descriptor.constructor.prototype.construct === 'function' &&
|
|
35
|
+
typeof descriptor.constructor.prototype.mountComponent === 'function' &&
|
|
36
|
+
typeof descriptor.constructor.prototype.receiveComponent === 'function'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Given a `componentDescriptor` create an instance that will actually be
|
|
42
|
+
* mounted. Currently it just extracts an existing clone from composite
|
|
43
|
+
* components but this is an implementation detail which will change.
|
|
44
|
+
*
|
|
45
|
+
* @param {object} descriptor
|
|
46
|
+
* @return {object} A new instance of componentDescriptor's constructor.
|
|
47
|
+
* @protected
|
|
48
|
+
*/
|
|
49
|
+
function instantiateReactComponent(descriptor) {
|
|
50
|
+
if ("production" !== process.env.NODE_ENV) {
|
|
51
|
+
("production" !== process.env.NODE_ENV ? warning(
|
|
52
|
+
isValidComponentDescriptor(descriptor),
|
|
53
|
+
'Only React Components are valid for mounting.'
|
|
54
|
+
) : null);
|
|
55
|
+
// We use the clone of a composite component instead of the original
|
|
56
|
+
// instance. This allows us to warn you if you're are accessing the wrong
|
|
57
|
+
// instance.
|
|
58
|
+
var instance = descriptor.__realComponentInstance || descriptor;
|
|
59
|
+
instance._descriptor = descriptor;
|
|
60
|
+
return instance;
|
|
61
|
+
}
|
|
62
|
+
// In prod we don't clone, we simply use the same instance for unaffected
|
|
63
|
+
// behavior. We have to keep the descriptor around for comparison later on.
|
|
64
|
+
// This should ideally be accepted in the constructor of the instance but
|
|
65
|
+
// since that is currently overloaded, we just manually attach it here.
|
|
66
|
+
descriptor._descriptor = descriptor;
|
|
67
|
+
return descriptor;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = instantiateReactComponent;
|
package/lib/invariant.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule invariant
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Use invariant() to assert state which your program assumes to be true.
|
|
23
|
+
*
|
|
24
|
+
* Provide sprintf-style format (only %s is supported) and arguments
|
|
25
|
+
* to provide information about what broke and what you were
|
|
26
|
+
* expecting.
|
|
27
|
+
*
|
|
28
|
+
* The invariant message will be stripped in production, but the invariant
|
|
29
|
+
* will remain to ensure logic does not differ in production.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
var invariant = function(condition) {
|
|
33
|
+
if (!condition) {
|
|
34
|
+
var error = new Error(
|
|
35
|
+
'Minified exception occured; use the non-minified dev environment for ' +
|
|
36
|
+
'the full error message and additional helpful warnings.'
|
|
37
|
+
);
|
|
38
|
+
error.framesToPop = 1;
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
if ("production" !== process.env.NODE_ENV) {
|
|
44
|
+
invariant = function(condition, format, a, b, c, d, e, f) {
|
|
45
|
+
if (format === undefined) {
|
|
46
|
+
throw new Error('invariant requires an error message argument');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (!condition) {
|
|
50
|
+
var args = [a, b, c, d, e, f];
|
|
51
|
+
var argIndex = 0;
|
|
52
|
+
var error = new Error(
|
|
53
|
+
'Invariant Violation: ' +
|
|
54
|
+
format.replace(/%s/g, function() { return args[argIndex++]; })
|
|
55
|
+
);
|
|
56
|
+
error.framesToPop = 1; // we don't care about invariant's own frame
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
module.exports = invariant;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule isEventSupported
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
var ExecutionEnvironment = require("./ExecutionEnvironment");
|
|
22
|
+
|
|
23
|
+
var useHasFeature;
|
|
24
|
+
if (ExecutionEnvironment.canUseDOM) {
|
|
25
|
+
useHasFeature =
|
|
26
|
+
document.implementation &&
|
|
27
|
+
document.implementation.hasFeature &&
|
|
28
|
+
// always returns true in newer browsers as per the standard.
|
|
29
|
+
// @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
|
|
30
|
+
document.implementation.hasFeature('', '') !== true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Checks if an event is supported in the current execution environment.
|
|
35
|
+
*
|
|
36
|
+
* NOTE: This will not work correctly for non-generic events such as `change`,
|
|
37
|
+
* `reset`, `load`, `error`, and `select`.
|
|
38
|
+
*
|
|
39
|
+
* Borrows from Modernizr.
|
|
40
|
+
*
|
|
41
|
+
* @param {string} eventNameSuffix Event name, e.g. "click".
|
|
42
|
+
* @param {?boolean} capture Check if the capture phase is supported.
|
|
43
|
+
* @return {boolean} True if the event is supported.
|
|
44
|
+
* @internal
|
|
45
|
+
* @license Modernizr 3.0.0pre (Custom Build) | MIT
|
|
46
|
+
*/
|
|
47
|
+
function isEventSupported(eventNameSuffix, capture) {
|
|
48
|
+
if (!ExecutionEnvironment.canUseDOM ||
|
|
49
|
+
capture && !('addEventListener' in document)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var eventName = 'on' + eventNameSuffix;
|
|
54
|
+
var isSupported = eventName in document;
|
|
55
|
+
|
|
56
|
+
if (!isSupported) {
|
|
57
|
+
var element = document.createElement('div');
|
|
58
|
+
element.setAttribute(eventName, 'return;');
|
|
59
|
+
isSupported = typeof element[eventName] === 'function';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {
|
|
63
|
+
// This is the only way to test support for the `wheel` event in IE9+.
|
|
64
|
+
isSupported = document.implementation.hasFeature('Events.wheel', '3.0');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return isSupported;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = isEventSupported;
|
package/lib/isNode.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule isNode
|
|
17
|
+
* @typechecks
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {*} object The object to check.
|
|
22
|
+
* @return {boolean} Whether or not the object is a DOM node.
|
|
23
|
+
*/
|
|
24
|
+
function isNode(object) {
|
|
25
|
+
return !!(object && (
|
|
26
|
+
typeof Node === 'function' ? object instanceof Node :
|
|
27
|
+
typeof object === 'object' &&
|
|
28
|
+
typeof object.nodeType === 'number' &&
|
|
29
|
+
typeof object.nodeName === 'string'
|
|
30
|
+
));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module.exports = isNode;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule isTextInputElement
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
"use strict";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
|
|
23
|
+
*/
|
|
24
|
+
var supportedInputTypes = {
|
|
25
|
+
'color': true,
|
|
26
|
+
'date': true,
|
|
27
|
+
'datetime': true,
|
|
28
|
+
'datetime-local': true,
|
|
29
|
+
'email': true,
|
|
30
|
+
'month': true,
|
|
31
|
+
'number': true,
|
|
32
|
+
'password': true,
|
|
33
|
+
'range': true,
|
|
34
|
+
'search': true,
|
|
35
|
+
'tel': true,
|
|
36
|
+
'text': true,
|
|
37
|
+
'time': true,
|
|
38
|
+
'url': true,
|
|
39
|
+
'week': true
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
function isTextInputElement(elem) {
|
|
43
|
+
return elem && (
|
|
44
|
+
(elem.nodeName === 'INPUT' && supportedInputTypes[elem.type]) ||
|
|
45
|
+
elem.nodeName === 'TEXTAREA'
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = isTextInputElement;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule isTextNode
|
|
17
|
+
* @typechecks
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
var isNode = require("./isNode");
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @param {*} object The object to check.
|
|
24
|
+
* @return {boolean} Whether or not the object is a DOM text node.
|
|
25
|
+
*/
|
|
26
|
+
function isTextNode(object) {
|
|
27
|
+
return isNode(object) && object.nodeType == 3;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = isTextNode;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule joinClasses
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Combines multiple className strings into one.
|
|
24
|
+
* http://jsperf.com/joinclasses-args-vs-array
|
|
25
|
+
*
|
|
26
|
+
* @param {...?string} classes
|
|
27
|
+
* @return {string}
|
|
28
|
+
*/
|
|
29
|
+
function joinClasses(className/*, ... */) {
|
|
30
|
+
if (!className) {
|
|
31
|
+
className = '';
|
|
32
|
+
}
|
|
33
|
+
var nextClass;
|
|
34
|
+
var argLength = arguments.length;
|
|
35
|
+
if (argLength > 1) {
|
|
36
|
+
for (var ii = 1; ii < argLength; ii++) {
|
|
37
|
+
nextClass = arguments[ii];
|
|
38
|
+
nextClass && (className += ' ' + nextClass);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return className;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = joinClasses;
|
package/lib/keyMirror.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2014 Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* @providesModule keyMirror
|
|
17
|
+
* @typechecks static-only
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
"use strict";
|
|
21
|
+
|
|
22
|
+
var invariant = require("./invariant");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Constructs an enumeration with keys equal to their value.
|
|
26
|
+
*
|
|
27
|
+
* For example:
|
|
28
|
+
*
|
|
29
|
+
* var COLORS = keyMirror({blue: null, red: null});
|
|
30
|
+
* var myColor = COLORS.blue;
|
|
31
|
+
* var isColorValid = !!COLORS[myColor];
|
|
32
|
+
*
|
|
33
|
+
* The last line could not be performed if the values of the generated enum were
|
|
34
|
+
* not equal to their keys.
|
|
35
|
+
*
|
|
36
|
+
* Input: {key1: val1, key2: val2}
|
|
37
|
+
* Output: {key1: key1, key2: key2}
|
|
38
|
+
*
|
|
39
|
+
* @param {object} obj
|
|
40
|
+
* @return {object}
|
|
41
|
+
*/
|
|
42
|
+
var keyMirror = function(obj) {
|
|
43
|
+
var ret = {};
|
|
44
|
+
var key;
|
|
45
|
+
("production" !== process.env.NODE_ENV ? invariant(
|
|
46
|
+
obj instanceof Object && !Array.isArray(obj),
|
|
47
|
+
'keyMirror(...): Argument must be an object.'
|
|
48
|
+
) : invariant(obj instanceof Object && !Array.isArray(obj)));
|
|
49
|
+
for (key in obj) {
|
|
50
|
+
if (!obj.hasOwnProperty(key)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
ret[key] = key;
|
|
54
|
+
}
|
|
55
|
+
return ret;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
module.exports = keyMirror;
|