@instructure/ui-react-utils 8.33.1 → 8.33.2

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 (45) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/es/ComponentIdentifier.js +5 -8
  3. package/es/DeterministicIdContext/DeterministicIdContextProvider.js +2 -2
  4. package/es/DeterministicIdContext/generateInstanceCounterMap.js +1 -1
  5. package/es/DeterministicIdContext/index.js +1 -0
  6. package/es/DeterministicIdContext/withDeterministicId.js +6 -10
  7. package/es/callRenderProp.js +3 -7
  8. package/es/deprecated.js +5 -30
  9. package/es/ensureSingleChild.js +2 -3
  10. package/es/experimental.js +0 -7
  11. package/es/getDisplayName.js +0 -1
  12. package/es/getElementType.js +3 -9
  13. package/es/getInteraction.js +12 -10
  14. package/es/hack.js +1 -7
  15. package/es/matchComponentTypes.js +1 -3
  16. package/es/omitProps.js +0 -7
  17. package/es/passthroughProps.js +3 -3
  18. package/es/pickProps.js +2 -6
  19. package/es/safeCloneElement.js +11 -15
  20. package/es/windowMessageListener.js +2 -13
  21. package/lib/ComponentIdentifier.js +2 -17
  22. package/lib/DeterministicIdContext/DeterministicIdContext.js +1 -5
  23. package/lib/DeterministicIdContext/DeterministicIdContextProvider.js +3 -7
  24. package/lib/DeterministicIdContext/generateInstanceCounterMap.js +1 -2
  25. package/lib/DeterministicIdContext/index.js +0 -4
  26. package/lib/DeterministicIdContext/withDeterministicId.js +6 -18
  27. package/lib/callRenderProp.js +2 -9
  28. package/lib/deprecated.js +6 -32
  29. package/lib/ensureSingleChild.js +0 -7
  30. package/lib/experimental.js +1 -10
  31. package/lib/getDisplayName.js +0 -2
  32. package/lib/getElementType.js +2 -10
  33. package/lib/getInteraction.js +12 -11
  34. package/lib/hack.js +0 -9
  35. package/lib/index.js +0 -16
  36. package/lib/matchComponentTypes.js +0 -4
  37. package/lib/omitProps.js +0 -8
  38. package/lib/passthroughProps.js +2 -5
  39. package/lib/pickProps.js +2 -7
  40. package/lib/safeCloneElement.js +10 -19
  41. package/lib/windowMessageListener.js +1 -16
  42. package/package.json +8 -8
  43. package/tsconfig.build.tsbuildinfo +1 -1
  44. package/types/getElementType.d.ts +1 -1
  45. package/types/getElementType.d.ts.map +1 -1
@@ -21,10 +21,10 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
+
24
25
  import React from 'react';
25
26
  import { logWarn as warn } from '@instructure/console';
26
27
  import { createChainedFunction } from '@instructure/ui-utils';
27
-
28
28
  /**
29
29
  * ---
30
30
  * category: utilities/react
@@ -39,19 +39,21 @@ function safeCloneElement(element, props) {
39
39
  const originalRef = element.ref;
40
40
  const originalRefIsAFunction = typeof originalRef === 'function';
41
41
  const cloneRefIsFunction = typeof cloneRef === 'function';
42
- const mergedProps = { ...props
42
+ const mergedProps = {
43
+ ...props
43
44
  };
44
-
45
45
  if (element.props.style && props.style) {
46
46
  // merge with existing styles
47
- mergedProps.style = { ...element.props.style,
47
+ mergedProps.style = {
48
+ ...element.props.style,
48
49
  ...props.style
49
50
  };
50
- } // prevent overriding existing keys
51
-
51
+ }
52
52
 
53
- mergedProps.key = element.key || props.key; // Add chained function to preserve existing event handlers
53
+ // prevent overriding existing keys
54
+ mergedProps.key = element.key || props.key;
54
55
 
56
+ // Add chained function to preserve existing event handlers
55
57
  Object.keys(props).forEach(prop => {
56
58
  // If prop looks like an event handler "on*" and either
57
59
  // props[props] or element.props[prop] is a function create a chained function.
@@ -63,20 +65,17 @@ function safeCloneElement(element, props) {
63
65
  mergedProps[prop] = createChainedFunction(element.props[prop], props[prop]);
64
66
  }
65
67
  });
66
-
67
68
  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
68
69
  children[_key - 2] = arguments[_key];
69
70
  }
70
-
71
71
  if (originalRef == null || cloneRef == null) {
72
72
  return /*#__PURE__*/React.cloneElement(element, mergedProps, ...children);
