linear-react-components-ui 0.4.75 → 0.4.76-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +23 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +25 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +77 -43
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +76 -10
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +15 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/color/color_input.spec.js +174 -0
  60. package/lib/inputs/color/index.js +2 -2
  61. package/lib/inputs/date/date.spec.js +344 -0
  62. package/lib/inputs/date/index.js +7 -6
  63. package/lib/inputs/mask/Cpf.js +9 -9
  64. package/lib/inputs/mask/input_mask.spec.js +590 -0
  65. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  66. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  67. package/lib/inputs/multiSelect/helper.js +18 -0
  68. package/lib/inputs/multiSelect/index.js +343 -0
  69. package/lib/inputs/number/BaseNumber.js +1 -1
  70. package/lib/inputs/number/index.js +7 -5
  71. package/lib/inputs/number/numberfield.spec.js +215 -0
  72. package/lib/inputs/period/Dialog.js +38 -0
  73. package/lib/inputs/period/Dropdown.js +90 -0
  74. package/lib/inputs/period/PeriodList.js +79 -0
  75. package/lib/inputs/period/helper.js +118 -0
  76. package/lib/inputs/period/index.js +490 -0
  77. package/lib/inputs/search/search_input.spec.js +209 -0
  78. package/lib/inputs/select/Dropdown.js +4 -4
  79. package/lib/inputs/select/index.js +26 -3
  80. package/lib/inputs/select/multiple/index.js +9 -7
  81. package/lib/inputs/select/select.spec.js +391 -0
  82. package/lib/inputs/select/simple/index.js +30 -18
  83. package/lib/inputs/text/textfield.spec.js +215 -0
  84. package/lib/inputs/textarea/textarea.spec.js +59 -0
  85. package/lib/internals/withTooltip.js +83 -82
  86. package/lib/labelMessages/index.js +3 -2
  87. package/lib/labelMessages/labelMessages.spec.js +176 -0
  88. package/lib/labels/label.spec.js +162 -0
  89. package/lib/list/Item.js +3 -3
  90. package/lib/list/index.js +21 -10
  91. package/lib/list/list.spec.js +611 -0
  92. package/lib/menus/float/MenuItem.js +25 -8
  93. package/lib/menus/float/float-menu.spec.js +221 -0
  94. package/lib/menus/sidenav/index.js +7 -3
  95. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  96. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  97. package/lib/noPermission/index.js +2 -1
  98. package/lib/panel/panel.spec.js +216 -0
  99. package/lib/popover/index.js +2 -1
  100. package/lib/popover/popover.spec.js +146 -0
  101. package/lib/progress/Bar.js +40 -9
  102. package/lib/progress/index.js +12 -4
  103. package/lib/progress/progress.spec.js +86 -0
  104. package/lib/radio/radio.spec.js +189 -0
  105. package/lib/spinner/SpinnerLoading.js +14 -24
  106. package/lib/spinner/index.js +6 -1
  107. package/lib/spinner/spinner.spec.js +152 -0
  108. package/lib/split/Split.js +10 -12
  109. package/lib/split/split.spec.js +151 -0
  110. package/lib/table/Header.js +3 -1
  111. package/lib/table/Row.js +2 -5
  112. package/lib/table/index.js +1 -4
  113. package/lib/table/table.spec.js +352 -0
  114. package/lib/tabs/DropdownItems.js +84 -0
  115. package/lib/tabs/Menu.js +18 -5
  116. package/lib/tabs/MenuItems.js +7 -7
  117. package/lib/tabs/Panel.js +1 -3
  118. package/lib/tabs/index.js +126 -17
  119. package/lib/tabs/tabs.spec.js +346 -0
  120. package/lib/toolbar/index.js +8 -4
  121. package/lib/toolbar/toolbar.spec.js +394 -0
  122. package/lib/tooltip/index.js +13 -0
  123. package/lib/tooltip/tooltip.spec.js +203 -0
  124. package/lib/treeview/Node.js +288 -18
  125. package/lib/treeview/index.js +448 -35
  126. package/lib/treeview/treeview.spec.js +261 -0
  127. package/package.json +19 -9
  128. package/.DS_Store +0 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("@testing-library/jest-dom");
