linear-react-components-ui 0.4.76-rc.9 → 0.4.77-beta.2

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 (124) 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 +48 -2
  10. package/lib/assets/styles/effects.scss +43 -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/dropdown/withDropdown.js +3 -3
  42. package/lib/form/Field.js +2 -0
  43. package/lib/form/FieldNumber.js +11 -3
  44. package/lib/form/FieldPeriod.js +100 -0
  45. package/lib/form/form.spec.js +8 -0
  46. package/lib/form/helpers.js +20 -1
  47. package/lib/form/index.js +220 -218
  48. package/lib/form/withFieldHOC.js +5 -1
  49. package/lib/form/withFormSecurity.js +106 -0
  50. package/lib/icons/helper.js +24 -0
  51. package/lib/inputs/base/InputTextBase.js +30 -5
  52. package/lib/inputs/base/helpers.js +13 -9
  53. package/lib/inputs/date/Dropdown.js +3 -3
  54. package/lib/inputs/date/date.spec.js +46 -36
  55. package/lib/inputs/date/helpers.js +36 -0
  56. package/lib/inputs/date/index.js +12 -10
  57. package/lib/inputs/mask/Phone.js +10 -1
  58. package/lib/inputs/mask/imaskHOC.js +2 -1
  59. package/lib/inputs/mask/input_mask.spec.js +21 -4
  60. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  61. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  62. package/lib/inputs/multiSelect/helper.js +18 -0
  63. package/lib/inputs/multiSelect/index.js +343 -0
  64. package/lib/inputs/number/BaseNumber.js +1 -1
  65. package/lib/inputs/number/index.js +7 -5
  66. package/lib/inputs/period/Dialog.js +38 -0
  67. package/lib/inputs/period/Dropdown.js +90 -0
  68. package/lib/inputs/period/PeriodList.js +79 -0
  69. package/lib/inputs/period/helper.js +118 -0
  70. package/lib/inputs/period/index.js +490 -0
  71. package/lib/inputs/search/index.js +2 -0
  72. package/lib/inputs/select/Dropdown.js +55 -65
  73. package/lib/inputs/select/helper.js +65 -2
  74. package/lib/inputs/select/index.js +26 -3
  75. package/lib/inputs/select/multiple/index.js +16 -11
  76. package/lib/inputs/select/simple/index.js +39 -24
  77. package/lib/internals/constants.js +4 -3
  78. package/lib/internals/withTooltip.js +86 -82
  79. package/lib/labels/DefaultLabel.js +7 -4
  80. package/lib/list/Item.js +35 -9
  81. package/lib/list/helpers.js +8 -3
  82. package/lib/list/index.js +172 -14
  83. package/lib/list/list.spec.js +290 -89
  84. package/lib/menus/float/MenuItem.js +41 -12
  85. package/lib/menus/float/SubMenuContainer.js +48 -0
  86. package/lib/menus/float/index.js +8 -0
  87. package/lib/menus/sidenav/NavMenuItem.js +17 -8
  88. package/lib/menus/sidenav/index.js +59 -86
  89. package/lib/menus/sidenav/popup_menu_search/index.js +26 -17
  90. package/lib/menus/sidenav/sidenav.spec.js +86 -19
  91. package/lib/panel/Header.js +4 -3
  92. package/lib/progress/Bar.js +40 -9
  93. package/lib/progress/index.js +12 -4
  94. package/lib/radio/index.js +9 -6
  95. package/lib/skeleton/SkeletonContainer.js +42 -0
  96. package/lib/skeleton/index.js +84 -0
  97. package/lib/spinner/index.js +6 -1
  98. package/lib/split/Split.js +5 -11
  99. package/lib/table/Body.js +55 -11
  100. package/lib/table/Header.js +14 -1
  101. package/lib/table/HeaderColumn.js +26 -3
  102. package/lib/table/Row.js +19 -8
  103. package/lib/table/RowColumn.js +23 -3
  104. package/lib/table/helpers.js +11 -1
  105. package/lib/table/index.js +41 -8
  106. package/lib/tabs/DropdownItems.js +84 -0
  107. package/lib/tabs/Menu.js +12 -9
  108. package/lib/tabs/MenuItems.js +15 -9
  109. package/lib/tabs/Panel.js +1 -3
  110. package/lib/tabs/index.js +156 -22
  111. package/lib/tabs/tabs.spec.js +8 -5
  112. package/lib/toolbar/ButtonBar.js +30 -24
  113. package/lib/toolbar/LabelBar.js +22 -27
  114. package/lib/toolbar/helpers.js +12 -0
  115. package/lib/toolbar/index.js +24 -9
  116. package/lib/tooltip/index.js +20 -7
  117. package/lib/treeview/Node.js +364 -49
  118. package/lib/treeview/index.js +475 -36
  119. package/lib/treeview/treeview.spec.js +18 -0
  120. package/lib/uitour/helpers.js +15 -0
  121. package/lib/uitour/index.js +271 -0
  122. package/lib/uitour/uitour.spec.js +176 -0
  123. package/package.json +9 -8
  124. package/lib/inputs/date/helper.js +0 -16
