linear-react-components-ui 0.4.75 → 0.4.76-rc.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.
Files changed (128) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +23 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +25 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +77 -43
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +76 -10
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +15 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/color/color_input.spec.js +174 -0
  60. package/lib/inputs/color/index.js +2 -2
  61. package/lib/inputs/date/date.spec.js +344 -0
  62. package/lib/inputs/date/index.js +7 -6
  63. package/lib/inputs/mask/Cpf.js +9 -9
  64. package/lib/inputs/mask/input_mask.spec.js +590 -0
  65. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  66. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  67. package/lib/inputs/multiSelect/helper.js +18 -0
  68. package/lib/inputs/multiSelect/index.js +343 -0
  69. package/lib/inputs/number/BaseNumber.js +1 -1
  70. package/lib/inputs/number/index.js +7 -5
  71. package/lib/inputs/number/numberfield.spec.js +215 -0
  72. package/lib/inputs/period/Dialog.js +38 -0
  73. package/lib/inputs/period/Dropdown.js +90 -0
  74. package/lib/inputs/period/PeriodList.js +79 -0
  75. package/lib/inputs/period/helper.js +118 -0
  76. package/lib/inputs/period/index.js +490 -0
  77. package/lib/inputs/search/search_input.spec.js +209 -0
  78. package/lib/inputs/select/Dropdown.js +4 -4
  79. package/lib/inputs/select/index.js +26 -3
  80. package/lib/inputs/select/multiple/index.js +9 -7
  81. package/lib/inputs/select/select.spec.js +391 -0
  82. package/lib/inputs/select/simple/index.js +30 -18
  83. package/lib/inputs/text/textfield.spec.js +215 -0
  84. package/lib/inputs/textarea/textarea.spec.js +59 -0
  85. package/lib/internals/withTooltip.js +83 -82
  86. package/lib/labelMessages/index.js +3 -2
  87. package/lib/labelMessages/labelMessages.spec.js +176 -0
  88. package/lib/labels/label.spec.js +162 -0
  89. package/lib/list/Item.js +3 -3
  90. package/lib/list/index.js +21 -10
  91. package/lib/list/list.spec.js +611 -0
  92. package/lib/menus/float/MenuItem.js +25 -8
  93. package/lib/menus/float/float-menu.spec.js +221 -0
  94. package/lib/menus/sidenav/index.js +7 -3
  95. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  96. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  97. package/lib/noPermission/index.js +2 -1
  98. package/lib/panel/panel.spec.js +216 -0
  99. package/lib/popover/index.js +2 -1
  100. package/lib/popover/popover.spec.js +146 -0
  101. package/lib/progress/Bar.js +40 -9
  102. package/lib/progress/index.js +12 -4
  103. package/lib/progress/progress.spec.js +86 -0
  104. package/lib/radio/radio.spec.js +189 -0
  105. package/lib/spinner/SpinnerLoading.js +14 -24
  106. package/lib/spinner/index.js +6 -1
  107. package/lib/spinner/spinner.spec.js +152 -0
  108. package/lib/split/Split.js +10 -12
  109. package/lib/split/split.spec.js +151 -0
  110. package/lib/table/Header.js +3 -1
  111. package/lib/table/Row.js +2 -5
  112. package/lib/table/index.js +1 -4
  113. package/lib/table/table.spec.js +352 -0
  114. package/lib/tabs/DropdownItems.js +84 -0
  115. package/lib/tabs/Menu.js +18 -5
  116. package/lib/tabs/MenuItems.js +7 -7
  117. package/lib/tabs/Panel.js +1 -3
  118. package/lib/tabs/index.js +126 -17
  119. package/lib/tabs/tabs.spec.js +346 -0
  120. package/lib/toolbar/index.js +8 -4
  121. package/lib/toolbar/toolbar.spec.js +394 -0
  122. package/lib/tooltip/index.js +13 -0
  123. package/lib/tooltip/tooltip.spec.js +203 -0
  124. package/lib/treeview/Node.js +288 -18
  125. package/lib/treeview/index.js +448 -35
  126. package/lib/treeview/treeview.spec.js +261 -0
  127. package/package.json +19 -9
  128. package/.DS_Store +0 -0
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("babel-polyfill");
10
+
11
+ require("@testing-library/jest-dom");
12
+
13
+ var _moment = _interopRequireDefault(require("moment"));
14
+
15
+ var _ = _interopRequireWildcard(require("."));
16
+
17
+ 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); }
18
+
19
+ 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; }
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+
23
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
24
+
25
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
26
+
27
+ var calendarMockRender = function calendarMockRender(props) {
28
+ return /*#__PURE__*/_react["default"].createElement(_["default"], props);
29
+ };
30
+
31
+ describe('Calendar', function () {
32
+ describe('Default', function () {
33
+ it('should render without errors', function () {
34
+ var _render = (0, _react2.render)(calendarMockRender()),
35
+ container = _render.container;
36
+
37
+ expect(container.firstChild).toBeTruthy();
38
+ expect(container.firstChild).toHaveClass('calendar-component');
39
+ });
40
+ it('should render currentDate month and year', function () {
41
+ var _render2 = (0, _react2.render)(calendarMockRender({
42
+ currentDate: (0, _moment["default"])('2020-01-01')
43
+ })),
44
+ container = _render2.container;
45
+
46
+ expect(container.querySelector('span.monthname')).toHaveTextContent('janeiro 2020');
47
+ });
48
+ it('should render currentDate selected day', function () {
49
+ var _render3 = (0, _react2.render)(calendarMockRender({
50
+ currentDate: (0, _moment["default"])('2020-01-01')
51
+ })),
52
+ container = _render3.container;
53
+
54
+ expect(container.querySelector('.monthday.-selectedday .button-component')).toHaveTextContent('1');
55
+ });
56
+ it('should go to next month', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
57
+ var _render4, container;
58
+
59
+ return regeneratorRuntime.wrap(function _callee$(_context) {
60
+ while (1) {
61
+ switch (_context.prev = _context.next) {
62
+ case 0:
63
+ _render4 = (0, _react2.render)(calendarMockRender({
64
+ currentDate: (0, _moment["default"])('2020-01-01')
65
+ })), container = _render4.container;
66
+
67
+ _react2.fireEvent.click(container.querySelectorAll('.button-component.navbutton')[1]);
68
+
69
+ _context.next = 4;
70
+ return (0, _react2.waitFor)(function () {
71
+ return expect(container.querySelector('span.monthname')).toHaveTextContent('fevereiro 2020');
72
+ }, {
73
+ timeout: 3000
74
+ });
75
+
76
+ case 4:
77
+ case "end":
78
+ return _context.stop();
79
+ }
80
+ }
81
+ }, _callee);
82
+ })));
83
+ it('should select another day', function () {
84
+ var _render5 = (0, _react2.render)(calendarMockRender({
85
+ currentDate: (0, _moment["default"])('2020-01-01')
86
+ })),
87
+ container = _render5.container;
88
+
89
+ _react2.fireEvent.click(container.querySelectorAll('.calendarmonth .monthweek .monthday button')[6]);
90
+
91
+ expect(container.querySelector('.monthday.-selectedday .button-component')).toHaveTextContent('4');
92
+ });
93
+ it('should fire onChange callback', function () {
94
+ var mockCallback = jest.fn();
95
+
96
+ var _render6 = (0, _react2.render)(calendarMockRender({
97
+ currentDate: (0, _moment["default"])('2020-01-01'),
98
+ onDateChange: mockCallback
99
+ })),
100
+ container = _render6.container;
101
+
102
+ _react2.fireEvent.click(container.querySelectorAll('.calendarmonth .monthweek .monthday button')[6]);
103
+
104
+ var dateReceived = mockCallback.mock.calls[0][0];
105
+ var dateToBe = (0, _moment["default"])('2020-01-04');
106
+ expect(container.querySelector('.monthday.-selectedday .button-component')).toHaveTextContent('4');
107
+ expect(mockCallback).toHaveBeenCalled();
108
+ expect(dateReceived.format()).toBe(dateToBe.format());
109
+ });
110
+ it('should apply drawGridLines', function () {
111
+ var _render7 = (0, _react2.render)(calendarMockRender({
112
+ currentDate: (0, _moment["default"])('2020-01-01'),
113
+ drawGridLines: true
114
+ })),
115
+ container = _render7.container;
116
+
117
+ expect(container.querySelector('.calendar-component')).toHaveClass('-draw-grid-lines');
118
+ });
119
+ it('should apply unpadding', function () {
120
+ var _render8 = (0, _react2.render)(calendarMockRender({
121
+ currentDate: (0, _moment["default"])('2020-01-01'),
122
+ unpadding: true
123
+ })),
124
+ container = _render8.container;
125
+
126
+ expect(container.querySelector('.calendar-component')).toHaveClass('-unpadding');
127
+ });
128
+ });
129
+ describe('Custom', function () {
130
+ it('should apply danger style', function () {
131
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.DangerCalendar, null)),
132
+ container = _render9.container;
133
+
134
+ expect(container.firstChild).toBeTruthy();
135
+ expect(container.firstChild).toHaveClass('calendar-component');
136
+ expect(container.firstChild).toHaveClass('-danger');
137
+ });
138
+ it('should apply success style', function () {
139
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.SuccessCalendar, null)),
140
+ container = _render10.container;
141
+
142
+ expect(container.firstChild).toBeTruthy();
143
+ expect(container.firstChild).toHaveClass('calendar-component');
144
+ expect(container.firstChild).toHaveClass('-success');
145
+ });
146
+ it('should apply primary style', function () {
147
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.PrimaryCalendar, null)),
148
+ container = _render11.container;
149
+
150
+ expect(container.firstChild).toBeTruthy();
151
+ expect(container.firstChild).toHaveClass('calendar-component');
152
+ expect(container.firstChild).toHaveClass('-primary');
153
+ });
154
+ it('should apply warning style', function () {
155
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.WarningCalendar, null)),
156
+ container = _render12.container;
157
+
158
+ expect(container.firstChild).toBeTruthy();
159
+ expect(container.firstChild).toHaveClass('calendar-component');
160
+ expect(container.firstChild).toHaveClass('-warning');
161
+ });
162
+ it('should apply info style', function () {
163
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.InfoCalendar, null)),
164
+ container = _render13.container;
165
+
166
+ expect(container.firstChild).toBeTruthy();
167
+ expect(container.firstChild).toHaveClass('calendar-component');
168
+ expect(container.firstChild).toHaveClass('-info');
169
+ });
170
+ });
171
+ });
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _withTooltip = _interopRequireDefault(require("../internals/withTooltip"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var Label = function Label(_ref) {
17
+ var label = _ref.label,
18
+ targetRef = _ref.targetRef;
19
+ return /*#__PURE__*/_react["default"].createElement("span", {
20
+ className: "checkbox-description",
21
+ ref: function ref(r) {
22
+ return targetRef && targetRef(r);
23
+ }
24
+ }, label);
25
+ };
26
+
27
+ Label.propTypes = {
28
+ label: _propTypes["default"].string.isRequired,
29
+ targetRef: _propTypes["default"].func
30
+ };
31
+ Label.defaultProps = {
32
+ targetRef: undefined
33
+ };
34
+
35
+ var _default = (0, _withTooltip["default"])(Label);
36
+
37
+ exports["default"] = _default;
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = require("@testing-library/react");
6
+
7
+ var _react2 = _interopRequireDefault(require("react"));
8
+
9
+ require("babel-polyfill");
10
+
11
+ var _checkbox = _interopRequireDefault(require("../checkbox"));
12
+
13
+ var _storageMock = _interopRequireWildcard(require("../../../config/jest/storageMock"));
14
+
15
+ var _gridlayout = require("../gridlayout");
16
+
17
+ 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); }
18
+
19
+ 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; }
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+
23
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
24
+
25
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
26
+
27
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
+
29
+ var CheckBoxTest = function CheckBoxTest(props) {
30
+ return /*#__PURE__*/_react2["default"].createElement(_gridlayout.GridRow, {
31
+ template: "columns",
32
+ style: {
33
+ marginBottom: 20
34
+ }
35
+ }, /*#__PURE__*/_react2["default"].createElement(_checkbox["default"], _extends({}, props, {
36
+ name: "test",
37
+ value: "1",
38
+ label: "testLabel",
39
+ id: "1",
40
+ hint: "test",
41
+ gridLayout: "6 6 6 6"
42
+ })));
43
+ };
44
+
45
+ describe('CheckBox', function () {
46
+ describe('Default', function () {
47
+ it('should render without errors', function () {
48
+ var _render = (0, _react.render)(CheckBoxTest()),
49
+ container = _render.container;
50
+
51
+ expect(container.firstChild).toBeTruthy();
52
+ });
53
+ it('should hint', function () {
54
+ var _render2 = (0, _react.render)(CheckBoxTest()),
55
+ container = _render2.container;
56
+
57
+ expect(container.firstChild).toContainElement(container.querySelector('.checkbox-hint'));
58
+ });
59
+ it('should label text match with prop label', function () {
60
+ var _render3 = (0, _react.render)(CheckBoxTest()),
61
+ container = _render3.container;
62
+
63
+ expect(container.querySelector('.checkbox-description')).toHaveTextContent('testLabel');
64
+ });
65
+ it('should checkbox have id ', function () {
66
+ var _render4 = (0, _react.render)(CheckBoxTest()),
67
+ container = _render4.container;
68
+
69
+ expect(container.querySelector('.checkbox-component').id).toBe('1');
70
+ });
71
+ it('should checkbox have name test', function () {
72
+ var _render5 = (0, _react.render)(CheckBoxTest()),
73
+ container = _render5.container;
74
+
75
+ expect(container.querySelector('.checkbox-component').name).toBe('test');
76
+ });
77
+ it('should checkbox have value', function () {
78
+ var _render6 = (0, _react.render)(CheckBoxTest()),
79
+ container = _render6.container;
80
+
81
+ expect(container.querySelector('.checkbox-component').value).toBe('1');
82
+ });
83
+ it('should change checked', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
84
+ var _render7, container;
85
+
86
+ return regeneratorRuntime.wrap(function _callee$(_context) {
87
+ while (1) {
88
+ switch (_context.prev = _context.next) {
89
+ case 0:
90
+ _render7 = (0, _react.render)(CheckBoxTest()), container = _render7.container;
91
+ expect(container.querySelector('.checkbox-component').checked).toEqual(false);
92
+
93
+ _react.fireEvent.click(container.querySelector('.checkbox-component'));
94
+
95
+ expect(container.querySelector('.checkbox-component').checked).toEqual(true);
96
+
97
+ case 4:
98
+ case "end":
99
+ return _context.stop();
100
+ }
101
+ }
102
+ }, _callee);
103
+ })));
104
+ it('should disable', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
105
+ var _render8, container;
106
+
107
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
108
+ while (1) {
109
+ switch (_context2.prev = _context2.next) {
110
+ case 0:
111
+ _render8 = (0, _react.render)(CheckBoxTest({
112
+ disabled: true
113
+ })), container = _render8.container;
114
+ expect(container.querySelector('.checkbox-component').checked).toEqual(false);
115
+
116
+ _react.fireEvent.click(container.querySelector('.checkbox-component'));
117
+
118
+ expect(container.querySelector('.checkbox-component').checked).toEqual(false);
119
+
120
+ case 4:
121
+ case "end":
122
+ return _context2.stop();
123
+ }
124
+ }
125
+ }, _callee2);
126
+ })));
127
+ it('should required', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
128
+ var _render9, container;
129
+
130
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
131
+ while (1) {
132
+ switch (_context3.prev = _context3.next) {
133
+ case 0:
134
+ _render9 = (0, _react.render)(CheckBoxTest({
135
+ required: true
136
+ })), container = _render9.container;
137
+ expect(container.querySelector('.checkbox-component').required).toEqual(true);
138
+
139
+ case 2:
140
+ case "end":
141
+ return _context3.stop();
142
+ }
143
+ }
144
+ }, _callee3);
145
+ })));
146
+ it('should autoFocus', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
147
+ var _render10, container;
148
+
149
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
150
+ while (1) {
151
+ switch (_context4.prev = _context4.next) {
152
+ case 0:
153
+ _render10 = (0, _react.render)(CheckBoxTest({
154
+ autoFocus: true
155
+ })), container = _render10.container;
156
+ container.querySelector('.checkbox-component').focus();
157
+ expect(container.querySelector('.checkbox-component')).toHaveFocus();
158
+
159
+ case 3:
160
+ case "end":
161
+ return _context4.stop();
162
+ }
163
+ }
164
+ }, _callee4);
165
+ })));
166
+ });
167
+ describe('Permission', function () {
168
+ var defineStorage = function defineStorage() {
169
+ Object.defineProperty(window, 'sessionStorage', {
170
+ value: (0, _storageMock["default"])()
171
+ });
172
+ };
173
+
174
+ it('should check permission', function () {
175
+ defineStorage();
176
+
177
+ var _render11 = (0, _react.render)( /*#__PURE__*/_react2["default"].createElement(_checkbox["default"], {
178
+ permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('disabled')
179
+ })),
180
+ container = _render11.container;
181
+
182
+ expect(container.firstChild).not.toHaveClass('disabled');
183
+ expect(container.firstChild).toBeTruthy();
184
+ });
185
+ it('should check permission, be unavaible and onDenied is disabled', function () {
186
+ defineStorage();
187
+ var mockOnClick = jest.fn();
188
+
189
+ var mockCheckbox = /*#__PURE__*/_react2["default"].createElement(_checkbox["default"], {
190
+ onClick: mockOnClick,
191
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('disabled')
192
+ });
193
+
194
+ var _render12 = (0, _react.render)(mockCheckbox),
195
+ getByTestId = _render12.getByTestId,
196
+ container = _render12.container;
197
+
198
+ _react.fireEvent.click(container.firstChild);
199
+
200
+ expect(getByTestId('checkbox-container')).toHaveClass('disabled');
201
+ expect(container.querySelector('.checkbox-component')).toBeDisabled();
202
+ expect(mockOnClick).toBeCalledTimes(0);
203
+ });
204
+ it('should check permission, be unavaible and onDenied is unvisible', function () {
205
+ defineStorage();
206
+
207
+ var _render13 = (0, _react.render)( /*#__PURE__*/_react2["default"].createElement(_checkbox["default"], {
208
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('unvisible')
209
+ })),
210
+ container = _render13.container;
211
+
212
+ expect(container.firstChild).not.toBeTruthy();
213
+ });
214
+ });
215
+ });
@@ -13,6 +13,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _gridlayout = _interopRequireDefault(require("../gridlayout"));
15
15
 
