linear-react-components-ui 0.4.77-beta.27 → 0.4.77-beta.28

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 (246) hide show
  1. package/.eslintrc.json +3 -76
  2. package/.husky/pre-commit +4 -0
  3. package/.vscode/settings.json +2 -2
  4. package/jest.config.js +3 -3
  5. package/lib/alerts/AlertContainer.js +19 -14
  6. package/lib/alerts/AlertProvider.js +9 -4
  7. package/lib/alerts/BaseAlert.js +8 -5
  8. package/lib/alerts/Message.js +40 -31
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/alerts/helpers.js +5 -2
  11. package/lib/alerts/withAlert.js +2 -2
  12. package/lib/assets/styles/commons.scss +10 -0
  13. package/lib/assets/styles/dropdown.scss +36 -2
  14. package/lib/assets/styles/effects.scss +11 -0
  15. package/lib/assets/styles/list.scss +8 -0
  16. package/lib/assets/styles/table.scss +2 -7
  17. package/lib/avatar/avatar.spec.js +190 -0
  18. package/lib/avatar/index.js +58 -13
  19. package/lib/badge/badge.spec.js +127 -0
  20. package/lib/badge/index.js +22 -6
  21. package/lib/buttons/ActivateButton.js +3 -3
  22. package/lib/buttons/AddButton.js +1 -1
  23. package/lib/buttons/Button.js +11 -19
  24. package/lib/buttons/ButtonGroups.js +5 -0
  25. package/lib/buttons/CancelButton.js +3 -16
  26. package/lib/buttons/DangerButton.js +19 -14
  27. package/lib/buttons/DefaultButton.js +127 -65
  28. package/lib/buttons/DestroyButton.js +3 -12
  29. package/lib/buttons/EditButton.js +3 -3
  30. package/lib/buttons/InactivateButton.js +3 -3
  31. package/lib/buttons/InfoButton.js +19 -14
  32. package/lib/buttons/PrimaryButton.js +19 -14
  33. package/lib/buttons/RestoreButton.js +3 -3
  34. package/lib/buttons/SaveButton.js +2 -15
  35. package/lib/buttons/SpinnerLoading.js +230 -0
  36. package/lib/buttons/SuccessButton.js +18 -13
  37. package/lib/buttons/WarningButton.js +18 -13
  38. package/lib/buttons/button_container/index.js +18 -5
  39. package/lib/buttons/buttons.spec.js +504 -0
  40. package/lib/buttons/index.js +28 -28
  41. package/lib/buttons/split_button/index.js +30 -13
  42. package/lib/calendar/DangerCalendar.js +2 -11
  43. package/lib/calendar/InfoCalendar.js +2 -11
  44. package/lib/calendar/PrimaryCalendar.js +2 -11
  45. package/lib/calendar/SuccessCalendar.js +2 -11
  46. package/lib/calendar/WarningCalendar.js +2 -11
  47. package/lib/calendar/base/Day.js +8 -2
  48. package/lib/calendar/base/Month.js +5 -0
  49. package/lib/calendar/base/Week.js +6 -0
  50. package/lib/calendar/base/helpers.js +9 -9
  51. package/lib/calendar/base/index.js +36 -33
  52. package/lib/calendar/calendar.spec.js +171 -0
  53. package/lib/calendar/index.js +10 -10
  54. package/lib/checkbox/Label.js +12 -2
  55. package/lib/checkbox/checkbox.spec.js +215 -0
  56. package/lib/checkbox/index.js +79 -42
  57. package/lib/dialog/Alert.js +8 -3
  58. package/lib/dialog/Custom.js +25 -17
  59. package/lib/dialog/Error.js +6 -1
  60. package/lib/dialog/Information.js +6 -1
  61. package/lib/dialog/Question.js +17 -6
  62. package/lib/dialog/Warning.js +6 -1
  63. package/lib/dialog/base/Content.js +9 -0
  64. package/lib/dialog/base/Footer.js +8 -2
  65. package/lib/dialog/base/Header.js +22 -8
  66. package/lib/dialog/base/index.js +28 -6
  67. package/lib/dialog/dialog.spec.js +488 -0
  68. package/lib/dialog/form/index.js +32 -22
  69. package/lib/dialog/index.js +6 -6
  70. package/lib/drawer/Content.js +10 -1
  71. package/lib/drawer/Drawer.js +50 -29
  72. package/lib/drawer/Drawer.spec.js +258 -0
  73. package/lib/drawer/Header.js +31 -12
  74. package/lib/drawer/helpers.js +1 -1
  75. package/lib/drawer/index.js +4 -4
  76. package/lib/dropdown/Popup.js +16 -32
  77. package/lib/dropdown/dropdown.spec.js +169 -0
  78. package/lib/dropdown/helper.js +2 -2
  79. package/lib/dropdown/withDropdown.js +43 -18
  80. package/lib/fieldset/fieldset.spec.js +329 -0
  81. package/lib/fieldset/index.js +43 -12
  82. package/lib/form/Field.js +41 -14
  83. package/lib/form/FieldArray.js +50 -20
  84. package/lib/form/FieldNumber.js +44 -12
  85. package/lib/form/FieldPeriod.js +41 -19
  86. package/lib/form/form.spec.js +293 -0
  87. package/lib/form/helpers.js +16 -10
  88. package/lib/form/index.js +92 -57
  89. package/lib/form/withFieldHOC.js +120 -40
  90. package/lib/form/withFormSecurity.js +38 -17
  91. package/lib/gridlayout/GridCol.js +18 -3
  92. package/lib/gridlayout/GridRow.js +24 -4
  93. package/lib/gridlayout/gridLayout.spec.js +169 -0
  94. package/lib/icons/helper.js +571 -560
  95. package/lib/icons/icons.spec.js +86 -0
  96. package/lib/icons/index.js +40 -23
  97. package/lib/index.js +12 -12
  98. package/lib/inputs/base/InputTextBase.js +149 -40
  99. package/lib/inputs/base/base.spec.js +690 -0
  100. package/lib/inputs/base/helpers.js +4 -4
  101. package/lib/inputs/base/index.js +1 -0
  102. package/lib/inputs/color/color_input.spec.js +174 -0
  103. package/lib/inputs/color/index.js +29 -31
  104. package/lib/inputs/date/Dialog.js +8 -1
  105. package/lib/inputs/date/Dropdown.js +70 -18
  106. package/lib/inputs/date/date.spec.js +354 -0
  107. package/lib/inputs/date/helpers.js +1 -1
  108. package/lib/inputs/date/index.js +411 -255
  109. package/lib/inputs/inputHOC.js +96 -44
  110. package/lib/inputs/mask/BaseMask.js +45 -16
  111. package/lib/inputs/mask/Cnpj.js +19 -12
  112. package/lib/inputs/mask/Cpf.js +22 -14
  113. package/lib/inputs/mask/Phone.js +9 -1
  114. package/lib/inputs/mask/ZipCode.js +1 -1
  115. package/lib/inputs/mask/helpers.js +36 -21
  116. package/lib/inputs/mask/imaskHOC.js +255 -186
  117. package/lib/inputs/mask/index.js +4 -4
  118. package/lib/inputs/mask/input_mask.spec.js +607 -0
  119. package/lib/inputs/multiSelect/ActionButtons.js +14 -2
  120. package/lib/inputs/multiSelect/Dropdown.js +70 -43
  121. package/lib/inputs/multiSelect/index.js +80 -60
  122. package/lib/inputs/number/BaseNumber.js +62 -27
  123. package/lib/inputs/number/Currency.js +14 -4
  124. package/lib/inputs/number/format_number.js +1 -1
  125. package/lib/inputs/number/index.js +15 -9
  126. package/lib/inputs/number/numberfield.spec.js +215 -0
  127. package/lib/inputs/period/Dialog.js +8 -1
  128. package/lib/inputs/period/Dropdown.js +70 -16
  129. package/lib/inputs/period/PeriodList.js +19 -6
  130. package/lib/inputs/period/helper.js +71 -30
  131. package/lib/inputs/period/index.js +160 -112
  132. package/lib/inputs/search/index.js +261 -129
  133. package/lib/inputs/search/search_input.spec.js +209 -0
  134. package/lib/inputs/select/ActionButtons.js +20 -14
  135. package/lib/inputs/select/Dropdown.js +63 -30
  136. package/lib/inputs/select/helper.js +16 -18
  137. package/lib/inputs/select/index.js +13 -14
  138. package/lib/inputs/select/multiple/Selecteds.js +13 -5
  139. package/lib/inputs/select/multiple/index.js +414 -289
  140. package/lib/inputs/select/select.spec.js +395 -0
  141. package/lib/inputs/select/simple/index.js +461 -322
  142. package/lib/inputs/text/index.js +0 -1
  143. package/lib/inputs/text/textfield.spec.js +215 -0
  144. package/lib/inputs/textarea/index.js +15 -5
  145. package/lib/inputs/textarea/textarea.spec.js +59 -0
  146. package/lib/internals/constants.js +1 -1
  147. package/lib/internals/withTooltip.js +34 -26
  148. package/lib/labelMessages/index.js +45 -27
  149. package/lib/labelMessages/labelMessages.spec.js +176 -0
  150. package/lib/labels/DangerLabel.js +4 -13
  151. package/lib/labels/DefaultLabel.js +57 -25
  152. package/lib/labels/InfoLabel.js +4 -13
  153. package/lib/labels/PrimaryLabel.js +4 -13
  154. package/lib/labels/SuccessLabel.js +4 -13
  155. package/lib/labels/WarningLabel.js +4 -13
  156. package/lib/labels/index.js +10 -10
  157. package/lib/labels/label.spec.js +162 -0
  158. package/lib/labels/label_container/index.js +12 -2
  159. package/lib/list/Header.js +13 -0
  160. package/lib/list/Item.js +65 -27
  161. package/lib/list/helpers.js +2 -2
  162. package/lib/list/index.js +51 -31
  163. package/lib/list/list.spec.js +769 -0
  164. package/lib/menus/float/MenuItem.js +42 -10
  165. package/lib/menus/float/SubMenuContainer.js +95 -0
  166. package/lib/menus/float/float-menu.spec.js +221 -0
  167. package/lib/menus/float/helpers.js +1 -1
  168. package/lib/menus/float/index.js +39 -9
  169. package/lib/menus/sidenav/ExpandMenu.js +13 -1
  170. package/lib/menus/sidenav/MenuLink.js +14 -0
  171. package/lib/menus/sidenav/NavMenuGroup.js +12 -1
  172. package/lib/menus/sidenav/NavMenuItem.js +45 -19
  173. package/lib/menus/sidenav/NavSubMenuItem.js +15 -4
  174. package/lib/menus/sidenav/helpers.js +3 -3
  175. package/lib/menus/sidenav/index.js +60 -30
  176. package/lib/menus/sidenav/popup_menu_search/EmptyList.js +11 -2
  177. package/lib/menus/sidenav/popup_menu_search/index.js +11 -14
  178. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  179. package/lib/panel/Content.js +18 -6
  180. package/lib/panel/DangerPanel.js +1 -1
  181. package/lib/panel/Default.js +45 -18
  182. package/lib/panel/Header.js +29 -7
  183. package/lib/panel/InfoPanel.js +1 -1
  184. package/lib/panel/PrimaryPanel.js +1 -1
  185. package/lib/panel/SuccessPanel.js +1 -1
  186. package/lib/panel/ToolBar.js +5 -0
  187. package/lib/panel/WarningPanel.js +1 -1
  188. package/lib/panel/helpers.js +3 -7
  189. package/lib/panel/index.js +14 -14
  190. package/lib/panel/panel.spec.js +216 -0
  191. package/lib/permissionValidations.js +12 -14
  192. package/lib/popover/PopoverText.js +5 -0
  193. package/lib/popover/PopoverTitle.js +5 -0
  194. package/lib/popover/index.js +40 -26
  195. package/lib/popover/popover.spec.js +146 -0
  196. package/lib/progress/Bar.js +47 -37
  197. package/lib/progress/index.js +18 -8
  198. package/lib/progress/progress.spec.js +94 -0
  199. package/lib/radio/index.js +46 -22
  200. package/lib/radio/radio.spec.js +189 -0
  201. package/lib/skeleton/SkeletonContainer.js +13 -0
  202. package/lib/skeleton/index.js +26 -7
  203. package/lib/spinner/SpinnerLoading.js +12 -4
  204. package/lib/spinner/index.js +29 -24
  205. package/lib/spinner/spinner.spec.js +152 -0
  206. package/lib/split/Split.js +62 -45
  207. package/lib/split/SplitSide.js +21 -1
  208. package/lib/split/helpers.js +1 -1
  209. package/lib/split/split.spec.js +163 -0
  210. package/lib/table/Body.js +16 -9
  211. package/lib/table/Header.js +19 -40
  212. package/lib/table/HeaderColumn.js +20 -6
  213. package/lib/table/Row.js +28 -7
  214. package/lib/table/RowColumn.js +30 -12
  215. package/lib/table/helpers.js +3 -3
  216. package/lib/table/index.js +53 -15
  217. package/lib/table/table.spec.js +352 -0
  218. package/lib/tabs/DropdownItems.js +53 -39
  219. package/lib/tabs/Menu.js +20 -16
  220. package/lib/tabs/MenuItems.js +39 -25
  221. package/lib/tabs/Panel.js +51 -18
  222. package/lib/tabs/index.js +75 -81
  223. package/lib/tabs/tabHelpers.js +8 -10
  224. package/lib/tabs/tabs.spec.js +321 -0
  225. package/lib/toolbar/ButtonBar.js +13 -32
  226. package/lib/toolbar/LabelBar.js +18 -31
  227. package/lib/toolbar/ToolBarGroup.js +12 -6
  228. package/lib/toolbar/helpers.js +1 -1
  229. package/lib/toolbar/index.js +33 -25
  230. package/lib/toolbar/toolbar.spec.js +394 -0
  231. package/lib/tooltip/index.js +34 -25
  232. package/lib/tooltip/tooltip.spec.js +215 -0
  233. package/lib/treeview/Header.js +12 -0
  234. package/lib/treeview/Node.js +387 -261
  235. package/lib/treeview/constants.js +2 -1
  236. package/lib/treeview/index.js +548 -363
  237. package/lib/treeview/treeview.spec.js +279 -0
  238. package/lib/treeview_old/Node.js +6 -6
  239. package/lib/uitour/helpers.js +1 -1
  240. package/lib/uitour/index.js +32 -15
  241. package/lib/uitour/uitour.spec.js +176 -0
  242. package/package.json +16 -40
  243. package/.husky/pre-push +0 -4
  244. package/babel.config.json +0 -11
  245. package/tsconfig.json +0 -32
  246. package/tsup.config.ts +0 -10
