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
@@ -1,5 +1,11 @@
1
1
  @import "colors.scss";
2
2
  @import "effects.scss";
3
+
4
+ .table-component,
5
+ .innertable {
6
+ contain: strict;
7
+ }
8
+
3
9
  .table-component {
4
10
  width: 100%;
5
11
  max-width: 100%;
@@ -8,7 +14,8 @@
8
14
  font-size: 14px;
9
15
  max-height: 20em;
10
16
  position: relative;
11
- > .headercontainer, .bodycontainer {
17
+ > .headercontainer,
18
+ .bodycontainer {
12
19
  width: 100%;
13
20
  .innertable {
14
21
  width: 100%;
@@ -31,7 +38,8 @@
31
38
  vertical-align: middle;
32
39
  border-bottom: 1px solid $component-border-color-soft;
33
40
  line-height: 18px;
34
- > .hidden, > .rowhover {
41
+ > .hidden,
42
+ > .rowhover {
35
43
  display: none;
36
44
  animation: revealelement 0.2s forwards ease-in-out;
37
45
  }
@@ -39,7 +47,7 @@
39
47
  border-bottom: 0;
40
48
  }
41
49
  }
42
-
50
+
43
51
  > .bodycontainer > .innertable > .tbody > .trow,
44
52
  > .tbody > .trow {
45
53
  &.-selected {
@@ -48,7 +56,7 @@
48
56
  }
49
57
  &:hover {
50
58
  > .rowcolumn > .rowhover {
51
- display: table
59
+ display: table;
52
60
  }
53
61
  }
54
62
  }
@@ -84,7 +92,7 @@
84
92
  background: $header-container-bg;
85
93
  }
86
94
  > .headercontainer > .innertable > .theader,
87
- > .theader {
95
+ > .theader {
88
96
  background: $header-container-bg;
89
97
  }
90
98
  }
@@ -1,4 +1,29 @@
1
1
  @import "colors.scss";
2
+ %tab-closepanel {
3
+ background-color: transparent;
4
+ border: 0;
5
+ height: 20px;
6
+ margin-right: 5px;
7
+ padding: 0;
8
+ text-shadow: 0 1px 0 $font-color-second;
9
+ width: 20px;
10
+ visibility: hidden;
11
+ transition: all 0.2s ease-in-out;
12
+ border-radius: 4px;
13
+ &:after {
14
+ content: "×";
15
+ font-size: 20px;
16
+ text-shadow: none;
17
+ color: $font-color-soft;
18
+ transition: all 0.2s ease-in-out;
19
+ }
20
+ &:hover {
21
+ background-color: $color-light-dark;
22
+ &:after {
23
+ color: $font-color-second;
24
+ }
25
+ }
26
+ }
2
27
  %tab-component-menus {
3
28
  .menu {
4
29
  -webkit-box-shadow: 0px -1px 0px $component-border-color inset;
@@ -7,22 +32,26 @@
7
32
  display: flex;
8
33
  flex-wrap: nowrap;
9
34
  justify-content: center;
10
- flex-grow: 1;
35
+ flex: 1;
11
36
  &.-firsttabident > .menuitem:first-child {
12
37
  margin-left: 15px;
13
38
  }
14
39
  }
15
- .menu > .menuitem {
40
+ .menu > .menuitem {
16
41
  border-bottom: 0;
17
- border-radius: 5px 5px 0px 0px;
18
- -moz-border-radius: 5px 5px 0px 0px;
19
- -webkit-border-radius: 5px 5px 0px 0px;
42
+ border-radius: 5px 5px 0px 0px;
43
+ -moz-border-radius: 5px 5px 0px 0px;
44
+ -webkit-border-radius: 5px 5px 0px 0px;
20
45
  text-shadow: 0 1px $font-color-second;
21
46
  cursor: pointer;
22
47
  line-height: 20px;
23
48
  margin-right: 1px;
24
49
  padding: 0;
25
50
  width: auto;
51
+ min-width: 100px;
52
+ display: flex;
53
+ justify-content: space-between;
54
+ align-items: center;
26
55
  &.selected {
27
56
  border: 1px solid $component-border-color;
28
57
  background: $font-color-second;
@@ -31,40 +60,22 @@
31
60
  box-shadow: 0;
32
61
  font-weight: bold; /* z-index: 2; */
33
62
  }
34
- &.selected > .closepanel, &:hover > .closepanel {
63
+ &.selected > .closepanel,
64
+ &:hover > .closepanel {
35
65
  visibility: visible;
36
66
  }
37
67
  }
38
- .menu > .menuitem > .menubutton {
68
+ .menu > .menuitem > .menubutton {
69
+ white-space: nowrap;
70
+ text-overflow: ellipsis;
39
71
  background: transparent;
40
72
  border: 0;
41
73
  }
42
- .menu > .menuitem > .closepanel {
43
- background-color: transparent;
44
- border: 0;
45
- float: right;
46
- height: 20px;
47
- margin: 5px 5px 0 0;
48
- padding: 0;
49
- text-shadow: 0 1px 0 $font-color-second;
50
- width: 20px;
51
- visibility: hidden;
52
- transition: all 0.2s ease-in-out;
53
- border-radius: 4px;
54
- &:after {
55
- content: "×";
56
- font-size: 20px;
57
- text-shadow: none;
58
- color: $font-color-soft;
59
- transition: all 0.2s ease-in-out;
60
- }
61
- &:hover {
62
- background-color: $color-light-dark;
63
- &:after {
64
- color: $font-color-second;
65
- }
66
- }
74
+
75
+ .menu > .menuitem > .closepanel {
76
+ @extend %tab-closepanel;
67
77
  }
78
+
68
79
  .menubar {
69
80
  width: auto;
70
81
  border-bottom: 1px solid #dae1e8;
@@ -86,6 +97,10 @@
86
97
  flex-wrap: nowrap;
87
98
  width: 100%;
88
99
  @extend %tab-component-menus;
100
+ > .dropdownbutton {
101
+ border-bottom: 1px solid $component-border-color;
102
+ padding: 0 0.8rem;
103
+ }
89
104
  }
90
105
  > .panel {
91
106
  background-color: $font-color-second;
@@ -111,9 +126,9 @@
111
126
  justify-content: center;
112
127
  }
113
128
  > .menu > .menuitem {
114
- border-radius: 5px 0px 0px 5px;
115
- -moz-border-radius: 5px 0px 0px 5px;
116
- -webkit-border-radius: 5px 0px 0px 5px;
129
+ border-radius: 5px 0px 0px 5px;
130
+ -moz-border-radius: 5px 0px 0px 5px;
131
+ -webkit-border-radius: 5px 0px 0px 5px;
117
132
  &.selected {
118
133
  border: 1px solid $component-border-color;
119
134
  border-right: 1px solid $font-color-second;
@@ -121,8 +136,8 @@
121
136
  width: 100%;
122
137
  }
123
138
  }
124
- > .menu > .menuitem > .closepanel {
125
- float: left
139
+ > .menu > .menuitem > .closepanel {
140
+ float: left;
126
141
  }
127
142
  > .panel {
128
143
  border-top: 1px solid $component-border-color;
@@ -139,9 +154,9 @@
139
154
  box-shadow: 0 1px 1px 0px $component-border-color inset;
140
155
  }
141
156
  > .menu > .menuitem {
142
- border-radius: 0px 0px 5px 5px;
143
- -moz-border-radius: 0px 0px 5px 5px;
144
- -webkit-border-radius: 0px 0px 5px 5px;
157
+ border-radius: 0px 0px 5px 5px;
158
+ -moz-border-radius: 0px 0px 5px 5px;
159
+ -webkit-border-radius: 0px 0px 5px 5px;
145
160
  &.selected {
146
161
  border: 1px solid $component-border-color;
147
162
  border-top: 1px solid $font-color-second;
@@ -167,9 +182,9 @@
167
182
  justify-content: center;
168
183
  }
169
184
  > .menu > .menuitem {
170
- border-radius: 0px 5px 5px 0px;
171
- -moz-border-radius: 0px 5px 5px 0px;
172
- -webkit-border-radius: 0px 5px 5px 0px;
185
+ border-radius: 0px 5px 5px 0px;
186
+ -moz-border-radius: 0px 5px 5px 0px;
187
+ -webkit-border-radius: 0px 5px 5px 0px;
173
188
  &.selected {
174
189
  border: 1px solid $component-border-color;
175
190
  border-left: 1px solid $font-color-second;
@@ -182,3 +197,22 @@
182
197
  border-right: 0;
183
198
  }
184
199
  }
200
+
201
+ /*
202
+ Dropdown hide tabs
203
+ */
204
+ .dropdown-hide-tabs .menuitem {
205
+ cursor: pointer;
206
+ line-height: 20px;
207
+ margin-right: 1px;
208
+ display: flex;
209
+ align-items: center;
210
+ justify-content: space-between;
211
+ min-height: 50px;
212
+ > .closepanel {
213
+ @extend %tab-closepanel;
214
+ }
215
+ &:hover > .closepanel {
216
+ visibility: visible;
217
+ }
218
+ }
@@ -42,6 +42,25 @@
42
42
  animation: revealelement 0.3s forwards ease-in-out;
43
43
  > .label {
44
44
  width: auto;
45
+ display: flex;
46
+ justify-content: flex-start;
47
+ align-items: center;
48
+ >.node-menu {
49
+ animation: revealelement 0.3s forwards ease-in-out;
50
+ margin-left: 10px;
51
+ }
52
+ >.node-rightelements {
53
+ animation: revealelement 0.3s forwards ease-in-out;
54
+ display: flex;
55
+ justify-content: flex-start;
56
+ align-items: center;
57
+ }
58
+ >.node-toolbarelements {
59
+ animation: revealelement 0.3s forwards ease-in-out;
60
+ width: auto;
61
+ height: 100%;
62
+ margin-left: 10px;
63
+ }
45
64
  &:hover {
46
65
  background-color: rgb(209, 209, 209);
47
66
  }
@@ -53,3 +72,16 @@
53
72
  float: left;
54
73
  }
55
74
  }
75
+
76
+ .nodelist > .treeviewitem > .label > .node-rightelements > .element,
77
+ .treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-rightelements > .element {
78
+ margin-left: 10px;
79
+ display: flex;
80
+ align-items: center;
81
+ height: 100%;
82
+ }
83
+
84
+ .nodelist > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar,
85
+ .treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar {
86
+ border: none;
87
+ }
@@ -0,0 +1,190 @@
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
+ require("babel-polyfill");
8
+
9
+ require("@testing-library/jest-dom/extend-expect");
10
+
11
+ var _react2 = require("@testing-library/react");
12
+
13
+ var _ = _interopRequireDefault(require("."));
14
+
15
+ var _icons = _interopRequireDefault(require("../icons"));
16
+
17
+ var _list = _interopRequireWildcard(require("../list"));
18
+
19
+ 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); }
20
+
21
+ 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; }
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
+
25
+ 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); } }
26
+
27
+ 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); }); }; }
28
+
29
+ describe('Avatar', function () {
30
+ it('should render correctly', function () {
31
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
32
+ label: "B"
33
+ })),
34
+ container = _render.container;
35
+
36
+ expect(container.firstChild).toHaveClass('avatar-component -default');
37
+ expect(container.firstChild).toHaveTextContent('B');
38
+ expect(_react2.screen.getByRole('button')).toBeInTheDocument();
39
+ });
40
+ it('should apply customClass', function () {
41
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
42
+ label: "B",
43
+ customClass: "avatarteste"
44
+ })),
45
+ container = _render2.container;
46
+
47
+ expect(container.firstChild).toHaveClass('avatarteste');
48
+ });
49
+ it('should change color', function () {
50
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
51
+ label: "B",
52
+ color: "#333"
53
+ })),
54
+ container = _render3.container;
55
+
56
+ expect(container.firstChild).toHaveStyle('background-color: #333');
57
+ });
58
+ it('should change to square', function () {
59
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
60
+ label: "B",
61
+ square: true
62
+ })),
63
+ container = _render4.container;
64
+
65
+ expect(container.firstChild).toHaveClass('-square');
66
+ });
67
+ it('should change to mini', function () {
68
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
69
+ label: "B",
70
+ size: "mini"
71
+ })),
72
+ container = _render5.container;
73
+
74
+ expect(container.firstChild).toHaveClass('-mini');
75
+ });
76
+ it('should render icon with iconName', function () {
77
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
78
+ iconName: "calc"
79
+ })),
80
+ container = _render6.container;
81
+
82
+ expect(container.firstChild).toContainElement(_react2.screen.getByTestId('icon'));
83
+ });
84
+ it('should render Icon with icon', function () {
85
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
86
+ icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
87
+ name: "user"
88
+ })
89
+ })),
90
+ container = _render7.container;
91
+
92
+ expect(container.firstChild).toContainElement(_react2.screen.getByTestId('icon'));
93
+ });
94
+ it('should render with image', function () {
95
+ var mockAvatar = /*#__PURE__*/_react["default"].createElement(_["default"], {
96
+ src: "https://yt3.ggpht.com/a-/AAuE7mDGQh9L3n_EULfeZEO9rs_JR4BY376CSrlxdw=s900-mo-c-c0xffffffff-rj-k-no",
97
+ srcAlt: "Avatar Teste"
98
+ });
99
+
100
+ var _render8 = (0, _react2.render)(mockAvatar),
101
+ container = _render8.container;
102
+
103
+ expect(container.firstChild).toContainElement(_react2.screen.getByAltText('Avatar Teste'));
104
+ expect(_react2.screen.getByAltText('Avatar Teste')).toHaveClass('imgavatar');
105
+ });
106
+ it('should not render icon if has image', function () {
107
+ var mockAvatar = /*#__PURE__*/_react["default"].createElement(_["default"], {
108
+ src: "https://yt3.ggpht.com/a-/AAuE7mDGQh9L3n_EULfeZEO9rs_JR4BY376CSrlxdw=s900-mo-c-c0xffffffff-rj-k-no",
109
+ srcAlt: "Avatar Teste"
110
+ });
111
+
112
+ var _render9 = (0, _react2.render)(mockAvatar),
113
+ container = _render9.container;
114
+
115
+ expect(container.firstChild).not.toContainElement(document.querySelector('.icon-component'));
116
+ });
117
+ it('should change size', function () {
118
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
119
+ label: "B",
120
+ width: "56px",
121
+ height: "56px"
122
+ })),
123
+ container = _render10.container;
124
+
125
+ expect(container.firstChild).toHaveStyle('width: 56px; height:56px');
126
+ });
127
+ it('should open dropdown and render chilren', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
128
+ var mockAvatar, _render11, container;
129
+
130
+ return regeneratorRuntime.wrap(function _callee$(_context) {
131
+ while (1) {
132
+ switch (_context.prev = _context.next) {
133
+ case 0:
134
+ mockAvatar = /*#__PURE__*/_react["default"].createElement(_["default"], {
135
+ label: "B",
136
+ dropdown: true
137
+ }, /*#__PURE__*/_react["default"].createElement(_list["default"], null, /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
138
+ rightIconName: "exclamation",
139
+ text: "Icone na direita"
140
+ }), /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
141
+ rightIconName: "user",
142
+ text: "Icone na direita"
143
+ }), /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
144
+ text: "Itemlist sem \xEDcone"
145
+ }), /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
146
+ text: "Itemlist sem \xEDcone Disabled",
147
+ disabled: true
148
+ })));
149
+ _render11 = (0, _react2.render)(mockAvatar), container = _render11.container;
150
+
151
+ _react2.fireEvent.click(container.firstChild);
152
+
153
+ _context.next = 5;
154
+ return (0, _react2.waitFor)(function () {
155
+ return _react2.screen.getByTestId('dropdown-component');
156
+ });
157
+
158
+ case 5:
159
+ expect(container.firstChild).toHaveTextContent('B');
160
+ expect(_react2.screen.getByTestId('dropdown-component')).toBeInTheDocument();
161
+
162
+ case 7:
163
+ case "end":
164
+ return _context.stop();
165
+ }
166
+ }
167
+ }, _callee);
168
+ })));
169
+ it('should callback function onClick', function () {
170
+ var mockOnClick = jest.fn();
171
+
172
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
173
+ label: "B",
174
+ onClick: mockOnClick
175
+ })),
176
+ container = _render12.container;
177
+
178
+ _react2.fireEvent.click(container.firstChild);
179
+
180
+ expect(mockOnClick).toBeCalledTimes(1);
181
+ });
182
+ it('should use targetRef', function () {
183
+ var mockTargetRef = jest.fn();
184
+ (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
185
+ label: "B",
186
+ targetRef: mockTargetRef
187
+ }));
188
+ expect(mockTargetRef).toBeCalledTimes(1);
189
+ });
190
+ });
@@ -54,6 +54,7 @@ var Avatar = function Avatar(props) {
54
54
  iconName = props.iconName,
55
55
  icon = props.icon,
56
56
  src = props.src,
57
+ srcAlt = props.srcAlt,
57
58
  customClass = props.customClass,
58
59
  targetRef = props.targetRef,
59
60
  label = props.label,
@@ -64,6 +65,7 @@ var Avatar = function Avatar(props) {
64
65
  id = props.id;
65
66
  var dropdownRef = (0, _react.useRef)(null);
66
67
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
68
+ "data-testid": "avatar",
67
69
  id: id,
68
70
  onKeyPress: null,
69
71
  role: "button",
@@ -83,14 +85,14 @@ var Avatar = function Avatar(props) {
83
85
  backgroundColor: "".concat(color),
84
86
  cursor: "".concat(dropdown ? 'pointer' : 'normal')
85
87
  }, style)
86
- }, (iconName || icon) && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
88
+ }, (iconName || icon) && !src && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
87
89
  className: "imgavatar",
