linear-react-components-ui 0.4.76-beta.3 → 0.4.76-beta.32

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 (77) hide show
  1. package/.husky/pre-commit +2 -2
  2. package/README.md +19 -7
  3. package/lib/assets/styles/button.scss +17 -10
  4. package/lib/assets/styles/checkbox.scss +92 -70
  5. package/lib/assets/styles/commons.scss +26 -0
  6. package/lib/assets/styles/drawers.scss +22 -6
  7. package/lib/assets/styles/dropdown.scss +3 -0
  8. package/lib/assets/styles/effects.scss +20 -0
  9. package/lib/assets/styles/gridlayout.scss +2 -1
  10. package/lib/assets/styles/input.scss +21 -0
  11. package/lib/assets/styles/label.scss +9 -1
  12. package/lib/assets/styles/panel.scss +4 -1
  13. package/lib/assets/styles/radio.scss +19 -0
  14. package/lib/assets/styles/select.scss +3 -3
  15. package/lib/assets/styles/skeleton.scss +48 -0
  16. package/lib/assets/styles/table.scss +22 -5
  17. package/lib/assets/styles/tabs.scss +51 -44
  18. package/lib/assets/styles/treeview.scss +4 -0
  19. package/lib/assets/styles/uitour.scss +112 -0
  20. package/lib/buttons/DefaultButton.js +7 -4
  21. package/lib/buttons/split_button/index.js +8 -4
  22. package/lib/checkbox/Label.js +1 -1
  23. package/lib/checkbox/checkbox.spec.js +16 -16
  24. package/lib/checkbox/index.js +16 -9
  25. package/lib/dialog/form/index.js +10 -3
  26. package/lib/drawer/Drawer.js +9 -5
  27. package/lib/drawer/Header.js +15 -5
  28. package/lib/dropdown/Popup.js +3 -2
  29. package/lib/form/form.spec.js +8 -0
  30. package/lib/form/helpers.js +12 -1
  31. package/lib/form/index.js +61 -47
  32. package/lib/form/withFieldHOC.js +3 -1
  33. package/lib/icons/helper.js +8 -0
  34. package/lib/inputs/base/InputTextBase.js +40 -6
  35. package/lib/inputs/base/helpers.js +15 -3
  36. package/lib/inputs/date/Dropdown.js +3 -3
  37. package/lib/inputs/date/date.spec.js +46 -36
  38. package/lib/inputs/date/helpers.js +36 -0
  39. package/lib/inputs/date/index.js +12 -10
  40. package/lib/inputs/mask/Phone.js +10 -1
  41. package/lib/inputs/mask/imaskHOC.js +2 -1
  42. package/lib/inputs/mask/input_mask.spec.js +21 -4
  43. package/lib/inputs/select/Dropdown.js +51 -61
  44. package/lib/inputs/select/helper.js +65 -2
  45. package/lib/inputs/select/multiple/index.js +6 -3
  46. package/lib/inputs/select/simple/index.js +7 -4
  47. package/lib/internals/withTooltip.js +14 -11
  48. package/lib/labels/DefaultLabel.js +7 -4
  49. package/lib/menus/sidenav/NavMenuItem.js +2 -2
  50. package/lib/radio/index.js +9 -6
  51. package/lib/skeleton/SkeletonContainer.js +42 -0
  52. package/lib/skeleton/index.js +84 -0
  53. package/lib/table/Body.js +53 -11
  54. package/lib/table/Header.js +12 -1
  55. package/lib/table/HeaderColumn.js +26 -3
  56. package/lib/table/Row.js +18 -7
  57. package/lib/table/RowColumn.js +23 -3
  58. package/lib/table/helpers.js +11 -1
  59. package/lib/table/index.js +41 -8
  60. package/lib/tabs/Menu.js +1 -11
  61. package/lib/tabs/MenuItems.js +9 -3
  62. package/lib/tabs/index.js +78 -53
  63. package/lib/tabs/tabs.spec.js +8 -5
  64. package/lib/toolbar/ButtonBar.js +30 -24
  65. package/lib/toolbar/LabelBar.js +22 -27
  66. package/lib/toolbar/helpers.js +12 -0
  67. package/lib/toolbar/index.js +23 -12
  68. package/lib/tooltip/index.js +8 -7
  69. package/lib/treeview/Node.js +252 -203
  70. package/lib/treeview/index.js +50 -22
  71. package/lib/treeview/treeview.spec.js +18 -0
  72. package/lib/uitour/helpers.js +15 -0
  73. package/lib/uitour/index.js +271 -0
  74. package/lib/uitour/uitour.spec.js +176 -0
  75. package/package.json +1 -1
  76. package/.DS_Store +0 -0
  77. package/lib/inputs/date/helper.js +0 -16
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getFilteredMultipleDataCombo = exports.getFilteredSimpleDataCombo = exports.getDropdownItemCssClass = exports.contentClass = void 0;
6
+ exports.returnDropdownDynamicStyles = exports.getFilteredMultipleDataCombo = exports.getFilteredSimpleDataCombo = exports.getDropdownItemCssClass = exports.contentClass = void 0;
7
7
 