@@ -206,38 +206,30 @@ describe('SideNav Menu', function () {
206
206
 
207
207
  expect(container.querySelector('.openclosemenu')).toBeInTheDocument();
208
208
  });
209
- it('should enable menu search', function () {
210
- var _render4 = (0, _react2.render)(sidebarNavMockRender({
211
- enableMenuSearch: true
212
- })),
213
- container = _render4.container;
214
-
215
- expect(container.querySelector('.inputwrapper')).toBeInTheDocument();
216
- });
217
209
  it('should render all items', function () {
218
- var _render5 = (0, _react2.render)(sidebarNavMockRender()),
219
- container = _render5.container;
210
+ var _render4 = (0, _react2.render)(sidebarNavMockRender()),
211
+ container = _render4.container;
220
212
  /* primeiro item é o float menu */
221
213
 
222
214
 
223
215
  expect(container.querySelectorAll('li.item').length - 1).toBe(menuDataMock.length);
224
216
  });
225
217
  it('should be rendering 3 items SVGs', function () {
226
- var _render6 = (0, _react2.render)(sidebarNavMockRender()),
227
- container = _render6.container;
218
+ var _render5 = (0, _react2.render)(sidebarNavMockRender()),
219
+ container = _render5.container;
228
220
 
229
221
  expect(container.querySelectorAll('li.item .icon-component').length).toBe(3);
230
222
  });
231
223
  it('should open submenu on over', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
232
- var _render7, container;
224
+ var _render6, container;
233
225
 
234
226
  return regeneratorRuntime.wrap(function _callee$(_context) {
235
227
  while (1) {
236
228
  switch (_context.prev = _context.next) {
237
229
  case 0:
238
- _render7 = (0, _react2.render)(sidebarNavMockRender({
230
+ _render6 = (0, _react2.render)(sidebarNavMockRender({
239
231
  menuSize: 'large'
240
- })), container = _render7.container;
232
+ })), container = _render6.container;
241
233
 
242
234
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
243
235
 
@@ -257,13 +249,13 @@ describe('SideNav Menu', function () {
257
249
  }, _callee);
258
250
  })));
259
251
  it('submenu should render all items', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
260
- var _render8, container;
252
+ var _render7, container;
261
253
 
262
254
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
263
255
  while (1) {
264
256
  switch (_context2.prev = _context2.next) {
265
257
  case 0:
266
- _render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
258
+ _render7 = (0, _react2.render)(sidebarNavMockRender()), container = _render7.container;
267
259
 
268
260
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
269
261
 
@@ -283,13 +275,13 @@ describe('SideNav Menu', function () {
283
275
  }, _callee2);
284
276
  })));
285
277
  it('submenu should have title', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
286
- var _render9, container;
278
+ var _render8, container;
287
279
 
288
280
  return regeneratorRuntime.wrap(function _callee3$(_context3) {
289
281
  while (1) {
290
282
  switch (_context3.prev = _context3.next) {
291
283
  case 0:
292
- _render9 = (0, _react2.render)(sidebarNavMockRender()), container = _render9.container;
284
+ _render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
293
285
 
294
286
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
295
287
 
@@ -308,5 +300,80 @@ describe('SideNav Menu', function () {
308
300
  }
309
301
  }, _callee3);
310
302
  })));