16
+ var _Label = _interopRequireDefault(require("./Label"));
17
+
16
18
  require("../assets/styles/checkbox.scss");
17
19
 
18
20
  var _permissionValidations = require("../permissionValidations");
@@ -52,7 +54,10 @@ var CheckBox = function CheckBox(props) {
52
54
  id = props.id,
53
55
  gridLayout = props.gridLayout,
54
56
  checked = props.checked,
55
- permissionAttr = props.permissionAttr;
57
+ permissionAttr = props.permissionAttr,
58
+ tooltip = props.tooltip,
59
+ tooltipPosition = props.tooltipPosition,
60
+ tooltipWidth = props.tooltipWidth;
56
61
 
57
62
  var _useState = (0, _react.useState)(checked),
58
63
  _useState2 = _slicedToArray(_useState, 2),
@@ -101,6 +106,7 @@ var CheckBox = function CheckBox(props) {
101
106
 
102
107
  var renderInput = function renderInput() {
103
108
  return /*#__PURE__*/_react["default"].createElement("div", getProps(), /*#__PURE__*/_react["default"].createElement("span", {
109
+ "data-testid": "checkbox-container",
104
110
  className: shouldDisable() ? 'disabled' : '',
105
111
  onClick: !shouldDisable() ? function () {
106
112
  return setIsChecked(!isChecked);
@@ -121,9 +127,12 @@ var CheckBox = function CheckBox(props) {
121
127
  value: value,
122
128
  id: id,
123
129
  onChange: function onChange() {}
124
- }), /*#__PURE__*/_react["default"].createElement("span", null), label && /*#__PURE__*/_react["default"].createElement("span", {
125
- className: "checkbox-description"
126
- }, label)), hint && /*#__PURE__*/_react["default"].createElement("div", {
130
+ }), /*#__PURE__*/_react["default"].createElement("span", null), label && /*#__PURE__*/_react["default"].createElement(_Label["default"], {
131
+ label: label,
132
+ tooltip: tooltip,
133
+ tooltipWidth: tooltipWidth,
134
+ tooltipPosition: tooltipPosition
135
+ })), hint && /*#__PURE__*/_react["default"].createElement("div", {
127
136
  className: "checkbox-hint"
128
137
  }, hint));
129
138
  };
@@ -148,7 +157,10 @@ CheckBox.propTypes = {
148
157
  autofocus: _propTypes["default"].bool,
149
158
  hint: _propTypes["default"].string,
150
159
  gridLayout: _propTypes["default"].string,
151
- permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
160
+ permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
161
+ tooltip: _propTypes["default"].string,
162
+ tooltipPosition: _propTypes["default"].string,
163
+ tooltipWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
152
164
  };
153
165
  CheckBox.defaultProps = {
154
166
  label: '',
@@ -163,7 +175,10 @@ CheckBox.defaultProps = {
163
175
  hint: undefined,
164
176
  id: undefined,
165
177
  gridLayout: undefined,
166
- permissionAttr: undefined
178
+ permissionAttr: undefined,
179
+ tooltip: '',
180
+ tooltipPosition: 'top',
181
+ tooltipWidth: 'auto'
167
182
  };
168
183
  var _default = CheckBox;
169
184
  exports["default"] = _default;
@@ -7,6 +7,8 @@ exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _uuid = _interopRequireDefault(require("uuid"));
11
+
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
12
14
  var _base = _interopRequireDefault(require("./base"));
@@ -48,7 +50,11 @@ var Custom = function Custom(props) {
48
50
  className: "text"
49
51
  }, props.text)), /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement(_buttons.ButtonContainer, {
50
52
  position: "right"
51
- }, props.buttons)));
53
+ }, props.buttons.map(function (button) {
54
+ return /*#__PURE__*/_react["default"].cloneElement(button, {
55
+ key: "button-".concat(_uuid["default"].v1())
56
+ });
57
+ }))));
52
58
  };
