carbon-react 98.0.0 → 99.1.0

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.
@@ -23,88 +23,30 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
 
24
24
  function _extends() { _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; }; return _extends.apply(this, arguments); }
25
25
 
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
-
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
-
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
-
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
-
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
-
48
26
  const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default);
49
27
 
50
- let Detail = /*#__PURE__*/function (_React$Component) {
51
- _inherits(Detail, _React$Component);
52
-
53
- var _super = _createSuper(Detail);
54
-
55
- function Detail(...args) {
56
- var _this;
57
-
58
- _classCallCheck(this, Detail);
59
-
60
- _this = _super.call(this, ...args);
61
-
62
- _defineProperty(_assertThisInitialized(_this), "icon", () => {
63
- if (!_this.props.icon) {
64
- return null;
65
- }
66
-
67
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetailIcon, {
68
- type: _this.props.icon,
69
- "data-element": "icon"
70
- });
71
- });
72
-
73
- _defineProperty(_assertThisInitialized(_this), "footnote", () => {
74
- if (!_this.props.footnote) {
75
- return null;
76
- }
77
-
78
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetailFootnote, {
79
- "data-element": "footnote",
80
- hasIcon: _this.props.icon
81
- }, _this.props.footnote);
82
- });
83
-
84
- return _this;
85
- }
86
-
87
- _createClass(Detail, [{
88
- key: "render",
89
- value:
90
- /**
91
- * @method render
92
- * @return {Object} JSX
93
- */
94
- function render() {
95
- const marginProps = (0, _utils.filterStyledSystemMarginProps)(this.props);
96
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetail, _extends({
97
- className: (0, _classnames.default)("carbon-detail", this.props.className),
98
- hasIcon: this.props.icon
99
- }, (0, _tags.default)("detail", this.props), marginProps), this.icon(), /*#__PURE__*/_react.default.createElement(_detail.StyledDetailContent, {
100
- "data-element": "detail-content",
101
- hasIcon: this.props.icon
102
- }, this.props.children), this.footnote());
103
- }
104
- }]);
105
-
106
- return Detail;
107
- }(_react.default.Component);
28
+ const Detail = ({
29
+ className,
30
+ icon,
31
+ footnote,
32
+ children,
33
+ ...rest
34
+ }) => {
35
+ const marginProps = (0, _utils.filterStyledSystemMarginProps)(rest);
36
+ return /*#__PURE__*/_react.default.createElement(_detail.StyledDetail, _extends({
37
+ className: (0, _classnames.default)("carbon-detail", className),
38
+ hasIcon: icon
39
+ }, (0, _tags.default)("detail", rest), marginProps), icon && /*#__PURE__*/_react.default.createElement(_detail.StyledDetailIcon, {
40
+ type: icon,
41
+ "data-element": "icon"
42
+ }), /*#__PURE__*/_react.default.createElement(_detail.StyledDetailContent, {
43
+ "data-element": "detail-content",
44
+ hasIcon: icon
45
+ }, children), footnote && /*#__PURE__*/_react.default.createElement(_detail.StyledDetailFootnote, {
46
+ "data-element": "footnote",
47
+ hasIcon: icon
48
+ }, footnote));
49
+ };
108
50
 
