rsuite 4.10.2 → 4.10.6

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.
Files changed (129) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/rsuite.js +75 -158
  3. package/dist/rsuite.min.js +10 -2
  4. package/dist/rsuite.min.js.map +1 -1
  5. package/es/AutoComplete/AutoComplete.js +1 -1
  6. package/es/Avatar/Avatar.js +1 -2
  7. package/es/Breadcrumb/Breadcrumb.js +1 -2
  8. package/es/Button/Button.js +1 -2
  9. package/es/ButtonGroup/ButtonGroup.js +1 -2
  10. package/es/Calendar/TimeDropdown.js +3 -3
  11. package/es/Cascader/Cascader.js +23 -6
  12. package/es/Drawer/index.js +1 -2
  13. package/es/Dropdown/Dropdown.js +1 -2
  14. package/es/FlexboxGrid/FlexboxGrid.js +1 -2
  15. package/es/FormGroup/FormGroup.js +1 -2
  16. package/es/Input/Input.js +1 -2
  17. package/es/InputGroup/InputGroup.js +1 -2
  18. package/es/IntlProvider/withLocale.js +1 -1
  19. package/es/List/List.js +1 -2
  20. package/es/List/ListItem.js +1 -2
  21. package/es/Loader/Loader.js +1 -2
  22. package/es/Modal/BaseModal.js +24 -4
  23. package/es/Modal/Modal.js +1 -2
  24. package/es/Modal/ModalDialog.js +2 -2
  25. package/es/MultiCascader/MultiCascader.js +14 -1
  26. package/es/Nav/Nav.js +1 -2
  27. package/es/Navbar/Navbar.js +1 -2
  28. package/es/Pagination/Pagination.js +1 -2
  29. package/es/Rate/Rate.js +1 -2
  30. package/es/Sidenav/Sidenav.js +1 -2
  31. package/es/Slider/Slider.d.ts +4 -11
  32. package/es/Steps/Steps.js +1 -2
  33. package/es/Table/Table.js +1 -2
  34. package/es/Table/TablePagination.js +1 -2
  35. package/es/Tag/Tag.js +1 -2
  36. package/es/TagPicker/index.js +1 -2
  37. package/es/Timeline/Timeline.js +1 -2
  38. package/es/Timeline/TimelineItem.js +1 -2
  39. package/es/Toggle/Toggle.js +1 -2
  40. package/es/Uploader/Uploader.js +2 -3
  41. package/es/utils/defaultProps.js +1 -1
  42. package/es/utils/index.js +1 -0
  43. package/es/utils/recompose.js +42 -0
  44. package/es/utils/withStyleProps.js +1 -1
  45. package/lib/AutoComplete/AutoComplete.js +2 -4
  46. package/lib/Avatar/Avatar.js +1 -3
  47. package/lib/Breadcrumb/Breadcrumb.js +1 -3
  48. package/lib/Button/Button.js +1 -3
  49. package/lib/ButtonGroup/ButtonGroup.js +1 -3
  50. package/lib/Calendar/TimeDropdown.js +3 -3
  51. package/lib/Cascader/Cascader.js +23 -6
  52. package/lib/Drawer/index.js +4 -6
  53. package/lib/Dropdown/Dropdown.js +2 -4
  54. package/lib/FlexboxGrid/FlexboxGrid.js +1 -3
  55. package/lib/FormGroup/FormGroup.js +1 -3
  56. package/lib/Input/Input.js +1 -3
  57. package/lib/InputGroup/InputGroup.js +3 -5
  58. package/lib/IntlProvider/withLocale.js +3 -3
  59. package/lib/List/List.js +1 -3
  60. package/lib/List/ListItem.js +1 -3
  61. package/lib/Loader/Loader.js +1 -3
  62. package/lib/Modal/BaseModal.js +24 -4
  63. package/lib/Modal/Modal.js +5 -7
  64. package/lib/Modal/ModalDialog.js +2 -3
  65. package/lib/MultiCascader/MultiCascader.js +14 -1
  66. package/lib/Nav/Nav.js +1 -3
  67. package/lib/Navbar/Navbar.js +2 -4
  68. package/lib/Pagination/Pagination.js +1 -3
  69. package/lib/Rate/Rate.js +1 -3
  70. package/lib/Sidenav/Sidenav.js +3 -5
  71. package/lib/Slider/Slider.d.ts +4 -11
  72. package/lib/Steps/Steps.js +1 -3
  73. package/lib/Table/Table.js +6 -8
  74. package/lib/Table/TablePagination.js +1 -3
  75. package/lib/Tag/Tag.js +1 -3
  76. package/lib/TagPicker/index.js +1 -3
  77. package/lib/Timeline/Timeline.js +1 -3
  78. package/lib/Timeline/TimelineItem.js +1 -3
  79. package/lib/Toggle/Toggle.js +1 -3
  80. package/lib/Uploader/Uploader.js +2 -4
  81. package/lib/utils/defaultProps.js +1 -1
  82. package/lib/utils/index.js +8 -0
  83. package/lib/utils/recompose.js +57 -0
  84. package/lib/utils/withStyleProps.js +1 -1
  85. package/package.json +5 -6
  86. package/src/AutoComplete/AutoComplete.tsx +1 -1
  87. package/src/Avatar/Avatar.tsx +1 -2
  88. package/src/Breadcrumb/Breadcrumb.tsx +1 -2
  89. package/src/Button/Button.tsx +8 -2
  90. package/src/ButtonGroup/ButtonGroup.tsx +1 -2
  91. package/src/Calendar/TimeDropdown.tsx +2 -3
  92. package/src/Cascader/Cascader.tsx +24 -5
  93. package/src/Cascader/test/CascaderSpec.js +56 -1
  94. package/src/DatePicker/test/DatePickerSpec.js +20 -0
  95. package/src/Drawer/index.tsx +1 -3
  96. package/src/Dropdown/Dropdown.tsx +1 -1
  97. package/src/FlexboxGrid/FlexboxGrid.tsx +1 -2
  98. package/src/FormGroup/FormGroup.tsx +1 -2
  99. package/src/Input/Input.tsx +1 -1
  100. package/src/InputGroup/InputGroup.tsx +1 -2
  101. package/src/IntlProvider/withLocale.tsx +1 -1
  102. package/src/List/List.tsx +1 -2
  103. package/src/List/ListItem.tsx +1 -2
  104. package/src/Loader/Loader.tsx +1 -2
  105. package/src/Modal/BaseModal.tsx +26 -4
  106. package/src/Modal/Modal.tsx +1 -2
  107. package/src/Modal/ModalDialog.tsx +2 -2
  108. package/src/Modal/test/ModalSpec.js +5 -0
  109. package/src/MultiCascader/MultiCascader.tsx +17 -1
  110. package/src/Nav/Nav.tsx +1 -1
  111. package/src/Navbar/Navbar.tsx +1 -2
  112. package/src/Pagination/Pagination.tsx +1 -2
  113. package/src/Rate/Rate.tsx +1 -2
  114. package/src/Sidenav/Sidenav.tsx +1 -2
  115. package/src/Slider/Slider.d.ts +4 -11
  116. package/src/Steps/Steps.tsx +1 -2
  117. package/src/Table/Table.tsx +1 -2
  118. package/src/Table/TablePagination.tsx +1 -2
  119. package/src/Tag/Tag.tsx +1 -2
  120. package/src/TagPicker/index.tsx +1 -3
  121. package/src/Timeline/Timeline.tsx +1 -2
  122. package/src/Timeline/TimelineItem.tsx +1 -2
  123. package/src/Toggle/Toggle.tsx +1 -2
  124. package/src/Uploader/Uploader.tsx +2 -3
  125. package/src/utils/defaultProps.ts +1 -1
  126. package/src/utils/index.ts +1 -0
  127. package/src/utils/recompose.ts +52 -0
  128. package/src/utils/test/recomposeSpec.js +107 -0
  129. package/src/utils/withStyleProps.tsx +1 -1