@@ -0,0 +1,189 @@
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 = _interopRequireWildcard(require("react"));
8
+
9
+ require("babel-polyfill");
10
+
11
+ var _ = _interopRequireDefault(require("."));
12
+
13
+ var _storageMock = _interopRequireWildcard(require("../../../config/jest/storageMock"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 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); } }
22
+
23
+ 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); }); }; }
24
+
25
+ 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); }
26
+
27
+ var radioMockRender = function radioMockRender(props) {
28
+ return /*#__PURE__*/_react2.default.createElement(_react2.Fragment, null, /*#__PURE__*/_react2.default.createElement(_.default, _extends({
29
+ name: "test",
30
+ label: "C#",
31
+ value: "5",
32
+ id: "c#-lang"
33
+ }, props)), /*#__PURE__*/_react2.default.createElement(_.default, {
34
+ name: "test",
35
+ label: "RUBY",
36
+ value: "6",
37
+ id: "ruby-lang"
38
+ }), /*#__PURE__*/_react2.default.createElement(_.default, {
39
+ name: "test",
40
+ label: "JAVA",
41
+ value: "7",
42
+ id: "java-lang"
43
+ }), /*#__PURE__*/_react2.default.createElement(_.default, {
44
+ name: "test",
45
+ label: "Disabled",
46
+ value: "8",
47
+ id: "disabled-lang"
48
+ }));
49
+ };
50
+
51
+ describe('Radio', function () {
52
+ describe('Default', function () {
53
+ it('should render without errors', function () {
54
+ var _render = (0, _react.render)(radioMockRender()),
55
+ container = _render.container;
56
+
57
+ expect(container.firstChild).toBeTruthy();
58
+ });
59
+ it('should render 4 radio buttons', function () {
60
+ var _render2 = (0, _react.render)(radioMockRender()),
61
+ container = _render2.container;
62
+
63
+ expect(container.querySelectorAll('.radio-button').length).toBe(4);
64
+ });
65
+ it('radio element should have a input and label', function () {
66
+ var _render3 = (0, _react.render)(radioMockRender()),
67
+ container = _render3.container;
68
+
69
+ expect(container.querySelector('.radio-button input')).toBeTruthy();
70
+ expect(container.querySelector('.radio-button label')).toBeTruthy();
71
+ });
72
+ it('should label text match with prop label', function () {
73
+ var _render4 = (0, _react.render)(radioMockRender()),
74
+ container = _render4.container;
75
+
76
+ expect(container.querySelector('.radio-button label')).toHaveTextContent('C#');
77
+ });
78
+ it('should input have type radio', function () {
79
+ var _render5 = (0, _react.render)(radioMockRender()),
80
+ container = _render5.container;
81
+
82
+ expect(container.querySelector('.radio-button input').type).toBe('radio');
83
+ });
84
+ it('should input have id from props', function () {
85
+ var _render6 = (0, _react.render)(radioMockRender()),
86
+ container = _render6.container;
87
+
88
+ expect(container.querySelector('.radio-button input').id).toBe('c#-lang');
89
+ });
90
+ it('should input have name test', function () {
91
+ var _render7 = (0, _react.render)(radioMockRender()),
92
+ container = _render7.container;
93
+
94
+ expect(container.querySelector('.radio-button input').name).toBe('test');
95
+ });
96
+ it('should input have value', function () {
97
+ var _render8 = (0, _react.render)(radioMockRender()),
98
+ container = _render8.container;
99
+
100
+ expect(container.querySelector('.radio-button input').value).toBe('5');
101
+ });
102
+ it('should change checked', function () {
103
+ var _render9 = (0, _react.render)(radioMockRender()),
104
+ container = _render9.container;
105
+
106
+ expect(container.querySelector('.radio-button input').checked).toEqual(false);
107
+
108
+ _react.fireEvent.click(container.querySelector('.radio-button label'));
109
+
110
+ expect(container.querySelector('.radio-button input').checked).toEqual(true);
111
+ });
112
+ it('should start default Checked', function () {
113
+ var _render10 = (0, _react.render)(radioMockRender({
114
+ defaultChecked: true
115
+ })),
116
+ container = _render10.container;
117
+
118
+ expect(container.querySelector('.radio-button input').checked).toEqual(true);
119
+ });
120
+ it('should fire onChange callback', function () {
121
+ var mockOnClick = jest.fn();
122
+
123
+ var _render11 = (0, _react.render)(radioMockRender({
124
+ onChange: mockOnClick
125
+ })),
126
+ container = _render11.container;
127
+
128
+ _react.fireEvent.click(container.querySelector('.radio-button label'));
129
+
130
+ expect(mockOnClick).toBeCalledTimes(1);
131
+ });
132
+ it('should disable', function () {
133
+ var _render12 = (0, _react.render)(radioMockRender({
134
+ disabled: true
135
+ })),
136
+ container = _render12.container;
137
+
138
+ expect(container.querySelector('.radio-button input').checked).toEqual(false);
139
+
140
+ _react.fireEvent.click(container.querySelector('.radio-button label'));
141
+
142
+ expect(container.querySelector('.radio-button input').checked).toEqual(false);
143
+ });
144
+ it('should check permittion', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
145
+ var _render13, container;
146
+
147
+ return regeneratorRuntime.wrap(function _callee$(_context) {
148
+ while (1) {
149
+ switch (_context.prev = _context.next) {
150
+ case 0:
151
+ Object.defineProperty(window, 'sessionStorage', {
152
+ value: (0, _storageMock.default)()
153
+ });
154
+ _render13 = (0, _react.render)(radioMockRender({
155
+ permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('disabled')
156
+ })), container = _render13.container;
157
+ expect(container.querySelector('.radio-button input')).not.toBeDisabled();
158
+
159
+ case 3:
160
+ case "end":
161
+ return _context.stop();
162
+ }
163
+ }
164
+ }, _callee);
165
+ })));
166
+ it('should check permission and be unavailable', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
167
+ var _render14, container;
168
+
169
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
170
+ while (1) {
171
+ switch (_context2.prev = _context2.next) {
172
+ case 0:
173
+ Object.defineProperty(window, 'sessionStorage', {
174
+ value: (0, _storageMock.default)()
175
+ });
176
+ _render14 = (0, _react.render)(radioMockRender({
177
+ permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('disabled')
178
+ })), container = _render14.container;
179
+ expect(container.querySelector('.radio-button input')).toBeDisabled();
180
+
181
+ case 3:
182
+ case "end":
183
+ return _context2.stop();
184
+ }
185
+ }
186
+ }, _callee2);
187
+ })));
188
+ });
189
+ });
@@ -7,6 +7,8 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
14
  var SkeletonContainer = function SkeletonContainer(_ref) {
@@ -25,5 +27,16 @@ var SkeletonContainer = function SkeletonContainer(_ref) {
25
27
  }, children);
