react 0.13.0-alpha.2 → 0.13.0-rc2
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/dist/JSXTransformer.js +1798 -1194
- package/dist/react-with-addons.js +2640 -2046
- package/dist/react-with-addons.min.js +7 -6
- package/dist/react.js +2459 -1930
- package/dist/react.min.js +6 -6
- package/lib/AutoFocusMixin.js +1 -1
- package/lib/BeforeInputEventPlugin.js +1 -5
- package/lib/CSSCore.js +1 -1
- package/lib/CSSProperty.js +3 -1
- package/lib/CSSPropertyOperations.js +43 -16
- package/lib/CallbackQueue.js +1 -1
- package/lib/ChangeEventPlugin.js +1 -1
- package/lib/ClientReactRootIndex.js +1 -1
- package/lib/DOMChildrenOperations.js +4 -43
- package/lib/DOMProperty.js +1 -1
- package/lib/DOMPropertyOperations.js +10 -15
- package/lib/Danger.js +1 -1
- package/lib/DefaultEventPluginOrder.js +2 -2
- package/lib/EnterLeaveEventPlugin.js +1 -1
- package/lib/EventConstants.js +1 -1
- package/lib/EventListener.js +1 -1
- package/lib/EventPluginHub.js +1 -1
- package/lib/EventPluginRegistry.js +1 -1
- package/lib/EventPluginUtils.js +3 -3
- package/lib/EventPropagators.js +1 -1
- package/lib/ExecutionEnvironment.js +1 -1
- package/lib/FallbackCompositionState.js +1 -1
- package/lib/HTMLDOMPropertyConfig.js +12 -5
- package/lib/LinkedStateMixin.js +1 -1
- package/lib/LinkedValueUtils.js +1 -1
- package/lib/LocalEventTrapMixin.js +9 -2
- package/lib/MobileSafariClickEventPlugin.js +1 -1
- package/lib/Object.assign.js +1 -1
- package/lib/PooledClass.js +1 -1
- package/lib/React.js +11 -14
- package/lib/ReactBrowserComponentMixin.js +1 -1
- package/lib/ReactBrowserEventEmitter.js +2 -2
- package/lib/ReactCSSTransitionGroup.js +1 -1
- package/lib/ReactCSSTransitionGroupChild.js +8 -5
- package/lib/ReactChildReconciler.js +9 -5
- package/lib/ReactChildren.js +3 -2
- package/lib/ReactClass.js +144 -76
- package/lib/ReactComponent.js +99 -166
- package/lib/ReactComponentBrowserEnvironment.js +1 -1
- package/lib/ReactComponentEnvironment.js +1 -1
- package/lib/ReactComponentWithPureRenderMixin.js +1 -1
- package/lib/ReactCompositeComponent.js +261 -480
- package/lib/ReactContext.js +13 -3
- package/lib/ReactCurrentOwner.js +1 -1
- package/lib/ReactDOM.js +1 -1
- package/lib/ReactDOMButton.js +1 -1
- package/lib/ReactDOMComponent.js +23 -48
- package/lib/ReactDOMForm.js +1 -1
- package/lib/ReactDOMIDOperations.js +3 -3
- package/lib/ReactDOMIframe.js +43 -0
- package/lib/ReactDOMImg.js +1 -1
- package/lib/ReactDOMInput.js +1 -1
- package/lib/ReactDOMOption.js +1 -1
- package/lib/ReactDOMSelect.js +1 -1
- package/lib/ReactDOMSelection.js +1 -1
- package/lib/ReactDOMTextComponent.js +3 -12
- package/lib/ReactDOMTextarea.js +1 -1
- package/lib/ReactDefaultBatchingStrategy.js +4 -4
- package/lib/ReactDefaultInjection.js +25 -1
- package/lib/ReactDefaultPerf.js +11 -3
- package/lib/ReactDefaultPerfAnalysis.js +1 -1
- package/lib/ReactElement.js +59 -4
- package/lib/ReactElementValidator.js +141 -85
- package/lib/ReactEmptyComponent.js +5 -5
- package/lib/ReactErrorUtils.js +1 -1
- package/lib/ReactEventEmitterMixin.js +1 -1
- package/lib/ReactEventListener.js +1 -2
- package/lib/ReactFragment.js +181 -0
- package/lib/ReactInjection.js +1 -1
- package/lib/ReactInputSelection.js +1 -1
- package/lib/ReactInstanceHandles.js +1 -1
- package/lib/ReactInstanceMap.js +1 -1
- package/lib/ReactLifeCycle.js +35 -0
- package/lib/ReactLink.js +1 -1
- package/lib/ReactMarkupChecksum.js +1 -1
- package/lib/ReactMount.js +77 -20
- package/lib/ReactMultiChild.js +7 -4
- package/lib/ReactMultiChildUpdateTypes.js +1 -1
- package/lib/ReactNativeComponent.js +33 -36
- package/lib/ReactOwner.js +1 -1
- package/lib/ReactPerf.js +1 -1
- package/lib/ReactPropTransferer.js +1 -1
- package/lib/ReactPropTypeLocationNames.js +1 -1
- package/lib/ReactPropTypeLocations.js +1 -1
- package/lib/ReactPropTypes.js +5 -3
- package/lib/ReactPutListenerQueue.js +1 -1
- package/lib/ReactReconcileTransaction.js +1 -1
- package/lib/ReactReconciler.js +120 -0
- package/lib/ReactRef.js +40 -67
- package/lib/ReactRootIndex.js +1 -1
- package/lib/ReactServerRendering.js +1 -1
- package/lib/ReactServerRenderingTransaction.js +1 -1
- package/lib/ReactStateSetters.js +1 -1
- package/lib/ReactTestUtils.js +48 -7
- package/lib/ReactTransitionChildMapping.js +7 -3
- package/lib/ReactTransitionEvents.js +1 -1
- package/lib/ReactTransitionGroup.js +5 -5
- package/lib/ReactUpdateQueue.js +295 -0
- package/lib/ReactUpdates.js +11 -20
- package/lib/ReactWithAddons.js +3 -1
- package/lib/SVGDOMPropertyConfig.js +1 -1
- package/lib/SelectEventPlugin.js +1 -1
- package/lib/ServerReactRootIndex.js +1 -1
- package/lib/SimpleEventPlugin.js +3 -3
- package/lib/SyntheticClipboardEvent.js +1 -1
- package/lib/SyntheticCompositionEvent.js +1 -1
- package/lib/SyntheticDragEvent.js +1 -1
- package/lib/SyntheticEvent.js +1 -1
- package/lib/SyntheticFocusEvent.js +1 -1
- package/lib/SyntheticInputEvent.js +1 -1
- package/lib/SyntheticKeyboardEvent.js +1 -1
- package/lib/SyntheticMouseEvent.js +1 -1
- package/lib/SyntheticTouchEvent.js +1 -1
- package/lib/SyntheticUIEvent.js +1 -1
- package/lib/SyntheticWheelEvent.js +1 -1
- package/lib/Transaction.js +2 -2
- package/lib/ViewportMetrics.js +1 -1
- package/lib/accumulateInto.js +1 -1
- package/lib/adler32.js +1 -1
- package/lib/camelize.js +1 -1
- package/lib/camelizeStyleName.js +1 -1
- package/lib/cloneWithProps.js +4 -4
- package/lib/containsNode.js +1 -1
- package/lib/{createArrayFrom.js → createArrayFromMixed.js} +6 -6
- package/lib/createFullPageComponent.js +1 -1
- package/lib/createNodesFromMarkup.js +4 -4
- package/lib/cx.js +16 -1
- package/lib/dangerousStyleValue.js +1 -1
- package/lib/emptyFunction.js +1 -1
- package/lib/emptyObject.js +1 -1
- package/lib/{escapeTextForBrowser.js → escapeTextContentForBrowser.js} +4 -5
- package/lib/findDOMNode.js +19 -1
- package/lib/flattenChildren.js +1 -1
- package/lib/focusNode.js +1 -1
- package/lib/forEachAccumulated.js +1 -1
- package/lib/getActiveElement.js +1 -1
- package/lib/getEventCharCode.js +1 -1
- package/lib/getEventKey.js +1 -1
- package/lib/getEventModifierState.js +1 -1
- package/lib/getEventTarget.js +1 -1
- package/lib/getIteratorFn.js +1 -1
- package/lib/getMarkupWrap.js +1 -1
- package/lib/getNodeForCharacterOffset.js +1 -1
- package/lib/getReactRootElementInContainer.js +1 -1
- package/lib/getTextContentAccessor.js +1 -1
- package/lib/getUnboundedScrollPosition.js +1 -1
- package/lib/hyphenate.js +1 -1
- package/lib/hyphenateStyleName.js +1 -1
- package/lib/instantiateReactComponent.js +20 -20
- package/lib/invariant.js +1 -1
- package/lib/isEventSupported.js +1 -1
- package/lib/isNode.js +1 -1
- package/lib/isTextInputElement.js +1 -1
- package/lib/isTextNode.js +1 -1
- package/lib/joinClasses.js +1 -1
- package/lib/keyMirror.js +1 -1
- package/lib/keyOf.js +1 -1
- package/lib/mapObject.js +1 -1
- package/lib/memoizeStringOnly.js +1 -1
- package/lib/onlyChild.js +1 -1
- package/lib/performance.js +1 -1
- package/lib/performanceNow.js +1 -1
- package/lib/quoteAttributeValueForBrowser.js +26 -0
- package/lib/setInnerHTML.js +1 -1
- package/lib/setTextContent.js +40 -0
- package/lib/shallowEqual.js +1 -1
- package/lib/shouldUpdateReactComponent.js +32 -10
- package/lib/toArray.js +2 -2
- package/lib/traverseAllChildren.js +18 -4
- package/lib/update.js +1 -1
- package/lib/warning.js +12 -1
- package/package.json +1 -1
- package/lib/ReactComponentBase.js +0 -126
- package/lib/accumulate.js +0 -47
- package/lib/copyProperties.js +0 -56
- package/lib/merge.js +0 -34
- package/lib/mergeInto.js +0 -24
- package/lib/monitorCodeUse.js +0 -30
package/lib/ReactUpdates.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -15,6 +15,7 @@ var CallbackQueue = require("./CallbackQueue");
|
|
|
15
15
|
var PooledClass = require("./PooledClass");
|
|
16
16
|
var ReactCurrentOwner = require("./ReactCurrentOwner");
|
|
17
17
|
var ReactPerf = require("./ReactPerf");
|
|
18
|
+
var ReactReconciler = require("./ReactReconciler");
|
|
18
19
|
var Transaction = require("./Transaction");
|
|
19
20
|
|
|
20
21
|
var assign = require("./Object.assign");
|
|
@@ -104,9 +105,9 @@ assign(
|
|
|
104
105
|
|
|
105
106
|
PooledClass.addPoolingTo(ReactUpdatesFlushTransaction);
|
|
106
107
|
|
|
107
|
-
function batchedUpdates(callback, a, b) {
|
|
108
|
+
function batchedUpdates(callback, a, b, c, d) {
|
|
108
109
|
ensureInjected();
|
|
109
|
-
batchingStrategy.batchedUpdates(callback, a, b);
|
|
110
|
+
batchingStrategy.batchedUpdates(callback, a, b, c, d);
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
/**
|
|
@@ -146,7 +147,11 @@ function runBatchedUpdates(transaction) {
|
|
|
146
147
|
// stash the callbacks first
|
|
147
148
|
var callbacks = component._pendingCallbacks;
|
|
148
149
|
component._pendingCallbacks = null;
|
|
149
|
-
|
|
150
|
+
|
|
151
|
+
ReactReconciler.performUpdateIfNecessary(
|
|
152
|
+
component,
|
|
153
|
+
transaction.reconcileTransaction
|
|
154
|
+
);
|
|
150
155
|
|
|
151
156
|
if (callbacks) {
|
|
152
157
|
for (var j = 0; j < callbacks.length; j++) {
|
|
@@ -190,13 +195,7 @@ flushBatchedUpdates = ReactPerf.measure(
|
|
|
190
195
|
* Mark a component as needing a rerender, adding an optional callback to a
|
|
191
196
|
* list of functions which will be executed once the rerender occurs.
|
|
192
197
|
*/
|
|
193
|
-
function enqueueUpdate(component
|
|
194
|
-
("production" !== process.env.NODE_ENV ? invariant(
|
|
195
|
-
!callback || typeof callback === 'function',
|
|
196
|
-
'enqueueUpdate(...): You called `setProps`, `replaceProps`, ' +
|
|
197
|
-
'`setState`, `replaceState`, or `forceUpdate` with a callback that ' +
|
|
198
|
-
'isn\'t callable.'
|
|
199
|
-
) : invariant(!callback || typeof callback === 'function'));
|
|
198
|
+
function enqueueUpdate(component) {
|
|
200
199
|
ensureInjected();
|
|
201
200
|
|
|
202
201
|
// Various parts of our code (such as ReactCompositeComponent's
|
|
@@ -213,19 +212,11 @@ function enqueueUpdate(component, callback) {
|
|
|
213
212
|
) : null);
|
|
214
213
|
|
|
215
214
|
if (!batchingStrategy.isBatchingUpdates) {
|
|
216
|
-
batchingStrategy.batchedUpdates(enqueueUpdate, component
|
|
215
|
+
batchingStrategy.batchedUpdates(enqueueUpdate, component);
|
|
217
216
|
return;
|
|
218
217
|
}
|
|
219
218
|
|
|
220
219
|
dirtyComponents.push(component);
|
|
221
|
-
|
|
222
|
-
if (callback) {
|
|
223
|
-
if (component._pendingCallbacks) {
|
|
224
|
-
component._pendingCallbacks.push(callback);
|
|
225
|
-
} else {
|
|
226
|
-
component._pendingCallbacks = [callback];
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
220
|
}
|
|
230
221
|
|
|
231
222
|
/**
|
package/lib/ReactWithAddons.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -23,6 +23,7 @@ var React = require("./React");
|
|
|
23
23
|
var ReactComponentWithPureRenderMixin =
|
|
24
24
|
require("./ReactComponentWithPureRenderMixin");
|
|
25
25
|
var ReactCSSTransitionGroup = require("./ReactCSSTransitionGroup");
|
|
26
|
+
var ReactFragment = require("./ReactFragment");
|
|
26
27
|
var ReactTransitionGroup = require("./ReactTransitionGroup");
|
|
27
28
|
var ReactUpdates = require("./ReactUpdates");
|
|
28
29
|
|
|
@@ -39,6 +40,7 @@ React.addons = {
|
|
|
39
40
|
batchedUpdates: ReactUpdates.batchedUpdates,
|
|
40
41
|
classSet: cx,
|
|
41
42
|
cloneWithProps: cloneWithProps,
|
|
43
|
+
createFragment: ReactFragment.create,
|
|
42
44
|
update: update
|
|
43
45
|
};
|
|
44
46
|
|
package/lib/SelectEventPlugin.js
CHANGED
package/lib/SimpleEventPlugin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -285,8 +285,8 @@ var topLevelEventsToDispatchConfig = {
|
|
|
285
285
|
topWheel: eventTypes.wheel
|
|
286
286
|
};
|
|
287
287
|
|
|
288
|
-
for (var
|
|
289
|
-
topLevelEventsToDispatchConfig[
|
|
288
|
+
for (var type in topLevelEventsToDispatchConfig) {
|
|
289
|
+
topLevelEventsToDispatchConfig[type].dependencies = [type];
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
var SimpleEventPlugin = {
|
package/lib/SyntheticEvent.js
CHANGED
package/lib/SyntheticUIEvent.js
CHANGED
package/lib/Transaction.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -61,7 +61,7 @@ var invariant = require("./invariant");
|
|
|
61
61
|
* content.
|
|
62
62
|
* - (Future use case): Wrapping particular flushes of the `ReactWorker` queue
|
|
63
63
|
* to preserve the `scrollTop` (an automatic scroll aware DOM).
|
|
64
|
-
* - (Future use case): Layout calculations before and after DOM
|
|
64
|
+
* - (Future use case): Layout calculations before and after DOM updates.
|
|
65
65
|
*
|
|
66
66
|
* Transactional plugin API:
|
|
67
67
|
* - A module that has an `initialize` method that returns any precomputation.
|
package/lib/ViewportMetrics.js
CHANGED
package/lib/accumulateInto.js
CHANGED
package/lib/adler32.js
CHANGED
package/lib/camelize.js
CHANGED
package/lib/camelizeStyleName.js
CHANGED
package/lib/cloneWithProps.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
7
7
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
8
|
*
|
|
9
|
-
* @typechecks
|
|
9
|
+
* @typechecks static-only
|
|
10
10
|
* @providesModule cloneWithProps
|
|
11
11
|
*/
|
|
12
12
|
|
|
@@ -24,10 +24,10 @@ var CHILDREN_PROP = keyOf({children: null});
|
|
|
24
24
|
* Sometimes you want to change the props of a child passed to you. Usually
|
|
25
25
|
* this is to add a CSS class.
|
|
26
26
|
*
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {ReactElement} child child element you'd like to clone
|
|
28
28
|
* @param {object} props props you'd like to modify. className and style will be
|
|
29
29
|
* merged automatically.
|
|
30
|
-
* @return {
|
|
30
|
+
* @return {ReactElement} a clone of child with props merged in.
|
|
31
31
|
*/
|
|
32
32
|
function cloneWithProps(child, props) {
|
|
33
33
|
if ("production" !== process.env.NODE_ENV) {
|
package/lib/containsNode.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
6
6
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
7
7
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
8
8
|
*
|
|
9
|
-
* @providesModule
|
|
9
|
+
* @providesModule createArrayFromMixed
|
|
10
10
|
* @typechecks
|
|
11
11
|
*/
|
|
12
12
|
|
|
@@ -56,10 +56,10 @@ function hasArrayNature(obj) {
|
|
|
56
56
|
*
|
|
57
57
|
* This is mostly useful idiomatically:
|
|
58
58
|
*
|
|
59
|
-
* var
|
|
59
|
+
* var createArrayFromMixed = require('createArrayFromMixed');
|
|
60
60
|
*
|
|
61
61
|
* function takesOneOrMoreThings(things) {
|
|
62
|
-
* things =
|
|
62
|
+
* things = createArrayFromMixed(things);
|
|
63
63
|
* ...
|
|
64
64
|
* }
|
|
65
65
|
*
|
|
@@ -71,7 +71,7 @@ function hasArrayNature(obj) {
|
|
|
71
71
|
* @param {*} obj
|
|
72
72
|
* @return {array}
|
|
73
73
|
*/
|
|
74
|
-
function
|
|
74
|
+
function createArrayFromMixed(obj) {
|
|
75
75
|
if (!hasArrayNature(obj)) {
|
|
76
76
|
return [obj];
|
|
77
77
|
} else if (Array.isArray(obj)) {
|
|
@@ -81,4 +81,4 @@ function createArrayFrom(obj) {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
module.exports =
|
|
84
|
+
module.exports = createArrayFromMixed;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
var ExecutionEnvironment = require("./ExecutionEnvironment");
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var createArrayFromMixed = require("./createArrayFromMixed");
|
|
18
18
|
var getMarkupWrap = require("./getMarkupWrap");
|
|
19
19
|
var invariant = require("./invariant");
|
|
20
20
|
|
|
@@ -73,10 +73,10 @@ function createNodesFromMarkup(markup, handleScript) {
|
|
|
73
73
|
handleScript,
|
|
74
74
|
'createNodesFromMarkup(...): Unexpected <script> element rendered.'
|
|
75
75
|
) : invariant(handleScript));
|
|
76
|
-
|
|
76
|
+
createArrayFromMixed(scripts).forEach(handleScript);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
var nodes =
|
|
79
|
+
var nodes = createArrayFromMixed(node.childNodes);
|
|
80
80
|
while (node.lastChild) {
|
|
81
81
|
node.removeChild(node.lastChild);
|
|
82
82
|
}
|
package/lib/cx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2013-
|
|
2
|
+
* Copyright 2013-2015, Facebook, Inc.
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the BSD-style license found in the
|
|
@@ -24,7 +24,22 @@
|
|
|
24
24
|
* @param [string ...] Variable list of classNames in the string case.
|
|
25
25
|
* @return string Renderable space-separated CSS className.
|
|
26
26
|
*/
|
|
27
|
+
|
|
28
|
+
'use strict';
|
|
29
|
+
var warning = require("./warning");
|
|
30
|
+
|
|
31
|
+
var warned = false;
|
|
32
|
+
|
|
27
33
|
function cx(classNames) {
|
|
34
|
+
if ("production" !== process.env.NODE_ENV) {
|
|
35
|
+
("production" !== process.env.NODE_ENV ? warning(
|
|
36
|
+
warned,
|
|
37
|
+
'React.addons.classSet will be deprecated in a future version. See ' +
|
|
38
|
+
'http://fb.me/react-addons-classset'
|
|
39
|
+
) : null);
|
|
40
|
+
warned = true;
|
|
41
|
+
}
|
|
42
|
+
|
|
28
43
|
if (typeof classNames == 'object') {
|
|
29
44
|
return Object.keys(classNames).filter(function(className) {
|
|
30
45
|
return classNames[className];
|
package/lib/emptyFunction.js
CHANGED