@dhis2-ui/loader 9.6.0 → 9.7.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/build/cjs/circular-loader/__tests__/circular-loader.test.js +33 -0
- package/build/cjs/circular-loader/circular-loader.js +4 -1
- package/build/cjs/circular-loader/circular-loader.stories.js +9 -3
- package/build/cjs/linear-loader/__tests__/linear-loader.test.js +37 -0
- package/build/cjs/linear-loader/linear-loader.js +5 -1
- package/build/cjs/linear-loader/linear-loader.stories.js +6 -3
- package/build/es/circular-loader/__tests__/circular-loader.test.js +26 -0
- package/build/es/circular-loader/circular-loader.js +4 -1
- package/build/es/circular-loader/circular-loader.stories.js +9 -3
- package/build/es/linear-loader/__tests__/linear-loader.test.js +30 -0
- package/build/es/linear-loader/linear-loader.js +5 -1
- package/build/es/linear-loader/linear-loader.stories.js +6 -3
- package/package.json +2 -2
- package/types/index.d.ts +2 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _enzyme = require("enzyme");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _circularLoader = require("../circular-loader.js");
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
describe('Circular Loader', () => {
|
|
12
|
+
it('renders the circular loader with aria label', () => {
|
|
13
|
+
const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_circularLoader.CircularLoader, {
|
|
14
|
+
dataTest: 'circular-loader-test',
|
|
15
|
+
"aria-label": "Circular Loader"
|
|
16
|
+
}));
|
|
17
|
+
const actual = wrapper.find({
|
|
18
|
+
'data-test': 'circular-loader-test'
|
|
19
|
+
});
|
|
20
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
21
|
+
expect(actual.prop('aria-label')).toBe('Circular Loader');
|
|
22
|
+
});
|
|
23
|
+
it('renders the circular loader without aria label', () => {
|
|
24
|
+
const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_circularLoader.CircularLoader, {
|
|
25
|
+
dataTest: 'circular-loader-test'
|
|
26
|
+
}));
|
|
27
|
+
const actual = wrapper.find({
|
|
28
|
+
'data-test': 'circular-loader-test'
|
|
29
|
+
});
|
|
30
|
+
expect(actual.prop('aria-label')).toBe(undefined);
|
|
31
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -24,11 +24,13 @@ const CircularLoader = _ref => {
|
|
|
24
24
|
extrasmall,
|
|
25
25
|
invert,
|
|
26
26
|
className,
|
|
27
|
-
dataTest
|
|
27
|
+
dataTest,
|
|
28
|
+
'aria-label': ariaLabel
|
|
28
29
|
} = _ref;
|
|
29
30
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
30
31
|
role: "progressbar",
|
|
31
32
|
"data-test": dataTest,
|
|
33
|
+
"aria-label": ariaLabel,
|
|
32
34
|
className: _style.default.dynamic([["3803726117", [_uiConstants.colors.blue600, _uiConstants.colors.white]]]) + " " + ((0, _classnames.default)(className, {
|
|
33
35
|
small,
|
|
34
36
|
large,
|
|
@@ -46,6 +48,7 @@ CircularLoader.defaultProps = {
|
|
|
46
48
|
dataTest: 'dhis2-uicore-circularloader'
|
|
47
49
|
};
|
|
48
50
|
CircularLoader.propTypes = {
|
|
51
|
+
'aria-label': _propTypes.default.string,
|
|
49
52
|
className: _propTypes.default.string,
|
|
50
53
|
dataTest: _propTypes.default.string,
|
|
51
54
|
extrasmall: _uiConstants.sharedPropTypes.sizePropType,
|
|
@@ -41,18 +41,24 @@ const Template = args => /*#__PURE__*/_react.default.createElement(_index.Circul
|
|
|
41
41
|
|
|
42
42
|
const Default = Template.bind({});
|
|
43
43
|
exports.Default = Default;
|
|
44
|
+
Default.args = {
|
|
45
|
+
'aria-label': 'Default Loader'
|
|
46
|
+
};
|
|
44
47
|
const Small = Template.bind({});
|
|
45
48
|
exports.Small = Small;
|
|
46
49
|
Small.args = {
|
|
47
|
-
small: true
|
|
50
|
+
small: true,
|
|
51
|
+
'aria-label': 'Small Loader'
|
|
48
52
|
};
|
|
49
53
|
const Large = Template.bind({});
|
|
50
54
|
exports.Large = Large;
|
|
51
55
|
Large.args = {
|
|
52
|
-
large: true
|
|
56
|
+
large: true,
|
|
57
|
+
'aria-label': 'Large Loader'
|
|
53
58
|
};
|
|
54
59
|
const ExtraSmall = Template.bind({});
|
|
55
60
|
exports.ExtraSmall = ExtraSmall;
|
|
56
61
|
ExtraSmall.args = {
|
|
57
|
-
extrasmall: true
|
|
62
|
+
extrasmall: true,
|
|
63
|
+
'aria-label': 'ExtraSmall Loader'
|
|
58
64
|
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _enzyme = require("enzyme");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _linearLoader = require("../linear-loader.js");
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
describe('Linear Loader', () => {
|
|
12
|
+
it('renders the linear loader with provided aria attributes', () => {
|
|
13
|
+
const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_linearLoader.LinearLoader, {
|
|
14
|
+
dataTest: 'linear-loader-test',
|
|
15
|
+
"aria-label": "Linear Loader",
|
|
16
|
+
amount: 15
|
|
17
|
+
}));
|
|
18
|
+
const actual = wrapper.find({
|
|
19
|
+
'data-test': 'linear-loader-test'
|
|
20
|
+
});
|
|
21
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
22
|
+
expect(actual.prop('aria-label')).toBe('Linear Loader');
|
|
23
|
+
expect(actual.prop('aria-valuenow')).toBe(15);
|
|
24
|
+
});
|
|
25
|
+
it('renders the linear loader without aria label', () => {
|
|
26
|
+
const wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_linearLoader.LinearLoader, {
|
|
27
|
+
dataTest: 'linear-loader-test',
|
|
28
|
+
amount: 45
|
|
29
|
+
}));
|
|
30
|
+
const actual = wrapper.find({
|
|
31
|
+
'data-test': 'linear-loader-test'
|
|
32
|
+
});
|
|
33
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
34
|
+
expect(actual.prop('aria-label')).toBe(undefined);
|
|
35
|
+
expect(actual.prop('aria-valuenow')).toBe(45);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -49,10 +49,13 @@ const LinearLoader = _ref2 => {
|
|
|
49
49
|
margin,
|
|
50
50
|
invert,
|
|
51
51
|
className,
|
|
52
|
-
dataTest
|
|
52
|
+
dataTest,
|
|
53
|
+
'aria-label': ariaLabel
|
|
53
54
|
} = _ref2;
|
|
54
55
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
55
56
|
role: "progressbar",
|
|
57
|
+
"aria-valuenow": amount,
|
|
58
|
+
"aria-label": ariaLabel,
|
|
56
59
|
"data-test": dataTest,
|
|
57
60
|
className: "jsx-3127531794 " + _style.default.dynamic([["3224415970", [width, margin]]]) + " " + ((0, _classnames.default)(className, {
|
|
58
61
|
invert
|
|
@@ -77,6 +80,7 @@ LinearLoader.defaultProps = {
|
|
|
77
80
|
LinearLoader.propTypes = {
|
|
78
81
|
/** The progression in percent without the '%' sign */
|
|
79
82
|
amount: _propTypes.default.number.isRequired,
|
|
83
|
+
'aria-label': _propTypes.default.string,
|
|
80
84
|
className: _propTypes.default.string,
|
|
81
85
|
dataTest: _propTypes.default.string,
|
|
82
86
|
|
|
@@ -48,7 +48,8 @@ const Determinate = args => /*#__PURE__*/_react.default.createElement(_index.Lin
|
|
|
48
48
|
|
|
49
49
|
exports.Determinate = Determinate;
|
|
50
50
|
Determinate.args = {
|
|
51
|
-
amount: 60
|
|
51
|
+
amount: 60,
|
|
52
|
+
'aria-label': 'Determinate Loader'
|
|
52
53
|
};
|
|
53
54
|
|
|
54
55
|
const OverlayPage = args => /*#__PURE__*/_react.default.createElement(_layer.Layer, {
|
|
@@ -58,7 +59,8 @@ const OverlayPage = args => /*#__PURE__*/_react.default.createElement(_layer.Lay
|
|
|
58
59
|
|
|
59
60
|
exports.OverlayPage = OverlayPage;
|
|
60
61
|
OverlayPage.args = {
|
|
61
|
-
amount: 30
|
|
62
|
+
amount: 30,
|
|
63
|
+
'aria-label': 'Loader with Overlay Page'
|
|
62
64
|
};
|
|
63
65
|
OverlayPage.parameters = {
|
|
64
66
|
docs: {
|
|
@@ -77,7 +79,8 @@ const OverlayComponent = args => /*#__PURE__*/_react.default.createElement("div"
|
|
|
77
79
|
|
|
78
80
|
exports.OverlayComponent = OverlayComponent;
|
|
79
81
|
OverlayComponent.args = {
|
|
80
|
-
amount: 80
|
|
82
|
+
amount: 80,
|
|
83
|
+
'aria-label': 'Loader with Overlay Component'
|
|
81
84
|
};
|
|
82
85
|
|
|
83
86
|
const RTL = args => /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { mount } from 'enzyme';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { CircularLoader } from '../circular-loader.js';
|
|
4
|
+
describe('Circular Loader', () => {
|
|
5
|
+
it('renders the circular loader with aria label', () => {
|
|
6
|
+
const wrapper = mount( /*#__PURE__*/React.createElement(CircularLoader, {
|
|
7
|
+
dataTest: 'circular-loader-test',
|
|
8
|
+
"aria-label": "Circular Loader"
|
|
9
|
+
}));
|
|
10
|
+
const actual = wrapper.find({
|
|
11
|
+
'data-test': 'circular-loader-test'
|
|
12
|
+
});
|
|
13
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
14
|
+
expect(actual.prop('aria-label')).toBe('Circular Loader');
|
|
15
|
+
});
|
|
16
|
+
it('renders the circular loader without aria label', () => {
|
|
17
|
+
const wrapper = mount( /*#__PURE__*/React.createElement(CircularLoader, {
|
|
18
|
+
dataTest: 'circular-loader-test'
|
|
19
|
+
}));
|
|
20
|
+
const actual = wrapper.find({
|
|
21
|
+
'data-test': 'circular-loader-test'
|
|
22
|
+
});
|
|
23
|
+
expect(actual.prop('aria-label')).toBe(undefined);
|
|
24
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -11,11 +11,13 @@ const CircularLoader = _ref => {
|
|
|
11
11
|
extrasmall,
|
|
12
12
|
invert,
|
|
13
13
|
className,
|
|
14
|
-
dataTest
|
|
14
|
+
dataTest,
|
|
15
|
+
'aria-label': ariaLabel
|
|
15
16
|
} = _ref;
|
|
16
17
|
return /*#__PURE__*/React.createElement("div", {
|
|
17
18
|
role: "progressbar",
|
|
18
19
|
"data-test": dataTest,
|
|
20
|
+
"aria-label": ariaLabel,
|
|
19
21
|
className: _JSXStyle.dynamic([["3803726117", [colors.blue600, colors.white]]]) + " " + (cx(className, {
|
|
20
22
|
small,
|
|
21
23
|
large,
|
|
@@ -32,6 +34,7 @@ CircularLoader.defaultProps = {
|
|
|
32
34
|
dataTest: 'dhis2-uicore-circularloader'
|
|
33
35
|
};
|
|
34
36
|
CircularLoader.propTypes = {
|
|
37
|
+
'aria-label': PropTypes.string,
|
|
35
38
|
className: PropTypes.string,
|
|
36
39
|
dataTest: PropTypes.string,
|
|
37
40
|
extrasmall: sharedPropTypes.sizePropType,
|
|
@@ -27,15 +27,21 @@ export default {
|
|
|
27
27
|
const Template = args => /*#__PURE__*/React.createElement(CircularLoader, args);
|
|
28
28
|
|
|
29
29
|
export const Default = Template.bind({});
|
|
30
|
+
Default.args = {
|
|
31
|
+
'aria-label': 'Default Loader'
|
|
32
|
+
};
|
|
30
33
|
export const Small = Template.bind({});
|
|
31
34
|
Small.args = {
|
|
32
|
-
small: true
|
|
35
|
+
small: true,
|
|
36
|
+
'aria-label': 'Small Loader'
|
|
33
37
|
};
|
|
34
38
|
export const Large = Template.bind({});
|
|
35
39
|
Large.args = {
|
|
36
|
-
large: true
|
|
40
|
+
large: true,
|
|
41
|
+
'aria-label': 'Large Loader'
|
|
37
42
|
};
|
|
38
43
|
export const ExtraSmall = Template.bind({});
|
|
39
44
|
ExtraSmall.args = {
|
|
40
|
-
extrasmall: true
|
|
45
|
+
extrasmall: true,
|
|
46
|
+
'aria-label': 'ExtraSmall Loader'
|
|
41
47
|
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mount } from 'enzyme';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { LinearLoader } from '../linear-loader.js';
|
|
4
|
+
describe('Linear Loader', () => {
|
|
5
|
+
it('renders the linear loader with provided aria attributes', () => {
|
|
6
|
+
const wrapper = mount( /*#__PURE__*/React.createElement(LinearLoader, {
|
|
7
|
+
dataTest: 'linear-loader-test',
|
|
8
|
+
"aria-label": "Linear Loader",
|
|
9
|
+
amount: 15
|
|
10
|
+
}));
|
|
11
|
+
const actual = wrapper.find({
|
|
12
|
+
'data-test': 'linear-loader-test'
|
|
13
|
+
});
|
|
14
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
15
|
+
expect(actual.prop('aria-label')).toBe('Linear Loader');
|
|
16
|
+
expect(actual.prop('aria-valuenow')).toBe(15);
|
|
17
|
+
});
|
|
18
|
+
it('renders the linear loader without aria label', () => {
|
|
19
|
+
const wrapper = mount( /*#__PURE__*/React.createElement(LinearLoader, {
|
|
20
|
+
dataTest: 'linear-loader-test',
|
|
21
|
+
amount: 45
|
|
22
|
+
}));
|
|
23
|
+
const actual = wrapper.find({
|
|
24
|
+
'data-test': 'linear-loader-test'
|
|
25
|
+
});
|
|
26
|
+
expect(actual.prop('role')).toBe('progressbar');
|
|
27
|
+
expect(actual.prop('aria-label')).toBe(undefined);
|
|
28
|
+
expect(actual.prop('aria-valuenow')).toBe(45);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -36,10 +36,13 @@ const LinearLoader = _ref2 => {
|
|
|
36
36
|
margin,
|
|
37
37
|
invert,
|
|
38
38
|
className,
|
|
39
|
-
dataTest
|
|
39
|
+
dataTest,
|
|
40
|
+
'aria-label': ariaLabel
|
|
40
41
|
} = _ref2;
|
|
41
42
|
return /*#__PURE__*/React.createElement("div", {
|
|
42
43
|
role: "progressbar",
|
|
44
|
+
"aria-valuenow": amount,
|
|
45
|
+
"aria-label": ariaLabel,
|
|
43
46
|
"data-test": dataTest,
|
|
44
47
|
className: "jsx-3127531794 " + _JSXStyle.dynamic([["3224415970", [width, margin]]]) + " " + (cx(className, {
|
|
45
48
|
invert
|
|
@@ -63,6 +66,7 @@ LinearLoader.defaultProps = {
|
|
|
63
66
|
LinearLoader.propTypes = {
|
|
64
67
|
/** The progression in percent without the '%' sign */
|
|
65
68
|
amount: PropTypes.number.isRequired,
|
|
69
|
+
'aria-label': PropTypes.string,
|
|
66
70
|
className: PropTypes.string,
|
|
67
71
|
dataTest: PropTypes.string,
|
|
68
72
|
|
|
@@ -29,14 +29,16 @@ export default {
|
|
|
29
29
|
};
|
|
30
30
|
export const Determinate = args => /*#__PURE__*/React.createElement(LinearLoader, args);
|
|
31
31
|
Determinate.args = {
|
|
32
|
-
amount: 60
|
|
32
|
+
amount: 60,
|
|
33
|
+
'aria-label': 'Determinate Loader'
|
|
33
34
|
};
|
|
34
35
|
export const OverlayPage = args => /*#__PURE__*/React.createElement(Layer, {
|
|
35
36
|
level: layers.blocking,
|
|
36
37
|
translucent: true
|
|
37
38
|
}, /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(LinearLoader, args)));
|
|
38
39
|
OverlayPage.args = {
|
|
39
|
-
amount: 30
|
|
40
|
+
amount: 30,
|
|
41
|
+
'aria-label': 'Loader with Overlay Page'
|
|
40
42
|
};
|
|
41
43
|
OverlayPage.parameters = {
|
|
42
44
|
docs: {
|
|
@@ -52,7 +54,8 @@ export const OverlayComponent = args => /*#__PURE__*/React.createElement("div",
|
|
|
52
54
|
translucent: true
|
|
53
55
|
}, /*#__PURE__*/React.createElement(Center, null, /*#__PURE__*/React.createElement(LinearLoader, args))));
|
|
54
56
|
OverlayComponent.args = {
|
|
55
|
-
amount: 80
|
|
57
|
+
amount: 80,
|
|
58
|
+
'aria-label': 'Loader with Overlay Component'
|
|
56
59
|
};
|
|
57
60
|
export const RTL = args => /*#__PURE__*/React.createElement("div", {
|
|
58
61
|
dir: "rtl"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2-ui/loader",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.0",
|
|
4
4
|
"description": "UI Loaders",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@dhis2/prop-types": "^3.1.2",
|
|
36
|
-
"@dhis2/ui-constants": "9.
|
|
36
|
+
"@dhis2/ui-constants": "9.7.0",
|
|
37
37
|
"classnames": "^2.3.1",
|
|
38
38
|
"prop-types": "^15.7.2"
|
|
39
39
|
},
|
package/types/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface CircularLoaderProps {
|
|
|
7
7
|
invert?: boolean
|
|
8
8
|
large?: boolean
|
|
9
9
|
small?: boolean
|
|
10
|
+
'aria-label'?: string
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export const CircularLoader: React.FC<CircularLoaderProps>
|
|
@@ -30,6 +31,7 @@ export interface LinearLoaderProps {
|
|
|
30
31
|
* The width of the entire indicator
|
|
31
32
|
*/
|
|
32
33
|
width?: string
|
|
34
|
+
'aria-label'?: string
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export const LinearLoader: React.FC<LinearLoaderProps>
|