303
+ describe('Popup Search Menu', function () {
304
+ it('should enable menu search', function () {
305
+ var _render9 = (0, _react2.render)(sidebarNavMockRender({
306
+ enableMenuSearch: true
307
+ })),
308
+ container = _render9.container;
309
+
310
+ expect(container.querySelector('.searchmenubutton')).toBeInTheDocument();
311
+ });
312
+ it('should render tooltip on over menu search item', function () {
313
+ var _render10 = (0, _react2.render)(sidebarNavMockRender({
314
+ enableMenuSearch: true
315
+ })),
316
+ container = _render10.container;
317
+
318
+ var navitem = container.querySelector('.-customsidenavitem');
319
+
320
+ _react2.fireEvent.mouseOver(navitem);
321
+
322
+ expect(document.querySelector('.tooltip-component')).toBeInTheDocument();
323
+ });
324
+ it('should open popup menu when pressed HotKey', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
325
+ var _render11, container;
326
+
327
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
328
+ while (1) {
329
+ switch (_context4.prev = _context4.next) {
330
+ case 0:
331
+ _render11 = (0, _react2.render)(sidebarNavMockRender({
332
+ enableMenuSearch: true
333
+ })), container = _render11.container;
334
+
335
+ _react2.fireEvent.keyDown(container, {
336
+ key: 'F',
337
+ code: 'keyF',
338
+ keyCode: 70,
339
+ ctrlKey: true,
340
+ shiftKey: true
341
+ });
342
+
343
+ expect(document.querySelector('.searchmenu')).toBeInTheDocument();
344
+
345
+ case 3:
346
+ case "end":
347
+ return _context4.stop();
348
+ }
349
+ }
350
+ }, _callee4);
351
+ })));
352
+ it('should search on input change', function () {
353
+ var _render12 = (0, _react2.render)(sidebarNavMockRender({
354
+ enableMenuSearch: true
355
+ })),
356
+ container = _render12.container;
357
+
358
+ _react2.fireEvent.keyDown(container, {
359
+ key: 'F',
360
+ code: 'keyF',
361
+ keyCode: 70,
362
+ ctrlKey: true,
363
+ shiftKey: true
364
+ });
365
+
366
+ var input = document.querySelector('.searchmenu .inputwrapper .inputcontent .textinput');
367
+
368
+ _react2.fireEvent.change(input, {
369
+ target: {
370
+ value: 'A'
371
+ }
372
+ });
373
+
374
+ expect(document.querySelector('.searchmenu')).toBeInTheDocument();
375
+ expect(document.querySelectorAll('.searchmenu .list-component .item').length).toBe(5);
376
+ });
377
+ });
311
378
  });
312
379
  });
@@ -64,7 +64,7 @@ var PanelHeader = function PanelHeader(props) {
64
64
  style: style
65
65
  }, (icon || titleIcon) && /*#__PURE__*/_react["default"].createElement("div", {
66
66
  className: "".concat(icon !== null || titleIcon !== null ? 'icon-left-panel' : '')
67
- }, getIcon(titleIcon, icon)), /*#__PURE__*/_react["default"].createElement("h1", {
67
+ }, getIcon(titleIcon, icon)), title && /*#__PURE__*/_react["default"].createElement("h1", {
68
68
  className: "title ".concat(customClassForTitle),
69
69
  style: styleForTitle
70
70
  }, title), toggleable && /*#__PURE__*/_react["default"].createElement(_buttons.ButtonContainer, {
@@ -83,7 +83,7 @@ var PanelHeader = function PanelHeader(props) {
83
83
  };
84
84
 
85
85
  PanelHeader.propTypes = {
86
- title: _propTypes["default"].string.isRequired,
86
+ title: _propTypes["default"].string,
87
87
  children: _propTypes["default"].element,
88
88
  icon: _propTypes["default"].instanceOf(Object),
89
89
  titleIcon: _propTypes["default"].string,
@@ -101,7 +101,8 @@ PanelHeader.defaultProps = {
101
101
  styleForTitle: {},
102
102
  customClassForTitle: '',
103
103
  headerColored: true,
104
- children: null
104
+ children: null,
105
+ title: ''
105
106
  };
106
107
  var _default = PanelHeader;
107
108
  exports["default"] = _default;
@@ -18,6 +18,16 @@ var getPercentage = function getPercentage(props) {
18
18
  return Math.round(percentage * ROUND_PRECISION) / ROUND_PRECISION;
19
19
  };
20
20
 
21
+ var getClass = function getClass(props) {
22
+ var style = 'bar';
23
+ if (props.customClass) style += "".concat(props.customClass);
24
+ if (props.type) style += " -".concat(props.type);
25
+ if (props.effect) style += ' -effect';
26
+ if (props.animated) style += ' -animated';
27
+ if (props.indeterminate) style += ' -indeterminate';
28
+ return style;
29
+ };
30
+
21
31
  var getLabel = function getLabel(progress) {
22
32
  var value = progress.label;
23
33
 
@@ -30,43 +40,64 @@ var getLabel = function getLabel(progress) {
30
40
  }, value);
31
41
  };
32
42
 
43
+ var getStyle = function getStyle(props) {
44
+ if (props.indeterminate) {
45
+ return {
46
+ width: props.progressWidth,
47
+ height: props.height,
48
+ animationDuration: "".concat(props.indeterminateDuration, "s"),
49
+ animationDelay: "".concat(props.indeterminateDelay, "s")
50
+ };
51
+ }
52
+
53
+ return {
54
+ width: "".concat(getPercentage(props), "%"),
55
+ height: props.height
56
+ };
57
+ };
58
+
33
59
  var ProgressBar = function ProgressBar(props) {
34
60
  return /*#__PURE__*/_react["default"].createElement("div", {
35
61
  role: "progressbar",
36
- className: "bar -".concat(props.type, " ").concat(props.customClass, " -").concat(props.effect && '-effect', " -").concat(props.animated && '-animated'),
37
- style: {
38
- width: "".concat(getPercentage(props), "%"),
39
- height: "".concat(props.height)
40
- },
62
+ className: getClass(props),
63
+ style: getStyle(props),
41
64
  "aria-valuenow": props.value,
42
65
  "aria-valuemin": props.min,
43
66
  "aria-valuemax": props.max
44
- }, props.showLabel && getLabel(props));
67
+ }, props.showLabel && !props.indeterminate && getLabel(props));
45
68
  };
