linear-react-components-ui 1.0.10-beta.2 → 1.0.10-beta.21

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 (281) hide show
  1. package/.eslintrc.json +1 -0
  2. package/.vscode/settings.json +1 -1
  3. package/README.md +19 -12
  4. package/lib/@types/Align.d.ts +2 -1
  5. package/lib/alerts/AlertContainer.d.ts +2 -0
  6. package/lib/alerts/AlertProvider.d.ts +2 -0
  7. package/lib/alerts/BaseAlert.d.ts +2 -0
  8. package/lib/alerts/Message.d.ts +2 -0
  9. package/lib/alerts/Message.js +1 -1
  10. package/lib/alerts/alert.spec.js +133 -0
  11. package/lib/alerts/helpers.d.ts +2 -0
  12. package/lib/alerts/index.d.ts +2 -0
  13. package/lib/alerts/types.d.ts +3 -1
  14. package/lib/alerts/withAlert.d.ts +2 -0
  15. package/lib/assets/styles/dialog.scss +9 -6
  16. package/lib/assets/styles/drawers.scss +9 -0
  17. package/lib/assets/styles/effects.scss +2 -2
  18. package/lib/assets/styles/radio.scss +52 -8
  19. package/lib/assets/styles/table.scss +30 -0
  20. package/lib/assets/styles/tooltip.scss +42 -2
  21. package/lib/avatar/avatar.spec.js +190 -0
  22. package/lib/badge/badge.spec.js +127 -0
  23. package/lib/buttons/ActivateButton.d.ts +2 -0
  24. package/lib/buttons/AddButton.d.ts +2 -0
  25. package/lib/buttons/Button.d.ts +2 -0
  26. package/lib/buttons/CancelButton.d.ts +2 -0
  27. package/lib/buttons/DangerButton.d.ts +2 -0
  28. package/lib/buttons/DefaultButton.d.ts +2 -0
  29. package/lib/buttons/DefaultButton.js +14 -4
  30. package/lib/buttons/DestroyButton.d.ts +2 -0
  31. package/lib/buttons/EditButton.d.ts +2 -0
  32. package/lib/buttons/InactivateButton.d.ts +2 -0
  33. package/lib/buttons/InfoButton.d.ts +2 -0
  34. package/lib/buttons/PrimaryButton.d.ts +2 -0
  35. package/lib/buttons/RestoreButton.d.ts +2 -0
  36. package/lib/buttons/SaveButton.d.ts +2 -0
  37. package/lib/buttons/SpinnerLoading.js +230 -0
  38. package/lib/buttons/SuccessButton.d.ts +2 -0
  39. package/lib/buttons/WarningButton.d.ts +2 -0
  40. package/lib/buttons/buttons.spec.js +504 -0
  41. package/lib/buttons/index.d.ts +2 -0
  42. package/lib/buttons/split_button/index.d.ts +2 -0
  43. package/lib/buttons/types.d.ts +6 -2
  44. package/lib/calendar/calendar.spec.js +171 -0
  45. package/lib/checkbox/checkbox.spec.js +215 -0
  46. package/lib/dialog/Alert.d.ts +3 -0
  47. package/lib/dialog/Custom.d.ts +3 -0
  48. package/lib/dialog/Custom.js +1 -1
  49. package/lib/dialog/Error.d.ts +3 -0
  50. package/lib/dialog/Information.d.ts +3 -0
  51. package/lib/dialog/Question.d.ts +3 -0
  52. package/lib/dialog/Warning.d.ts +3 -0
  53. package/lib/dialog/base/Content.d.ts +3 -0
  54. package/lib/dialog/base/Footer.d.ts +3 -0
  55. package/lib/dialog/base/Header.d.ts +3 -0
  56. package/lib/dialog/base/Header.js +12 -1
  57. package/lib/dialog/base/index.d.ts +3 -0
  58. package/lib/dialog/base/index.js +78 -16
  59. package/lib/dialog/dialog.spec.js +488 -0
  60. package/lib/dialog/form/index.d.ts +7 -3
  61. package/lib/dialog/form/index.js +11 -4
  62. package/lib/dialog/index.d.ts +3 -0
  63. package/lib/dialog/types.d.ts +10 -4
  64. package/lib/drawer/Content.d.ts +2 -0
  65. package/lib/drawer/Drawer.d.ts +3 -1
  66. package/lib/drawer/Drawer.js +22 -2
  67. package/lib/drawer/Drawer.spec.js +258 -0
  68. package/lib/drawer/Header.d.ts +2 -0
  69. package/lib/drawer/helpers.d.ts +2 -0
  70. package/lib/drawer/index.d.ts +2 -0
  71. package/lib/drawer/types.d.ts +4 -1
  72. package/lib/dropdown/Popup.js +5 -0
  73. package/lib/dropdown/dropdown.spec.js +169 -0
  74. package/lib/fieldset/fieldset.spec.js +329 -0
  75. package/lib/form/Field.d.ts +2 -1
  76. package/lib/form/Field.js +33 -24
  77. package/lib/form/FieldArray.d.ts +1 -0
  78. package/lib/form/FieldArray.js +41 -4
  79. package/lib/form/FieldNumber.d.ts +1 -0
  80. package/lib/form/FieldNumber.js +24 -5
  81. package/lib/form/FieldPeriod.d.ts +1 -0
  82. package/lib/form/FieldPeriod.js +16 -2
  83. package/lib/form/form.spec.js +293 -0
  84. package/lib/form/helpers.d.ts +2 -1
  85. package/lib/form/helpers.js +2 -2
  86. package/lib/form/index.d.ts +4 -2
  87. package/lib/form/index.js +72 -35
  88. package/lib/form/types.d.ts +25 -6
  89. package/lib/form/withFieldHOC.d.ts +1 -0
  90. package/lib/form/withFieldHOC.js +1 -0
  91. package/lib/form/withFormSecurity.d.ts +1 -0
  92. package/lib/form/withFormSecurity.js +2 -1
  93. package/lib/gridlayout/gridLayout.spec.js +169 -0
  94. package/lib/icons/helper.d.ts +4 -0
  95. package/lib/icons/helper.js +4 -0
  96. package/lib/icons/icons.spec.js +86 -0
  97. package/lib/icons/index.d.ts +2 -0
  98. package/lib/icons/types.d.ts +3 -1
  99. package/lib/index.d.ts +4 -1
  100. package/lib/inputs/base/InputTextBase.d.ts +1 -0
  101. package/lib/inputs/base/InputTextBase.js +10 -2
  102. package/lib/inputs/base/base.spec.js +690 -0
  103. package/lib/inputs/base/helpers.d.ts +2 -1
  104. package/lib/inputs/base/index.js +1 -0
  105. package/lib/inputs/base/types.d.ts +2 -1
  106. package/lib/inputs/color/color_input.spec.js +174 -0
  107. package/lib/inputs/date/Dialog.d.ts +1 -0
  108. package/lib/inputs/date/Dropdown.d.ts +1 -0
  109. package/lib/inputs/date/date.spec.js +354 -0
  110. package/lib/inputs/date/helpers.d.ts +2 -1
  111. package/lib/inputs/date/helpers.js +3 -2
  112. package/lib/inputs/date/index.d.ts +1 -0
  113. package/lib/inputs/date/index.js +24 -9
  114. package/lib/inputs/date/types.d.ts +3 -1
  115. package/lib/inputs/file/DefaultFile.d.ts +1 -0
  116. package/lib/inputs/file/DragDropFile.d.ts +1 -0
  117. package/lib/inputs/file/File.d.ts +1 -0
  118. package/lib/inputs/file/FileButtonSettings.d.ts +1 -0
  119. package/lib/inputs/file/helpers.d.ts +1 -0
  120. package/lib/inputs/file/index.d.ts +1 -0
  121. package/lib/inputs/file/types.d.ts +1 -0
  122. package/lib/inputs/inputHOC.d.ts +3 -0
  123. package/lib/inputs/mask/BaseMask.d.ts +1 -0
  124. package/lib/inputs/mask/BaseMask.js +20 -5
  125. package/lib/inputs/mask/Cnpj.d.ts +1 -0
  126. package/lib/inputs/mask/Cpf.d.ts +1 -0
  127. package/lib/inputs/mask/Cpf.js +4 -4
  128. package/lib/inputs/mask/Phone.d.ts +1 -0
  129. package/lib/inputs/mask/ZipCode.d.ts +1 -0
  130. package/lib/inputs/mask/helpers.d.ts +3 -0
  131. package/lib/inputs/mask/helpers.js +1 -1
  132. package/lib/inputs/mask/imaskHOC.d.ts +3 -0
  133. package/lib/inputs/mask/imaskHOC.js +16 -12
  134. package/lib/inputs/mask/index.d.ts +1 -0
  135. package/lib/inputs/mask/input_mask.spec.js +607 -0
  136. package/lib/inputs/mask/types.d.ts +2 -1
  137. package/lib/inputs/multiSelect/ActionButtons.d.ts +2 -1
  138. package/lib/inputs/multiSelect/ActionButtons.js +4 -1
  139. package/lib/inputs/multiSelect/Dropdown.d.ts +1 -0
  140. package/lib/inputs/multiSelect/Dropdown.js +4 -4
  141. package/lib/inputs/multiSelect/helper.d.ts +8 -6
  142. package/lib/inputs/multiSelect/helper.js +5 -1
  143. package/lib/inputs/multiSelect/index.d.ts +1 -0
  144. package/lib/inputs/multiSelect/index.js +15 -11
  145. package/lib/inputs/multiSelect/types.d.ts +16 -6
  146. package/lib/inputs/number/BaseNumber.d.ts +3 -0
  147. package/lib/inputs/number/BaseNumber.js +1 -2
  148. package/lib/inputs/number/Currency.d.ts +3 -0
  149. package/lib/inputs/number/Decimal.d.ts +3 -0
  150. package/lib/inputs/number/format_number.d.ts +2 -1
  151. package/lib/inputs/number/format_number.js +8 -3
  152. package/lib/inputs/number/index.d.ts +3 -0
  153. package/lib/inputs/number/numberfield.spec.js +215 -0
  154. package/lib/inputs/number/types.d.ts +3 -1
  155. package/lib/inputs/period/Dialog.d.ts +1 -0
  156. package/lib/inputs/period/Dropdown.d.ts +1 -0
  157. package/lib/inputs/period/PeriodList.d.ts +1 -0
  158. package/lib/inputs/period/helper.d.ts +1 -0
  159. package/lib/inputs/period/index.d.ts +1 -0
  160. package/lib/inputs/period/index.js +8 -9
  161. package/lib/inputs/period/types.d.ts +3 -2
  162. package/lib/inputs/search/index.d.ts +3 -0
  163. package/lib/inputs/search/search_input.spec.js +209 -0
  164. package/lib/inputs/select/ActionButtons.d.ts +3 -0
  165. package/lib/inputs/select/Dropdown.d.ts +3 -0
  166. package/lib/inputs/select/Dropdown.js +1 -1
  167. package/lib/inputs/select/helper.d.ts +7 -9
  168. package/lib/inputs/select/helper.js +11 -2
  169. package/lib/inputs/select/index.d.ts +1 -0
  170. package/lib/inputs/select/index.js +6 -5
  171. package/lib/inputs/select/multiple/Selecteds.d.ts +1 -0
  172. package/lib/inputs/select/multiple/Selecteds.js +1 -1
  173. package/lib/inputs/select/multiple/index.d.ts +1 -0
  174. package/lib/inputs/select/multiple/index.js +13 -10
  175. package/lib/inputs/select/select.spec.js +395 -0
  176. package/lib/inputs/select/simple/index.d.ts +1 -0
  177. package/lib/inputs/select/simple/index.js +35 -18
  178. package/lib/inputs/select/types.d.ts +22 -7
  179. package/lib/inputs/text/index.d.ts +1 -0
  180. package/lib/inputs/text/textfield.spec.js +215 -0
  181. package/lib/inputs/text/types.d.ts +1 -1
  182. package/lib/inputs/textarea/index.d.ts +1 -0
  183. package/lib/inputs/textarea/index.js +1 -1
  184. package/lib/inputs/textarea/textarea.spec.js +59 -0
  185. package/lib/inputs/textarea/types.d.ts +1 -0
  186. package/lib/inputs/types.d.ts +7 -3
  187. package/lib/internals/types.d.ts +1 -0
  188. package/lib/internals/withTooltip.js +13 -6
  189. package/lib/labelMessages/index.d.ts +2 -0
  190. package/lib/labelMessages/index.js +3 -4
  191. package/lib/labelMessages/labelMessages.spec.js +176 -0
  192. package/lib/labelMessages/types.d.ts +3 -1
  193. package/lib/labels/DangerLabel.d.ts +2 -0
  194. package/lib/labels/DefaultLabel.d.ts +2 -0
  195. package/lib/labels/InfoLabel.d.ts +2 -0
  196. package/lib/labels/PrimaryLabel.d.ts +2 -0
  197. package/lib/labels/SuccessLabel.d.ts +2 -0
  198. package/lib/labels/WarningLabel.d.ts +2 -0
  199. package/lib/labels/index.d.ts +2 -0
  200. package/lib/labels/label.spec.js +162 -0
  201. package/lib/labels/types.d.ts +3 -1
  202. package/lib/list/Header.d.ts +2 -0
  203. package/lib/list/Item.d.ts +2 -0
  204. package/lib/list/helpers.d.ts +2 -0
  205. package/lib/list/index.d.ts +2 -0
  206. package/lib/list/list.spec.js +769 -0
  207. package/lib/list/types.d.ts +4 -2
  208. package/lib/menus/float/MenuItem.d.ts +2 -0
  209. package/lib/menus/float/float-menu.spec.js +221 -0
  210. package/lib/menus/float/helpers.d.ts +2 -0
  211. package/lib/menus/float/index.d.ts +2 -0
  212. package/lib/menus/float/types.d.ts +3 -1
  213. package/lib/menus/index.d.ts +2 -0
  214. package/lib/menus/sidenav/ExpandMenu.d.ts +2 -0
  215. package/lib/menus/sidenav/MenuLink.d.ts +2 -0
  216. package/lib/menus/sidenav/NavMenuGroup.d.ts +2 -0
  217. package/lib/menus/sidenav/NavMenuItem.d.ts +2 -0
  218. package/lib/menus/sidenav/NavSubMenuItem.d.ts +2 -0
  219. package/lib/menus/sidenav/helpers.d.ts +2 -0
  220. package/lib/menus/sidenav/index.d.ts +2 -0
  221. package/lib/menus/sidenav/popup_menu_search/EmptyList.d.ts +2 -0
  222. package/lib/menus/sidenav/popup_menu_search/index.d.ts +2 -0
  223. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  224. package/lib/menus/sidenav/types.d.ts +4 -2
  225. package/lib/panel/Content.d.ts +3 -1
  226. package/lib/panel/DangerPanel.d.ts +3 -1
  227. package/lib/panel/Default.d.ts +3 -1
  228. package/lib/panel/Header.d.ts +3 -1
  229. package/lib/panel/Header.js +3 -4
  230. package/lib/panel/InfoPanel.d.ts +3 -1
  231. package/lib/panel/PrimaryPanel.d.ts +3 -1
  232. package/lib/panel/SuccessPanel.d.ts +3 -1
  233. package/lib/panel/ToolBar.d.ts +3 -1
  234. package/lib/panel/WarningPanel.d.ts +3 -1
  235. package/lib/panel/helpers.d.ts +3 -1
  236. package/lib/panel/index.d.ts +3 -1
  237. package/lib/panel/panel.spec.js +216 -0
  238. package/lib/panel/types.d.ts +3 -1
  239. package/lib/popover/PopoverText.d.ts +2 -0
  240. package/lib/popover/PopoverTitle.d.ts +2 -0
  241. package/lib/popover/index.d.ts +2 -0
  242. package/lib/popover/index.js +1 -2
  243. package/lib/popover/popover.spec.js +146 -0
  244. package/lib/popover/types.d.ts +3 -1
  245. package/lib/progress/progress.spec.js +94 -0
  246. package/lib/radio/index.d.ts +2 -1
  247. package/lib/radio/index.js +5 -1
  248. package/lib/radio/radio.spec.js +189 -0
  249. package/lib/radio/types.d.ts +4 -1
  250. package/lib/spinner/spinner.spec.js +152 -0
  251. package/lib/split/split.spec.js +163 -0
  252. package/lib/table/Body.js +9 -12
  253. package/lib/table/Header.js +19 -16
  254. package/lib/table/Row.js +20 -3
  255. package/lib/table/index.js +1 -0
  256. package/lib/table/table.spec.js +352 -0
  257. package/lib/table/types.d.ts +7 -0
  258. package/lib/tabs/DropdownItems.d.ts +2 -0
  259. package/lib/tabs/Menu.d.ts +2 -0
  260. package/lib/tabs/MenuItems.d.ts +2 -0
  261. package/lib/tabs/Panel.d.ts +2 -0
  262. package/lib/tabs/index.d.ts +2 -0
  263. package/lib/tabs/tabHelpers.d.ts +2 -0
  264. package/lib/tabs/tabs.spec.js +321 -0
  265. package/lib/tabs/types.d.ts +3 -1
  266. package/lib/toolbar/ButtonBar.d.ts +2 -0
  267. package/lib/toolbar/LabelBar.d.ts +2 -0
  268. package/lib/toolbar/ToolBarGroup.d.ts +2 -0
  269. package/lib/toolbar/helpers.d.ts +2 -0
  270. package/lib/toolbar/index.d.ts +2 -0
  271. package/lib/toolbar/toolbar.spec.js +394 -0
  272. package/lib/toolbar/types.d.ts +4 -2
  273. package/lib/tooltip/index.d.ts +1 -1
  274. package/lib/tooltip/index.js +5 -1
  275. package/lib/tooltip/tooltip.spec.js +215 -0
  276. package/lib/tooltip/types.d.ts +1 -0
  277. package/lib/treeview/index.js +1 -0
  278. package/lib/treeview/treeview.spec.js +279 -0
  279. package/lib/{types-90c43ae1.d.ts → types-c1e2d0c9.d.ts} +2 -1
  280. package/lib/uitour/uitour.spec.js +176 -0
  281. package/package.json +67 -64
