@atlaskit/progress-tracker 8.9.1 → 8.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/progress-tracker
2
2
 
3
+ ## 8.9.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#145688](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/145688)
8
+ [`8b5cef4cf858b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/8b5cef4cf858b) -
9
+ Removal of FF platform-progress-tracker-functional-facade which was added during the functional
10
+ component conversion
11
+
12
+ ## 8.9.2
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies
17
+
3
18
  ## 8.9.1
4
19
 
5
20
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  Object.defineProperty(exports, "ProgressTracker", {
8
8
  enumerable: true,
9
9
  get: function get() {
10
- return _progressTrackerFacade.default;
10
+ return _progressTracker.default;
11
11
  }
12
12
  });
13
- var _progressTrackerFacade = _interopRequireDefault(require("./progress-tracker-facade"));
13
+ var _progressTracker = _interopRequireDefault(require("./progress-tracker"));
@@ -5,12 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
9
  var _react = require("react");
16
10
  var _react2 = require("@emotion/react");
@@ -19,16 +13,13 @@ var _constants2 = require("./internal/constants");
19
13
  var _link = _interopRequireDefault(require("./internal/link"));
20
14
  var _stage = _interopRequireDefault(require("./internal/stage"));
21
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
- function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
24
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @atlaskit/design-system/no-nested-styles */ /**
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable @atlaskit/design-system/no-nested-styles */ /**
25
17
  * @jsxRuntime classic
26
18
  * @jsx jsx
27
19
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
28
20
  var containerStyles = (0, _react2.css)({
29
21
  display: 'grid',
30
22
  width: '100%',
31
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
32
23
  margin: '0 auto',
33
24
  padding: "var(--ds-space-0, 0px)",
34
25
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage, @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
@@ -39,113 +30,100 @@ var containerStyles = (0, _react2.css)({
39
30
  marginBlockStart: "var(--ds-space-500, 40px)"
40
31
  }
41
32
  });
42
- var ProgressTracker = exports.default = /*#__PURE__*/function (_PureComponent) {
43
- (0, _inherits2.default)(ProgressTracker, _PureComponent);
44
- var _super = _createSuper(ProgressTracker);
45
- function ProgressTracker() {
46
- var _this;
47
- (0, _classCallCheck2.default)(this, ProgressTracker);
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
50
- }
51
- _this = _super.call.apply(_super, [this].concat(args));
52
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
53
- prevStages: _this.props.items.map(function (stage) {
54
- return _objectSpread(_objectSpread({}, stage), {}, {
55
- percentageComplete: 0
56
- });
57
- })
33
+ /**
34
+ * __Progress tracker__
35
+ *
36
+ * A progress tracker displays the steps and progress through a journey.
37
+ *
38
+ * - [Examples](https://atlassian.design/components/progress-tracker/examples)
39
+ * - [Code](https://atlassian.design/components/progress-tracker/code)
40
+ * - [Usage](https://atlassian.design/components/progress-tracker/usage)
41
+ */
42
+ var ProgressTracker = function ProgressTracker(_ref) {
43
+ var _listInlineStyles;
44
+ var _ref$items = _ref.items,
45
+ items = _ref$items === void 0 ? [] : _ref$items,
46
+ _ref$spacing = _ref.spacing,
47
+ spacing = _ref$spacing === void 0 ? 'cosy' : _ref$spacing,
48
+ _ref$render = _ref.render,
49
+ render = _ref$render === void 0 ? {
50
+ // Anchor content is coming from another location
51
+ // eslint-disable-next-line jsx-a11y/anchor-has-content
52
+ link: function link(_ref2) {
53
+ var item = _ref2.item;
54
+ return (0, _react2.jsx)(_link.default, item);
55
+ }
56
+ } : _ref$render,
57
+ _ref$animated = _ref.animated,
58
+ animated = _ref$animated === void 0 ? true : _ref$animated,
59
+ testId = _ref.testId,
60
+ _ref$label = _ref.label,
61
+ label = _ref$label === void 0 ? 'Progress' : _ref$label;
62
+ var prevItems = (0, _react.useRef)(items.map(function (stage) {
63
+ return _objectSpread(_objectSpread({}, stage), {}, {
64
+ percentageComplete: 0
58
65
  });
59
- return _this;
60
- }
61
- (0, _createClass2.default)(ProgressTracker, [{
62
- key: "UNSAFE_componentWillReceiveProps",
63
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
64
- var _this2 = this;
65
- var prevStages = nextProps.items.map(function (stage) {
66
- var oldStage = _this2.props.items.find(function (st) {
67
- return st.id === stage.id;
68
- });
69
- return oldStage !== undefined ? oldStage : stage;
70
- });
71
- this.setState({
72
- prevStages: prevStages
73
- });
74
- }
75
- }, {
76
- key: "render",
77
- value: function render() {
78
- var _this3 = this,
79
- _listInlineStyles;
80
- var _this$props = this.props,
81
- testId = _this$props.testId,
82
- label = _this$props.label;
83
- var progressChanges = this.props.items.filter(function (stage, index) {
84
- return stage.percentageComplete !== _this3.state.prevStages[index].percentageComplete;
85
- }).length;
86
- var totalStepsForward = this.props.items.filter(function (stage, index) {
87
- return stage.percentageComplete > _this3.state.prevStages[index].percentageComplete;
88
- }).length;
89
- var totalStepsBack = this.props.items.filter(function (stage, index) {
90
- return stage.percentageComplete < _this3.state.prevStages[index].percentageComplete;
91
- }).length;
92
- var stepsForward = totalStepsForward;
93
- var stepsBack = totalStepsBack;
94
- var items = this.props.items.map(function (stage, index) {
95
- var transitionSpeed = 0;
96
- var transitionDelay = 0;
97
- var transitionEasing = progressChanges > 1 ? 'linear' : _constants2.ANIMATION_EASE_OUT;
98
- if (_this3.props.animated) {
99
- transitionSpeed = progressChanges > 1 ? _constants2.LINEAR_TRANSITION_SPEED : _constants2.TRANSITION_SPEED;
100
- if (stage.percentageComplete < _this3.state.prevStages[index].percentageComplete) {
101
- /**
102
- * Load each transition sequentially in reverse.
103
- */
104
- transitionDelay = (stepsBack - 1) * transitionSpeed;
105
- stepsBack -= 1;
106
- } else if (stage.percentageComplete > _this3.state.prevStages[index].percentageComplete) {
107
- /**
108
- * Load each transition sequentially.
109
- */
110
- transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
111
- stepsForward -= 1;
112
- }
113
- }
114
- return (0, _react2.jsx)(_stage.default, {
115
- transitionSpeed: transitionSpeed,
116
- transitionDelay: transitionDelay,
117
- transitionEasing: transitionEasing,
118
- key: stage.id,
119
- item: stage,
120
- render: _this3.props.render
121
- });
122
- });
123
- var listInlineStyles = (_listInlineStyles = {
124
- gridTemplateColumns: "repeat(".concat(items.length, ", 1fr)")
125
- }, (0, _defineProperty2.default)(_listInlineStyles, _constants2.varSpacing, _constants.spacing[this.props.spacing]), (0, _defineProperty2.default)(_listInlineStyles, "maxWidth", 8 * 10 * items.length * 2), _listInlineStyles);
126
- return (0, _react2.jsx)("ul", {
127
- "data-testid": testId
128
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
129
- ,
130
- style: listInlineStyles,
131
- css: containerStyles,
132
- "aria-label": label
133
- }, items);
134
- }
135
- }]);
136
- return ProgressTracker;
137
- }(_react.PureComponent);
138
- (0, _defineProperty2.default)(ProgressTracker, "defaultProps", {
139
- items: [],
140
- spacing: 'cosy',
141
- render: {
142
- // Anchor content is coming from another location
143
- // eslint-disable-next-line jsx-a11y/anchor-has-content
144
- link: function link(_ref) {
145
- var item = _ref.item;
146
- return (0, _react2.jsx)(_link.default, item);
66
+ }));
67
+ var previousStages = items.map(function (stage) {
68
+ var _prevItems$current;
69
+ var oldStage = (_prevItems$current = prevItems.current) === null || _prevItems$current === void 0 ? void 0 : _prevItems$current.find(function (st) {
70
+ return st.id === stage.id;
71
+ });
72
+ return !!oldStage ? oldStage : stage;
73
+ });
74
+ (0, _react.useEffect)(function () {
75
+ prevItems.current = items;
76
+ }, [items]);
77
+ var progressChanges = items.filter(function (stage, index) {
78
+ return stage.percentageComplete !== previousStages[index].percentageComplete;
79
+ }).length;
80
+ var totalStepsForward = items.filter(function (stage, index) {
81
+ return stage.percentageComplete > previousStages[index].percentageComplete;
82
+ }).length;
83
+ var totalStepsBack = items.filter(function (stage, index) {
84
+ return stage.percentageComplete < previousStages[index].percentageComplete;
85
+ }).length;
86
+ var stepsForward = totalStepsForward;
87
+ var stepsBack = totalStepsBack;
88
+ var progressItems = items.map(function (stage, index) {
89
+ var transitionSpeed = 0;
90
+ var transitionDelay = 0;
91
+ var transitionEasing = progressChanges > 1 ? 'linear' : _constants2.ANIMATION_EASE_OUT;
92
+ if (animated) {
93
+ transitionSpeed = progressChanges > 1 ? _constants2.LINEAR_TRANSITION_SPEED : _constants2.TRANSITION_SPEED;
94
+ if (stage.percentageComplete < previousStages[index].percentageComplete) {
95
+ /**
96
+ * Load each transition sequentially in reverse.
97
+ */
98
+ transitionDelay = (stepsBack - 1) * transitionSpeed;
99
+ stepsBack -= 1;
100
+ } else if (stage.percentageComplete > previousStages[index].percentageComplete) {
101
+ /**
102
+ * Load each transition sequentially.
103
+ */
104
+ transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
105
+ stepsForward -= 1;
106
+ }
147
107
  }
148
- },
149
- animated: true,
150
- label: 'Progress'
151
- });
108
+ return (0, _react2.jsx)(_stage.default, {
109
+ transitionSpeed: transitionSpeed,
110
+ transitionDelay: transitionDelay,
111
+ transitionEasing: transitionEasing,
112
+ key: stage.id,
113
+ item: stage,
114
+ render: render
115
+ });
116
+ });
117
+ var listInlineStyles = (_listInlineStyles = {
118
+ gridTemplateColumns: "repeat(".concat(items.length, ", 1fr)")
119
+ }, (0, _defineProperty2.default)(_listInlineStyles, _constants2.varSpacing, _constants.spacing[spacing]), (0, _defineProperty2.default)(_listInlineStyles, "maxWidth", 8 * 10 * items.length * 2), _listInlineStyles);
120
+ return (0, _react2.jsx)("ul", {
121
+ "data-testid": testId
122
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
123
+ ,
124
+ style: listInlineStyles,
125
+ css: containerStyles,
126
+ "aria-label": label
127
+ }, progressItems);
128
+ };
129
+ var _default = exports.default = ProgressTracker;
@@ -1 +1 @@
1
- export { default as ProgressTracker } from './progress-tracker-facade';
1
+ export { default as ProgressTracker } from './progress-tracker';
@@ -1,21 +1,19 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  /* eslint-disable @atlaskit/design-system/no-nested-styles */
3
2
  /**
4
3
  * @jsxRuntime classic
5
4
  * @jsx jsx
6
5
  */
7
- import { PureComponent } from 'react';
6
+ import { useEffect, useRef } from 'react';
8
7
 
9
8
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
9
  import { css, jsx } from '@emotion/react';
11
- import { spacing } from './constants';
10
+ import { spacing as spacingOptions } from './constants';
12
11
  import { ANIMATION_EASE_OUT, LINEAR_TRANSITION_SPEED, TRANSITION_SPEED, varSpacing } from './internal/constants';
13
12
  import Link from './internal/link';
14
13
  import Stage from './internal/stage';
15
14
  const containerStyles = css({
16
15
  display: 'grid',
17
16
  width: '100%',
18
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
19
17
  margin: '0 auto',
20
18
  padding: "var(--ds-space-0, 0px)",
21
19
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage, @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
@@ -26,89 +24,87 @@ const containerStyles = css({
26
24
  marginBlockStart: "var(--ds-space-500, 40px)"
27
25
  }
28
26
  });
29
- export default class ProgressTracker extends PureComponent {
30
- constructor(...args) {
31
- super(...args);
32
- _defineProperty(this, "state", {
33
- prevStages: this.props.items.map(stage => ({
34
- ...stage,
35
- percentageComplete: 0
36
- }))
37
- });
38
- }
39
- UNSAFE_componentWillReceiveProps(nextProps) {
40
- const prevStages = nextProps.items.map(stage => {
41
- const oldStage = this.props.items.find(st => st.id === stage.id);
42
- return oldStage !== undefined ? oldStage : stage;
43
- });
44
- this.setState({
45
- prevStages
46
- });
47
- }
48
- render() {
49
- const {
50
- testId,
51
- label
52
- } = this.props;
53
- const progressChanges = this.props.items.filter((stage, index) => stage.percentageComplete !== this.state.prevStages[index].percentageComplete).length;
54
- const totalStepsForward = this.props.items.filter((stage, index) => stage.percentageComplete > this.state.prevStages[index].percentageComplete).length;
55
- const totalStepsBack = this.props.items.filter((stage, index) => stage.percentageComplete < this.state.prevStages[index].percentageComplete).length;
56
- let stepsForward = totalStepsForward;
57
- let stepsBack = totalStepsBack;
58
- const items = this.props.items.map((stage, index) => {
59
- let transitionSpeed = 0;
60
- let transitionDelay = 0;
61
- const transitionEasing = progressChanges > 1 ? 'linear' : ANIMATION_EASE_OUT;
62
- if (this.props.animated) {
63
- transitionSpeed = progressChanges > 1 ? LINEAR_TRANSITION_SPEED : TRANSITION_SPEED;
64
- if (stage.percentageComplete < this.state.prevStages[index].percentageComplete) {
65
- /**
66
- * Load each transition sequentially in reverse.
67
- */
68
- transitionDelay = (stepsBack - 1) * transitionSpeed;
69
- stepsBack -= 1;
70
- } else if (stage.percentageComplete > this.state.prevStages[index].percentageComplete) {
71
- /**
72
- * Load each transition sequentially.
73
- */
74
- transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
75
- stepsForward -= 1;
76
- }
77
- }
78
- return jsx(Stage, {
79
- transitionSpeed: transitionSpeed,
80
- transitionDelay: transitionDelay,
81
- transitionEasing: transitionEasing,
82
- key: stage.id,
83
- item: stage,
84
- render: this.props.render
85
- });
86
- });
87
- const listInlineStyles = {
88
- gridTemplateColumns: `repeat(${items.length}, 1fr)`,
89
- [varSpacing]: spacing[this.props.spacing],
90
- maxWidth: 8 * 10 * items.length * 2
91
- };
92
- return jsx("ul", {
93
- "data-testid": testId
94
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
95
- ,
96
- style: listInlineStyles,
97
- css: containerStyles,
98
- "aria-label": label
99
- }, items);
100
- }
101
- }
102
- _defineProperty(ProgressTracker, "defaultProps", {
103
- items: [],
104
- spacing: 'cosy',
105
- render: {
27
+ /**
28
+ * __Progress tracker__
29
+ *
30
+ * A progress tracker displays the steps and progress through a journey.
31
+ *
32
+ * - [Examples](https://atlassian.design/components/progress-tracker/examples)
33
+ * - [Code](https://atlassian.design/components/progress-tracker/code)
34
+ * - [Usage](https://atlassian.design/components/progress-tracker/usage)
35
+ */
36
+ const ProgressTracker = ({
37
+ items = [],
38
+ spacing = 'cosy',
39
+ render = {
106
40
  // Anchor content is coming from another location
107
41
  // eslint-disable-next-line jsx-a11y/anchor-has-content
108
42
  link: ({
109
43
  item
110
44
  }) => jsx(Link, item)
111
45
  },
112
- animated: true,
113
- label: 'Progress'
114
- });
46
+ animated = true,
47
+ testId,
48
+ label = 'Progress'
49
+ }) => {
50
+ const prevItems = useRef(items.map(stage => ({
51
+ ...stage,
52
+ percentageComplete: 0
53
+ })));
54
+ const previousStages = items.map(stage => {
55
+ var _prevItems$current;
56
+ const oldStage = (_prevItems$current = prevItems.current) === null || _prevItems$current === void 0 ? void 0 : _prevItems$current.find(st => st.id === stage.id);
57
+ return !!oldStage ? oldStage : stage;
58
+ });
59
+ useEffect(() => {
60
+ prevItems.current = items;
61
+ }, [items]);
62
+ const progressChanges = items.filter((stage, index) => stage.percentageComplete !== previousStages[index].percentageComplete).length;
63
+ const totalStepsForward = items.filter((stage, index) => stage.percentageComplete > previousStages[index].percentageComplete).length;
64
+ const totalStepsBack = items.filter((stage, index) => stage.percentageComplete < previousStages[index].percentageComplete).length;
65
+ let stepsForward = totalStepsForward;
66
+ let stepsBack = totalStepsBack;
67
+ const progressItems = items.map((stage, index) => {
68
+ let transitionSpeed = 0;
69
+ let transitionDelay = 0;
70
+ const transitionEasing = progressChanges > 1 ? 'linear' : ANIMATION_EASE_OUT;
71
+ if (animated) {
72
+ transitionSpeed = progressChanges > 1 ? LINEAR_TRANSITION_SPEED : TRANSITION_SPEED;
73
+ if (stage.percentageComplete < previousStages[index].percentageComplete) {
74
+ /**
75
+ * Load each transition sequentially in reverse.
76
+ */
77
+ transitionDelay = (stepsBack - 1) * transitionSpeed;
78
+ stepsBack -= 1;
79
+ } else if (stage.percentageComplete > previousStages[index].percentageComplete) {
80
+ /**
81
+ * Load each transition sequentially.
82
+ */
83
+ transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
84
+ stepsForward -= 1;
85
+ }
86
+ }
87
+ return jsx(Stage, {
88
+ transitionSpeed: transitionSpeed,
89
+ transitionDelay: transitionDelay,
90
+ transitionEasing: transitionEasing,
91
+ key: stage.id,
92
+ item: stage,
93
+ render: render
94
+ });
95
+ });
96
+ const listInlineStyles = {
97
+ gridTemplateColumns: `repeat(${items.length}, 1fr)`,
98
+ [varSpacing]: spacingOptions[spacing],
99
+ maxWidth: 8 * 10 * items.length * 2
100
+ };
101
+ return jsx("ul", {
102
+ "data-testid": testId
103
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
104
+ ,
105
+ style: listInlineStyles,
106
+ css: containerStyles,
107
+ "aria-label": label
108
+ }, progressItems);
109
+ };
110
+ export default ProgressTracker;
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export { default as ProgressTracker } from './progress-tracker-facade';
1
+ export { default as ProgressTracker } from './progress-tracker';