46
69
 
47
70
  ProgressBar.defaultProps = {
48
71
  min: 0,
49
72
  max: 100,
50
73
  value: 0,
74
+ progressWidth: '100%',
51
75
  height: '100%',
52
76
  effect: false,
53
77
  customClass: '',
54
78
  type: '',
55
79
  showLabel: true,
56
80
  label: '',
57
- animated: false
81
+ animated: false,
82
+ indeterminate: false,
83
+ indeterminateDuration: 1.5,
84
+ indeterminateDelay: 1
58
85
  };
59
86
  ProgressBar.propTypes = {
60
87
  label: _propTypes["default"].string,
61
88
  min: _propTypes["default"].number,
62
89
  value: _propTypes["default"].number,
63
90
  max: _propTypes["default"].number,
64
- height: _propTypes["default"].string,
91
+ progressWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
92
+ height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
65
93
  showLabel: _propTypes["default"].bool,
66
94
  effect: _propTypes["default"].bool,
67
95
  type: _propTypes["default"].string,
68
96
  customClass: _propTypes["default"].string,
69
- animated: _propTypes["default"].bool
97
+ animated: _propTypes["default"].bool,
98
+ indeterminate: _propTypes["default"].bool,
99
+ indeterminateDuration: _propTypes["default"].number,
100
+ indeterminateDelay: _propTypes["default"].number
70
101
  };
71
102
  var _default = ProgressBar;
72
103
  exports["default"] = _default;
@@ -21,24 +21,32 @@ require("../assets/styles/progress.scss");
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
23
 
24
+ 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); }
25
+
24
26
  var ProgressBar = function ProgressBar(props) {
25
27
  var style = props.style,
26
28
  children = props.children;
29
+
30
+ var getStyle = _extends({}, style, {
31
+ width: props.width,
32
+ height: props.height
33
+ });
34
+
27
35
  return /*#__PURE__*/_react["default"].createElement("div", {
28
36
  className: "container-progress",
29
- style: style
37
+ style: getStyle
30
38
  }, children || /*#__PURE__*/_react["default"].createElement(_Bar["default"], props));
31
39
  };
32
40
 
33
41
  ProgressBar.propTypes = {
34
- width: _propTypes["default"].string,
35
- height: _propTypes["default"].string,
42
+ width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
43
+ height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
36
44
  style: _propTypes["default"].object,
37
45
  children: _propTypes["default"].any
38
46
  };
39
47
  ProgressBar.defaultProps = {
40
48
  width: '100%',
41
- height: '100%',
49
+ height: '24px',
42
50
  children: null,
43
51
  style: {}
44
52
  };
