react-bootstrap-rails 0.29.2 → 0.29.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 044944e43529e6d937c5dd05454298e52fafa19d
4
- data.tar.gz: 8edd78342fce3a487ae3b3a5f7bbd61001771b3d
3
+ metadata.gz: 17d7802accfd35133c27f487f9f283fd78cd32e0
4
+ data.tar.gz: e493f8fc3de80ba6df457630ed5867ec54295321
5
5
  SHA512:
6
- metadata.gz: d411cff070ffe4a91852df2a38e2489f43b89f718de773add00e02b4bd35f60098c214d55d3847a8adffba988eb711a1d17cda7bf0db71893b24bdd53509baee
7
- data.tar.gz: 84a97249545b78aa5f8d8c41678801d285f4684c34999ffd687cc158d1f7d0471635127db9d0af471c5c561a1f22c0ba90f5e463289fac0851fa6566cbedc141
6
+ metadata.gz: e042bdda5f1b9586e8aa0b411e2f1e8927a849a7f260691a6582dd296c9b93d13882318e32814631141b975d41902bfeebabb4f6c2e69b8d50e51da2716138d7
7
+ data.tar.gz: 280136f08976edffd70a7985ab57ecc7e25a6b0b027c95768b63eaae4cf7fe6b1edfcaccadb2465608325fea598c78169ba586ae14a582ca61707919576344e9
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [ReactBootstrap](http://react-bootstrap.github.io/) for Rails Asset Pipeline
6
6
 
7
- ReactBootstrap version: [0.29.2](https://github.com/react-bootstrap/react-bootstrap/releases/tag/v0.29.2)
7
+ ReactBootstrap version: [0.29.4](https://github.com/react-bootstrap/react-bootstrap/releases/tag/v0.29.4)
8
8
 
9
9
  ## Installation
10
10
 
@@ -1,7 +1,7 @@
1
1
  module React
2
2
  module Bootstrap
3
3
  module Rails
4
- VERSION = '0.29.2'
4
+ VERSION = '0.29.4'
5
5
  end
6
6
  end
7
7
  end
@@ -4029,7 +4029,15 @@ return /******/ (function(modules) { // webpackBootstrap
4029
4029
  /**
4030
4030
  * Only valid if `inline` is not set.
4031
4031
  */
4032
- validationState: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error'])
4032
+ validationState: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']),
4033
+ /**
4034
+ * Attaches a ref to the `<input>` element. Only functions can be used here.
4035
+ *
4036
+ * ```js
4037
+ * <Checkbox inputRef={ref => { this.input = ref; }} />
4038
+ * ```
4039
+ */
4040
+ inputRef: _react2['default'].PropTypes.func
4033
4041
  };
4034
4042
 
4035
4043
  var defaultProps = {
@@ -4051,14 +4059,21 @@ return /******/ (function(modules) { // webpackBootstrap
4051
4059
  var inline = _props.inline;
4052
4060
  var disabled = _props.disabled;
4053
4061
  var validationState = _props.validationState;
4062
+ var inputRef = _props.inputRef;
4054
4063
  var className = _props.className;
4055
4064
  var style = _props.style;
4056
4065
  var children = _props.children;
4057
4066
 
4058
- var props = _objectWithoutProperties(_props, ['inline', 'disabled', 'validationState', 'className', 'style', 'children']);
4067
+ var props = _objectWithoutProperties(_props, ['inline', 'disabled', 'validationState', 'inputRef', 'className', 'style', 'children']);
4059
4068
 
4060
4069
  delete props.bsClass;
4061
4070
 
4071
+ var input = _react2['default'].createElement('input', _extends({}, props, {
4072
+ ref: inputRef,
4073
+ type: 'checkbox',
4074
+ disabled: disabled
4075
+ }));
4076
+
4062
4077
  if (inline) {
4063
4078
  var _classes;
4064
4079
 
@@ -4071,7 +4086,7 @@ return /******/ (function(modules) { // webpackBootstrap
4071
4086
  return _react2['default'].createElement(
4072
4087
  'label',
4073
4088
  { className: _classnames2['default'](className, _classes2), style: style },
4074
- _react2['default'].createElement('input', _extends({}, props, { type: 'checkbox', disabled: disabled })),
4089
+ input,
4075
4090
  children
4076
4091
  );
4077
4092
  }
@@ -4089,7 +4104,7 @@ return /******/ (function(modules) { // webpackBootstrap
4089
4104
  _react2['default'].createElement(
4090
4105
  'label',
4091
4106
  null,
4092
- _react2['default'].createElement('input', _extends({}, props, { type: 'checkbox', disabled: disabled })),
4107
+ input,
4093
4108
  children
4094
4109
  )
4095
4110
  );
@@ -5634,7 +5649,7 @@ return /******/ (function(modules) { // webpackBootstrap
5634
5649
  var children = this.extractChildren();
5635
5650
  var Component = this.props.componentClass;
5636
5651
 
5637
- var props = _lodashCompatObjectOmit2['default'](this.props, ['id', 'bsClass', 'role']);
5652
+ var props = _lodashCompatObjectOmit2['default'](this.props, ['id', 'bsClass', 'role', 'onSelect']);
5638
5653
  var className = _utilsBootstrapUtils.prefix(this.props);
5639
5654
 
5640
5655
  var rootClasses = (_rootClasses = {
@@ -8832,12 +8847,12 @@ return /******/ (function(modules) { // webpackBootstrap
8832
8847
 
8833
8848
  exports.__esModule = true;
8834
8849
 
8850
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8851
+
8835
8852
  var _createUncontrollable = __webpack_require__(160);
8836
8853
 
8837
8854
  var _createUncontrollable2 = _interopRequireDefault(_createUncontrollable);
8838
8855
 
8839
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8840
-
8841
8856
  var mixin = {
8842
8857
  shouldComponentUpdate: function shouldComponentUpdate() {
8843
8858
  //let the forceUpdate trigger the update
@@ -8857,7 +8872,7 @@ return /******/ (function(modules) { // webpackBootstrap
8857
8872
  if (component.isMounted()) component.forceUpdate();
8858
8873
  }
8859
8874
 
8860
- exports.default = (0, _createUncontrollable2.default)([mixin], set);
8875
+ exports['default'] = _createUncontrollable2['default']([mixin], set);
8861
8876
  module.exports = exports['default'];
8862
8877
 
8863
8878
  /***/ },
@@ -8870,26 +8885,22 @@ return /******/ (function(modules) { // webpackBootstrap
8870
8885
 
8871
8886
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8872
8887
 
8873
- exports.default = createUncontrollable;
8888
+ exports['default'] = createUncontrollable;
8874
8889
 
8875
- var _react = __webpack_require__(20);
8890
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
8876
8891
 
8877
- var _react2 = _interopRequireDefault(_react);
8892
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8878
8893
 
8879
- var _invariant = __webpack_require__(32);
8894
+ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
8880
8895
 
8881
- var _invariant2 = _interopRequireDefault(_invariant);
8896
+ var _react = __webpack_require__(20);
8897
+
8898
+ var _react2 = _interopRequireDefault(_react);
8882
8899
 
8883
8900
  var _utils = __webpack_require__(161);
8884
8901
 
8885
8902
  var utils = _interopRequireWildcard(_utils);
8886
8903
 
8887
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
8888
-
8889
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8890
-
8891
- function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
8892
-
8893
8904
  function createUncontrollable(mixins, set) {
8894
8905
 
8895
8906
  return uncontrollable;
@@ -8899,12 +8910,10 @@ return /******/ (function(modules) { // webpackBootstrap
8899
8910
 
8900
8911
  var displayName = Component.displayName || Component.name || 'Component',
8901
8912
  basePropTypes = utils.getType(Component).propTypes,
8902
- isCompositeComponent = utils.isReactComponent(Component),
8903
8913
  propTypes;
8904
8914
 
8905
8915
  propTypes = utils.uncontrolledPropTypes(controlledValues, basePropTypes, displayName);
8906
8916
 
8907
- (0, _invariant2.default)(isCompositeComponent || !methods.length, '[uncontrollable] stateless function components cannot pass through methods ' + 'becasue they have no associated instances. Check component: ' + displayName + ', ' + 'attempting to pass through methods: ' + methods.join(', '));
8908
8917
  methods = utils.transform(methods, function (obj, method) {
8909
8918
  obj[method] = function () {
8910
8919
  var _refs$inner;
@@ -8913,7 +8922,7 @@ return /******/ (function(modules) { // webpackBootstrap
8913
8922
  };
8914
8923
  }, {});
8915
8924
 
8916
- var component = _react2.default.createClass(_extends({
8925
+ var component = _react2['default'].createClass(_extends({
8917
8926
 
8918
8927
  displayName: 'Uncontrolled(' + displayName + ')',
8919
8928
 
@@ -8922,6 +8931,7 @@ return /******/ (function(modules) { // webpackBootstrap
8922
8931
  propTypes: propTypes
8923
8932
 
8924
8933
  }, methods, {
8934
+
8925
8935
  componentWillMount: function componentWillMount() {
8926
8936
  var props = this.props,
8927
8937
  keys = Object.keys(controlledValues);
@@ -8931,10 +8941,9 @@ return /******/ (function(modules) { // webpackBootstrap
8931
8941
  }, {});
8932
8942
  },
8933
8943
 
8934
-
8935
- /**
8936
- * If a prop switches from controlled to Uncontrolled
8937
- * reset its value to the defaultValue
8944
+ /**
8945
+ * If a prop switches from controlled to Uncontrolled
8946
+ * reset its value to the defaultValue
8938
8947
  */
8939
8948
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
8940
8949
  var _this = this;
@@ -8948,6 +8957,7 @@ return /******/ (function(modules) { // webpackBootstrap
8948
8957
  }
8949
8958
  });
8950
8959
  },
8960
+
8951
8961
  render: function render() {
8952
8962
  var _this2 = this;
8953
8963
 
@@ -8971,23 +8981,21 @@ return /******/ (function(modules) { // webpackBootstrap
8971
8981
  newProps[handle] = setAndNotify.bind(_this2, propName);
8972
8982
  });
8973
8983
 
8974
- newProps = _extends({}, props, newProps, {
8975
- ref: isCompositeComponent ? 'inner' : null
8976
- });
8984
+ newProps = _extends({}, props, newProps, { ref: 'inner' });
8977
8985
 
8978
- return _react2.default.createElement(Component, newProps);
8986
+ return _react2['default'].createElement(Component, newProps);
8979
8987
  }
8988
+
8980
8989
  }));
8981
8990
 
8982
8991
  component.ControlledComponent = Component;
8983
8992
 
8984
- /**
8985
- * useful when wrapping a Component and you want to control
8986
- * everything
8993
+ /**
8994
+ * useful when wrapping a Component and you want to control
8995
+ * everything
8987
8996
  */
8988
- component.deferControlTo = function (newComponent) {
8989
- var additions = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
8990
- var nextMethods = arguments[2];
8997
+ component.deferControlTo = function (newComponent, additions, nextMethods) {
8998
+ if (additions === undefined) additions = {};
8991
8999
 
8992
9000
  return uncontrollable(newComponent, _extends({}, controlledValues, additions), nextMethods);
8993
9001
  };
@@ -9014,6 +9022,7 @@ return /******/ (function(modules) { // webpackBootstrap
9014
9022
  }
9015
9023
  }
9016
9024
  }
9025
+
9017
9026
  module.exports = exports['default'];
9018
9027
 
9019
9028
  /***/ },
@@ -9023,7 +9032,6 @@ return /******/ (function(modules) { // webpackBootstrap
9023
9032
  'use strict';
9024
9033
 
9025
9034
  exports.__esModule = true;
9026
- exports.version = undefined;
9027
9035
  exports.customPropType = customPropType;
9028
9036
  exports.uncontrolledPropTypes = uncontrolledPropTypes;
9029
9037
  exports.getType = getType;
@@ -9033,9 +9041,10 @@ return /******/ (function(modules) { // webpackBootstrap
9033
9041
  exports.chain = chain;
9034
9042
  exports.transform = transform;
9035
9043
  exports.each = each;
9036
- exports.isReactComponent = isReactComponent;
9037
9044
  exports.has = has;
9038
9045
 
9046
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
9047
+
9039
9048
  var _react = __webpack_require__(20);
9040
9049
 
9041
9050
  var _react2 = _interopRequireDefault(_react);
@@ -9044,8 +9053,6 @@ return /******/ (function(modules) { // webpackBootstrap
9044
9053
 
9045
9054
  var _invariant2 = _interopRequireDefault(_invariant);
9046
9055
 
9047
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9048
-
9049
9056
  function customPropType(handler, propType, name) {
9050
9057
 
9051
9058
  return function (props, propName) {
@@ -9067,7 +9074,7 @@ return /******/ (function(modules) { // webpackBootstrap
9067
9074
  transform(controlledValues, function (obj, handler, prop) {
9068
9075
  var type = basePropTypes[prop];
9069
9076
 
9070
- (0, _invariant2.default)(typeof handler === 'string' && handler.trim().length, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop);
9077
+ _invariant2['default'](typeof handler === 'string' && handler.trim().length, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop);
9071
9078
 
9072
9079
  obj[prop] = customPropType(handler, type, displayName);
9073
9080
 
@@ -9078,7 +9085,9 @@ return /******/ (function(modules) { // webpackBootstrap
9078
9085
  return propTypes;
9079
9086
  }
9080
9087
 
9081
- var version = exports.version = _react2.default.version.split('.').map(parseFloat);
9088
+ var version = _react2['default'].version.split('.').map(parseFloat);
9089
+
9090
+ exports.version = version;
9082
9091
 
9083
9092
  function getType(component) {
9084
9093
  if (version[0] >= 15 || version[0] === 0 && version[1] >= 13) return component;
@@ -9125,21 +9134,7 @@ return /******/ (function(modules) { // webpackBootstrap
9125
9134
  function each(obj, cb, thisArg) {
9126
9135
  if (Array.isArray(obj)) return obj.forEach(cb, thisArg);
9127
9136
 
9128
- for (var key in obj) {
9129
- if (has(obj, key)) cb.call(thisArg, obj[key], key, obj);
9130
- }
9131
- }
9132
-
9133
- /**
9134
- * Copyright (c) 2013-present, Facebook, Inc.
9135
- * All rights reserved.
9136
- *
9137
- * This source code is licensed under the BSD-style license found in the
9138
- * LICENSE file in the root directory of this source tree. An additional grant
9139
- * of patent rights can be found in the PATENTS file in the same directory.
9140
- */
9141
- function isReactComponent(component) {
9142
- return !!(component && component.prototype && component.prototype.isReactComponent);
9137
+ for (var key in obj) if (has(obj, key)) cb.call(thisArg, obj[key], key, obj);
9143
9138
  }
9144
9139
 
9145
9140
  function has(o, k) {
@@ -11984,6 +11979,8 @@ return /******/ (function(modules) { // webpackBootstrap
11984
11979
 
11985
11980
  var props = _objectWithoutProperties(_props, ['className', 'style', 'onClick']);
11986
11981
 
11982
+ delete props.onSelect;
11983
+
11987
11984
  var classes = {
11988
11985
  disabled: this.props.disabled,
11989
11986
  active: this.props.active
@@ -14164,7 +14161,7 @@ return /******/ (function(modules) { // webpackBootstrap
14164
14161
  }
14165
14162
 
14166
14163
  var _child$props = child.props;
14167
- var linkId = _child$props.linkId;
14164
+ var id = _child$props.id;
14168
14165
  var controls = _child$props['aria-controls'];
14169
14166
  var eventKey = _child$props.eventKey;
14170
14167
  var role = _child$props.role;
@@ -14173,9 +14170,9 @@ return /******/ (function(modules) { // webpackBootstrap
14173
14170
  var tabIndex = _child$props$tabIndex === undefined ? 0 : _child$props$tabIndex;
14174
14171
 
14175
14172
  if (context && context.getId) {
14176
- true ? _warning2['default'](!(linkId || controls), 'In the context of a TabContainer, NavItems are given generated `linkId` and `aria-controls` ' + 'attributes for the sake of proper component accessibility. Any provided ones will be ignored. ' + 'To control these attributes directly provide a `generateChildId` prop to the parent TabContainer.') : undefined;
14173
+ true ? _warning2['default'](!(id || controls), 'In the context of a TabContainer, NavItems are given generated `id` and `aria-controls` ' + 'attributes for the sake of proper component accessibility. Any provided ones will be ignored. ' + 'To control these attributes directly provide a `generateChildId` prop to the parent TabContainer.') : undefined;
14177
14174
 
14178
- linkId = context.getId(eventKey, _utilsTabUtils.TAB) || null;
14175
+ id = context.getId(eventKey, _utilsTabUtils.TAB) || null;
14179
14176
  controls = context.getId(eventKey, _utilsTabUtils.PANE) || null;
14180
14177
  onSelect = _utilsCreateChainedFunction2['default'](onSelect, context.onSelect);
14181
14178
  }
@@ -14188,7 +14185,7 @@ return /******/ (function(modules) { // webpackBootstrap
14188
14185
 
14189
14186
  return {
14190
14187
  onSelect: onSelect,
14191
- linkId: linkId,
14188
+ id: id,
14192
14189
  role: role,
14193
14190
  onKeyDown: onKeyDown,
14194
14191
  'aria-controls': controls,
@@ -16809,7 +16806,6 @@ return /******/ (function(modules) { // webpackBootstrap
16809
16806
  var props = _objectWithoutProperties(_props, ['active', 'disabled', 'onClick', 'buttonComponentClass', 'className', 'style']);
16810
16807
 
16811
16808
  delete props.onSelect;
16812
- delete props.eventKey;
16813
16809
 
16814
16810
  return _react2['default'].createElement(
16815
16811
  'li',
@@ -16894,6 +16890,7 @@ return /******/ (function(modules) { // webpackBootstrap
16894
16890
  },
16895
16891
 
16896
16892
  handleSelect: function handleSelect(e) {
16893
+ e.persist();
16897
16894
  e.selected = true;
16898
16895
 
16899
16896
  if (this.props.onSelect) {
@@ -17479,7 +17476,15 @@ return /******/ (function(modules) { // webpackBootstrap
17479
17476
  /**
17480
17477
  * Only valid if `inline` is not set.
17481
17478
  */
17482
- validationState: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error'])
17479
+ validationState: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']),
17480
+ /**
17481
+ * Attaches a ref to the `<input>` element. Only functions can be used here.
17482
+ *
17483
+ * ```js
17484
+ * <Radio inputRef={ref => { this.input = ref; }} />
17485
+ * ```
17486
+ */
17487
+ inputRef: _react2['default'].PropTypes.func
17483
17488
  };
17484
17489
 
17485
17490
  var defaultProps = {
@@ -17501,14 +17506,21 @@ return /******/ (function(modules) { // webpackBootstrap
17501
17506
  var inline = _props.inline;
17502
17507
  var disabled = _props.disabled;
17503
17508
  var validationState = _props.validationState;
17509
+ var inputRef = _props.inputRef;
17504
17510
  var className = _props.className;
17505
17511
  var style = _props.style;
17506
17512
  var children = _props.children;
17507
17513
 
17508
- var props = _objectWithoutProperties(_props, ['inline', 'disabled', 'validationState', 'className', 'style', 'children']);
17514
+ var props = _objectWithoutProperties(_props, ['inline', 'disabled', 'validationState', 'inputRef', 'className', 'style', 'children']);
17509
17515
 
17510
17516
  delete props.bsClass;
17511
17517
 
17518
+ var input = _react2['default'].createElement('input', _extends({}, props, {
17519
+ ref: inputRef,
17520
+ type: 'radio',
17521
+ disabled: disabled
17522
+ }));
17523
+
17512
17524
  if (inline) {
17513
17525
  var _classes;
17514
17526
 
@@ -17521,7 +17533,7 @@ return /******/ (function(modules) { // webpackBootstrap
17521
17533
  return _react2['default'].createElement(
17522
17534
  'label',
17523
17535
  { className: _classnames2['default'](className, _classes2), style: style },
17524
- _react2['default'].createElement('input', _extends({}, props, { type: 'radio', disabled: disabled })),
17536
+ input,
17525
17537
  children
17526
17538
  );
17527
17539
  }
@@ -17539,7 +17551,7 @@ return /******/ (function(modules) { // webpackBootstrap
17539
17551
  _react2['default'].createElement(
17540
17552
  'label',
17541
17553
  null,
17542
- _react2['default'].createElement('input', _extends({}, props, { type: 'radio', disabled: disabled })),
17554
+ input,
17543
17555
  children
17544
17556
  )
17545
17557
  );
@@ -18058,19 +18070,26 @@ return /******/ (function(modules) { // webpackBootstrap
18058
18070
  /**
18059
18071
  * Transition onExited callback when animation is not `false`
18060
18072
  */
18061
- onExited: _react.PropTypes.func
18073
+ onExited: _react.PropTypes.func,
18074
+
18075
+ /**
18076
+ * Unmount the tab (remove it from the DOM) when it is no longer visible
18077
+ */
18078
+ unmountOnExit: _react.PropTypes.bool
18062
18079
  },
18063
18080
 
18064
18081
  contextTypes: {
18065
18082
  $bs_tabcontainer: _react.PropTypes.shape({
18066
- getId: _react.PropTypes.func
18083
+ getId: _react.PropTypes.func,
18084
+ unmountOnExit: _react.PropTypes.bool
18067
18085
  }),
18068
18086
  $bs_tabcontent: _react.PropTypes.shape({
18069
18087
  bsClass: _react.PropTypes.string,
18070
18088
  animation: _react.PropTypes.oneOfType([_react.PropTypes.bool, _reactPropTypesLibElementType2['default']]),
18071
18089
  activeKey: _react.PropTypes.any,
18072
18090
  onExited: _react.PropTypes.func,
18073
- register: _react.PropTypes.func
18091
+ register: _react.PropTypes.func,
18092
+ unmountOnExit: _react.PropTypes.bool
18074
18093
  })
18075
18094
  },
18076
18095
 
@@ -18127,6 +18146,11 @@ return /******/ (function(modules) { // webpackBootstrap
18127
18146
  return props.animation != null ? props.animation : context.animation;
18128
18147
  },
18129
18148
 
18149
+ getUnmountOnExit: function getUnmountOnExit() {
18150
+ var context = this.getContext('$bs_tabcontent', this.context);
18151
+ return this.props.unmountOnExit != null ? this.props.unmountOnExit : context.unmountOnExit;
18152
+ },
18153
+
18130
18154
  isActive: function isActive() {
18131
18155
  var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0];
18132
18156
  var context = arguments.length <= 1 || arguments[1] === undefined ? this.context : arguments[1];
@@ -18144,6 +18168,10 @@ return /******/ (function(modules) { // webpackBootstrap
18144
18168
 
18145
18169
  var Transition = this.getTransition();
18146
18170
 
18171
+ if (!visible && !Transition && this.getUnmountOnExit()) {
18172
+ return null;
18173
+ }
18174
+
18147
18175
  var classes = (_classes = {
18148
18176
  active: visible
18149
18177
  }, _classes[_utilsBootstrapUtils.prefix({ bsClass: bsClass }, 'pane')] = true, _classes);
@@ -18191,7 +18219,8 @@ return /******/ (function(modules) { // webpackBootstrap
18191
18219
  onExited: _utilsCreateChainedFunction2['default'](this.handleExited, onExited),
18192
18220
  onEnter: _utilsCreateChainedFunction2['default'](this.handleEnter, onEnter),
18193
18221
  onEntering: onEntering,
18194
- onEntered: onEntered
18222
+ onEntered: onEntered,
18223
+ unmountOnExit: this.getUnmountOnExit()
18195
18224
  },
18196
18225
  tabPane
18197
18226
  );
@@ -18410,7 +18439,12 @@ return /******/ (function(modules) { // webpackBootstrap
18410
18439
  * Use `false` to disable, `true` to enable the default "Fade"
18411
18440
  * animation or any `<Transition>` component.
18412
18441
  */
18413
- animation: _react.PropTypes.oneOfType([_react.PropTypes.bool, _reactPropTypesLibElementType2['default']])
18442
+ animation: _react.PropTypes.oneOfType([_react.PropTypes.bool, _reactPropTypesLibElementType2['default']]),
18443
+
18444
+ /**
18445
+ * Unmount the tab (remove it from the DOM) when it is no longer visible
18446
+ */
18447
+ unmountOnExit: _react.PropTypes.bool
18414
18448
  },
18415
18449
 
18416
18450
  contextTypes: {
@@ -18426,14 +18460,16 @@ return /******/ (function(modules) { // webpackBootstrap
18426
18460
  animation: animationPropType,
18427
18461
  activeKey: _react.PropTypes.any,
18428
18462
  onExited: _react.PropTypes.func,
18429
- register: _react.PropTypes.func
18463
+ register: _react.PropTypes.func,
18464
+ unmountOnExit: _react.PropTypes.bool
18430
18465
  })
18431
18466
  },
18432
18467
 
18433
18468
  getDefaultProps: function getDefaultProps() {
18434
18469
  return {
18435
18470
  componentClass: 'div',
18436
- animation: true
18471
+ animation: true,
18472
+ unmountOnExit: false
18437
18473
  };
18438
18474
  },
18439
18475
 
@@ -18452,11 +18488,16 @@ return /******/ (function(modules) { // webpackBootstrap
18452
18488
  animation: this.props.animation,
18453
18489
  activeKey: exitingPane ? undefined : this.getActiveKey(),
18454
18490
  onExited: this.handlePaneExited,
18455
- register: this.registerPane
18491
+ register: this.registerPane,
18492
+ unmountOnExit: this.props.unmountOnExit
18456
18493
  }
18457
18494
  };
18458
18495
  },
18459
18496
 
18497
+ componentWillMount: function componentWillMount() {
18498
+ this.panes = [];
18499
+ },
18500
+
18460
18501
  /**
18461
18502
  * This belongs in `componentWillReceiveProps()` but
18462
18503
  * 0.14.x contains a bug where cwrp isn't called when only context changes.
@@ -18505,7 +18546,7 @@ return /******/ (function(modules) { // webpackBootstrap
18505
18546
  registerPane: function registerPane(eventKey) {
18506
18547
  var _this = this;
18507
18548
 
18508
- var panes = this.panes || (this.panes = []);
18549
+ var panes = this.panes;
18509
18550
 
18510
18551
  !(panes.indexOf(eventKey) === -1) ? true ? _invariant2['default'](false, 'You cannot have multiple TabPanes of with the same `eventKey` in the same ' + 'TabContent component. Duplicate eventKey: ' + eventKey) : _invariant2['default'](false) : undefined;
18511
18552
 
@@ -18715,6 +18756,11 @@ return /******/ (function(modules) { // webpackBootstrap
18715
18756
  */
18716
18757
  onSelect: _react2['default'].PropTypes.func,
18717
18758
 
18759
+ /**
18760
+ * Unmount tabs (remove it from the DOM) when it is no longer visible
18761
+ */
18762
+ unmountOnExit: _react2['default'].PropTypes.bool,
18763
+
18718
18764
  /**
18719
18765
  * @deprecated Use TabContainer to create differently shaped tab layouts.
18720
18766
  */
@@ -18752,7 +18798,8 @@ return /******/ (function(modules) { // webpackBootstrap
18752
18798
  animation: true,
18753
18799
  tabWidth: 2,
18754
18800
  position: 'top',
18755
- standalone: false
18801
+ standalone: false,
18802
+ unmountOnExit: false
18756
18803
  };
18757
18804
  },
18758
18805
 
@@ -18789,11 +18836,13 @@ return /******/ (function(modules) { // webpackBootstrap
18789
18836
  ref: 'tabs',
18790
18837
  role: 'tablist'
18791
18838
  });
18839
+
18792
18840
  var childTabs = _utilsValidComponentChildren2['default'].map(children, this.renderTab);
18793
18841
 
18794
18842
  var panesProps = {
18795
18843
  ref: 'panes',
18796
- animation: props.animation
18844
+ animation: props.animation,
18845
+ unmountOnExit: props.unmountOnExit
18797
18846
  };
18798
18847
 
18799
18848
  var childPanes = children;