109
51
  Detail.propTypes = { ...marginPropTypes,
110
52
 
@@ -114,7 +56,7 @@ Detail.propTypes = { ...marginPropTypes,
114
56
  className: _propTypes.default.string,
115
57
 
116
58
  /**
117
- * <a href="https://brand.sage.com/d/NdbrveWvNheA/foundations#/icons/icons" target="_blank">List of supported icons</a>
59
+ * <a href="https://carbon.sage.com/?path=/docs/icon--list-of-icons#list-of-icons" target="_blank">List of supported icons</a>
118
60
  *
119
61
  * The type of icon to use.
120
62
  */
@@ -22,7 +22,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
22
22
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
24
  const INNER_BAR_LENGTH = "128px";
25
- const OUTER_BAR_LENGTH = "256px";
26
25
  const StyledLoader = _styledComponents.default.div`
27
26
  ${_styledSystem.margin}
28
27
  text-align: center;
@@ -33,10 +32,10 @@ const StyledLoader = _styledComponents.default.div`
33
32
  exports.StyledLoader = StyledLoader;
34
33
  const innerBarAnimation = (0, _styledComponents.keyframes)`
35
34
  0% {
36
- left: -${INNER_BAR_LENGTH}
35
+ left: -${INNER_BAR_LENGTH};
37
36
  }
38
37
  100% {
39
- left: ${OUTER_BAR_LENGTH}
38
+ left: 100%;
40
39
  }
41
40
  `;
42
41
  const StyledLoaderBar = _styledComponents.default.div`
@@ -46,7 +45,7 @@ const StyledLoaderBar = _styledComponents.default.div`
46
45
  }) => (0, _styledComponents.css)`
47
46
  display: inline-block;
48
47
  height: ${getHeight(size)};
49
- width: ${OUTER_BAR_LENGTH};
48
+ width: 100%;
50
49
  background-color: ${theme.colors.loadingBarBackground};
51
50
  overflow: hidden;
52
51
  position: relative;
@@ -19,82 +19,36 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
 
20
20
  function _extends() { _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; }; return _extends.apply(this, arguments); }
21
21
 
22
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
-
24
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
25
-
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
27
-
28
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
29
-
30
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
31
-
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
33
-
34
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
35
-
36
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
41
-
42
- let PortraitGravatar = /*#__PURE__*/function (_React$Component) {
43
- _inherits(PortraitGravatar, _React$Component);
44
-
45
- var _super = _createSuper(PortraitGravatar);
46
-
47
- function PortraitGravatar() {
48
- _classCallCheck(this, PortraitGravatar);
49
-
50
- return _super.apply(this, arguments);
51
- }
52
-
53
- _createClass(PortraitGravatar, [{
54
- key: "gravatarSrc",
55
- value:
56
- /** Generates the Gravatar URL for the specified email address and dimensions. */
57
- function gravatarSrc() {
58
- const {
59
- gravatarEmail,
60
- size
61
- } = this.props;
62
- const {
63
- dimensions
64
- } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
65
- const base = "https://www.gravatar.com/avatar/";
66
- const hash = (0, _md.default)(gravatarEmail.toLowerCase());
67
- const fallbackOption = "404"; // "Return an HTTP 404 File Not Found response"
68
-
69
- /** @see https://en.gravatar.com/site/implement/images/#default-image */
70
-
71
- return `${base}${hash}?s=${dimensions}&d=${fallbackOption}`;
72
- }
73
- /** Renders the component. */
74
-
75
- }, {
76
- key: "render",
77
- value: function render() {
78
- const {
79
- alt,
80
- size,
81
- shape,
82
- errorCallback,
83
- ...otherProps
84
- } = this.props;
85
- return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitGravatar, _extends({
86
- src: this.gravatarSrc(),
87
- alt: alt,
88
- size: size,
89
- shape: shape,
90
- onError: errorCallback,
91
- "data-element": "user-image"
92
- }, otherProps));
93
- }
94
- }]);
95
-
96
- return PortraitGravatar;
97
- }(_react.default.Component);
22
+ const PortraitGravatar = ({
23
+ gravatarEmail,
24
+ size,
25
+ alt,
26
+ shape,
27
+ errorCallback,
28
+ ...rest
29
+ }) => {
30
+ const gravatarSrc = () => {
31
+ const {
32
+ dimensions
33
+ } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
34
+ const base = "https://www.gravatar.com/avatar/";
35
+ const hash = (0, _md.default)(gravatarEmail.toLowerCase());
36
+ const fallbackOption = "404"; // "Return an HTTP 404 File Not Found response"
37
+
38
+ /** @see https://en.gravatar.com/site/implement/images/#default-image */
39
+
40
+ return `${base}${hash}?s=${dimensions}&d=${fallbackOption}`;
41
+ };
42
+
43
+ return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitGravatar, _extends({
44
+ src: gravatarSrc(),
45
+ alt: alt,
46
+ size: size,
47
+ shape: shape,
48
+ onError: errorCallback,
49
+ "data-element": "user-image"
50
+ }, rest));
51
+ };
98
52
 
99
53
  PortraitGravatar.propTypes = {
100
54
  /** The theme to use. */
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
@@ -21,145 +21,73 @@ var _portrait2 = require("./portrait.config");
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- function _extends() { _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; }; return _extends.apply(this, arguments); }
25
-
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
-
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
-
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
-
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
-
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
47
25
 
48
- let PortraitInitials = /*#__PURE__*/function (_React$Component) {
49
- _inherits(PortraitInitials, _React$Component);
26
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
50
27
 
51
- var _super = _createSuper(PortraitInitials);
52
-
53
- function PortraitInitials(...args) {
54
- var _this;
55
-
56
- _classCallCheck(this, PortraitInitials);
57
-
58
- _this = _super.call(this, ...args);
59
-
60
- _defineProperty(_assertThisInitialized(_this), "cachedImageDataUrl", null);
61
-
62
- return _this;
63
- }
64
-
65
- _createClass(PortraitInitials, [{
66
- key: "UNSAFE_componentWillReceiveProps",
67
- value:
68
- /** Invoked before a mounted component receives new props. */
69
- function UNSAFE_componentWillReceiveProps(nextProps) {
70
- const shouldClearCache = this.props.theme !== nextProps.theme || this.props.initials !== nextProps.initials || this.props.size !== nextProps.size || this.props.darkBackground !== nextProps.darkBackground;
28
+ function _extends() { _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; }; return _extends.apply(this, arguments); }
71
29
 
72
- if (shouldClearCache) {
73
- this.cachedImageDataUrl = null;
74
- }
75
- }
76
- /** Generates a graphic with initials. */
77
-
78
- }, {
79
- key: "generateDataUrl",
80
- value: function generateDataUrl() {
81
- if (this.cachedImageDataUrl) {
82
- return this.cachedImageDataUrl;
83
- }
84
-
85
- const {
86
- theme,
87
- size,
88
- darkBackground
89
- } = this.props;
90
- const {
91
- textColor,
92
- bgColor
93
- } = (0, _portrait.getColorsForInitials)(theme, darkBackground);
94
-
95
- let canvas = _browser.default.getDocument().createElement("canvas");
96
-
97
- let context = canvas.getContext("2d");
98
- let {
99
- dimensions
100
- } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
101
- dimensions -= 2; // Set canvas with & height
102
-
103
- canvas.width = dimensions;
104
- canvas.height = dimensions; // Select a font family to support different language characters
105
- // like Arial
106
-
107
- context.font = `${Math.round(canvas.width / 2.4)}px Lato, Arial`;
108
- context.textAlign = "center"; // Setup background and front color
109
-
110
- context = this.applyBackground(context, dimensions, bgColor);
111
- context = this.applyText(context, dimensions, textColor); // Set image representation in default format (png)
112
-
113
- const dataURI = canvas.toDataURL(); // Dispose canvas element
114
-
115
- canvas = null;
116
- this.cachedImageDataUrl = dataURI;
117
- return this.cachedImageDataUrl;
118
- }
119
- /** Applies the background colour to the canvas. */
120
-
121
- }, {
122
- key: "applyBackground",
123
- value: function applyBackground(canvasContext, dimensions, bgColor) {
124
- canvasContext.fillStyle = bgColor;
125
- canvasContext.fillRect(0, 0, dimensions, dimensions);
126
- return canvasContext;
30
+ const PortraitInitials = ({
31
+ theme,
32
+ initials,
33
+ size,
34
+ shape,
35
+ darkBackground,
36
+ alt,
37
+ ...rest
38
+ }) => {
39
+ const [cachedImageDataUrl, setCachedImageDataUrl] = (0, _react.useState)();
40
+ (0, _react.useEffect)(() => {
41
+ setCachedImageDataUrl(null);
42
+ }, [theme, initials, size, darkBackground]);
43
+
44
+ const generateDataUrl = () => {
45
+ if (cachedImageDataUrl) {
46
+ return cachedImageDataUrl;
127
47
  }
128
- /** Applies the initials text to the canvas. */
129
-
130
- }, {
131
- key: "applyText",
132
- value: function applyText(canvasContext, dimensions, textColor) {
133
- const letters = this.props.initials.slice(0, 3);
134
- canvasContext.fillStyle = textColor;
135
- canvasContext.fillText(letters.toUpperCase(), dimensions / 2, dimensions / 1.5);
136
- return canvasContext;
137
- }
138
- /** Renders the component. */
139
-
140
- }, {
141
- key: "render",
142
- value: function render() {
143
- const {
144
- size,
145
- shape,
146
- theme,
147
- ...otherProps
148
- } = this.props;
149
- return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitials, _extends({
150
- "data-element": "initials",
151
- size: size,
152
- shape: shape,
153
- theme: theme
154
- }, otherProps), /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitialsImg, {
155
- src: this.generateDataUrl(),
156
- alt: this.props.alt
157
- }));
158
- }
159
- }]);
160
48
 
161
- return PortraitInitials;
162
- }(_react.default.Component);
49
+ const {
50
+ textColor,
51
+ bgColor
52
+ } = (0, _portrait.getColorsForInitials)(theme, darkBackground);
53
+
54
+ let canvas = _browser.default.getDocument().createElement("canvas");
55
+
56
+ const context = canvas.getContext("2d");
57
+ let {
58
+ dimensions
59
+ } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
60
+ dimensions -= 2; // Set canvas with & height
61
+
62
+ canvas.width = dimensions;
63
+ canvas.height = dimensions; // Select a font family to support different language characters
64
+ // like Arial
65
+
66
+ context.font = `${Math.round(canvas.width / 2.4)}px Lato, Arial`;
67
+ context.textAlign = "center"; // Setup background and front color
68
+
69
+ context.fillStyle = bgColor;
70
+ context.fillRect(0, 0, dimensions, dimensions);
71
+ context.fillStyle = textColor;
72
+ context.fillText(initials.slice(0, 3).toUpperCase(), dimensions / 2, dimensions / 1.5); // Set image representation in default format (png)
73
+
74
+ const dataURI = canvas.toDataURL(); // Dispose canvas element
75
+
76
+ canvas = null;
77
+ setCachedImageDataUrl(dataURI);
78
+ return dataURI;
79
+ };
80
+
81
+ return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitials, _extends({
82
+ "data-element": "initials",
83
+ size: size,
84
+ shape: shape,
85
+ theme: theme
86
+ }, rest), /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitialsImg, {
87
+ src: generateDataUrl(),
88
+ alt: alt
89
+ }));
90
+ };
163
91
 
164
92
  PortraitInitials.propTypes = {
165
93
  /** The theme to use. */
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
@@ -25,159 +25,101 @@ var _utils = require("../../style/utils");
25
25
 
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
- function _extends() { _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; }; return _extends.apply(this, arguments); }
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
33
-
34
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
-
36
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
37
-
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
41
-
42
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
28
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
43
29
 
44
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
30
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
31
 
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
-
50
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
32
+ function _extends() { _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; }; return _extends.apply(this, arguments); }
51
33
 
52
34
  const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
53
35
 
54
- let Portrait = /*#__PURE__*/function (_React$Component) {
55
- _inherits(Portrait, _React$Component);
56
-
57
- var _super = _createSuper(Portrait);
58
-
59
- function Portrait(...args) {
60
- var _this;
61
-
62
- _classCallCheck(this, Portrait);
63
-
64
- _this = _super.call(this, ...args);
65
-
66
- _defineProperty(_assertThisInitialized(_this), "state", {
67
- externalError: false
36
+ const Portrait = ({
37
+ alt,
38
+ darkBackground,
39
+ gravatar,
40
+ iconType,
41
+ initials,
42
+ shape,
43
+ size,
44
+ src,
45
+ onClick,
46
+ tooltipMessage,
47
+ tooltipId,
48
+ tooltipIsVisible,
49
+ tooltipPosition,
50
+ tooltipType,
51
+ tooltipSize,
52
+ tooltipBgColor,
53
+ tooltipFontColor,
54
+ ...rest
55
+ }) => {
56
+ const [externalError, setExternalError] = (0, _react.useState)(false);
57
+ (0, _react.useEffect)(() => {
58
+ setExternalError(false);
59
+ }, [gravatar, src]);
60
+ const tagProps = (0, _tags.default)("portrait", rest);
61
+
62
+ const renderComponent = () => {
63
+ let portrait = /*#__PURE__*/_react.default.createElement(_portrait.StyledIcon, {
64
+ type: iconType,
65
+ size: size,
66
+ shape: shape,
67
+ darkBackground: darkBackground
68
68
  });
69
69
 
70
- return _this;
71
- }
72
-
73
- _createClass(Portrait, [{
74
- key: "componentDidUpdate",
75
- value: function componentDidUpdate(prevProps) {
76
- const relevantPropsChanged = this.props.gravatar !== prevProps.gravatar || this.props.src !== prevProps.src;
77
-
78
- if (relevantPropsChanged) {
79
- this.setState({
80
- externalError: false
81
- }); // eslint-disable-line react/no-did-update-set-state
82
- }
83
- }
84
- }, {
85
- key: "getMarginProps",
86
- value: function getMarginProps() {
87
- return (0, _utils.filterStyledSystemMarginProps)(this.props);
88
- }
89
- }, {
90
- key: "externalImageLoadFailed",
91
- value: function externalImageLoadFailed() {
92
- this.setState({
93
- externalError: true
70
+ if (initials) {
71
+ portrait = /*#__PURE__*/_react.default.createElement(_portraitInitials.default, {
72
+ size: size,
73
+ shape: shape,
74
+ initials: initials,
75
+ darkBackground: darkBackground,
76
+ alt: alt
94
77
  });
95
78
  }
96
- }, {
97
- key: "render",
98
- value: function render() {
99
- const {
100
- alt,
101
- darkBackground,
102
- gravatar,
103
- iconType,
104
- initials,
105
- shape,
106
- size,
107
- src,
108
- onClick,
109
- tooltipMessage,
110
- tooltipId,
111
- tooltipIsVisible,
112
- tooltipPosition,
113
- tooltipType,
114
- tooltipSize,
115
- tooltipBgColor,
116
- tooltipFontColor
117
- } = this.props;
118
- const tagProps = (0, _tags.default)("portrait", this.props);
119
-
120
- let portrait = /*#__PURE__*/_react.default.createElement(_portrait.StyledIcon, {
121
- type: iconType,
79
+
80
+ if (src && !externalError) {
81
+ portrait = /*#__PURE__*/_react.default.createElement(_portrait.StyledCustomImg, {
82
+ src: src,
83
+ alt: alt,
122
84
  size: size,
123
85
  shape: shape,
124
- darkBackground: darkBackground
86
+ "data-element": "user-image",
87
+ onError: () => setExternalError(true)
125
88
  });
89
+ }
126
90
 
127
- if (initials) {
128
- portrait = /*#__PURE__*/_react.default.createElement(_portraitInitials.default, {
129
- size: size,
130
- shape: shape,
131
- initials: initials,
132
- darkBackground: darkBackground,
133
- alt: alt
134
- });
135
- }
136
-
137
- if (src && !this.state.externalError) {
138
- portrait = /*#__PURE__*/_react.default.createElement(_portrait.StyledCustomImg, {
139
- src: src,
140
- alt: alt,
141
- size: size,
142
- shape: shape,
143
- "data-element": "user-image",
144
- onError: () => this.externalImageLoadFailed()
145
- });
146
- }
147
-
148
- if (gravatar && !this.state.externalError) {
149
- portrait = /*#__PURE__*/_react.default.createElement(_portraitGravatar.default, {
150
- gravatarEmail: gravatar,
151
- shape: shape,
152
- size: size,
153
- alt: alt,
154
- errorCallback: () => this.externalImageLoadFailed()
155
- });
156
- }
157
-
158
- if (tooltipMessage) {
159
- return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
160
- message: tooltipMessage,
161
- id: tooltipId,
162
- position: tooltipPosition,
163
- type: tooltipType,
164
- size: tooltipSize,
165
- isVisible: tooltipIsVisible,
166
- bgColor: tooltipBgColor,
167
- fontColor: tooltipFontColor
168
- }, /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitContainer, _extends({}, this.getMarginProps(), {
169
- onClick: onClick
170
- }, tagProps), portrait));
171
- }
172
-
173
- return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitContainer, _extends({}, this.getMarginProps(), {
91
+ if (gravatar && !externalError) {
92
+ portrait = /*#__PURE__*/_react.default.createElement(_portraitGravatar.default, {
93
+ gravatarEmail: gravatar,
94
+ shape: shape,
95
+ size: size,
96
+ alt: alt,
97
+ errorCallback: () => setExternalError(true)
98
+ });
99
+ }
100
+
101
+ if (tooltipMessage) {
102
+ return /*#__PURE__*/_react.default.createElement(_tooltip.default, {
103
+ message: tooltipMessage,
104
+ id: tooltipId,
105
+ position: tooltipPosition,
106
+ type: tooltipType,
107
+ size: tooltipSize,
108
+ isVisible: tooltipIsVisible,
109
+ bgColor: tooltipBgColor,
110
+ fontColor: tooltipFontColor
111
+ }, /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitContainer, _extends({}, (0, _utils.filterStyledSystemMarginProps)(rest), {
174
112
  onClick: onClick
175
- }, tagProps), portrait);
113
+ }, tagProps), portrait));
176
114
  }
177
- }]);
178
115
 
179
- return Portrait;
180
- }(_react.default.Component);
116
+ return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitContainer, _extends({}, (0, _utils.filterStyledSystemMarginProps)(rest), {
117
+ onClick: onClick
118
+ }, tagProps), portrait);
119
+ };
120
+
121
+ return renderComponent();
122
+ };
181
123
 
182
124
  Portrait.propTypes = { ...marginPropTypes,
183
125
 
@@ -0,0 +1 @@
1
+ export { default } from "./progress-tracker";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _progressTracker.default;
10
+ }
11
+ });
12
+
13
+ var _progressTracker = _interopRequireDefault(require("./progress-tracker.component"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Default = exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ = _interopRequireDefault(require("."));
11
+
12
+ var _progressTracker = require("./progress-tracker.config");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var _default = {
17
+ component: _.default,
18
+ title: "Progress Tracker/Test",
19
+ parameters: {
20
+ info: {
21
+ disable: true
22
+ },
23
+ chromatic: {
24
+ disable: true
25
+ }
26
+ },
27
+ argTypes: {
28
+ size: {
29
+ options: _progressTracker.PROGRESS_TRACKER_SIZES,
30
+ control: {
31
+ type: "select"
32
+ }
33
+ },
34
+ progress: {
35
+ control: {
36
+ type: "number"
37
+ }
38
+ },
39
+ currentProgressLabel: {
40
+ options: ["", "$100", "100ml"],
41
+ control: {
42
+ type: "select"
43
+ }
44
+ },
45
+ maxProgressLabel: {
46
+ options: ["", "$200", "200ml"],
47
+ control: {
48
+ type: "select"
49
+ }
50
+ },
51
+ variant: {
52
+ options: _progressTracker.PROGRESS_TRACKER_VARIANTS,
53
+ control: {
54
+ type: "select"
55
+ }
56
+ },
57
+ orientation: {
58
+ options: ["horizontal", "vertical"],
59
+ control: {
60
+ type: "select"
61
+ }
62
+ },
63
+ direction: {
64
+ options: ["up", "down"],
65
+ control: {
66
+ type: "select"
67
+ }
68
+ },
69
+ labelsPosition: {
70
+ options: ["top", "bottom", "left", "right"],
71
+ control: {
72
+ type: "select"
73
+ }
74
+ }
75
+ }
76
+ };
77
+ exports.default = _default;
78
+
79
+ const Default = ({ ...args
80
+ }) => {
81
+ return /*#__PURE__*/_react.default.createElement(_.default, args);
82
+ };
83
+
84
+ exports.Default = Default;
85
+ Default.storyName = "default";
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
13
+
14
+ var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags"));
15
+
16
+ var _utils = require("../../style/utils");
17
+
18
+ var _progressTracker = require("./progress-tracker.style");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _extends() { _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; }; return _extends.apply(this, arguments); }
23
+
24
+ const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
25
+
26
+ const ProgressTracker = ({
27
+ size = "medium",
28
+ progress = 0,
29
+ showDefaultLabels = false,
30
+ currentProgressLabel,
31
+ maxProgressLabel,
32
+ variant = "default",
33
+ orientation = "horizontal",
34
+ direction = "up",
35
+ labelsPosition,
36
+ ...rest
37
+ }) => {
38
+ const isVertical = orientation === "vertical";
39
+ const prefixLabels = !isVertical && labelsPosition !== "bottom" || isVertical && labelsPosition === "left";
40
+
41
+ const renderValueLabels = () => {
42
+ if (!showDefaultLabels && !currentProgressLabel && !maxProgressLabel) {
43
+ return null;
44
+ }
45
+
46
+ const label = (value, defaultValue) => {
47
+ if (value) {
48
+ return value;
49
+ }
50
+
51
+ return showDefaultLabels ? defaultValue : undefined;
52
+ };
53
+
54
+ return /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValuesLabel, {
55
+ position: labelsPosition,
56
+ isVertical: isVertical
57
+ }, isVertical && direction === "up" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, {
58
+ isMaxValue: true
59
+ }, label(maxProgressLabel, "100%")), /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, null, label(currentProgressLabel, `${progress}%`))), (direction === "down" || !isVertical) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, null, label(currentProgressLabel, `${progress}%`)), /*#__PURE__*/_react.default.createElement(_progressTracker.StyledValue, {
60
+ isMaxValue: true
61
+ }, label(maxProgressLabel, "100%"))));
62
+ };
63
+
64
+ return /*#__PURE__*/_react.default.createElement(_progressTracker.StyledProgressTracker, _extends({
65
+ size: size,
66
+ isVertical: isVertical
67
+ }, rest, (0, _tags.default)("progress-bar", rest)), prefixLabels && renderValueLabels(), /*#__PURE__*/_react.default.createElement(_progressTracker.StyledProgressBar, {
68
+ direction: isVertical ? direction : undefined,
69
+ isVertical: isVertical,
70
+ size: size
71
+ }, /*#__PURE__*/_react.default.createElement(_progressTracker.InnerBar, {
72
+ isVertical: isVertical,
73
+ size: size,
74
+ progress: progress,
75
+ variant: variant
76
+ })), !prefixLabels && renderValueLabels());
77
+ };
78
+
79
+ ProgressTracker.propTypes = { ...marginPropTypes,
80
+
81
+ /** Size of the progress bar. */
82
+ size: _propTypes.default.oneOf(["small", "medium", "large"]),
83
+
84
+ /** Current progress (percentage). */
85
+ progress: _propTypes.default.number,
86
+
87
+ /** Flag to control whether the default value labels (as percentages) should be rendered. */
88
+ showDefaultLabels: _propTypes.default.bool,
89
+
90
+ /** Value to display as current progress. */
91
+ currentProgressLabel: _propTypes.default.string,
92
+
93
+ /** Value to display as the maximum progress limit. */
94
+ maxProgressLabel: _propTypes.default.string,
95
+
96
+ /**
97
+ * Sets the colour of the bar that shows the current progress.
98
+ * The "traffic" variant changes the colour of status bar depending on current progress.
99
+ */
100
+ variant: _propTypes.default.oneOf(["default", "traffic"]),
101
+
102
+ /** The orientation of the component. */
103
+ orientation: _propTypes.default.oneOf(["horizontal", "vertical"]),
104
+
105
+ /** The direction the bar should move as progress increases, only applies in vertical orientation. */
106
+ direction: _propTypes.default.oneOf(["up", "down"]),
107
+
108
+ /**
109
+ * The position the value label are rendered in.
110
+ * Top/bottom apply to horizontal and left/right to vertical orientation.
111
+ */
112
+ labelsPosition: _propTypes.default.oneOf(["top", "bottom", "left", "right"])
113
+ };
114
+ var _default = ProgressTracker;
115
+ exports.default = _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PROGRESS_TRACKER_VARIANTS = exports.PROGRESS_TRACKER_SIZES = exports.OUTER_TRACKER_LENGTH = void 0;
7
+ const OUTER_TRACKER_LENGTH = "256px";
8
+ exports.OUTER_TRACKER_LENGTH = OUTER_TRACKER_LENGTH;
9
+ const PROGRESS_TRACKER_SIZES = ["small", "medium", "large"];
10
+ exports.PROGRESS_TRACKER_SIZES = PROGRESS_TRACKER_SIZES;
11
+ const PROGRESS_TRACKER_VARIANTS = ["default", "traffic"];
12
+ exports.PROGRESS_TRACKER_VARIANTS = PROGRESS_TRACKER_VARIANTS;
@@ -0,0 +1,32 @@
1
+ import { MarginProps } from "styled-system";
2
+
3
+ export interface ProgressBarProps extends MarginProps {
4
+ /** Size of the progressBar. */
5
+ size?: "small" | "medium" | "large";
6
+ /** Current progress (percentage). */
7
+ progress?: number;
8
+ /** Flag to control whether the default value labels (as percentages) should be rendered. */
9
+ showDefaultLabels?: boolean;
10
+ /** Value to display as current progress. */
11
+ currentProgressLabel?: string;
12
+ /** Value to display as the maximum progress limit. */
13
+ maxProgressLabel?: string;
14
+ /**
15
+ * Sets the colour of the bar that shows the current progress.
16
+ * The "traffic" variant changes the colour of status bar depending on current progress.
17
+ * */
18
+ variant?: "default" | "traffic";
19
+ /** The orientation of the component. */
20
+ orientation?: "horizontal" | "vertical";
21
+ /** The direction the bar should move as progress increases, only applies in vertical orientation. */
22
+ direction?: "up" | "down";
23
+ /**
24
+ * The position the value label are rendered in.
25
+ * Top/bottom apply to horizontal and left/right to vertical orientation.
26
+ */
27
+ labelsPosition?: "top" | "bottom" | "left" | "right";
28
+ }
29
+
30
+ declare function ProgressBar(props: ProgressBarProps): JSX.Element;
31
+
32
+ export default ProgressBar;
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledValue = exports.StyledValuesLabel = exports.StyledProgressTracker = exports.InnerBar = exports.StyledProgressBar = void 0;
7
+
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styledSystem = require("styled-system");
13
+
14
+ var _base = _interopRequireDefault(require("../../style/themes/base"));
15
+
16
+ var _progressTracker = require("./progress-tracker.config");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
+
22
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ const StyledProgressTracker = _styledComponents.default.div`
25
+ ${_styledSystem.margin}
26
+ text-align: center;
27
+ white-space: nowrap;
28
+
29
+ ${({
30
+ isVertical
31
+ }) => (0, _styledComponents.css)`
32
+ ${!isVertical && `
33
+ width: ${_progressTracker.OUTER_TRACKER_LENGTH};
34
+ `}
35
+ ${isVertical && `
36
+ height: ${_progressTracker.OUTER_TRACKER_LENGTH};
37
+ display: flex;
38
+ `}
39
+ `}
40
+ `;
41
+ exports.StyledProgressTracker = StyledProgressTracker;
42
+ const StyledProgressBar = _styledComponents.default.span`
43
+ ${({
44
+ direction,
45
+ isVertical,
46
+ size,
47
+ theme
48
+ }) => (0, _styledComponents.css)`
49
+ display: flex;
50
+ position: relative;
51
+ background-color: ${theme.progressTracker.background};
52
+
53
+ ${!isVertical && (0, _styledComponents.css)`
54
+ overflow-x: hidden;
55
+ height: ${getHeight(size)};
56
+ width: 100%;
57
+ `}
58
+ ${isVertical && (0, _styledComponents.css)`
59
+ overflow-y: hidden;
60
+ width: ${getHeight(size)};
61
+ height: 100%;
62
+
63
+ ${direction === "up" && `
64
+ align-items: flex-end;
65
+ `}
66
+ `}
67
+ `}
68
+ `;
69
+ exports.StyledProgressBar = StyledProgressBar;
70
+ const StyledValue = _styledComponents.default.span`
71
+ ${({
72
+ isMaxValue,
73
+ theme
74
+ }) => (0, _styledComponents.css)`
75
+ ${isMaxValue && `
76
+ color: ${theme.text.placeholder};
77
+ `}
78
+ ${!isMaxValue && `
79
+ font-weight: bold;
80
+ `}
81
+ `}
82
+ `;
83
+ exports.StyledValue = StyledValue;
84
+ const StyledValuesLabel = _styledComponents.default.span`
85
+ text-align: start;
86
+ display: flex;
87
+ justify-content: space-between;
88
+ ${({
89
+ isVertical,
90
+ position
91
+ }) => (0, _styledComponents.css)`
92
+ ${isVertical && (0, _styledComponents.css)`
93
+ flex-direction: column;
94
+
95
+ ${position !== "left" && (0, _styledComponents.css)`
96
+ padding-left: 4px;
97
+ `}
98
+
99
+ ${position === "left" && (0, _styledComponents.css)`
100
+ padding-right: 4px;
101
+
102
+ ${StyledValue} {
103
+ text-align: right;
104
+ }
105
+ `}
106
+ `}
107
+
108
+ ${!isVertical && (0, _styledComponents.css)`
109
+ ${position !== "bottom" && (0, _styledComponents.css)`
110
+ padding-bottom: 4px;
111
+ `}
112
+
113
+ ${position === "bottom" && (0, _styledComponents.css)`
114
+ padding-top: 4px;
115
+ `}
116
+ `}
117
+ `}
118
+ `;
119
+ exports.StyledValuesLabel = StyledValuesLabel;
120
+ const InnerBar = _styledComponents.default.span`
121
+ ${({
122
+ isVertical,
123
+ progress,
124
+ size,
125
+ theme,
126
+ variant
127
+ }) => (0, _styledComponents.css)`
128
+ position: absolute;
129
+ left: 0;
130
+ background-color: ${getInnerBarColour(variant, progress, theme)};
131
+
132
+ ${!isVertical && (0, _styledComponents.css)`
133
+ width: calc(${_progressTracker.OUTER_TRACKER_LENGTH} * ${progress / 100});
134
+ min-width: 2px;
135
+ height: ${getHeight(size)};
136
+ `}
137
+ ${isVertical && (0, _styledComponents.css)`
138
+ height: calc(${_progressTracker.OUTER_TRACKER_LENGTH} * ${progress / 100});
139
+ min-height: 2px;
140
+ width: ${getHeight(size)};
141
+ `}
142
+ `}
143
+ `;
144
+ exports.InnerBar = InnerBar;
145
+
146
+ function getHeight(size) {
147
+ switch (size) {
148
+ case "small":
149
+ return "4px";
150
+
151
+ case "large":
152
+ return "16px";
153
+
154
+ default:
155
+ return "8px";
156
+ }
157
+ }
158
+
159
+ function getInnerBarColour(variant, progress, theme) {
160
+ if (progress >= 100) return theme.colors.success;
161
+ if (variant === "default") return theme.progressTracker.innerBackground;
162
+ if (progress < 20) return theme.colors.error;
163
+ return theme.progressTracker.trafficNeutral;
164
+ }
165
+
166
+ StyledProgressTracker.defaultProps = {
167
+ theme: _base.default
168
+ };
169
+ StyledProgressBar.defaultProps = {
170
+ theme: _base.default,
171
+ size: "medium"
172
+ };
173
+ InnerBar.propTypes = {
174
+ size: _propTypes.default.oneOf(_progressTracker.PROGRESS_TRACKER_SIZES),
175
+ progress: _propTypes.default.number,
176
+ variant: _propTypes.default.oneOf(_progressTracker.PROGRESS_TRACKER_VARIANTS)
177
+ };
178
+ InnerBar.defaultProps = {
179
+ progress: 0,
180
+ theme: _base.default,
181
+ size: "medium",
182
+ variant: "default"
183
+ };
184
+ StyledValue.defaultProps = {
185
+ theme: _base.default
186
+ };
187
+ StyledProgressBar.propTypes = {
188
+ size: _propTypes.default.oneOf(_progressTracker.PROGRESS_TRACKER_SIZES)
189
+ };
@@ -175,6 +175,7 @@ const Search = ({
175
175
  onKeyDown: onKeyDown,
176
176
  inputRef: assignInput
177
177
  }), searchButton && /*#__PURE__*/_react.default.createElement(_search.StyledSearchButton, null, Boolean(isFocused || (!isControlled ? searchValue.length : value.length)) && /*#__PURE__*/_react.default.createElement(_button.default, _extends({
178
+ tabIndex: iconTabIndex,
178
179
  size: "medium",
179
180
  px: "16px"
180
181
  }, buttonProps), /*#__PURE__*/_react.default.createElement(_search.StyledButtonIcon, null, /*#__PURE__*/_react.default.createElement(_icon.default, {
@@ -51,6 +51,11 @@ var _default = palette => {
51
51
  },
52
52
  asterisk: palette.errorRed
53
53
  },
54
+ progressTracker: {
55
+ background: palette.slateTint(90),
56
+ innerBackground: palette.slateTint(40),
57
+ trafficNeutral: palette.productBlueShade(3)
58
+ },
54
59
  anchorNavigation: {
55
60
  divider: palette.slateTint(80),
56
61
  navItemHoverBackground: palette.slateTint(90)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "98.0.0",
3
+ "version": "99.1.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "engineStrict": true,
6
6
  "engines": {
@@ -18,7 +18,6 @@
18
18
  "test": "jest --config=./jest.conf.json",
19
19
  "test-update": "jest --config=./jest.conf.json --updateSnapshot",
20
20
  "test-cypress": "cypress open",
21
- "cypress:ci": "cypress run --record --parallel",
22
21
  "debug": "node --inspect ./node_modules/jest-cli/bin/jest --watch --config=./jest.conf.json",
23
22
  "format": "prettier --write './src'",
24
23
  "lint": "eslint ./src",
@@ -94,9 +93,10 @@
94
93
  "core-js": "^3.1.4",
95
94
  "cpy-cli": "^3.1.1",
96
95
  "cross-env": "^5.2.0",
97
- "cypress": "^8.3.1",
96
+ "cypress": "^9.0.0",
98
97
  "cypress-axe": "^0.13.0",
99
- "cypress-cucumber-preprocessor": "^4.2.0",
98
+ "cypress-cucumber-preprocessor": "^4.3.0",
99
+ "cypress-each": "^1.5.0",
100
100
  "cypress-plugin-tab": "^1.0.5",
101
101
  "cypress-real-events": "^1.5.1",
102
102
  "cypress-storybook": "^0.5.1",
@@ -119,6 +119,7 @@
119
119
  "events": "~1.1.1",
120
120
  "husky": "^4.3.6",
121
121
  "jest": "^26.6.3",
122
+ "jest-canvas-mock": "^2.3.1",
122
123
  "jest-styled-components": "^6.3.1",
123
124
  "lint-staged": "^10.5.3",
124
125
  "mockdate": "^2.0.2",