@@ -50,7 +50,8 @@ var Radio = function Radio(props) {
50
50
  _onChange = props.onChange,
51
51
  id = props.id,
52
52
  checked = props.checked,
53
- permissionAttr = props.permissionAttr;
53
+ permissionAttr = props.permissionAttr,
54
+ skeletonize = props.skeletonize;
54
55
 
55
56
  var _useState = (0, _react.useState)(checked),
56
57
  _useState2 = _slicedToArray(_useState, 2),
@@ -68,7 +69,7 @@ var Radio = function Radio(props) {
68
69
  }, [checked]);
69
70
 
70
71
  var shouldDisable = function shouldDisable() {
71
- return disabled || onDenied.disabled;
72
+ return disabled || onDenied.disabled || skeletonize;
72
73
  };
73
74
 
74
75
  var getCustomProps = function getCustomProps() {
@@ -96,7 +97,7 @@ var Radio = function Radio(props) {
96
97
 
97
98
  if (onDenied.unvisible) return null;
98
99
  return /*#__PURE__*/_react["default"].createElement("div", {
99
- className: "radio-button ".concat(disabled)
100
+ className: "radio-button ".concat(disabled ? 'disabled' : '', " ").concat(skeletonize ? '-skeletonized' : '')
100
101
  }, /*#__PURE__*/_react["default"].createElement("input", _extends({}, getCustomProps(), {
101
102
  className: "radio-component",
102
103
  type: "radio",
@@ -108,7 +109,7 @@ var Radio = function Radio(props) {
108
109
  })), /*#__PURE__*/_react["default"].createElement("label", {
109
110
  className: "description",
110
111
  htmlFor: id
111
- }, label));
112
+ }, /*#__PURE__*/_react["default"].createElement("span", null, label)));
112
113
  };
113
114
 
