@hitachivantara/uikit-react-lab 3.42.0 → 3.42.1
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 +12 -0
- package/dist/ProgressBar/ProgressBar.d.ts +34 -5
- package/dist/ProgressBar/ProgressBar.js +15 -12
- package/dist/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/ProgressBar/ProgressBarSimulator.js +112 -0
- package/dist/ProgressBar/ProgressBarSimulator.js.map +1 -0
- package/dist/ProgressBar/index.d.ts +2 -33
- package/dist/legacy/ProgressBar/ProgressBar.d.ts +34 -5
- package/dist/legacy/ProgressBar/ProgressBar.js +13 -11
- package/dist/legacy/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/legacy/ProgressBar/ProgressBarSimulator.js +80 -0
- package/dist/legacy/ProgressBar/ProgressBarSimulator.js.map +1 -0
- package/dist/legacy/ProgressBar/index.d.ts +2 -33
- package/dist/modern/ProgressBar/ProgressBar.d.ts +34 -5
- package/dist/modern/ProgressBar/ProgressBar.js +11 -11
- package/dist/modern/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/modern/ProgressBar/ProgressBarSimulator.js +66 -0
- package/dist/modern/ProgressBar/ProgressBarSimulator.js.map +1 -0
- package/dist/modern/ProgressBar/index.d.ts +2 -33
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.42.1](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-lab@3.42.0...@hitachivantara/uikit-react-lab@3.42.1) (2022-04-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **dotPagination:** added missing typescript definition and description ([38dcda3](https://github.com/lumada-design/hv-uikit-react/commit/38dcda3029c23fbb9ac95b62c02f7db66da16bef))
|
|
12
|
+
* **ProgressBar:** corrected typescript definition HVUIKIT-5670 ([d5c0da0](https://github.com/lumada-design/hv-uikit-react/commit/d5c0da04a1b160cf283b7e4bf6644cf89d4f711f))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
# [3.42.0](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-lab@3.41.12...@hitachivantara/uikit-react-lab@3.42.0) (2022-04-24)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -1,11 +1,40 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { StandardProps } from "@material-ui/core";
|
|
3
3
|
|
|
4
|
-
export type HvProgressBarClassKey =
|
|
4
|
+
export type HvProgressBarClassKey =
|
|
5
|
+
| "root"
|
|
6
|
+
| "progress"
|
|
7
|
+
| "progressContainer"
|
|
8
|
+
| "progressBarContainer"
|
|
9
|
+
| "progressBar"
|
|
10
|
+
| "progressDone"
|
|
11
|
+
| "progressError"
|
|
12
|
+
| "progressBarLabel"
|
|
13
|
+
| "progressBarLabelHidden";
|
|
5
14
|
|
|
6
|
-
export
|
|
7
|
-
React.HTMLAttributes<HTMLDivElement>,
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
export interface HvProgressBarProps
|
|
16
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressBarClassKey>,
|
|
17
|
+
HvProgressBarProps {
|
|
18
|
+
/**
|
|
19
|
+
* The value of the progress bar.
|
|
20
|
+
*/
|
|
21
|
+
value?: number;
|
|
22
|
+
/**
|
|
23
|
+
* The status of the progress bar.
|
|
24
|
+
*
|
|
25
|
+
* inProgress is black, error is red and completed is green.
|
|
26
|
+
*
|
|
27
|
+
* When uncontrolled and unspecified it will default to "inProgress".
|
|
28
|
+
*/
|
|
29
|
+
status?: string;
|
|
30
|
+
/**
|
|
31
|
+
* If `true` the progress bar will not show the percentage label.
|
|
32
|
+
*/
|
|
33
|
+
undeterminate?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Aria Properties passed on to the progress bar.
|
|
36
|
+
*/
|
|
37
|
+
labelProps?: object;
|
|
38
|
+
}
|
|
10
39
|
|
|
11
40
|
export default function HvProgressBar(props: HvProgressBarProps): JSX.Element | null;
|
|
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
13
|
|
|
14
|
+
require("core-js/modules/es.object.freeze.js");
|
|
15
|
+
|
|
14
16
|
var _react = _interopRequireDefault(require("react"));
|
|
15
17
|
|
|
16
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -26,16 +28,22 @@ var _core = require("@material-ui/core");
|
|
|
26
28
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
27
29
|
|
|
28
30
|
var _excluded = ["className", "classes", "value", "status", "undeterminate", "labelProps"];
|
|
29
|
-
|
|
31
|
+
var statusCategories = Object.freeze({
|
|
32
|
+
inProgress: "inProgress",
|
|
33
|
+
completed: "completed",
|
|
34
|
+
error: "error"
|
|
35
|
+
});
|
|
30
36
|
/**
|
|
31
37
|
* ProgressBar provides feedback about a process that is taking place in the application.
|
|
32
38
|
*/
|
|
39
|
+
|
|
33
40
|
var HvProgressBar = function HvProgressBar(props) {
|
|
34
41
|
var className = props.className,
|
|
35
42
|
classes = props.classes,
|
|
36
43
|
_props$value = props.value,
|
|
37
44
|
value = _props$value === void 0 ? 0 : _props$value,
|
|
38
|
-
status = props.status,
|
|
45
|
+
_props$status = props.status,
|
|
46
|
+
status = _props$status === void 0 ? statusCategories.inProgress : _props$status,
|
|
39
47
|
_props$undeterminate = props.undeterminate,
|
|
40
48
|
undeterminate = _props$undeterminate === void 0 ? false : _props$undeterminate,
|
|
41
49
|
labelProps = props.labelProps,
|
|
@@ -44,11 +52,9 @@ var HvProgressBar = function HvProgressBar(props) {
|
|
|
44
52
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
45
53
|
className: (0, _clsx.default)(className, classes.root, classes.progress),
|
|
46
54
|
role: "progressbar",
|
|
47
|
-
status: "inProgress",
|
|
48
|
-
"aria-valuenow": clampedValue // it only makes sense to put this in ariaProps if the min and max values of the progress bar are intended to be changed by the user
|
|
49
|
-
,
|
|
50
55
|
"aria-valuemin": "0",
|
|
51
|
-
"aria-valuemax": "100"
|
|
56
|
+
"aria-valuemax": "100",
|
|
57
|
+
"aria-valuenow": clampedValue
|
|
52
58
|
}, others), /*#__PURE__*/_react.default.createElement("div", {
|
|
53
59
|
className: classes.progressContainer
|
|
54
60
|
}, /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvTypography, (0, _extends2.default)({
|
|
@@ -56,17 +62,14 @@ var HvProgressBar = function HvProgressBar(props) {
|
|
|
56
62
|
style: {
|
|
57
63
|
width: "".concat(clampedValue, "%")
|
|
58
64
|
},
|
|
59
|
-
className: (0, _clsx.default)(classes.progressBarLabel,
|
|
65
|
+
className: (0, _clsx.default)(classes.progressBarLabel, status === statusCategories.completed && classes.progressDone, undeterminate && classes.progressBarLabelHidden)
|
|
60
66
|
}, labelProps), "".concat(clampedValue, "%")), /*#__PURE__*/_react.default.createElement("div", {
|
|
61
67
|
className: classes.progressBarContainer
|
|
62
68
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
63
69
|
style: {
|
|
64
70
|
width: "".concat(clampedValue, "%")
|
|
65
71
|
},
|
|
66
|
-
className: (0, _clsx.default)(classes.progressBar,
|
|
67
|
-
"completed": classes.progressDone,
|
|
68
|
-
"error": classes.progressError
|
|
69
|
-
}[status])
|
|
72
|
+
className: (0, _clsx.default)(classes.progressBar, status === statusCategories.completed && classes.progressDone, status === statusCategories.error && classes.progressError)
|
|
70
73
|
}))));
|
|
71
74
|
};
|
|
72
75
|
|
|
@@ -138,7 +141,7 @@ process.env.NODE_ENV !== "production" ? HvProgressBar.propTypes = {
|
|
|
138
141
|
*
|
|
139
142
|
* When uncontrolled and unspecified it will default to "inProgress".
|
|
140
143
|
*/
|
|
141
|
-
status: _propTypes.default.oneOf([
|
|
144
|
+
status: _propTypes.default.oneOf([statusCategories.inProgress, statusCategories.completed, statusCategories.error]),
|
|
142
145
|
|
|
143
146
|
/**
|
|
144
147
|
* If `true` the progress bar will not show the percentage label.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ProgressBar/ProgressBar.js"],"names":["HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","
|
|
1
|
+
{"version":3,"sources":["../../src/ProgressBar/ProgressBar.js"],"names":["statusCategories","Object","freeze","inProgress","completed","error","HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","progressDone","progressBarLabelHidden","progressBarContainer","progressBar","progressError","propTypes","PropTypes","string","shape","isRequired","number","oneOf","bool","instanceOf","styles","name"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAEA;;;AAEA,IAAMA,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAc;AACrCC,EAAAA,UAAU,EAAE,YADyB;AAErCC,EAAAA,SAAS,EAAE,WAF0B;AAGrCC,EAAAA,KAAK,EAAE;AAH8B,CAAd,CAAzB;AAMA;AACA;AACA;;AACA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;AAC/B,MACEC,SADF,GAQID,KARJ,CACEC,SADF;AAAA,MAEEC,OAFF,GAQIF,KARJ,CAEEE,OAFF;AAAA,qBAQIF,KARJ,CAGEG,KAHF;AAAA,MAGEA,KAHF,6BAGU,CAHV;AAAA,sBAQIH,KARJ,CAIEI,MAJF;AAAA,MAIEA,MAJF,8BAIWX,gBAAgB,CAACG,UAJ5B;AAAA,6BAQII,KARJ,CAKEK,aALF;AAAA,MAKEA,aALF,qCAKkB,KALlB;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,UANF;AAAA,MAOKC,MAPL,0CAQIP,KARJ;AAUA,MAAMQ,YAAY,GAAG,oBAAML,KAAN,EAAa,CAAb,EAAgB,GAAhB,CAArB;AAEA,sBACE;AACE,IAAA,SAAS,EAAE,mBAAKF,SAAL,EAAgBC,OAAO,CAACO,IAAxB,EAA8BP,OAAO,CAACQ,QAAtC,CADb;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,qBAAc,GAHhB;AAIE,qBAAc,KAJhB;AAKE,qBAAeF;AALjB,KAMMD,MANN,gBAQE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAACS;AAAxB,kBACE,6BAAC,4BAAD;AACE,IAAA,OAAO,EAAC,SADV;AAEE,IAAA,KAAK,EAAE;AAAEC,MAAAA,KAAK,YAAKJ,YAAL;AAAP,KAFT;AAGE,IAAA,SAAS,EAAE,mBACTN,OAAO,CAACW,gBADC,EAETT,MAAM,KAAKX,gBAAgB,CAACI,SAFnB,IAEgCK,OAAO,CAACY,YAFxC,EAGTT,aAHS,IAGQH,OAAO,CAACa,sBAHhB;AAHb,KAQMT,UARN,aAUME,YAVN,OADF,eAaE;AAAK,IAAA,SAAS,EAAEN,OAAO,CAACc;AAAxB,kBACE;AACE,IAAA,KAAK,EAAE;AAAEJ,MAAAA,KAAK,YAAKJ,YAAL;AAAP,KADT;AAEE,IAAA,SAAS,EAAE,mBACTN,OAAO,CAACe,WADC,EAETb,MAAM,KAAKX,gBAAgB,CAACI,SAFnB,IAEgCK,OAAO,CAACY,YAFxC,EAGTV,MAAM,KAAKX,gBAAgB,CAACK,KAHnB,IAG4BI,OAAO,CAACgB,aAHpC;AAFb,IADF,CAbF,CARF,CADF;AAmCD,CAhDD;;AAkDA,wCAAAnB,aAAa,CAACoB,SAAd,GAA0B;AACxB;AACF;AACA;AACElB,EAAAA,SAAS,EAAEmB,mBAAUC,MAJG;;AAKxB;AACF;AACA;AACEnB,EAAAA,OAAO,EAAEkB,mBAAUE,KAAV,CAAgB;AACvB;AACJ;AACA;AACIb,IAAAA,IAAI,EAAEW,mBAAUC,MAJO;;AAMvB;AACJ;AACA;AACIX,IAAAA,QAAQ,EAAEU,mBAAUC,MATG;;AAUvB;AACJ;AACA;AACIV,IAAAA,iBAAiB,EAAES,mBAAUC,MAbN;;AAcvB;AACJ;AACA;AACIL,IAAAA,oBAAoB,EAAEI,mBAAUC,MAjBT;;AAkBvB;AACJ;AACA;AACIJ,IAAAA,WAAW,EAAEG,mBAAUC,MArBA;;AAsBvB;AACJ;AACA;AACIP,IAAAA,YAAY,EAAEM,mBAAUC,MAzBD;;AA0BvB;AACJ;AACA;AACIH,IAAAA,aAAa,EAAEE,mBAAUC,MA7BF;;AA8BvB;AACJ;AACA;AACIR,IAAAA,gBAAgB,EAAEO,mBAAUC,MAjCL;;AAkCvB;AACJ;AACA;AACIN,IAAAA,sBAAsB,EAAEK,mBAAUC;AArCX,GAAhB,EAsCNE,UA9CqB;;AA+CxB;AACF;AACA;AACEpB,EAAAA,KAAK,EAAEiB,mBAAUI,MAlDO;;AAmDxB;AACF;AACA;AACA;AACA;AACA;AACA;AACEpB,EAAAA,MAAM,EAAEgB,mBAAUK,KAAV,CAAgB,CACtBhC,gBAAgB,CAACG,UADK,EAEtBH,gBAAgB,CAACI,SAFK,EAGtBJ,gBAAgB,CAACK,KAHK,CAAhB,CA1DgB;;AA+DxB;AACF;AACA;AACEO,EAAAA,aAAa,EAAEe,mBAAUM,IAlED;;AAmExB;AACF;AACA;AACEpB,EAAAA,UAAU,EAAEc,mBAAUO,UAAV,CAAqBjC,MAArB;AAtEY,CAA1B;;eAyEe,sBAAWkC,eAAX,EAAmB;AAAEC,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAA8C9B,aAA9C,C","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport clamp from \"lodash/clamp\";\nimport { HvTypography } from \"@hitachivantara/uikit-react-core\";\n\nimport { withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\nconst statusCategories = Object.freeze({\n inProgress: \"inProgress\",\n completed: \"completed\",\n error: \"error\",\n});\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nconst HvProgressBar = (props) => {\n const {\n className,\n classes,\n value = 0,\n status = statusCategories.inProgress,\n undeterminate = false,\n labelProps,\n ...others\n } = props;\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <div\n className={clsx(className, classes.root, classes.progress)}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={clampedValue}\n {...others}\n >\n <div className={classes.progressContainer}>\n <HvTypography\n variant=\"vizText\"\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBarLabel,\n status === statusCategories.completed && classes.progressDone,\n undeterminate && classes.progressBarLabelHidden\n )}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </HvTypography>\n <div className={classes.progressBarContainer}>\n <div\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBar,\n status === statusCategories.completed && classes.progressDone,\n status === statusCategories.error && classes.progressError\n )}\n />\n </div>\n </div>\n </div>\n );\n};\n\nHvProgressBar.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n\n /**\n * Style applied to the overall container when in progress mode.\n */\n progress: PropTypes.string,\n /**\n * Style applied to the specifc container when in progress mode.\n */\n progressContainer: PropTypes.string,\n /**\n * Style applied to progress bar container.\n */\n progressBarContainer: PropTypes.string,\n /**\n * Style applied to the progress bar.\n */\n progressBar: PropTypes.string,\n /**\n * Style applied to the progress bar when the loading is done.\n */\n progressDone: PropTypes.string,\n /**\n * Style applied to the progress bar when an error occurs.\n */\n progressError: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabel: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabelHidden: PropTypes.string,\n }).isRequired,\n /**\n * The value of the progress bar.\n */\n value: PropTypes.number,\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status: PropTypes.oneOf([\n statusCategories.inProgress,\n statusCategories.completed,\n statusCategories.error,\n ]),\n /**\n * If `true` the progress bar will not show the percentage label.\n */\n undeterminate: PropTypes.bool,\n /**\n * Aria Properties passed on to the progress bar.\n */\n labelProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvProgressBar\" })(HvProgressBar);\n"],"file":"ProgressBar.js"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.string.iterator.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.weak-map.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
14
|
+
|
|
15
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
16
|
+
|
|
17
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
18
|
+
|
|
19
|
+
Object.defineProperty(exports, "__esModule", {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
exports.default = exports.ProgressBarSimulator = void 0;
|
|
23
|
+
|
|
24
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
|
+
|
|
26
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
27
|
+
|
|
28
|
+
var _uikitReactCore = require("@hitachivantara/uikit-react-core");
|
|
29
|
+
|
|
30
|
+
var _ = require("..");
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line react/prop-types
|
|
37
|
+
var ProgressBarSimulator = function ProgressBarSimulator(_ref) {
|
|
38
|
+
var inc = _ref.inc,
|
|
39
|
+
error = _ref.error,
|
|
40
|
+
undeterminate = _ref.undeterminate,
|
|
41
|
+
ariaLabel = _ref.ariaLabel,
|
|
42
|
+
ariaLive = _ref.ariaLive;
|
|
43
|
+
|
|
44
|
+
var _useState = (0, _react.useState)("inProgress"),
|
|
45
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
46
|
+
status = _useState2[0],
|
|
47
|
+
setStatus = _useState2[1];
|
|
48
|
+
|
|
49
|
+
var _useState3 = (0, _react.useState)(0),
|
|
50
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
51
|
+
value = _useState4[0],
|
|
52
|
+
setValue = _useState4[1];
|
|
53
|
+
|
|
54
|
+
var _useState5 = (0, _react.useState)(false),
|
|
55
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
56
|
+
run = _useState6[0],
|
|
57
|
+
setRun = _useState6[1];
|
|
58
|
+
|
|
59
|
+
(0, _react.useEffect)(function () {
|
|
60
|
+
var interval = setInterval(function () {
|
|
61
|
+
if (value === 100) {
|
|
62
|
+
setRun(false);
|
|
63
|
+
clearInterval(interval);
|
|
64
|
+
setStatus("completed");
|
|
65
|
+
} else if (error && value === error) {
|
|
66
|
+
clearInterval(interval);
|
|
67
|
+
setStatus("error");
|
|
68
|
+
} else if (run) setValue(inc);
|
|
69
|
+
}, 150);
|
|
70
|
+
return function () {
|
|
71
|
+
return clearInterval(interval);
|
|
72
|
+
};
|
|
73
|
+
}, [inc, value, run, error]);
|
|
74
|
+
|
|
75
|
+
var reset = function reset() {
|
|
76
|
+
setValue(0);
|
|
77
|
+
setStatus("inProgress");
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
var start = function start() {
|
|
81
|
+
setRun(true);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
+
style: {
|
|
86
|
+
width: 400
|
|
87
|
+
}
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_.HvProgressBar, {
|
|
89
|
+
value: value,
|
|
90
|
+
status: status,
|
|
91
|
+
undeterminate: undeterminate,
|
|
92
|
+
labelProps: {
|
|
93
|
+
"aria-label": ariaLabel,
|
|
94
|
+
"aria-busy": false,
|
|
95
|
+
"aria-live": ariaLive
|
|
96
|
+
}
|
|
97
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
98
|
+
style: {
|
|
99
|
+
marginTop: 10
|
|
100
|
+
}
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvButton, {
|
|
102
|
+
onClick: start
|
|
103
|
+
}, "Start"), /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvButton, {
|
|
104
|
+
style: {
|
|
105
|
+
marginLeft: 10
|
|
106
|
+
},
|
|
107
|
+
onClick: reset
|
|
108
|
+
}, "Reset")));
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
exports.default = exports.ProgressBarSimulator = ProgressBarSimulator;
|
|
112
|
+
//# sourceMappingURL=ProgressBarSimulator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ProgressBar/ProgressBarSimulator.js"],"names":["ProgressBarSimulator","inc","error","undeterminate","ariaLabel","ariaLive","status","setStatus","value","setValue","run","setRun","interval","setInterval","clearInterval","reset","start","width","marginTop","marginLeft"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;AAEA;AACO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,OAAwD;AAAA,MAArDC,GAAqD,QAArDA,GAAqD;AAAA,MAAhDC,KAAgD,QAAhDA,KAAgD;AAAA,MAAzCC,aAAyC,QAAzCA,aAAyC;AAAA,MAA1BC,SAA0B,QAA1BA,SAA0B;AAAA,MAAfC,QAAe,QAAfA,QAAe;;AAC1F,kBAA4B,qBAAS,YAAT,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA0B,qBAAS,CAAT,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AACA,mBAAsB,qBAAS,KAAT,CAAtB;AAAA;AAAA,MAAOC,GAAP;AAAA,MAAYC,MAAZ;;AAEA,wBAAU,YAAM;AACd,QAAMC,QAAQ,GAAGC,WAAW,CAAC,YAAM;AACjC,UAAIL,KAAK,KAAK,GAAd,EAAmB;AACjBG,QAAAA,MAAM,CAAC,KAAD,CAAN;AACAG,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,WAAD,CAAT;AACD,OAJD,MAIO,IAAIL,KAAK,IAAIM,KAAK,KAAKN,KAAvB,EAA8B;AACnCY,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,OAAD,CAAT;AACD,OAHM,MAGA,IAAIG,GAAJ,EAASD,QAAQ,CAACR,GAAD,CAAR;AACjB,KAT2B,EASzB,GATyB,CAA5B;AAUA,WAAO;AAAA,aAAMa,aAAa,CAACF,QAAD,CAAnB;AAAA,KAAP;AACD,GAZD,EAYG,CAACX,GAAD,EAAMO,KAAN,EAAaE,GAAb,EAAkBR,KAAlB,CAZH;;AAcA,MAAMa,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClBN,IAAAA,QAAQ,CAAC,CAAD,CAAR;AACAF,IAAAA,SAAS,CAAC,YAAD,CAAT;AACD,GAHD;;AAKA,MAAMS,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClBL,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD,GAFD;;AAIA,sBACE;AAAK,IAAA,KAAK,EAAE;AAAEM,MAAAA,KAAK,EAAE;AAAT;AAAZ,kBACE,6BAAC,eAAD;AACE,IAAA,KAAK,EAAET,KADT;AAEE,IAAA,MAAM,EAAEF,MAFV;AAGE,IAAA,aAAa,EAAEH,aAHjB;AAIE,IAAA,UAAU,EAAE;AACV,oBAAcC,SADJ;AAEV,mBAAa,KAFH;AAGV,mBAAaC;AAHH;AAJd,IADF,eAWE;AAAK,IAAA,KAAK,EAAE;AAAEa,MAAAA,SAAS,EAAE;AAAb;AAAZ,kBACE,6BAAC,wBAAD;AAAU,IAAA,OAAO,EAAEF;AAAnB,aADF,eAEE,6BAAC,wBAAD;AAAU,IAAA,KAAK,EAAE;AAAEG,MAAAA,UAAU,EAAE;AAAd,KAAjB;AAAqC,IAAA,OAAO,EAAEJ;AAA9C,aAFF,CAXF,CADF;AAoBD,CAhDM","sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { HvButton } from \"@hitachivantara/uikit-react-core\";\n\nimport { HvProgressBar } from \"..\";\n\n// eslint-disable-next-line react/prop-types\nexport const ProgressBarSimulator = ({ inc, error, undeterminate, ariaLabel, ariaLive }) => {\n const [status, setStatus] = useState(\"inProgress\");\n const [value, setValue] = useState(0);\n const [run, setRun] = useState(false);\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (value === 100) {\n setRun(false);\n clearInterval(interval);\n setStatus(\"completed\");\n } else if (error && value === error) {\n clearInterval(interval);\n setStatus(\"error\");\n } else if (run) setValue(inc);\n }, 150);\n return () => clearInterval(interval);\n }, [inc, value, run, error]);\n\n const reset = () => {\n setValue(0);\n setStatus(\"inProgress\");\n };\n\n const start = () => {\n setRun(true);\n };\n\n return (\n <div style={{ width: 400 }}>\n <HvProgressBar\n value={value}\n status={status}\n undeterminate={undeterminate}\n labelProps={{\n \"aria-label\": ariaLabel,\n \"aria-busy\": false,\n \"aria-live\": ariaLive,\n }}\n />\n <div style={{ marginTop: 10 }}>\n <HvButton onClick={start}>Start</HvButton>\n <HvButton style={{ marginLeft: 10 }} onClick={reset}>\n Reset\n </HvButton>\n </div>\n </div>\n );\n};\n\nexport { ProgressBarSimulator as default };\n"],"file":"ProgressBarSimulator.js"}
|
|
@@ -1,33 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type HvProgressClassKey =
|
|
5
|
-
| "root"
|
|
6
|
-
| "progress"
|
|
7
|
-
| "progressContainer"
|
|
8
|
-
| "progressBarContainer"
|
|
9
|
-
| "progressBar"
|
|
10
|
-
| "progressDone"
|
|
11
|
-
| "progressError"
|
|
12
|
-
| "progressBarLabel"
|
|
13
|
-
| "progressAriaAlert";
|
|
14
|
-
|
|
15
|
-
export interface HvProgressBarProps
|
|
16
|
-
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressClassKey> {
|
|
17
|
-
/**
|
|
18
|
-
* The value of the progress bar.
|
|
19
|
-
*/
|
|
20
|
-
value?: number;
|
|
21
|
-
/**
|
|
22
|
-
* Indicates current status of the progress bar represented by the color.
|
|
23
|
-
*/
|
|
24
|
-
status?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* If `true` the progress bar will not show the percentage label.
|
|
27
|
-
*/
|
|
28
|
-
undeterminate?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Aria Properties passed on to the progress bar.
|
|
31
|
-
*/
|
|
32
|
-
labelProps?: object;
|
|
33
|
-
}
|
|
1
|
+
export { default } from "./ProgressBar";
|
|
2
|
+
export * from "./ProgressBar";
|
|
@@ -1,11 +1,40 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { StandardProps } from "@material-ui/core";
|
|
3
3
|
|
|
4
|
-
export type HvProgressBarClassKey =
|
|
4
|
+
export type HvProgressBarClassKey =
|
|
5
|
+
| "root"
|
|
6
|
+
| "progress"
|
|
7
|
+
| "progressContainer"
|
|
8
|
+
| "progressBarContainer"
|
|
9
|
+
| "progressBar"
|
|
10
|
+
| "progressDone"
|
|
11
|
+
| "progressError"
|
|
12
|
+
| "progressBarLabel"
|
|
13
|
+
| "progressBarLabelHidden";
|
|
5
14
|
|
|
6
|
-
export
|
|
7
|
-
React.HTMLAttributes<HTMLDivElement>,
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
export interface HvProgressBarProps
|
|
16
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressBarClassKey>,
|
|
17
|
+
HvProgressBarProps {
|
|
18
|
+
/**
|
|
19
|
+
* The value of the progress bar.
|
|
20
|
+
*/
|
|
21
|
+
value?: number;
|
|
22
|
+
/**
|
|
23
|
+
* The status of the progress bar.
|
|
24
|
+
*
|
|
25
|
+
* inProgress is black, error is red and completed is green.
|
|
26
|
+
*
|
|
27
|
+
* When uncontrolled and unspecified it will default to "inProgress".
|
|
28
|
+
*/
|
|
29
|
+
status?: string;
|
|
30
|
+
/**
|
|
31
|
+
* If `true` the progress bar will not show the percentage label.
|
|
32
|
+
*/
|
|
33
|
+
undeterminate?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Aria Properties passed on to the progress bar.
|
|
36
|
+
*/
|
|
37
|
+
labelProps?: object;
|
|
38
|
+
}
|
|
10
39
|
|
|
11
40
|
export default function HvProgressBar(props: HvProgressBarProps): JSX.Element | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["className", "classes", "value", "status", "undeterminate", "labelProps"];
|
|
4
|
+
import "core-js/modules/es.object.freeze.js";
|
|
4
5
|
import React from "react";
|
|
5
6
|
import PropTypes from "prop-types";
|
|
6
7
|
import clsx from "clsx";
|
|
@@ -8,6 +9,11 @@ import clamp from "lodash/clamp";
|
|
|
8
9
|
import { HvTypography } from "@hitachivantara/uikit-react-core";
|
|
9
10
|
import { withStyles } from "@material-ui/core";
|
|
10
11
|
import styles from "./styles";
|
|
12
|
+
var statusCategories = Object.freeze({
|
|
13
|
+
inProgress: "inProgress",
|
|
14
|
+
completed: "completed",
|
|
15
|
+
error: "error"
|
|
16
|
+
});
|
|
11
17
|
/**
|
|
12
18
|
* ProgressBar provides feedback about a process that is taking place in the application.
|
|
13
19
|
*/
|
|
@@ -17,7 +23,8 @@ var HvProgressBar = function HvProgressBar(props) {
|
|
|
17
23
|
classes = props.classes,
|
|
18
24
|
_props$value = props.value,
|
|
19
25
|
value = _props$value === void 0 ? 0 : _props$value,
|
|
20
|
-
status = props.status,
|
|
26
|
+
_props$status = props.status,
|
|
27
|
+
status = _props$status === void 0 ? statusCategories.inProgress : _props$status,
|
|
21
28
|
_props$undeterminate = props.undeterminate,
|
|
22
29
|
undeterminate = _props$undeterminate === void 0 ? false : _props$undeterminate,
|
|
23
30
|
labelProps = props.labelProps,
|
|
@@ -27,11 +34,9 @@ var HvProgressBar = function HvProgressBar(props) {
|
|
|
27
34
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
28
35
|
className: clsx(className, classes.root, classes.progress),
|
|
29
36
|
role: "progressbar",
|
|
30
|
-
status: "inProgress",
|
|
31
|
-
"aria-valuenow": clampedValue // it only makes sense to put this in ariaProps if the min and max values of the progress bar are intended to be changed by the user
|
|
32
|
-
,
|
|
33
37
|
"aria-valuemin": "0",
|
|
34
|
-
"aria-valuemax": "100"
|
|
38
|
+
"aria-valuemax": "100",
|
|
39
|
+
"aria-valuenow": clampedValue
|
|
35
40
|
}, others), /*#__PURE__*/React.createElement("div", {
|
|
36
41
|
className: classes.progressContainer
|
|
37
42
|
}, /*#__PURE__*/React.createElement(HvTypography, _extends({
|
|
@@ -39,17 +44,14 @@ var HvProgressBar = function HvProgressBar(props) {
|
|
|
39
44
|
style: {
|
|
40
45
|
width: "".concat(clampedValue, "%")
|
|
41
46
|
},
|
|
42
|
-
className: clsx(classes.progressBarLabel,
|
|
47
|
+
className: clsx(classes.progressBarLabel, status === statusCategories.completed && classes.progressDone, undeterminate && classes.progressBarLabelHidden)
|
|
43
48
|
}, labelProps), "".concat(clampedValue, "%")), /*#__PURE__*/React.createElement("div", {
|
|
44
49
|
className: classes.progressBarContainer
|
|
45
50
|
}, /*#__PURE__*/React.createElement("div", {
|
|
46
51
|
style: {
|
|
47
52
|
width: "".concat(clampedValue, "%")
|
|
48
53
|
},
|
|
49
|
-
className: clsx(classes.progressBar,
|
|
50
|
-
"completed": classes.progressDone,
|
|
51
|
-
"error": classes.progressError
|
|
52
|
-
}[status])
|
|
54
|
+
className: clsx(classes.progressBar, status === statusCategories.completed && classes.progressDone, status === statusCategories.error && classes.progressError)
|
|
53
55
|
}))));
|
|
54
56
|
};
|
|
55
57
|
|
|
@@ -121,7 +123,7 @@ process.env.NODE_ENV !== "production" ? HvProgressBar.propTypes = {
|
|
|
121
123
|
*
|
|
122
124
|
* When uncontrolled and unspecified it will default to "inProgress".
|
|
123
125
|
*/
|
|
124
|
-
status: PropTypes.oneOf([
|
|
126
|
+
status: PropTypes.oneOf([statusCategories.inProgress, statusCategories.completed, statusCategories.error]),
|
|
125
127
|
|
|
126
128
|
/**
|
|
127
129
|
* If `true` the progress bar will not show the percentage label.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ProgressBar/ProgressBar.js"],"names":["React","PropTypes","clsx","clamp","HvTypography","withStyles","styles","HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","
|
|
1
|
+
{"version":3,"sources":["../../../src/ProgressBar/ProgressBar.js"],"names":["React","PropTypes","clsx","clamp","HvTypography","withStyles","styles","statusCategories","Object","freeze","inProgress","completed","error","HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","progressDone","progressBarLabelHidden","progressBarContainer","progressBar","progressError","propTypes","string","shape","isRequired","number","oneOf","bool","instanceOf","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport clamp from \"lodash/clamp\";\nimport { HvTypography } from \"@hitachivantara/uikit-react-core\";\n\nimport { withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\nconst statusCategories = Object.freeze({\n inProgress: \"inProgress\",\n completed: \"completed\",\n error: \"error\",\n});\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nconst HvProgressBar = (props) => {\n const {\n className,\n classes,\n value = 0,\n status = statusCategories.inProgress,\n undeterminate = false,\n labelProps,\n ...others\n } = props;\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <div\n className={clsx(className, classes.root, classes.progress)}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={clampedValue}\n {...others}\n >\n <div className={classes.progressContainer}>\n <HvTypography\n variant=\"vizText\"\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBarLabel,\n status === statusCategories.completed && classes.progressDone,\n undeterminate && classes.progressBarLabelHidden\n )}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </HvTypography>\n <div className={classes.progressBarContainer}>\n <div\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBar,\n status === statusCategories.completed && classes.progressDone,\n status === statusCategories.error && classes.progressError\n )}\n />\n </div>\n </div>\n </div>\n );\n};\n\nHvProgressBar.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n\n /**\n * Style applied to the overall container when in progress mode.\n */\n progress: PropTypes.string,\n /**\n * Style applied to the specifc container when in progress mode.\n */\n progressContainer: PropTypes.string,\n /**\n * Style applied to progress bar container.\n */\n progressBarContainer: PropTypes.string,\n /**\n * Style applied to the progress bar.\n */\n progressBar: PropTypes.string,\n /**\n * Style applied to the progress bar when the loading is done.\n */\n progressDone: PropTypes.string,\n /**\n * Style applied to the progress bar when an error occurs.\n */\n progressError: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabel: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabelHidden: PropTypes.string,\n }).isRequired,\n /**\n * The value of the progress bar.\n */\n value: PropTypes.number,\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status: PropTypes.oneOf([\n statusCategories.inProgress,\n statusCategories.completed,\n statusCategories.error,\n ]),\n /**\n * If `true` the progress bar will not show the percentage label.\n */\n undeterminate: PropTypes.bool,\n /**\n * Aria Properties passed on to the progress bar.\n */\n labelProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvProgressBar\" })(HvProgressBar);\n"],"file":"ProgressBar.js"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
import { HvButton } from "@hitachivantara/uikit-react-core";
|
|
4
|
+
import { HvProgressBar } from ".."; // eslint-disable-next-line react/prop-types
|
|
5
|
+
|
|
6
|
+
export var ProgressBarSimulator = function ProgressBarSimulator(_ref) {
|
|
7
|
+
var inc = _ref.inc,
|
|
8
|
+
error = _ref.error,
|
|
9
|
+
undeterminate = _ref.undeterminate,
|
|
10
|
+
ariaLabel = _ref.ariaLabel,
|
|
11
|
+
ariaLive = _ref.ariaLive;
|
|
12
|
+
|
|
13
|
+
var _useState = useState("inProgress"),
|
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
+
status = _useState2[0],
|
|
16
|
+
setStatus = _useState2[1];
|
|
17
|
+
|
|
18
|
+
var _useState3 = useState(0),
|
|
19
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
+
value = _useState4[0],
|
|
21
|
+
setValue = _useState4[1];
|
|
22
|
+
|
|
23
|
+
var _useState5 = useState(false),
|
|
24
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
25
|
+
run = _useState6[0],
|
|
26
|
+
setRun = _useState6[1];
|
|
27
|
+
|
|
28
|
+
useEffect(function () {
|
|
29
|
+
var interval = setInterval(function () {
|
|
30
|
+
if (value === 100) {
|
|
31
|
+
setRun(false);
|
|
32
|
+
clearInterval(interval);
|
|
33
|
+
setStatus("completed");
|
|
34
|
+
} else if (error && value === error) {
|
|
35
|
+
clearInterval(interval);
|
|
36
|
+
setStatus("error");
|
|
37
|
+
} else if (run) setValue(inc);
|
|
38
|
+
}, 150);
|
|
39
|
+
return function () {
|
|
40
|
+
return clearInterval(interval);
|
|
41
|
+
};
|
|
42
|
+
}, [inc, value, run, error]);
|
|
43
|
+
|
|
44
|
+
var reset = function reset() {
|
|
45
|
+
setValue(0);
|
|
46
|
+
setStatus("inProgress");
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var start = function start() {
|
|
50
|
+
setRun(true);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
style: {
|
|
55
|
+
width: 400
|
|
56
|
+
}
|
|
57
|
+
}, /*#__PURE__*/React.createElement(HvProgressBar, {
|
|
58
|
+
value: value,
|
|
59
|
+
status: status,
|
|
60
|
+
undeterminate: undeterminate,
|
|
61
|
+
labelProps: {
|
|
62
|
+
"aria-label": ariaLabel,
|
|
63
|
+
"aria-busy": false,
|
|
64
|
+
"aria-live": ariaLive
|
|
65
|
+
}
|
|
66
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
67
|
+
style: {
|
|
68
|
+
marginTop: 10
|
|
69
|
+
}
|
|
70
|
+
}, /*#__PURE__*/React.createElement(HvButton, {
|
|
71
|
+
onClick: start
|
|
72
|
+
}, "Start"), /*#__PURE__*/React.createElement(HvButton, {
|
|
73
|
+
style: {
|
|
74
|
+
marginLeft: 10
|
|
75
|
+
},
|
|
76
|
+
onClick: reset
|
|
77
|
+
}, "Reset")));
|
|
78
|
+
};
|
|
79
|
+
export { ProgressBarSimulator as default };
|
|
80
|
+
//# sourceMappingURL=ProgressBarSimulator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ProgressBar/ProgressBarSimulator.js"],"names":["React","useEffect","useState","HvButton","HvProgressBar","ProgressBarSimulator","inc","error","undeterminate","ariaLabel","ariaLive","status","setStatus","value","setValue","run","setRun","interval","setInterval","clearInterval","reset","start","width","marginTop","marginLeft","default"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,QAA3B,QAA2C,OAA3C;AAEA,SAASC,QAAT,QAAyB,kCAAzB;AAEA,SAASC,aAAT,QAA8B,IAA9B,C,CAEA;;AACA,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,OAAwD;AAAA,MAArDC,GAAqD,QAArDA,GAAqD;AAAA,MAAhDC,KAAgD,QAAhDA,KAAgD;AAAA,MAAzCC,aAAyC,QAAzCA,aAAyC;AAAA,MAA1BC,SAA0B,QAA1BA,SAA0B;AAAA,MAAfC,QAAe,QAAfA,QAAe;;AAC1F,kBAA4BR,QAAQ,CAAC,YAAD,CAApC;AAAA;AAAA,MAAOS,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA0BV,QAAQ,CAAC,CAAD,CAAlC;AAAA;AAAA,MAAOW,KAAP;AAAA,MAAcC,QAAd;;AACA,mBAAsBZ,QAAQ,CAAC,KAAD,CAA9B;AAAA;AAAA,MAAOa,GAAP;AAAA,MAAYC,MAAZ;;AAEAf,EAAAA,SAAS,CAAC,YAAM;AACd,QAAMgB,QAAQ,GAAGC,WAAW,CAAC,YAAM;AACjC,UAAIL,KAAK,KAAK,GAAd,EAAmB;AACjBG,QAAAA,MAAM,CAAC,KAAD,CAAN;AACAG,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,WAAD,CAAT;AACD,OAJD,MAIO,IAAIL,KAAK,IAAIM,KAAK,KAAKN,KAAvB,EAA8B;AACnCY,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,OAAD,CAAT;AACD,OAHM,MAGA,IAAIG,GAAJ,EAASD,QAAQ,CAACR,GAAD,CAAR;AACjB,KAT2B,EASzB,GATyB,CAA5B;AAUA,WAAO;AAAA,aAAMa,aAAa,CAACF,QAAD,CAAnB;AAAA,KAAP;AACD,GAZQ,EAYN,CAACX,GAAD,EAAMO,KAAN,EAAaE,GAAb,EAAkBR,KAAlB,CAZM,CAAT;;AAcA,MAAMa,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClBN,IAAAA,QAAQ,CAAC,CAAD,CAAR;AACAF,IAAAA,SAAS,CAAC,YAAD,CAAT;AACD,GAHD;;AAKA,MAAMS,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClBL,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD,GAFD;;AAIA,sBACE;AAAK,IAAA,KAAK,EAAE;AAAEM,MAAAA,KAAK,EAAE;AAAT;AAAZ,kBACE,oBAAC,aAAD;AACE,IAAA,KAAK,EAAET,KADT;AAEE,IAAA,MAAM,EAAEF,MAFV;AAGE,IAAA,aAAa,EAAEH,aAHjB;AAIE,IAAA,UAAU,EAAE;AACV,oBAAcC,SADJ;AAEV,mBAAa,KAFH;AAGV,mBAAaC;AAHH;AAJd,IADF,eAWE;AAAK,IAAA,KAAK,EAAE;AAAEa,MAAAA,SAAS,EAAE;AAAb;AAAZ,kBACE,oBAAC,QAAD;AAAU,IAAA,OAAO,EAAEF;AAAnB,aADF,eAEE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEG,MAAAA,UAAU,EAAE;AAAd,KAAjB;AAAqC,IAAA,OAAO,EAAEJ;AAA9C,aAFF,CAXF,CADF;AAoBD,CAhDM;AAkDP,SAASf,oBAAoB,IAAIoB,OAAjC","sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { HvButton } from \"@hitachivantara/uikit-react-core\";\n\nimport { HvProgressBar } from \"..\";\n\n// eslint-disable-next-line react/prop-types\nexport const ProgressBarSimulator = ({ inc, error, undeterminate, ariaLabel, ariaLive }) => {\n const [status, setStatus] = useState(\"inProgress\");\n const [value, setValue] = useState(0);\n const [run, setRun] = useState(false);\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (value === 100) {\n setRun(false);\n clearInterval(interval);\n setStatus(\"completed\");\n } else if (error && value === error) {\n clearInterval(interval);\n setStatus(\"error\");\n } else if (run) setValue(inc);\n }, 150);\n return () => clearInterval(interval);\n }, [inc, value, run, error]);\n\n const reset = () => {\n setValue(0);\n setStatus(\"inProgress\");\n };\n\n const start = () => {\n setRun(true);\n };\n\n return (\n <div style={{ width: 400 }}>\n <HvProgressBar\n value={value}\n status={status}\n undeterminate={undeterminate}\n labelProps={{\n \"aria-label\": ariaLabel,\n \"aria-busy\": false,\n \"aria-live\": ariaLive,\n }}\n />\n <div style={{ marginTop: 10 }}>\n <HvButton onClick={start}>Start</HvButton>\n <HvButton style={{ marginLeft: 10 }} onClick={reset}>\n Reset\n </HvButton>\n </div>\n </div>\n );\n};\n\nexport { ProgressBarSimulator as default };\n"],"file":"ProgressBarSimulator.js"}
|
|
@@ -1,33 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type HvProgressClassKey =
|
|
5
|
-
| "root"
|
|
6
|
-
| "progress"
|
|
7
|
-
| "progressContainer"
|
|
8
|
-
| "progressBarContainer"
|
|
9
|
-
| "progressBar"
|
|
10
|
-
| "progressDone"
|
|
11
|
-
| "progressError"
|
|
12
|
-
| "progressBarLabel"
|
|
13
|
-
| "progressAriaAlert";
|
|
14
|
-
|
|
15
|
-
export interface HvProgressBarProps
|
|
16
|
-
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressClassKey> {
|
|
17
|
-
/**
|
|
18
|
-
* The value of the progress bar.
|
|
19
|
-
*/
|
|
20
|
-
value?: number;
|
|
21
|
-
/**
|
|
22
|
-
* Indicates current status of the progress bar represented by the color.
|
|
23
|
-
*/
|
|
24
|
-
status?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* If `true` the progress bar will not show the percentage label.
|
|
27
|
-
*/
|
|
28
|
-
undeterminate?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Aria Properties passed on to the progress bar.
|
|
31
|
-
*/
|
|
32
|
-
labelProps?: object;
|
|
33
|
-
}
|
|
1
|
+
export { default } from "./ProgressBar";
|
|
2
|
+
export * from "./ProgressBar";
|
|
@@ -1,11 +1,40 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { StandardProps } from "@material-ui/core";
|
|
3
3
|
|
|
4
|
-
export type HvProgressBarClassKey =
|
|
4
|
+
export type HvProgressBarClassKey =
|
|
5
|
+
| "root"
|
|
6
|
+
| "progress"
|
|
7
|
+
| "progressContainer"
|
|
8
|
+
| "progressBarContainer"
|
|
9
|
+
| "progressBar"
|
|
10
|
+
| "progressDone"
|
|
11
|
+
| "progressError"
|
|
12
|
+
| "progressBarLabel"
|
|
13
|
+
| "progressBarLabelHidden";
|
|
5
14
|
|
|
6
|
-
export
|
|
7
|
-
React.HTMLAttributes<HTMLDivElement>,
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
export interface HvProgressBarProps
|
|
16
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressBarClassKey>,
|
|
17
|
+
HvProgressBarProps {
|
|
18
|
+
/**
|
|
19
|
+
* The value of the progress bar.
|
|
20
|
+
*/
|
|
21
|
+
value?: number;
|
|
22
|
+
/**
|
|
23
|
+
* The status of the progress bar.
|
|
24
|
+
*
|
|
25
|
+
* inProgress is black, error is red and completed is green.
|
|
26
|
+
*
|
|
27
|
+
* When uncontrolled and unspecified it will default to "inProgress".
|
|
28
|
+
*/
|
|
29
|
+
status?: string;
|
|
30
|
+
/**
|
|
31
|
+
* If `true` the progress bar will not show the percentage label.
|
|
32
|
+
*/
|
|
33
|
+
undeterminate?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Aria Properties passed on to the progress bar.
|
|
36
|
+
*/
|
|
37
|
+
labelProps?: object;
|
|
38
|
+
}
|
|
10
39
|
|
|
11
40
|
export default function HvProgressBar(props: HvProgressBarProps): JSX.Element | null;
|
|
@@ -8,6 +8,11 @@ import clamp from "lodash/clamp";
|
|
|
8
8
|
import { HvTypography } from "@hitachivantara/uikit-react-core";
|
|
9
9
|
import { withStyles } from "@material-ui/core";
|
|
10
10
|
import styles from "./styles";
|
|
11
|
+
const statusCategories = Object.freeze({
|
|
12
|
+
inProgress: "inProgress",
|
|
13
|
+
completed: "completed",
|
|
14
|
+
error: "error"
|
|
15
|
+
});
|
|
11
16
|
/**
|
|
12
17
|
* ProgressBar provides feedback about a process that is taking place in the application.
|
|
13
18
|
*/
|
|
@@ -17,7 +22,7 @@ const HvProgressBar = props => {
|
|
|
17
22
|
className,
|
|
18
23
|
classes,
|
|
19
24
|
value = 0,
|
|
20
|
-
status,
|
|
25
|
+
status = statusCategories.inProgress,
|
|
21
26
|
undeterminate = false,
|
|
22
27
|
labelProps
|
|
23
28
|
} = props,
|
|
@@ -27,11 +32,9 @@ const HvProgressBar = props => {
|
|
|
27
32
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
28
33
|
className: clsx(className, classes.root, classes.progress),
|
|
29
34
|
role: "progressbar",
|
|
30
|
-
status: "inProgress",
|
|
31
|
-
"aria-valuenow": clampedValue // it only makes sense to put this in ariaProps if the min and max values of the progress bar are intended to be changed by the user
|
|
32
|
-
,
|
|
33
35
|
"aria-valuemin": "0",
|
|
34
|
-
"aria-valuemax": "100"
|
|
36
|
+
"aria-valuemax": "100",
|
|
37
|
+
"aria-valuenow": clampedValue
|
|
35
38
|
}, others), /*#__PURE__*/React.createElement("div", {
|
|
36
39
|
className: classes.progressContainer
|
|
37
40
|
}, /*#__PURE__*/React.createElement(HvTypography, _extends({
|
|
@@ -39,17 +42,14 @@ const HvProgressBar = props => {
|
|
|
39
42
|
style: {
|
|
40
43
|
width: `${clampedValue}%`
|
|
41
44
|
},
|
|
42
|
-
className: clsx(classes.progressBarLabel,
|
|
45
|
+
className: clsx(classes.progressBarLabel, status === statusCategories.completed && classes.progressDone, undeterminate && classes.progressBarLabelHidden)
|
|
43
46
|
}, labelProps), `${clampedValue}%`), /*#__PURE__*/React.createElement("div", {
|
|
44
47
|
className: classes.progressBarContainer
|
|
45
48
|
}, /*#__PURE__*/React.createElement("div", {
|
|
46
49
|
style: {
|
|
47
50
|
width: `${clampedValue}%`
|
|
48
51
|
},
|
|
49
|
-
className: clsx(classes.progressBar,
|
|
50
|
-
"completed": classes.progressDone,
|
|
51
|
-
"error": classes.progressError
|
|
52
|
-
}[status])
|
|
52
|
+
className: clsx(classes.progressBar, status === statusCategories.completed && classes.progressDone, status === statusCategories.error && classes.progressError)
|
|
53
53
|
}))));
|
|
54
54
|
};
|
|
55
55
|
|
|
@@ -121,7 +121,7 @@ process.env.NODE_ENV !== "production" ? HvProgressBar.propTypes = {
|
|
|
121
121
|
*
|
|
122
122
|
* When uncontrolled and unspecified it will default to "inProgress".
|
|
123
123
|
*/
|
|
124
|
-
status: PropTypes.oneOf([
|
|
124
|
+
status: PropTypes.oneOf([statusCategories.inProgress, statusCategories.completed, statusCategories.error]),
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
127
|
* If `true` the progress bar will not show the percentage label.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ProgressBar/ProgressBar.js"],"names":["React","PropTypes","clsx","clamp","HvTypography","withStyles","styles","HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","
|
|
1
|
+
{"version":3,"sources":["../../../src/ProgressBar/ProgressBar.js"],"names":["React","PropTypes","clsx","clamp","HvTypography","withStyles","styles","statusCategories","Object","freeze","inProgress","completed","error","HvProgressBar","props","className","classes","value","status","undeterminate","labelProps","others","clampedValue","root","progress","progressContainer","width","progressBarLabel","progressDone","progressBarLabelHidden","progressBarContainer","progressBar","progressError","propTypes","string","shape","isRequired","number","oneOf","bool","instanceOf","name"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AAEA,OAAOC,KAAP,MAAkB,cAAlB;AACA,SAASC,YAAT,QAA6B,kCAA7B;AAEA,SAASC,UAAT,QAA2B,mBAA3B;AAEA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,MAAP,CAAc;AACrCC,EAAAA,UAAU,EAAE,YADyB;AAErCC,EAAAA,SAAS,EAAE,WAF0B;AAGrCC,EAAAA,KAAK,EAAE;AAH8B,CAAd,CAAzB;AAMA;AACA;AACA;;AACA,MAAMC,aAAa,GAAIC,KAAD,IAAW;AAC/B,QAAM;AACJC,IAAAA,SADI;AAEJC,IAAAA,OAFI;AAGJC,IAAAA,KAAK,GAAG,CAHJ;AAIJC,IAAAA,MAAM,GAAGX,gBAAgB,CAACG,UAJtB;AAKJS,IAAAA,aAAa,GAAG,KALZ;AAMJC,IAAAA;AANI,MAQFN,KARJ;AAAA,QAOKO,MAPL,4BAQIP,KARJ;;AAUA,QAAMQ,YAAY,GAAGnB,KAAK,CAACc,KAAD,EAAQ,CAAR,EAAW,GAAX,CAA1B;AAEA,sBACE;AACE,IAAA,SAAS,EAAEf,IAAI,CAACa,SAAD,EAAYC,OAAO,CAACO,IAApB,EAA0BP,OAAO,CAACQ,QAAlC,CADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,qBAAc,GAHhB;AAIE,qBAAc,KAJhB;AAKE,qBAAeF;AALjB,KAMMD,MANN,gBAQE;AAAK,IAAA,SAAS,EAAEL,OAAO,CAACS;AAAxB,kBACE,oBAAC,YAAD;AACE,IAAA,OAAO,EAAC,SADV;AAEE,IAAA,KAAK,EAAE;AAAEC,MAAAA,KAAK,EAAG,GAAEJ,YAAa;AAAzB,KAFT;AAGE,IAAA,SAAS,EAAEpB,IAAI,CACbc,OAAO,CAACW,gBADK,EAEbT,MAAM,KAAKX,gBAAgB,CAACI,SAFf,IAE4BK,OAAO,CAACY,YAFpC,EAGbT,aAHa,IAGIH,OAAO,CAACa,sBAHZ;AAHjB,KAQMT,UARN,GAUI,GAAEE,YAAa,GAVnB,CADF,eAaE;AAAK,IAAA,SAAS,EAAEN,OAAO,CAACc;AAAxB,kBACE;AACE,IAAA,KAAK,EAAE;AAAEJ,MAAAA,KAAK,EAAG,GAAEJ,YAAa;AAAzB,KADT;AAEE,IAAA,SAAS,EAAEpB,IAAI,CACbc,OAAO,CAACe,WADK,EAEbb,MAAM,KAAKX,gBAAgB,CAACI,SAFf,IAE4BK,OAAO,CAACY,YAFpC,EAGbV,MAAM,KAAKX,gBAAgB,CAACK,KAHf,IAGwBI,OAAO,CAACgB,aAHhC;AAFjB,IADF,CAbF,CARF,CADF;AAmCD,CAhDD;;AAkDA,wCAAAnB,aAAa,CAACoB,SAAd,GAA0B;AACxB;AACF;AACA;AACElB,EAAAA,SAAS,EAAEd,SAAS,CAACiC,MAJG;;AAKxB;AACF;AACA;AACElB,EAAAA,OAAO,EAAEf,SAAS,CAACkC,KAAV,CAAgB;AACvB;AACJ;AACA;AACIZ,IAAAA,IAAI,EAAEtB,SAAS,CAACiC,MAJO;;AAMvB;AACJ;AACA;AACIV,IAAAA,QAAQ,EAAEvB,SAAS,CAACiC,MATG;;AAUvB;AACJ;AACA;AACIT,IAAAA,iBAAiB,EAAExB,SAAS,CAACiC,MAbN;;AAcvB;AACJ;AACA;AACIJ,IAAAA,oBAAoB,EAAE7B,SAAS,CAACiC,MAjBT;;AAkBvB;AACJ;AACA;AACIH,IAAAA,WAAW,EAAE9B,SAAS,CAACiC,MArBA;;AAsBvB;AACJ;AACA;AACIN,IAAAA,YAAY,EAAE3B,SAAS,CAACiC,MAzBD;;AA0BvB;AACJ;AACA;AACIF,IAAAA,aAAa,EAAE/B,SAAS,CAACiC,MA7BF;;AA8BvB;AACJ;AACA;AACIP,IAAAA,gBAAgB,EAAE1B,SAAS,CAACiC,MAjCL;;AAkCvB;AACJ;AACA;AACIL,IAAAA,sBAAsB,EAAE5B,SAAS,CAACiC;AArCX,GAAhB,EAsCNE,UA9CqB;;AA+CxB;AACF;AACA;AACEnB,EAAAA,KAAK,EAAEhB,SAAS,CAACoC,MAlDO;;AAmDxB;AACF;AACA;AACA;AACA;AACA;AACA;AACEnB,EAAAA,MAAM,EAAEjB,SAAS,CAACqC,KAAV,CAAgB,CACtB/B,gBAAgB,CAACG,UADK,EAEtBH,gBAAgB,CAACI,SAFK,EAGtBJ,gBAAgB,CAACK,KAHK,CAAhB,CA1DgB;;AA+DxB;AACF;AACA;AACEO,EAAAA,aAAa,EAAElB,SAAS,CAACsC,IAlED;;AAmExB;AACF;AACA;AACEnB,EAAAA,UAAU,EAAEnB,SAAS,CAACuC,UAAV,CAAqBhC,MAArB;AAtEY,CAA1B;AAyEA,eAAeH,UAAU,CAACC,MAAD,EAAS;AAAEmC,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAA8C5B,aAA9C,CAAf","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport clamp from \"lodash/clamp\";\nimport { HvTypography } from \"@hitachivantara/uikit-react-core\";\n\nimport { withStyles } from \"@material-ui/core\";\n\nimport styles from \"./styles\";\n\nconst statusCategories = Object.freeze({\n inProgress: \"inProgress\",\n completed: \"completed\",\n error: \"error\",\n});\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nconst HvProgressBar = (props) => {\n const {\n className,\n classes,\n value = 0,\n status = statusCategories.inProgress,\n undeterminate = false,\n labelProps,\n ...others\n } = props;\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <div\n className={clsx(className, classes.root, classes.progress)}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={clampedValue}\n {...others}\n >\n <div className={classes.progressContainer}>\n <HvTypography\n variant=\"vizText\"\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBarLabel,\n status === statusCategories.completed && classes.progressDone,\n undeterminate && classes.progressBarLabelHidden\n )}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </HvTypography>\n <div className={classes.progressBarContainer}>\n <div\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n classes.progressBar,\n status === statusCategories.completed && classes.progressDone,\n status === statusCategories.error && classes.progressError\n )}\n />\n </div>\n </div>\n </div>\n );\n};\n\nHvProgressBar.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n\n /**\n * Style applied to the overall container when in progress mode.\n */\n progress: PropTypes.string,\n /**\n * Style applied to the specifc container when in progress mode.\n */\n progressContainer: PropTypes.string,\n /**\n * Style applied to progress bar container.\n */\n progressBarContainer: PropTypes.string,\n /**\n * Style applied to the progress bar.\n */\n progressBar: PropTypes.string,\n /**\n * Style applied to the progress bar when the loading is done.\n */\n progressDone: PropTypes.string,\n /**\n * Style applied to the progress bar when an error occurs.\n */\n progressError: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabel: PropTypes.string,\n /**\n * Style applied to the progress bar label.\n */\n progressBarLabelHidden: PropTypes.string,\n }).isRequired,\n /**\n * The value of the progress bar.\n */\n value: PropTypes.number,\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status: PropTypes.oneOf([\n statusCategories.inProgress,\n statusCategories.completed,\n statusCategories.error,\n ]),\n /**\n * If `true` the progress bar will not show the percentage label.\n */\n undeterminate: PropTypes.bool,\n /**\n * Aria Properties passed on to the progress bar.\n */\n labelProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvProgressBar\" })(HvProgressBar);\n"],"file":"ProgressBar.js"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
import { HvButton } from "@hitachivantara/uikit-react-core";
|
|
4
|
+
import { HvProgressBar } from ".."; // eslint-disable-next-line react/prop-types
|
|
5
|
+
|
|
6
|
+
export const ProgressBarSimulator = ({
|
|
7
|
+
inc,
|
|
8
|
+
error,
|
|
9
|
+
undeterminate,
|
|
10
|
+
ariaLabel,
|
|
11
|
+
ariaLive
|
|
12
|
+
}) => {
|
|
13
|
+
const [status, setStatus] = useState("inProgress");
|
|
14
|
+
const [value, setValue] = useState(0);
|
|
15
|
+
const [run, setRun] = useState(false);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const interval = setInterval(() => {
|
|
18
|
+
if (value === 100) {
|
|
19
|
+
setRun(false);
|
|
20
|
+
clearInterval(interval);
|
|
21
|
+
setStatus("completed");
|
|
22
|
+
} else if (error && value === error) {
|
|
23
|
+
clearInterval(interval);
|
|
24
|
+
setStatus("error");
|
|
25
|
+
} else if (run) setValue(inc);
|
|
26
|
+
}, 150);
|
|
27
|
+
return () => clearInterval(interval);
|
|
28
|
+
}, [inc, value, run, error]);
|
|
29
|
+
|
|
30
|
+
const reset = () => {
|
|
31
|
+
setValue(0);
|
|
32
|
+
setStatus("inProgress");
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const start = () => {
|
|
36
|
+
setRun(true);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
40
|
+
style: {
|
|
41
|
+
width: 400
|
|
42
|
+
}
|
|
43
|
+
}, /*#__PURE__*/React.createElement(HvProgressBar, {
|
|
44
|
+
value: value,
|
|
45
|
+
status: status,
|
|
46
|
+
undeterminate: undeterminate,
|
|
47
|
+
labelProps: {
|
|
48
|
+
"aria-label": ariaLabel,
|
|
49
|
+
"aria-busy": false,
|
|
50
|
+
"aria-live": ariaLive
|
|
51
|
+
}
|
|
52
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
style: {
|
|
54
|
+
marginTop: 10
|
|
55
|
+
}
|
|
56
|
+
}, /*#__PURE__*/React.createElement(HvButton, {
|
|
57
|
+
onClick: start
|
|
58
|
+
}, "Start"), /*#__PURE__*/React.createElement(HvButton, {
|
|
59
|
+
style: {
|
|
60
|
+
marginLeft: 10
|
|
61
|
+
},
|
|
62
|
+
onClick: reset
|
|
63
|
+
}, "Reset")));
|
|
64
|
+
};
|
|
65
|
+
export { ProgressBarSimulator as default };
|
|
66
|
+
//# sourceMappingURL=ProgressBarSimulator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ProgressBar/ProgressBarSimulator.js"],"names":["React","useEffect","useState","HvButton","HvProgressBar","ProgressBarSimulator","inc","error","undeterminate","ariaLabel","ariaLive","status","setStatus","value","setValue","run","setRun","interval","setInterval","clearInterval","reset","start","width","marginTop","marginLeft","default"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,QAA3B,QAA2C,OAA3C;AAEA,SAASC,QAAT,QAAyB,kCAAzB;AAEA,SAASC,aAAT,QAA8B,IAA9B,C,CAEA;;AACA,OAAO,MAAMC,oBAAoB,GAAG,CAAC;AAAEC,EAAAA,GAAF;AAAOC,EAAAA,KAAP;AAAcC,EAAAA,aAAd;AAA6BC,EAAAA,SAA7B;AAAwCC,EAAAA;AAAxC,CAAD,KAAwD;AAC1F,QAAM,CAACC,MAAD,EAASC,SAAT,IAAsBV,QAAQ,CAAC,YAAD,CAApC;AACA,QAAM,CAACW,KAAD,EAAQC,QAAR,IAAoBZ,QAAQ,CAAC,CAAD,CAAlC;AACA,QAAM,CAACa,GAAD,EAAMC,MAAN,IAAgBd,QAAQ,CAAC,KAAD,CAA9B;AAEAD,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMgB,QAAQ,GAAGC,WAAW,CAAC,MAAM;AACjC,UAAIL,KAAK,KAAK,GAAd,EAAmB;AACjBG,QAAAA,MAAM,CAAC,KAAD,CAAN;AACAG,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,WAAD,CAAT;AACD,OAJD,MAIO,IAAIL,KAAK,IAAIM,KAAK,KAAKN,KAAvB,EAA8B;AACnCY,QAAAA,aAAa,CAACF,QAAD,CAAb;AACAL,QAAAA,SAAS,CAAC,OAAD,CAAT;AACD,OAHM,MAGA,IAAIG,GAAJ,EAASD,QAAQ,CAACR,GAAD,CAAR;AACjB,KAT2B,EASzB,GATyB,CAA5B;AAUA,WAAO,MAAMa,aAAa,CAACF,QAAD,CAA1B;AACD,GAZQ,EAYN,CAACX,GAAD,EAAMO,KAAN,EAAaE,GAAb,EAAkBR,KAAlB,CAZM,CAAT;;AAcA,QAAMa,KAAK,GAAG,MAAM;AAClBN,IAAAA,QAAQ,CAAC,CAAD,CAAR;AACAF,IAAAA,SAAS,CAAC,YAAD,CAAT;AACD,GAHD;;AAKA,QAAMS,KAAK,GAAG,MAAM;AAClBL,IAAAA,MAAM,CAAC,IAAD,CAAN;AACD,GAFD;;AAIA,sBACE;AAAK,IAAA,KAAK,EAAE;AAAEM,MAAAA,KAAK,EAAE;AAAT;AAAZ,kBACE,oBAAC,aAAD;AACE,IAAA,KAAK,EAAET,KADT;AAEE,IAAA,MAAM,EAAEF,MAFV;AAGE,IAAA,aAAa,EAAEH,aAHjB;AAIE,IAAA,UAAU,EAAE;AACV,oBAAcC,SADJ;AAEV,mBAAa,KAFH;AAGV,mBAAaC;AAHH;AAJd,IADF,eAWE;AAAK,IAAA,KAAK,EAAE;AAAEa,MAAAA,SAAS,EAAE;AAAb;AAAZ,kBACE,oBAAC,QAAD;AAAU,IAAA,OAAO,EAAEF;AAAnB,aADF,eAEE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEG,MAAAA,UAAU,EAAE;AAAd,KAAjB;AAAqC,IAAA,OAAO,EAAEJ;AAA9C,aAFF,CAXF,CADF;AAoBD,CAhDM;AAkDP,SAASf,oBAAoB,IAAIoB,OAAjC","sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { HvButton } from \"@hitachivantara/uikit-react-core\";\n\nimport { HvProgressBar } from \"..\";\n\n// eslint-disable-next-line react/prop-types\nexport const ProgressBarSimulator = ({ inc, error, undeterminate, ariaLabel, ariaLive }) => {\n const [status, setStatus] = useState(\"inProgress\");\n const [value, setValue] = useState(0);\n const [run, setRun] = useState(false);\n\n useEffect(() => {\n const interval = setInterval(() => {\n if (value === 100) {\n setRun(false);\n clearInterval(interval);\n setStatus(\"completed\");\n } else if (error && value === error) {\n clearInterval(interval);\n setStatus(\"error\");\n } else if (run) setValue(inc);\n }, 150);\n return () => clearInterval(interval);\n }, [inc, value, run, error]);\n\n const reset = () => {\n setValue(0);\n setStatus(\"inProgress\");\n };\n\n const start = () => {\n setRun(true);\n };\n\n return (\n <div style={{ width: 400 }}>\n <HvProgressBar\n value={value}\n status={status}\n undeterminate={undeterminate}\n labelProps={{\n \"aria-label\": ariaLabel,\n \"aria-busy\": false,\n \"aria-live\": ariaLive,\n }}\n />\n <div style={{ marginTop: 10 }}>\n <HvButton onClick={start}>Start</HvButton>\n <HvButton style={{ marginLeft: 10 }} onClick={reset}>\n Reset\n </HvButton>\n </div>\n </div>\n );\n};\n\nexport { ProgressBarSimulator as default };\n"],"file":"ProgressBarSimulator.js"}
|
|
@@ -1,33 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type HvProgressClassKey =
|
|
5
|
-
| "root"
|
|
6
|
-
| "progress"
|
|
7
|
-
| "progressContainer"
|
|
8
|
-
| "progressBarContainer"
|
|
9
|
-
| "progressBar"
|
|
10
|
-
| "progressDone"
|
|
11
|
-
| "progressError"
|
|
12
|
-
| "progressBarLabel"
|
|
13
|
-
| "progressAriaAlert";
|
|
14
|
-
|
|
15
|
-
export interface HvProgressBarProps
|
|
16
|
-
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvProgressClassKey> {
|
|
17
|
-
/**
|
|
18
|
-
* The value of the progress bar.
|
|
19
|
-
*/
|
|
20
|
-
value?: number;
|
|
21
|
-
/**
|
|
22
|
-
* Indicates current status of the progress bar represented by the color.
|
|
23
|
-
*/
|
|
24
|
-
status?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* If `true` the progress bar will not show the percentage label.
|
|
27
|
-
*/
|
|
28
|
-
undeterminate?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Aria Properties passed on to the progress bar.
|
|
31
|
-
*/
|
|
32
|
-
labelProps?: object;
|
|
33
|
-
}
|
|
1
|
+
export { default } from "./ProgressBar";
|
|
2
|
+
export * from "./ProgressBar";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/uikit-react-lab",
|
|
3
|
-
"version": "3.42.
|
|
3
|
+
"version": "3.42.1",
|
|
4
4
|
"description": "A collection of contributed React components for the Hitachi Vantara's Design System.",
|
|
5
5
|
"homepage": "https://github.com/lumada-design/hv-uikit-react",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "762e3c46f782579321437f0a32899ad1a801740f"
|
|
87
87
|
}
|