linear-react-components-ui 0.4.75 → 0.4.76-beta.11

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 (131) 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 +33 -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 +28 -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 +79 -44
  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 +209 -222
  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 +24 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/base/helpers.js +19 -3
  60. package/lib/inputs/color/color_input.spec.js +174 -0
  61. package/lib/inputs/color/index.js +2 -2
  62. package/lib/inputs/date/Dropdown.js +3 -3
  63. package/lib/inputs/date/date.spec.js +344 -0
  64. package/lib/inputs/date/helpers.js +36 -0
  65. package/lib/inputs/date/index.js +11 -9
  66. package/lib/inputs/mask/Cpf.js +9 -9
  67. package/lib/inputs/mask/input_mask.spec.js +590 -0
  68. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  69. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  70. package/lib/inputs/multiSelect/helper.js +18 -0
  71. package/lib/inputs/multiSelect/index.js +343 -0
  72. package/lib/inputs/number/BaseNumber.js +1 -1
  73. package/lib/inputs/number/index.js +7 -5
  74. package/lib/inputs/number/numberfield.spec.js +215 -0
  75. package/lib/inputs/period/Dialog.js +38 -0
  76. package/lib/inputs/period/Dropdown.js +90 -0
  77. package/lib/inputs/period/PeriodList.js +79 -0
  78. package/lib/inputs/period/helper.js +118 -0
  79. package/lib/inputs/period/index.js +490 -0
  80. package/lib/inputs/search/search_input.spec.js +209 -0
  81. package/lib/inputs/select/Dropdown.js +4 -4
  82. package/lib/inputs/select/index.js +26 -3
  83. package/lib/inputs/select/multiple/index.js +9 -7
  84. package/lib/inputs/select/select.spec.js +391 -0
  85. package/lib/inputs/select/simple/index.js +30 -18
  86. package/lib/inputs/text/textfield.spec.js +215 -0
  87. package/lib/inputs/textarea/textarea.spec.js +59 -0
  88. package/lib/internals/withTooltip.js +86 -82
  89. package/lib/labelMessages/index.js +3 -2
  90. package/lib/labelMessages/labelMessages.spec.js +176 -0
  91. package/lib/labels/label.spec.js +162 -0
  92. package/lib/list/Item.js +3 -3
  93. package/lib/list/index.js +21 -10
  94. package/lib/list/list.spec.js +611 -0
  95. package/lib/menus/float/MenuItem.js +25 -8
  96. package/lib/menus/float/float-menu.spec.js +221 -0
  97. package/lib/menus/sidenav/index.js +7 -3
  98. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  99. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  100. package/lib/noPermission/index.js +2 -1
  101. package/lib/panel/panel.spec.js +216 -0
  102. package/lib/popover/index.js +2 -1
  103. package/lib/popover/popover.spec.js +146 -0
  104. package/lib/progress/Bar.js +40 -9
  105. package/lib/progress/index.js +12 -4
  106. package/lib/progress/progress.spec.js +86 -0
  107. package/lib/radio/radio.spec.js +189 -0
  108. package/lib/spinner/SpinnerLoading.js +14 -24
  109. package/lib/spinner/index.js +6 -1
  110. package/lib/spinner/spinner.spec.js +152 -0
  111. package/lib/split/Split.js +10 -12
  112. package/lib/split/split.spec.js +151 -0
  113. package/lib/table/Header.js +3 -1
  114. package/lib/table/Row.js +2 -5
  115. package/lib/table/index.js +1 -4
  116. package/lib/table/table.spec.js +352 -0
  117. package/lib/tabs/DropdownItems.js +84 -0
  118. package/lib/tabs/Menu.js +18 -5
  119. package/lib/tabs/MenuItems.js +7 -7
  120. package/lib/tabs/Panel.js +1 -3
  121. package/lib/tabs/index.js +151 -20
  122. package/lib/tabs/tabs.spec.js +349 -0
  123. package/lib/toolbar/index.js +8 -4
  124. package/lib/toolbar/toolbar.spec.js +394 -0
  125. package/lib/tooltip/index.js +20 -6
  126. package/lib/tooltip/tooltip.spec.js +203 -0
  127. package/lib/treeview/Node.js +347 -48
  128. package/lib/treeview/index.js +456 -35
  129. package/lib/treeview/treeview.spec.js +261 -0
  130. package/package.json +19 -9
  131. package/.DS_Store +0 -0
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+
5
+ var _react2 = _interopRequireDefault(require("react"));
6
+
7
+ require("@testing-library/jest-dom");
8
+
9
+ require("babel-polyfill");
10
+
11
+ var _ = _interopRequireDefault(require("."));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+
15
+ 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); } }
16
+
17
+ 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); }); }; }
18
+
19
+ 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); }
20
+
21
+ var dataMock = {
22
+ id: 1,
23
+ titulo: 'SG Linear',
24
+ codigo: 'SG_Linear',
25
+ permissoes: [{
26
+ codigo: 'ACESSO'
27
+ }, {
28
+ codigo: 'GRAVAR'
29
+ }],
30
+ itens: [{
31
+ id: 2,
32
+ titulo: 'Segurança',
33
+ codigo: 'seguranca',
34
+ permissoes: [{
35
+ codigo: 'ACESSO'
36
+ }, {
37
+ codigo: 'GRAVAR'
38
+ }],
39
+ itens: [{
40
+ id: 4,
41
+ titulo: 'Perfis',
42
+ codigo: 'perfis',
43
+ itens: [{
44
+ titulo: 'Editar',
45
+ codigo: 'Editar',
46
+ itens: [{
47
+ titulo: 'Editar permissão ERP',
48
+ codigo: 'Editar permissão ERP'
49
+ }]
50
+ }]
51
+ }]
52
+ }, {
53
+ id: 3,
54
+ titulo: 'Cadastros',
55
+ codigo: 'cadastros',
56
+ permissoes: [{
57
+ codigo: 'ACESSO'
58
+ }, {
59
+ codigo: 'GRAVAR'
60
+ }],
61
+ itens: [{
62
+ id: 5,
63
+ titulo: 'Empresas',
64
+ codigo: 'empresas'
65
+ }]
66
+ }]
67
+ };
68
+
69
+ var treeviewRenderMock = function treeviewRenderMock(props) {
70
+ return /*#__PURE__*/_react2["default"].createElement(_["default"], _extends({
71
+ data: dataMock,
72
+ valuePropName: "id",
73
+ labelPropName: "titulo",
74
+ parentPropName: "0"
75
+ }, props));
76
+ };
77
+
78
+ describe('Treeview', function () {
79
+ describe('Default', function () {
80
+ it('should render', function () {
81
+ var _render = (0, _react.render)(treeviewRenderMock()),
82
+ container = _render.container;
83
+
84
+ expect(container.firstChild).toBeTruthy();
85
+ });
86
+ it('should have start node visible', function () {
87
+ var _render2 = (0, _react.render)(treeviewRenderMock()),
88
+ queryByText = _render2.queryByText;
89
+
90
+ expect(queryByText(dataMock.titulo)).toBeTruthy();
91
+ });
92
+ it('should not have second node visible', function () {
93
+ var _render3 = (0, _react.render)(treeviewRenderMock()),
94
+ queryByText = _render3.queryByText;
95
+
96
+ expect(queryByText(dataMock.itens[0].titulo)).not.toBeTruthy();
97
+ });
98
+ it('should open on click', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
99
+ var _render4, queryByText, getByRole;
100
+
101
+ return regeneratorRuntime.wrap(function _callee$(_context) {
102
+ while (1) {
103
+ switch (_context.prev = _context.next) {
104
+ case 0:
105
+ _render4 = (0, _react.render)(treeviewRenderMock()), queryByText = _render4.queryByText, getByRole = _render4.getByRole;
106
+
107
+ _react.fireEvent.click(getByRole('button'));
108
+
109
+ _context.next = 4;
110
+ return (0, _react.waitFor)(function () {
111
+ return queryByText(dataMock.itens[0].titulo);
112
+ });
113
+
114
+ case 4:
115
+ expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
116
+ expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
117
+
118
+ case 6:
119
+ case "end":
120
+ return _context.stop();
121
+ }
122
+ }
123
+ }, _callee);
124
+ })));
125
+ it('should open all layers', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
126
+ var _render5, queryByText, getByRole, queryAllByRole;
127
+
128
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
129
+ while (1) {
130
+ switch (_context2.prev = _context2.next) {
131
+ case 0:
132
+ _render5 = (0, _react.render)(treeviewRenderMock()), queryByText = _render5.queryByText, getByRole = _render5.getByRole, queryAllByRole = _render5.queryAllByRole;
133
+
134
+ _react.fireEvent.click(getByRole('button'));
135
+
136
+ _context2.next = 4;
137
+ return (0, _react.waitFor)(function () {
138
+ return queryByText(dataMock.itens[0].titulo);
139
+ });
140
+
141
+ case 4:
142
+ _react.fireEvent.click(queryAllByRole('button')[1]);
143
+
144
+ _context2.next = 7;
145
+ return (0, _react.waitFor)(function () {
146
+ return queryByText(dataMock.itens[0].itens[0].titulo);
147
+ });
148
+
149
+ case 7:
150
+ _react.fireEvent.click(queryAllByRole('button')[2]);
151
+
152
+ _context2.next = 10;
153
+ return (0, _react.waitFor)(function () {
154
+ return queryByText(dataMock.itens[0].itens[0].itens[0].titulo);
155
+ });
156
+
157
+ case 10:
158
+ _react.fireEvent.click(queryAllByRole('button')[3]);
159
+
160
+ _context2.next = 13;
161
+ return (0, _react.waitFor)(function () {
162
+ return queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo);
163
+ });
164
+
165
+ case 13:
166
+ _react.fireEvent.click(queryAllByRole('button')[4]);
167
+
168
+ _context2.next = 16;
169
+ return (0, _react.waitFor)(function () {
170
+ return queryByText(dataMock.itens[1].itens[0].titulo);
171
+ });
172
+
173
+ case 16:
174
+ expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
175
+ expect(queryByText(dataMock.itens[0].itens[0].titulo)).toBeTruthy();
176
+ expect(queryByText(dataMock.itens[0].itens[0].itens[0].titulo)).toBeTruthy();
177
+ expect(queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo)).toBeTruthy();
178
+ expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
179
+ expect(queryByText(dataMock.itens[1].itens[0].titulo)).toBeTruthy();
180
+
181
+ case 22:
182
+ case "end":
183
+ return _context2.stop();
184
+ }
185
+ }
186
+ }, _callee2);
187
+ })));
188
+ it('should render checkbox', function () {
189
+ var _render6 = (0, _react.render)(treeviewRenderMock({
190
+ showCheckBox: true
191
+ })),
192
+ container = _render6.container;
193
+
194
+ expect(container.querySelector('.checkbox-component')).toBeTruthy();
195
+ });
196
+ it('should call onSelectedIdsChange callback', function () {
197
+ var mockCallback = jest.fn(function (x) {
198
+ return x;
199
+ });
200
+
201
+ var _render7 = (0, _react.render)(treeviewRenderMock({
202
+ showCheckBox: true,
203
+ onSelectedIdsChange: mockCallback
204
+ })),
205
+ container = _render7.container;
206
+
207
+ _react.fireEvent.click(container.querySelector('.checkbox-component'));
208
+
209
+ expect(mockCallback.mock.calls.length).toBe(1);
210
+ expect(mockCallback.mock.calls[0][0]).toStrictEqual([1]);
211
+ });
212
+ it('should control checkbox by selectedIds', function () {
213
+ var _render8 = (0, _react.render)(treeviewRenderMock({
214
+ showCheckBox: true,
215
+ selectedIds: [1]
216
+ })),
217
+ container = _render8.container;
218
+
219
+ expect(container.querySelector('input.checkbox-component')).toBeChecked();
220
+ });
221
+ it('should start checkbox unchecked', function () {
222
+ var _render9 = (0, _react.render)(treeviewRenderMock({
223
+ showCheckBox: true
224
+ })),
225
+ container = _render9.container;
226
+
227
+ expect(container.querySelector('input.checkbox-component')).not.toBeChecked();
228
+ });
229
+ it('should start nodes open', function () {
230
+ var _render10 = (0, _react.render)(treeviewRenderMock({
231
+ startNodesOpened: true
232
+ })),
233
+ queryByText = _render10.queryByText;
234
+
235
+ expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
236
+ expect(queryByText(dataMock.itens[0].itens[0].titulo)).toBeTruthy();
237
+ expect(queryByText(dataMock.itens[0].itens[0].itens[0].titulo)).toBeTruthy();
238
+ expect(queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo)).toBeTruthy();
239
+ expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
240
+ expect(queryByText(dataMock.itens[1].itens[0].titulo)).toBeTruthy();
241
+ });
242
+ it('should apply customClass', function () {
243
+ var _render11 = (0, _react.render)(treeviewRenderMock({
244
+ customClass: 'customClass'
245
+ })),
246
+ container = _render11.container;
247
+
248
+ expect(container.firstChild).toHaveClass('customClass');
249
+ });
250
+ it('should apply style', function () {
251
+ var _render12 = (0, _react.render)(treeviewRenderMock({
252
+ styleForContainer: {
253
+ backgroundColor: '#000'
254
+ }
255
+ })),
256
+ container = _render12.container;
257
+
258
+ expect(container.querySelector('ul')).toHaveStyle('background-color: #000');
259
+ });
260
+ });
261
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "0.4.75",
3
+ "version": "0.4.76-beta.11",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -11,15 +11,19 @@
11
11
  "check:js": "./node_modules/.bin/eslint ./src/* --ext .js, --ext .jsx",