26
28
  };
27
29
 
30
+ SkeletonContainer.propTypes = {
31
+ children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.arrayOf(_propTypes.default.element)]).isRequired,
32
+ row: _propTypes.default.bool,
33
+ customClass: _propTypes.default.string,
34
+ style: _propTypes.default.object
35
+ };
36
+ SkeletonContainer.defaultProps = {
37
+ row: false,
38
+ customClass: undefined,
39
+ style: null
40
+ };
28
41
  var _default = SkeletonContainer;
29
42
  exports.default = _default;
@@ -13,6 +13,8 @@ exports.default = void 0;
13
13
 
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
 
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
16
18
  var _gridlayout = _interopRequireDefault(require("../gridlayout"));
17
19
 
18
20
  var _SkeletonContainer = _interopRequireDefault(require("./SkeletonContainer"));
@@ -21,19 +23,16 @@ require("../assets/styles/skeleton.scss");
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
24
- function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
26
+ 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); }
25
27
 
26
28
  var Skeleton = function Skeleton(props) {
27
- var _props$customClass = props.customClass,
28
- customClass = _props$customClass === void 0 ? '' : _props$customClass,
29
+ var customClass = props.customClass,
29
30
  style = props.style,
30
31
  width = props.width,
31
32
  height = props.height,
32
33
  round = props.round,
33
- _props$color = props.color,
34
- color = _props$color === void 0 ? 'default' : _props$color,
35
- _props$size = props.size,
36
- size = _props$size === void 0 ? 'medium' : _props$size,
34
+ color = props.color,
35
+ size = props.size,
37
36
  gridLayout = props.gridLayout;
38
37
  var customStyles = {
39
38
  width: width,
@@ -61,5 +60,25 @@ var Skeleton = function Skeleton(props) {
61
60
  return renderContent();
62
61
  };
63
62
 
63
+ Skeleton.propTypes = {
64
+ width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
65
+ height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
66
+ round: _propTypes.default.bool,
67
+ size: _propTypes.default.oneOf(['mini', 'small', 'medium', 'large']),
68
+ color: _propTypes.default.oneOf(['default', 'white']),
69
+ gridLayout: _propTypes.default.string,
70
+ customClass: _propTypes.default.string,
71
+ style: _propTypes.default.object
72
+ };
73
+ Skeleton.defaultProps = {
74
+ width: undefined,
75
+ height: undefined,
76
+ round: false,
77
+ size: 'medium',
78
+ color: 'default',
79
+ gridLayout: undefined,
80
+ customClass: '',
81
+ style: null
82
+ };
64
83
  var _default = Skeleton;
65
84
  exports.default = _default;
@@ -7,13 +7,13 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
14
  var SpinnerLoading = function SpinnerLoading(_ref) {
13
- var _ref$color = _ref.color,
14
- color = _ref$color === void 0 ? '#3B3B3B' : _ref$color,
15
- _ref$size = _ref.size,
16
- size = _ref$size === void 0 ? '50px' : _ref$size;
15
+ var color = _ref.color,
16
+ size = _ref.size;
17
17
  return /*#__PURE__*/_react.default.createElement("svg", {
18
18
  "data-testid": "spinner",
19
19
  className: "lds-spinner spinnerloading",
@@ -220,5 +220,13 @@ var SpinnerLoading = function SpinnerLoading(_ref) {
220
220
  }))));
221
221
  };
