linear-react-components-ui 0.4.76-beta.33 → 0.4.76-beta.36

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 (90) hide show
  1. package/README.md +7 -5
  2. package/lib/alerts/AlertProvider.js +1 -1
  3. package/lib/alerts/BaseAlert.js +1 -1
  4. package/lib/assets/styles/button.scss +3 -1
  5. package/lib/assets/styles/commons.scss +10 -0
  6. package/lib/assets/styles/list.scss +8 -0
  7. package/lib/assets/styles/select.scss +3 -3
  8. package/lib/assets/styles/table.scss +5 -7
  9. package/lib/assets/styles/treeview.scss +9 -0
  10. package/lib/buttons/DefaultButton.js +1 -1
  11. package/lib/buttons/index.js +28 -28
  12. package/lib/calendar/base/helpers.js +6 -6
  13. package/lib/calendar/base/index.js +1 -1
  14. package/lib/calendar/index.js +10 -10
  15. package/lib/checkbox/index.js +1 -1
  16. package/lib/dialog/index.js +6 -6
  17. package/lib/drawer/Drawer.js +1 -1
  18. package/lib/drawer/index.js +4 -4
  19. package/lib/dropdown/Popup.js +3 -2
  20. package/lib/dropdown/withDropdown.js +2 -2
  21. package/lib/fieldset/index.js +1 -1
  22. package/lib/form/Field.js +1 -1
  23. package/lib/form/form.spec.js +8 -0
  24. package/lib/form/helpers.js +1 -1
  25. package/lib/form/index.js +45 -26
  26. package/lib/form/withFieldHOC.js +1 -1
  27. package/lib/form/withFormSecurity.js +2 -2
  28. package/lib/icons/helper.js +4 -0
  29. package/lib/index.js +12 -12
  30. package/lib/inputs/base/InputTextBase.js +1 -1
  31. package/lib/inputs/base/helpers.js +1 -1
  32. package/lib/inputs/color/index.js +1 -1
  33. package/lib/inputs/date/Dropdown.js +1 -1
  34. package/lib/inputs/date/helpers.js +1 -1
  35. package/lib/inputs/date/index.js +1 -1
  36. package/lib/inputs/inputHOC.js +1 -1
  37. package/lib/inputs/mask/Cnpj.js +1 -1
  38. package/lib/inputs/mask/Cpf.js +1 -1
  39. package/lib/inputs/mask/Phone.js +10 -1
  40. package/lib/inputs/mask/helpers.js +2 -2
  41. package/lib/inputs/mask/imaskHOC.js +1 -1
  42. package/lib/inputs/mask/index.js +4 -4
  43. package/lib/inputs/mask/input_mask.spec.js +21 -4
  44. package/lib/inputs/multiSelect/Dropdown.js +1 -1
  45. package/lib/inputs/multiSelect/index.js +1 -1
  46. package/lib/inputs/number/format_number.js +1 -1
  47. package/lib/inputs/period/Dropdown.js +1 -1
  48. package/lib/inputs/period/helper.js +1 -1
  49. package/lib/inputs/period/index.js +1 -1
  50. package/lib/inputs/search/index.js +1 -1
  51. package/lib/inputs/select/Dropdown.js +50 -63
  52. package/lib/inputs/select/helper.js +65 -2
  53. package/lib/inputs/select/multiple/index.js +6 -3
  54. package/lib/inputs/select/simple/index.js +8 -5
  55. package/lib/internals/constants.js +1 -1
  56. package/lib/internals/withTooltip.js +1 -1
  57. package/lib/labelMessages/index.js +1 -1
  58. package/lib/labels/DefaultLabel.js +1 -1
  59. package/lib/labels/index.js +10 -10
  60. package/lib/list/Item.js +9 -7
  61. package/lib/list/helpers.js +8 -3
  62. package/lib/list/index.js +91 -21
  63. package/lib/list/list.spec.js +113 -84
  64. package/lib/menus/sidenav/NavMenuItem.js +1 -1
  65. package/lib/menus/sidenav/NavSubMenuItem.js +1 -1
  66. package/lib/menus/sidenav/helpers.js +1 -1
  67. package/lib/menus/sidenav/index.js +10 -10
  68. package/lib/menus/sidenav/popup_menu_search/index.js +2 -1
  69. package/lib/panel/Default.js +1 -1
  70. package/lib/panel/helpers.js +1 -1
  71. package/lib/panel/index.js +14 -14
  72. package/lib/permissionValidations.js +1 -1
  73. package/lib/radio/index.js +1 -1
  74. package/lib/spinner/index.js +1 -1
  75. package/lib/split/Split.js +1 -1
  76. package/lib/table/Body.js +33 -23
  77. package/lib/table/Header.js +6 -4
  78. package/lib/table/helpers.js +1 -1
  79. package/lib/table/index.js +14 -12
  80. package/lib/tabs/Panel.js +1 -1
  81. package/lib/tabs/index.js +1 -1
  82. package/lib/tabs/tabHelpers.js +3 -2
  83. package/lib/toolbar/index.js +8 -8
  84. package/lib/treeview/Node.js +23 -7
  85. package/lib/treeview/index.js +12 -4
  86. package/lib/treeview/treeview.spec.js +18 -0
  87. package/lib/treeview_old/Node.js +1 -1
  88. package/lib/uitour/helpers.js +1 -1
  89. package/lib/uitour/index.js +1 -1
  90. package/package.json +1 -1