12
12
  "deploy:heroku": "npm run demo:prod && cd demo && git commit -am 'Deploy' && git push heroku master",
13
13
  "publish:npm": "npm run lib && npm publish",
14
- "prepare": "husky install"
14
+ "publish:npm:beta": "npm run lib && npm publish --tag beta",
15
+ "prepare": "husky install",
16
+ "test": "jest --env=jsdom",
17
+ "test:watch": "jest --watchAll --env=jsdom",
18
+ "test:coverage": "jest --coverage --colors --env=jsdom"
15
19
  },
16
20
  "keywords": [],
17
21
  "license": "MIT",
18
22
  "peerDependencies": {
19
- "react": "^16.6.0",
20
- "react-dom": "^16.6.0",
21
- "react-router-dom": "^4.2.2",
22
- "react-transition-group": "^2.2.1"
23
+ "react": "^17.0.2",
24
+ "react-dom": "^17.0.2",
25
+ "react-router-dom": "^5.2.0",
26
+ "react-transition-group": "^4.4.2"
23
27
  },
24
28
  "devDependencies": {
25
29
  "@babel/cli": "^7.5.5",
@@ -28,8 +32,12 @@
28
32
  "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.36",
29
33
  "@babel/preset-env": "^7.0.0-beta.36",
30
34
  "@babel/preset-react": "^7.0.0-beta.36",
35
+ "@testing-library/jest-dom": "^5.14.1",
36
+ "@testing-library/react": "^12.0.0",
31
37
  "babel-eslint": "^7.2.3",
38
+ "babel-jest": "^27.0.5",
32
39
  "babel-loader": "^8.0.0-beta.0",
40
+ "babel-polyfill": "^6.26.0",
33
41
  "css-loader": "^0.28.8",
34
42
  "eslint": "4.18.0",
35
43
  "eslint-config-airbnb": "16.1.0",
@@ -40,6 +48,8 @@
40
48
  "file-loader": "^1.1.6",
41
49
  "html-webpack-plugin": "^2.30.1",
42
50
  "husky": "^6.0.0",
51
+ "identity-obj-proxy": "^3.0.0",
52
+ "jest": "^27.0.5",
43
53
  "react": "^16.12.0",
44
54
  "react-dom": "^16.12.0",
45
55
  "react-router-dom": "^5.1.2",
@@ -56,11 +66,11 @@
56
66
  },
57
67
  "dependencies": {
58
68
  "attach-dom-events": "^1.0.0",
59
- "history": "^4.10.1",
69
+ "history": "^5.0.0",
60
70
  "imask": "^3.1.1",
61
71
  "init": "^0.1.2",
62
- "lodash": "^4.17.15",
63
- "moment": "^2.24.0",
72
+ "lodash": "^4.17.21",
73
+ "moment": "^2.29.1",
64
74
  "node-sass": "^4.13.0",
65
75
  "prop-types": "^15.7.2",
66
76
  "react-syntax-highlighter": "^6.1.1",
package/.DS_Store DELETED
Binary file