88
90
  style: {
89
91
  width: "".concat(width),
90
92
  height: "".concat(height)
91
93
  },
92
94
  src: src,
93
- alt: "not-found"
95
+ alt: srcAlt
94
96
  }), label), dropdown && getDropdownPopup(dropdownRef.current));
95
97
  };
96
98
 
@@ -103,6 +105,7 @@ Avatar.propTypes = {
103
105
  iconName: _propTypes["default"].string,
104
106
  icon: _propTypes["default"].instanceOf(Object),
105
107
  src: _propTypes["default"].string,
108
+ srcAlt: _propTypes["default"].string,
106
109
  children: _propTypes["default"].element,
107
110
  square: _propTypes["default"].bool,
108
111
  customClass: _propTypes["default"].string,
@@ -124,6 +127,7 @@ Avatar.defaultProps = {
124
127
  iconName: '',
125
128
  icon: null,
126
129
  src: '',
130
+ srcAlt: 'Avatar',
127
131
  customClass: '',
128
132
  children: null,
129
133
  square: false,
@@ -0,0 +1,127 @@
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 _ = _interopRequireDefault(require("."));
10
+
11
+ var _icons = _interopRequireDefault(require("../icons"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+
15
+ 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); }
16
+
17
+ var mockBadge = function mockBadge(props) {
18
+ return /*#__PURE__*/_react["default"].createElement(_["default"], _extends({
19
+ customClass: "mockBadge",
20
+ customClassForBadge: "classforbadge",
21
+ content: "10"
22
+ }, props), /*#__PURE__*/_react["default"].createElement(_icons["default"], {
23
+ name: "bell_alert"
24
+ }));
25
+ };
26
+
27
+ describe('Badges', function () {
28
+ it('should render correctly', function () {
29
+ var _render = (0, _react2.render)(mockBadge()),
30
+ container = _render.container;
31
+
32
+ expect(container.firstChild).toBeTruthy();
33
+ });
34
+ it('should render children', function () {
35
+ var _render2 = (0, _react2.render)(mockBadge()),
36
+ container = _render2.container,
37
+ getByTestId = _render2.getByTestId;
38
+
39
+ expect(container.firstChild).toContainElement(getByTestId('icon'));
40
+ });
41
+ it('should render content', function () {
42
+ var _render3 = (0, _react2.render)(mockBadge()),
43
+ container = _render3.container;
44
+
45
+ expect(container.firstChild).toHaveTextContent('10');
46
+ });
47
+ it('should apply custom class', function () {
48
+ var _render4 = (0, _react2.render)(mockBadge()),
49
+ container = _render4.container;
50
+
51
+ expect(container.firstChild).toHaveClass('mockBadge');
52
+ });
53
+ it('should apply custom class', function () {
54
+ var _render5 = (0, _react2.render)(mockBadge()),
55
+ container = _render5.container;
56
+
57
+ expect(container.firstChild).toHaveClass('mockBadge');
58
+ });
59
+ it('should apply custom class for badge', function () {
60
+ var _render6 = (0, _react2.render)(mockBadge()),
61
+ container = _render6.container;
62
+
63
+ expect(container.querySelector('.badge')).toHaveClass('classforbadge');
64
+ });
65
+ it('should apply custom top', function () {
66
+ var _render7 = (0, _react2.render)(mockBadge({
67
+ top: '10px'
68
+ })),
69
+ container = _render7.container;
70
+
71
+ expect(container.querySelector('.badge')).toHaveStyle('top: 10px;');
72
+ });
73
+ it('should apply custom right', function () {
74
+ var _render8 = (0, _react2.render)(mockBadge({
75
+ right: '10px'
76
+ })),
77
+ container = _render8.container;
78
+
79
+ expect(container.querySelector('.badge')).toHaveStyle('right: 10px;');
80
+ });
81
+ it('should apply default color', function () {
82
+ var _render9 = (0, _react2.render)(mockBadge()),
83
+ container = _render9.container;
84
+
85
+ expect(container.querySelector('.badge')).toHaveClass('-default');
86
+ });
87
+ it('should apply primary color', function () {
88
+ var _render10 = (0, _react2.render)(mockBadge({
89
+ color: 'primary'
90
+ })),
91
+ container = _render10.container;
92
+
93
+ expect(container.querySelector('.badge')).toHaveClass('-primary');
94
+ });
95
+ it('should apply danger color', function () {
96
+ var _render11 = (0, _react2.render)(mockBadge({
97
+ color: 'danger'
98
+ })),
99
+ container = _render11.container;
100
+
101
+ expect(container.querySelector('.badge')).toHaveClass('-danger');
102
+ });
103
+ it('should apply warning color', function () {
104
+ var _render12 = (0, _react2.render)(mockBadge({
105
+ color: 'warning'
106
+ })),
107
+ container = _render12.container;
108
+
109
+ expect(container.querySelector('.badge')).toHaveClass('-warning');
110
+ });
111
+ it('should apply success color', function () {
112
+ var _render13 = (0, _react2.render)(mockBadge({
113
+ color: 'success'
114
+ })),
115
+ container = _render13.container;
116
+
117
+ expect(container.querySelector('.badge')).toHaveClass('-success');
118
+ });
119
+ it('should apply info color', function () {
120
+ var _render14 = (0, _react2.render)(mockBadge({
121
+ color: 'info'
122
+ })),
123
+ container = _render14.container;
124
+
125
+ expect(container.querySelector('.badge')).toHaveClass('-info');
126
+ });
127
+ });
@@ -13,8 +13,6 @@ require("../assets/styles/badge.scss");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
15
 
16
- 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); }
17
-
18
16
  var Badge = function Badge(props) {
19
17
  var color = props.color,
20
18
  customClass = props.customClass,
@@ -23,9 +21,9 @@ var Badge = function Badge(props) {
23
21
  content = props.content,
24
22
  top = props.top,
25
23
  right = props.right;
26
- return /*#__PURE__*/_react["default"].createElement("div", _extends({
24
+ return /*#__PURE__*/_react["default"].createElement("div", {
27
25
  className: "badge-component ".concat(customClass)
28
- }, props), children, /*#__PURE__*/_react["default"].createElement("span", {
26
+ }, children, /*#__PURE__*/_react["default"].createElement("span", {
29
27
  className: "badge -".concat(color, " ").concat(customClassForBadge),
30
28
  style: {
31
29
  top: "".concat(top),
@@ -49,7 +47,7 @@ Badge.propTypes = {
49
47
  children: _propTypes["default"].element.isRequired,
50
48
  customClass: _propTypes["default"].string,
51
49
  customClassForBadge: _propTypes["default"].string,
52
- content: _propTypes["default"].object
50
+ content: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string])
53
51
  };
54
52
  var _default = Badge;
55
53
  exports["default"] = _default;