73
73
  }
74
-
75
74
  warn(originalRefIsAFunction, `Cloning an element with a ref that will be overwritten because the ref \
76
75
  is not a function. Use a composable callback-style ref instead. \
77
76
  Ignoring ref: ${originalRef}`);
78
- return /*#__PURE__*/React.cloneElement(element, { ...mergedProps,
79
-
77
+ return /*#__PURE__*/React.cloneElement(element, {
78
+ ...mergedProps,
80
79
  ref(component) {
81
80
  if (cloneRefIsFunction) {
82
81
  ;
@@ -84,12 +83,9 @@ Ignoring ref: ${originalRef}`);
84
83
  } else {
85
84
  cloneRef.current = component;
86
85
  }
87
-
88
86
  originalRef(component);
89
87
  }
90
-
91
88
  }, ...children);
92
89
  }
93
-
94
90
  export default safeCloneElement;
95
91
  export { safeCloneElement };
@@ -23,6 +23,7 @@
23
23
  */
24
24
  import { decorator } from '@instructure/ui-decorator';
25
25
  import { ownerWindow } from '@instructure/ui-dom-utils';
26
+
26
27
  /**
27
28
  * ---
28
29
  * category: utilities/react
@@ -36,42 +37,33 @@ import { ownerWindow } from '@instructure/ui-dom-utils';
36
37
  * @param {Function} validSource an optional function that would restrict message handling to a specified source.
37
38
  * @returns {Function} a function that decorates a React component with the behavior
38
39
  */
39
-
40
40
  const windowMessageListener = decorator((ComposedComponent, messageHandler, validSource) => {
41
41
  var _class;
42
-
43
42
  return _class = class extends ComposedComponent {
44
43
  constructor() {
45
44
  super(...arguments);
46
-
47
45
  this.handleMessage = e => {
48
46
  if (this.sourceIsValid(e.source) && e.origin === origin(this) && e.data) {
49
47
  messageHandler.call(this, e.data);
50
48
  }
51
49
  };
52
50
  }
53
-
54
51
  componentDidMount() {
55
52
  const win = ownerWindow(this);
56
53
  win.addEventListener('message', this.handleMessage, false);
57
-
58
54
  if (super.componentDidMount) {
59
55
  super.componentDidMount();
60
56
  }
61
57
  }
62
-
63
58
  componentWillUnmount() {
64
59
  const win = ownerWindow(this);
65
60
  win.removeEventListener('message', this.handleMessage, false);
66
-
67
61
  if (super.componentDidMount) {
68
62
  super.componentDidMount();
69
63
  }
70
64
  }
71
-
72
65
  sourceIsValid(eventSource) {
73
66
  const expectedSource = typeof validSource === 'function' ? validSource.call(this) : validSource;
74
-
75
67
  if (!expectedSource) {
76
68
  return true;
77
69
  } else if (eventSource) {
@@ -82,11 +74,11 @@ const windowMessageListener = decorator((ComposedComponent, messageHandler, vali
82
74
  return false;
83
75
  }
84
76
  }
85
-
86
77
  }, _class.postMessage = function (target, message, origin) {
87
78
  target.postMessage(message, origin);
88
79
  }, _class;
89
80
  });
81
+
90
82
  /**
91
83
  * Return the origin of the owner window of the DOM element
92
84
  *
@@ -95,11 +87,9 @@ const windowMessageListener = decorator((ComposedComponent, messageHandler, vali
95
87
  * @param {DOMElement} node
96
88
  * @returns {String} the origin
97
89
  */
98
-
99
90
  function origin(node) {
100
91
  const ownWindow = ownerWindow(node);
101
92
  const location = ownWindow.location;
102
-
103
93
  if (location.protocol === 'file:') {
104
94
  return '*';
105
95
  } else if (location.origin) {
@@ -110,6 +100,5 @@ function origin(node) {
110
100
  return `${location.protocol}//${location.hostname}`;
111
101
  }
112
102
  }
113
-
114
103
  export default windowMessageListener;
115
104
  export { origin, windowMessageListener };
@@ -1,32 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.ComponentIdentifier = void 0;
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
-
18
12
  var _matchComponentTypes = require("./matchComponentTypes");
19
-
20
13
  var _ensureSingleChild = require("./ensureSingleChild");
21
-
22
14
  var _deprecated = _interopRequireDefault(require("./deprecated"));
23
-
24
15
  const _excluded = ["children"];
25
-
26
16
  var _dec, _class, _class2;
27
-
28
17
  // TODO delete this class, its not used anywhere, see livegrep
29
-
30
18
  /**
31
19
  ---
32
20
  category: utilities/react
@@ -66,24 +54,21 @@ Abstract component identifier. Helpful for picking out a specific child.
66
54
  let ComponentIdentifier = (_dec = (0, _deprecated.default)('8.0.0', void 0, 'This component will be removed in InstUI 9.0 since its not used.'), _dec(_class = (_class2 = class ComponentIdentifier extends _react.Component {
67
55
  render() {
68
56
  const _this$props = this.props,
69
- children = _this$props.children,
70
- props = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
57
+ children = _this$props.children,
58
+ props = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
71
59
  return (0, _ensureSingleChild.ensureSingleChild)(children, props);
72
60
  }
73
-
74
61
  }, _class2.displayName = "ComponentIdentifier", _class2.propTypes = {
75
62
  children: _propTypes.default.node
76
63
  }, _class2.defaultProps = {
77
64
  children: null
78
65
  }, _class2.pick = (component, children) => {
79
66
  let result;
80
-
81
67
  _react.default.Children.forEach(children, child => {
82
68
  if ((0, _matchComponentTypes.matchComponentTypes)(child, [component])) {
83
69
  result = child;
84
70
  }
85
71
  });
86
-
87
72
  return result;
88
73
  }, _class2)) || _class);
89
74
  exports.ComponentIdentifier = ComponentIdentifier;
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.DeterministicIdContext = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _generateInstanceCounterMap = require("./generateInstanceCounterMap");
13
-
14
10
  /*
15
11
  * The MIT License (MIT)
16
12
  *
@@ -34,6 +30,6 @@ var _generateInstanceCounterMap = require("./generateInstanceCounterMap");
34
30
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35
31
  * SOFTWARE.
36
32
  */
37
- const DeterministicIdContext = /*#__PURE__*/_react.default.createContext((0, _generateInstanceCounterMap.generateInstanceCounterMap)());
38
33
 
34
+ const DeterministicIdContext = /*#__PURE__*/_react.default.createContext((0, _generateInstanceCounterMap.generateInstanceCounterMap)());
39
35
  exports.DeterministicIdContext = DeterministicIdContext;
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.DeterministicIdContextProvider = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _generateInstanceCounterMap = require("./generateInstanceCounterMap");
13
-
14
10
  var _DeterministicIdContext = require("./DeterministicIdContext");
15
-
16
11
  /*
17
12
  * The MIT License (MIT)
18
13
  *
@@ -36,7 +31,9 @@ var _DeterministicIdContext = require("./DeterministicIdContext");
36
31
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
37
32
  * SOFTWARE.
38
33
  */
34
+
39
35
  const defaultContextValue = (0, _generateInstanceCounterMap.generateInstanceCounterMap)();
36
+
40
37
  /**
41
38
  * ---
42
39
  * category: components/utilities
@@ -47,12 +44,11 @@ const defaultContextValue = (0, _generateInstanceCounterMap.generateInstanceCoun
47
44
 
48
45
  const DeterministicIdContextProvider = _ref => {
49
46
  let children = _ref.children,
50
- instanceCounterMap = _ref.instanceCounterMap;
47
+ instanceCounterMap = _ref.instanceCounterMap;
51
48
  return /*#__PURE__*/_react.default.createElement(_DeterministicIdContext.DeterministicIdContext.Provider, {
52
49
  value: instanceCounterMap
53
50
  }, children);
54
51
  };
55
-
56
52
  exports.DeterministicIdContextProvider = DeterministicIdContextProvider;
57
53
  DeterministicIdContextProvider.defaultProps = {
58
54
  instanceCounterMap: defaultContextValue
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  exports.generateInstanceCounterMap = generateInstanceCounterMap;
8
-
9
8
  /*
10
9
  * The MIT License (MIT)
11
10
  *
@@ -29,9 +28,9 @@ exports.generateInstanceCounterMap = generateInstanceCounterMap;
29
28
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
29
  * SOFTWARE.
31
30
  */
31
+
32
32
  function generateInstanceCounterMap() {
33
33
  return new Map();
34
34
  }
35
-
36
35
  var _default = generateInstanceCounterMap;
37
36
  exports.default = _default;
@@ -27,11 +27,7 @@ Object.defineProperty(exports, "withDeterministicId", {
27
27
  return _withDeterministicId.withDeterministicId;
28
28
  }
29
29
  });
30
-
31
30
  var _generateInstanceCounterMap = require("./generateInstanceCounterMap");
32
-
33
31
  var _DeterministicIdContextProvider = require("./DeterministicIdContextProvider");
34
-
35
32
  var _DeterministicIdContext = require("./DeterministicIdContext");
36
-
37
33
  var _withDeterministicId = require("./withDeterministicId");
@@ -1,26 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.withDeterministicId = exports.default = void 0;
11
-
12
9
  var _react = _interopRequireWildcard(require("react"));
13
-
14
10
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
15
-
16
11
  var _DeterministicIdContext = require("./DeterministicIdContext");
17
-
18
12
  var _decorator = require("@instructure/ui-decorator/lib/decorator.js");
19
-
20
13
  var _generateId = require("@instructure/ui-utils/lib/generateId.js");
21
-
22
14
  var _console = require("@instructure/console");
23
-
24
15
  /*
25
16
  * The MIT License (MIT)
26
17
  *
@@ -57,35 +48,32 @@ const withDeterministicId = (0, _decorator.decorator)(ComposedComponent => {
57
48
  const WithDeterministicId = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
58
49
  const componentName = ComposedComponent.componentId || ComposedComponent.displayName || ComposedComponent.name;
59
50
  const instanceCounterMap = (0, _react.useContext)(_DeterministicIdContext.DeterministicIdContext);
60
-
61
51
  const deterministicId = function () {
62
52
  let instanceName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : componentName;
63
53
  return (0, _generateId.generateId)(instanceName, instanceCounterMap);
64
54
  };
65
-
66
55
  if (props.deterministicId) {
67
56
  (0, _console.warn)(false, `Manually passing the "deterministicId" property is not allowed on the ${componentName} component.\n`, props.deterministicId);
68
57
  }
69
-
70
58
  return /*#__PURE__*/_react.default.createElement(ComposedComponent, Object.assign({
71
59
  ref: ref,
72
60
  deterministicId: deterministicId
73
61
  }, props));
74
62
  });
75
- (0, _hoistNonReactStatics.default)(WithDeterministicId, ComposedComponent); // we have to pass these on, because sometimes users
63
+ (0, _hoistNonReactStatics.default)(WithDeterministicId, ComposedComponent);
64
+
65
+ // we have to pass these on, because sometimes users
76
66
  // access propTypes of the component in other components
77
67
  // eslint-disable-next-line react/forbid-foreign-prop-types
78
-
79
68
  WithDeterministicId.propTypes = ComposedComponent.propTypes;
80
- WithDeterministicId.defaultProps = ComposedComponent.defaultProps; // These static fields exist on InstUI components
81
- //@ts-expect-error fix this
69
+ WithDeterministicId.defaultProps = ComposedComponent.defaultProps;
82
70
 
71
+ // These static fields exist on InstUI components
72
+ //@ts-expect-error fix this
83
73
  WithDeterministicId.allowedProps = ComposedComponent.allowedProps;
84
-
85
74
  if (process.env.NODE_ENV !== 'production') {
86
75
  WithDeterministicId.displayName = `WithDeterministicId(${ComposedComponent.displayName})`;
87
76
  }
88
-
89
77
  return WithDeterministicId;
90
78
  });