222
222
 
223
+ SpinnerLoading.propTypes = {
224
+ size: _propTypes.default.string,
225
+ color: _propTypes.default.string
226
+ };
227
+ SpinnerLoading.defaultProps = {
228
+ size: '50px',
229
+ color: '#3B3B3B'
230
+ };
223
231
  var _default = SpinnerLoading;
224
232
  exports.default = _default;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
12
14
  var _SpinnerLoading = _interopRequireDefault(require("./SpinnerLoading"));
13
15
 
14
16
  require("../assets/styles/spinner.scss");
@@ -27,25 +29,18 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
27
29
 
28
30
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
31
 
30
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
32
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
31
33
 
32
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
35
 
34
36
  var Spinner = function Spinner(props) {
35
- var _props$align = props.align,
36
- align = _props$align === void 0 ? 'center' : _props$align,
37
+ var align = props.align,
37
38
  customClass = props.customClass,
38
39
  style = props.style,
39
40
  text = props.text,
40
- _props$visible = props.visible,
41
- visible = _props$visible === void 0 ? true : _props$visible,
42
- _props$delayTime = props.delayTime,
43
- delayTime = _props$delayTime === void 0 ? 1000 : _props$delayTime,
44
- heightAuto = props.heightAuto,
45
- _props$color = props.color,
46
- color = _props$color === void 0 ? '#3B3B3B' : _props$color,
47
- _props$size = props.size,
48
- size = _props$size === void 0 ? '50px' : _props$size;
41
+ visible = props.visible,
42
+ delayTime = props.delayTime,
43
+ heightAuto = props.heightAuto;
49
44
 
50
45
  var _useState = (0, _react.useState)(!!delayTime),
51
46
  _useState2 = _slicedToArray(_useState, 2),
@@ -61,9 +56,7 @@ var Spinner = function Spinner(props) {
61
56
  }
62
57
 
63
58
  return function () {
64
- if (delayTimeout.current) {
65
- clearTimeout(delayTimeout.current);
66
- }
59
+ clearTimeout(delayTimeout.current);
67
60
  };
68
61
  }, []);