10
+
11
+ var _storageMock = _interopRequireWildcard(require("../../../../config/jest/storageMock"));
12
+
13
+ var _index = _interopRequireDefault(require("./index"));
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+
21
+ 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); }
22
+
23
+ var colorField = function colorField(props) {
24
+ return /*#__PURE__*/_react["default"].createElement(_index["default"], _extends({}, props, {
25
+ value: "#AAAAAA",
26
+ onChange: function onChange() {}
27
+ }));
28
+ };
29
+
30
+ describe('ColorField', function () {
31
+ it('should render correctly', function () {
32
+ var _render = (0, _react2.render)(colorField()),
33
+ container = _render.container;
34
+
35
+ expect(container.firstChild).toBeTruthy();
36
+ });
37
+ it('should be apply value', function () {
38
+ var value = '#AAAAAA';
39
+
40
+ var _render2 = (0, _react2.render)(colorField({
41
+ value: value
42
+ })),
43
+ container = _render2.container;
44
+
45
+ var inputHTML = container.querySelector('.textinput');
46
+ expect(inputHTML.value).toBe(value);
47
+ });
48
+ it('should be apply asTextField', function () {
49
+ var _render3 = (0, _react2.render)(colorField({
50
+ asTextField: true
51
+ })),
52
+ container = _render3.container;
53
+
54
+ expect(container.querySelector('.input-base-component')).toBeTruthy();
55
+ expect(container.querySelector('.sidebuttons .colorpicker-colormirror')).toBeTruthy();
56
+ expect(container.querySelector('.button-component.colorpicker-palettebutton')).toBeTruthy();
57
+ });
58
+ it('should call onButtonClick', function () {
59
+ var onButtonClick = jest.fn();
60
+
61
+ var _render4 = (0, _react2.render)(colorField({
62
+ onButtonClick: onButtonClick
63
+ })),
64
+ container = _render4.container;
65
+
66
+ _react2.fireEvent.click(container.querySelector('.button-component.colorpicker-palettebutton'));
67
+
68
+ expect(onButtonClick).toBeCalled();
69
+ });
70
+ describe('Permission', function () {
71
+ var setSessionStorageMock = function setSessionStorageMock() {
72
+ Object.defineProperty(window, 'sessionStorage', {
73
+ value: (0, _storageMock["default"])()
74
+ });
75
+ };
76
+
77
+ it('should render subject when permission granted', function () {
78
+ setSessionStorageMock();
79
+ var permissionAttr = (0, _storageMock.permissionAttrMockAuthorized)('unvisible');
80
+
81
+ var _render5 = (0, _react2.render)(colorField({
82
+ permissionAttr: permissionAttr
83
+ })),
84
+ container = _render5.container;
85
+
86
+ expect(container.querySelector('.input-base-component')).not.toBeNull();
87
+ });
88
+ it('should check permission, be unavaible and onDenied is unvisible', function () {
89
+ setSessionStorageMock();
90
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('unvisible');
91
+
92
+ var _render6 = (0, _react2.render)(colorField({
93
+ permissionAttr: permissionAttr
94
+ })),
95
+ container = _render6.container;
96
+
97
+ expect(container.querySelector('.input-base-component')).toBeNull();
98
+ });
99
+ it('should check permission, be unavaible and onDenied is disabled', function () {
100
+ setSessionStorageMock();
101
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('disabled');
102
+ var onChange = jest.fn();
103
+
104
+ var _render7 = (0, _react2.render)(colorField({
105
+ permissionAttr: permissionAttr,
106
+ onChange: onChange
107
+ })),
108
+ container = _render7.container;
109
+
110
+ var inputHTML = container.querySelector('.textinput');
111
+ var inputWrapper = container.querySelector('.inputwrapper');
112
+
113
+ _react2.fireEvent.change(inputHTML, {
114
+ target: {
115
+ value: '#000000'
116
+ }
117
+ });
118
+
119
+ expect(inputHTML.disabled).toBeTruthy();
120
+ expect(onChange).not.toBeCalled();
121
+ expect(inputWrapper).toHaveClass('-disabled');
122
+ });
123
+ it('should check permission, be unavaible and onDenied is readOnly', function () {
124
+ setSessionStorageMock();
125
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('disabled');
126
+ var onChange = jest.fn();
127
+
128
+ var _render8 = (0, _react2.render)(colorField({
129
+ permissionAttr: permissionAttr,
130
+ onChange: onChange
131
+ })),
132
+ container = _render8.container;
133
+
134
+ var inputHTML = container.querySelector('.textinput');
135
+ var inputWrapper = container.querySelector('.inputwrapper');
136
+
137
+ _react2.fireEvent.change(inputHTML, {
138
+ target: {
139
+ value: '#000000'
140
+ }
141
+ });
142
+
143
+ expect(inputHTML.disabled).toBeTruthy();
144
+ expect(onChange).not.toBeCalled();
145
+ expect(inputWrapper).toHaveClass('-disabled');
146
+ });
147
+ it('should check permission, be unavaible and onDenied is hideContent', function () {
148
+ setSessionStorageMock();
149
+ var permissionAttr = (0, _storageMock.permissionAttrMockUnauthorized)('hideContent');
150
+ var onChange = jest.fn();
151
+
152
+ var _render9 = (0, _react2.render)(colorField({
153
+ permissionAttr: permissionAttr,
154
+ onChange: onChange,
155
+ value: '#000000'
156
+ })),
157
+ container = _render9.container;
158
+
159
+ var inputHTML = container.querySelector('.textinput');
160
+ var inputWrapper = container.querySelector('.inputwrapper');
161
+
162
+ _react2.fireEvent.change(inputHTML, {
163
+ target: {
164
+ value: '#000000'
165
+ }
166
+ });
167
+
168
+ expect(inputHTML.value).toBe('');
169
+ expect(inputHTML.disabled).toBeTruthy();
170
+ expect(onChange).not.toBeCalled();
171
+ expect(inputWrapper).toHaveClass('-disabled');
172
+ });
173
+ });
174
+ });
@@ -87,7 +87,7 @@ var ColorPicker = function ColorPicker(props) {
87
87
  className: "colorpicker-hideinputcolor",
88
88
  ref: inputRef,
89
89
  type: "color",
90
- value: color,
90
+ defaultValue: color,
91
91
  name: name,
92
92
  onClick: function onClick(e) {
93
93
  return onButtonClick ? onButtonClick(e) : null;
@@ -106,7 +106,7 @@ var ColorPicker = function ColorPicker(props) {
106
106
  name: name,
107
107
  ref: inputRef,
108
108
  type: "color",
109
- value: color,
109
+ defaultValue: color,
110
110
  onClick: function onClick(e) {
111
111
  return onButtonClick ? onButtonClick(e) : null;
112
112
  },
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _moment = _interopRequireDefault(require("moment"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ var _index = _interopRequireDefault(require("./index"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+
15
+ describe('DatePicker', function () {
16
+ var datePicker = function datePicker(datePickerProps) {
17
+ return /*#__PURE__*/_react["default"].createElement(_index["default"], datePickerProps);
18
+ };
19
+
20
+ describe('prop value should', function () {
21
+ it('apply valid date string', function () {
22
+ var value = '12/12/2001';
23
+
24
+ var _render = (0, _react2.render)(datePicker({
25
+ value: value
26
+ })),
27
+ container = _render.container;
28
+
29
+ var inputContent = container.querySelector('.textinput');
30
+ expect(inputContent.value).toBe(value);
31
+ });
32
+ it('apply moment object', function () {
33
+ var value = (0, _moment["default"])();
34
+
35
+ var _render2 = (0, _react2.render)(datePicker({
36
+ value: value
37
+ })),
38
+ container = _render2.container;
39
+
40
+ var inputContent = container.querySelector('.textinput');
41
+ expect(inputContent.value).toBe(value.format('DD/MM/YYYY'));
42
+ });
43
+ it('not apply invalid string date', function () {
44
+ var value = '29/29/2001';
45
+
46
+ var _render3 = (0, _react2.render)(datePicker({
47
+ value: value
48
+ })),
49
+ container = _render3.container;
50
+
51
+ var inputContent = container.querySelector('.textinput');
52
+ expect(inputContent.value).toBe('__/__/____');
53
+ });
54
+ });
55
+ describe('prop showButtonOpen should', function () {
56
+ it('render calendar button when true', function () {
57
+ var _render4 = (0, _react2.render)(datePicker({
58
+ showButtonOpen: true
59
+ })),
60
+ container = _render4.container;
61
+
62
+ var calendarButton = container.querySelector('.calendar-button');
63
+ expect(calendarButton).toBeTruthy();
64
+ });
65
+ it('not render calendar button when false', function () {
66
+ var _render5 = (0, _react2.render)(datePicker({
67
+ showButtonOpen: false
68
+ })),
69
+ container = _render5.container;
70
+
71
+ var calendarButton = container.querySelector('.calendar-button');
72
+ expect(calendarButton).not.toBeTruthy();
73
+ });
74
+ });
75
+ describe('prop shouldCloseOnSelect', function () {
76
+ it('when false should not close Calendar after date beeing chosed', function () {
77
+ var _render6 = (0, _react2.render)(datePicker({
78
+ shouldCloseOnSelect: false
79
+ })),
80
+ container = _render6.container;
81
+
82
+ var inputContent = container.querySelector('.textinput');
83
+ var calendarComponent = document.querySelector('.calendar-component');
84
+ expect(calendarComponent).not.toBeInTheDocument();
85
+
86
+ _react2.fireEvent.focus(inputContent);
87
+
88
+ calendarComponent = document.querySelector('.calendar-component');
89
+ var dayButtons = document.querySelectorAll('.daybutton');
90
+
91
+ _react2.fireEvent.click(dayButtons[0]);
92
+
93
+ expect(calendarComponent).toBeInTheDocument();
94
+ });
95
+ it('when true should close Calendar after date beeing chosed', function () {
96
+ var _render7 = (0, _react2.render)(datePicker({
97
+ shouldCloseOnSelect: true
98
+ })),
99
+ container = _render7.container;
100
+
101
+ var inputContent = container.querySelector('.textinput');
102
+ var calendarComponent = document.querySelector('.calendar-component');
103
+ expect(calendarComponent).not.toBeInTheDocument();
104
+
105
+ _react2.fireEvent.focus(inputContent);
106
+
107
+ calendarComponent = document.querySelector('.calendar-component');
108
+ var dayButtons = document.querySelectorAll('.daybutton');
109
+
110
+ _react2.fireEvent.click(dayButtons[0]);
111
+
112
+ expect(calendarComponent).not.toBeInTheDocument();
113
+ });
114
+ });
115
+ describe('prop openOnFocus', function () {
116
+ it('when false should not open Calendar when input receive focus', function () {
117
+ var _render8 = (0, _react2.render)(datePicker({
118
+ openOnFocus: false
119
+ })),
120
+ container = _render8.container;
121
+
122
+ var inputContent = container.querySelector('.textinput');
123
+
124
+ _react2.fireEvent.focus(inputContent);
125
+
126
+ var calendarComponent = document.querySelector('.calendar-component');
127
+ expect(calendarComponent).not.toBeInTheDocument();
128
+ });
129
+ it('when true should open Calendar when input receive focus', function () {
130
+ var _render9 = (0, _react2.render)(datePicker({
131
+ openOnFocus: true
132
+ })),
133
+ container = _render9.container;
134
+
135
+ var inputContent = container.querySelector('.textinput');
136
+
137
+ _react2.fireEvent.focus(inputContent);
138
+
139
+ var calendarComponent = document.querySelector('.calendar-component');
140
+ expect(calendarComponent).toBeInTheDocument();
141
+ });
142
+ });
143
+ describe('prop showCalendarInDialog', function () {
144
+ it('when true should render Calendar within Dialog', function () {
145
+ var _render10 = (0, _react2.render)(datePicker({
146
+ showCalendarInDialog: true
147
+ })),
148
+ container = _render10.container;
149
+
150
+ var inputContent = container.querySelector('.textinput');
151
+
152
+ _react2.fireEvent.focus(inputContent);
153
+
154
+ var calendarComponent = document.querySelector('.dialog .calendar-component');
155
+ expect(calendarComponent).toBeTruthy();
156
+ });
157
+ it('when false should render Calendar within Dropdown', function () {
158
+ var _render11 = (0, _react2.render)(datePicker({
159
+ showCalendarInDialog: false
160
+ })),
161
+ container = _render11.container;
162
+
163
+ var inputContent = container.querySelector('.textinput');
164
+
165
+ _react2.fireEvent.focus(inputContent);
166
+
167
+ var calendarComponent = document.querySelector('.datepicker-component > .calendar-component');
168
+ expect(calendarComponent).toBeTruthy();
169
+ });
170
+ });
171
+ it('should apply dialogSize', function () {
172
+ var dialogSize = {
173
+ width: '750px',
174
+ height: '600px'
175
+ };
176
+
177
+ var _render12 = (0, _react2.render)(datePicker({
178
+ showCalendarInDialog: true,
179
+ dialogSize: dialogSize
180
+ })),
181
+ container = _render12.container;
182
+
183
+ var inputContent = container.querySelector('.textinput');
184
+
185
+ _react2.fireEvent.focus(inputContent);
186
+
187
+ var dialogWrapper = _react2.screen.getByTestId('dialog-wrapper');
188
+
189
+ expect(dialogWrapper).toHaveStyle(dialogSize);
190
+ });
191
+ describe('prop calendarColorStyle', function () {
192
+ it('when receive "primary" add -primary css class to Calendar', function () {
193
+ var _render13 = (0, _react2.render)(datePicker({
194
+ calendarColorStyle: 'primary'
195
+ })),
196
+ container = _render13.container;
197
+
198
+ var inputContent = container.querySelector('.textinput');
199
+
200
+ _react2.fireEvent.focus(inputContent);
201
+
202
+ var calendarComponent = document.querySelector('.calendar-component');
203
+ expect(calendarComponent).toHaveClass('-primary');
204
+ });
205
+ it('when receive "success" add -success css class to Calendar', function () {
206
+ var _render14 = (0, _react2.render)(datePicker({
207
+ calendarColorStyle: 'success'
208
+ })),
209
+ container = _render14.container;
210
+
211
+ var inputContent = container.querySelector('.textinput');
212
+
213
+ _react2.fireEvent.focus(inputContent);
214
+
215
+ var calendarComponent = document.querySelector('.calendar-component');
216
+ expect(calendarComponent).toHaveClass('-success');
217
+ });
218
+ it('when receive "danger" add -danger css class to Calendar', function () {
219
+ var _render15 = (0, _react2.render)(datePicker({
220
+ calendarColorStyle: 'danger'
221
+ })),
222
+ container = _render15.container;
223
+
224
+ var inputContent = container.querySelector('.textinput');
225
+
226
+ _react2.fireEvent.focus(inputContent);
227
+
228
+ var calendarComponent = document.querySelector('.calendar-component');
229
+ expect(calendarComponent).toHaveClass('-danger');
230
+ });
231
+ it('when receive "info" add -info css class to Calendar', function () {
232
+ var _render16 = (0, _react2.render)(datePicker({
233
+ calendarColorStyle: 'info'
234
+ })),
235
+ container = _render16.container;
236
+
237
+ var inputContent = container.querySelector('.textinput');
238
+
239
+ _react2.fireEvent.focus(inputContent);
240
+
241
+ var calendarComponent = document.querySelector('.calendar-component');
242
+ expect(calendarComponent).toHaveClass('-info');
243
+ });
244
+ it('when receive "warning" add -warning css class to Calendar', function () {
245
+ var _render17 = (0, _react2.render)(datePicker({
246
+ calendarColorStyle: 'warning'
247
+ })),
248
+ container = _render17.container;
249
+
250
+ var inputContent = container.querySelector('.textinput');
251
+
252
+ _react2.fireEvent.focus(inputContent);
253
+
254
+ var calendarComponent = document.querySelector('.calendar-component');
255
+ expect(calendarComponent).toHaveClass('-warning');
256
+ });
257
+ });
258
+ it('prop required should render span for required field', function () {
259
+ var _render18 = (0, _react2.render)(datePicker({
260
+ label: 'teste',
261
+ required: true
262
+ })),
263
+ container = _render18.container;
264
+
265
+ var requiredLabel = container.querySelector('.input-base-component > .labelcontainer > .label > .-requiredlabel');
266
+ expect(requiredLabel).toBeTruthy();
267
+ expect(requiredLabel).toHaveTextContent('*');
268
+ });
269
+ it('should apply onComplete', function () {
270
+ var onComplete = jest.fn();
271
+
272
+ var _render19 = (0, _react2.render)(datePicker({
273
+ onComplete: onComplete
274
+ })),
275
+ container = _render19.container;
276
+
277
+ var inputContent = container.querySelector('.textinput');
278
+
279
+ _react2.fireEvent.change(inputContent, {
280
+ target: {
281
+ value: (0, _moment["default"])()
282
+ }
283
+ });
284
+
285
+ expect(onComplete).toBeCalled();
286
+ });
287
+ it('should apply onBlur', function () {
288
+ var onBlur = jest.fn();
289
+
290
+ var _render20 = (0, _react2.render)(datePicker({
291
+ onBlur: onBlur
292
+ })),
293
+ container = _render20.container;
294
+
295
+ var inputContent = container.querySelector('.textinput');
296
+
297
+ _react2.fireEvent.blur(inputContent);
298
+
299
+ expect(onBlur).toBeCalled();
300
+ });
301
+ it('should apply onFocus', function () {
302
+ var onFocus = jest.fn();
303
+
304
+ var _render21 = (0, _react2.render)(datePicker({
305
+ onFocus: onFocus
306
+ })),
307
+ container = _render21.container;
308
+
309
+ var inputContent = container.querySelector('.textinput');
310
+
311
+ _react2.fireEvent.focus(inputContent);
312
+
313
+ expect(onFocus).toBeCalled();
314
+ });
315
+ it('should apply onChange', function () {
316
+ var onChange = jest.fn();
317
+
318
+ var _render22 = (0, _react2.render)(datePicker({
319
+ onChange: onChange
320
+ })),
321
+ container = _render22.container;
322
+
323
+ var inputContent = container.querySelector('.textinput');
324
+
325
+ _react2.fireEvent.change(inputContent, {
326
+ target: {
327
+ value: (0, _moment["default"])()
328
+ }
329
+ });
330
+
331
+ expect(onChange).toBeCalled();
332
+ });
333
+ it('should apply name', function () {
334
+ var name = 'sus';
335
+
336
+ var _render23 = (0, _react2.render)(datePicker({
337
+ name: name
338
+ })),
339
+ container = _render23.container;
340
+
341
+ var inputContent = container.querySelector('.textinput');
342
+ expect(inputContent.name).toBe(name);
343
+ });
344
+ });
@@ -60,6 +60,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
60
60
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
61
61
 
62
62
  var CALENDAR_BUTTON_WIDTH = 24;
63
+ var dateFormat = 'DD/MM/YYYY';
63
64
 
64
65
  var DatePicker = /*#__PURE__*/function (_Component) {
65
66
  _inherits(DatePicker, _Component);
@@ -115,7 +116,7 @@ var DatePicker = /*#__PURE__*/function (_Component) {
115
116
  var required = this.props.required;
116
117
  if (onDenied && onDenied.unvisible) return null;
117
118
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_BaseMask["default"], _extends({}, this.props, {
118
- value: !value ? ' ' : value.format('DD/MM/YYYY'),
119
+ value: !value ? ' ' : value.format(dateFormat),
119
120
  mask: "00/00/0000",
120
121
  onComplete: function onComplete(e, date) {
121
122
  _this2.setValue(e, date);
@@ -153,7 +154,7 @@ Object.defineProperty(DatePicker, "getDerivedStateFromProps", {
153
154
  var value = props.value;
154
155
  var propsValue = state.propsValue;
155
156
 
156
- if (value && (0, _moment["default"])(value).format() !== 'Invalid date' && (0, _moment["default"])(propsValue).format() !== (0, _moment["default"])(value).format()) {
157
+ if (value && (0, _moment["default"])(value, dateFormat).format() !== 'Invalid date' && (0, _moment["default"])(propsValue, dateFormat).format() !== (0, _moment["default"])(value, dateFormat).format()) {
157
158
  return {
158
159
  value: (0, _moment["default"])(value),
159
160
  propsValue: value
@@ -261,8 +262,8 @@ var _initialiseProps = function _initialiseProps() {
261
262
  var onChange = _this3.props.onChange;
262
263
 
263
264
  if (onChange) {
264
- if ((0, _moment["default"])(_value, 'DD/MM/YYYY', true).isValid()) {
265
- var newValue = (0, _moment["default"])(_value, 'DD/MM/YYYY').format('YYYY-MM-DD');
265
+ if ((0, _moment["default"])(_value, dateFormat, true).isValid()) {
266
+ var newValue = (0, _moment["default"])(_value, dateFormat).format('YYYY-MM-DD');
266
267
  var obj = {
267
268
  target: {
268
269
  value: newValue,
@@ -308,7 +309,7 @@ var _initialiseProps = function _initialiseProps() {
308
309
  if (_this3.props.shouldCloseOnSelect) showCalendar = false;
309
310
 
310
311
  _this3.setState({
311
- value: (0, _moment["default"])(_value2, 'DD/MM/YYYY'),
312
+ value: (0, _moment["default"])(_value2, dateFormat),
312
313
  showCalendar: showCalendar
313
314
  });
314
315
  }
@@ -432,7 +433,7 @@ var _initialiseProps = function _initialiseProps() {
432
433
  };
433
434
 
434
435
  DatePicker.propTypes = {
435
- value: _propTypes["default"].string,
436
+ value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
436
437
  showButtonOpen: _propTypes["default"].bool,
437
438
  shouldCloseOnSelect: _propTypes["default"].bool,
438
439
  setFocusOnSelect: _propTypes["default"].bool,
@@ -54,18 +54,18 @@ var CpfField = function CpfField(props) {
54
54
  });
55
55
  }
56
56
  }, []);
57
+ var debouncedOnChange = (0, _react.useMemo)(function () {
58
+ return _lodash["default"].debounce(function (value) {
59
+ (0, _helpers.CPFValidation)(value, !handlerSetComponentValidator ? setMessageFromValidator : undefined);
60
+ }, 300);
61
+ }, [handlerSetComponentValidator]);
62
+ (0, _react.useEffect)(function () {
63
+ return debouncedOnChange.cancel;
64
+ }, []);
57
65
 
58
66
  var onChange = function onChange(e) {
59
67
  if (enableValidation) {
60
- var debouncedOnChange;
61
-
62
- if (!debouncedOnChange) {
63
- debouncedOnChange = _lodash["default"].debounce(function () {
64
- (0, _helpers.CPFValidation)(e.target.value, !handlerSetComponentValidator ? setMessageFromValidator : undefined);
65
- }, 300);
66
- }
67
-
68
- debouncedOnChange();
68
+ debouncedOnChange(e.target.value);
69
69
  if (props.onChange) props.onChange(e);
70
70
  }
71
71