linear-react-components-ui 0.4.76-rc.9 → 0.4.76

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 (120) hide show
  1. package/.husky/pre-commit +2 -2
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +1 -2
  4. package/README.md +40 -5
  5. package/lib/assets/styles/button.scss +19 -10
  6. package/lib/assets/styles/checkbox.scss +92 -70
  7. package/lib/assets/styles/commons.scss +36 -0
  8. package/lib/assets/styles/drawers.scss +22 -6
  9. package/lib/assets/styles/dropdown.scss +28 -2
  10. package/lib/assets/styles/effects.scss +32 -0
  11. package/lib/assets/styles/floatMenu.scss +0 -1
  12. package/lib/assets/styles/gridlayout.scss +2 -1
  13. package/lib/assets/styles/input.scss +21 -0
  14. package/lib/assets/styles/label.scss +9 -1
  15. package/lib/assets/styles/list.scss +8 -0
  16. package/lib/assets/styles/multiSelect.scss +105 -0
  17. package/lib/assets/styles/panel.scss +3 -1
  18. package/lib/assets/styles/periodpicker.scss +65 -0
  19. package/lib/assets/styles/progress.scss +8 -1
  20. package/lib/assets/styles/radio.scss +19 -0
  21. package/lib/assets/styles/select.scss +4 -3
  22. package/lib/assets/styles/sidenav.scss +11 -1
  23. package/lib/assets/styles/skeleton.scss +48 -0
  24. package/lib/assets/styles/table.scss +25 -5
  25. package/lib/assets/styles/tabs.scss +116 -75
  26. package/lib/assets/styles/treeview.scss +41 -0
  27. package/lib/assets/styles/uitour.scss +112 -0
  28. package/lib/avatar/avatar.spec.js +17 -6
  29. package/lib/avatar/index.js +1 -1
  30. package/lib/buttons/DefaultButton.js +13 -4
  31. package/lib/buttons/split_button/index.js +8 -4
  32. package/lib/checkbox/Label.js +37 -0
  33. package/lib/checkbox/checkbox.spec.js +16 -16
  34. package/lib/checkbox/index.js +33 -12
  35. package/lib/dialog/base/index.js +15 -6
  36. package/lib/dialog/form/index.js +24 -4
  37. package/lib/drawer/Drawer.js +9 -5
  38. package/lib/drawer/Header.js +15 -5
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +3 -2
  41. package/lib/form/Field.js +2 -0
  42. package/lib/form/FieldNumber.js +11 -3
  43. package/lib/form/FieldPeriod.js +100 -0
  44. package/lib/form/form.spec.js +8 -0
  45. package/lib/form/helpers.js +20 -1
  46. package/lib/form/index.js +220 -218
  47. package/lib/form/withFieldHOC.js +5 -1
  48. package/lib/form/withFormSecurity.js +106 -0
  49. package/lib/icons/helper.js +24 -0
  50. package/lib/inputs/base/InputTextBase.js +30 -5
  51. package/lib/inputs/base/helpers.js +13 -9
  52. package/lib/inputs/date/Dropdown.js +3 -3
  53. package/lib/inputs/date/date.spec.js +46 -36
  54. package/lib/inputs/date/helpers.js +36 -0
  55. package/lib/inputs/date/index.js +12 -10
  56. package/lib/inputs/mask/Phone.js +10 -1
  57. package/lib/inputs/mask/imaskHOC.js +2 -1
  58. package/lib/inputs/mask/input_mask.spec.js +21 -4
  59. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  60. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  61. package/lib/inputs/multiSelect/helper.js +18 -0
  62. package/lib/inputs/multiSelect/index.js +343 -0
  63. package/lib/inputs/number/BaseNumber.js +1 -1
  64. package/lib/inputs/number/index.js +7 -5
  65. package/lib/inputs/period/Dialog.js +38 -0
  66. package/lib/inputs/period/Dropdown.js +90 -0
  67. package/lib/inputs/period/PeriodList.js +79 -0
  68. package/lib/inputs/period/helper.js +118 -0
  69. package/lib/inputs/period/index.js +490 -0
  70. package/lib/inputs/search/index.js +2 -0
  71. package/lib/inputs/select/Dropdown.js +55 -65
  72. package/lib/inputs/select/helper.js +65 -2
  73. package/lib/inputs/select/index.js +26 -3
  74. package/lib/inputs/select/multiple/index.js +16 -11
  75. package/lib/inputs/select/simple/index.js +39 -24
  76. package/lib/internals/constants.js +4 -3
  77. package/lib/internals/withTooltip.js +86 -82
  78. package/lib/labels/DefaultLabel.js +7 -4
  79. package/lib/list/Item.js +35 -9
  80. package/lib/list/helpers.js +8 -3
  81. package/lib/list/index.js +172 -14
  82. package/lib/list/list.spec.js +290 -89
  83. package/lib/menus/float/MenuItem.js +25 -8
  84. package/lib/menus/sidenav/NavMenuItem.js +17 -8
  85. package/lib/menus/sidenav/index.js +59 -86
  86. package/lib/menus/sidenav/popup_menu_search/index.js +26 -17
  87. package/lib/menus/sidenav/sidenav.spec.js +86 -19
  88. package/lib/panel/Header.js +4 -3
  89. package/lib/progress/Bar.js +40 -9
  90. package/lib/progress/index.js +12 -4
  91. package/lib/radio/index.js +9 -6
  92. package/lib/skeleton/SkeletonContainer.js +42 -0
  93. package/lib/skeleton/index.js +84 -0
  94. package/lib/spinner/index.js +6 -1
  95. package/lib/split/Split.js +5 -11
  96. package/lib/table/Body.js +55 -11
  97. package/lib/table/Header.js +14 -1
  98. package/lib/table/HeaderColumn.js +26 -3
  99. package/lib/table/Row.js +19 -8
  100. package/lib/table/RowColumn.js +23 -3
  101. package/lib/table/helpers.js +11 -1
  102. package/lib/table/index.js +41 -8
  103. package/lib/tabs/DropdownItems.js +84 -0
  104. package/lib/tabs/Menu.js +12 -9
  105. package/lib/tabs/MenuItems.js +15 -9
  106. package/lib/tabs/Panel.js +1 -3
  107. package/lib/tabs/index.js +156 -22
  108. package/lib/tabs/tabs.spec.js +8 -5
  109. package/lib/toolbar/ButtonBar.js +30 -24
  110. package/lib/toolbar/LabelBar.js +22 -27
  111. package/lib/toolbar/helpers.js +12 -0
  112. package/lib/toolbar/index.js +24 -9
  113. package/lib/tooltip/index.js +20 -7
  114. package/lib/treeview/Node.js +364 -49
  115. package/lib/treeview/index.js +475 -36
  116. package/lib/treeview/treeview.spec.js +18 -0
  117. package/lib/uitour/helpers.js +15 -0
  118. package/lib/uitour/index.js +271 -0
  119. package/lib/uitour/uitour.spec.js +176 -0
  120. package/package.json +9 -8