@@ -6,12 +6,11 @@ import _find from "lodash/find";
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import classNames from 'classnames';
9
- import { compose } from 'recompose';
10
9
  import IntlContext from '../IntlProvider/IntlContext';
11
10
  import withLocale from '../IntlProvider/withLocale';
12
11
  import FileItem from './UploadFileItem';
13
12
  import UploadTrigger from './UploadTrigger';
14
- import { prefix, ajaxUpload, defaultProps, getUnhandledProps } from '../utils';
13
+ import { compose, prefix, ajaxUpload, defaultProps, getUnhandledProps } from '../utils';
15
14
  import { getFiles, guid } from './utils';
16
15
 
17
16
  var Uploader =
@@ -269,7 +268,7 @@ function (_React$Component) {
269
268
  fileList: nextFileList
270
269
  };
271
270
 
272
- if (nextFile.progress) {
271
+ if (nextFile.progress || nextFile.status === 'error') {
273
272
  var fileMap = this.state.fileMap;
274
273
  fileMap[nextFile.fileKey] = {
275
274
  progress: nextFile.progress,
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import * as React from 'react';
4
- import { setDisplayName, wrapDisplayName } from 'recompose';
4
+ import { setDisplayName, wrapDisplayName } from './recompose';
5
5
  import { getClassNamePrefix } from './prefix';
6
6
  import extendReactStatics from './extendReactStatics';
7
7
 
package/es/utils/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './BrowserDetection';
2
2
  export * from './htmlPropsUtils';
3
3
  export { default as withStyleProps } from './withStyleProps';
4
+ export * from './recompose';
4
5
  export { default as prefix, defaultClassPrefix, getClassNamePrefix, globalKey } from './prefix';
5
6
  export { default as createChainedFunction } from './createChainedFunction';
6
7
  export { default as defaultProps } from './defaultProps';
@@ -0,0 +1,42 @@
1
+ export function compose() {
2
+ for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
3
+ funcs[_key] = arguments[_key];
4
+ }
5
+
6
+ return funcs.reduce(function (a, b) {
7
+ return function () {
8
+ return a(b.apply(void 0, arguments));
9
+ };
10
+ }, function (arg) {
11
+ return arg;
12
+ });
13
+ }
14
+ export function setStatic(key, value) {
15
+ return function (BaseComponent) {
16
+ /* eslint-disable no-param-reassign */
17
+ BaseComponent[key] = value;
18
+ /* eslint-enable no-param-reassign */
19
+
20
+ return BaseComponent;
21
+ };
22
+ }
23
+ export function setDisplayName(displayName) {
24
+ return setStatic('displayName', displayName);
25
+ }
26
+ export function getDisplayName(component) {
27
+ if (typeof component === 'string') {
28
+ return component;
29
+ }
30
+
31
+ if (!component) {
32
+ return undefined;
33
+ }
34
+
35
+ return component.displayName || component.name || 'Component';
36
+ }
37
+ export function wrapDisplayName(component, wrapperName) {
38
+ return wrapperName + "(" + getDisplayName(component) + ")";
39
+ }
40
+ export function setPropTypes(propTypes) {
41
+ return setStatic('propTypes', propTypes);
42
+ }
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import classNames from 'classnames';
6
- import { setDisplayName, wrapDisplayName, setPropTypes } from 'recompose';
6
+ import { setDisplayName, wrapDisplayName, setPropTypes } from './recompose';
7
7
  import prefix from './prefix';
8
8
  import extendReactStatics from './extendReactStatics';
9
9
  import { SIZE, STATUS, COLOR } from '../constants';
@@ -23,7 +23,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _recompose = require("recompose");
26
+ var _utils = require("../utils");
27
27
 
28
28
  var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
29
29
 
@@ -31,8 +31,6 @@ var _Input = _interopRequireDefault(require("../Input"));
31
31
 
32
32
  var _AutoCompleteItem = _interopRequireDefault(require("./AutoCompleteItem"));
33
33
 
34
- var _utils = require("../utils");
35
-
36
34
  var _Picker = require("../Picker");
37
35
 
38
36
  var _constants = require("../constants");
@@ -389,7 +387,7 @@ AutoComplete.defaultProps = {
389
387
  var EnhancedAutoComplete = (0, _utils.defaultProps)({
390
388
  classPrefix: 'auto-complete'
391
389
  })(AutoComplete);
392
- (0, _recompose.setStatic)('Item', _AutoCompleteItem.default)(AutoComplete);
390
+ (0, _utils.setStatic)('Item', _AutoCompleteItem.default)(AutoComplete);
393
391
  var _default = EnhancedAutoComplete;
394
392
  exports.default = _default;
395
393
  module.exports = exports.default;
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var _constants = require("../constants");
@@ -71,7 +69,7 @@ Avatar.propTypes = {
71
69
  alt: _propTypes.default.string
72
70
  };
73
71
 
74
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
72
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
75
73
  hasSize: true
76
74
  }), (0, _utils.defaultProps)({
77
75
  classPrefix: 'avatar'
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _BreadcrumbItem = _interopRequireDefault(require("./BreadcrumbItem"));
25
23
 
26
24
  var _utils = require("../utils");
@@ -129,7 +127,7 @@ var EnhancedBreadcrumb = (0, _utils.defaultProps)({
129
127
  classPrefix: 'breadcrumb',
130
128
  componentClass: 'ol'
131
129
  })(Breadcrumb);
132
- (0, _recompose.setStatic)('Item', _BreadcrumbItem.default)(EnhancedBreadcrumb);
130
+ (0, _utils.setStatic)('Item', _BreadcrumbItem.default)(EnhancedBreadcrumb);
133
131
  var _default = EnhancedBreadcrumb;
134
132
  exports.default = _default;
135
133
  module.exports = exports.default;
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
25
23
 
26
24
  var _Ripple = _interopRequireDefault(require("../Ripple"));
@@ -97,7 +95,7 @@ Button.defaultProps = {
97
95
  ripple: true
98
96
  };
99
97
 
100
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
98
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
101
99
  hasSize: true,
102
100
  hasColor: true
103
101
  }), (0, _utils.defaultProps)({
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var ButtonGroup =
@@ -66,7 +64,7 @@ ButtonGroup.propTypes = {
66
64
  children: _propTypes.default.node
67
65
  };
68
66
 
69
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
67
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
70
68
  hasSize: true
71
69
  }), (0, _utils.defaultProps)({
72
70
  classPrefix: 'btn-group'
@@ -97,13 +97,13 @@ function (_React$PureComponent) {
97
97
  _this.handleClick = function (type, d, event) {
98
98
  var _this$props = _this.props,
99
99
  onSelect = _this$props.onSelect,
100
- date = _this$props.date; // $FlowFixMe
101
-
100
+ date = _this$props.date,
101
+ showMeridian = _this$props.showMeridian;
102
102
  var nextDate = date || new Date();
103
103
 
104
104
  switch (type) {
105
105
  case 'hours':
106
- nextDate = (0, _set_hours.default)(date, d);
106
+ nextDate = (0, _set_hours.default)(date, showMeridian && (0, _get_hours.default)(nextDate) >= 12 ? d + 12 : d);
107
107
  break;
108
108
 
109
109
  case 'minutes':
@@ -62,9 +62,11 @@ function (_React$Component) {
62
62
  var _this;
63
63
 
64
64
  _this = _React$Component.call(this, props) || this;
65
+ _this.toggleRef = void 0;
65
66
  _this.triggerRef = void 0;
66
67
  _this.containerRef = void 0;
67
68
  _this.positionRef = void 0;
69
+ _this.menuWrapperRef = void 0;
68
70
  _this.menuContainerRef = void 0;
69
71
  _this.isControlled = void 0;
70
72
 
@@ -294,6 +296,14 @@ function (_React$Component) {
294
296
  }));
295
297
  };
296
298
 
299
+ _this.getPositionInstance = function () {
300
+ return _this.positionRef.current;
301
+ };
302
+
303
+ _this.getToggleInstance = function () {
304
+ return _this.toggleRef.current;
305
+ };
306
+
297
307
  var initState = {
298
308
  searchKeyword: '',
299
309
  selectNode: null,
@@ -312,13 +322,15 @@ function (_React$Component) {
312
322
  items: []
313
323
  };
314
324
  _this.state = (0, _extends3.default)({}, initState, {}, (0, _utils.getDerivedStateForCascade)(props, initState), {
315
- flattenData: (0, _treeUtils.flattenTree)(props.data)
325
+ flattenData: (0, _treeUtils.flattenTree)(props.data, props.childrenKey)
316
326
  });
317
327
  _this.isControlled = !(0, _isUndefined2.default)(props.value);
318
328
  _this.triggerRef = React.createRef();
319
329
  _this.containerRef = React.createRef();
320
- _this.positionRef = React.createRef(); // for test
330
+ _this.positionRef = React.createRef();
331
+ _this.toggleRef = React.createRef(); // for test
321
332
 
333
+ _this.menuWrapperRef = React.createRef();
322
334
  _this.menuContainerRef = React.createRef();
323
335
  return _this;
324
336
  }
@@ -327,7 +339,8 @@ function (_React$Component) {
327
339
  var value = nextProps.value,
328
340
  data = nextProps.data,
329
341
  labelKey = nextProps.labelKey,
330
- valueKey = nextProps.valueKey;
342
+ valueKey = nextProps.valueKey,
343
+ childrenKey = nextProps.childrenKey;
331
344
 
332
345
  if (data !== prevState.data) {
333
346
  var _prevState$selectNode;
@@ -345,12 +358,12 @@ function (_React$Component) {
345
358
  return (0, _stringToObject2.default)(item, labelKey, valueKey);
346
359
  })), {
347
360
  data: data,
348
- flattenData: (0, _treeUtils.flattenTree)(data)
361
+ flattenData: (0, _treeUtils.flattenTree)(data, childrenKey)
349
362
  });
350
363
  }
351
364
 
352
365
  return (0, _extends3.default)({}, (0, _utils.getDerivedStateForCascade)(nextProps, prevState), {
353
- flattenData: (0, _treeUtils.flattenTree)(data),
366
+ flattenData: (0, _treeUtils.flattenTree)(data, childrenKey),
354
367
  data: data
355
368
  });
356
369
  }
@@ -459,8 +472,11 @@ function (_React$Component) {
459
472
  var classes = (0, _classnames.default)(this.addPrefix('cascader-menu'), menuClassName, (_classNames2 = {}, _classNames2[this.addPrefix('inline')] = inline, _classNames2));
460
473
  var menuProps = (0, _pick2.default)(this.props, Object.keys((0, _omit2.default)(_DropdownMenu.dropdownMenuPropTypes, ['classPrefix'])));
461
474
  return React.createElement(_Picker.MenuWrapper, {
475
+ ref: this.menuWrapperRef,
462
476
  className: classes,
463
- style: menuStyle
477
+ style: menuStyle,
478
+ getToggleInstance: this.getToggleInstance,
479
+ getPositionInstance: this.getPositionInstance
464
480
  }, searchable && React.createElement(_Picker.SearchBar, {
465
481
  placeholder: locale.searchPlaceholder,
466
482
  onChange: this.handleSearch,
@@ -553,6 +569,7 @@ function (_React$Component) {
553
569
  onExited: (0, _utils2.createChainedFunction)(this.handleExit, onExited),
554
570
  speaker: this.renderDropdownMenu()
555
571
  }, React.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, unhandled, {
572
+ ref: this.toggleRef,
556
573
  componentClass: toggleComponentClass,
557
574
  onClean: (0, _utils2.createChainedFunction)(this.handleClean, onClean),
558
575
  cleanable: cleanable && !disabled,
@@ -5,8 +5,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
 
8
- var _recompose = require("recompose");
9
-
10
8
  var _utils = require("../utils");
11
9
 
12
10
  var _Drawer = _interopRequireDefault(require("./Drawer"));
@@ -22,14 +20,14 @@ var _ModalFooter = _interopRequireDefault(require("../Modal/ModalFooter"));
22
20
  var EnhancedBody = (0, _utils.defaultProps)({
23
21
  classPrefix: 'drawer-body'
24
22
  })(_ModalBody.default);
25
- (0, _recompose.setStatic)('Body', (0, _recompose.setDisplayName)('Body')(EnhancedBody))(_Drawer.default);
26
- (0, _recompose.setStatic)('Header', (0, _utils.defaultProps)({
23
+ (0, _utils.setStatic)('Body', (0, _utils.setDisplayName)('Body')(EnhancedBody))(_Drawer.default);
24
+ (0, _utils.setStatic)('Header', (0, _utils.defaultProps)({
27
25
  classPrefix: 'drawer-header'
28
26
  })(_ModalHeader.default))(_Drawer.default);
29
- (0, _recompose.setStatic)('Title', (0, _utils.defaultProps)({
27
+ (0, _utils.setStatic)('Title', (0, _utils.defaultProps)({
30
28
  classPrefix: 'drawer-title'
31
29
  })(_ModalTitle.default))(_Drawer.default);
32
- (0, _recompose.setStatic)('Footer', (0, _utils.defaultProps)({
30
+ (0, _utils.setStatic)('Footer', (0, _utils.defaultProps)({
33
31
  classPrefix: 'drawer-footer'
34
32
  })(_ModalFooter.default))(_Drawer.default);
35
33
  var _default = _Drawer.default;
@@ -23,8 +23,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _recompose = require("recompose");
27
-
28
26
  var _domLib = require("dom-lib");
29
27
 
30
28
  var _RootCloseWrapper = _interopRequireDefault(require("../Overlay/RootCloseWrapper"));
@@ -305,8 +303,8 @@ var EnhancedDropdown = (0, _utils.defaultProps)({
305
303
  componentClass: 'div',
306
304
  classPrefix: 'dropdown'
307
305
  })(Dropdown);
308
- (0, _recompose.setStatic)('Item', _DropdownMenuItem.default)(EnhancedDropdown);
309
- (0, _recompose.setStatic)('Menu', _DropdownMenu.default)(EnhancedDropdown);
306
+ (0, _utils.setStatic)('Item', _DropdownMenuItem.default)(EnhancedDropdown);
307
+ (0, _utils.setStatic)('Menu', _DropdownMenu.default)(EnhancedDropdown);
310
308
  var _default = EnhancedDropdown;
311
309
  exports.default = _default;
312
310
  module.exports = exports.default;
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var _FlexboxGridItem = _interopRequireDefault(require("./FlexboxGridItem"));
@@ -66,7 +64,7 @@ FlexboxGrid.defaultProps = {
66
64
  var EnhancedFlexboxGrid = (0, _utils.defaultProps)({
67
65
  classPrefix: 'flex-box-grid'
68
66
  })(FlexboxGrid);
69
- (0, _recompose.setStatic)('Item', _FlexboxGridItem.default)(EnhancedFlexboxGrid);
67
+ (0, _utils.setStatic)('Item', _FlexboxGridItem.default)(EnhancedFlexboxGrid);
70
68
  var _default = EnhancedFlexboxGrid;
71
69
  exports.default = _default;
72
70
  module.exports = exports.default;
@@ -21,8 +21,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _classnames = _interopRequireDefault(require("classnames"));
23
23
 
24
- var _recompose = require("recompose");
25
-
26
24
  var _utils = require("../utils");
27
25
 
28
26
  var FormGroupContext = (0, _utils.createContext)(null);
@@ -70,7 +68,7 @@ FormGroup.propTypes = {
70
68
  validationState: _propTypes.default.oneOf(['success', 'warning', 'error'])
71
69
  };
72
70
 
73
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
71
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
74
72
  hasSize: true
75
73
  }), (0, _utils.defaultProps)({
76
74
  classPrefix: 'form-group'
@@ -23,8 +23,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _recompose = require("recompose");
27
-
28
26
  var _utils = require("../utils");
29
27
 
30
28
  var _FormContext = require("../Form/FormContext");
@@ -136,7 +134,7 @@ Input.defaultProps = {
136
134
  type: 'text'
137
135
  };
138
136
 
139
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
137
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
140
138
  hasSize: true
141
139
  }), (0, _utils.defaultProps)({
142
140
  classPrefix: 'input',
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _InputGroupAddon = _interopRequireDefault(require("./InputGroupAddon"));
25
23
 
26
24
  var _InputGroupButton = _interopRequireDefault(require("./InputGroupButton"));
@@ -106,12 +104,12 @@ InputGroup.propTypes = {
106
104
  disabled: _propTypes.default.bool,
107
105
  children: _propTypes.default.node
108
106
  };
109
- var EnhancedInputGroup = (0, _recompose.compose)((0, _utils.withStyleProps)({
107
+ var EnhancedInputGroup = (0, _utils.compose)((0, _utils.withStyleProps)({
110
108
  hasSize: true
111
109
  }), (0, _utils.defaultProps)({
112
110
  classPrefix: 'input-group'
113
111
  }))(InputGroup);
114
- (0, _recompose.setStatic)('Addon', _InputGroupAddon.default)(EnhancedInputGroup);
115
- (0, _recompose.setStatic)('Button', _InputGroupButton.default)(EnhancedInputGroup);
112
+ (0, _utils.setStatic)('Addon', _InputGroupAddon.default)(EnhancedInputGroup);
113
+ (0, _utils.setStatic)('Button', _InputGroupButton.default)(EnhancedInputGroup);
116
114
  var _default = EnhancedInputGroup;
117
115
  exports.default = _default;
@@ -13,7 +13,7 @@ var _get2 = _interopRequireDefault(require("lodash/get"));
13
13
 
14
14
  var React = _interopRequireWildcard(require("react"));
15
15
 
16
- var _recompose = require("recompose");
16
+ var _utils = require("../utils");
17
17
 
18
18
  var _format = _interopRequireDefault(require("date-fns/format"));
19
19
 
@@ -59,10 +59,10 @@ function withLocale(combineKeys) {
59
59
  (0, _extendReactStatics.default)(WithLocale, BaseComponent, ['defaultProps']);
60
60
 
61
61
  if (process.env.RUN_ENV === 'test') {
62
- return (0, _recompose.setDisplayName)((0, _recompose.wrapDisplayName)(BaseComponent, '__test__'))(WithLocale);
62
+ return (0, _utils.setDisplayName)((0, _utils.wrapDisplayName)(BaseComponent, '__test__'))(WithLocale);
63
63
  }
64
64
 
65
- return (0, _recompose.setDisplayName)((0, _recompose.wrapDisplayName)(BaseComponent, 'withLocale'))(WithLocale);
65
+ return (0, _utils.setDisplayName)((0, _utils.wrapDisplayName)(BaseComponent, 'withLocale'))(WithLocale);
66
66
  };
67
67
  }
68
68
 
package/lib/List/List.js CHANGED
@@ -21,8 +21,6 @@ var React = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
- var _recompose = require("recompose");
25
-
26
24
  var _classnames = _interopRequireDefault(require("classnames"));
27
25
 
28
26
  var _domLib = require("dom-lib");
@@ -539,7 +537,7 @@ List.defaultProps = {
539
537
  var EnhancedList = (0, _utils2.defaultProps)({
540
538
  classPrefix: 'list'
541
539
  })(List);
542
- (0, _recompose.setStatic)('Item', _ListItem.default)(EnhancedList);
540
+ (0, _utils2.setStatic)('Item', _ListItem.default)(EnhancedList);
543
541
  var _default = EnhancedList;
544
542
  exports.default = _default;
545
543
  module.exports = exports.default;
@@ -17,8 +17,6 @@ var React = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
- var _recompose = require("recompose");
21
-
22
20
  var _classnames = _interopRequireDefault(require("classnames"));
23
21
 
24
22
  var _utils = require("../utils");
@@ -138,7 +136,7 @@ ListItem.propTypes = {
138
136
  var EnhancedListItem = (0, _utils.defaultProps)({
139
137
  classPrefix: 'list-item'
140
138
  })(ListItem);
141
- var Component = (0, _recompose.setDisplayName)('ListItem')(EnhancedListItem);
139
+ var Component = (0, _utils.setDisplayName)('ListItem')(EnhancedListItem);
142
140
 
143
141
  var WithContextListItem = function WithContextListItem(props) {
144
142
  return React.createElement(_ListContext.default.Consumer, null, function (context) {
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var Loader =
@@ -80,7 +78,7 @@ Loader.defaultProps = {
80
78
  speed: 'normal'
81
79
  };
82
80
 
83
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
81
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
84
82
  hasSize: true
85
83
  }), (0, _utils.defaultProps)({
86
84
  classPrefix: 'loader'
@@ -69,6 +69,7 @@ function (_React$Component2) {
69
69
  _this.lastFocus = null;
70
70
  _this.onDocumentKeyupListener = null;
71
71
  _this.onFocusinListener = null;
72
+ _this._isMounted = null;
72
73
 
73
74
  _this.setMountNodeRef = function (ref) {
74
75
  var _ref$getMountNode;
@@ -116,15 +117,30 @@ function (_React$Component2) {
116
117
  _this.enforceFocus = function () {
117
118
  var enforceFocus = _this.props.enforceFocus;
118
119
 
119
- if (!enforceFocus || !_this.isTopModal()) {
120
+ if (!enforceFocus || !_this._isMounted || !_this.isTopModal()) {
120
121
  return;
121
122
  }
122
123
 
123
- var active = (0, _domLib.activeElement)((0, _domLib.ownerDocument)((0, _assertThisInitialized2.default)(_this)));
124
+ var currentActiveElement = (0, _domLib.activeElement)((0, _domLib.ownerDocument)((0, _assertThisInitialized2.default)(_this)));
124
125
 
125
126
  var modal = _this.getDialogElement();
126
127
 
127
- if (modal && modal !== active && !(0, _domLib.contains)(modal, active)) {
128
+ if (modal && modal !== currentActiveElement && !(0, _domLib.contains)(modal, currentActiveElement)) {
129
+ modal.focus();
130
+ }
131
+ };
132
+
133
+ _this.handlePortalRendered = function () {
134
+ if (!_this.props.autoFocus) {
135
+ return;
136
+ }
137
+
138
+ var modal = _this.getDialogElement();
139
+
140
+ var currentActiveElement = (0, _domLib.activeElement)((0, _domLib.ownerDocument)((0, _assertThisInitialized2.default)(_this)));
141
+
142
+ if (modal && modal !== currentActiveElement && !(0, _domLib.contains)(modal, currentActiveElement)) {
143
+ _this.lastFocus = currentActiveElement;
128
144
  modal.focus();
129
145
  }
130
146
  };
@@ -141,6 +157,8 @@ function (_React$Component2) {
141
157
  var _proto2 = BaseModal.prototype;
142
158
 
143
159
  _proto2.componentDidMount = function componentDidMount() {
160
+ this._isMounted = true;
161
+
144
162
  if (this.props.show) {
145
163
  this.onShow();
146
164
  }
@@ -184,6 +202,7 @@ function (_React$Component2) {
184
202
  var _this$props4 = this.props,
185
203
  show = _this$props4.show,
186
204
  transition = _this$props4.transition;
205
+ this._isMounted = false;
187
206
 
188
207
  if (show || transition && !this.state.exited) {
189
208
  this.onHide();
@@ -312,7 +331,8 @@ function (_React$Component2) {
312
331
 
313
332
  return React.createElement(_Portal.default, {
314
333
  ref: this.setMountNodeRef,
315
- container: container
334
+ container: container,
335
+ onRendered: this.handlePortalRendered
316
336
  }, React.createElement("div", {
317
337
  ref: this.modalNodeRef,
318
338
  role: rest.role,
@@ -21,8 +21,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
22
  var _classnames = _interopRequireDefault(require("classnames"));
23
23
 
24
- var _recompose = require("recompose");
25
-
26
24
  var _elementResizeEvent = _interopRequireWildcard(require("element-resize-event"));
27
25
 
28
26
  var _BaseModal = _interopRequireDefault(require("./BaseModal"));
@@ -296,11 +294,11 @@ Modal.defaultProps = {
296
294
  var EnhancedModal = (0, _utils.defaultProps)({
297
295
  classPrefix: 'modal'
298
296
  })(Modal);
299
- (0, _recompose.setStatic)('Body', _ModalBody.default)(EnhancedModal);
300
- (0, _recompose.setStatic)('Header', _ModalHeader.default)(EnhancedModal);
301
- (0, _recompose.setStatic)('Title', _ModalTitle.default)(EnhancedModal);
302
- (0, _recompose.setStatic)('Footer', _ModalFooter.default)(EnhancedModal);
303
- (0, _recompose.setStatic)('Dialog', _ModalDialog.default)(EnhancedModal);
297
+ (0, _utils.setStatic)('Body', _ModalBody.default)(EnhancedModal);
298
+ (0, _utils.setStatic)('Header', _ModalHeader.default)(EnhancedModal);
299
+ (0, _utils.setStatic)('Title', _ModalTitle.default)(EnhancedModal);
300
+ (0, _utils.setStatic)('Footer', _ModalFooter.default)(EnhancedModal);
301
+ (0, _utils.setStatic)('Dialog', _ModalDialog.default)(EnhancedModal);
304
302
  var _default = EnhancedModal;
305
303
  exports.default = _default;
306
304
  module.exports = exports.default;
@@ -19,8 +19,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
- var _recompose = require("recompose");
23
-
24
22
  var _utils = require("../utils");
25
23
 
26
24
  var _mergeRefs = _interopRequireDefault(require("../utils/mergeRefs"));
@@ -84,6 +82,7 @@ function (_React$Component) {
84
82
  return React.createElement("div", (0, _extends2.default)({}, props, {
85
83
  title: null,
86
84
  role: "dialog",
85
+ tabIndex: -1,
87
86
  ref: (0, _mergeRefs.default)(this.bindHtmlRef, dialogRef),
88
87
  className: (0, _classnames.default)(classPrefix, className),
89
88
  style: modalStyle
@@ -100,7 +99,7 @@ function (_React$Component) {
100
99
 
101
100
  ModalDialog.propTypes = modalDialogPropTypes;
102
101
 
103
- var _default = (0, _recompose.compose)((0, _utils.withStyleProps)({
102
+ var _default = (0, _utils.compose)((0, _utils.withStyleProps)({
104
103
  hasSize: true
105
104
  }), (0, _utils.defaultProps)({
106
105
  classPrefix: 'modal'