@atlaskit/progress-tracker 8.0.3 → 8.2.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.
- package/CHANGELOG.md +25 -0
- package/dist/cjs/constants.js +4 -2
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/internal/bar.js +48 -0
- package/dist/cjs/internal/constants.js +38 -0
- package/dist/cjs/internal/link.js +35 -0
- package/dist/cjs/internal/marker.js +53 -0
- package/dist/cjs/internal/stage.js +174 -0
- package/dist/cjs/internal/types.js +5 -0
- package/dist/cjs/internal/utils.js +65 -0
- package/dist/cjs/{ProgressTracker/index.js → progress-tracker.js} +46 -44
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/constants.js +6 -4
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/internal/bar.js +35 -0
- package/dist/es2019/internal/constants.js +16 -0
- package/dist/es2019/internal/link.js +24 -0
- package/dist/es2019/internal/marker.js +42 -0
- package/dist/es2019/internal/stage.js +130 -0
- package/dist/es2019/internal/types.js +1 -0
- package/dist/es2019/internal/utils.js +48 -0
- package/dist/es2019/{ProgressTracker/index.js → progress-tracker.js} +47 -32
- package/dist/es2019/version.json +1 -1
- package/dist/esm/constants.js +6 -4
- package/dist/esm/index.js +1 -1
- package/dist/esm/internal/bar.js +36 -0
- package/dist/esm/internal/constants.js +16 -0
- package/dist/esm/internal/link.js +25 -0
- package/dist/esm/internal/marker.js +43 -0
- package/dist/esm/{ProgressTrackerStage/index.js → internal/stage.js} +72 -91
- package/dist/esm/internal/types.js +1 -0
- package/dist/esm/internal/utils.js +48 -0
- package/dist/esm/{ProgressTracker/index.js → progress-tracker.js} +48 -38
- package/dist/esm/version.json +1 -1
- package/dist/types/constants.d.ts +9 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/internal/bar.d.ts +13 -0
- package/dist/types/internal/constants.d.ts +14 -0
- package/dist/types/internal/link.d.ts +10 -0
- package/dist/types/internal/marker.d.ts +11 -0
- package/dist/types/internal/stage.d.ts +17 -0
- package/dist/types/internal/types.d.ts +27 -0
- package/dist/types/internal/utils.d.ts +4 -0
- package/dist/types/{ProgressTracker/index.d.ts → progress-tracker.d.ts} +22 -13
- package/dist/types/types.d.ts +11 -4
- package/package.json +23 -11
- package/dist/cjs/ProgressTracker/styled.js +0 -20
- package/dist/cjs/ProgressTrackerLink/index.js +0 -60
- package/dist/cjs/ProgressTrackerLink/styled.js +0 -22
- package/dist/cjs/ProgressTrackerStage/index.js +0 -199
- package/dist/cjs/ProgressTrackerStage/styled.js +0 -133
- package/dist/es2019/ProgressTracker/styled.js +0 -13
- package/dist/es2019/ProgressTrackerLink/index.js +0 -16
- package/dist/es2019/ProgressTrackerLink/styled.js +0 -7
- package/dist/es2019/ProgressTrackerStage/index.js +0 -143
- package/dist/es2019/ProgressTrackerStage/styled.js +0 -140
- package/dist/esm/ProgressTracker/styled.js +0 -7
- package/dist/esm/ProgressTrackerLink/index.js +0 -42
- package/dist/esm/ProgressTrackerLink/styled.js +0 -8
- package/dist/esm/ProgressTrackerStage/styled.js +0 -107
- package/dist/types/ProgressTracker/styled.d.ts +0 -3
- package/dist/types/ProgressTrackerLink/index.d.ts +0 -10
- package/dist/types/ProgressTrackerLink/styled.d.ts +0 -3
- package/dist/types/ProgressTrackerStage/index.d.ts +0 -27
- package/dist/types/ProgressTrackerStage/styled.d.ts +0 -28
|
@@ -1,73 +1,53 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
4
4
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
5
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
6
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
8
|
|
|
8
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
10
|
|
|
10
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
12
|
|
|
12
13
|
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); }; }
|
|
13
14
|
|
|
14
15
|
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; } }
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
import { CSSTransition } from 'react-transition-group';
|
|
18
|
-
import * as colors from '@atlaskit/theme/colors';
|
|
19
|
-
import { ProgressTrackerListItem, ProgressTrackerStageBar, ProgressTrackerStageContainer, ProgressTrackerStageMarker, ProgressTrackerStageTitle } from './styled';
|
|
20
|
-
var semibold = '600';
|
|
21
|
-
var regular = '400';
|
|
22
|
-
|
|
23
|
-
var getMarkerColor = function getMarkerColor(status) {
|
|
24
|
-
switch (status) {
|
|
25
|
-
case 'unvisited':
|
|
26
|
-
return colors.N70;
|
|
27
|
-
|
|
28
|
-
case 'current':
|
|
29
|
-
case 'visited':
|
|
30
|
-
case 'disabled':
|
|
31
|
-
return colors.B300;
|
|
32
|
-
|
|
33
|
-
default:
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
var getTextColor = function getTextColor(status) {
|
|
39
|
-
switch (status) {
|
|
40
|
-
case 'unvisited':
|
|
41
|
-
return colors.N300;
|
|
17
|
+
/* eslint-disable @repo/internal/styles/no-nested-styles */
|
|
42
18
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
19
|
+
/** @jsx jsx */
|
|
20
|
+
import { PureComponent } from 'react';
|
|
21
|
+
import { css, jsx } from '@emotion/core';
|
|
22
|
+
import { CSSTransition } from 'react-transition-group';
|
|
23
|
+
import { fontSize } from '@atlaskit/theme/constants';
|
|
24
|
+
import ProgressBar from './bar';
|
|
25
|
+
import { LABEL_TOP_SPACING, varBackgroundColor, varMarkerColor, varTransitionDelay, varTransitionEasing, varTransitionSpeed } from './constants';
|
|
26
|
+
import ProgressMarker from './marker';
|
|
27
|
+
import { getFontWeight, getMarkerColor, getTextColor } from './utils';
|
|
28
|
+
var containerStyles = css({
|
|
29
|
+
width: '100%',
|
|
30
|
+
position: 'relative'
|
|
31
|
+
});
|
|
32
|
+
var listItemStyles = css({
|
|
33
|
+
margin: 0,
|
|
34
|
+
overflowWrap: 'break-word'
|
|
35
|
+
});
|
|
36
|
+
var titleStyles = css({
|
|
37
|
+
marginTop: LABEL_TOP_SPACING,
|
|
38
|
+
marginRight: 'auto',
|
|
39
|
+
marginLeft: 'auto',
|
|
40
|
+
fontSize: fontSize(),
|
|
41
|
+
lineHeight: '16px',
|
|
42
|
+
textAlign: 'center',
|
|
43
|
+
'&.fade-appear': {
|
|
44
|
+
opacity: 0.01
|
|
45
|
+
},
|
|
46
|
+
'&.fade-appear.fade-appear-active': {
|
|
47
|
+
opacity: 1,
|
|
48
|
+
transition: "opacity var(".concat(varTransitionSpeed, ") cubic-bezier(0.2, 0, 0, 1)")
|
|
69
49
|
}
|
|
70
|
-
};
|
|
50
|
+
});
|
|
71
51
|
|
|
72
52
|
var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
|
|
73
53
|
_inherits(ProgressTrackerStage, _PureComponent);
|
|
@@ -80,6 +60,15 @@ var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
|
|
|
80
60
|
_classCallCheck(this, ProgressTrackerStage);
|
|
81
61
|
|
|
82
62
|
_this = _super.call(this, props);
|
|
63
|
+
|
|
64
|
+
_defineProperty(_assertThisInitialized(_this), "onEntered", function () {
|
|
65
|
+
_this.setState({
|
|
66
|
+
transitioning: false,
|
|
67
|
+
oldMarkerColor: getMarkerColor(_this.props.item.status),
|
|
68
|
+
oldPercentageComplete: _this.props.item.percentageComplete
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
83
72
|
_this.state = {
|
|
84
73
|
transitioning: false,
|
|
85
74
|
oldMarkerColor: getMarkerColor(_this.props.item.status),
|
|
@@ -110,61 +99,53 @@ var ProgressTrackerStage = /*#__PURE__*/function (_PureComponent) {
|
|
|
110
99
|
}, {
|
|
111
100
|
key: "render",
|
|
112
101
|
value: function render() {
|
|
113
|
-
var
|
|
102
|
+
var _ref;
|
|
114
103
|
|
|
115
104
|
var _this$props = this.props,
|
|
116
105
|
item = _this$props.item,
|
|
117
106
|
render = _this$props.render,
|
|
118
107
|
transitionDelay = _this$props.transitionDelay,
|
|
119
108
|
transitionSpeed = _this$props.transitionSpeed,
|
|
120
|
-
transitionEasing = _this$props.transitionEasing
|
|
121
|
-
|
|
122
|
-
var onEntered = function onEntered() {
|
|
123
|
-
_this2.setState({
|
|
124
|
-
transitioning: false,
|
|
125
|
-
oldMarkerColor: getMarkerColor(item.status),
|
|
126
|
-
oldPercentageComplete: item.percentageComplete
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
|
|
109
|
+
transitionEasing = _this$props.transitionEasing,
|
|
110
|
+
testId = _this$props.testId;
|
|
130
111
|
var ariaCurrent = item.status === 'current' ? 'step' : 'false';
|
|
131
|
-
return
|
|
112
|
+
return jsx("li", {
|
|
113
|
+
"data-testid": testId,
|
|
114
|
+
style: (_ref = {}, _defineProperty(_ref, varTransitionSpeed, "".concat(transitionSpeed, "ms")), _defineProperty(_ref, varTransitionDelay, "".concat(transitionDelay, "ms")), _defineProperty(_ref, varTransitionEasing, transitionEasing), _defineProperty(_ref, varMarkerColor, this.state.oldMarkerColor), _defineProperty(_ref, varBackgroundColor, getMarkerColor(item.status)), _ref),
|
|
115
|
+
css: listItemStyles,
|
|
132
116
|
"aria-current": ariaCurrent
|
|
133
|
-
},
|
|
117
|
+
}, jsx("div", {
|
|
118
|
+
css: containerStyles
|
|
119
|
+
}, jsx(CSSTransition, {
|
|
134
120
|
appear: true,
|
|
135
121
|
in: this.state.transitioning,
|
|
136
|
-
onEntered: onEntered,
|
|
122
|
+
onEntered: this.onEntered,
|
|
137
123
|
timeout: transitionDelay + transitionSpeed,
|
|
138
124
|
classNames: "fade"
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
transitionSpeed: transitionSpeed,
|
|
143
|
-
transitionDelay: transitionDelay,
|
|
144
|
-
transitionEasing: transitionEasing
|
|
145
|
-
})), /*#__PURE__*/React.createElement(CSSTransition, {
|
|
125
|
+
}, jsx(ProgressMarker, {
|
|
126
|
+
testId: testId && "".concat(testId, "-marker")
|
|
127
|
+
})), jsx(CSSTransition, {
|
|
146
128
|
appear: true,
|
|
147
129
|
in: this.state.transitioning,
|
|
148
|
-
onEntered: onEntered,
|
|
130
|
+
onEntered: this.onEntered,
|
|
149
131
|
timeout: transitionDelay + transitionSpeed,
|
|
150
132
|
classNames: "fade"
|
|
151
|
-
},
|
|
152
|
-
|
|
153
|
-
percentageComplete: item.percentageComplete
|
|
154
|
-
|
|
155
|
-
transitionDelay: transitionDelay,
|
|
156
|
-
transitionEasing: transitionEasing
|
|
157
|
-
})), /*#__PURE__*/React.createElement(CSSTransition, {
|
|
133
|
+
}, jsx(ProgressBar, {
|
|
134
|
+
testId: testId && "".concat(testId, "-bar"),
|
|
135
|
+
percentageComplete: item.percentageComplete
|
|
136
|
+
})), jsx(CSSTransition, {
|
|
158
137
|
appear: true,
|
|
159
138
|
in: this.state.transitioning,
|
|
160
|
-
onEntered: onEntered,
|
|
139
|
+
onEntered: this.onEntered,
|
|
161
140
|
timeout: transitionDelay + transitionSpeed,
|
|
162
141
|
classNames: "fade"
|
|
163
|
-
},
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
142
|
+
}, jsx("div", {
|
|
143
|
+
css: titleStyles,
|
|
144
|
+
"data-testid": testId && "".concat(testId, "-title"),
|
|
145
|
+
style: {
|
|
146
|
+
color: getTextColor(item.status),
|
|
147
|
+
fontWeight: getFontWeight(item.status)
|
|
148
|
+
}
|
|
168
149
|
}, this.shouldShowLink() ? render.link({
|
|
169
150
|
item: item
|
|
170
151
|
}) : item.label))));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { B300, N300, N70, N800 } from '@atlaskit/theme/colors';
|
|
2
|
+
import { REGULAR_FONT_WEIGHT, SEMI_BOLD_FONT_WEIGHT } from './constants';
|
|
3
|
+
export var getMarkerColor = function getMarkerColor(status) {
|
|
4
|
+
switch (status) {
|
|
5
|
+
case 'unvisited':
|
|
6
|
+
return "var(--ds-icon-subtle, ".concat(N70, ")");
|
|
7
|
+
|
|
8
|
+
case 'current':
|
|
9
|
+
case 'visited':
|
|
10
|
+
case 'disabled':
|
|
11
|
+
return "var(--ds-icon-brand, ".concat(B300, ")");
|
|
12
|
+
|
|
13
|
+
default:
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export var getTextColor = function getTextColor(status) {
|
|
18
|
+
switch (status) {
|
|
19
|
+
case 'unvisited':
|
|
20
|
+
return "var(--ds-text-subtlest, ".concat(N300, ")");
|
|
21
|
+
|
|
22
|
+
case 'current':
|
|
23
|
+
return "var(--ds-text-brand, ".concat(B300, ")");
|
|
24
|
+
|
|
25
|
+
case 'visited':
|
|
26
|
+
return "var(--ds-text, ".concat(N800, ")");
|
|
27
|
+
|
|
28
|
+
case 'disabled':
|
|
29
|
+
return "var(--ds-text-disabled, ".concat(N70, ")");
|
|
30
|
+
|
|
31
|
+
default:
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export var getFontWeight = function getFontWeight(status) {
|
|
36
|
+
switch (status) {
|
|
37
|
+
case 'unvisited':
|
|
38
|
+
return REGULAR_FONT_WEIGHT;
|
|
39
|
+
|
|
40
|
+
case 'current':
|
|
41
|
+
case 'visited':
|
|
42
|
+
case 'disabled':
|
|
43
|
+
return SEMI_BOLD_FONT_WEIGHT;
|
|
44
|
+
|
|
45
|
+
default:
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
@@ -6,24 +6,34 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
6
6
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
7
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
8
|
|
|
9
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
10
|
|
|
11
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
12
|
|
|
13
13
|
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); }; }
|
|
14
14
|
|
|
15
15
|
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; } }
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
17
|
+
/* eslint-disable @repo/internal/styles/no-nested-styles */
|
|
18
|
+
|
|
19
|
+
/** @jsx jsx */
|
|
20
|
+
import { PureComponent } from 'react';
|
|
21
|
+
import { css, jsx } from '@emotion/core';
|
|
22
|
+
import { defaultGridSize, spacing } from './constants';
|
|
23
|
+
import { ANIMATION_EASE_OUT, LINEAR_TRANSITION_SPEED, TRANSITION_SPEED, varSpacing } from './internal/constants';
|
|
24
|
+
import Link from './internal/link';
|
|
25
|
+
import Stage from './internal/stage';
|
|
26
|
+
var containerStyles = css({
|
|
27
|
+
display: 'grid',
|
|
28
|
+
width: '100%',
|
|
29
|
+
margin: '0 auto',
|
|
30
|
+
padding: 0,
|
|
31
|
+
gap: "var(".concat(varSpacing, ")"),
|
|
32
|
+
listStyleType: 'none',
|
|
33
|
+
'&&': {
|
|
34
|
+
marginTop: 40
|
|
35
|
+
}
|
|
36
|
+
});
|
|
27
37
|
|
|
28
38
|
var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
|
|
29
39
|
_inherits(ProgressTracker, _PureComponent);
|
|
@@ -41,15 +51,8 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
|
|
|
41
51
|
|
|
42
52
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
53
|
|
|
44
|
-
_defineProperty(_assertThisInitialized(_this), "createTheme", function () {
|
|
45
|
-
return {
|
|
46
|
-
spacing: _this.props.spacing,
|
|
47
|
-
columns: _this.props.items.length * 2
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
|
|
51
54
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
52
|
-
prevStages: _this.props.items.map(function (stage
|
|
55
|
+
prevStages: _this.props.items.map(function (stage) {
|
|
53
56
|
return _objectSpread(_objectSpread({}, stage), {}, {
|
|
54
57
|
percentageComplete: 0
|
|
55
58
|
});
|
|
@@ -78,7 +81,8 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
|
|
|
78
81
|
}, {
|
|
79
82
|
key: "render",
|
|
80
83
|
value: function render() {
|
|
81
|
-
var _this3 = this
|
|
84
|
+
var _this3 = this,
|
|
85
|
+
_ref;
|
|
82
86
|
|
|
83
87
|
var _this$props = this.props,
|
|
84
88
|
testId = _this$props.testId,
|
|
@@ -97,38 +101,43 @@ var ProgressTracker = /*#__PURE__*/function (_PureComponent) {
|
|
|
97
101
|
var items = this.props.items.map(function (stage, index) {
|
|
98
102
|
var transitionSpeed = 0;
|
|
99
103
|
var transitionDelay = 0;
|
|
100
|
-
var transitionEasing = progressChanges > 1 ? 'linear' :
|
|
104
|
+
var transitionEasing = progressChanges > 1 ? 'linear' : ANIMATION_EASE_OUT;
|
|
101
105
|
|
|
102
106
|
if (_this3.props.animated) {
|
|
103
107
|
transitionSpeed = progressChanges > 1 ? LINEAR_TRANSITION_SPEED : TRANSITION_SPEED;
|
|
104
108
|
|
|
105
109
|
if (stage.percentageComplete < _this3.state.prevStages[index].percentageComplete) {
|
|
106
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* load each transition sequentially in reverse
|
|
112
|
+
*/
|
|
107
113
|
transitionDelay = (stepsBack - 1) * transitionSpeed;
|
|
108
114
|
stepsBack -= 1;
|
|
109
115
|
} else if (stage.percentageComplete > _this3.state.prevStages[index].percentageComplete) {
|
|
110
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* load each transition sequentially
|
|
118
|
+
*/
|
|
111
119
|
transitionDelay = (totalStepsForward - stepsForward) * transitionSpeed;
|
|
112
120
|
stepsForward -= 1;
|
|
113
121
|
}
|
|
114
122
|
}
|
|
115
123
|
|
|
116
|
-
return
|
|
117
|
-
key: stage.id,
|
|
118
|
-
item: stage,
|
|
119
|
-
render: _this3.props.render,
|
|
124
|
+
return jsx(Stage, {
|
|
120
125
|
transitionSpeed: transitionSpeed,
|
|
121
126
|
transitionDelay: transitionDelay,
|
|
122
|
-
transitionEasing: transitionEasing
|
|
127
|
+
transitionEasing: transitionEasing,
|
|
128
|
+
key: stage.id,
|
|
129
|
+
item: stage,
|
|
130
|
+
render: _this3.props.render
|
|
123
131
|
});
|
|
124
132
|
});
|
|
125
|
-
return
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
return jsx("ul", {
|
|
134
|
+
"data-testid": testId,
|
|
135
|
+
style: (_ref = {
|
|
136
|
+
gridTemplateColumns: "repeat(".concat(items.length, ", 1fr)")
|
|
137
|
+
}, _defineProperty(_ref, varSpacing, "".concat(spacing[this.props.spacing], "px")), _defineProperty(_ref, "maxWidth", defaultGridSize * 10 * items.length * 2), _ref),
|
|
138
|
+
css: containerStyles,
|
|
130
139
|
"aria-label": label
|
|
131
|
-
}, items)
|
|
140
|
+
}, items);
|
|
132
141
|
}
|
|
133
142
|
}]);
|
|
134
143
|
|
|
@@ -139,12 +148,13 @@ _defineProperty(ProgressTracker, "defaultProps", {
|
|
|
139
148
|
items: [],
|
|
140
149
|
spacing: 'cosy',
|
|
141
150
|
render: {
|
|
142
|
-
link: function link(
|
|
143
|
-
|
|
151
|
+
link: function link(_ref2) {
|
|
152
|
+
var item = _ref2.item;
|
|
153
|
+
return jsx(Link, item);
|
|
144
154
|
}
|
|
145
155
|
},
|
|
146
156
|
animated: true,
|
|
147
|
-
label:
|
|
157
|
+
label: 'Progress'
|
|
148
158
|
});
|
|
149
159
|
|
|
150
160
|
export { ProgressTracker as default };
|
package/dist/esm/version.json
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
export declare const defaultGridSize: number;
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Ideally these are exported by @atlaskit/page
|
|
4
|
+
*/
|
|
5
|
+
export declare const spacing: {
|
|
6
|
+
readonly comfortable: number;
|
|
7
|
+
readonly cosy: number;
|
|
8
|
+
readonly compact: number;
|
|
9
|
+
};
|
|
10
|
+
export declare type Spacing = keyof typeof spacing;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as ProgressTracker } from './
|
|
2
|
-
export type { ProgressTrackerProps } from './
|
|
1
|
+
export { default as ProgressTracker } from './progress-tracker';
|
|
2
|
+
export type { ProgressTrackerProps } from './progress-tracker';
|
|
3
3
|
export type { Stages, Stage } from './types';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface StageBarProps {
|
|
3
|
+
testId?: string;
|
|
4
|
+
percentageComplete: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* __Progress bar__
|
|
8
|
+
*
|
|
9
|
+
* A progress bar describes the horizontal tracking bar that traverses each individual step.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare const ProgressBar: ({ percentageComplete, testId }: StageBarProps) => JSX.Element;
|
|
13
|
+
export default ProgressBar;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const TRANSITION_SPEED = 300;
|
|
2
|
+
export declare const LINEAR_TRANSITION_SPEED = 50;
|
|
3
|
+
export declare const ANIMATION_EASE_OUT = "cubic-bezier(0.15,1,0.3,1)";
|
|
4
|
+
export declare const varSpacing = "--ds--pt--sp";
|
|
5
|
+
export declare const varTransitionSpeed = "--ds--pt--ts";
|
|
6
|
+
export declare const varTransitionDelay = "--ds--pt--td";
|
|
7
|
+
export declare const varTransitionEasing = "--ds--pt--te";
|
|
8
|
+
export declare const varMarkerColor = "--ds--pt--mc";
|
|
9
|
+
export declare const varBackgroundColor = "--ds--pt--bg";
|
|
10
|
+
export declare const SEMI_BOLD_FONT_WEIGHT = "600";
|
|
11
|
+
export declare const REGULAR_FONT_WEIGHT = "400";
|
|
12
|
+
export declare const HALF_GRID_SIZE: number;
|
|
13
|
+
export declare const PROGRESS_BAR_HEIGHT: number;
|
|
14
|
+
export declare const LABEL_TOP_SPACING: number;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { PureComponent } from 'react';
|
|
3
|
+
import type { ProgressTrackerStageProps } from './types';
|
|
4
|
+
interface State {
|
|
5
|
+
transitioning: boolean;
|
|
6
|
+
oldMarkerColor?: string;
|
|
7
|
+
oldPercentageComplete: number;
|
|
8
|
+
}
|
|
9
|
+
export type { ProgressTrackerStageProps };
|
|
10
|
+
export default class ProgressTrackerStage extends PureComponent<ProgressTrackerStageProps, State> {
|
|
11
|
+
constructor(props: ProgressTrackerStageProps);
|
|
12
|
+
UNSAFE_componentWillMount(): void;
|
|
13
|
+
UNSAFE_componentWillReceiveProps(): void;
|
|
14
|
+
shouldShowLink(): boolean;
|
|
15
|
+
onEntered: () => void;
|
|
16
|
+
render(): JSX.Element;
|
|
17
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ProgressTrackerStageRenderProp, Stage } from '../types';
|
|
2
|
+
export interface ProgressTrackerStageProps {
|
|
3
|
+
/**
|
|
4
|
+
* stage data passed to each `ProgressTrackerStage` component
|
|
5
|
+
*/
|
|
6
|
+
item: Stage;
|
|
7
|
+
/**
|
|
8
|
+
* render prop to specify how to render components
|
|
9
|
+
*/
|
|
10
|
+
render: ProgressTrackerStageRenderProp;
|
|
11
|
+
/**
|
|
12
|
+
* An internal hook applied to key elements for automated testing
|
|
13
|
+
*/
|
|
14
|
+
testId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* delay before transitioning in ms
|
|
17
|
+
*/
|
|
18
|
+
transitionDelay: number;
|
|
19
|
+
/**
|
|
20
|
+
* speed at which to transition in ms
|
|
21
|
+
*/
|
|
22
|
+
transitionSpeed: number;
|
|
23
|
+
/**
|
|
24
|
+
* interface of easing for transition
|
|
25
|
+
*/
|
|
26
|
+
transitionEasing: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Status } from '../types';
|
|
2
|
+
export declare const getMarkerColor: (status: Status) => "var(--ds-icon-subtle)" | "var(--ds-icon-brand)" | undefined;
|
|
3
|
+
export declare const getTextColor: (status: Status) => "var(--ds-text)" | "var(--ds-text-subtlest)" | "var(--ds-text-brand)" | "var(--ds-text-disabled)" | undefined;
|
|
4
|
+
export declare const getFontWeight: (status: Status) => "600" | "400" | undefined;
|
|
@@ -1,17 +1,30 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
1
2
|
import { PureComponent } from 'react';
|
|
2
|
-
import { LinkComponentProps, ProgressTrackerStageRenderProp, Spacing, Stages } from '
|
|
3
|
+
import type { LinkComponentProps, ProgressTrackerStageRenderProp, Spacing, Stages } from './types';
|
|
3
4
|
export interface ProgressTrackerProps {
|
|
4
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Ordered list of stage data
|
|
7
|
+
*/
|
|
5
8
|
items: Stages;
|
|
6
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Margin spacing type between steps
|
|
11
|
+
*/
|
|
7
12
|
spacing: Spacing;
|
|
8
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Render prop to specify custom implementations of components
|
|
15
|
+
*/
|
|
9
16
|
render: ProgressTrackerStageRenderProp;
|
|
10
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Turns off transition animations if set to false
|
|
19
|
+
*/
|
|
11
20
|
animated: boolean;
|
|
12
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests
|
|
23
|
+
*/
|
|
13
24
|
testId?: string;
|
|
14
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Text to be used as an aria-label of progress tracker
|
|
27
|
+
*/
|
|
15
28
|
label?: string;
|
|
16
29
|
}
|
|
17
30
|
interface State {
|
|
@@ -22,21 +35,17 @@ export default class ProgressTracker extends PureComponent<ProgressTrackerProps,
|
|
|
22
35
|
items: never[];
|
|
23
36
|
spacing: string;
|
|
24
37
|
render: {
|
|
25
|
-
link: (
|
|
38
|
+
link: ({ item }: LinkComponentProps) => JSX.Element;
|
|
26
39
|
};
|
|
27
40
|
animated: boolean;
|
|
28
41
|
label: string;
|
|
29
42
|
};
|
|
30
|
-
createTheme: () => {
|
|
31
|
-
spacing: Spacing;
|
|
32
|
-
columns: number;
|
|
33
|
-
};
|
|
34
43
|
state: {
|
|
35
44
|
prevStages: {
|
|
36
45
|
percentageComplete: number;
|
|
37
46
|
id: string;
|
|
38
47
|
label: string;
|
|
39
|
-
status: import("
|
|
48
|
+
status: import("./types").Status;
|
|
40
49
|
noLink?: boolean | undefined;
|
|
41
50
|
href?: string | undefined;
|
|
42
51
|
onClick?: (() => void) | undefined;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* Ideally these are exported by @atlaskit/page
|
|
4
|
+
*/
|
|
5
|
+
export type { Spacing } from './constants';
|
|
6
|
+
export declare type Status = 'unvisited' | 'visited' | 'current' | 'disabled';
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated
|
|
9
|
+
*/
|
|
10
|
+
export declare type StatusType = Status;
|
|
4
11
|
export interface Stage {
|
|
5
12
|
id: string;
|
|
6
13
|
label: string;
|
|
7
14
|
percentageComplete: number;
|
|
8
|
-
status:
|
|
15
|
+
status: Status;
|
|
9
16
|
noLink?: boolean;
|
|
10
17
|
href?: string;
|
|
11
18
|
onClick?: () => void;
|