linear-react-components-ui 0.4.75-beta.8 → 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 (125) 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/avatar/avatar.spec.js +190 -0
  22. package/lib/avatar/index.js +6 -2
  23. package/lib/badge/badge.spec.js +127 -0
  24. package/lib/badge/index.js +3 -5
  25. package/lib/buttons/buttons.spec.js +504 -0
  26. package/lib/calendar/calendar.spec.js +171 -0
  27. package/lib/checkbox/checkbox.spec.js +215 -0
  28. package/lib/checkbox/index.js +1 -0
  29. package/lib/dialog/Custom.js +7 -1
  30. package/lib/dialog/base/index.js +18 -6
  31. package/lib/dialog/dialog.spec.js +488 -0
  32. package/lib/dialog/form/index.js +23 -4
  33. package/lib/drawer/Drawer.js +3 -0
  34. package/lib/drawer/Drawer.spec.js +258 -0
  35. package/lib/drawer/Header.js +4 -1
  36. package/lib/drawer/index.js +4 -1
  37. package/lib/dropdown/Popup.js +1 -0
  38. package/lib/dropdown/dropdown.spec.js +168 -0
  39. package/lib/dropdown/withDropdown.js +10 -4
  40. package/lib/fieldset/fieldset.spec.js +329 -0
  41. package/lib/form/Field.js +2 -0
  42. package/lib/form/FieldNumber.js +10 -2
  43. package/lib/form/FieldPeriod.js +100 -0
  44. package/lib/form/form.spec.js +285 -0
  45. package/lib/form/helpers.js +9 -1
  46. package/lib/form/index.js +76 -10
  47. package/lib/form/withFieldHOC.js +2 -0
  48. package/lib/form/withFormSecurity.js +106 -0
  49. package/lib/gridlayout/GridRow.js +1 -1
  50. package/lib/gridlayout/gridLayout.spec.js +169 -0
  51. package/lib/icons/helper.js +16 -0
  52. package/lib/icons/icons.spec.js +86 -0
  53. package/lib/icons/index.js +2 -0
  54. package/lib/inputs/base/InputTextBase.js +15 -5
  55. package/lib/inputs/base/base.spec.js +690 -0
  56. package/lib/inputs/color/color_input.spec.js +174 -0
  57. package/lib/inputs/color/index.js +2 -2
  58. package/lib/inputs/date/date.spec.js +344 -0
  59. package/lib/inputs/date/index.js +7 -6
  60. package/lib/inputs/mask/Cpf.js +9 -9
  61. package/lib/inputs/mask/input_mask.spec.js +590 -0
  62. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  63. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  64. package/lib/inputs/multiSelect/helper.js +18 -0
  65. package/lib/inputs/multiSelect/index.js +343 -0
  66. package/lib/inputs/number/BaseNumber.js +1 -1
  67. package/lib/inputs/number/index.js +7 -5
  68. package/lib/inputs/number/numberfield.spec.js +215 -0
  69. package/lib/inputs/period/Dialog.js +38 -0
  70. package/lib/inputs/period/Dropdown.js +90 -0
  71. package/lib/inputs/period/PeriodList.js +79 -0
  72. package/lib/inputs/period/helper.js +118 -0
  73. package/lib/inputs/period/index.js +490 -0
  74. package/lib/inputs/search/search_input.spec.js +209 -0
  75. package/lib/inputs/select/Dropdown.js +4 -4
  76. package/lib/inputs/select/index.js +26 -3
  77. package/lib/inputs/select/multiple/index.js +9 -7
  78. package/lib/inputs/select/select.spec.js +391 -0
  79. package/lib/inputs/select/simple/index.js +30 -18
  80. package/lib/inputs/text/textfield.spec.js +215 -0
  81. package/lib/inputs/textarea/textarea.spec.js +59 -0
  82. package/lib/internals/withTooltip.js +83 -82
  83. package/lib/labelMessages/index.js +3 -2
  84. package/lib/labelMessages/labelMessages.spec.js +176 -0
  85. package/lib/labels/label.spec.js +162 -0
  86. package/lib/list/Item.js +3 -3
  87. package/lib/list/index.js +21 -10
  88. package/lib/list/list.spec.js +611 -0
  89. package/lib/menus/float/MenuItem.js +25 -8
  90. package/lib/menus/float/float-menu.spec.js +221 -0
  91. package/lib/menus/sidenav/index.js +7 -3
  92. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  93. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  94. package/lib/noPermission/index.js +2 -1
  95. package/lib/panel/panel.spec.js +216 -0
  96. package/lib/popover/index.js +2 -1
  97. package/lib/popover/popover.spec.js +146 -0
  98. package/lib/progress/Bar.js +40 -9
  99. package/lib/progress/index.js +12 -4
  100. package/lib/progress/progress.spec.js +86 -0
  101. package/lib/radio/radio.spec.js +189 -0
  102. package/lib/spinner/SpinnerLoading.js +14 -24
  103. package/lib/spinner/index.js +6 -1
  104. package/lib/spinner/spinner.spec.js +152 -0
  105. package/lib/split/Split.js +10 -12
  106. package/lib/split/split.spec.js +151 -0
  107. package/lib/table/Header.js +3 -1
  108. package/lib/table/Row.js +2 -5
  109. package/lib/table/index.js +1 -4
  110. package/lib/table/table.spec.js +352 -0
  111. package/lib/tabs/DropdownItems.js +84 -0
  112. package/lib/tabs/Menu.js +18 -5
  113. package/lib/tabs/MenuItems.js +7 -7
  114. package/lib/tabs/Panel.js +1 -3
  115. package/lib/tabs/index.js +126 -17
  116. package/lib/tabs/tabs.spec.js +346 -0
  117. package/lib/toolbar/index.js +8 -4
  118. package/lib/toolbar/toolbar.spec.js +394 -0
  119. package/lib/tooltip/index.js +13 -0
  120. package/lib/tooltip/tooltip.spec.js +203 -0
  121. package/lib/treeview/Node.js +55 -32
  122. package/lib/treeview/index.js +30 -3
  123. package/lib/treeview/treeview.spec.js +261 -0
  124. package/package.json +19 -9
  125. package/.DS_Store +0 -0
@@ -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
+ });
@@ -106,6 +106,7 @@ var CheckBox = function CheckBox(props) {
106
106
 
107
107
  var renderInput = function renderInput() {
108
108
  return /*#__PURE__*/_react["default"].createElement("div", getProps(), /*#__PURE__*/_react["default"].createElement("span", {
109
+ "data-testid": "checkbox-container",
109
110
  className: shouldDisable() ? 'disabled' : '',
110
111
  onClick: !shouldDisable() ? function () {
111
112
  return setIsChecked(!isChecked);
@@ -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;