8
8
  var contentClass = function contentClass(props) {
9
9
  return "content ".concat(props.showClearButton ? '' : 'noclear');
@@ -42,4 +42,67 @@ var getFilteredMultipleDataCombo = function getFilteredMultipleDataCombo(_ref2)
42
42
  });
43
43
  };
44
44
 
45
- exports.getFilteredMultipleDataCombo = getFilteredMultipleDataCombo;
45
+ exports.getFilteredMultipleDataCombo = getFilteredMultipleDataCombo;
46
+
47
+ var returnDropdownPosition = function returnDropdownPosition(_ref3) {
48
+ var selectFieldRects = _ref3.selectFieldRects,
49
+ dropdownRef = _ref3.dropdownRef,
50
+ dropdownRects = _ref3.dropdownRects;
51
+ var aboveDropdown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
52
+ var DEFAULT_MARGIN_BOTTOM = 10;
53
+
54
+ if (aboveDropdown) {
55
+ return selectFieldRects.top + window.scrollY - (dropdownRef.current && dropdownRects.height) - DEFAULT_MARGIN_BOTTOM;
56
+ }
57
+
58
+ return selectFieldRects.top + window.scrollY + selectFieldRects.height;
59
+ };
60
+
61
+ var returnDropdownDynamicStyles = function returnDropdownDynamicStyles(_ref4) {
62
+ var selectFieldRef = _ref4.selectFieldRef,
63
+ dropdownMaxHeight = _ref4.dropdownMaxHeight,
64
+ dropdownRef = _ref4.dropdownRef;
65
+ var selectFieldRects = selectFieldRef.current.getBoundingClientRect();
66
+ var dropdownRects = dropdownRef.current && dropdownRef.current.getBoundingClientRect();
67
+ var dropdownBottomDistance = window.innerHeight - selectFieldRects.bottom;
68
+ var bottomOffset = 30;
69
+ var maxDropdownBottomDistance = 200;
70
+ var height = dropdownMaxHeight;
71
+ var dropdownPosition;
72
+
73
+ if (!height || height <= 0) {
74
+ if (dropdownBottomDistance < maxDropdownBottomDistance) {
75
+ height = selectFieldRects.top;
76
+ dropdownPosition = returnDropdownPosition({
77
+ selectFieldRects: selectFieldRects,
78
+ dropdownRef: dropdownRef,
79
+ dropdownRects: dropdownRects
80
+ }, true);
81
+ } else {
82
+ height = dropdownBottomDistance;
83
+ dropdownPosition = returnDropdownPosition({
84
+ selectFieldRects: selectFieldRects
85
+ });
86
+ }
87
+ } else {
88
+ maxDropdownBottomDistance = height;
89
+
90
+ if (dropdownBottomDistance < maxDropdownBottomDistance) {
91
+ dropdownPosition = returnDropdownPosition({
92
+ selectFieldRects: selectFieldRects,
93
+ dropdownRef: dropdownRef,
94
+ dropdownRects: dropdownRects
95
+ }, true);
96
+ } else {
97
+ dropdownPosition = returnDropdownPosition(selectFieldRects);
98
+ }
99
+ }
100
+
101
+ return {
102
+ maxHeight: height - bottomOffset,
103
+ top: dropdownPosition,
104
+ left: selectFieldRects.left
105
+ };
106
+ };
107
+
108
+ exports.returnDropdownDynamicStyles = returnDropdownDynamicStyles;
@@ -83,6 +83,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
83
83
 