@@ -15,6 +15,11 @@
15
15
  margin-left: -20px;
16
16
  cursor: pointer;
17
17
  }
18
+ .loading {
19
+ margin-left: -30px;
20
+ position: absolute;
21
+ margin-top: -5px;
22
+ }
18
23
  }
19
24
  }
20
25
 
@@ -42,8 +47,31 @@
42
47
  animation: revealelement 0.3s forwards ease-in-out;
43
48
  > .label {
44
49
  width: auto;
50
+ display: flex;
51
+ justify-content: flex-start;
52
+ align-items: center;
53
+ min-height: 25px;
54
+ color: $font-color-soft;
55
+ >.node-menu {
56
+ animation: revealelement 0.3s forwards ease-in-out;
57
+ margin-left: 10px;
58
+ }
59
+ >.node-rightelements {
60
+ animation: revealelement 0.3s forwards ease-in-out;
61
+ display: flex;
62
+ justify-content: flex-start;
63
+ align-items: center;
64
+ }
65
+ >.node-toolbarelements {
66
+ animation: revealelement 0.3s forwards ease-in-out;
67
+ width: auto;
68
+ height: 100%;
69
+ margin-left: 10px;
70
+ }
45
71
  &:hover {
72
+ cursor: pointer;
46
73
  background-color: rgb(209, 209, 209);
74
+ text-decoration: underline;
47
75
  }
48
76
  }