package/lib/list/index.js CHANGED
@@ -35,11 +35,13 @@ var _Item = _interopRequireDefault(require("./Item"));
35
35
 
36
36
  var constants = _interopRequireWildcard(require("../internals/constants"));
37
37
 
38
+ var _skeleton = _interopRequireDefault(require("../skeleton"));
39
+
38
40
  var _Separator = _interopRequireDefault(require("./Separator"));
39
41
 
40
42
  require("../assets/styles/list.scss");
41
43
 
42
- var _helpers = _interopRequireDefault(require("./helpers"));
44
+ var _helpers = require("./helpers");
43
45
 
44
46
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
45
47
 
@@ -55,11 +57,22 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
55
57
 
56
58
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
57
59
 
58
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
60
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
59
61
 
60
62
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
61
63
 
62
64
  var List = function List(props) {
65
+ var customClass = props.customClass,
66
+ condensed = props.condensed,
67
+ transparent = props.transparent,
68
+ style = props.style,
69
+ selectable = props.selectable,
70
+ onSelectItem = props.onSelectItem,
71
+ skeletonize = props.skeletonize,
72
+ skeletonItens = props.skeletonItens,
73
+ skeletonHeight = props.skeletonHeight,
74
+ children = props.children,
75
+ selectOnEnter = props.selectOnEnter;
63
76
  var selectedItemRef = (0, _react.useRef)(null);
64
77
  var listRef = (0, _react.useRef)(null);
65
78
 
@@ -73,18 +86,18 @@ var List = function List(props) {
73
86
  itensId = _useState4[0],
74
87
  setItensId = _useState4[1];
75
88
 
76
- var children = props.children,
77
- customClass = props.customClass,
78
- condensed = props.condensed,
79
- transparent = props.transparent,
80
- style = props.style,
81
- selectable = props.selectable,
82
- onSelectItem = props.onSelectItem;
89
+ var _useState5 = (0, _react.useState)(children),
90
+ _useState6 = _slicedToArray(_useState5, 2),
91
+ newChildren = _useState6[0],
92
+ setNewChildren = _useState6[1];
93
+
83
94
  var contextValues = {
84
95
  selectable: selectable,
85
96
  selectedItemId: selectedItemId,
86
97
  selectedItemRef: selectedItemRef,
98
+ selectOnEnter: selectOnEnter,
87
99
  children: children,
100
+ skeletonize: skeletonize,
88
101
  handleSelectItem: function handleSelectItem(itemId, onClick) {
89
102
  if (!onSelectItem && onClick) setSelectedItemId(itemId);
90
103
  if (onSelectItem) onSelectItem(itemId);
@@ -92,7 +105,7 @@ var List = function List(props) {
92
105
  };
93
106
 
94
107
  var onKeyDown = function onKeyDown(e) {
95
- if ([constants.keyCodes.ARROW_DOWN, constants.keyCodes.ARROW_UP].includes(e.keyCode)) {
108
+ if ([constants.keyCodes.ARROW_DOWN, constants.keyCodes.ARROW_UP].includes(e.keyCode) && !skeletonize) {
96
109
  e.preventDefault();
97
110
 
98
111
  if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
@@ -118,6 +131,37 @@ var List = function List(props) {
118
131
  return null;
119
132
  };
120
133
 
134
+ var getSkeleton = function getSkeleton() {
135
+ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
136
+ var maxSkeletonsItensExceeded = 2;
137
+ var skeletonItensCount = length > skeletonItens ? maxSkeletonsItensExceeded : Math.floor(skeletonItens / length);
138
+ var skeletonItensList = Array.from(Array(skeletonItensCount).keys());
139
+ return /*#__PURE__*/_react["default"].createElement("div", {
140
+ className: "skeleton-transparency"
141
+ }, skeletonItensList.map(function (id) {
142
+ return /*#__PURE__*/_react["default"].createElement(_Item["default"], {
143
+ key: id,
144
+ hovered: false,
145
+ style: {
146
+ pointerEvents: 'none'
147
+ }
148
+ }, /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
149
+ height: skeletonHeight,
150
+ style: {
151
+ margin: '6px 0'
152
+ }
153
+ }));
154
+ }));
155
+ };
156
+
157
+ var getNewChildren = function getNewChildren(headersChildren) {
158
+ return headersChildren.length > 0 ? headersChildren.map(function (item) {
159
+ return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
160
+ key: item.props.title
161
+ }, item, getSkeleton(headersChildren.length));
162
+ }) : /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, headersChildren, getSkeleton());
163
+ };
164
+
121
165
  (0, _react.useEffect)(function () {
122
166
  if (selectedItemRef.current && listRef.current && listRef.current.scroll) {
123
167
  var selectedItemRect = selectedItemRef.current.getBoundingClientRect();
@@ -145,28 +189,46 @@ var List = function List(props) {
145
189
  }
146
190
  }, [selectedItemRef.current]);
147
191
  (0, _react.useEffect)(function () {
148
- document.addEventListener('keydown', onKeyDown);
192
+ if (!skeletonize) document.addEventListener('keydown', onKeyDown);
149
193
  return function () {
150
194
  document.removeEventListener('keydown', onKeyDown);
151
195
  };
152
- });
196
+ }, [skeletonize, selectedItemId, itensId]);
153
197
  (0, _react.useEffect)(function () {
154
- if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
198
+ if (onSelectItem && props.selectedItemId) {
199
+ setSelectedItemId(props.selectedItemId);
200
+ if (selectedItemRef.current) selectedItemRef.current.focus();
201
+ }
155
202
  }, [props.selectedItemId]);
156
203
  (0, _react.useEffect)(function () {
157
- var newItensIds = children.length > 0 && children.map(function (item) {
158
- return item.props.itemId;
159
- }).filter(Boolean);
204
+ var newItensIds = children.length > 0 ? children.map(function (item) {
205
+ return item.props && item.props.itemId;
206
+ }).filter(Boolean) : [children.props.itemId];
160
207
  setItensId(newItensIds);
161
- }, [children.length]);
162
- return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
208
+ }, [children]);
209
+ (0, _react.useEffect)(function () {
210
+ if (skeletonize) {
211
+ var headersChildren = children.type && children.type === _helpers.LIST_ITEMS_TYPES.listHeader && children;
212
+
213
+ if (children.length > 0) {
214
+ headersChildren = children.filter(function (item) {
215
+ return item.type && item.type.name === _helpers.LIST_ITEMS_TYPES.listHeader;
216
+ });
217
+ }
218
+
219
+ setNewChildren(getNewChildren(headersChildren));
220
+ } else {
221
+ setNewChildren(children);
222
+ }
223
+ }, [skeletonize, children]);
224
+ return /*#__PURE__*/_react["default"].createElement(_helpers.ListContext.Provider, {
163
225
  value: contextValues
164
226
  }, /*#__PURE__*/_react["default"].createElement("ul", {
165
227
  "data-testid": "list-component",
166
228
  style: style,
167
229
  ref: listRef,
168
230
  className: "list-component ".concat(condensed && '-condensed', "\n ").concat(customClass, " ").concat(!transparent && '-listbackground')
169
- }, children));
231
+ }, newChildren));
170
232
  };
171
233
 
172
234
  List.propTypes = {
@@ -177,7 +239,11 @@ List.propTypes = {
177
239
  selectable: _propTypes["default"].bool,
178
240
  style: _propTypes["default"].object,
179
241
  onSelectItem: _propTypes["default"].func,
180
- selectedItemId: _propTypes["default"].string
242
+ selectedItemId: _propTypes["default"].string,
243
+ skeletonize: _propTypes["default"].bool,
244
+ skeletonItens: _propTypes["default"].number,
245
+ skeletonHeight: _propTypes["default"].number,
246
+ selectOnEnter: _propTypes["default"].bool
181
247
  };
182
248
  List.defaultProps = {
183
249
  customClass: '',
@@ -186,7 +252,11 @@ List.defaultProps = {
186
252
  selectable: false,
187
253
  style: {},
188
254
  onSelectItem: undefined,
189
- selectedItemId: ''
255
+ selectedItemId: '',
256
+ skeletonize: false,
257
+ skeletonItens: 5,
258
+ skeletonHeight: 48,
259
+ selectOnEnter: false
190
260
  };
191
261
  var _default = List;
192
262
  exports["default"] = _default;