84
84
  _this.componentId = "select-component".concat(_uuid["default"].v1());
85
85
  _this.componentRef = /*#__PURE__*/_react["default"].createRef();
86
+ _this.dropdownRef = /*#__PURE__*/_react["default"].createRef();
86
87
  _this.state = {
87
88
  valueFromProps: null,
88
89
  dataCombo: props.dataSource,
@@ -142,10 +143,11 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
142
143
  }, {
143
144
  key: "onClickOutside",
144
145
  value: function onClickOutside(event) {
145
- var selectWrapper = this.selectWrapper;
146
+ var selectWrapper = this.selectWrapper,
147
+ dropdownRef = this.dropdownRef;
146
148
  var target = event.target;
147
149
 
148
- if (target !== selectWrapper && !selectWrapper.contains(target)) {
150
+ if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
149
151
  this.setState({
150
152
  opened: false
151
153
  });
@@ -363,6 +365,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
363
365
  handleOnUnselect: this.onUnselect
364
366
  }))), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
365
367
  selectFieldRef: this.componentRef,
368
+ dropdownRef: this.dropdownRef,
366
369
  gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
367
370
  handleOnSelect: this.onSelect,
368
371
  handleOnFilter: this.onFilter,
@@ -397,7 +400,7 @@ Object.defineProperty(MultipleSelect, "getDerivedStateFromProps", {
397
400
  var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
398
401
  return {
399
402
  dataCombo: dataCombo,
400
- selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
403
+ selected: dataCombo.length > 0 ? dataCombo[0] : null
401
404
  };
402
405
  }
403
406
 
@@ -78,6 +78,7 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
78
78
  onDenied: undefined,
79
79
  isTyping: false
80
80
  };
81
+ _this.dropdownRef = /*#__PURE__*/_react["default"].createRef();
81
82
  _this.componentId = "select-component".concat(_uuid["default"].v1());
82
83
  _this.componentRef = /*#__PURE__*/_react["default"].createRef();
83
84
  return _this;
@@ -152,6 +153,7 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
152
153
  }))
153
154
  })), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
154
155
  selectFieldRef: this.componentRef,
156
+ dropdownRef: this.dropdownRef,
155
157
  gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
156
158
  handleOnSelect: this.onSelect,
157
159
  handleOnFilter: this.onFilter,