69
62
 
@@ -80,17 +73,29 @@ var Spinner = function Spinner(props) {
80
73
  return /*#__PURE__*/_react.default.createElement("div", {
81
74
  style: style,
82
75
  className: getCssClass()
83
- }, align === 'right' && text, /*#__PURE__*/_react.default.createElement(_SpinnerLoading.default, {
84
- color: color,
85
- size: size
86
- }), align === 'left' && text, align === 'center' && text);
76
+ }, align === 'right' && text, /*#__PURE__*/_react.default.createElement(_SpinnerLoading.default, props), align === 'left' && text, align === 'center' && text);
87
77
  }
88
78
 
89
- return /*#__PURE__*/_react.default.createElement(_SpinnerLoading.default, {
90
- color: color,
91
- size: size
92
- });
79
+ return /*#__PURE__*/_react.default.createElement(_SpinnerLoading.default, props);
93
80
  };
94
81
 
82
+ Spinner.propTypes = {
83
+ align: _propTypes.default.string,
84
+ customClass: _propTypes.default.string,
85
+ text: _propTypes.default.string,
86
+ style: _propTypes.default.object,
87
+ visible: _propTypes.default.bool,
88
+ delayTime: _propTypes.default.number,
89
+ heightAuto: _propTypes.default.bool
90
+ };
91
+ Spinner.defaultProps = {
92
+ align: 'center',
93
+ customClass: '',
94
+ text: '',
95
+ style: {},
96
+ visible: true,
97
+ delayTime: 1000,
98
+ heightAuto: false
99
+ };
95
100
  var _default = Spinner;