91
79
  exports.withDeterministicId = withDeterministicId;
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.callRenderProp = callRenderProp;
9
8
  exports.default = void 0;
10
-
11
9
  var _react = _interopRequireDefault(require("react"));
12
-
13
10
  /*
14
11
  * The MIT License (MIT)
15
12
  *
@@ -45,7 +42,6 @@ var _react = _interopRequireDefault(require("react"));
45
42
  */
46
43
  function callRenderProp(value) {
47
44
  let props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
48
-
49
45
  if (typeof value === 'function') {
50
46
  // In react 16, `createElement` accepts a function. In react 15 we get an
51
47
  // error on rendering the result. Evaluate the function here if it is not a
@@ -53,14 +49,11 @@ function callRenderProp(value) {
53
49
  // fat arrow functions don't have a prototype
54
50
  if (!(value.prototype && value.prototype.isReactComponent)) {
55
51
  return value(props);
56
- } // TODO type 'value' properly
57
-
58
-
52
+ }
53
+ // TODO type 'value' properly
59
54
  return /*#__PURE__*/_react.default.createElement(value, props);
60
55
  }
61
-
62
56
  return value;
63
57
  }
64
-
65
58
  var _default = callRenderProp;
66
59
  exports.default = _default;
package/lib/deprecated.js CHANGED
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.deprecated = exports.default = void 0;
7
-
8
7
  var _decorator = require("@instructure/ui-decorator/lib/decorator.js");