53
59
 
54
60
  Custom.propTypes = {
@@ -31,9 +31,11 @@ var BaseDialog = function BaseDialog(props) {
31
31
  handlerClose = props.handlerClose,
32
32
  closeOnOutsideClick = props.closeOnOutsideClick,
33
33
  wrapperClassName = props.wrapperClassName,
34
- children = props.children;
34
+ children = props.children,
35
+ zIndex = props.zIndex;
35
36
  var dialogEl = (0, _react.useRef)(document.createElement('div'));
36
37
  dialogEl.current.className = 'dialog';
38
+ dialogEl.current.dataset.testid = 'dialog-component';
37
39
  var modalContainerEl = (0, _react.useRef)(document.createElement('div'));
38
40
  var overlayEl = (0, _react.useRef)(null);
39
41
  var wrapperEl = (0, _react.useRef)(null);
@@ -41,30 +43,36 @@ var BaseDialog = function BaseDialog(props) {
41
43
  if (overlay && overlayEl.current === null) {
42
44
  overlayEl.current = document.createElement('div');
43
45
  overlayEl.current.className = 'modal-overlay';
46
+ overlayEl.current.dataset.testid = 'modal-overlay';
44
47
  body.appendChild(overlayEl.current);
45
48
  }
46
49
 
47
50
  var handleClickOutside = function handleClickOutside(event) {
48
51
  var target = event.target;
52
+ var dialogAlert = document.getElementsByClassName('dialog-alert-wrapper');
49
53
 
50
54
  if (wrapperEl !== null && wrapperEl.current !== null && target !== wrapperEl.current && !wrapperEl.current.contains(target)) {
55
+ if (dialogAlert.length > 0 && dialogAlert[dialogAlert.length - 1].contains(target) || target.className !== 'button-component') return;
51
56
  handlerClose();
52
57
  }
53
58
  };
54
59
 
55
60
  var handleCloseOnEsc = function handleCloseOnEsc(event) {
56
- if (event.keyCode === 27 || event.key === 'ESC') handlerClose();
61
+ if (event.keyCode === 27 || event.key === 'ESC') {
62
+ handlerClose();
63
+ }
57
64
  };
58
65
 
59
66
  var setModalContainer = function setModalContainer() {
60
67
  modalContainerEl.current.className = 'modalcontainer';
68
+ if (zIndex) modalContainerEl.current.style.zIndex = zIndex;
61
69
  body.appendChild(modalContainerEl.current);
62
70
  modalContainerEl.current.appendChild(dialogEl.current);
63
71
  };
64
72
 
65
73
  var removeModalContainer = function removeModalContainer() {
66
- var modalComponent = document.getElementsByClassName('modalcontainer')[0];
67
- document.body.removeChild(modalComponent);
74
+ var modalComponent = document.getElementsByClassName('modalcontainer');
75
+ document.body.removeChild(modalComponent[modalComponent.length - 1]);
68
76
  };
69
77
 
70
78
  var removeOverlay = function removeOverlay() {
@@ -87,6 +95,7 @@ var BaseDialog = function BaseDialog(props) {
87
95
  var renderModal = function renderModal() {
88
96
  return /*#__PURE__*/_react["default"].createElement("div", {
89
97
  className: wrapperClassName,
98
+ "data-testid": "dialog-wrapper",
90
99
  style: (0, _style["default"])(props),
91
100
  ref: function ref(r) {
92
101
  wrapperEl.current = r;
@@ -105,15 +114,18 @@ BaseDialog.propTypes = {
105
114
  closeOnEsc: _propTypes["default"].bool,
106
115
  closeOnOutsideClick: _propTypes["default"].bool,
107
116
  overlay: _propTypes["default"].bool,
117
+ changedData: _propTypes["default"].bool,
108
118
  children: _propTypes["default"].any.isRequired,
109
- textAlign: _propTypes["default"].string
119
+ textAlign: _propTypes["default"].string,
120
+ zIndex: _propTypes["default"].string
110
121
  };
111
122
  BaseDialog.defaultProps = {
112
123
  closeOnEsc: false,
113
124
  closeOnOutsideClick: false,
114
125
  overlay: true,
115
126
  handlerClose: null,
116
- textAlign: 'justify'
127
+ textAlign: 'justify',
128
+ zIndex: null
117
129
  };
118
130
  var _default = BaseDialog;
119
131
  exports["default"] = _default;