114
115
  Radio.propTypes = {
@@ -121,7 +122,8 @@ Radio.propTypes = {
121
122
  required: _propTypes["default"].bool,
122
123
  onChange: _propTypes["default"].func,
123
124
  checked: _propTypes["default"].bool,
124
- permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
125
+ permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
126
+ skeletonize: _propTypes["default"].bool
125
127
  };
126
128
  Radio.defaultProps = {
127
129
  label: null,
@@ -132,7 +134,8 @@ Radio.defaultProps = {
132
134
  value: undefined,
133
135
  checked: undefined,
134
136
  id: undefined,
135
- permissionAttr: undefined
137
+ permissionAttr: undefined,
138
+ skeletonize: false
136
139
  };
137
140
  var _default = Radio;
138
141
  exports["default"] = _default;
@@ -0,0 +1,42 @@
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
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ var SkeletonContainer = function SkeletonContainer(_ref) {
15
+ var children = _ref.children,
16
+ row = _ref.row,
17
+ customClass = _ref.customClass,
18
+ style = _ref.style;
19
+
20
+ var getClass = function getClass() {
21
+ return "skeletoncontainer-component ".concat(customClass, "\n ").concat(row && '-row');
22
+ };
23
+
24
+ return /*#__PURE__*/_react["default"].createElement("div", {
25
+ className: getClass(),
26
+ style: style
27
+ }, children);
28
+ };
29
+
30
+ SkeletonContainer.propTypes = {
31
+ children: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].arrayOf(_propTypes["default"].element)]).isRequired,
32
+ row: _propTypes["default"].bool,
33
+ customClass: _propTypes["default"].string,
34
+ style: _propTypes["default"].object
35
+ };
36
+ SkeletonContainer.defaultProps = {
37
+ row: false,
38
+ customClass: undefined,
39
+ style: null
40
+ };
41
+ var _default = SkeletonContainer;
42
+ exports["default"] = _default;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SkeletonContainer", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _SkeletonContainer["default"];
10
+ }
11
+ });
12
+ exports["default"] = void 0;
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _gridlayout = _interopRequireDefault(require("../gridlayout"));
19
+
20
+ var _SkeletonContainer = _interopRequireDefault(require("./SkeletonContainer"));
21
+
22
+ require("../assets/styles/skeleton.scss");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
+
26
+ 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); }
27
+
28
+ var Skeleton = function Skeleton(props) {
29
+ var customClass = props.customClass,
30
+ style = props.style,
31
+ width = props.width,
32
+ height = props.height,
33
+ round = props.round,
34
+ color = props.color,
35
+ size = props.size,
36
+ gridLayout = props.gridLayout;
37
+ var customStyles = {
38
+ width: width,
39
+ height: height
40
+ };
41
+
42
+ var getClass = function getClass() {
43
+ return "skeleton-component ".concat(customClass, "\n ").concat(color && "-".concat(color), "\n ").concat(round && '-round', "\n ").concat(round && size && "-".concat(size));
44
+ };
45
+
46
+ var renderContent = function renderContent() {
47
+ return /*#__PURE__*/_react["default"].createElement("div", {
48
+ className: getClass(),
49
+ style: _extends({}, customStyles, style)
50
+ });
51
+ };
52
+
53
+ if (gridLayout !== undefined) {
54
+ return /*#__PURE__*/_react["default"].createElement(_gridlayout["default"], {
55
+ customClass: "-withskeleton",
56
+ cols: gridLayout
57
+ }, renderContent());
58
+ }
59
+
60
+ return renderContent();
61
+ };
62
+
63
+ Skeleton.propTypes = {
64
+ width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
65
+ height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
66
+ round: _propTypes["default"].bool,
67
+ size: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large']),
68
+ color: _propTypes["default"].oneOf(['default', 'white']),
69
+ gridLayout: _propTypes["default"].string,
70
+ customClass: _propTypes["default"].string,
71
+ style: _propTypes["default"].object
72
+ };
73
+ Skeleton.defaultProps = {
74
+ width: undefined,
75
+ height: undefined,
76
+ round: false,
77
+ size: 'medium',
78
+ color: 'default',
79
+ gridLayout: undefined,
80
+ customClass: '',
81
+ style: null
82
+ };
83
+ var _default = Skeleton;
84
+ exports["default"] = _default;
@@ -47,12 +47,17 @@ var Spinner = function Spinner(props) {
47
47
  delay = _useState2[0],
48
48
  setDelay = _useState2[1];
49
49
 
50
+ var delayTimeout = (0, _react.useRef)(null);
50
51
  (0, _react.useEffect)(function () {
51
52
  if (delayTime) {
52
- setTimeout(function () {
53
+ delayTimeout.current = setTimeout(function () {
53
54
  setDelay(false);
54
55
  }, delayTime);
55
56
  }
57
+
58
+ return function () {
59
+ clearTimeout(delayTimeout.current);
60
+ };
56
61
  }, []);
57
62
 
58
63
  var getCssClass = function getCssClass() {
@@ -49,8 +49,6 @@ var Split = function Split(props) {
49
49
  var hotKey = props.hotKey,
50
50
  secondaryInitialSize = props.secondaryInitialSize,
51
51
  onSecondaryPaneSizeChange = props.onSecondaryPaneSizeChange,
52
- onDragStart = props.onDragStart,
53
- onDragEnd = props.onDragEnd,
54
52
  vertical = props.vertical,
55
53
  primaryIndex = props.primaryIndex,
56
54
  percentage = props.percentage,
@@ -271,9 +269,6 @@ var Split = function Split(props) {
271
269
  (0, _react.useEffect)(function () {
272
270
  if (state.resizing) {
273
271
  document.addEventListener('mousemove', handleMouseMove);
274
- if (onDragStart) onDragStart();
275
- } else if (onDragEnd) {
276
- onDragEnd();
277
272
  }
278
273
 
279
274
  return function () {
@@ -334,8 +329,11 @@ var Split = function Split(props) {
334
329
  role: "button",
335
330
  tabIndex: "-1",
336
331
  onDoubleClick: function onDoubleClick() {
337
- return setState(_extends({}, state, {
338
- visibleSplitSide: !visibleSplitSide,
332
+ return state.secondaryPaneSize === 100 ? setState(_extends({}, state, {
333
+ secondaryPaneSize: 50,
334
+ resizing: false
335
+ })) : setState(_extends({}, state, {
336
+ secondaryPaneSize: 100,
339
337
  resizing: false
340
338
  }));
341
339
  },
@@ -354,8 +352,6 @@ Split.propTypes = {
354
352
  secondaryInitialSize: _propTypes["default"].number,
355
353
  secondaryMinSize: _propTypes["default"].number,
356
354
  hideSplitSideOnToggleClick: _propTypes["default"].string,
357
- onDragStart: _propTypes["default"].func,
358
- onDragEnd: _propTypes["default"].func,
359
355
  onSecondaryPaneSizeChange: _propTypes["default"].func,
360
356
  children: _propTypes["default"].arrayOf(_propTypes["default"].node)
361
357
  };
@@ -369,8 +365,6 @@ Split.defaultProps = {
369
365
  secondaryInitialSize: undefined,
370
366
  secondaryMinSize: 0,
371
367
  hideSplitSideOnToggleClick: 'primary',
372
- onDragStart: null,
373
- onDragEnd: null,
374
368
  onSecondaryPaneSizeChange: null,
375
369
  children: [],
376
370
  hotKey: false
package/lib/table/Body.js CHANGED
@@ -11,7 +11,11 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _helpers = _interopRequireDefault(require("./helpers"));
14
+ var _helpers = _interopRequireWildcard(require("./helpers"));
15
+
16
+ var _skeleton = _interopRequireDefault(require("../skeleton"));
17
+
18
+ var _index = require("./index");
15
19
 
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
21
 
@@ -19,27 +23,67 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
19
23
 
20
24
  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; }
21
25
 
22
- var TableBody = function TableBody(_ref) {
26
+ 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); }
27
+
28
+ var renderChildren = function renderChildren(_ref) {
23
29
  var children = _ref.children,
24
- customClass = _ref.customClass;
30
+ columnsCount = _ref.columnsCount,
31
+ vertical = _ref.vertical,
32
+ skeletonize = _ref.skeletonize,
33
+ skeletonInRows = _ref.skeletonInRows,
34
+ skeletonHeight = _ref.skeletonHeight;
25
35
 
26
- var _useContext = (0, _react.useContext)(_helpers["default"]),
27
- bodyScrollable = _useContext.bodyScrollable,
28
- bodyContainerRef = _useContext.bodyContainerRef;
36
+ if (skeletonize && !vertical && columnsCount) {
37
+ var rows = (0, _helpers.getArrayFromNumber)(skeletonInRows);
38
+ var columns = (0, _helpers.getArrayFromNumber)(columnsCount);
39
+ var skeletonChildrens = rows.map(function (index) {
40
+ return /*#__PURE__*/_react["default"].createElement(_index.TRow, {
41
+ key: index
42
+ }, columns.map(function (id) {
43
+ return /*#__PURE__*/_react["default"].createElement(_index.Td, {
44
+ key: id
45
+ }, /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
46
+ height: skeletonHeight,
47
+ customClass: "rowskeleton"
48
+ }));
49
+ }));
50
+ });
51
+ return skeletonChildrens;
52
+ }
53
+
54
+ return children;
55
+ };
29
56
 
57
+ var TableBody = function TableBody(_ref2) {
58
+ var children = _ref2.children,
59
+ customClass = _ref2.customClass;
60
+ var context = (0, _react.useContext)(_helpers["default"]);
61
+ var bodyScrollable = context.bodyScrollable,
62
+ bodyContainerRef = context.bodyContainerRef,
63
+ skeletonize = context.skeletonize,
64
+ skeletonInRows = context.skeletonInRows,
65
+ strict = context.strict,
66
+ vertical = context.vertical,
67
+ columnsCount = context.columnsCount;
68
+ var isSkeletonized = skeletonize && !vertical && skeletonInRows && columnsCount;
30
69
  return bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
31
70
  className: "bodycontainer",
32
71
  ref: bodyContainerRef
33
72
  }, /*#__PURE__*/_react["default"].createElement("table", {
34
73
  className: "innertable",
35
74
  style: {
36
- tableLayout: 'fixed'
75
+ tableLayout: 'fixed',
76
+ contain: strict ? 'strict' : 'size layout style'
37
77
  }
38
78
  }, /*#__PURE__*/_react["default"].createElement("tbody", {
39
- className: "tbody ".concat(customClass)
40
- }, children))) : /*#__PURE__*/_react["default"].createElement("tbody", {
41
- className: "tbody ".concat(customClass)
42
- }, children);
79
+ className: "tbody ".concat(isSkeletonized ? 'skeleton-transparency' : '', " ").concat(customClass)
80
+ }, renderChildren(_extends({}, context, {
81
+ children: children
82
+ }))))) : /*#__PURE__*/_react["default"].createElement("tbody", {
83
+ className: "tbody ".concat(isSkeletonized ? 'skeleton-transparency' : '', " ").concat(customClass)
84
+ }, renderChildren(_extends({}, context, {
85
+ children: children
86
+ })));
43
87
  };
44
88
 
45
89
  TableBody.propTypes = {