96
101
  exports.default = _default;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ require("babel-polyfill");
6
+
7
+ require("@testing-library/jest-dom/extend-expect");
8
+
9
+ var _react2 = require("@testing-library/react");
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 mockSpinner = function mockSpinner(props) {
22
+ return /*#__PURE__*/_react.default.createElement(_.default, _extends({
23
+ customClass: "mockspinner-component",
24
+ size: "100px",
25
+ text: "Carregando",
26
+ style: {
27
+ marginBottom: '10px'
28
+ },
29
+ color: "#f00"
30
+ }, props));
31
+ };
32
+
33
+ describe('Spinner Loading', function () {
34
+ it('should render with delay', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
35
+ var _render, container;
36
+
37
+ return regeneratorRuntime.wrap(function _callee$(_context) {
38
+ while (1) {
39
+ switch (_context.prev = _context.next) {
40
+ case 0:
41
+ _render = (0, _react2.render)(mockSpinner({
42
+ delayTime: 500
43
+ })), container = _render.container;
44
+ _context.next = 3;
45
+ return (0, _react2.waitFor)(function () {
46
+ return _react2.screen.getByTestId('spinner');
47
+ });
48
+
49
+ case 3:
50
+ expect(container.firstChild).toBeTruthy();
51
+
52
+ case 4:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }
57
+ }, _callee);
58
+ })));
59
+ it('should render without delay', function () {
60
+ var _render2 = (0, _react2.render)(mockSpinner({
61
+ delayTime: 0
62
+ })),
63
+ container = _render2.container;
64
+
65
+ expect(container.firstChild).toBeTruthy();
66
+ });
67
+ it('should render text', function () {
68
+ var _render3 = (0, _react2.render)(mockSpinner({
69
+ delayTime: 0
70
+ })),
71
+ container = _render3.container;
72
+
73
+ expect(container.firstChild).toHaveTextContent('Carregando');
74
+ });
75
+ it('should render spinner icon', function () {
76
+ var _render4 = (0, _react2.render)(mockSpinner({
77
+ delayTime: 0
78
+ })),
79
+ container = _render4.container,
80
+ getByTestId = _render4.getByTestId;
81
+
82
+ expect(container.firstChild).toContainElement(getByTestId('spinner'));
83
+ });
84
+ it('should apply custom class', function () {
85
+ var _render5 = (0, _react2.render)(mockSpinner({
86
+ delayTime: 0
87
+ })),
88
+ container = _render5.container;
89
+
90
+ expect(container.firstChild).toHaveClass('mockspinner-component');
91
+ });
92
+ it('should apply style', function () {
93
+ var _render6 = (0, _react2.render)(mockSpinner({
94
+ delayTime: 0
95
+ })),
96
+ container = _render6.container;
97
+
98
+ expect(container.firstChild).toHaveStyle('margin-bottom: 10px;');
99
+ });
100
+ it('should apply color', function () {
101
+ var _render7 = (0, _react2.render)(mockSpinner({
102
+ delayTime: 0
103
+ })),
104
+ getByTestId = _render7.getByTestId;
105
+
106
+ expect(getByTestId('spinner')).toHaveAttribute('fill', '#f00');
107
+ });
108
+ it('should apply height auto', function () {
109
+ var _render8 = (0, _react2.render)(mockSpinner({
110
+ delayTime: 0,
111
+ heightAuto: true
112
+ })),
113
+ container = _render8.container;
114
+
115
+ expect(container.firstChild).toHaveClass('-heightauto');
116
+ });
117
+ it('should apply align center', function () {
118
+ var _render9 = (0, _react2.render)(mockSpinner({
119
+ delayTime: 0
120
+ })),
121
+ container = _render9.container;
122
+
123
+ expect(container.firstChild).toHaveClass('-center');
124
+ });
125
+ it('should apply align right', function () {
126
+ var _render10 = (0, _react2.render)(mockSpinner({
127
+ delayTime: 0,
128
+ align: 'right'
129
+ })),
130
+ container = _render10.container;
131
+
132
+ expect(container.firstChild).toHaveClass('-right');
133
+ });
134
+ it('should apply align left', function () {
135
+ var _render11 = (0, _react2.render)(mockSpinner({
136
+ delayTime: 0,
137
+ align: 'left'
138
+ })),
139
+ container = _render11.container;
140
+
141
+ expect(container.firstChild).toHaveClass('-left');
142
+ });
143
+ it('should hide component when visible is false', function () {
144
+ var _render12 = (0, _react2.render)(mockSpinner({
145
+ delayTime: 0,
146
+ visible: false
147
+ })),
148
+ container = _render12.container;
149
+
150
+ expect(container.firstChild).not.toBeInTheDocument();
151
+ });
152
+ });