9
-
10
8
  var _console = require("@instructure/console");
11
-
12
9
  /*
13
10
  * The MIT License (MIT)
14
11
  *
@@ -32,27 +29,21 @@ var _console = require("@instructure/console");
32
29
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
30
  * SOFTWARE.
34
31
  */
32
+
35
33
  const deprecated = (() => {
36
34
  if (process.env.NODE_ENV === 'production') {
37
35
  const deprecated = function () {
38
36
  return ComposedComponent => ComposedComponent;
39
- }; // eslint-disable-next-line react/display-name
40
-
41
-
37
+ };
38
+ // eslint-disable-next-line react/display-name
42
39
  deprecated.deprecatePropValues = () => () => null;
43
-
44
40
  deprecated.warnDeprecatedProps = () => {};
45
-
46
41
  deprecated.warnDeprecatedComponent = () => {};
47
-
48
42
  deprecated.changedPackageWarning = () => '';
49
-
50
43
  return deprecated;
51
44
  }
52
-
53
45
  const deprecated = (0, _decorator.decorator)(function (ComposedComponent, version, oldProps) {
54
46
  let message = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
55
-
56
47
  /**
57
48
  * ---
58
49
  * category: utilities/react
@@ -79,31 +70,26 @@ const deprecated = (() => {
79
70
  * @module deprecated
80
71
  */
81
72
  class DeprecatedComponent extends ComposedComponent {}
82
-
83
73
  DeprecatedComponent.prototype.componentDidMount = function () {
84
74
  if (oldProps) {
85
75
  warnDeprecatedProps(ComposedComponent.name, version, this.props, oldProps, message);
86
76
  } else {
87
77
  warnDeprecatedComponent(version, ComposedComponent.name, message);
88
78
  }
89
-
90
79
  if (ComposedComponent.prototype.componentDidMount) {
91
80
  ComposedComponent.prototype.componentDidMount.call(this);
92
81
  }
93
82
  };
94
-
95
83
  DeprecatedComponent.prototype.componentDidUpdate = function (prevProps, prevState, prevContext) {
96
84
  if (oldProps) {
97
85
  warnDeprecatedProps(ComposedComponent.name, version, this.props, oldProps, message);
98
86
  } else {
99
87
  warnDeprecatedComponent(version, ComposedComponent.name, message);
100
88
  }
101
-
102
89
  if (ComposedComponent.prototype.componentDidUpdate) {
103
90
  ComposedComponent.prototype.componentDidUpdate.call(this, prevProps, prevState, prevContext);
104
91
  }
105
92
  };
106
-
107
93
  return DeprecatedComponent;
108
94
  })
109
95
  /**
@@ -115,9 +101,7 @@ const deprecated = (() => {
115
101
  * @param {function} propType - validates the prop type. Returns null if valid, error otherwise
116
102
  * @param {array} deprecated - an array of the deprecated variant names
117
103
  * @param {string|function} message - a string with additional information (like the version the prop will be removed) or a function returning a string
118
- */
119
- ;
120
-
104
+ */;
121
105
  deprecated.deprecatePropValues = function (propType) {
122
106
  let deprecated = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
123
107
  let message = arguments.length > 2 ? arguments[2] : void 0;
@@ -129,15 +113,12 @@ const deprecated = (() => {
129
113
  propValue: props[propName]
130
114
  }) : `The '${props[propName]}' value for the \`${propName}\` prop is deprecated. ${message || ''}`;
131
115
  (0, _console.logWarnDeprecated)(!isDeprecatedValue, `[${componentName}] ${warningMessage}`);
132
-
133
116
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
134
117
  rest[_key - 3] = arguments[_key];
135
118
  }
136
-
137
119
  return isDeprecatedValue ? null : propType(props, propName, componentName, ...rest);
138
120
  };