@@ -0,0 +1,169 @@
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 _withDropdown = _interopRequireDefault(require("./withDropdown"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ 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); }
16
+
17
+ 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; }
18
+
19
+ 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); } }
20
+
21
+ 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); }); }; }
22
+
23
+ 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); }
24
+
25
+ var WhappedComponent = function WhappedComponent(props) {
26
+ var btnRef = (0, _react2.useRef)(null);
27
+ return /*#__PURE__*/_react2.default.createElement(_react2.Fragment, null, /*#__PURE__*/_react2.default.createElement("button", {
28
+ ref: btnRef,
29
+ onClick: function onClick() {
30
+ return props.showDropdown();
31
+ }
32
+ }, "OPEN"), props.getDropdownPopup(btnRef.current));
33
+ };
34
+
35
+ var DropdownTest = (0, _withDropdown.default)(WhappedComponent);
36
+
37
+ var renderDropdownTestMock = function renderDropdownTestMock(props) {
38
+ return /*#__PURE__*/_react2.default.createElement(DropdownTest, _extends({
39
+ dropdown: true
40
+ }, props), /*#__PURE__*/_react2.default.createElement("div", null, "DROP_DOWN_CONTENT"));
41
+ };
42
+
43
+ describe('withDropdown', function () {
44
+ describe('Default', function () {
45
+ it('should render dropdown', function () {
46
+ var _render = (0, _react.render)(renderDropdownTestMock()),
47
+ container = _render.container,
48
+ getByTestId = _render.getByTestId,
49
+ getByText = _render.getByText;
50
+
51
+ _react.fireEvent.click(container.firstChild);
52
+
53
+ expect(getByTestId('dropdown-component')).toBeInTheDocument();
54
+ expect(getByText('DROP_DOWN_CONTENT')).toBeInTheDocument();
55
+ });
56
+ it('should apply customClass in dropdown', function () {
57
+ var _render2 = (0, _react.render)(renderDropdownTestMock({
58
+ customClassForDropdown: 'customClass'
59
+ })),
60
+ container = _render2.container,
61
+ getByTestId = _render2.getByTestId;
62
+
63
+ _react.fireEvent.click(container.firstChild);
64
+
65
+ expect(getByTestId('dropdown-component')).toBeInTheDocument();
66
+ expect(getByTestId('dropdown-component')).toHaveClass('customClass');
67
+ });
68
+ it('should control dropdown open with dropdownOpened prop', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
69
+ var _render3, rerender, getByTestId;
70
+
71
+ return regeneratorRuntime.wrap(function _callee$(_context) {
72
+ while (1) {
73
+ switch (_context.prev = _context.next) {
74
+ case 0:
75
+ _render3 = (0, _react.render)(renderDropdownTestMock()), rerender = _render3.rerender, getByTestId = _render3.getByTestId;
76
+ rerender(renderDropdownTestMock({
77
+ dropdownOpened: true
78
+ }));
79
+ _context.next = 4;
80
+ return (0, _react.waitFor)(function () {
81
+ return expect(getByTestId('dropdown-component')).toBeInTheDocument();
82
+ }, {
83
+ timeout: 3000
84
+ });
85
+
86
+ case 4:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }
91
+ }, _callee);
92
+ })));
93
+ it('should closeDropdownOnClickOutside', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
94
+ var _render4, getByText, queryByTestId;
95
+
96
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
97
+ while (1) {
98
+ switch (_context2.prev = _context2.next) {
99
+ case 0:
100
+ _render4 = // eslint-disable-next-line max-len
101
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("a", null, "OUTSIDE_CLICK"), renderDropdownTestMock())), getByText = _render4.getByText, queryByTestId = _render4.queryByTestId;
102
+
103
+ _react.fireEvent.click(getByText('OPEN'));
104
+
105
+ _context2.next = 4;
106
+ return (0, _react.waitFor)(function () {
107
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
108
+ }, {
109
+ timeout: 3000
110
+ });
111
+
112
+ case 4:
113
+ _react.fireEvent.click(getByText('OUTSIDE_CLICK'));
114
+
115
+ _context2.next = 7;
116
+ return (0, _react.waitFor)(function () {
117
+ return expect(queryByTestId('dropdown-component')).not.toBeInTheDocument();
118
+ }, {
119
+ timeout: 3000
120
+ });
121
+
122
+ case 7:
123
+ case "end":
124
+ return _context2.stop();
125
+ }
126
+ }
127
+ }, _callee2);
128
+ })));
129
+ it('should not closeDropdownOnClickOutside', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
130
+ var _render5, getByText, queryByTestId;
131
+
132
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
133
+ while (1) {
134
+ switch (_context3.prev = _context3.next) {
135
+ case 0:
136
+ // eslint-disable-next-line function-paren-newline
137
+ _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("a", null, "OUTSIDE_CLICK"), renderDropdownTestMock({
138
+ closeDropdownOnClickOutside: false
139
+ })) // eslint-disable-next-line function-paren-newline
140
+ ), getByText = _render5.getByText, queryByTestId = _render5.queryByTestId;
141
+
142
+ _react.fireEvent.click(getByText('OPEN'));
143
+
144
+ _context3.next = 4;
145
+ return (0, _react.waitFor)(function () {
146
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
147
+ }, {
148
+ timeout: 3000
149
+ });
150
+
151
+ case 4:
152
+ _react.fireEvent.click(getByText('OUTSIDE_CLICK'));
153
+
154
+ _context3.next = 7;
155
+ return (0, _react.waitFor)(function () {
156
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
157
+ }, {
158
+ timeout: 3000
159
+ });
160
+
161
+ case 7:
162
+ case "end":
163
+ return _context3.stop();
164
+ }
165
+ }
166
+ }, _callee3);
167
+ })));
168
+ });
169
+ });
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _react2 = require("@testing-library/react");
6
+
7
+ require("@testing-library/jest-dom/extend-expect");
8
+
9
+ var _index = _interopRequireDefault(require("./index"));
10
+
11
+ var _gridlayout = require("../gridlayout");
12
+
13
+ var _text = _interopRequireDefault(require("../inputs/text"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ describe('Fieldset', function () {
18
+ var fieldset = function fieldset(propsArgument) {
19
+ return /*#__PURE__*/_react.default.createElement(_index.default, propsArgument, /*#__PURE__*/_react.default.createElement(_gridlayout.GridRow, {
20
+ template: "columns",
21
+ style: {
22
+ marginBottom: 20
23
+ }
24
+ }, /*#__PURE__*/_react.default.createElement(_text.default, {
25
+ required: true,
26
+ name: "nome",
27
+ value: "XPTO",
28
+ label: "Nome",
29
+ gridLayout: "12 12 12 12"
30
+ })));
31
+ };
32
+
33
+ var sessionStorageMock = function sessionStorageMock() {
34
+ var store = {};
35
+ return {
36
+ getItem: function getItem(key) {
37
+ return store[key] || null;
38
+ },
39
+ setItem: function setItem(key, value) {
40
+ store[key] = value.toString();
41
+ },
42
+ removeItem: function removeItem(key) {
43
+ delete store[key];
44
+ },
45
+ clear: function clear() {
46
+ store = {};
47
+ }
48
+ };
49
+ };
50
+
51
+ var storePermissionAttrMock = function storePermissionAttrMock() {
52
+ Object.defineProperty(window, 'sessionStorage', {
53
+ value: sessionStorageMock()
54
+ });
55
+ var permissionMock = {
56
+ SG_SEGURANCA: [{
57
+ nome: 'Autorização',
58
+ codigo: 'SG_SEGURANCA_AUTORIZACAO',
59
+ permissoes: [{
60
+ codigo: 'SG_SEGURANCA_AUTORIZACAO_RECURSOS'
61
+ }],
62
+ itens: []
63
+ }]
64
+ };
65
+ sessionStorage.setItem('permissionsStorage', JSON.stringify(permissionMock));
66
+ };
67
+
68
+ it('should render correctly', function () {
69
+ var _render = (0, _react2.render)(fieldset()),
70
+ container = _render.container;
71
+
72
+ var gridRow = container.querySelector('.-withinput.grid-container');
73
+ var textField = container.querySelector('.textinput.text-align-left');
74
+ expect(container.firstChild).toHaveClass('fieldset-component');
75
+ expect(gridRow).toBeTruthy();
76
+ expect(textField).toBeTruthy();
77
+ expect(textField.name).toBe('nome');
78
+ expect(textField.value).toBe('XPTO');
79
+ });
80
+ it('should apply customClass', function () {
81
+ var customClass = 'testecustomclass';
82
+
83
+ var _render2 = (0, _react2.render)(fieldset({
84
+ customClass: customClass
85
+ })),
86
+ container = _render2.container;
87
+
88
+ expect(container.firstChild).toHaveClass(customClass);
89
+ });
90
+ it('should apply template', function () {
91
+ var template = 'columns';
92
+
93
+ var _render3 = (0, _react2.render)(fieldset({
94
+ template: template
95
+ })),
96
+ container = _render3.container;
97
+
98
+ var contentFieldSet = container.querySelector('.contentfieldset');
99
+ expect(contentFieldSet).toHaveClass("-template".concat(template));
100
+ });
101
+ it('should render title', function () {
102
+ var _render4 = (0, _react2.render)(fieldset({
103
+ title: 'Teste'
104
+ })),
105
+ container = _render4.container;
106
+
107
+ var fieldsetTitle = container.querySelector('.legend');
108
+ expect(fieldsetTitle).toBeTruthy();
109
+ expect(fieldsetTitle).toHaveTextContent('Teste');
110
+ });
111
+ it('should apply titleAlign', function () {
112
+ var titleAlign = 'right';
113
+
114
+ var _render5 = (0, _react2.render)(fieldset({
115
+ titleAlign: titleAlign,
116
+ title: 'Teste titleAlign'
117
+ })),
118
+ container = _render5.container;
119
+
120
+ var fieldsetTitle = container.querySelector('.legend');
121
+ expect(fieldsetTitle.align).toBe(titleAlign);
122
+ });
123
+ it('should apply titleCustomClass', function () {
124
+ var titleCustomClass = 'titleCustomClass';
125
+
126
+ var _render6 = (0, _react2.render)(fieldset({
127
+ titleCustomClass: titleCustomClass,
128
+ title: 'Teste titleCustomClass'
129
+ })),
130
+ container = _render6.container;
131
+
132
+ var fieldsetTitle = container.querySelector('.legend');
133
+ expect(fieldsetTitle).toHaveClass(titleCustomClass);
134
+ });
135
+ it('should apply colsCount', function () {
136
+ var colsCount = 4;
137
+
138
+ var _render7 = (0, _react2.render)(fieldset({
139
+ template: 'columns',
140
+ colsCount: colsCount
141
+ })),
142
+ container = _render7.container;
143
+
144
+ var contentFieldSet = container.querySelector('.contentfieldset.-templatecolumns');
145
+ expect(contentFieldSet).toHaveStyle("grid-template-columns: repeat(".concat(colsCount, ", 1fr)"));
146
+ });
147
+ it('should apply rowsCount', function () {
148
+ var rowsCount = 4;
149
+
150
+ var _render8 = (0, _react2.render)(fieldset({
151
+ template: 'rows',
152
+ rowsCount: rowsCount
153
+ })),
154
+ container = _render8.container;
155
+
156
+ var contentFieldSet = container.querySelector('.contentfieldset.-templaterows');
157
+ expect(contentFieldSet).toHaveStyle("grid-template-rows: repeat(".concat(rowsCount, ", 1fr)"));
158
+ });
159
+ it('should apply style', function () {
160
+ var style = {
161
+ paddingTop: '10px',
162
+ marginBottom: '10px'
163
+ };
164
+
165
+ var _render9 = (0, _react2.render)(fieldset({
166
+ style: style
167
+ })),
168
+ container = _render9.container;
169
+
170
+ expect(container.firstChild).toHaveStyle(style);
171
+ });
172
+ it('should apply styleContent', function () {
173
+ var styleContent = {
174
+ paddingTop: '10px',
175
+ marginBottom: '10px'
176
+ };
177
+
178
+ var _render10 = (0, _react2.render)(fieldset({
179
+ styleContent: styleContent
180
+ })),
181
+ container = _render10.container;
182
+
183
+ var contentFieldSet = container.querySelector('.contentfieldset');
184
+ expect(contentFieldSet).toHaveStyle(styleContent);
185
+ });
186
+ it('should apply styleTitle', function () {
187
+ var styleTitle = {
188
+ paddingTop: '10px',
189
+ marginBottom: '10px'
190
+ };
191
+
192
+ var _render11 = (0, _react2.render)(fieldset({
193
+ title: 'Teste',
194
+ styleTitle: styleTitle
195
+ })),
196
+ container = _render11.container;
197
+
198
+ var fieldsetTitle = container.querySelector('.legend');
199
+ expect(fieldsetTitle).toHaveStyle(styleTitle);
200
+ });
201
+ describe('prop type', function () {
202
+ it('should apply -primary css class', function () {
203
+ var type = 'primary';
204
+
205
+ var _render12 = (0, _react2.render)(fieldset({
206
+ type: type
207
+ })),
208
+ container = _render12.container;
209
+
210
+ expect(container.firstChild).toHaveClass("-".concat(type));
211
+ });
212
+ it('should apply -danger css class', function () {
213
+ var type = 'danger';
214
+
215
+ var _render13 = (0, _react2.render)(fieldset({
216
+ type: type
217
+ })),
218
+ container = _render13.container;
219
+
220
+ expect(container.firstChild).toHaveClass("-".concat(type));
221
+ });
222
+ it('should apply -success css class', function () {
223
+ var type = 'success';
224
+
225
+ var _render14 = (0, _react2.render)(fieldset({
226
+ type: type
227
+ })),
228
+ container = _render14.container;
229
+
230
+ expect(container.firstChild).toHaveClass("-".concat(type));
231
+ });
232
+ it('should apply -warning css class', function () {
233
+ var type = 'warning';
234
+
235
+ var _render15 = (0, _react2.render)(fieldset({
236
+ type: type
237
+ })),
238
+ container = _render15.container;
239
+
240
+ expect(container.firstChild).toHaveClass("-".concat(type));
241
+ });
242
+ it('should apply -info css class', function () {
243
+ var type = 'info';
244
+
245
+ var _render16 = (0, _react2.render)(fieldset({
246
+ type: type
247
+ })),
248
+ container = _render16.container;
249
+
250
+ expect(container.firstChild).toHaveClass("-".concat(type));
251
+ });
252
+ });
253
+ it('prop hasError should apply -witherror css class', function () {
254
+ var _render17 = (0, _react2.render)(fieldset({
255
+ hasError: true
256
+ })),
257
+ container = _render17.container;
258
+
259
+ expect(container.firstChild).toHaveClass('-witherror');
260
+ });
261
+ describe('prop gridCols', function () {
262
+ var gridCols = '4';
263
+ it('should wrapp subject within Grid component', function () {
264
+ var _render18 = (0, _react2.render)(fieldset({
265
+ gridCols: gridCols
266
+ })),
267
+ container = _render18.container;
268
+
269
+ expect(container.firstChild).toHaveClass('grid-container');
270
+ });
271
+ it('should apply into Grid component', function () {
272
+ var _render19 = (0, _react2.render)(fieldset({
273
+ gridCols: gridCols
274
+ })),
275
+ container = _render19.container;
276
+
277
+ expect(container.firstChild).toHaveClass("col-xs-".concat(gridCols));
278
+ });
279
+ });
280
+ describe('prop permissionAttr', function () {
281
+ beforeEach(function () {
282
+ window.sessionStorage.clear();
283
+ });
284
+ it('should allow default subject rendering', function () {
285
+ storePermissionAttrMock();
286
+
287
+ var _render20 = (0, _react2.render)(fieldset({
288
+ permissionAttr: {
289
+ module: 'SG_SEGURANCA',
290
+ feature: 'SG_SEGURANCA_AUTORIZACAO',
291
+ operation: 'SG_SEGURANCA_AUTORIZACAO_RECURSOS',
292
+ onDenied: 'unvisible'
293
+ }
294
+ })),
295
+ container = _render20.container;
296
+
297
+ expect(container.firstChild).toHaveClass('fieldset-component');
298
+ expect(container.querySelector('.no-permission-component')).not.toBeInTheDocument();
299
+ });
300
+ it('should turn subject unvisible', function () {
301
+ storePermissionAttrMock();
302
+ (0, _react2.render)(fieldset({
303
+ permissionAttr: {
304
+ module: 'SG_XPTO',
305
+ feature: 'SG_SEGURANCA_AUTORIZACAO',
306
+ operation: 'SG_SEGURANCA_AUTORIZACAO_RECURSOS',
307
+ onDenied: 'unvisible'
308
+ }
309
+ }));
310
+ expect(document.querySelector('.fieldset-component')).not.toBeInTheDocument();
311
+ });
312
+ it('should hide subject content', function () {
313
+ storePermissionAttrMock();
314
+
315
+ var _render21 = (0, _react2.render)(fieldset({
316
+ permissionAttr: {
317
+ module: 'SG_XPTO',
318
+ feature: 'SG_SEGURANCA_AUTORIZACAO',
319
+ operation: 'SG_SEGURANCA_AUTORIZACAO_RECURSOS',
320
+ onDenied: 'hideContent'
321
+ }
322
+ })),
323
+ container = _render21.container;
324
+
325
+ expect(container.firstChild).toHaveClass('fieldset-component');
326
+ expect(container.querySelector('.no-permission-component')).toBeInTheDocument();
327
+ });
328
+ });
329
+ });
@@ -1,11 +1,12 @@
1
1
  import React__default from 'react';
2
2
  import { IFieldProps } from './types.js';
3
3
  import '../inputs/select/types.js';
4
+ import '../@types/Align.js';
4
5
  import '../@types/DataCombo.js';
5
6
  import '../@types/PermissionAttr.js';
6
7
  import '../inputs/base/types.js';
7
8
  import '../@types/Period.js';
8
9
 
9
- declare const _default: React__default.ForwardRefExoticComponent<IFieldProps & React__default.RefAttributes<HTMLElement>>;
10
+ declare const _default: React__default.ForwardRefExoticComponent<Pick<IFieldProps & React__default.RefAttributes<unknown>, "key" | keyof IFieldProps> & React__default.RefAttributes<HTMLElement>>;
10
11
 
11
12
  export { _default as default };
package/lib/form/Field.js CHANGED
@@ -20,32 +20,36 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
20
20
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
21
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
22
  var getEvents = function getEvents(_ref) {
23
- var name = _ref.name,
24
- validators = _ref.validators,
23
+ var _ref$validators = _ref.validators,
24
+ validators = _ref$validators === void 0 ? [] : _ref$validators,
25
+ name = _ref.name,
25
26
  _onBlur = _ref.onBlur,
26
27
  handlerFieldValidade = _ref.handlerFieldValidade,
27
28
  validatorFromComponent = _ref.validatorFromComponent,
28
29
  handlerFieldChange = _ref.handlerFieldChange,
29
- _onChange = _ref.onChange;
30
- if (!(validators || validatorFromComponent || _onBlur)) return {};
30
+ _onChange = _ref.onChange,
31
+ handleShowValidateMessages = _ref.handleShowValidateMessages;
32
+ if (!(validators || validatorFromComponent || _onBlur || _onChange)) return {};
31
33
  var validatorsArray = (0, _helpers.getValidatorsArray)(validators, validatorFromComponent);
32
34
  return {
33
35
  onBlur: function onBlur(e) {
34
36
  if (validatorsArray && e.target && handlerFieldValidade) {
35
37
  handlerFieldValidade(name, e.target.value, validatorsArray);
38
+ handleShowValidateMessages(true);
36
39
  }
37
40
  if (_onBlur) _onBlur(e);
38
41
  },
39
42
  onChange: function onChange(e) {
40
43
  if (validatorsArray && e.target && handlerFieldValidade) {
41
44
  handlerFieldValidade(name, e.target.value, validatorsArray);
45
+ handleShowValidateMessages(true);
42
46
  }
43
47
  if (handlerFieldChange) handlerFieldChange(e);
44
48
  if (_onChange) _onChange(e);
45
49
  }
46
50
  };
47
51
  };
48
- var getCustomProps = function getCustomProps(props, setValidatorFromComponent) {
52
+ var getCustomProps = function getCustomProps(props, handlerSetComponentValidator) {
49
53
  var value = props.value,
50
54
  data = props.data,
51
55
  name = props.name,
@@ -65,38 +69,43 @@ var getCustomProps = function getCustomProps(props, setValidatorFromComponent) {
65
69
  } else if (component.displayName === 'CpfField' || component.displayName === 'CnpjField') {
66
70
  return {
67
71
  value: _lodash.default.get(data, name),
68
- handlerSetComponentValidator: setValidatorFromComponent
72
+ handlerSetComponentValidator: handlerSetComponentValidator
69
73
  };
70
74
  }
71
75
  return {
72
76
  value: _lodash.default.get(data, name)
73
77
  };
74
78
  };
75
- var Field = function Field(props) {
79
+ var Field = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
80
  var handlerFieldChange = props.handlerFieldChange,
77
- onChange = props.onChange;
78
- var _useState = (0, _react.useState)(undefined),
81
+ onChange = props.onChange,
82
+ onBlur = props.onBlur,
83
+ name = props.name,
84
+ validators = props.validators;
85
+ var _useState = (0, _react.useState)(false),
79
86
  _useState2 = _slicedToArray(_useState, 2),
80
- validatorFromComponent = _useState2[0],
81
- setValidatorFromComponent = _useState2[1];
87
+ showValidateMessages = _useState2[0],
88
+ setShowValidateMessages = _useState2[1];
82
89
  var _useContext = (0, _react.useContext)(_helpers.withFieldContext),
83
- handlerSetValidatorFromComponent = _useContext.handlerSetValidatorFromComponent;
84
- (0, _react.useEffect)(function () {
85
- if (validatorFromComponent && handlerSetValidatorFromComponent) {
86
- handlerSetValidatorFromComponent(validatorFromComponent);
87
- }
88
- }, [validatorFromComponent]);
90
+ handlerSetValidatorFromComponent = _useContext.handlerSetValidatorFromComponent,
91
+ validatorFromComponent = _useContext.validatorFromComponent;
89
92
  return /*#__PURE__*/_react.default.createElement(props.component, _extends({}, props, getEvents({
90
- name: props.name,
91
- validators: props.validators,
92
- onBlur: props.onBlur,
93
+ name: name,
94
+ validators: validators,
95
+ onBlur: onBlur,
93
96
  validatorFromComponent: validatorFromComponent,
94
97
  handlerFieldValidade: props.handlerFieldValidade ? props.handlerFieldValidade : function () {},
95
98
  handlerFieldChange: handlerFieldChange,
96
- onChange: onChange
97
- }), getCustomProps(props, setValidatorFromComponent), {
98
- errorMessages: (0, _helpers.getErrorMessages)(props)
99
+ onChange: onChange,
100
+ handleShowValidateMessages: function handleShowValidateMessages(value) {
101
+ return setShowValidateMessages(value);
102
+ }
103
+ }), getCustomProps(props, handlerSetValidatorFromComponent), {
104
+ ref: ref,
105
+ errorMessages: (0, _helpers.getErrorMessages)(_extends({}, props, {
106
+ fieldErrors: showValidateMessages ? props.fieldErrors : {}
107
+ }))
99
108
  }));
100
- };
109
+ });
101
110
  var _default = (0, _withFieldHOC.default)(Field);
102
111
  exports.default = _default;
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { IFieldArrayProps } from './types.js';
3
3
  import '../inputs/select/types.js';
4
+ import '../@types/Align.js';
4
5
  import '../@types/DataCombo.js';
5
6
  import '../@types/PermissionAttr.js';
6
7
  import '../inputs/base/types.js';