49
77
  > .nodelist {
@@ -53,3 +81,16 @@
53
81
  float: left;
54
82
  }
55
83
  }
84
+
85
+ .nodelist > .treeviewitem > .label > .node-rightelements > .element,
86
+ .treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-rightelements > .element {
87
+ margin-left: 10px;
88
+ display: flex;
89
+ align-items: center;
90
+ height: 100%;
91
+ }
92
+
93
+ .nodelist > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar,
94
+ .treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar {
95
+ border: none;
96
+ }
@@ -0,0 +1,112 @@
1
+ @import "commons.scss";
2
+ @import "colors.scss";
3
+ @import "effects.scss";
4
+
5
+ $step-arrow-size: 22px;
6
+ $step-arrow-shadow-size: 26px;
7
+ %step-arrow {
8
+ content: '';
9
+ position: absolute;
10
+ border-bottom: $step-arrow-size solid transparent;
11
+ border-right: $step-arrow-size solid #fff;
12
+ border-top: $step-arrow-size solid transparent;
13
+ }
14
+ %step-arrow-shadow {
15
+ content: '';
16
+ position: absolute;
17
+ border-bottom: $step-arrow-shadow-size solid transparent;
18
+ border-right: $step-arrow-shadow-size solid rgba(0, 0, 0, 0.6);
19
+ border-top: $step-arrow-shadow-size solid transparent;
20
+ }
21
+ .uitour-component {
22
+ position: absolute;
23
+ width: 100%;
24
+ height: 100vh;
25
+ left: 0;
26
+ top: 0;
27
+ z-index: 99999999999999999999;
28
+ > .step {
29
+ background-color: #fff;
30
+ position: relative;
31
+ max-width: 450px;
32
+ display: flex;
33
+ flex-direction: column;
34
+ border: 3px solid rgba(0, 0, 0, 0.6);
35
+ border-radius: 8px;
36
+ padding: 5px 0;
37
+ &.-left {
38
+ animation: slideRightToLeftWithFade 0.5s;
39
+ &:before {
40
+ @extend %step-arrow-shadow;
41
+ top: 6px;
42
+ left: -$step-arrow-shadow-size;
43
+ }
44
+ &:after {
45
+ @extend %step-arrow;
46
+ top: 10px;
47
+ left: -$step-arrow-size;
48
+ }
49
+ }
50
+ &.-right {
51
+ animation: slideLeftToRightWithFade 0.5s;
52
+ &:before {
53
+ @extend %step-arrow-shadow;
54
+ top: 6px;
55
+ right: -$step-arrow-shadow-size;
56
+ transform: rotate(180deg);
57
+ }
58
+ &:after {
59
+ @extend %step-arrow;
60
+ top: 10px;
61
+ right: -$step-arrow-size;
62
+ transform: rotate(180deg);
63
+ }
64
+ }
65
+ > .closebutton {
66
+ align-self: flex-end;
67
+ padding: 0 5px 5px;
68
+ line-height: 0;
69
+ }
70
+ > .content {
71
+ width: 100%;
72
+ padding: 0px 20px;
73
+ margin-bottom: 0;
74
+ display: flex;
75
+ > .number {
76
+ display: flex;
77
+ width: 40px;
78
+ height: 40px;
79
+ align-items: center;
80
+ justify-content: center;
81
+ border-radius: 50%;
82
+ background-color: $success-color;
83
+ color: #fff;
84
+ margin-right: 10px;
85
+ font-weight: bold;
86
+ font-size: 20px;
87
+ line-height: 0;
88
+ }
89
+ > .about {
90
+ flex: 1;
91
+ margin-bottom: 10px;
92
+ > h3 {
93
+ font-size: 16px;
94
+ font-weight: bold;
95
+ }
96
+ > .description {
97
+ font-size: 14px;
98
+ line-height: 18px;
99
+ strong {
100
+ font-weight: bold;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ > .footer {
106
+ display: flex;
107
+ justify-content: flex-end;
108
+ gap: 10px;
109
+ padding: 5px 10px 10px;
110
+ }
111
+ }
112
+ }
@@ -103,18 +103,29 @@ describe('Avatar', function () {
103
103
  expect(container.firstChild).toContainElement(_react2.screen.getByAltText('Avatar Teste'));
104
104
  expect(_react2.screen.getByAltText('Avatar Teste')).toHaveClass('imgavatar');
105
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
+ });
106
117
  it('should change size', function () {
107
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
118
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
108
119
  label: "B",
109
120
  width: "56px",
110
121
  height: "56px"
111
122
  })),
112
- container = _render9.container;
123
+ container = _render10.container;
113
124
 
114
125
  expect(container.firstChild).toHaveStyle('width: 56px; height:56px');
115
126
  });
116
127
  it('should open dropdown and render chilren', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
117
- var mockAvatar, _render10, container;
128
+ var mockAvatar, _render11, container;
118
129
 
119
130
  return regeneratorRuntime.wrap(function _callee$(_context) {
120
131
  while (1) {
@@ -135,7 +146,7 @@ describe('Avatar', function () {
135
146
  text: "Itemlist sem \xEDcone Disabled",
136
147
  disabled: true
137
148
  })));
138
- _render10 = (0, _react2.render)(mockAvatar), container = _render10.container;
149
+ _render11 = (0, _react2.render)(mockAvatar), container = _render11.container;
139
150
 
140
151
  _react2.fireEvent.click(container.firstChild);
141
152
 
@@ -158,11 +169,11 @@ describe('Avatar', function () {
158
169
  it('should callback function onClick', function () {
159
170
  var mockOnClick = jest.fn();
160
171
 
161
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
172
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_["default"], {
162
173
  label: "B",
163
174
  onClick: mockOnClick
164
175
  })),
165
- container = _render11.container;
176
+ container = _render12.container;
166
177
 
167
178
  _react2.fireEvent.click(container.firstChild);
168
179
 
@@ -85,7 +85,7 @@ var Avatar = function Avatar(props) {
85
85
  backgroundColor: "".concat(color),
86
86
  cursor: "".concat(dropdown ? 'pointer' : 'normal')
87
87
  }, style)
88
- }, (iconName || icon) && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
88
+ }, (iconName || icon) && !src && getIcon(iconName, icon), src && /*#__PURE__*/_react["default"].createElement("img", {
89
89
  className: "imgavatar",
90
90
  style: {
91
91
  width: "".concat(width),
@@ -69,7 +69,9 @@ var DefaultButton = function DefaultButton(props) {
69
69
  boxShadow = props.boxShadow,
70
70
  transparent = props.transparent,
71
71
  round = props.round,
72
- permissionAttr = props.permissionAttr;
72
+ permissionAttr = props.permissionAttr,
73
+ _onBlur = props.onBlur,
74
+ skeletonize = props.skeletonize;
73
75
 
74
76
  var _useState = (0, _react.useState)(false),
75
77
  _useState2 = _slicedToArray(_useState, 2),
@@ -147,8 +149,11 @@ var DefaultButton = function DefaultButton(props) {
147
149
  if (dropdown) showDropdown();
148
150
  if (_onClick && toggleable) setActiveButton(!activeButton);
149
151
  },
152
+ onBlur: function onBlur(e) {
153
+ if (_onBlur) _onBlur(e);
154
+ },
150
155
  disabled: shouldDisable(),
151
- className: "".concat(getClass(), " ").concat(activeButton ? '-toggleable' : ''),
156
+ className: "".concat(getClass(), " ").concat(activeButton ? '-toggleable' : '', " ").concat(skeletonize ? '-skeletonized' : ''),
152
157
  ref: function ref(r) {
153
158
  if (targetRef) targetRef(r);
154
159
  setButtonRef(r);
@@ -176,6 +181,7 @@ DefaultButton.propTypes = {
176
181
  boxShadow: _propTypes["default"].bool,
177
182
  icon: _propTypes["default"].instanceOf(Object),
178
183
  onClick: _propTypes["default"].func,
184
+ onBlur: _propTypes["default"].func,
179
185
  targetRef: _propTypes["default"].func,
180
186
  tabIndex: _propTypes["default"].string,
181
187
  dropdown: _propTypes["default"].bool,
@@ -191,7 +197,8 @@ DefaultButton.propTypes = {
191
197
  id: _propTypes["default"].string,
192
198
  permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
193
199
  className: _propTypes["default"].string,
194
- transparent: _propTypes["default"].bool
200
+ transparent: _propTypes["default"].bool,
201
+ skeletonize: _propTypes["default"].bool
195
202
  };
196
203
  DefaultButton.defaultProps = {
197
204
  label: '',
@@ -211,6 +218,7 @@ DefaultButton.defaultProps = {
211
218
  icon: null,
212
219
  content: null,
213
220
  onClick: null,
221
+ onBlur: null,
214
222
  targetRef: undefined,
215
223
  tabIndex: undefined,
216
224
  isLoading: false,
@@ -222,7 +230,8 @@ DefaultButton.defaultProps = {
222
230
  id: undefined,
223
231
  permissionAttr: undefined,
224
232
  className: undefined,
225
- transparent: false
233
+ transparent: false,
234
+ skeletonize: false
226
235
  };
227
236
 
228
237
  var _default = (0, _withDropdown["default"])((0, _withTooltip["default"])(DefaultButton));
@@ -22,13 +22,15 @@ var SplitButton = function SplitButton(props) {
22
22
  boxShadow = props.boxShadow,
23
23
  dropdownAlign = props.dropdownAlign,
24
24
  visible = props.visible,
25
- permissionAttr = props.permissionAttr;
25
+ permissionAttr = props.permissionAttr,
26
+ skeletonize = props.skeletonize;
26
27
  var splitProps = {
27
28
  customClass: customClass,
28
29
  size: size,
29
30
  boxShadow: boxShadow,
30
31
  visible: visible,
31
- permissionAttr: permissionAttr
32
+ permissionAttr: permissionAttr,
33
+ skeletonize: skeletonize
32
34
  };
33
35
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_DefaultButton["default"], _extends({}, props, {
34
36
  style: {
@@ -64,7 +66,8 @@ SplitButton.propTypes = {
64
66
  boxShadow: _propTypes["default"].bool,
65
67
  dropdownAlign: _propTypes["default"].string,
66
68
  visible: _propTypes["default"].bool,
67
- permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
69
+ permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
70
+ skeletonize: _propTypes["default"].bool
68
71
  };
69
72
  SplitButton.defaultProps = {
70
73
  customClass: '',
@@ -73,7 +76,8 @@ SplitButton.defaultProps = {
73
76
  boxShadow: true,
74
77
  dropdownAlign: 'left',
75
78
  visible: true,
76
- permissionAttr: undefined
79
+ permissionAttr: undefined,
80
+ skeletonize: false
77
81
  };
78
82
  var _default = SplitButton;
79
83
  exports["default"] = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _withTooltip = _interopRequireDefault(require("../internals/withTooltip"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var Label = function Label(_ref) {
17
+ var label = _ref.label,
18
+ targetRef = _ref.targetRef;
19
+ return /*#__PURE__*/_react["default"].createElement("span", {
20
+ className: "description",
21
+ ref: function ref(r) {
22
+ return targetRef && targetRef(r);
23
+ }
24
+ }, label);
25
+ };
26
+
27
+ Label.propTypes = {
28
+ label: _propTypes["default"].string.isRequired,
29
+ targetRef: _propTypes["default"].func
30
+ };
31
+ Label.defaultProps = {
32
+ targetRef: undefined
33
+ };
34
+
35
+ var _default = (0, _withTooltip["default"])(Label);
36
+
37
+ exports["default"] = _default;
@@ -54,31 +54,31 @@ describe('CheckBox', function () {
54
54
  var _render2 = (0, _react.render)(CheckBoxTest()),
55
55
  container = _render2.container;
56
56
 
57
- expect(container.firstChild).toContainElement(container.querySelector('.checkbox-hint'));
57
+ expect(container.firstChild).toContainElement(container.querySelector('.hint'));
58
58
  });
59
59
  it('should label text match with prop label', function () {
60
60
  var _render3 = (0, _react.render)(CheckBoxTest()),
61
61
  container = _render3.container;
62
62
 
63
- expect(container.querySelector('.checkbox-description')).toHaveTextContent('testLabel');
63
+ expect(container.querySelector('.description')).toHaveTextContent('testLabel');
64
64
  });
65
65
  it('should checkbox have id ', function () {
66
66
  var _render4 = (0, _react.render)(CheckBoxTest()),
67
67
  container = _render4.container;
68
68
 
69
- expect(container.querySelector('.checkbox-component').id).toBe('1');
69
+ expect(container.querySelector('.input').id).toBe('1');
70
70
  });
71
71
  it('should checkbox have name test', function () {
72
72
  var _render5 = (0, _react.render)(CheckBoxTest()),
73
73
  container = _render5.container;
74
74
 
75
- expect(container.querySelector('.checkbox-component').name).toBe('test');
75
+ expect(container.querySelector('.input').name).toBe('test');
76
76
  });
77
77
  it('should checkbox have value', function () {
78
78
  var _render6 = (0, _react.render)(CheckBoxTest()),
79
79
  container = _render6.container;
80
80
 
81
- expect(container.querySelector('.checkbox-component').value).toBe('1');
81
+ expect(container.querySelector('.input').value).toBe('1');
82
82
  });
83
83
  it('should change checked', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
84
84
  var _render7, container;
@@ -88,11 +88,11 @@ describe('CheckBox', function () {
88
88
  switch (_context.prev = _context.next) {
89
89
  case 0:
90
90
  _render7 = (0, _react.render)(CheckBoxTest()), container = _render7.container;
91
- expect(container.querySelector('.checkbox-component').checked).toEqual(false);
91
+ expect(container.querySelector('.input').checked).toEqual(false);
92
92
 
93
- _react.fireEvent.click(container.querySelector('.checkbox-component'));
93
+ _react.fireEvent.click(container.querySelector('.input'));
94
94
 
95
- expect(container.querySelector('.checkbox-component').checked).toEqual(true);
95
+ expect(container.querySelector('.input').checked).toEqual(true);
96
96
 
97
97
  case 4:
98
98
  case "end":
@@ -111,11 +111,11 @@ describe('CheckBox', function () {
111
111
  _render8 = (0, _react.render)(CheckBoxTest({
112
112
  disabled: true
113
113
  })), container = _render8.container;
114
- expect(container.querySelector('.checkbox-component').checked).toEqual(false);
114
+ expect(container.querySelector('.input').checked).toEqual(false);
115
115
 
116
- _react.fireEvent.click(container.querySelector('.checkbox-component'));
116
+ _react.fireEvent.click(container.querySelector('.input'));
117
117
 
118
- expect(container.querySelector('.checkbox-component').checked).toEqual(false);
118
+ expect(container.querySelector('.input').checked).toEqual(false);
119
119
 
120
120
  case 4:
121
121
  case "end":
@@ -134,7 +134,7 @@ describe('CheckBox', function () {
134
134
  _render9 = (0, _react.render)(CheckBoxTest({
135
135
  required: true
136
136
  })), container = _render9.container;
137
- expect(container.querySelector('.checkbox-component').required).toEqual(true);
137
+ expect(container.querySelector('.input').required).toEqual(true);
138
138
 
139
139
  case 2:
140
140
  case "end":
@@ -153,8 +153,8 @@ describe('CheckBox', function () {
153
153
  _render10 = (0, _react.render)(CheckBoxTest({
154
154
  autoFocus: true
155
155
  })), container = _render10.container;
156
- container.querySelector('.checkbox-component').focus();
157
- expect(container.querySelector('.checkbox-component')).toHaveFocus();
156
+ container.querySelector('.input').focus();
157
+ expect(container.querySelector('.input')).toHaveFocus();
158
158
 
159
159
  case 3:
160
160
  case "end":
@@ -197,8 +197,8 @@ describe('CheckBox', function () {
197
197
 
198
198
  _react.fireEvent.click(container.firstChild);
199
199
 
200
- expect(getByTestId('checkbox-container')).toHaveClass('disabled');
201
- expect(container.querySelector('.checkbox-component')).toBeDisabled();
200
+ expect(getByTestId('checkbox-container')).toBeVisible();
201
+ expect(container.querySelector('.input')).toBeDisabled();
202
202
  expect(mockOnClick).toBeCalledTimes(0);
203
203
  });
204
204
  it('should check permission, be unavaible and onDenied is unvisible', function () {
@@ -13,6 +13,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _gridlayout = _interopRequireDefault(require("../gridlayout"));
15
15
 
16
+ var _Label = _interopRequireDefault(require("./Label"));
17
+
16
18
  require("../assets/styles/checkbox.scss");
17
19
 
18
20
  var _permissionValidations = require("../permissionValidations");
@@ -23,6 +25,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
25
 
24
26
  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; }
25
27
 
28
+ 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); }
29
+
26
30
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
31
 
28
32
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -52,7 +56,11 @@ var CheckBox = function CheckBox(props) {
52
56
  id = props.id,
53
57
  gridLayout = props.gridLayout,
54
58
  checked = props.checked,
55
- permissionAttr = props.permissionAttr;
59
+ permissionAttr = props.permissionAttr,
60
+ tooltip = props.tooltip,
61
+ tooltipPosition = props.tooltipPosition,
62
+ tooltipWidth = props.tooltipWidth,
63
+ skeletonize = props.skeletonize;
56
64
 
57
65
  var _useState = (0, _react.useState)(checked),
58
66
  _useState2 = _slicedToArray(_useState, 2),
@@ -100,10 +108,12 @@ var CheckBox = function CheckBox(props) {
100
108
  };
101
109
 
102
110
  var renderInput = function renderInput() {
103
- return /*#__PURE__*/_react["default"].createElement("div", getProps(), /*#__PURE__*/_react["default"].createElement("span", {
111
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({}, getProps(), {
112
+ className: "checkbox-component ".concat(skeletonize ? '-skeletonized' : '')
113
+ }), /*#__PURE__*/_react["default"].createElement("span", {
104
114
  "data-testid": "checkbox-container",
105
- className: shouldDisable() ? 'disabled' : '',
106
- onClick: !shouldDisable() ? function () {
115
+ className: "inputcontent",
116
+ onClick: !shouldDisable() && !skeletonize ? function () {
107
117
  return setIsChecked(!isChecked);
108
118
  } : null,
109
119
  tabIndex: "-1",
@@ -112,7 +122,7 @@ var CheckBox = function CheckBox(props) {
112
122
  onKeyPress: null
113
123
  }, /*#__PURE__*/_react["default"].createElement("input", {
114
124
  ref: inputRef,
115
- className: "checkbox-component",
125
+ className: "input",
116
126
  type: "checkbox",
117
127
  autoFocus: autofocus,
118
128
  checked: isChecked,
@@ -122,11 +132,14 @@ var CheckBox = function CheckBox(props) {
122
132
  value: value,
123
133
  id: id,
124
134
  onChange: function onChange() {}
125
- }), /*#__PURE__*/_react["default"].createElement("span", null), label && /*#__PURE__*/_react["default"].createElement("span", {
126
- className: "checkbox-description"
127
- }, label)), hint && /*#__PURE__*/_react["default"].createElement("div", {
128
- className: "checkbox-hint"
129
- }, hint));
135
+ }), /*#__PURE__*/_react["default"].createElement("span", null), label && /*#__PURE__*/_react["default"].createElement(_Label["default"], {
136
+ label: label,
137
+ tooltip: tooltip,
138
+ tooltipWidth: tooltipWidth,
139
+ tooltipPosition: tooltipPosition
140
+ })), hint && /*#__PURE__*/_react["default"].createElement("div", {
141
+ className: "hint"
142
+ }, /*#__PURE__*/_react["default"].createElement("span", null, hint)));
130
143
  };
131
144
 
132
145
  if (onDenied.unvisible) return null;
@@ -149,7 +162,11 @@ CheckBox.propTypes = {
149
162
  autofocus: _propTypes["default"].bool,
150
163
  hint: _propTypes["default"].string,
151
164
  gridLayout: _propTypes["default"].string,
152
- permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
165
+ permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
166
+ tooltip: _propTypes["default"].string,
167
+ tooltipPosition: _propTypes["default"].string,
168
+ tooltipWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
169
+ skeletonize: _propTypes["default"].bool
153
170
  };
154
171
  CheckBox.defaultProps = {
155
172
  label: '',
@@ -164,7 +181,11 @@ CheckBox.defaultProps = {
164
181
  hint: undefined,
165
182
  id: undefined,
166
183
  gridLayout: undefined,
167
- permissionAttr: undefined
184
+ permissionAttr: undefined,
185
+ tooltip: '',
186
+ tooltipPosition: 'top',
187
+ tooltipWidth: 'auto',
188
+ skeletonize: false
168
189
  };
169
190
  var _default = CheckBox;
170
191
  exports["default"] = _default;
@@ -31,7 +31,8 @@ var BaseDialog = function BaseDialog(props) {
31
31
  handlerClose = props.handlerClose,
32
32
  closeOnOutsideClick = props.closeOnOutsideClick,
33
33
  wrapperClassName = props.wrapperClassName,
34
- children = props.children;
34
+ children = props.children,
35
+ zIndex = props.zIndex;
35
36
  var dialogEl = (0, _react.useRef)(document.createElement('div'));
36
37
  dialogEl.current.className = 'dialog';
37
38
  dialogEl.current.dataset.testid = 'dialog-component';
@@ -48,25 +49,30 @@ var BaseDialog = function BaseDialog(props) {
48
49
 
49
50
  var handleClickOutside = function handleClickOutside(event) {
50
51
  var target = event.target;
52
+ var dialogAlert = document.getElementsByClassName('dialog-alert-wrapper');
51
53
 
52
54
  if (wrapperEl !== null && wrapperEl.current !== null && target !== wrapperEl.current && !wrapperEl.current.contains(target)) {
55
+ if (dialogAlert.length > 0 && dialogAlert[dialogAlert.length - 1].contains(target) || target.classList.contains('button-component')) return;
53
56
  handlerClose();
54
57
  }
55
58
  };
56
59
 
57
60
  var handleCloseOnEsc = function handleCloseOnEsc(event) {
58
- if (event.keyCode === 27 || event.key === 'ESC') handlerClose();
61
+ if (event.keyCode === 27 || event.key === 'ESC') {
62
+ handlerClose();
63
+ }
59
64
  };
60
65
 
61
66
  var setModalContainer = function setModalContainer() {
62
67
  modalContainerEl.current.className = 'modalcontainer';
68
+ if (zIndex) modalContainerEl.current.style.zIndex = zIndex;
63
69
  body.appendChild(modalContainerEl.current);
64
70
  modalContainerEl.current.appendChild(dialogEl.current);
65
71
  };
66
72
 
67
73
  var removeModalContainer = function removeModalContainer() {
68
- var modalComponent = document.getElementsByClassName('modalcontainer')[0];
69
- document.body.removeChild(modalComponent);
74
+ var modalComponent = document.getElementsByClassName('modalcontainer');
75
+ document.body.removeChild(modalComponent[modalComponent.length - 1]);
70
76
  };
71
77
 
72
78
  var removeOverlay = function removeOverlay() {
@@ -108,15 +114,18 @@ BaseDialog.propTypes = {
108
114
  closeOnEsc: _propTypes["default"].bool,
109
115
  closeOnOutsideClick: _propTypes["default"].bool,
110
116
  overlay: _propTypes["default"].bool,
117
+ changedData: _propTypes["default"].bool,
111
118
  children: _propTypes["default"].any.isRequired,
112
- textAlign: _propTypes["default"].string
119
+ textAlign: _propTypes["default"].string,
120
+ zIndex: _propTypes["default"].string
113
121
  };
114
122
  BaseDialog.defaultProps = {
115
123
  closeOnEsc: false,
116
124
  closeOnOutsideClick: false,
117
125
  overlay: true,
118
126
  handlerClose: null,
119
- textAlign: 'justify'
127
+ textAlign: 'justify',
128
+ zIndex: null
120
129
  };
121
130
  var _default = BaseDialog;
122
131
  exports["default"] = _default;