139
121
  };
140
-
141
122
  function warnDeprecatedProps(componentName, version, props, oldProps) {
142
123
  let message = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : '';
143
124
  Object.keys(oldProps).forEach(oldProp => {
@@ -148,10 +129,8 @@ const deprecated = (() => {
148
129
  }
149
130
  });
150
131
  }
151
-
152
132
  ;
153
133
  deprecated.warnDeprecatedProps = warnDeprecatedProps;
154
-
155
134
  function warnDeprecatedComponent(version, componentName, message) {
156
135
  (0, _console.logWarnDeprecated)(false, `[${componentName}] is deprecated and will be removed in version ${version}. ${message || ''}`);
157
136
  }
@@ -163,10 +142,9 @@ const deprecated = (() => {
163
142
  * @param {String} componentName the name of the component or Function.name of the utility function
164
143
  * @param {String} message a message to display as a console error in DEV env when condition is false
165
144
  */
166
-
167
-
168
145
  ;
169
146
  deprecated.warnDeprecatedComponent = warnDeprecatedComponent
147
+
170
148
  /**
171
149
  * ---
172
150
  * category: utilities
@@ -174,16 +152,12 @@ const deprecated = (() => {
174
152
  * @param {String} prevPackage the previous name of the package
175
153
  * @param {String} newPackage the new version of the package
176
154
  * @return {String} the formatted warning string
177
- */
178
- ;
179
-
155
+ */;
180
156
  deprecated.changedPackageWarning = (prevPackage, newPackage) => {
181
157
  return `It has been moved from @instructure/${prevPackage} to @instructure/${newPackage}.`;
182
158
  };
183
-
184
159
  return deprecated;
185
160
  })();
186
-
187
161
  exports.deprecated = deprecated;
188
162
  var _default = deprecated;
189
163
  exports.default = _default;
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
8
  exports.ensureSingleChild = ensureSingleChild;
10
-
11
9
  var _react = _interopRequireWildcard(require("react"));
12
-
13
10
  var _safeCloneElement = require("./safeCloneElement");
14
-
15
11
  /*
16
12
  * The MIT License (MIT)
17
13
  *
@@ -52,9 +48,7 @@ var _safeCloneElement = require("./safeCloneElement");
52
48
  */
53
49
  function ensureSingleChild(child) {
54
50
  let props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
55
-
56
51
  const childCount = _react.Children.count(child);
57
-
58
52
  if (childCount === 0) {
59
53
  return null;
60
54
  } else if (typeof child === 'string' && child.length > 0 || childCount > 1) {
@@ -64,6 +58,5 @@ function ensureSingleChild(child) {
64
58
  return (0, _safeCloneElement.safeCloneElement)(Array.isArray(child) ? child[0] : child, props);
65
59
  }
66
60
  }
67
-
68
61
  var _default = ensureSingleChild;
69
62
  exports.default = _default;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.experimental = exports.default = void 0;
7
-
8
7
  var _decorator = require("@instructure/ui-decorator/lib/decorator.js");
9
-
10
8
  var _console = require("@instructure/console");
11
-
12
9
  /*
13
10
  * The MIT License (MIT)
14
11
  *
@@ -32,6 +29,7 @@ var _console = require("@instructure/console");
32
29
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
30
  * SOFTWARE.
34
31
  */
32
+
35
33
  const experimental = process.env.NODE_ENV == 'production' ? () => ReactComponent => ReactComponent : (0, _decorator.decorator)((ComposedComponent, experimentalProps, message) => {
36
34
  return class ExperimentalComponent extends ComposedComponent {
37
35
  componentDidMount() {
@@ -42,12 +40,10 @@ const experimental = process.env.NODE_ENV == 'production' ? () => ReactComponent
42
40
  warnExperimentalComponent(ComposedComponent.name, message);
43
41
  }
44
42
  }
45
-
46
43
  if (super.componentDidMount) {
47
44
  super.componentDidMount();
48
45
  }
49
46
  }
50
-
51
47
  componentDidUpdate(prevProps, prevState, prevContext) {
52
48
  if (!this.props.__dangerouslyIgnoreExperimentalWarnings) {
53
49
  if (experimentalProps) {
@@ -56,27 +52,22 @@ const experimental = process.env.NODE_ENV == 'production' ? () => ReactComponent
56
52
  warnExperimentalComponent(ComposedComponent.name, message);
57
53
  }
58
54
  }
59
-
60
55
  if (super.componentDidUpdate) {
61
56
  super.componentDidUpdate(prevProps, prevState, prevContext);
62
57
  }
63
58
  }
64
-
65
59
  };
66
60
  });
67
61
  exports.experimental = experimental;
68
-
69
62
  function warnExperimentalProps(name, props, experimentalProps) {
70
63
  let message = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
71
64
  experimentalProps.forEach(experimentalProp => {
72
65
  (0, _console.logWarn)(typeof props[experimentalProp] === 'undefined', `[${name}] The \`${experimentalProp}\` prop is experimental and its API could change significantly in a future release. ${message}`);
73
66
  });
74
67
  }
75
-
76
68
  function warnExperimentalComponent(name) {
77
69
  let message = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : '';
78
70
  (0, _console.logWarn)(false, `[${name}] is experimental and its API could change significantly in a future release. ${message}`);
79
71
  }
80
-
81
72
  var _default = experimental;
82
73
  exports.default = _default;
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  exports.getDisplayName = getDisplayName;
8
-
9
8
  /*
10
9
  * The MIT License (MIT)
11
10
  *
@@ -43,6 +42,5 @@ exports.getDisplayName = getDisplayName;
43
42
  function getDisplayName(ReactComponent) {
44
43
  return typeof ReactComponent === 'string' ? ReactComponent : ReactComponent.displayName || ReactComponent.name;
45
44
  }
46
-
47
45
  var _default = getDisplayName;
48
46
  exports.default = _default;