@dhis2-ui/loader 9.4.2 → 9.5.0-alpha.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.
@@ -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.4.2",
3
+ "version": "9.5.0-alpha.1",
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.4.2",
36
+ "@dhis2/ui-constants": "9.5.0-alpha.1",
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>