@@ -172,14 +174,14 @@ Object.defineProperty(SimpleSelect, "getDerivedStateFromProps", {
172
174
  value: function value(props, state) {
173
175
  var value = props.value,
174
176
  dataSource = props.dataSource,
177
+ descriptionKey = props.descriptionKey,
175
178
  idKey = props.idKey,
176
179
  selectFirstOnEnter = props.selectFirstOnEnter,
177
- descriptionKey = props.descriptionKey,
178
180
  remoteSearch = props.remoteSearch,
179
181
  undigitable = props.undigitable;
180
182
  var current = null;
181
183
 
182
- if (value !== state.valueFromProps) {
184
+ if (value !== state.valueFromProps && dataSource.length > 0) {
183
185
  if (value !== null) {
184
186
  current = dataSource.find(function (i) {
185
187
  return i[idKey].toString().toLowerCase() === value.toString().toLowerCase();
@@ -227,10 +229,11 @@ var _initialiseProps = function _initialiseProps() {
227
229
  enumerable: true,
228
230
  writable: true,
229
231
  value: function value(event) {
230
- var selectWrapper = _this3.selectWrapper;
232
+ var selectWrapper = _this3.selectWrapper,
233
+ dropdownRef = _this3.dropdownRef;
231
234
  var target = event.target;
232
235
 
233
- if (target !== selectWrapper && !selectWrapper.contains(target)) {
236
+ if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
234
237
  _this3.setState({
235
238
  opened: false
236
239
  });
@@ -73,10 +73,11 @@ var withTooltip = function withTooltip(WrappedComponent) {
73
73
  tooltipDimensions = _useState8[0],
74
74
  setTooltipDimensions = _useState8[1];
75
75
 
76
- var targetElement = (0, _react.useRef)();
76
+ var targetElement = (0, _react.useRef)(null);
77
+ var tooltipElement = (0, _react.useRef)(null);
77
78
 
78
79
  var onMouseOver = function onMouseOver(e) {
79
- if (targetElement.current.contains(e.target)) {
80
+ if (targetElement && targetElement.current && targetElement.current.contains(e.target)) {
80
81
  setShowTooltip(true);
81
82
  } else setShowTooltip(false);
82
83
  };
@@ -111,14 +112,15 @@ var withTooltip = function withTooltip(WrappedComponent) {
111
112
  };
112
113
  }, []);
113
114
  (0, _react.useEffect)(function () {
114
- if (targetElement.current) {
115
+ if (targetElement.current && tooltipElement.current) {
115
116
  var width = tooltipDimensions.width,
116
117
  height = tooltipDimensions.height;
117
118
  var targetDimensions = targetElement.current.getBoundingClientRect();
118
119
  var targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;
119
- var style = "width: ".concat(width, "px");
120
- var left = targetDimensions.left + targetDimensions.width / 2 - width / 2;
121
- left = Math.min(left, document.body.clientWidth - width - space);
120
+ var tooltipClientWidth = tooltipElement.current.clientWidth;
121
+ var style = "width: ".concat(typeof width === 'string' ? width : "".concat(width, "px"));
122
+ var left = targetDimensions.left + targetDimensions.width / 2 - tooltipClientWidth / 2;
123
+ left = Math.min(left, document.body.clientWidth - tooltipClientWidth - space);
122
124
  style += "; left: ".concat(Math.max(space, left), "px");
123
125
 
124
126
  switch (tooltipPosition) {
@@ -141,17 +143,17 @@ var withTooltip = function withTooltip(WrappedComponent) {
141
143
  break;
142
144
 
143
145
  case 'left':
144
- if (targetDimensions.left < width) {
146
+ if (targetDimensions.left < tooltipClientWidth) {
145
147
  setTooltipPosition('right');
146
148
  } else {
147
149
  style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
148
- style += "; left: ".concat(targetDimensions.left - width - 6, "px");
150
+ style += "; left: ".concat(targetDimensions.left - tooltipClientWidth - 6, "px");
149
151
  }
150
152
 
151
153
  break;
152
154
 
153
155
  case 'right':
154
- if (window.innerWidth - targetDimensions.right < width) {
156
+ if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {
155
157
  setTooltipPosition('left');
156
158
  } else {
157
159
  style += "; top: ".concat(targetVerticalCenter + window.scrollY - height / 2, "px");
@@ -166,7 +168,7 @@ var withTooltip = function withTooltip(WrappedComponent) {
166
168
 
167
169
  setTooltipStyle(style);
168
170
  }
169
- }, [tooltipDimensions, targetElement.current, tooltipPosition]);
171
+ }, [tooltipDimensions, tooltipElement.current, targetElement.current, tooltipPosition]);
170
172
  (0, _react.useEffect)(function () {
171
173
  setTooltipPosition(props.tooltipPosition);
172
174
  }, [window.scrollY, window.scrollX, window.innerWidth]);
@@ -175,6 +177,7 @@ var withTooltip = function withTooltip(WrappedComponent) {
175
177
  if (tooltip) {
176
178
  return /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
177
179
  text: tooltip,
180
+ tooltipRef: tooltipElement,
178
181
  style: tooltipStyle,
179
182
  className: tooltipPosition,
180
183
  tooltipDimensions: tooltipDimensions,
@@ -202,7 +205,7 @@ var withTooltip = function withTooltip(WrappedComponent) {
202
205
  tooltipPosition: _propTypes["default"].string
203
206
  };
204
207
  EnhancedComponent.defaultProps = {
205
- tooltipWidth: undefined,
208
+ tooltipWidth: 'auto',
206
209
  space: 20,
207
210
  tooltip: '',
208
211
  tooltipPosition: 'bottom'
@@ -48,7 +48,8 @@ var DefaultLabel = function DefaultLabel(props) {
48
48
  size = props.size,
49
49
  iconAlign = props.iconAlign,
50
50
  bordered = props.bordered,
51
- permissionAttr = props.permissionAttr;
51
+ permissionAttr = props.permissionAttr,
52
+ skeletonize = props.skeletonize;
52
53
  var options = [_permissionValidations.OPTIONS_ON_DENIED.unvisible];
53
54
 
54
55
  var _useState = (0, _react.useState)((0, _permissionValidations.actionsOnPermissionDenied)(permissionAttr, options)),
@@ -56,7 +57,7 @@ var DefaultLabel = function DefaultLabel(props) {
56
57
  onDenied = _useState2[0];
57
58
 
58
59
  var getClass = function getClass() {
59
- return "label-component ".concat(className, " ").concat(customClass, " ").concat(bordered && '-bordered', " ").concat(disabled && '-disabled', " \n ").concat(size && "-".concat(size), "\n ").concat(iconAlign && "icon-".concat(iconAlign));
60
+ return "label-component ".concat(className, " ").concat(customClass, " ").concat(bordered ? '-bordered' : '', " ").concat(disabled ? '-disabled' : '', "\n ").concat(skeletonize ? '-skeletonized' : '', "\n ").concat(size ? "-".concat(size) : '', "\n ").concat(iconAlign ? "icon-".concat(iconAlign) : '');
60
61
  };
61
62
 
62
63
  var getIcon = function getIcon() {
@@ -94,7 +95,8 @@ DefaultLabel.defaultProps = {
94
95
  style: {},
95
96
  visible: true,
96
97
  disabled: false,
97
- permissionAttr: undefined
98
+ permissionAttr: undefined,
99
+ skeletonize: false
98
100
  };
99
101
  DefaultLabel.propTypes = {
100
102
  customClass: _propTypes["default"].string,
@@ -109,7 +111,8 @@ DefaultLabel.propTypes = {
109
111
  style: _propTypes["default"].object,
110
112
  visible: _propTypes["default"].bool,
111
113
  disabled: _propTypes["default"].bool,
112
- permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
114
+ permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
115
+ skeletonize: _propTypes["default"].bool
113
116
  };
114
117
 
115
118
  var _default = (0, _withTooltip["default"])(DefaultLabel);
@@ -134,8 +134,8 @@ NavMenuItem.propTypes = {
134
134
  url: _propTypes["default"].string,
135
135
  customClass: _propTypes["default"].string,
136
136
  permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
137
- minWidth: _propTypes["default"].oneOf([_propTypes["default"].string, _propTypes["default"].number]),
138
- maxWidth: _propTypes["default"].oneOf([_propTypes["default"].string, _propTypes["default"].number]),
137
+ minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
138
+ maxWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
139
139
  columnsQtty: _propTypes["default"].number
140
140
  };
141
141
  NavMenuItem.defaultProps = {
@@ -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;
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,65 @@ 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;
30
67
  return bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
31
68
  className: "bodycontainer",
32
69
  ref: bodyContainerRef
33
70
  }, /*#__PURE__*/_react["default"].createElement("table", {
34
71
  className: "innertable",
35
72
  style: {
36
- tableLayout: 'fixed'
73
+ tableLayout: 'fixed',
74
+ contain: strict ? 'strict' : 'size layout style'
37
75
  }
38
76
  }, /*#__PURE__*/_react["default"].createElement("tbody", {
39
- className: "tbody ".concat(customClass)
40
- }, children))) : /*#__PURE__*/_react["default"].createElement("tbody", {
41
- className: "tbody ".concat(customClass)
42
- }, children);
77
+ className: "tbody ".concat(skeletonize && !vertical && skeletonInRows ? 'skeleton-transparency' : '', " ").concat(customClass)
78
+ }, renderChildren(_extends({}, context, {
79
+ children: children
80
+ }))))) : /*#__PURE__*/_react["default"].createElement("tbody", {
81
+ className: "tbody ".concat(skeletonize && !vertical && skeletonInRows ? 'skeleton-transparency' : '', " ").concat(customClass)
82
+ }, renderChildren(_extends({}, context, {
83
+ children: children
84
+ })));
43
85
  };
44
86
 
45
87
  TableBody.propTypes = {
@@ -41,6 +41,15 @@ var getColumnsWidth = function getColumnsWidth(children) {
41
41
  return columnsWidth;
42
42
  };
43
43
 
44
+ var getColumnsCount = function getColumnsCount(children) {
45
+ if (_lodash["default"].isArray(children) && children.length > 0 && children[0].props) {
46
+ return children[0].props.children.length;
47
+ }
48
+
49
+ if (children && children.props) return children.props.children.length;
50
+ return undefined;
51
+ };
52
+
44
53
  var Header = function Header(_ref) {
45
54
  var customClass = _ref.customClass,
46
55
  children = _ref.children;
@@ -48,10 +57,12 @@ var Header = function Header(_ref) {
48
57
  var _useContext = (0, _react.useContext)(_helpers["default"]),
49
58
  bodyScrollWidth = _useContext.bodyScrollWidth,
50
59
  bodyScrollable = _useContext.bodyScrollable,
51
- handlerSetColumnsWidth = _useContext.handlerSetColumnsWidth;
60
+ handlerSetColumnsWidth = _useContext.handlerSetColumnsWidth,
61
+ handlerSetColumnsCount = _useContext.handlerSetColumnsCount;
52
62
 
53
63
  (0, _react.useEffect)(function () {
54
64
  handlerSetColumnsWidth(getColumnsWidth(children));
65
+ handlerSetColumnsCount(getColumnsCount(children));
55
66
  }, []);
56
67
  return bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
57
68
  className: "headercontainer",
@@ -1,26 +1,49 @@
1
1
  "use strict";
2
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
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
8
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
9
11
 
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
14
+ var _skeleton = _interopRequireDefault(require("../skeleton"));
15
+
16
+ var _helpers = _interopRequireDefault(require("./helpers"));
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
19
 
20
+ 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); }
21
+
22
+ 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; }
23
+
14
24
  var HeaderColumn = function HeaderColumn(_ref) {
15
25
  var customClass = _ref.customClass,
16
26
  style = _ref.style,
17
27
  children = _ref.children,
18
28
  textAlign = _ref.textAlign,
19
29
  visible = _ref.visible;
20
- return visible ? /*#__PURE__*/_react["default"].createElement("th", {
30
+
31
+ var _useContext = (0, _react.useContext)(_helpers["default"]),
32
+ skeletonize = _useContext.skeletonize,
33
+ vertical = _useContext.vertical,
34
+ skeletonInHeader = _useContext.skeletonInHeader,
35
+ skeletonInRows = _useContext.skeletonInRows;
36
+
37
+ if (!visible) return null;
38
+ return /*#__PURE__*/_react["default"].createElement("th", {
21
39
  className: "headercolumn ".concat(customClass, " text-align-").concat(textAlign),
22
40
  style: style
23
- }, children) : null;
41
+ }, skeletonize && (skeletonInHeader || !skeletonInRows) && !vertical ? /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
42
+ height: style.height ? null : 16,
43
+ style: {
44
+ marginBottom: 0
45
+ }
46
+ }) : children);
24
47
  };
25
48
 
26
49
  HeaderColumn.propTypes = {